From 2bf092967ff7437fb4b4c7a9734cca49faa22267 Mon Sep 17 00:00:00 2001 From: Bond Date: Thu, 18 Jan 2018 12:55:02 +0100 Subject: [PATCH 0001/1249] pin envinfo version to 3.4.2 (#3853) See #3837 --- packages/create-react-app/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/create-react-app/package.json b/packages/create-react-app/package.json index 65ab56a1698..e1fe32f00cf 100644 --- a/packages/create-react-app/package.json +++ b/packages/create-react-app/package.json @@ -24,7 +24,7 @@ "chalk": "^1.1.1", "commander": "^2.9.0", "cross-spawn": "^4.0.0", - "envinfo": "^3.8.0", + "envinfo": "3.4.2", "fs-extra": "^1.0.0", "hyperquest": "^2.1.2", "semver": "^5.0.3", From 034c6ad348416b1067fa3a389b163ddf0cfaeef6 Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Thu, 18 Jan 2018 12:08:58 +0000 Subject: [PATCH 0002/1249] 1.5.1 --- packages/create-react-app/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/create-react-app/package.json b/packages/create-react-app/package.json index e1fe32f00cf..93d7b00ad90 100644 --- a/packages/create-react-app/package.json +++ b/packages/create-react-app/package.json @@ -1,6 +1,6 @@ { "name": "create-react-app", - "version": "1.5.0", + "version": "1.5.1", "keywords": [ "react" ], From bab2c295220a88f1ea5bdabd0bf65fb7c7a98152 Mon Sep 17 00:00:00 2001 From: Robin van der Vleuten Date: Sat, 20 Jan 2018 20:31:27 +0100 Subject: [PATCH 0003/1249] Set the public path to the asset manifest entries (#2544) --- packages/react-scripts/config/webpack.config.prod.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/react-scripts/config/webpack.config.prod.js b/packages/react-scripts/config/webpack.config.prod.js index 3b2a2068db2..83bcadb63cd 100644 --- a/packages/react-scripts/config/webpack.config.prod.js +++ b/packages/react-scripts/config/webpack.config.prod.js @@ -319,6 +319,7 @@ module.exports = { // having to parse `index.html`. new ManifestPlugin({ fileName: 'asset-manifest.json', + publicPath: publicPath }), // Generate a service worker script that will precache, and keep up to date, // the HTML & assets that are part of the Webpack build. From eee29075d64a4d3c2c5af4f4b9836e54e8f8bb3e Mon Sep 17 00:00:00 2001 From: Ronald Rey Date: Mon, 22 Jan 2018 09:51:38 -0400 Subject: [PATCH 0004/1249] Include `{json,css}` files in prettier command (#3894) Update User Guide's README.md to include `json` and `css` files in the command to format the entire project for the first time with prettier, that it's consistent with the `lint-staged` command. --- packages/react-scripts/template/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/template/README.md b/packages/react-scripts/template/README.md index 7c641456056..3fe1b8c48db 100644 --- a/packages/react-scripts/template/README.md +++ b/packages/react-scripts/template/README.md @@ -348,7 +348,7 @@ Next we add a 'lint-staged' field to the `package.json`, for example: "scripts": { ``` -Now, whenever you make a commit, Prettier will format the changed files automatically. You can also run `./node_modules/.bin/prettier --single-quote --write "src/**/*.{js,jsx}"` to format your entire project for the first time. +Now, whenever you make a commit, Prettier will format the changed files automatically. You can also run `./node_modules/.bin/prettier --single-quote --write "src/**/*.{js,jsx,json,css}"` to format your entire project for the first time. Next you might want to integrate Prettier in your favorite editor. Read the section on [Editor Integration](https://prettier.io/docs/en/editors.html) on the Prettier GitHub page. From 815853db7fdd1f372701ecc09f90b7d5b45f7b87 Mon Sep 17 00:00:00 2001 From: Alf Eaton Date: Sun, 4 Feb 2018 15:54:14 +0000 Subject: [PATCH 0005/1249] Update instructions for continuous delivery with Netlify (#3971) --- packages/react-scripts/template/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/react-scripts/template/README.md b/packages/react-scripts/template/README.md index 3fe1b8c48db..d40c87ebc81 100644 --- a/packages/react-scripts/template/README.md +++ b/packages/react-scripts/template/README.md @@ -2264,7 +2264,8 @@ With this setup Netlify will build and deploy when you push to git or open a pul 1. [Start a new netlify project](https://app.netlify.com/signup) 2. Pick your Git hosting service and select your repository -3. Click `Build your site` +3. Set `yarn build` as the build command and `build` as the publish directory +4. Click `Deploy site` **Support for client-side routing:** From 32ea0c0e6d886aab35ec2f476605b5a1cb0a0095 Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Fri, 9 Feb 2018 05:08:30 -0800 Subject: [PATCH 0006/1249] Update dotenv-expand to fix bug with environment variables that contain a $. (#4000) --- packages/react-scripts/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 91d4a584cf4..41ff76e8544 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -32,7 +32,7 @@ "chalk": "1.1.3", "css-loader": "0.28.7", "dotenv": "4.0.0", - "dotenv-expand": "4.0.1", + "dotenv-expand": "4.2.0", "eslint": "4.10.0", "eslint-config-react-app": "^2.1.0", "eslint-loader": "1.9.0", From 09d216ecce97a6cabf8e34a97c82b6acff82f27e Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Fri, 9 Feb 2018 13:10:41 +0000 Subject: [PATCH 0007/1249] Unpin and bump fsevents (for 1.x branch) (#4006) --- packages/react-scripts/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 41ff76e8544..b8f1006e5b2 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -64,6 +64,6 @@ "react-dom": "^16.0.0" }, "optionalDependencies": { - "fsevents": "1.1.2" + "fsevents": "^1.1.3" } } From 984d661811299ce2256b81ea65258037ac65e68e Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Fri, 9 Feb 2018 13:19:49 +0000 Subject: [PATCH 0008/1249] Add 1.1.1 changelog --- CHANGELOG.md | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a2dfec8fec6..b79db6b8786 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,43 @@ +## 1.1.1 (February 2, 2018) + +#### :bug: Bug Fix +* `react-scripts` + * [#4000](https://github.com/facebook/create-react-app/pull/4000) Fix escaping `$` in environment variables. ([@iansu](https://github.com/iansu)) + +#### :nail_care: Enhancement +* `react-scripts` + * [#4006](https://github.com/facebook/create-react-app/pull/4006) Add Node 9 compatibility for `fsevents`. ([@gaearon](https://github.com/gaearon)) + +#### :memo: Documentation +* `react-scripts` + * [#3971](https://github.com/facebook/create-react-app/pull/3971) Update instructions for continuous delivery with Netlify. ([@hubgit](https://github.com/hubgit)) + * [#3894](https://github.com/facebook/create-react-app/pull/3894) Include `{json,css}` files in prettier command. ([@reyronald](https://github.com/reyronald)) + +#### :house: Internal +* `create-react-app` + * [#3853](https://github.com/facebook/create-react-app/pull/3853) pin envinfo version to 3.4.2. ([@bondz](https://github.com/bondz)) + +#### Committers: 6 +- Alf Eaton ([hubgit](https://github.com/hubgit)) +- Bond ([bondz](https://github.com/bondz)) +- Dan Abramov ([gaearon](https://github.com/gaearon)) +- Ian Sutherland ([iansu](https://github.com/iansu)) +- Ronald Rey ([reyronald](https://github.com/reyronald)) + +### Migrating from 1.1.0 to 1.1.1 + +Inside any created project that has not been ejected, run: + +``` +npm install --save --save-exact react-scripts@1.1.1 +``` + +or + +``` +yarn add --exact react-scripts@1.1.1 +``` + ## 1.1.0 (January 15, 2018) #### :rocket: New Feature From 1a9722f50a8b8786803c1f784efca366a43f38da Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Fri, 9 Feb 2018 13:13:49 +0000 Subject: [PATCH 0009/1249] Revert "Set the public path to the asset manifest entries (#2544)" This reverts commit bab2c295220a88f1ea5bdabd0bf65fb7c7a98152. I meant to apply it to `next` instead. --- packages/react-scripts/config/webpack.config.prod.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/react-scripts/config/webpack.config.prod.js b/packages/react-scripts/config/webpack.config.prod.js index 83bcadb63cd..3b2a2068db2 100644 --- a/packages/react-scripts/config/webpack.config.prod.js +++ b/packages/react-scripts/config/webpack.config.prod.js @@ -319,7 +319,6 @@ module.exports = { // having to parse `index.html`. new ManifestPlugin({ fileName: 'asset-manifest.json', - publicPath: publicPath }), // Generate a service worker script that will precache, and keep up to date, // the HTML & assets that are part of the Webpack build. From 0b1d6365768ae3bd267b042b74bab249673f1a9f Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Fri, 9 Feb 2018 13:20:59 +0000 Subject: [PATCH 0010/1249] Publish - create-react-app@1.5.2 - react-scripts@1.1.1 --- packages/create-react-app/package.json | 2 +- packages/react-scripts/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/create-react-app/package.json b/packages/create-react-app/package.json index 93d7b00ad90..4d8f4112ead 100644 --- a/packages/create-react-app/package.json +++ b/packages/create-react-app/package.json @@ -1,6 +1,6 @@ { "name": "create-react-app", - "version": "1.5.1", + "version": "1.5.2", "keywords": [ "react" ], diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index b8f1006e5b2..94d8e98df6d 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -1,6 +1,6 @@ { "name": "react-scripts", - "version": "1.1.0", + "version": "1.1.1", "description": "Configuration and scripts for Create React App.", "repository": "facebookincubator/create-react-app", "license": "MIT", From c6375edc079a71bd9addd50c58441cbca8839945 Mon Sep 17 00:00:00 2001 From: Lee Byron Date: Thu, 22 Mar 2018 07:27:23 -0700 Subject: [PATCH 0011/1249] `.mjs` should not resolve before .js files (#4085) Support for .mjs files added in #3239 did not account for npm libraries which ship native mjs files alongside js files. This accounts for this by ensuring .js files resolve before their accompanying .mjs file. Note that this is not an ideal end state since selecting a .mjs over a .js extension should be the result of whether `import` was used instead of `require()` in a node environment with native ESM support (currently via `--experimental-modules`). Instead, this change just *always* selects a .js extension before the .mjs extension if it exists. This unbreaks support for using GraphQL (relay, apollo, etc) within create-react-app projects. --- packages/react-scripts/scripts/utils/createJestConfig.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/scripts/utils/createJestConfig.js b/packages/react-scripts/scripts/utils/createJestConfig.js index b4c2cfa5ea9..4c428004a84 100644 --- a/packages/react-scripts/scripts/utils/createJestConfig.js +++ b/packages/react-scripts/scripts/utils/createJestConfig.js @@ -45,12 +45,12 @@ module.exports = (resolve, rootDir, isEjecting) => { }, moduleFileExtensions: [ 'web.js', - 'mjs', 'js', 'json', 'web.jsx', 'jsx', 'node', + 'mjs', ], }; if (rootDir) { From cb1608b3e02e0eef5fd350f6e4cf5ce32bdfc215 Mon Sep 17 00:00:00 2001 From: Vicente Plata Date: Fri, 23 Mar 2018 03:07:25 -0700 Subject: [PATCH 0012/1249] Add troubleshooting for Github Pages (#4197) Add troubleshooting for an issue that has to do with either 2FA, or using Windows, or both, when trying to deploy an app via gh-pages --- packages/react-scripts/template/README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/react-scripts/template/README.md b/packages/react-scripts/template/README.md index d40c87ebc81..479d632a5f0 100644 --- a/packages/react-scripts/template/README.md +++ b/packages/react-scripts/template/README.md @@ -2209,6 +2209,16 @@ GitHub Pages doesn’t support routers that use the HTML5 `pushState` history AP * You could switch from using HTML5 history API to routing with hashes. If you use React Router, you can switch to `hashHistory` for this effect, but the URL will be longer and more verbose (for example, `http://user.github.io/todomvc/#/todos/42?_k=yknaj`). [Read more](https://reacttraining.com/react-router/web/api/Router) about different history implementations in React Router. * Alternatively, you can use a trick to teach GitHub Pages to handle 404 by redirecting to your `index.html` page with a special redirect parameter. You would need to add a `404.html` file with the redirection code to the `build` folder before deploying your project, and you’ll need to add code handling the redirect parameter to `index.html`. You can find a detailed explanation of this technique [in this guide](https://github.com/rafrex/spa-github-pages). +#### Troubleshooting + +##### "/dev/tty: No such a device or address" + +If, when deploying, you get `/dev/tty: No such a device or address` or a similar error, try the follwing: + +1. Create a new [Personal Access Token](https://github.com/settings/tokens) +2. `git remote set-url origin https://:@github.com//` . +3. Try `npm run deploy again` + ### [Heroku](https://www.heroku.com/) Use the [Heroku Buildpack for Create React App](https://github.com/mars/create-react-app-buildpack).
From 780a4573e791a623d91b3d66b710a1e16f6fe000 Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Tue, 3 Apr 2018 00:48:07 +0100 Subject: [PATCH 0013/1249] Add 1.1.2 changelog (#4242) --- CHANGELOG.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b79db6b8786..2fcb2d83d22 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,35 @@ +## 1.1.2 (April 3, 2018) + +#### :bug: Bug Fix + +* `react-scripts` + + * [#4085](https://github.com/facebook/create-react-app/pull/4085) Resolve `.js` before `.mjs` files to unbreak dependencies with native ESM support. ([@leebyron](https://github.com/leebyron)) + +#### :memo: Documentation + +* `react-scripts` + + * [#4197](https://github.com/facebook/create-react-app/pull/4197) Add troubleshooting for Github Pages. ([@xnt](https://github.com/xnt)) + +#### Committers: 2 +- Lee Byron ([leebyron](https://github.com/leebyron)) +- Vicente Plata ([xnt](https://github.com/xnt)) + +### Migrating from 1.1.1 to 1.1.2 + +Inside any created project that has not been ejected, run: + +``` +npm install --save --save-exact react-scripts@1.1.2 +``` + +or + +``` +yarn add --exact react-scripts@1.1.2 +``` + ## 1.1.1 (February 2, 2018) #### :bug: Bug Fix From 609aeea67b18fb1a8eb399a1384ea61ca35175af Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Tue, 3 Apr 2018 00:48:34 +0100 Subject: [PATCH 0014/1249] Publish - react-scripts@1.1.2 --- packages/react-scripts/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 94d8e98df6d..0c19a29df07 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -1,6 +1,6 @@ { "name": "react-scripts", - "version": "1.1.1", + "version": "1.1.2", "description": "Configuration and scripts for Create React App.", "repository": "facebookincubator/create-react-app", "license": "MIT", From d639e90bfae5dfd206300533102017864890fab0 Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Tue, 3 Apr 2018 18:03:08 +0100 Subject: [PATCH 0015/1249] Work around Jest environment resolving bug (#4247) --- packages/react-scripts/package.json | 1 + packages/react-scripts/scripts/test.js | 56 +++++++++++++++++++++++++- 2 files changed, 56 insertions(+), 1 deletion(-) diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 0c19a29df07..7ac36b254c0 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -51,6 +51,7 @@ "promise": "8.0.1", "raf": "3.4.0", "react-dev-utils": "^5.0.0", + "resolve": "1.6.0", "style-loader": "0.19.0", "sw-precache-webpack-plugin": "0.11.4", "url-loader": "0.6.2", diff --git a/packages/react-scripts/scripts/test.js b/packages/react-scripts/scripts/test.js index b30113fe662..e057ab70589 100644 --- a/packages/react-scripts/scripts/test.js +++ b/packages/react-scripts/scripts/test.js @@ -24,7 +24,7 @@ process.on('unhandledRejection', err => { require('../config/env'); const jest = require('jest'); -const argv = process.argv.slice(2); +let argv = process.argv.slice(2); // Watch unless on CI or in coverage mode if (!process.env.CI && argv.indexOf('--coverage') < 0) { @@ -46,5 +46,59 @@ argv.push( ) ) ); + +// This is a very dirty workaround for https://github.com/facebook/jest/issues/5913. +// We're trying to resolve the environment ourselves because Jest does it incorrectly. +// TODO: remove this (and the `resolve` dependency) as soon as it's fixed in Jest. +const resolve = require('resolve'); +function resolveJestDefaultEnvironment(name) { + const jestDir = path.dirname( + resolve.sync('jest', { + basedir: __dirname, + }) + ); + const jestCLIDir = path.dirname( + resolve.sync('jest-cli', { + basedir: jestDir, + }) + ); + const jestConfigDir = path.dirname( + resolve.sync('jest-config', { + basedir: jestCLIDir, + }) + ); + return resolve.sync(name, { + basedir: jestConfigDir, + }); +} +let cleanArgv = []; +let env = 'node'; +let next; +do { + next = argv.shift(); + if (next === '--env') { + env = argv.shift(); + } else if (next.indexOf('--env=') === 0) { + env = next.substring('--env='.length); + } else { + cleanArgv.push(next); + } +} while (argv.length > 0); +argv = cleanArgv; +let resolvedEnv; +try { + resolvedEnv = resolveJestDefaultEnvironment(`jest-environment-${env}`); +} catch (e) { + // ignore +} +if (!resolvedEnv) { + try { + resolvedEnv = resolveJestDefaultEnvironment(env); + } catch (e) { + // ignore + } +} +const testEnvironment = resolvedEnv || env; +argv.push('--env', testEnvironment); // @remove-on-eject-end jest.run(argv); From f040d85a76a424d90370e3200f6181ac81f22200 Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Tue, 3 Apr 2018 18:30:23 +0100 Subject: [PATCH 0016/1249] Changelog for 1.1.3 --- CHANGELOG.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2fcb2d83d22..aff4aefa082 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,28 @@ +## 1.1.3 (April 3, 2018) + +#### :bug: Bug Fix + +* `react-scripts` + + * [#4247](https://github.com/facebook/create-react-app/pull/4247) Fix `environment.dispose is not a function` error caused by a Jest bug. ([@gaearon](https://github.com/gaearon)) + +#### Committers: 1 +- Dan Abramov ([gaearon](https://github.com/gaearon)) + +### Migrating from 1.1.2 to 1.1.3 + +Inside any created project that has not been ejected, run: + +``` +npm install --save --save-exact react-scripts@1.1.3 +``` + +or + +``` +yarn add --exact react-scripts@1.1.3 +``` + ## 1.1.2 (April 3, 2018) #### :bug: Bug Fix From 408db51973fab34025336f9647105aa7e51c70ab Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Tue, 3 Apr 2018 18:30:53 +0100 Subject: [PATCH 0017/1249] Publish - react-scripts@1.1.3 --- packages/react-scripts/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 7ac36b254c0..797e95a96a4 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -1,6 +1,6 @@ { "name": "react-scripts", - "version": "1.1.2", + "version": "1.1.3", "description": "Configuration and scripts for Create React App.", "repository": "facebookincubator/create-react-app", "license": "MIT", From 110fdedef0c28bd5b26e5611e4510163d0a6242c Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Tue, 3 Apr 2018 20:07:35 -0400 Subject: [PATCH 0018/1249] Update detect-port-alt (#4250) --- packages/react-dev-utils/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index 18f37c971e4..4261eeb6cd8 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -40,7 +40,7 @@ "babel-code-frame": "6.26.0", "chalk": "1.1.3", "cross-spawn": "5.1.0", - "detect-port-alt": "1.1.5", + "detect-port-alt": "1.1.6", "escape-string-regexp": "1.0.5", "filesize": "3.5.11", "global-modules": "1.0.0", From 305bd7015f5df10ea6dfe30f1e72ac5ec6e0332c Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Tue, 3 Apr 2018 20:27:05 -0400 Subject: [PATCH 0019/1249] Changelog for 1.1.4 --- CHANGELOG.md | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index aff4aefa082..fed2c53f957 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,28 @@ +## 1.1.4 (April 3, 2018) + +#### :bug: Bug Fix + +* `react-dev-utils` + + * [#4250](https://github.com/facebook/create-react-app/pull/4250) Upgrade `detect-port-alt` to fix [#4189](https://github.com/facebook/create-react-app/issues/4189). ([@Timer](https://github.com/Timer)) + +#### Committers: 1 +- Joe Haddad ([Timer](https://github.com/Timer)) + +### Migrating from 1.1.3 to 1.1.4 + +Inside any created project that has not been ejected, run: + +``` +npm install --save --save-exact react-scripts@1.1.4 +``` + +or + +``` +yarn add --exact react-scripts@1.1.4 +``` + ## 1.1.3 (April 3, 2018) #### :bug: Bug Fix @@ -106,7 +131,7 @@ yarn add --exact react-scripts@1.1.1 * `react-error-overlay` * [#3474](https://github.com/facebookincubator/create-react-app/pull/3474) Allow the error overlay to be unregistered. ([@Timer](https://github.com/Timer)) - + * `create-react-app` * [#3408](https://github.com/facebookincubator/create-react-app/pull/3408) Add `--info` flag to help gather bug reports. ([@tabrindle](https://github.com/tabrindle)) @@ -132,7 +157,7 @@ yarn add --exact react-scripts@1.1.1 * `create-react-app` * [#3320](https://github.com/facebookincubator/create-react-app/pull/3320) Fix offline installation to respect proxy from `.npmrc`. ([@mdogadailo](https://github.com/mdogadailo)) - + * `react-scripts` * [#3537](https://github.com/facebookincubator/create-react-app/pull/3537) Add `mjs` and `jsx` filename extensions to `file-loader` exclude pattern. ([@iansu](https://github.com/iansu)) From dfbc71ce2ae07547a8544cce14a1a23fac99e071 Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Tue, 3 Apr 2018 20:27:48 -0400 Subject: [PATCH 0020/1249] Publish - react-dev-utils@5.0.1 - react-scripts@1.1.4 --- packages/react-dev-utils/package.json | 2 +- packages/react-scripts/package.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index 4261eeb6cd8..8adff62faa9 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -1,6 +1,6 @@ { "name": "react-dev-utils", - "version": "5.0.0", + "version": "5.0.1", "description": "Webpack utilities used by Create React App", "repository": "facebookincubator/create-react-app", "license": "MIT", diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 797e95a96a4..c33c3b4b5c4 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -1,6 +1,6 @@ { "name": "react-scripts", - "version": "1.1.3", + "version": "1.1.4", "description": "Configuration and scripts for Create React App.", "repository": "facebookincubator/create-react-app", "license": "MIT", @@ -50,7 +50,7 @@ "postcss-loader": "2.0.8", "promise": "8.0.1", "raf": "3.4.0", - "react-dev-utils": "^5.0.0", + "react-dev-utils": "^5.0.1", "resolve": "1.6.0", "style-loader": "0.19.0", "sw-precache-webpack-plugin": "0.11.4", From f26ed0f09a71e451e2b3b0cae22d30918f6a8bc1 Mon Sep 17 00:00:00 2001 From: Alex Brazier Date: Mon, 18 Jun 2018 17:06:26 +0100 Subject: [PATCH 0021/1249] Use yarn in predeploy script if built using yarn (#4623) --- packages/react-dev-utils/printHostingInstructions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-dev-utils/printHostingInstructions.js b/packages/react-dev-utils/printHostingInstructions.js index 7afb4af21e4..df697392fe6 100644 --- a/packages/react-dev-utils/printHostingInstructions.js +++ b/packages/react-dev-utils/printHostingInstructions.js @@ -92,7 +92,7 @@ function printDeployInstructions(publicUrl, hasDeployScript, useYarn) { console.log(` ${chalk.dim('// ...')}`); console.log( ` ${chalk.yellow('"predeploy"')}: ${chalk.yellow( - '"npm run build",' + `"${useYarn ? 'yarn' : 'npm run'} build",` )}` ); console.log( From e1ee8032a89eabf58cd45ca539fac9ab0c0689be Mon Sep 17 00:00:00 2001 From: Jack Zhao Date: Mon, 18 Jun 2018 10:00:55 -0700 Subject: [PATCH 0022/1249] Fix node 10 npm login issue (#4626) * node10 * token * rerun tests --- tasks/e2e-installs.sh | 4 ++-- tasks/e2e-kitchensink.sh | 4 ++-- tasks/e2e-monorepos.sh | 4 ++-- tasks/e2e-simple.sh | 4 ++-- tasks/verdaccio.yaml | 6 +++--- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/tasks/e2e-installs.sh b/tasks/e2e-installs.sh index b58cd5eafca..48ab42508be 100755 --- a/tasks/e2e-installs.sh +++ b/tasks/e2e-installs.sh @@ -86,7 +86,7 @@ yarn # Start local registry tmp_registry_log=`mktemp` -nohup npx verdaccio@2.7.2 -c tasks/verdaccio.yaml &>$tmp_registry_log & +nohup npx verdaccio@3.2.0 -c tasks/verdaccio.yaml &>$tmp_registry_log & # Wait for `verdaccio` to boot grep -q 'http address' <(tail -f $tmp_registry_log) @@ -95,7 +95,7 @@ npm set registry "$custom_registry_url" yarn config set registry "$custom_registry_url" # Login so we can publish packages -npx npm-cli-login@0.0.10 -u user -p password -e user@example.com -r "$custom_registry_url" --quotes +(cd && npx npm-auth-to-token@1.0.0 -u user -p password -e user@example.com -r "$custom_registry_url") # Publish the monorepo git clean -df diff --git a/tasks/e2e-kitchensink.sh b/tasks/e2e-kitchensink.sh index b40a487ae4b..833956d0c0e 100755 --- a/tasks/e2e-kitchensink.sh +++ b/tasks/e2e-kitchensink.sh @@ -79,7 +79,7 @@ yarn # Start local registry tmp_registry_log=`mktemp` -nohup npx verdaccio@2.7.2 -c tasks/verdaccio.yaml &>$tmp_registry_log & +nohup npx verdaccio@3.2.0 -c tasks/verdaccio.yaml &>$tmp_registry_log & # Wait for `verdaccio` to boot grep -q 'http address' <(tail -f $tmp_registry_log) @@ -88,7 +88,7 @@ npm set registry "$custom_registry_url" yarn config set registry "$custom_registry_url" # Login so we can publish packages -npx npm-cli-login@0.0.10 -u user -p password -e user@example.com -r "$custom_registry_url" --quotes +(cd && npx npm-auth-to-token@1.0.0 -u user -p password -e user@example.com -r "$custom_registry_url") # Publish the monorepo git clean -df diff --git a/tasks/e2e-monorepos.sh b/tasks/e2e-monorepos.sh index ac7609e79e2..0f3f70219bd 100755 --- a/tasks/e2e-monorepos.sh +++ b/tasks/e2e-monorepos.sh @@ -73,7 +73,7 @@ yarn # Start local registry tmp_registry_log=`mktemp` -nohup npx verdaccio@2.7.2 -c tasks/verdaccio.yaml &>$tmp_registry_log & +nohup npx verdaccio@3.2.0 -c tasks/verdaccio.yaml &>$tmp_registry_log & # Wait for `verdaccio` to boot grep -q 'http address' <(tail -f $tmp_registry_log) @@ -82,7 +82,7 @@ npm set registry "$custom_registry_url" yarn config set registry "$custom_registry_url" # Login so we can publish packages -npx npm-cli-login@0.0.10 -u user -p password -e user@example.com -r "$custom_registry_url" --quotes +(cd && npx npm-auth-to-token@1.0.0 -u user -p password -e user@example.com -r "$custom_registry_url") git clean -df ./tasks/publish.sh --yes --force-publish=* --skip-git --cd-version=prerelease --exact --npm-tag=latest diff --git a/tasks/e2e-simple.sh b/tasks/e2e-simple.sh index 701763679c5..da0d9219502 100755 --- a/tasks/e2e-simple.sh +++ b/tasks/e2e-simple.sh @@ -86,7 +86,7 @@ yarn # Start local registry tmp_registry_log=`mktemp` -nohup npx verdaccio@2.7.2 -c tasks/verdaccio.yaml &>$tmp_registry_log & +nohup npx verdaccio@3.2.0 -c tasks/verdaccio.yaml &>$tmp_registry_log & # Wait for `verdaccio` to boot grep -q 'http address' <(tail -f $tmp_registry_log) @@ -95,7 +95,7 @@ npm set registry "$custom_registry_url" yarn config set registry "$custom_registry_url" # Login so we can publish packages -npx npm-cli-login@0.0.10 -u user -p password -e user@example.com -r "$custom_registry_url" --quotes +(cd && npx npm-auth-to-token@1.0.0 -u user -p password -e user@example.com -r "$custom_registry_url") # Lint own code ./node_modules/.bin/eslint --max-warnings 0 packages/babel-preset-react-app/ diff --git a/tasks/verdaccio.yaml b/tasks/verdaccio.yaml index e8a621ed0a4..e98643b7b76 100644 --- a/tasks/verdaccio.yaml +++ b/tasks/verdaccio.yaml @@ -1,6 +1,6 @@ # -# This is the default config file. It allows all users to do anything, -# so don't use it on production systems. +# This is based on verdaccio's default config file. It allows all users +# to do anything, so don't use it on production systems. # # Look here for more config file examples: # https://github.com/verdaccio/verdaccio/tree/master/conf @@ -25,7 +25,7 @@ packages: '@*/*': # scoped packages access: $all - publish: $ll + publish: $all proxy: npmjs '**': From 26febc5251dd822601af043e1e0147aa7bb040ad Mon Sep 17 00:00:00 2001 From: Anton Rusinov Date: Wed, 20 Jun 2018 23:15:15 +0300 Subject: [PATCH 0023/1249] Add instructions on alternative methods of app creation (#4638) --- README.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 086416dbae8..ee9deb69693 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,9 @@ Just create a project, and you’re good to go. **You’ll need to have Node >= 6 on your local development machine** (but it’s not required on the server). You can use [nvm](https://github.com/creationix/nvm#installation) (macOS/Linux) or [nvm-windows](https://github.com/coreybutler/nvm-windows#node-version-manager-nvm-for-windows) to easily switch Node versions between different projects. -To create a new app, run a single command: +To create a new app, you may choose one of the following methods: + +### npx ```sh npx create-react-app my-app @@ -44,6 +46,20 @@ npx create-react-app my-app *([npx](https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b) comes with npm 5.2+ and higher, see [instructions for older npm versions](https://gist.github.com/gaearon/4064d3c23a77c74a3614c498a8bb1c5f))* +### npm + +```sh +npm init react-app my-app +``` +*`npm init ` is available in npm 6+* + +### Yarn + +```sh +yarn create react-app my-app +``` +*`yarn create` is available in Yarn 0.25+* + It will create a directory called `my-app` inside the current folder.
Inside that directory, it will generate the initial project structure and install the transitive dependencies: From 805ab399e1189a69e361fa1841fe2ee8dcbfcfda Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Sat, 23 Jun 2018 13:37:23 +0100 Subject: [PATCH 0024/1249] Add modes to our Babel preset (1.x) (#4668) --- packages/babel-preset-react-app/create.js | 135 +++++++++++++++++++ packages/babel-preset-react-app/dev.js | 11 ++ packages/babel-preset-react-app/index.js | 125 +---------------- packages/babel-preset-react-app/package.json | 6 +- packages/babel-preset-react-app/prod.js | 11 ++ packages/babel-preset-react-app/test.js | 11 ++ 6 files changed, 175 insertions(+), 124 deletions(-) create mode 100644 packages/babel-preset-react-app/create.js create mode 100644 packages/babel-preset-react-app/dev.js create mode 100644 packages/babel-preset-react-app/prod.js create mode 100644 packages/babel-preset-react-app/test.js diff --git a/packages/babel-preset-react-app/create.js b/packages/babel-preset-react-app/create.js new file mode 100644 index 00000000000..7156ff4ee8b --- /dev/null +++ b/packages/babel-preset-react-app/create.js @@ -0,0 +1,135 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +'use strict'; + +module.exports = function create(env) { + if (env !== 'development' && env !== 'test' && env !== 'production') { + throw new Error( + 'Using `babel-preset-react-app` requires that you specify `NODE_ENV` or ' + + '`BABEL_ENV` environment variables. Valid values are "development", ' + + '"test", and "production". Instead, received: ' + + JSON.stringify(env) + + '.' + ); + } + + const plugins = [ + // Necessary to include regardless of the environment because + // in practice some other transforms (such as object-rest-spread) + // don't work without it: https://github.com/babel/babel/issues/7215 + require.resolve('babel-plugin-transform-es2015-destructuring'), + // class { handleClick = () => { } } + require.resolve('babel-plugin-transform-class-properties'), + // The following two plugins use Object.assign directly, instead of Babel's + // extends helper. Note that this assumes `Object.assign` is available. + // { ...todo, completed: true } + [ + require.resolve('babel-plugin-transform-object-rest-spread'), + { + useBuiltIns: true, + }, + ], + // Transforms JSX + [ + require.resolve('babel-plugin-transform-react-jsx'), + { + useBuiltIns: true, + }, + ], + // Polyfills the runtime needed for async/await and generators + [ + require.resolve('babel-plugin-transform-runtime'), + { + helpers: false, + polyfill: false, + regenerator: true, + }, + ], + ]; + + if (env === 'development' || env === 'test') { + // The following two plugins are currently necessary to make React warnings + // include more valuable information. They are included here because they are + // currently not enabled in babel-preset-react. See the below threads for more info: + // https://github.com/babel/babel/issues/4702 + // https://github.com/babel/babel/pull/3540#issuecomment-228673661 + // https://github.com/facebookincubator/create-react-app/issues/989 + plugins.push.apply(plugins, [ + // Adds component stack to warning messages + require.resolve('babel-plugin-transform-react-jsx-source'), + // Adds __self attribute to JSX which React will use for some warnings + require.resolve('babel-plugin-transform-react-jsx-self'), + ]); + } + + if (env === 'test') { + return { + presets: [ + // ES features necessary for user's Node version + [ + require('babel-preset-env').default, + { + targets: { + node: 'current', + }, + }, + ], + // JSX, Flow + require.resolve('babel-preset-react'), + ], + plugins: plugins.concat([ + // Compiles import() to a deferred require() + require.resolve('babel-plugin-dynamic-import-node'), + ]), + }; + } else { + return { + presets: [ + // Latest stable ECMAScript features + [ + require.resolve('babel-preset-env'), + { + targets: { + // React parses on ie 9, so we should too + ie: 9, + // We currently minify with uglify + // Remove after https://github.com/mishoo/UglifyJS2/issues/448 + uglify: true, + }, + // Disable polyfill transforms + useBuiltIns: false, + // Do not transform modules to CJS + modules: false, + }, + ], + // JSX, Flow + require.resolve('babel-preset-react'), + ], + plugins: plugins.concat([ + // function* () { yield 42; yield 43; } + [ + require.resolve('babel-plugin-transform-regenerator'), + { + // Async functions are converted to generators by babel-preset-env + async: false, + }, + ], + // Adds syntax support for import() + require.resolve('babel-plugin-syntax-dynamic-import'), + ]), + }; + + if (env === 'production') { + // Optimization: hoist JSX that never changes out of render() + // Disabled because of issues: https://github.com/facebookincubator/create-react-app/issues/553 + // TODO: Enable again when these issues are resolved. + // plugins.push.apply(plugins, [ + // require.resolve('babel-plugin-transform-react-constant-elements') + // ]); + } + } +}; diff --git a/packages/babel-preset-react-app/dev.js b/packages/babel-preset-react-app/dev.js new file mode 100644 index 00000000000..399cfb708c3 --- /dev/null +++ b/packages/babel-preset-react-app/dev.js @@ -0,0 +1,11 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +'use strict'; + +const create = require('./create'); + +module.exports = create('development'); diff --git a/packages/babel-preset-react-app/index.js b/packages/babel-preset-react-app/index.js index d90fb6af50b..47b1c8949c1 100644 --- a/packages/babel-preset-react-app/index.js +++ b/packages/babel-preset-react-app/index.js @@ -6,39 +6,7 @@ */ 'use strict'; -const plugins = [ - // Necessary to include regardless of the environment because - // in practice some other transforms (such as object-rest-spread) - // don't work without it: https://github.com/babel/babel/issues/7215 - require.resolve('babel-plugin-transform-es2015-destructuring'), - // class { handleClick = () => { } } - require.resolve('babel-plugin-transform-class-properties'), - // The following two plugins use Object.assign directly, instead of Babel's - // extends helper. Note that this assumes `Object.assign` is available. - // { ...todo, completed: true } - [ - require.resolve('babel-plugin-transform-object-rest-spread'), - { - useBuiltIns: true, - }, - ], - // Transforms JSX - [ - require.resolve('babel-plugin-transform-react-jsx'), - { - useBuiltIns: true, - }, - ], - // Polyfills the runtime needed for async/await and generators - [ - require.resolve('babel-plugin-transform-runtime'), - { - helpers: false, - polyfill: false, - regenerator: true, - }, - ], -]; +const create = require('./create'); // This is similar to how `env` works in Babel: // https://babeljs.io/docs/usage/babelrc/#env-option @@ -47,94 +15,5 @@ const plugins = [ // https://github.com/facebookincubator/create-react-app/issues/720 // It’s also nice that we can enforce `NODE_ENV` being specified. var env = process.env.BABEL_ENV || process.env.NODE_ENV; -if (env !== 'development' && env !== 'test' && env !== 'production') { - throw new Error( - 'Using `babel-preset-react-app` requires that you specify `NODE_ENV` or ' + - '`BABEL_ENV` environment variables. Valid values are "development", ' + - '"test", and "production". Instead, received: ' + - JSON.stringify(env) + - '.' - ); -} -if (env === 'development' || env === 'test') { - // The following two plugins are currently necessary to make React warnings - // include more valuable information. They are included here because they are - // currently not enabled in babel-preset-react. See the below threads for more info: - // https://github.com/babel/babel/issues/4702 - // https://github.com/babel/babel/pull/3540#issuecomment-228673661 - // https://github.com/facebookincubator/create-react-app/issues/989 - plugins.push.apply(plugins, [ - // Adds component stack to warning messages - require.resolve('babel-plugin-transform-react-jsx-source'), - // Adds __self attribute to JSX which React will use for some warnings - require.resolve('babel-plugin-transform-react-jsx-self'), - ]); -} - -if (env === 'test') { - module.exports = { - presets: [ - // ES features necessary for user's Node version - [ - require('babel-preset-env').default, - { - targets: { - node: 'current', - }, - }, - ], - // JSX, Flow - require.resolve('babel-preset-react'), - ], - plugins: plugins.concat([ - // Compiles import() to a deferred require() - require.resolve('babel-plugin-dynamic-import-node'), - ]), - }; -} else { - module.exports = { - presets: [ - // Latest stable ECMAScript features - [ - require.resolve('babel-preset-env'), - { - targets: { - // React parses on ie 9, so we should too - ie: 9, - // We currently minify with uglify - // Remove after https://github.com/mishoo/UglifyJS2/issues/448 - uglify: true, - }, - // Disable polyfill transforms - useBuiltIns: false, - // Do not transform modules to CJS - modules: false, - }, - ], - // JSX, Flow - require.resolve('babel-preset-react'), - ], - plugins: plugins.concat([ - // function* () { yield 42; yield 43; } - [ - require.resolve('babel-plugin-transform-regenerator'), - { - // Async functions are converted to generators by babel-preset-env - async: false, - }, - ], - // Adds syntax support for import() - require.resolve('babel-plugin-syntax-dynamic-import'), - ]), - }; - - if (env === 'production') { - // Optimization: hoist JSX that never changes out of render() - // Disabled because of issues: https://github.com/facebookincubator/create-react-app/issues/553 - // TODO: Enable again when these issues are resolved. - // plugins.push.apply(plugins, [ - // require.resolve('babel-plugin-transform-react-constant-elements') - // ]); - } -} +module.exports = create(env); diff --git a/packages/babel-preset-react-app/package.json b/packages/babel-preset-react-app/package.json index c6a7e29441d..1610dbcd6e2 100644 --- a/packages/babel-preset-react-app/package.json +++ b/packages/babel-preset-react-app/package.json @@ -8,7 +8,11 @@ "url": "https://github.com/facebookincubator/create-react-app/issues" }, "files": [ - "index.js" + "index.js", + "create.js", + "dev.js", + "prod.js", + "test.js" ], "dependencies": { "babel-plugin-dynamic-import-node": "1.1.0", diff --git a/packages/babel-preset-react-app/prod.js b/packages/babel-preset-react-app/prod.js new file mode 100644 index 00000000000..bf7520c45b5 --- /dev/null +++ b/packages/babel-preset-react-app/prod.js @@ -0,0 +1,11 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +'use strict'; + +const create = require('./create'); + +module.exports = create('production'); diff --git a/packages/babel-preset-react-app/test.js b/packages/babel-preset-react-app/test.js new file mode 100644 index 00000000000..3202d288810 --- /dev/null +++ b/packages/babel-preset-react-app/test.js @@ -0,0 +1,11 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +'use strict'; + +const create = require('./create'); + +module.exports = create('test'); From 8de0412c54bee1bc4d783aa260dd6e9248316e0f Mon Sep 17 00:00:00 2001 From: Dan Date: Sat, 23 Jun 2018 13:38:59 +0100 Subject: [PATCH 0025/1249] babel-preset-react-app@3.1.2 --- packages/babel-preset-react-app/package.json | 2 +- packages/react-scripts/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/babel-preset-react-app/package.json b/packages/babel-preset-react-app/package.json index 1610dbcd6e2..81dd0fa1fe9 100644 --- a/packages/babel-preset-react-app/package.json +++ b/packages/babel-preset-react-app/package.json @@ -1,6 +1,6 @@ { "name": "babel-preset-react-app", - "version": "3.1.1", + "version": "3.1.2", "description": "Babel preset used by Create React App", "repository": "facebookincubator/create-react-app", "license": "MIT", diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index c33c3b4b5c4..1886de22830 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -26,7 +26,7 @@ "babel-eslint": "7.2.3", "babel-jest": "20.0.3", "babel-loader": "7.1.2", - "babel-preset-react-app": "^3.1.1", + "babel-preset-react-app": "^3.1.2", "babel-runtime": "6.26.0", "case-sensitive-paths-webpack-plugin": "2.1.1", "chalk": "1.1.3", From 1407287839f94151cec729bd89441d4eee7d9dd3 Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Sat, 23 Jun 2018 14:41:51 +0100 Subject: [PATCH 0026/1249] Add mode entry points to our preset (#4669) --- packages/babel-preset-react-app/create.js | 136 +++++++++++++++++++ packages/babel-preset-react-app/dev.js | 13 ++ packages/babel-preset-react-app/index.js | 129 +----------------- packages/babel-preset-react-app/package.json | 6 +- packages/babel-preset-react-app/prod.js | 13 ++ packages/babel-preset-react-app/test.js | 13 ++ 6 files changed, 183 insertions(+), 127 deletions(-) create mode 100644 packages/babel-preset-react-app/create.js create mode 100644 packages/babel-preset-react-app/dev.js create mode 100644 packages/babel-preset-react-app/prod.js create mode 100644 packages/babel-preset-react-app/test.js diff --git a/packages/babel-preset-react-app/create.js b/packages/babel-preset-react-app/create.js new file mode 100644 index 00000000000..2ead09570f6 --- /dev/null +++ b/packages/babel-preset-react-app/create.js @@ -0,0 +1,136 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +'use strict'; + +const validateBoolOption = (name, value, defaultValue) => { + if (typeof value === 'undefined') { + value = defaultValue; + } + + if (typeof value !== 'boolean') { + throw new Error(`Preset react-app: '${name}' option must be a boolean.`); + } + + return value; +}; + +module.exports = function(api, opts, env) { + if (!opts) { + opts = {}; + } + + var isEnvDevelopment = env === 'development'; + var isEnvProduction = env === 'production'; + var isEnvTest = env === 'test'; + var isFlowEnabled = validateBoolOption('flow', opts.flow, true); + + if (!isEnvDevelopment && !isEnvProduction && !isEnvTest) { + throw new Error( + 'Using `babel-preset-react-app` requires that you specify `NODE_ENV` or ' + + '`BABEL_ENV` environment variables. Valid values are "development", ' + + '"test", and "production". Instead, received: ' + + JSON.stringify(env) + + '.' + ); + } + + return { + presets: [ + isEnvTest && [ + // ES features necessary for user's Node version + require('@babel/preset-env').default, + { + targets: { + node: '6.12', + }, + }, + ], + (isEnvProduction || isEnvDevelopment) && [ + // Latest stable ECMAScript features + require('@babel/preset-env').default, + { + // `entry` transforms `@babel/polyfill` into individual requires for + // the targeted browsers. This is safer than `usage` which performs + // static code analysis to determine what's required. + // This is probably a fine default to help trim down bundles when + // end-users inevitably import '@babel/polyfill'. + useBuiltIns: 'entry', + // Do not transform modules to CJS + modules: false, + }, + ], + [ + require('@babel/preset-react').default, + { + // Adds component stack to warning messages + // Adds __self attribute to JSX which React will use for some warnings + development: isEnvDevelopment || isEnvTest, + // Will use the native built-in instead of trying to polyfill + // behavior for any plugins that require one. + useBuiltIns: true, + }, + ], + isFlowEnabled && [require('@babel/preset-flow').default], + ].filter(Boolean), + plugins: [ + // Experimental macros support. Will be documented after it's had some time + // in the wild. + require('babel-plugin-macros'), + // Necessary to include regardless of the environment because + // in practice some other transforms (such as object-rest-spread) + // don't work without it: https://github.com/babel/babel/issues/7215 + require('@babel/plugin-transform-destructuring').default, + // class { handleClick = () => { } } + // Enable loose mode to use assignment instead of defineProperty + // See discussion in https://github.com/facebook/create-react-app/issues/4263 + [ + require('@babel/plugin-proposal-class-properties').default, + { + loose: true, + }, + ], + // The following two plugins use Object.assign directly, instead of Babel's + // extends helper. Note that this assumes `Object.assign` is available. + // { ...todo, completed: true } + [ + require('@babel/plugin-proposal-object-rest-spread').default, + { + useBuiltIns: true, + }, + ], + // Polyfills the runtime needed for async/await and generators + [ + require('@babel/plugin-transform-runtime').default, + { + helpers: false, + polyfill: false, + regenerator: true, + }, + ], + isEnvProduction && [ + // Remove PropTypes from production build + require('babel-plugin-transform-react-remove-prop-types').default, + { + removeImport: true, + }, + ], + // function* () { yield 42; yield 43; } + !isEnvTest && [ + require('@babel/plugin-transform-regenerator').default, + { + // Async functions are converted to generators by @babel/preset-env + async: false, + }, + ], + // Adds syntax support for import() + require('@babel/plugin-syntax-dynamic-import').default, + isEnvTest && + // Transform dynamic import to require + require('babel-plugin-transform-dynamic-import').default, + ].filter(Boolean), + }; +}; diff --git a/packages/babel-preset-react-app/dev.js b/packages/babel-preset-react-app/dev.js new file mode 100644 index 00000000000..8eb986bd59c --- /dev/null +++ b/packages/babel-preset-react-app/dev.js @@ -0,0 +1,13 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +'use strict'; + +const create = require('./create'); + +module.exports = function(api, opts) { + return create(api, opts, 'development'); +}; diff --git a/packages/babel-preset-react-app/index.js b/packages/babel-preset-react-app/index.js index 72089b9b78b..621af951619 100644 --- a/packages/babel-preset-react-app/index.js +++ b/packages/babel-preset-react-app/index.js @@ -6,138 +6,15 @@ */ 'use strict'; -const validateBoolOption = (name, value, defaultValue) => { - if (typeof value === 'undefined') { - value = defaultValue; - } - - if (typeof value !== 'boolean') { - throw new Error(`Preset react-app: '${name}' option must be a boolean.`); - } - - return value; -}; +const create = require('./create'); module.exports = function(api, opts) { - if (!opts) { - opts = {}; - } - // This is similar to how `env` works in Babel: // https://babeljs.io/docs/usage/babelrc/#env-option // We are not using `env` because it’s ignored in versions > babel-core@6.10.4: // https://github.com/babel/babel/issues/4539 // https://github.com/facebook/create-react-app/issues/720 // It’s also nice that we can enforce `NODE_ENV` being specified. - var env = process.env.BABEL_ENV || process.env.NODE_ENV; - var isEnvDevelopment = env === 'development'; - var isEnvProduction = env === 'production'; - var isEnvTest = env === 'test'; - var isFlowEnabled = validateBoolOption('flow', opts.flow, true); - - if (!isEnvDevelopment && !isEnvProduction && !isEnvTest) { - throw new Error( - 'Using `babel-preset-react-app` requires that you specify `NODE_ENV` or ' + - '`BABEL_ENV` environment variables. Valid values are "development", ' + - '"test", and "production". Instead, received: ' + - JSON.stringify(env) + - '.' - ); - } - - return { - presets: [ - isEnvTest && [ - // ES features necessary for user's Node version - require('@babel/preset-env').default, - { - targets: { - node: '6.12', - }, - }, - ], - (isEnvProduction || isEnvDevelopment) && [ - // Latest stable ECMAScript features - require('@babel/preset-env').default, - { - // `entry` transforms `@babel/polyfill` into individual requires for - // the targeted browsers. This is safer than `usage` which performs - // static code analysis to determine what's required. - // This is probably a fine default to help trim down bundles when - // end-users inevitably import '@babel/polyfill'. - useBuiltIns: 'entry', - // Do not transform modules to CJS - modules: false, - }, - ], - [ - require('@babel/preset-react').default, - { - // Adds component stack to warning messages - // Adds __self attribute to JSX which React will use for some warnings - development: isEnvDevelopment || isEnvTest, - // Will use the native built-in instead of trying to polyfill - // behavior for any plugins that require one. - useBuiltIns: true, - }, - ], - isFlowEnabled && [require('@babel/preset-flow').default], - ].filter(Boolean), - plugins: [ - // Experimental macros support. Will be documented after it's had some time - // in the wild. - require('babel-plugin-macros'), - // Necessary to include regardless of the environment because - // in practice some other transforms (such as object-rest-spread) - // don't work without it: https://github.com/babel/babel/issues/7215 - require('@babel/plugin-transform-destructuring').default, - // class { handleClick = () => { } } - // Enable loose mode to use assignment instead of defineProperty - // See discussion in https://github.com/facebook/create-react-app/issues/4263 - [ - require('@babel/plugin-proposal-class-properties').default, - { - loose: true, - }, - ], - // The following two plugins use Object.assign directly, instead of Babel's - // extends helper. Note that this assumes `Object.assign` is available. - // { ...todo, completed: true } - [ - require('@babel/plugin-proposal-object-rest-spread').default, - { - useBuiltIns: true, - }, - ], - // Polyfills the runtime needed for async/await and generators - [ - require('@babel/plugin-transform-runtime').default, - { - helpers: false, - polyfill: false, - regenerator: true, - }, - ], - isEnvProduction && [ - // Remove PropTypes from production build - require('babel-plugin-transform-react-remove-prop-types').default, - { - removeImport: true, - }, - ], - // function* () { yield 42; yield 43; } - !isEnvTest && [ - require('@babel/plugin-transform-regenerator').default, - { - // Async functions are converted to generators by @babel/preset-env - async: false, - }, - ], - // Adds syntax support for import() - require('@babel/plugin-syntax-dynamic-import').default, - isEnvTest && - // Transform dynamic import to require - require('babel-plugin-transform-dynamic-import').default, - ].filter(Boolean), - }; + const env = process.env.BABEL_ENV || process.env.NODE_ENV; + return create(api, opts, env); }; diff --git a/packages/babel-preset-react-app/package.json b/packages/babel-preset-react-app/package.json index 32054a98747..27b70195299 100644 --- a/packages/babel-preset-react-app/package.json +++ b/packages/babel-preset-react-app/package.json @@ -9,7 +9,11 @@ }, "files": [ "index.js", - "dependencies.js" + "create.js", + "dependencies.js", + "dev.js", + "prod.js", + "test.js" ], "dependencies": { "@babel/core": "7.0.0-beta.46", diff --git a/packages/babel-preset-react-app/prod.js b/packages/babel-preset-react-app/prod.js new file mode 100644 index 00000000000..9e3697f3eea --- /dev/null +++ b/packages/babel-preset-react-app/prod.js @@ -0,0 +1,13 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +'use strict'; + +const create = require('./create'); + +module.exports = function(api, opts) { + return create(api, opts, 'production'); +}; diff --git a/packages/babel-preset-react-app/test.js b/packages/babel-preset-react-app/test.js new file mode 100644 index 00000000000..15558ff2c4b --- /dev/null +++ b/packages/babel-preset-react-app/test.js @@ -0,0 +1,13 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +'use strict'; + +const create = require('./create'); + +module.exports = function(api, opts) { + return create(api, opts, 'test'); +}; From d36603979591f37eed6f7a3efcba136e7547e75d Mon Sep 17 00:00:00 2001 From: Jack Zhao Date: Mon, 25 Jun 2018 08:29:54 -0700 Subject: [PATCH 0027/1249] Support scoped packages for cra --scripts-version option (#4677) --- packages/create-react-app/createReactApp.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/create-react-app/createReactApp.js b/packages/create-react-app/createReactApp.js index 7645af38872..fbf0f3c8160 100755 --- a/packages/create-react-app/createReactApp.js +++ b/packages/create-react-app/createReactApp.js @@ -214,7 +214,9 @@ function createApp(name, verbose, version, useNpm, template) { if (!semver.satisfies(process.version, '>=6.0.0')) { console.log( chalk.yellow( - `You are using Node ${process.version} so the project will be bootstrapped with an old unsupported version of tools.\n\n` + + `You are using Node ${ + process.version + } so the project will be bootstrapped with an old unsupported version of tools.\n\n` + `Please update to Node 6 or higher for a better, fully supported experience.\n` ) ); @@ -228,7 +230,9 @@ function createApp(name, verbose, version, useNpm, template) { if (npmInfo.npmVersion) { console.log( chalk.yellow( - `You are using npm ${npmInfo.npmVersion} so the project will be boostrapped with an old unsupported version of tools.\n\n` + + `You are using npm ${ + npmInfo.npmVersion + } so the project will be boostrapped with an old unsupported version of tools.\n\n` + `Please update to npm 3 or higher for a better, fully supported experience.\n` ) ); @@ -409,7 +413,7 @@ function getInstallPackage(version, originalDirectory) { if (validSemver) { packageToInstall += `@${validSemver}`; } else if (version) { - if (version[0] === '@') { + if (version[0] === '@' && version.indexOf('/') === -1) { packageToInstall += version; } else if (version.match(/^file:/)) { packageToInstall = `file:${path.resolve( From ea7b37414aa887dfe7722bbc1c85b3291083053a Mon Sep 17 00:00:00 2001 From: "Kent C. Dodds" Date: Tue, 26 Jun 2018 10:45:00 -0600 Subject: [PATCH 0028/1249] add react-testing-library documentation/examples (#4679) * add react-testing-library documentation/examples * make react-testing-library a heading * fix typo --- packages/react-scripts/template/README.md | 42 +++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/packages/react-scripts/template/README.md b/packages/react-scripts/template/README.md index 479d632a5f0..388b73d8d36 100644 --- a/packages/react-scripts/template/README.md +++ b/packages/react-scripts/template/README.md @@ -1428,6 +1428,48 @@ Import it in [`src/setupTests.js`](#initializing-test-environment) to make its m import 'jest-enzyme'; ``` +#### Use `react-testing-library` + +As an alternative or companion to `enzyme`, you may consider using `react-testing-library`. [`react-testing-library`](https://github.com/kentcdodds/react-testing-library) is a library for testing React components in a way that resembles the way the components are used by end users. It is well suited for unit, integration, and end-to-end testing of React components and applications. It works more directly with DOM nodes, and therefore it's recommended to use with [`jest-dom`](https://github.com/gnapse/jest-dom) for improved assertions. + +To install `react-testing-library` and `jest-dom`, you can run: + +```sh +npm install --save react-testing-library jest-dom +``` + +Alternatively you may use `yarn`: + +```sh +yarn add react-testing-library jest-dom +``` + +Similar to `enzyme` you can create a `src/setupTests.js` file to avoid boilerplate in your test files: + +```js +// react-testing-library renders your components to document.body, +// this will ensure they're removed after each test. +import 'react-testing-library/cleanup-after-each'; + +// this adds jest-dom's custom assertions +import 'jest-dom/extend-expect'; +``` + +Here's an example of using `react-testing-library` and `jest-dom` for testing that the `` component renders "Welcome to React". + +```js +import React from 'react'; +import { render } from 'react-testing-library'; +import App from './App'; + +it('renders welcome message', () => { + const { getByText } = render(); + expect(getByText('Welcome to React')).toBeInTheDOM(); +}); +``` + +Learn more about the utilities provided by `react-testing-library` to facilitate testing asynchronous interactions as well as selecting form elements from [the `react-testing-library` documentation](https://github.com/kentcdodds/react-testing-library) and [examples](https://codesandbox.io/s/github/kentcdodds/react-testing-library-examples). + ### Using Third Party Assertion Libraries We recommend that you use `expect()` for assertions and `jest.fn()` for spies. If you are having issues with them please [file those against Jest](https://github.com/facebook/jest/issues/new), and we’ll fix them. We intend to keep making them better for React, supporting, for example, [pretty-printing React elements as JSX](https://github.com/facebook/jest/pull/1566). From 26f701fd60cece427d0e6c5a0ae98a5c79993640 Mon Sep 17 00:00:00 2001 From: Ideveloper Date: Sat, 30 Jun 2018 10:24:38 +0900 Subject: [PATCH 0029/1249] Suggest `reactstrap` instead of `react-bootstrap` (#4703) * Suggest `reactstrap` instead of `react-bootstrap` * Update README.md --- packages/react-scripts/template/README.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/packages/react-scripts/template/README.md b/packages/react-scripts/template/README.md index fe3b767cdcf..bee26042101 100644 --- a/packages/react-scripts/template/README.md +++ b/packages/react-scripts/template/README.md @@ -841,36 +841,35 @@ Alternatively, you can force the linter to ignore any line by adding `// eslint- ## Adding Bootstrap -You don’t have to use [React Bootstrap](https://react-bootstrap.github.io) together with React but it is a popular library for integrating Bootstrap with React apps. If you need it, you can integrate it with Create React App by following these steps: +You don’t have to use [reactstrap](https://reactstrap.github.io/) together with React but it is a popular library for integrating Bootstrap with React apps. If you need it, you can integrate it with Create React App by following these steps: -Install React Bootstrap and Bootstrap from npm. React Bootstrap does not include Bootstrap CSS so this needs to be installed as well: +Install reactstrap and Bootstrap from npm. reactstrap does not include Bootstrap CSS so this needs to be installed as well: ```sh -npm install --save react-bootstrap bootstrap@3 +npm install --save reactstrap bootstrap@4 ``` Alternatively you may use `yarn`: ```sh -yarn add react-bootstrap bootstrap@3 +yarn add bootstrap@4 reactstrap ``` Import Bootstrap CSS and optionally Bootstrap theme CSS in the beginning of your ```src/index.js``` file: ```js import 'bootstrap/dist/css/bootstrap.css'; -import 'bootstrap/dist/css/bootstrap-theme.css'; // Put any other imports below so that CSS from your // components takes precedence over default styles. ``` -Import required React Bootstrap components within ```src/App.js``` file or your custom component files: +Import required reactstrap components within ```src/App.js``` file or your custom component files: ```js -import { Navbar, Jumbotron, Button } from 'react-bootstrap'; +import { Button } from 'reactstrap'; ``` -Now you are ready to use the imported React Bootstrap components within your component hierarchy defined in the render method. Here is an example [`App.js`](https://gist.githubusercontent.com/gaearon/85d8c067f6af1e56277c82d19fd4da7b/raw/6158dd991b67284e9fc8d70b9d973efe87659d72/App.js) redone using React Bootstrap. +Now you are ready to use the imported reactstrap components within your component hierarchy defined in the render method. Here is an example [`App.js`](https://gist.githubusercontent.com/zx6658/d9f128cd57ca69e583ea2b5fea074238/raw/a56701c142d0c622eb6c20a457fbc01d708cb485/App.js) redone using reactstrap. ### Using a Custom Theme From 4a87838f527a00be6af42099546ff5d3adf63a6a Mon Sep 17 00:00:00 2001 From: Miguel Palau Date: Thu, 5 Jul 2018 11:40:55 -0500 Subject: [PATCH 0030/1249] remove extra dot on devtool link comment (#4741) --- packages/react-scripts/config/webpack.config.dev.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/config/webpack.config.dev.js b/packages/react-scripts/config/webpack.config.dev.js index 3f43528ccd8..db371dda6e8 100644 --- a/packages/react-scripts/config/webpack.config.dev.js +++ b/packages/react-scripts/config/webpack.config.dev.js @@ -76,7 +76,7 @@ const getStyleLoaders = (cssOptions, preProcessor) => { module.exports = { mode: 'development', // You may want 'eval' instead if you prefer to see the compiled output in DevTools. - // See the discussion in https://github.com/facebook/create-react-app/issues/343. + // See the discussion in https://github.com/facebook/create-react-app/issues/343 devtool: 'cheap-module-source-map', // These are the "entry points" to our application. // This means they will be the "root" imports that are included in JS bundle. From 706b319633a59e1e0d58f1bb957e9d30d172f9d8 Mon Sep 17 00:00:00 2001 From: Mike Wilcox Date: Thu, 5 Jul 2018 12:46:24 -0400 Subject: [PATCH 0031/1249] Fix typo (#4738) --- packages/react-scripts/template/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/template/README.md b/packages/react-scripts/template/README.md index bee26042101..48a48737274 100644 --- a/packages/react-scripts/template/README.md +++ b/packages/react-scripts/template/README.md @@ -2613,7 +2613,7 @@ import moment from 'moment'; import 'moment/locale/fr'; ``` -If import multiple locales this way, you can later switch between them by calling `moment.locale()` with the locale name: +If you are importing multiple locales this way, you can later switch between them by calling `moment.locale()` with the locale name: ```js import moment from 'moment'; From 366e5d3475fa21fe4743c6865b870d9f0e2bbbcc Mon Sep 17 00:00:00 2001 From: Jack Zhao Date: Sun, 15 Jul 2018 11:21:32 -0700 Subject: [PATCH 0032/1249] [internal] Separate out kitchensink test into two (#4767) * support scoped packages for cra --scripts-version option * seperate out kitchensink test * add eject to node 6 testing * travis node 6 eject * fix CI warnings --- .travis.yml | 4 + appveyor.yml | 4 + .../kitchensink/integration/env.test.js | 5 + .../kitchensink/integration/initDOM.js | 1 + .../kitchensink/integration/syntax.test.js | 15 ++ .../kitchensink/integration/webpack.test.js | 71 ++++--- tasks/e2e-kitchensink-eject.sh | 174 ++++++++++++++++++ tasks/e2e-kitchensink.sh | 50 ----- 8 files changed, 249 insertions(+), 75 deletions(-) create mode 100755 tasks/e2e-kitchensink-eject.sh diff --git a/.travis.yml b/.travis.yml index f27e0e9a2b8..6dbea3e4ee5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,6 +14,7 @@ script: - 'if [ $TEST_SUITE = "simple" ]; then tasks/e2e-simple.sh; fi' - 'if [ $TEST_SUITE = "installs" ]; then tasks/e2e-installs.sh; fi' - 'if [ $TEST_SUITE = "kitchensink" ]; then tasks/e2e-kitchensink.sh; fi' + - 'if [ $TEST_SUITE = "kitchensink-eject" ]; then tasks/e2e-kitchensink-eject.sh; fi' - 'if [ $TEST_SUITE = "old-node" ]; then tasks/e2e-old-node.sh; fi' - 'if [ $TEST_SUITE = "monorepos" ]; then tasks/e2e-monorepos.sh; fi' env: @@ -21,6 +22,7 @@ env: - TEST_SUITE=simple - TEST_SUITE=installs - TEST_SUITE=kitchensink + - TEST_SUITE=kitchensink-eject - TEST_SUITE=monorepos matrix: include: @@ -28,3 +30,5 @@ matrix: env: TEST_SUITE=old-node - node_js: 6 env: TEST_SUITE=kitchensink + - node_js: 6 + env: TEST_SUITE=kitchensink-eject diff --git a/appveyor.yml b/appveyor.yml index db1d640caa1..9cb7b58f8a4 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -8,6 +8,8 @@ environment: test_suite: "installs" - nodejs_version: 8 test_suite: "kitchensink" + - nodejs_version: 8 + test_suite: "kitchensink-eject" - nodejs_version: 8 test_suite: "monorepos" - nodejs_version: 6 @@ -16,6 +18,8 @@ environment: test_suite: "installs" - nodejs_version: 6 test_suite: "kitchensink" + - nodejs_version: 6 + test_suite: "kitchensink-eject" - nodejs_version: 6 test_suite: "monorepos" cache: diff --git a/packages/react-scripts/fixtures/kitchensink/integration/env.test.js b/packages/react-scripts/fixtures/kitchensink/integration/env.test.js index 43badcbde8e..b1f5f5d5544 100644 --- a/packages/react-scripts/fixtures/kitchensink/integration/env.test.js +++ b/packages/react-scripts/fixtures/kitchensink/integration/env.test.js @@ -35,6 +35,7 @@ describe('Integration', () => { 'x-from-development-env' ); } + doc.defaultView.close(); }); it('NODE_PATH', async () => { @@ -43,6 +44,7 @@ describe('Integration', () => { expect( doc.getElementById('feature-node-path').childElementCount ).to.equal(4); + doc.defaultView.close(); }); it('PUBLIC_URL', async () => { @@ -58,6 +60,7 @@ describe('Integration', () => { expect( doc.querySelector('head link[rel="shortcut icon"]').getAttribute('href') ).to.equal(`${prefix}/favicon.ico`); + doc.defaultView.close(); }); it('shell env variables', async () => { @@ -66,6 +69,7 @@ describe('Integration', () => { expect( doc.getElementById('feature-shell-env-variables').textContent ).to.equal('fromtheshell.'); + doc.defaultView.close(); }); it('expand .env variables', async () => { @@ -83,6 +87,7 @@ describe('Integration', () => { expect( doc.getElementById('feature-expand-env-existing').textContent ).to.equal('fromtheshell'); + doc.defaultView.close(); }); }); }); diff --git a/packages/react-scripts/fixtures/kitchensink/integration/initDOM.js b/packages/react-scripts/fixtures/kitchensink/integration/initDOM.js index 36e8de9999f..0ed5a940891 100644 --- a/packages/react-scripts/fixtures/kitchensink/integration/initDOM.js +++ b/packages/react-scripts/fixtures/kitchensink/integration/initDOM.js @@ -62,6 +62,7 @@ export default feature => created: (_, win) => win.addEventListener('ReactFeatureDidMount', () => resolve(doc), true), deferClose: true, + pretendToBeVisual: true, resourceLoader, url: `${host}#${feature}`, virtualConsole: jsdom.createVirtualConsole().sendTo(console), diff --git a/packages/react-scripts/fixtures/kitchensink/integration/syntax.test.js b/packages/react-scripts/fixtures/kitchensink/integration/syntax.test.js index 82e2c9e0db2..9e34b669d6e 100644 --- a/packages/react-scripts/fixtures/kitchensink/integration/syntax.test.js +++ b/packages/react-scripts/fixtures/kitchensink/integration/syntax.test.js @@ -16,6 +16,7 @@ describe('Integration', () => { expect( doc.getElementById('feature-array-destructuring').childElementCount ).to.equal(4); + doc.defaultView.close(); }); it('array spread', async () => { @@ -24,6 +25,7 @@ describe('Integration', () => { expect( doc.getElementById('feature-array-spread').childElementCount ).to.equal(4); + doc.defaultView.close(); }); it('async/await', async () => { @@ -32,6 +34,7 @@ describe('Integration', () => { expect( doc.getElementById('feature-async-await').childElementCount ).to.equal(4); + doc.defaultView.close(); }); it('class properties', async () => { @@ -40,6 +43,7 @@ describe('Integration', () => { expect( doc.getElementById('feature-class-properties').childElementCount ).to.equal(4); + doc.defaultView.close(); }); it('computed properties', async () => { @@ -48,6 +52,7 @@ describe('Integration', () => { expect( doc.getElementById('feature-computed-properties').childElementCount ).to.equal(4); + doc.defaultView.close(); }); it('custom interpolation', async () => { @@ -56,6 +61,7 @@ describe('Integration', () => { expect( doc.getElementById('feature-custom-interpolation').childElementCount ).to.equal(4); + doc.defaultView.close(); }); it('default parameters', async () => { @@ -64,6 +70,7 @@ describe('Integration', () => { expect( doc.getElementById('feature-default-parameters').childElementCount ).to.equal(4); + doc.defaultView.close(); }); it('destructuring and await', async () => { @@ -72,6 +79,7 @@ describe('Integration', () => { expect( doc.getElementById('feature-destructuring-and-await').childElementCount ).to.equal(4); + doc.defaultView.close(); }); it('generators', async () => { @@ -80,6 +88,7 @@ describe('Integration', () => { expect( doc.getElementById('feature-generators').childElementCount ).to.equal(4); + doc.defaultView.close(); }); it('object destructuring', async () => { @@ -88,6 +97,7 @@ describe('Integration', () => { expect( doc.getElementById('feature-object-destructuring').childElementCount ).to.equal(4); + doc.defaultView.close(); }); it('object spread', async () => { @@ -96,6 +106,7 @@ describe('Integration', () => { expect( doc.getElementById('feature-object-spread').childElementCount ).to.equal(4); + doc.defaultView.close(); }); it('promises', async () => { @@ -104,6 +115,7 @@ describe('Integration', () => { expect(doc.getElementById('feature-promises').childElementCount).to.equal( 4 ); + doc.defaultView.close(); }); it('rest + default', async () => { @@ -112,6 +124,7 @@ describe('Integration', () => { expect( doc.getElementById('feature-rest-and-default').childElementCount ).to.equal(4); + doc.defaultView.close(); }); it('rest parameters', async () => { @@ -120,6 +133,7 @@ describe('Integration', () => { expect( doc.getElementById('feature-rest-parameters').childElementCount ).to.equal(4); + doc.defaultView.close(); }); it('template interpolation', async () => { @@ -128,6 +142,7 @@ describe('Integration', () => { expect( doc.getElementById('feature-template-interpolation').childElementCount ).to.equal(4); + doc.defaultView.close(); }); }); }); diff --git a/packages/react-scripts/fixtures/kitchensink/integration/webpack.test.js b/packages/react-scripts/fixtures/kitchensink/integration/webpack.test.js index ff3d383219d..4aca73603dd 100644 --- a/packages/react-scripts/fixtures/kitchensink/integration/webpack.test.js +++ b/packages/react-scripts/fixtures/kitchensink/integration/webpack.test.js @@ -11,63 +11,75 @@ import url from 'url'; const matchCSS = (doc, regexes) => { if (process.env.E2E_FILE) { - const elements = doc.getElementsByTagName('link'); - let href = ""; - for (const elem of elements) { - if (elem.rel === 'stylesheet') { - href = elem.href; - } + const elements = doc.getElementsByTagName('link'); + let href = ''; + for (const elem of elements) { + if (elem.rel === 'stylesheet') { + href = elem.href; } - resourceLoader( - { url: url.parse(href) }, - (_, textContent) => { - for (const regex of regexes) { - expect(textContent).to.match(regex); - } - } - ); - + } + resourceLoader({ url: url.parse(href) }, (_, textContent) => { + for (const regex of regexes) { + expect(textContent).to.match(regex); + } + }); } else { for (let i = 0; i < regexes.length; ++i) { - expect(doc.getElementsByTagName('style')[i].textContent.replace(/\s/g, '')).to.match(regexes[i]); + expect( + doc.getElementsByTagName('style')[i].textContent.replace(/\s/g, '') + ).to.match(regexes[i]); } } -} +}; describe('Integration', () => { describe('Webpack plugins', () => { it('css inclusion', async () => { const doc = await initDOM('css-inclusion'); - matchCSS(doc, [/html\{/, /#feature-css-inclusion\{background:.+;color:.+}/]); + matchCSS(doc, [ + /html\{/, + /#feature-css-inclusion\{background:.+;color:.+}/, + ]); + doc.defaultView.close(); }); it('css modules inclusion', async () => { const doc = await initDOM('css-modules-inclusion'); - matchCSS(doc, [/.+style_cssModulesInclusion__.+\{background:.+;color:.+}/, - /.+assets_cssModulesIndexInclusion__.+\{background:.+;color:.+}/]); + matchCSS(doc, [ + /.+style_cssModulesInclusion__.+\{background:.+;color:.+}/, + /.+assets_cssModulesIndexInclusion__.+\{background:.+;color:.+}/, + ]); + doc.defaultView.close(); }); it('scss inclusion', async () => { const doc = await initDOM('scss-inclusion'); matchCSS(doc, [/#feature-scss-inclusion\{background:.+;color:.+}/]); + doc.defaultView.close(); }); it('scss modules inclusion', async () => { const doc = await initDOM('scss-modules-inclusion'); - matchCSS(doc, [/.+scss-styles_scssModulesInclusion.+\{background:.+;color:.+}/, - /.+assets_scssModulesIndexInclusion.+\{background:.+;color:.+}/]); - + matchCSS(doc, [ + /.+scss-styles_scssModulesInclusion.+\{background:.+;color:.+}/, + /.+assets_scssModulesIndexInclusion.+\{background:.+;color:.+}/, + ]); + doc.defaultView.close(); }); it('sass inclusion', async () => { const doc = await initDOM('sass-inclusion'); matchCSS(doc, [/#feature-sass-inclusion\{background:.+;color:.+}/]); + doc.defaultView.close(); }); it('sass modules inclusion', async () => { const doc = await initDOM('sass-modules-inclusion'); - matchCSS(doc, [/.+sass-styles_sassModulesInclusion.+\{background:.+;color:.+}/, - /.+assets_sassModulesIndexInclusion.+\{background:.+;color:.+}/]); + matchCSS(doc, [ + /.+sass-styles_sassModulesInclusion.+\{background:.+;color:.+}/, + /.+assets_sassModulesIndexInclusion.+\{background:.+;color:.+}/, + ]); + doc.defaultView.close(); }); it('graphql files inclusion', async () => { @@ -78,6 +90,7 @@ describe('Integration', () => { expect(children[0].textContent.replace(/\s/g, '')).to.equal( '{"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","variableDefinitions":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"test"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"test"},"value":{"kind":"StringValue","value":"test","block":false}}],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"test"},"arguments":[],"directives":[]}]}}]}}],"loc":{"start":0,"end":40,"source":{"body":"{\\ntest(test:\\"test\\"){\\ntest\\n}\\n}\\n","name":"GraphQLrequest","locationOffset":{"line":1,"column":1}}}}' ); + doc.defaultView.close(); }); it('image inclusion', async () => { @@ -86,6 +99,7 @@ describe('Integration', () => { expect(doc.getElementById('feature-image-inclusion').src).to.match( /^data:image\/jpeg;base64.+==$/ ); + doc.defaultView.close(); }); it('no ext inclusion', async () => { @@ -94,6 +108,7 @@ describe('Integration', () => { expect(doc.getElementById('feature-no-ext-inclusion').href).to.match( /\/static\/media\/aFileWithoutExt\.[a-f0-9]{8}\.bin$/ ); + doc.defaultView.close(); }); it('json inclusion', async () => { @@ -102,6 +117,7 @@ describe('Integration', () => { expect(doc.getElementById('feature-json-inclusion').textContent).to.equal( 'This is an abstract.' ); + doc.defaultView.close(); }); it('linked modules', async () => { @@ -110,6 +126,7 @@ describe('Integration', () => { expect(doc.getElementById('feature-linked-modules').textContent).to.equal( '2.0.0' ); + doc.defaultView.close(); }); it('svg inclusion', async () => { @@ -117,6 +134,7 @@ describe('Integration', () => { expect(doc.getElementById('feature-svg-inclusion').src).to.match( /\/static\/media\/logo\..+\.svg$/ ); + doc.defaultView.close(); }); it('svg component', async () => { @@ -125,11 +143,13 @@ describe('Integration', () => { expect(doc.getElementById('feature-svg-component').textContent).to.equal( '' ); + doc.defaultView.close(); }); it('svg in css', async () => { const doc = await initDOM('svg-in-css'); matchCSS(doc, [/\/static\/media\/logo\..+\.svg/]); + doc.defaultView.close(); }); it('unknown ext inclusion', async () => { @@ -138,6 +158,7 @@ describe('Integration', () => { expect(doc.getElementById('feature-unknown-ext-inclusion').href).to.match( /\/static\/media\/aFileWithExt\.[a-f0-9]{8}\.unknown$/ ); + doc.defaultView.close(); }); }); }); diff --git a/tasks/e2e-kitchensink-eject.sh b/tasks/e2e-kitchensink-eject.sh new file mode 100755 index 00000000000..76a50f1b8be --- /dev/null +++ b/tasks/e2e-kitchensink-eject.sh @@ -0,0 +1,174 @@ +#!/bin/bash +# Copyright (c) 2015-present, Facebook, Inc. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +# ****************************************************************************** +# This is an end-to-end kitchensink test intended to run on CI. +# You can also run it locally but it's slow. +# ****************************************************************************** + +# Start in tasks/ even if run from root directory +cd "$(dirname "$0")" + +# CLI, app, and test module temporary locations +# http://unix.stackexchange.com/a/84980 +temp_app_path=`mktemp -d 2>/dev/null || mktemp -d -t 'temp_app_path'` +temp_module_path=`mktemp -d 2>/dev/null || mktemp -d -t 'temp_module_path'` +custom_registry_url=http://localhost:4873 +original_npm_registry_url=`npm get registry` +original_yarn_registry_url=`yarn config get registry` + +function cleanup { + echo 'Cleaning up.' + unset BROWSERSLIST + ps -ef | grep 'react-scripts' | grep -v grep | awk '{print $2}' | xargs kill -9 + cd "$root_path" + # TODO: fix "Device or resource busy" and remove ``|| $CI` + rm -rf "$temp_app_path" "$temp_module_path" || $CI + npm set registry "$original_npm_registry_url" + yarn config set registry "$original_yarn_registry_url" +} + +# Error messages are redirected to stderr +function handle_error { + echo "$(basename $0): ERROR! An error was encountered executing line $1." 1>&2; + cleanup + echo 'Exiting with error.' 1>&2; + exit 1 +} + +function handle_exit { + cleanup + echo 'Exiting without error.' 1>&2; + exit +} + +# Check for the existence of one or more files. +function exists { + for f in $*; do + test -e "$f" + done +} + +# Exit the script with a helpful error message when any error is encountered +trap 'set +x; handle_error $LINENO $BASH_COMMAND' ERR + +# Cleanup before exit on any termination signal +trap 'set +x; handle_exit' SIGQUIT SIGTERM SIGINT SIGKILL SIGHUP + +# Echo every command being executed +set -x + +# Go to root +cd .. +root_path=$PWD + +if hash npm 2>/dev/null +then + npm i -g npm@latest +fi + +# Bootstrap monorepo +yarn + +# ****************************************************************************** +# First, publish the monorepo. +# ****************************************************************************** + +# Start local registry +tmp_registry_log=`mktemp` +nohup npx verdaccio@3.2.0 -c tasks/verdaccio.yaml &>$tmp_registry_log & +# Wait for `verdaccio` to boot +grep -q 'http address' <(tail -f $tmp_registry_log) + +# Set registry to local registry +npm set registry "$custom_registry_url" +yarn config set registry "$custom_registry_url" + +# Login so we can publish packages +(cd && npx npm-auth-to-token@1.0.0 -u user -p password -e user@example.com -r "$custom_registry_url") + +# Publish the monorepo +git clean -df +./tasks/publish.sh --yes --force-publish=* --skip-git --cd-version=prerelease --exact --npm-tag=latest + +# ****************************************************************************** +# Now that we have published them, create a clean app folder and install them. +# ****************************************************************************** + +# Install the app in a temporary location +cd $temp_app_path +npx create-react-app --internal-testing-template="$root_path"/packages/react-scripts/fixtures/kitchensink test-kitchensink + +# Install the test module +cd "$temp_module_path" +yarn add test-integrity@^2.0.1 + +# ****************************************************************************** +# Now that we used create-react-app to create an app depending on react-scripts, +# let's make sure all npm scripts are in the working state. +# ****************************************************************************** + +# Enter the app directory +cd "$temp_app_path/test-kitchensink" + +# In kitchensink, we want to test all transforms +export BROWSERSLIST='ie 9' + +# Link to test module +npm link "$temp_module_path/node_modules/test-integrity" + +# ****************************************************************************** +# Finally, let's check that everything still works after ejecting. +# ****************************************************************************** + +# Eject... +echo yes | npm run eject + +# Link to test module +npm link "$temp_module_path/node_modules/test-integrity" + +# Test the build +REACT_APP_SHELL_ENV_MESSAGE=fromtheshell \ + NODE_PATH=src \ + PUBLIC_URL=http://www.example.org/spa/ \ + yarn build + +# Check for expected output +exists build/*.html +exists build/static/js/main.*.js + +# Unit tests +REACT_APP_SHELL_ENV_MESSAGE=fromtheshell \ + CI=true \ + NODE_PATH=src \ + NODE_ENV=test \ + yarn test --no-cache --testPathPattern=src + +# Test "development" environment +tmp_server_log=`mktemp` +PORT=3002 \ + REACT_APP_SHELL_ENV_MESSAGE=fromtheshell \ + NODE_PATH=src \ + nohup yarn start &>$tmp_server_log & +grep -q 'You can now view' <(tail -f $tmp_server_log) +E2E_URL="http://localhost:3002" \ + REACT_APP_SHELL_ENV_MESSAGE=fromtheshell \ + CI=true NODE_PATH=src \ + NODE_ENV=development \ + BABEL_ENV=test \ + node_modules/.bin/mocha --compilers js:@babel/register --require @babel/polyfill integration/*.test.js + +# Test "production" environment +E2E_FILE=./build/index.html \ + CI=true \ + NODE_ENV=production \ + BABEL_ENV=test \ + NODE_PATH=src \ + PUBLIC_URL=http://www.example.org/spa/ \ + node_modules/.bin/mocha --compilers js:@babel/register --require @babel/polyfill integration/*.test.js + +# Cleanup +cleanup diff --git a/tasks/e2e-kitchensink.sh b/tasks/e2e-kitchensink.sh index 833956d0c0e..c79f9f77a10 100755 --- a/tasks/e2e-kitchensink.sh +++ b/tasks/e2e-kitchensink.sh @@ -161,55 +161,5 @@ E2E_FILE=./build/index.html \ PUBLIC_URL=http://www.example.org/spa/ \ node_modules/.bin/mocha --compilers js:@babel/register --require @babel/polyfill integration/*.test.js -# ****************************************************************************** -# Finally, let's check that everything still works after ejecting. -# ****************************************************************************** - -# Eject... -echo yes | npm run eject - -# Link to test module -npm link "$temp_module_path/node_modules/test-integrity" - -# Test the build -REACT_APP_SHELL_ENV_MESSAGE=fromtheshell \ - NODE_PATH=src \ - PUBLIC_URL=http://www.example.org/spa/ \ - yarn build - -# Check for expected output -exists build/*.html -exists build/static/js/main.*.js - -# Unit tests -REACT_APP_SHELL_ENV_MESSAGE=fromtheshell \ - CI=true \ - NODE_PATH=src \ - NODE_ENV=test \ - yarn test --no-cache --testPathPattern=src - -# Test "development" environment -tmp_server_log=`mktemp` -PORT=3002 \ - REACT_APP_SHELL_ENV_MESSAGE=fromtheshell \ - NODE_PATH=src \ - nohup yarn start &>$tmp_server_log & -grep -q 'You can now view' <(tail -f $tmp_server_log) -E2E_URL="http://localhost:3002" \ - REACT_APP_SHELL_ENV_MESSAGE=fromtheshell \ - CI=true NODE_PATH=src \ - NODE_ENV=development \ - BABEL_ENV=test \ - node_modules/.bin/mocha --compilers js:@babel/register --require @babel/polyfill integration/*.test.js - -# Test "production" environment -E2E_FILE=./build/index.html \ - CI=true \ - NODE_ENV=production \ - BABEL_ENV=test \ - NODE_PATH=src \ - PUBLIC_URL=http://www.example.org/spa/ \ - node_modules/.bin/mocha --compilers js:@babel/register --require @babel/polyfill integration/*.test.js - # Cleanup cleanup From 92d9c5ada40c815dde8948acb96ccbd5636a4e7f Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Sun, 15 Jul 2018 22:26:42 -0600 Subject: [PATCH 0033/1249] Add Node 10 to CI config and remove Node 6 (#4383) * Add Node 10 to Travis config. Remove Node 6. * Add Node 10 to Appveyor config. Remove Node 6. * Remove node 9 from travis config. * Increase mocha timeout. * Update minimum Node version to 8. * Update yarn to latest on Travis. * Update old-node test to use Node 4. * Increase mocha timeout in kitchensink-eject tests. * Update yarn to latest on Appveyor. --- .travis.yml | 13 ++++++------- appveyor.yml | 24 ++++++++++++++---------- packages/create-react-app/index.js | 4 ++-- tasks/e2e-kitchensink-eject.sh | 4 ++-- tasks/e2e-kitchensink.sh | 4 ++-- tasks/local-test.sh | 4 ++-- 6 files changed, 28 insertions(+), 25 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6dbea3e4ee5..a014151cf6a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,20 +3,23 @@ dist: trusty language: node_js node_js: - 8 - - 9 + - 10 cache: directories: - node_modules - packages/create-react-app/node_modules - packages/react-scripts/node_modules +before_install: + - curl -o- -L https://yarnpkg.com/install.sh | bash + - export PATH="$HOME/.yarn/bin:$PATH" install: true script: - 'if [ $TEST_SUITE = "simple" ]; then tasks/e2e-simple.sh; fi' - 'if [ $TEST_SUITE = "installs" ]; then tasks/e2e-installs.sh; fi' - 'if [ $TEST_SUITE = "kitchensink" ]; then tasks/e2e-kitchensink.sh; fi' - 'if [ $TEST_SUITE = "kitchensink-eject" ]; then tasks/e2e-kitchensink-eject.sh; fi' - - 'if [ $TEST_SUITE = "old-node" ]; then tasks/e2e-old-node.sh; fi' - 'if [ $TEST_SUITE = "monorepos" ]; then tasks/e2e-monorepos.sh; fi' + - 'if [ $TEST_SUITE = "old-node" ]; then tasks/e2e-old-node.sh; fi' env: matrix: - TEST_SUITE=simple @@ -26,9 +29,5 @@ env: - TEST_SUITE=monorepos matrix: include: - - node_js: 0.10 + - node_js: 4 env: TEST_SUITE=old-node - - node_js: 6 - env: TEST_SUITE=kitchensink - - node_js: 6 - env: TEST_SUITE=kitchensink-eject diff --git a/appveyor.yml b/appveyor.yml index 9cb7b58f8a4..a4315250399 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -2,25 +2,25 @@ image: Visual Studio 2017 environment: matrix: - - nodejs_version: 8 + - nodejs_version: 10 test_suite: "simple" - - nodejs_version: 8 + - nodejs_version: 10 test_suite: "installs" - - nodejs_version: 8 + - nodejs_version: 10 test_suite: "kitchensink" - - nodejs_version: 8 + - nodejs_version: 10 test_suite: "kitchensink-eject" - - nodejs_version: 8 + - nodejs_version: 10 test_suite: "monorepos" - - nodejs_version: 6 + - nodejs_version: 8 test_suite: "simple" - - nodejs_version: 6 + - nodejs_version: 8 test_suite: "installs" - - nodejs_version: 6 + - nodejs_version: 8 test_suite: "kitchensink" - - nodejs_version: 6 + - nodejs_version: 8 test_suite: "kitchensink-eject" - - nodejs_version: 6 + - nodejs_version: 8 test_suite: "monorepos" cache: - node_modules -> appveyor.cleanup-cache.txt @@ -36,6 +36,9 @@ platform: install: - ps: Install-Product node $env:nodejs_version $env:platform + - ps: | + (New-Object Net.WebClient).DownloadFile("https://yarnpkg.com/latest.msi", "$env:temp\yarn.msi") + cmd /c start /wait msiexec.exe /i $env:temp\yarn.msi /quiet /qn /norestart build: off @@ -46,4 +49,5 @@ skip_commits: test_script: - node --version - npm --version + - yarn --version - bash tasks/e2e-%test_suite%.sh diff --git a/packages/create-react-app/index.js b/packages/create-react-app/index.js index a093636609e..808ebcfe69c 100755 --- a/packages/create-react-app/index.js +++ b/packages/create-react-app/index.js @@ -42,13 +42,13 @@ var currentNodeVersion = process.versions.node; var semver = currentNodeVersion.split('.'); var major = semver[0]; -if (major < 4) { +if (major < 8) { console.error( chalk.red( 'You are running Node ' + currentNodeVersion + '.\n' + - 'Create React App requires Node 4 or higher. \n' + + 'Create React App requires Node 8 or higher. \n' + 'Please update your version of Node.' ) ); diff --git a/tasks/e2e-kitchensink-eject.sh b/tasks/e2e-kitchensink-eject.sh index 76a50f1b8be..ef7a511dc23 100755 --- a/tasks/e2e-kitchensink-eject.sh +++ b/tasks/e2e-kitchensink-eject.sh @@ -159,7 +159,7 @@ E2E_URL="http://localhost:3002" \ CI=true NODE_PATH=src \ NODE_ENV=development \ BABEL_ENV=test \ - node_modules/.bin/mocha --compilers js:@babel/register --require @babel/polyfill integration/*.test.js + node_modules/.bin/mocha --timeout 30000 --compilers js:@babel/register --require @babel/polyfill integration/*.test.js # Test "production" environment E2E_FILE=./build/index.html \ @@ -168,7 +168,7 @@ E2E_FILE=./build/index.html \ BABEL_ENV=test \ NODE_PATH=src \ PUBLIC_URL=http://www.example.org/spa/ \ - node_modules/.bin/mocha --compilers js:@babel/register --require @babel/polyfill integration/*.test.js + node_modules/.bin/mocha --timeout 30000 --compilers js:@babel/register --require @babel/polyfill integration/*.test.js # Cleanup cleanup diff --git a/tasks/e2e-kitchensink.sh b/tasks/e2e-kitchensink.sh index c79f9f77a10..c001a01e4da 100755 --- a/tasks/e2e-kitchensink.sh +++ b/tasks/e2e-kitchensink.sh @@ -151,7 +151,7 @@ E2E_URL="http://localhost:3001" \ CI=true NODE_PATH=src \ NODE_ENV=development \ BABEL_ENV=test \ - node_modules/.bin/mocha --compilers js:@babel/register --require @babel/polyfill integration/*.test.js + node_modules/.bin/mocha --timeout 30000 --compilers js:@babel/register --require @babel/polyfill integration/*.test.js # Test "production" environment E2E_FILE=./build/index.html \ CI=true \ @@ -159,7 +159,7 @@ E2E_FILE=./build/index.html \ NODE_ENV=production \ BABEL_ENV=test \ PUBLIC_URL=http://www.example.org/spa/ \ - node_modules/.bin/mocha --compilers js:@babel/register --require @babel/polyfill integration/*.test.js + node_modules/.bin/mocha --timeout 30000 --compilers js:@babel/register --require @babel/polyfill integration/*.test.js # Cleanup cleanup diff --git a/tasks/local-test.sh b/tasks/local-test.sh index 877c6709717..222630f2170 100755 --- a/tasks/local-test.sh +++ b/tasks/local-test.sh @@ -8,7 +8,7 @@ function print_help { echo "Usage: ${0} [OPTIONS]" echo "" echo "OPTIONS:" - echo " --node-version the node version to use while testing [6]" + echo " --node-version the node version to use while testing [8]" echo " --git-branch the git branch to checkout for testing [the current one]" echo " --test-suite which test suite to use ('simple', installs', 'kitchensink', 'all') ['all']" echo " --interactive gain a bash shell after the test run" @@ -18,7 +18,7 @@ function print_help { cd $(dirname $0) -node_version=6 +node_version=8 current_git_branch=`git rev-parse --abbrev-ref HEAD` git_branch=${current_git_branch} test_suite=all From 8169a93e3823199471a0d7a2e8f4c534fcd3da5c Mon Sep 17 00:00:00 2001 From: Vladimir Kutepov Date: Mon, 23 Jul 2018 08:15:41 +0300 Subject: [PATCH 0034/1249] Bump babel-loader to fix npm warning (#4776) --- packages/react-scripts/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index e5008ca406d..60fe099d74b 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -27,7 +27,7 @@ "babel-core": "7.0.0-bridge.0", "babel-eslint": "8.2.3", "babel-jest": "22.4.3", - "babel-loader": "8.0.0-beta.0", + "babel-loader": "8.0.0-beta.4", "babel-plugin-named-asset-import": "^0.1.0", "babel-preset-react-app": "^3.1.1", "bfj": "5.2.0", From 52449c34eedc53e50a2a159d38604ea7df5bd997 Mon Sep 17 00:00:00 2001 From: Jack Zhao Date: Sun, 22 Jul 2018 22:22:05 -0700 Subject: [PATCH 0035/1249] Only use safe options when packing CSS assets (#4706) * support scoped packages for cra --scripts-version option * enable safe option to cssnano processor Fixes #4682 --- packages/react-scripts/config/webpack.config.prod.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/config/webpack.config.prod.js b/packages/react-scripts/config/webpack.config.prod.js index 4d04909a8b4..86869748c66 100644 --- a/packages/react-scripts/config/webpack.config.prod.js +++ b/packages/react-scripts/config/webpack.config.prod.js @@ -153,7 +153,7 @@ module.exports = { cache: true, sourceMap: shouldUseSourceMap, }), - new OptimizeCSSAssetsPlugin(), + new OptimizeCSSAssetsPlugin({ cssProcessorOptions: { safe: true } }), ], // Automatically split vendor and commons // https://twitter.com/wSokra/status/969633336732905474 From 506b3f19f0cc4fa10cb3967de2e5f0cb79f43558 Mon Sep 17 00:00:00 2001 From: Ashley Otero Date: Mon, 23 Jul 2018 08:26:46 -0700 Subject: [PATCH 0036/1249] Update code of conduct link (#4814) --- CODE_OF_CONDUCT.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 55203be746a..0fb245803d8 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,3 +1,3 @@ # Code of Conduct -Facebook has adopted a Code of Conduct that we expect project participants to adhere to. Please [read the full text](https://code.facebook.com/pages/876921332402685/open-source-code-of-conduct) so that you can understand what actions will and will not be tolerated. +Facebook has adopted a Code of Conduct that we expect project participants to adhere to. Please [read the full text](https://code.fb.com/codeofconduct/) so that you can understand what actions will and will not be tolerated. From 69c3d4b04c233ba9fb9d16691056bd09076177b1 Mon Sep 17 00:00:00 2001 From: Jed Fox Date: Thu, 26 Jul 2018 13:50:29 -0400 Subject: [PATCH 0037/1249] Update support info for service workers (#4825) --- packages/react-scripts/template/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-scripts/template/README.md b/packages/react-scripts/template/README.md index 48a48737274..e60278e9cce 100644 --- a/packages/react-scripts/template/README.md +++ b/packages/react-scripts/template/README.md @@ -1983,8 +1983,8 @@ although to facilitate local testing, that policy If your production web server does not support HTTPS, then the service worker registration will fail, but the rest of your web app will remain functional. -1. Service workers are [not currently supported](https://jakearchibald.github.io/isserviceworkerready/) -in all web browsers. Service worker registration [won't be attempted](src/registerServiceWorker.js) +1. Service workers are [not supported](https://jakearchibald.github.io/isserviceworkerready/#moar) +in older web browsers. Service worker registration [won't be attempted](src/registerServiceWorker.js) on browsers that lack support. 1. The service worker is only enabled in the [production environment](#deployment), From ca5998326deebf79845ca00f616b8dad11d90509 Mon Sep 17 00:00:00 2001 From: Terbiy Date: Tue, 7 Aug 2018 17:57:03 +0300 Subject: [PATCH 0038/1249] Fix link to the article about BEM (#4858) --- packages/react-scripts/template/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/template/README.md b/packages/react-scripts/template/README.md index 388b73d8d36..5bbfc5f676f 100644 --- a/packages/react-scripts/template/README.md +++ b/packages/react-scripts/template/README.md @@ -506,7 +506,7 @@ class Button extends Component { } ``` -**This is not required for React** but many people find this feature convenient. You can read about the benefits of this approach [here](https://medium.com/seek-ui-engineering/block-element-modifying-your-javascript-components-d7f99fcab52b). However you should be aware that this makes your code less portable to other build tools and environments than Webpack. +**This is not required for React** but many people find this feature convenient. You can read about the benefits of this approach [here](https://medium.com/seek-blog/block-element-modifying-your-javascript-components-d7f99fcab52b). However you should be aware that this makes your code less portable to other build tools and environments than Webpack. In development, expressing dependencies this way allows your styles to be reloaded on the fly as you edit them. In production, all CSS files will be concatenated into a single minified `.css` file in the build output. From 577a274d8cf829941d848ce10f69d2a4935a9f2a Mon Sep 17 00:00:00 2001 From: Andrew Clark Date: Wed, 22 Aug 2018 09:35:24 -0700 Subject: [PATCH 0039/1249] Use file name whitelist to prevent RCE (#4866) * Use file name whitelist to prevent RCE Use a whitelist to validate user-provided file names. This doesn't cover the entire range of valid filenames but should cover almost all of them in practice. Allows letters, numbers, periods, dashes, and underscores. Opting to use a whitelist instead of a blacklist because getting this wrong leaves us vulnerable to a RCE attack. * Allow alphabet characters from all languages Updated the whitelist to /^[\p{L}0-9/.\-_]+$/u, which matches alphanumeric characters, periods, dashes, and underscores. Unicode property support is stage 4 so I've inlined the transpiled version. * Only use file name whitelist on Windows * Log error message if file name does not pass whitelist --- packages/react-dev-utils/launchEditor.js | 28 ++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/packages/react-dev-utils/launchEditor.js b/packages/react-dev-utils/launchEditor.js index 55b8e22dc83..dc7b63345eb 100644 --- a/packages/react-dev-utils/launchEditor.js +++ b/packages/react-dev-utils/launchEditor.js @@ -100,6 +100,11 @@ const COMMON_EDITORS_WIN = [ 'goland64.exe', ]; +// Transpiled version of: /^[\p{L}0-9/.\-_\\]+$/u +// Non-transpiled version requires support for Unicode property regex. Allows +// alphanumeric characters, periods, dashes, slashes, and underscores. +const WINDOWS_FILE_NAME_WHITELIST = /^(?:[\x2D-9A-Z\\_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7B9\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFF1]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D])+$/ + function addWorkspaceToArgumentsIfExists(args, workspace) { if (workspace) { args.unshift(workspace); @@ -308,6 +313,29 @@ function launchEditor(fileName, lineNumber, colNumber) { fileName = path.relative('', fileName); } + // cmd.exe on Windows is vulnerable to RCE attacks given a file name of the + // form "C:\Users\myusername\Downloads\& curl 172.21.93.52". Use a whitelist + // to validate user-provided file names. This doesn't cover the entire range + // of valid file names but should cover almost all of them in practice. + if ( + process.platform === 'win32' && + !WINDOWS_FILE_NAME_WHITELIST.test(fileName.trim()) + ) { + console.log(); + console.log( + chalk.red('Could not open ' + path.basename(fileName) + ' in the editor.') + ); + console.log(); + console.log( + 'When running on Windows, file names are checked against a whitelist ' + + 'to protect against remote code execution attacks. File names may ' + + 'consist only of alphanumeric characters (all languages), periods, ' + + 'dashes, slashes, and underscores.' + ); + console.log(); + return; + } + let workspace = null; if (lineNumber) { args = args.concat( From 24b101d233bb0c73411578143715305be3109a2b Mon Sep 17 00:00:00 2001 From: Andrew Clark Date: Wed, 22 Aug 2018 09:35:24 -0700 Subject: [PATCH 0040/1249] Use file name whitelist to prevent RCE (#4866) * Use file name whitelist to prevent RCE Use a whitelist to validate user-provided file names. This doesn't cover the entire range of valid filenames but should cover almost all of them in practice. Allows letters, numbers, periods, dashes, and underscores. Opting to use a whitelist instead of a blacklist because getting this wrong leaves us vulnerable to a RCE attack. * Allow alphabet characters from all languages Updated the whitelist to /^[\p{L}0-9/.\-_]+$/u, which matches alphanumeric characters, periods, dashes, and underscores. Unicode property support is stage 4 so I've inlined the transpiled version. * Only use file name whitelist on Windows * Log error message if file name does not pass whitelist --- packages/react-dev-utils/launchEditor.js | 28 ++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/packages/react-dev-utils/launchEditor.js b/packages/react-dev-utils/launchEditor.js index cf190b08619..7ae94247b05 100644 --- a/packages/react-dev-utils/launchEditor.js +++ b/packages/react-dev-utils/launchEditor.js @@ -96,6 +96,11 @@ const COMMON_EDITORS_WIN = [ 'webstorm64.exe', ]; +// Transpiled version of: /^[\p{L}0-9/.\-_\\]+$/u +// Non-transpiled version requires support for Unicode property regex. Allows +// alphanumeric characters, periods, dashes, slashes, and underscores. +const WINDOWS_FILE_NAME_WHITELIST = /^(?:[\x2D-9A-Z\\_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7B9\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFF1]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D])+$/ + function addWorkspaceToArgumentsIfExists(args, workspace) { if (workspace) { args.unshift(workspace); @@ -306,6 +311,29 @@ function launchEditor(fileName, lineNumber, colNumber) { fileName = path.relative('', fileName); } + // cmd.exe on Windows is vulnerable to RCE attacks given a file name of the + // form "C:\Users\myusername\Downloads\& curl 172.21.93.52". Use a whitelist + // to validate user-provided file names. This doesn't cover the entire range + // of valid file names but should cover almost all of them in practice. + if ( + process.platform === 'win32' && + !WINDOWS_FILE_NAME_WHITELIST.test(fileName.trim()) + ) { + console.log(); + console.log( + chalk.red('Could not open ' + path.basename(fileName) + ' in the editor.') + ); + console.log(); + console.log( + 'When running on Windows, file names are checked against a whitelist ' + + 'to protect against remote code execution attacks. File names may ' + + 'consist only of alphanumeric characters (all languages), periods, ' + + 'dashes, slashes, and underscores.' + ); + console.log(); + return; + } + let workspace = null; if (lineNumber) { args = args.concat( From 96ba7bddc1600d6f5dac9da2418ee69793c22eca Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Wed, 22 Aug 2018 19:44:29 +0100 Subject: [PATCH 0041/1249] Bump versions --- packages/react-dev-utils/package.json | 2 +- packages/react-scripts/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index 6e49955e453..04b35d78cac 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -57,7 +57,7 @@ "react-error-overlay": "^4.0.0", "recursive-readdir": "2.2.2", "shell-quote": "1.6.1", - "sockjs-client": "1.1.4", + "sockjs-client": "1.1.5", "strip-ansi": "4.0.0", "text-table": "0.2.0" }, diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 60fe099d74b..b727a3e84b0 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -68,7 +68,7 @@ "uglifyjs-webpack-plugin": "1.2.5", "url-loader": "1.0.1", "webpack": "4.8.3", - "webpack-dev-server": "3.1.4", + "webpack-dev-server": "3.1.5", "webpack-manifest-plugin": "2.0.3", "whatwg-fetch": "2.0.4" }, From ca88a69b77f71d353d7c4e43d02f499465a8786c Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Wed, 22 Aug 2018 19:44:57 +0100 Subject: [PATCH 0042/1249] Bump versions --- packages/react-dev-utils/package.json | 2 +- packages/react-scripts/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index 8adff62faa9..038ce6767a0 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -51,7 +51,7 @@ "react-error-overlay": "^4.0.0", "recursive-readdir": "2.2.1", "shell-quote": "1.6.1", - "sockjs-client": "1.1.4", + "sockjs-client": "1.1.5", "strip-ansi": "3.0.1", "text-table": "0.2.0" }, diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 1886de22830..deacc18d05f 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -56,7 +56,7 @@ "sw-precache-webpack-plugin": "0.11.4", "url-loader": "0.6.2", "webpack": "3.8.1", - "webpack-dev-server": "2.9.4", + "webpack-dev-server": "2.11.3", "webpack-manifest-plugin": "1.3.2", "whatwg-fetch": "2.0.3" }, From 550fccb6930504eb7da88c5052848d3fde9bf565 Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Wed, 22 Aug 2018 19:56:33 +0100 Subject: [PATCH 0043/1249] Bump release --- packages/react-dev-utils/package.json | 4 ++-- packages/react-error-overlay/package.json | 2 +- packages/react-scripts/package.json | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index 038ce6767a0..690c275f4d6 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -1,6 +1,6 @@ { "name": "react-dev-utils", - "version": "5.0.1", + "version": "5.0.2", "description": "Webpack utilities used by Create React App", "repository": "facebookincubator/create-react-app", "license": "MIT", @@ -48,7 +48,7 @@ "inquirer": "3.3.0", "is-root": "1.0.0", "opn": "5.2.0", - "react-error-overlay": "^4.0.0", + "react-error-overlay": "^4.0.1", "recursive-readdir": "2.2.1", "shell-quote": "1.6.1", "sockjs-client": "1.1.5", diff --git a/packages/react-error-overlay/package.json b/packages/react-error-overlay/package.json index 87099dd5e82..06354daf1b6 100644 --- a/packages/react-error-overlay/package.json +++ b/packages/react-error-overlay/package.json @@ -1,6 +1,6 @@ { "name": "react-error-overlay", - "version": "4.0.0", + "version": "4.0.1", "description": "An overlay for displaying stack frames.", "main": "lib/index.js", "scripts": { diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index deacc18d05f..ecb94de4970 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -1,6 +1,6 @@ { "name": "react-scripts", - "version": "1.1.4", + "version": "1.1.5", "description": "Configuration and scripts for Create React App.", "repository": "facebookincubator/create-react-app", "license": "MIT", @@ -50,7 +50,7 @@ "postcss-loader": "2.0.8", "promise": "8.0.1", "raf": "3.4.0", - "react-dev-utils": "^5.0.1", + "react-dev-utils": "^5.0.2", "resolve": "1.6.0", "style-loader": "0.19.0", "sw-precache-webpack-plugin": "0.11.4", From dc74990b89b5c6e143b522c759be3dac2c286514 Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Fri, 24 Aug 2018 15:40:13 +0100 Subject: [PATCH 0044/1249] Add 1.1.5 release notes --- CHANGELOG.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fed2c53f957..d5431b5bd3e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,31 @@ +## 1.1.5 (August 24, 2018) + +* `react-scripts` + + * Update the `webpack-dev-server` dependency + +* `react-dev-utils` + + * [#4866](https://github.com/facebook/create-react-app/pull/4866) Fix a Windows-only vulnerability (`CVE-2018-6342`) in the development server ([@acdlite](https://github.com/acdlite)) + * Update the `sockjs-client` dependency + +#### Committers: 1 +- Andrew Clark ([acdlite](https://github.com/acdlite)) + +### Migrating from 1.1.4 to 1.1.5 + +Inside any created project that has not been ejected, run: + +``` +npm install --save --save-exact react-scripts@1.1.5 +``` + +or + +``` +yarn add --exact react-scripts@1.1.5 +``` + ## 1.1.4 (April 3, 2018) #### :bug: Bug Fix From a671462c1089c1afe95cc1f9d4f2432d3a885806 Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Fri, 24 Aug 2018 15:40:13 +0100 Subject: [PATCH 0045/1249] Add 1.1.5 release notes --- CHANGELOG.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c63d42f570..48a4c028830 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,31 @@ +## 1.1.5 (August 24, 2018) + +* `react-scripts` + + * Update the `webpack-dev-server` dependency + +* `react-dev-utils` + + * [#4866](https://github.com/facebook/create-react-app/pull/4866) Fix a Windows-only vulnerability (`CVE-2018-6342`) in the development server ([@acdlite](https://github.com/acdlite)) + * Update the `sockjs-client` dependency + +#### Committers: 1 +- Andrew Clark ([acdlite](https://github.com/acdlite)) + +### Migrating from 1.1.4 to 1.1.5 + +Inside any created project that has not been ejected, run: + +``` +npm install --save --save-exact react-scripts@1.1.5 +``` + +or + +``` +yarn add --exact react-scripts@1.1.5 +``` + ## 1.1.4 (April 3, 2018) #### :bug: Bug Fix From 7b7acde872637a308bb84db75c31980100aed07e Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Sun, 2 Sep 2018 22:02:29 +0200 Subject: [PATCH 0046/1249] =?UTF-8?q?Update=20webpack-dev-server=203.1.5?= =?UTF-8?q?=20=E2=86=92=203.1.7=20(#4955)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes the functionality of this dependency for Node 10 and above. Refs: https://github.com/webpack/webpack-dev-server/pull/1451 Refs: https://github.com/nodejs/node/issues/21665 --- packages/react-scripts/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index b727a3e84b0..cc590619417 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -68,7 +68,7 @@ "uglifyjs-webpack-plugin": "1.2.5", "url-loader": "1.0.1", "webpack": "4.8.3", - "webpack-dev-server": "3.1.5", + "webpack-dev-server": "3.1.7", "webpack-manifest-plugin": "2.0.3", "whatwg-fetch": "2.0.4" }, From 11580f22f23758b5aed85431a389a78b40d64927 Mon Sep 17 00:00:00 2001 From: Tore Hammervoll Date: Mon, 17 Sep 2018 02:28:16 +0200 Subject: [PATCH 0047/1249] Update jest version (#4846) * Update jest version * Update babel-jest version * Use testURL: http://localhost in jest configs. * Update to jest version 23.5 This version of jest includes a fix for https://github.com/jsdom/jsdom/issues/2304 * "testURL": "http://localhost" is default with jest v23.5 --- packages/confusing-browser-globals/package.json | 2 +- packages/react-dev-utils/package.json | 2 +- packages/react-error-overlay/package.json | 4 ++-- packages/react-scripts/package.json | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/confusing-browser-globals/package.json b/packages/confusing-browser-globals/package.json index 88767c4d0f7..f549c02fc17 100644 --- a/packages/confusing-browser-globals/package.json +++ b/packages/confusing-browser-globals/package.json @@ -16,6 +16,6 @@ "index.js" ], "devDependencies": { - "jest": "22.4.3" + "jest": "23.5.0" } } diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index 04b35d78cac..7004d84fa6b 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -62,7 +62,7 @@ "text-table": "0.2.0" }, "devDependencies": { - "jest": "22.4.3" + "jest": "23.5.0" }, "scripts": { "test": "jest" diff --git a/packages/react-error-overlay/package.json b/packages/react-error-overlay/package.json index 6e7e1f3e885..78f11363e98 100644 --- a/packages/react-error-overlay/package.json +++ b/packages/react-error-overlay/package.json @@ -36,7 +36,7 @@ "anser": "1.4.6", "babel-core": "^7.0.0-bridge.0", "babel-eslint": "^8.2.2", - "babel-jest": "^22.4.3", + "babel-jest": "^23.4.2", "babel-loader": "^8.0.0-beta.0", "babel-preset-react-app": "^3.1.1", "chalk": "^2.3.2", @@ -50,7 +50,7 @@ "eslint-plugin-react": "7.8.2", "flow-bin": "^0.63.1", "html-entities": "1.2.1", - "jest": "22.4.3", + "jest": "23.5.0", "jest-fetch-mock": "1.5.0", "object-assign": "4.1.1", "promise": "8.0.1", diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index cc590619417..4b894fb0c79 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -26,7 +26,7 @@ "autoprefixer": "8.5.0", "babel-core": "7.0.0-bridge.0", "babel-eslint": "8.2.3", - "babel-jest": "22.4.3", + "babel-jest": "23.4.2", "babel-loader": "8.0.0-beta.4", "babel-plugin-named-asset-import": "^0.1.0", "babel-preset-react-app": "^3.1.1", @@ -50,7 +50,7 @@ "html-webpack-plugin": "3.2.0", "identity-obj-proxy": "3.0.0", "loader-utils": "^1.1.0", - "jest": "22.4.3", + "jest": "23.5.0", "mini-css-extract-plugin": "^0.4.0", "object-assign": "4.1.1", "postcss-flexbugs-fixes": "3.3.1", From d66216ee8010d63ed2a08824b1decc11557d6c46 Mon Sep 17 00:00:00 2001 From: Eugene Kopich Date: Tue, 18 Sep 2018 02:50:55 +0300 Subject: [PATCH 0048/1249] docs: flowtype.org -> flow.org (#4881) --- packages/react-scripts/template/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/react-scripts/template/README.md b/packages/react-scripts/template/README.md index e60278e9cce..335c51303ca 100644 --- a/packages/react-scripts/template/README.md +++ b/packages/react-scripts/template/README.md @@ -218,7 +218,7 @@ In addition to [ES6](https://github.com/lukehoban/es6features) syntax features, * [Object Rest/Spread Properties](https://github.com/tc39/proposal-object-rest-spread) (ES2018). * [Dynamic import()](https://github.com/tc39/proposal-dynamic-import) (stage 3 proposal) * [Class Fields and Static Properties](https://github.com/tc39/proposal-class-public-fields) (part of stage 3 proposal). -* [JSX](https://facebook.github.io/react/docs/introducing-jsx.html) and [Flow](https://flowtype.org/) syntax. +* [JSX](https://facebook.github.io/react/docs/introducing-jsx.html) and [Flow](https://flow.org/) syntax. Learn more about [different proposal stages](https://babeljs.io/docs/plugins/#presets-stage-x-experimental-presets-). @@ -886,20 +886,20 @@ Here is an example of adding a [customized Bootstrap](https://medium.com/@tacoma Flow is a static type checker that helps you write code with fewer bugs. Check out this [introduction to using static types in JavaScript](https://medium.com/@preethikasireddy/why-use-static-types-in-javascript-part-1-8382da1e0adb) if you are new to this concept. -Recent versions of [Flow](http://flowtype.org/) work with Create React App projects out of the box. +Recent versions of [Flow](https://flow.org/) work with Create React App projects out of the box. To add Flow to a Create React App project, follow these steps: 1. Run `npm install --save flow-bin` (or `yarn add flow-bin`). 2. Add `"flow": "flow"` to the `scripts` section of your `package.json`. -3. Run `npm run flow init` (or `yarn flow init`) to create a [`.flowconfig` file](https://flowtype.org/docs/advanced-configuration.html) in the root directory. +3. Run `npm run flow init` (or `yarn flow init`) to create a [`.flowconfig` file](https://flow.org/en/docs/config/) in the root directory. 4. Add `// @flow` to any files you want to type check (for example, to `src/App.js`). Now you can run `npm run flow` (or `yarn flow`) to check the files for type errors. You can optionally use an IDE like [Nuclide](https://nuclide.io/docs/languages/flow/) for a better integrated experience. In the future we plan to integrate it into Create React App even more closely. -To learn more about Flow, check out [its documentation](https://flowtype.org/). +To learn more about Flow, check out [its documentation](https://flow.org/). ## Adding a Router From a3707eb642950698ea2dfc642737c43e0e9d8f99 Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Mon, 17 Sep 2018 15:43:55 -0400 Subject: [PATCH 0049/1249] Pin package versions --- packages/react-scripts/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 4b894fb0c79..646a1aa06cc 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -49,12 +49,12 @@ "graphql-tag": "2.9.2", "html-webpack-plugin": "3.2.0", "identity-obj-proxy": "3.0.0", - "loader-utils": "^1.1.0", "jest": "23.5.0", - "mini-css-extract-plugin": "^0.4.0", + "loader-utils": "1.1.0", + "mini-css-extract-plugin": "0.4.0", "object-assign": "4.1.1", + "optimize-css-assets-webpack-plugin": "4.0.1", "postcss-flexbugs-fixes": "3.3.1", - "optimize-css-assets-webpack-plugin": "^4.0.1", "postcss-loader": "2.1.5", "promise": "8.0.1", "raf": "3.4.0", From 311215d16166d80868b5d5357362f930ee6bfd21 Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Mon, 17 Sep 2018 15:46:09 -0400 Subject: [PATCH 0050/1249] Upgrade `webpack` and `thread-loader` --- packages/react-scripts/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 646a1aa06cc..627995b0ca2 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -64,10 +64,10 @@ "style-loader": "0.21.0", "svgr": "1.9.2", "sw-precache-webpack-plugin": "0.11.5", - "thread-loader": "1.1.5", + "thread-loader": "1.2.0", "uglifyjs-webpack-plugin": "1.2.5", "url-loader": "1.0.1", - "webpack": "4.8.3", + "webpack": "4.19.0", "webpack-dev-server": "3.1.7", "webpack-manifest-plugin": "2.0.3", "whatwg-fetch": "2.0.4" From 97d7da7dac1e908a94cd890a9f1d4c210c54a22e Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Mon, 17 Sep 2018 16:11:02 -0400 Subject: [PATCH 0051/1249] Purge AppVeyor cache --- appveyor.cleanup-cache.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/appveyor.cleanup-cache.txt b/appveyor.cleanup-cache.txt index 200d97c3aac..0f38cbd7e0c 100644 --- a/appveyor.cleanup-cache.txt +++ b/appveyor.cleanup-cache.txt @@ -4,3 +4,4 @@ http://help.appveyor.com/discussions/questions/1310-delete-cache ---- bump +cya From 7edb1b508d6daa24b8d37cb214929bb15ebe262c Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Mon, 17 Sep 2018 16:18:14 -0400 Subject: [PATCH 0052/1249] Add prettierrc file for monorepo development --- .prettierrc | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .prettierrc diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 00000000000..8ff820d3bc0 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,5 @@ +{ + "trailingComma": "es5", + "singleQuote": true, + "semi": true +} From 22353ecf02db21f7bff6a0c088ef7f0631f29fd6 Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Mon, 17 Sep 2018 17:35:16 -0400 Subject: [PATCH 0053/1249] Fix ESLint output formatting The `formatter` option is incompatible with with `thread-loader`. The `formatter` option previously accepted a function which was lost during JSON serialization. --- packages/react-scripts/config/webpack.config.dev.js | 7 +++---- packages/react-scripts/config/webpack.config.prod.js | 3 +-- packages/react-scripts/package.json | 2 +- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/react-scripts/config/webpack.config.dev.js b/packages/react-scripts/config/webpack.config.dev.js index db371dda6e8..b36d81ea01f 100644 --- a/packages/react-scripts/config/webpack.config.dev.js +++ b/packages/react-scripts/config/webpack.config.dev.js @@ -15,7 +15,6 @@ const HtmlWebpackPlugin = require('html-webpack-plugin'); const CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin'); const InterpolateHtmlPlugin = require('react-dev-utils/InterpolateHtmlPlugin'); const WatchMissingNodeModulesPlugin = require('react-dev-utils/WatchMissingNodeModulesPlugin'); -const eslintFormatter = require('react-dev-utils/eslintFormatter'); const ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin'); const getCSSModuleLocalIdent = require('react-dev-utils/getCSSModuleLocalIdent'); const getClientEnvironment = require('./env'); @@ -181,7 +180,7 @@ module.exports = { use: [ { options: { - formatter: eslintFormatter, + formatter: require.resolve('react-dev-utils/eslintFormatter'), eslintPath: require.resolve('eslint'), baseConfig: { extends: [require.resolve('eslint-config-react-app')], @@ -225,7 +224,7 @@ module.exports = { { loader: require.resolve('thread-loader'), options: { - poolTimeout: Infinity // keep workers alive for more effective watch mode + poolTimeout: Infinity, // keep workers alive for more effective watch mode }, }, { @@ -266,7 +265,7 @@ module.exports = { { loader: require.resolve('thread-loader'), options: { - poolTimeout: Infinity // keep workers alive for more effective watch mode + poolTimeout: Infinity, // keep workers alive for more effective watch mode }, }, { diff --git a/packages/react-scripts/config/webpack.config.prod.js b/packages/react-scripts/config/webpack.config.prod.js index 86869748c66..34a437afce9 100644 --- a/packages/react-scripts/config/webpack.config.prod.js +++ b/packages/react-scripts/config/webpack.config.prod.js @@ -18,7 +18,6 @@ const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin'); const ManifestPlugin = require('webpack-manifest-plugin'); const InterpolateHtmlPlugin = require('react-dev-utils/InterpolateHtmlPlugin'); const SWPrecacheWebpackPlugin = require('sw-precache-webpack-plugin'); -const eslintFormatter = require('react-dev-utils/eslintFormatter'); const ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin'); const getCSSModuleLocalIdent = require('react-dev-utils/getCSSModuleLocalIdent'); const paths = require('./paths'); @@ -219,7 +218,7 @@ module.exports = { use: [ { options: { - formatter: eslintFormatter, + formatter: require.resolve('react-dev-utils/eslintFormatter'), eslintPath: require.resolve('eslint'), // TODO: consider separate config for production, // e.g. to enable no-console and no-debugger only in production. diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 627995b0ca2..2b444c0bded 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -38,7 +38,7 @@ "dotenv-expand": "4.2.0", "eslint": "4.19.1", "eslint-config-react-app": "^2.1.0", - "eslint-loader": "2.0.0", + "eslint-loader": "Timer/eslint-loader#e242479990d520213425a0180e5c749b2e71c1ce", "eslint-plugin-flowtype": "2.46.3", "eslint-plugin-import": "2.11.0", "eslint-plugin-jsx-a11y": "6.0.3", From 710557f2f47a439e07bd60db32cde449388e1776 Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Mon, 17 Sep 2018 18:34:03 -0400 Subject: [PATCH 0054/1249] Fix syntax error message massaging --- .../react-dev-utils/formatWebpackMessages.js | 41 +++++++++++-------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/packages/react-dev-utils/formatWebpackMessages.js b/packages/react-dev-utils/formatWebpackMessages.js index f1506298cbb..f19cee970db 100644 --- a/packages/react-dev-utils/formatWebpackMessages.js +++ b/packages/react-dev-utils/formatWebpackMessages.js @@ -26,6 +26,28 @@ function isLikelyASyntaxError(message) { function formatMessage(message, isError) { var lines = message.split('\n'); + // Strip `WorkerError` header off message before parsing + // https://github.com/webpack-contrib/thread-loader/blob/6fb5daff313c4839196cf533bdcdf14815a386d2/src/WorkerError.js + lines = lines.filter(function(message) { + return message.indexOf('Thread Loader (Worker') === -1; + }); + + // Strip `ModuleError` header off message before parsing + // https://github.com/webpack/webpack/blob/c77030573de96b8293c69dd396492f8e2d46561e/lib/ModuleError.js + var moduleErrorPrefix = 'Module Error: '; + if (lines[1].indexOf(moduleErrorPrefix) === 0) { + lines[1] = lines[1].slice(moduleErrorPrefix.length); + } else if (lines[1].match(/Module Error \(from.*?\):/)) { + lines.splice(1, 1); + } + + // Simplify `ModuleBuildError` before parsing + // https://github.com/webpack/webpack/blob/c77030573de96b8293c69dd396492f8e2d46561e/lib/ModuleBuildError.js + if (lines[1].match(/Module build failed \(from.*?\):/)) { + lines.splice(1, 1); + lines[1] = 'Module build failed: ' + lines[1]; + } + if (lines.length > 2 && lines[1] === '') { // Remove extra newline. lines.splice(1, 1); @@ -40,21 +62,6 @@ function formatMessage(message, isError) { lines[0] = lines[0].substr(lines[0].lastIndexOf('!') + 1); } - // Remove unnecessary stack added by `thread-loader` - var threadLoaderIndex = -1; - lines.forEach(function(line, index) { - if (threadLoaderIndex !== -1) { - return; - } - if (/thread.loader/i.test(line)) { - threadLoaderIndex = index; - } - }); - - if (threadLoaderIndex !== -1) { - lines = lines.slice(0, threadLoaderIndex); - } - lines = lines.filter(function(line) { // Webpack adds a list of entry points to warning messages: // @ ./src/index.js @@ -86,8 +93,8 @@ function formatMessage(message, isError) { // Cleans up syntax error messages. if (lines[1].indexOf('Module build failed: ') === 0) { lines[1] = lines[1].replace( - 'Module build failed: SyntaxError:', - friendlySyntaxErrorLabel + /Module build failed: .*?: /, + friendlySyntaxErrorLabel + ' ' ); } From 5ba88da723b9b33a734ed3c1e44a502c73f3de53 Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Mon, 17 Sep 2018 18:51:21 -0400 Subject: [PATCH 0055/1249] Fix css error message massaging --- .../react-dev-utils/formatWebpackMessages.js | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/packages/react-dev-utils/formatWebpackMessages.js b/packages/react-dev-utils/formatWebpackMessages.js index f19cee970db..02c73d670d9 100644 --- a/packages/react-dev-utils/formatWebpackMessages.js +++ b/packages/react-dev-utils/formatWebpackMessages.js @@ -41,9 +41,12 @@ function formatMessage(message, isError) { lines.splice(1, 1); } - // Simplify `ModuleBuildError` before parsing + // Simplify `ModuleBuildError` before parsing (these may be nested so we use a while loop) // https://github.com/webpack/webpack/blob/c77030573de96b8293c69dd396492f8e2d46561e/lib/ModuleBuildError.js - if (lines[1].match(/Module build failed \(from.*?\):/)) { + while ( + lines.length > 2 && + lines[1].match(/Module build failed \(from.*?\):/) + ) { lines.splice(1, 1); lines[1] = 'Module build failed: ' + lines[1]; } @@ -92,10 +95,23 @@ function formatMessage(message, isError) { // Cleans up syntax error messages. if (lines[1].indexOf('Module build failed: ') === 0) { + lines[1] = lines[1].replace( + 'Module build failed: Syntax Error ', + friendlySyntaxErrorLabel + ); lines[1] = lines[1].replace( /Module build failed: .*?: /, friendlySyntaxErrorLabel + ' ' ); + lines[1] = lines[1].trim(); + + if (lines[1] === friendlySyntaxErrorLabel && lines[2] === '') { + lines.splice(2, 1); + if (lines.length > 2) { + lines[1] += ' ' + lines[2]; + lines.splice(2, 1); + } + } } // Clean up export errors. @@ -120,6 +136,7 @@ function formatMessage(message, isError) { /^\s*at\s((?!webpack:).)*:\d+:\d+[\s)]*(\n|$)/gm, '' ); // at ... ...:x:y + message = message.replace(/^\s*at\s(\n|$)/gm, ''); // at return message.trim(); } From 74e452712bfea6c1aca732b42bda85f1e3093f87 Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Mon, 17 Sep 2018 19:08:40 -0400 Subject: [PATCH 0056/1249] Fix message massaging for ESLint warnings --- packages/react-dev-utils/formatWebpackMessages.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/react-dev-utils/formatWebpackMessages.js b/packages/react-dev-utils/formatWebpackMessages.js index 02c73d670d9..d0eed06338d 100644 --- a/packages/react-dev-utils/formatWebpackMessages.js +++ b/packages/react-dev-utils/formatWebpackMessages.js @@ -32,6 +32,15 @@ function formatMessage(message, isError) { return message.indexOf('Thread Loader (Worker') === -1; }); + // Strip `ModuleWarning` head off message before parsing (because of ESLint) + // https://github.com/webpack/webpack/blob/c77030573de96b8293c69dd396492f8e2d46561e/lib/ModuleWarning.js + var moduleWarningPrefix = 'Module Warning: '; + if (lines[1].indexOf(moduleWarningPrefix) === 0) { + lines[1] = lines[1].slice(moduleWarningPrefix.length); + } else if (lines[1].match(/Module Warning \(from.*?\):/)) { + lines.splice(1, 1); + } + // Strip `ModuleError` header off message before parsing // https://github.com/webpack/webpack/blob/c77030573de96b8293c69dd396492f8e2d46561e/lib/ModuleError.js var moduleErrorPrefix = 'Module Error: '; From 98a875a03266af1274094ca980d6933e47a804ae Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Mon, 17 Sep 2018 19:14:27 -0400 Subject: [PATCH 0057/1249] Fix unfound export error --- packages/react-dev-utils/formatWebpackMessages.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-dev-utils/formatWebpackMessages.js b/packages/react-dev-utils/formatWebpackMessages.js index d0eed06338d..eed11380864 100644 --- a/packages/react-dev-utils/formatWebpackMessages.js +++ b/packages/react-dev-utils/formatWebpackMessages.js @@ -125,11 +125,11 @@ function formatMessage(message, isError) { // Clean up export errors. // TODO: we should really send a PR to Webpack for this. - var exportError = /\s*(.+?)\s*(")?export '(.+?)' was not found in '(.+?)'/; + var exportError = /\s*(.*?)\s*(?:")?export '(.+?)' was not found in '(.+?)'/; if (lines[1].match(exportError)) { lines[1] = lines[1].replace( exportError, - "$1 '$4' does not contain an export named '$3'." + "$1 '$3' does not contain an export named '$2'." ); } From 54dc975c864156eb7cdf4dfffaa004b824f80866 Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Mon, 17 Sep 2018 19:17:22 -0400 Subject: [PATCH 0058/1249] Add test cases so message output can be tweaked with confidence --- .../formatWebpackMessages.test.js.snap | 81 ++++++++++++++++++ .../__tests__/formatWebpackMessages.test.js | 83 +++++++++++++++++++ 2 files changed, 164 insertions(+) create mode 100644 packages/react-dev-utils/__tests__/__snapshots__/formatWebpackMessages.test.js.snap create mode 100644 packages/react-dev-utils/__tests__/formatWebpackMessages.test.js diff --git a/packages/react-dev-utils/__tests__/__snapshots__/formatWebpackMessages.test.js.snap b/packages/react-dev-utils/__tests__/__snapshots__/formatWebpackMessages.test.js.snap new file mode 100644 index 00000000000..72a346de21e --- /dev/null +++ b/packages/react-dev-utils/__tests__/__snapshots__/formatWebpackMessages.test.js.snap @@ -0,0 +1,81 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`formats various webpack errors correctly eslint errors 1`] = ` +Object { + "errors": Array [ + "./template/src/App.js + Line 8: 'c' is not defined no-undef + +Search for the keywords to learn more about each error.", + ], + "warnings": Array [], +} +`; + +exports[`formats various webpack errors correctly eslint warning 1`] = ` +Object { + "errors": Array [], + "warnings": Array [ + "./template/src/App.js + Line 7: 'unUsed' is defined but never used no-unused-vars", + ], +} +`; + +exports[`formats various webpack errors correctly export not found 1`] = ` +Object { + "errors": Array [ + "./template/src/index.js 1:182-185 + './App' does not contain an export named 'App'.", + ], + "warnings": Array [], +} +`; + +exports[`formats various webpack errors correctly invalid css syntax 1`] = ` +Object { + "errors": Array [ + "./template/src/App.css +Syntax error: (19:1) Unexpected } + + 17 | font-size: calc(10px + 2vmin); + 18 | color: white; +> 19 | } + | ^ + 20 | + 21 | .App-link {", + ], + "warnings": Array [], +} +`; + +exports[`formats various webpack errors correctly invalid js syntax (babel) 1`] = ` +Object { + "errors": Array [ + "./template/src/App.js +Syntax error: Expected corresponding JSX closing tag for
(10:27) + + 8 | render() { + 9 | return ( +> 10 |

+ | ^ + 11 |
+ 12 | \\"logo\\" + 13 |

", + ], + "warnings": Array [], +} +`; + +exports[`formats various webpack errors correctly module not found 1`] = ` +Object { + "errors": Array [ + "./template/src/App.js +Module not found: Can't resolve 'blabla' in '/Users/joe/Documents/Development/OSS/create-react-app/packages/react-scripts/template/src'", + ], + "warnings": Array [ + "./template/src/App.js + Line 5: 'bla' is defined but never used no-unused-vars", + ], +} +`; diff --git a/packages/react-dev-utils/__tests__/formatWebpackMessages.test.js b/packages/react-dev-utils/__tests__/formatWebpackMessages.test.js new file mode 100644 index 00000000000..4bc707ec8c0 --- /dev/null +++ b/packages/react-dev-utils/__tests__/formatWebpackMessages.test.js @@ -0,0 +1,83 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +const formatWebpackMessages = require('../formatWebpackMessages'); + +// TODO: test these messages by actually running a build so we can validate +// webpack upgrades didn't break any of our massaging +describe('formats various webpack errors correctly', () => { + it('invalid js syntax (babel)', () => { + const json = { + errors: [ + './template/src/App.js\nModule Error (from /Users/joe/Documents/Development/OSS/create-react-app/node_modules/thread-loader/dist/cjs.js):\n\n Line 10: Parsing error: Expected corresponding JSX closing tag for

\n\n 8 | render() {\n 9 | return (\n> 10 |

\n | ^\n 11 |
\n 12 | logo\n 13 |

\n\n\n @ ./template/src/index.js 1:77-100 1:182-185\n @ multi ./config/polyfills.js ./template/src/index.js', + './template/src/App.js\nModule build failed (from /Users/joe/Documents/Development/OSS/create-react-app/node_modules/thread-loader/dist/cjs.js):\nThread Loader (Worker 0)\n/Users/joe/Documents/Development/OSS/create-react-app/packages/react-scripts/template/src/App.js: Expected corresponding JSX closing tag for

(10:27)\n\n 8 | render() {\n 9 | return (\n> 10 |

\n | ^\n 11 |
\n 12 | logo\n 13 |

\n\n at _class.raise (/Users/joe/Documents/Development/OSS/create-react-app/node_modules/@babel/core/node_modules/babylon/lib/index.js:779:15)\n at _class.jsxParseElementAt (/Users/joe/Documents/Development/OSS/create-react-app/node_modules/@babel/core/node_modules/babylon/lib/index.js:8111:18)\n at _class.jsxParseElement (/Users/joe/Documents/Development/OSS/create-react-app/node_modules/@babel/core/node_modules/babylon/lib/index.js:8137:19)\n at _class.parseExprAtom (/Users/joe/Documents/Development/OSS/create-react-app/node_modules/@babel/core/node_modules/babylon/lib/index.js:8144:21)\n at _class.parseExprSubscripts (/Users/joe/Documents/Development/OSS/create-react-app/node_modules/@babel/core/node_modules/babylon/lib/index.js:2758:21)\n at _class.parseMaybeUnary (/Users/joe/Documents/Development/OSS/create-react-app/node_modules/@babel/core/node_modules/babylon/lib/index.js:2737:21)\n at _class.parseExprOps (/Users/joe/Documents/Development/OSS/create-react-app/node_modules/@babel/core/node_modules/babylon/lib/index.js:2646:21)\n at _class.parseMaybeConditional (/Users/joe/Documents/Development/OSS/create-react-app/node_modules/@babel/core/node_modules/babylon/lib/index.js:2618:21)\n at _class.parseMaybeAssign (/Users/joe/Documents/Development/OSS/create-react-app/node_modules/@babel/core/node_modules/babylon/lib/index.js:2565:21)\n at _class.parseMaybeAssign (/Users/joe/Documents/Development/OSS/create-react-app/node_modules/@babel/core/node_modules/babylon/lib/index.js:7270:57)\n @ ./template/src/index.js 1:77-100 1:182-185\n @ multi ./config/polyfills.js ./template/src/index.js', + ], + warnings: [], + }; + + expect(formatWebpackMessages(json)).toMatchSnapshot(); + }); + + it('invalid css syntax', () => { + const json = { + errors: [ + './template/src/App.css\nModule build failed (from /Users/joe/Documents/Development/OSS/create-react-app/node_modules/mini-css-extract-plugin/dist/loader.js):\nModuleBuildError: Module build failed (from /Users/joe/Documents/Development/OSS/create-react-app/node_modules/postcss-loader/lib/index.js):\nSyntax Error \n\n(19:1) Unexpected }\n\n 17 | font-size: calc(10px + 2vmin);\n 18 | color: white;\n> 19 | }\n | ^\n 20 | \n 21 | .App-link {\n\n at runLoaders (/Users/joe/Documents/Development/OSS/create-react-app/node_modules/webpack/lib/NormalModule.js:286:20)\n at /Users/joe/Documents/Development/OSS/create-react-app/node_modules/loader-runner/lib/LoaderRunner.js:364:11\n at /Users/joe/Documents/Development/OSS/create-react-app/node_modules/loader-runner/lib/LoaderRunner.js:230:18\n at context.callback (/Users/joe/Documents/Development/OSS/create-react-app/node_modules/loader-runner/lib/LoaderRunner.js:111:13)\n at Promise.resolve.then.then.catch (/Users/joe/Documents/Development/OSS/create-react-app/node_modules/postcss-loader/lib/index.js:194:44)\n at \n @ ./template/src/App.js 1:1905-1923\n @ ./template/src/index.js\n @ multi ./config/polyfills.js ./template/src/index.js', + ], + warnings: [], + }; + + expect(formatWebpackMessages(json)).toMatchSnapshot(); + }); + + it('module not found', () => { + const json = { + errors: [ + "./template/src/App.js\nModule not found: Error: Can't resolve 'blabla' in '/Users/joe/Documents/Development/OSS/create-react-app/packages/react-scripts/template/src'\n @ ./template/src/App.js 5:0-25\n @ ./template/src/index.js\n @ multi ./config/polyfills.js ../react-dev-utils/webpackHotDevClient.js ./template/src/index.js", + ], + warnings: [ + "./template/src/App.js\nModule Warning (from /Users/joe/Documents/Development/OSS/create-react-app/node_modules/thread-loader/dist/cjs.js):\n\n \u001b[1mLine 5:\u001b[22m 'bla' is defined but never used \u001b[33m\u001b[4mno-unused-vars\u001b[24m\u001b[39m\n\n\n @ ./template/src/index.js 5:0-24 7:36-39\n @ multi ./config/polyfills.js ../react-dev-utils/webpackHotDevClient.js ./template/src/index.js", + ], + }; + + expect(formatWebpackMessages(json)).toMatchSnapshot(); + }); + + it('eslint errors', () => { + const json = { + errors: [ + "./template/src/App.js\nModule Error (from /Users/joe/Documents/Development/OSS/create-react-app/node_modules/thread-loader/dist/cjs.js):\n\n \u001b[1mLine 8:\u001b[22m 'c' is not defined \u001b[31m\u001b[4mno-undef\u001b[24m\u001b[39m\n\nSearch for the \u001b[4m\u001b[31mkeywords\u001b[39m\u001b[24m to learn more about each error.\n @ ./template/src/index.js 1:77-100 1:182-185\n @ multi ./config/polyfills.js ./template/src/index.js", + ], + warnings: [], + }; + + expect(formatWebpackMessages(json)).toMatchSnapshot(); + }); + + it('eslint warning', () => { + const json = { + errors: [], + warnings: [ + "./template/src/App.js\nModule Warning (from /Users/joe/Documents/Development/OSS/create-react-app/node_modules/thread-loader/dist/cjs.js):\n\n \u001b[1mLine 7:\u001b[22m 'unUsed' is defined but never used \u001b[33m\u001b[4mno-unused-vars\u001b[24m\u001b[39m\n\n\n @ ./template/src/index.js 1:77-100 1:182-185\n @ multi ./config/polyfills.js ./template/src/index.js", + ], + }; + + expect(formatWebpackMessages(json)).toMatchSnapshot(); + }); + + it('export not found', () => { + const json = { + errors: [ + "./template/src/index.js 1:182-185\n\"export 'App' was not found in './App'\n @ multi ./config/polyfills.js ./template/src/index.js", + ], + warnings: [], + }; + + expect(formatWebpackMessages(json)).toMatchSnapshot(); + }); +}); From e6ba967581d7612b31b1efb6e5b45eebf5257d9f Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Mon, 17 Sep 2018 19:32:46 -0400 Subject: [PATCH 0059/1249] Force color during Jest tests (for CI) --- packages/react-dev-utils/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index 7004d84fa6b..606aff50392 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -62,9 +62,10 @@ "text-table": "0.2.0" }, "devDependencies": { + "cross-env": "^5.2.0", "jest": "23.5.0" }, "scripts": { - "test": "jest" + "test": "cross-env FORCE_COLOR=true jest" } } From 2300f9e9830b6bd04df253afc8121893789089ec Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Tue, 18 Sep 2018 14:31:02 -0400 Subject: [PATCH 0060/1249] Switch from uglifyjs to terser (#5026) Uglify is no longer maintained and has bugs not present in Terser (its successor) --- packages/react-dev-utils/printBuildError.js | 4 ++-- packages/react-error-overlay/package.json | 2 +- packages/react-error-overlay/webpack.config.iframe.js | 6 +++--- packages/react-scripts/config/webpack.config.prod.js | 8 ++++---- packages/react-scripts/package.json | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/react-dev-utils/printBuildError.js b/packages/react-dev-utils/printBuildError.js index 0fe7aa9a552..1e70b4e64f4 100644 --- a/packages/react-dev-utils/printBuildError.js +++ b/packages/react-dev-utils/printBuildError.js @@ -13,11 +13,11 @@ module.exports = function printBuildError(err) { const message = err != null && err.message; const stack = err != null && err.stack; - // Add more helpful message for UglifyJs error + // Add more helpful message for Terser error if ( stack && typeof message === 'string' && - message.indexOf('from UglifyJs') !== -1 + message.indexOf('from Terser') !== -1 ) { try { const matched = /(.+)\[(.+):(.+),(.+)\]\[.+\]/.exec(stack); diff --git a/packages/react-error-overlay/package.json b/packages/react-error-overlay/package.json index 78f11363e98..abd51987ac2 100644 --- a/packages/react-error-overlay/package.json +++ b/packages/react-error-overlay/package.json @@ -60,7 +60,7 @@ "rimraf": "^2.6.2", "settle-promise": "1.0.0", "source-map": "0.5.6", - "uglifyjs-webpack-plugin": "1.2.5", + "terser-webpack-plugin": "1.1.0", "webpack": "^4.8.1" }, "jest": { diff --git a/packages/react-error-overlay/webpack.config.iframe.js b/packages/react-error-overlay/webpack.config.iframe.js index 3a806f362db..67157bad440 100644 --- a/packages/react-error-overlay/webpack.config.iframe.js +++ b/packages/react-error-overlay/webpack.config.iframe.js @@ -8,7 +8,7 @@ const path = require('path'); const webpack = require('webpack'); -const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); +const TerserPlugin = require('terser-webpack-plugin'); module.exports = { mode: process.env.NODE_ENV === 'production' ? 'production' : 'development', @@ -49,8 +49,8 @@ module.exports = { minimizer: [ // This code is embedded as a string, so it would never be optimized // elsewhere. - new UglifyJsPlugin({ - uglifyOptions: { + new TerserPlugin({ + terserOptions: { compress: { warnings: false, comparisons: false, diff --git a/packages/react-scripts/config/webpack.config.prod.js b/packages/react-scripts/config/webpack.config.prod.js index 34a437afce9..5d92c9ef859 100644 --- a/packages/react-scripts/config/webpack.config.prod.js +++ b/packages/react-scripts/config/webpack.config.prod.js @@ -12,7 +12,7 @@ const autoprefixer = require('autoprefixer'); const path = require('path'); const webpack = require('webpack'); const HtmlWebpackPlugin = require('html-webpack-plugin'); -const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); +const TerserPlugin = require('terser-webpack-plugin'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin'); const ManifestPlugin = require('webpack-manifest-plugin'); @@ -115,10 +115,10 @@ module.exports = { }, optimization: { minimizer: [ - new UglifyJsPlugin({ - uglifyOptions: { + new TerserPlugin({ + terserOptions: { parse: { - // we want uglify-js to parse ecma 8 code. However, we don't want it + // we want terser to parse ecma 8 code. However, we don't want it // to apply any minfication steps that turns valid ecma 5 code // into invalid ecma 5 code. This is why the 'compress' and 'output' // sections only apply transformations that are ecma 5 safe diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 2b444c0bded..0e639a768dd 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -64,8 +64,8 @@ "style-loader": "0.21.0", "svgr": "1.9.2", "sw-precache-webpack-plugin": "0.11.5", + "terser-webpack-plugin": "1.1.0", "thread-loader": "1.2.0", - "uglifyjs-webpack-plugin": "1.2.5", "url-loader": "1.0.1", "webpack": "4.19.0", "webpack-dev-server": "3.1.7", From 02b30d696ce96efd9743dfe2e482d84fa127b61e Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Tue, 18 Sep 2018 14:08:52 -0400 Subject: [PATCH 0061/1249] Revert "Fix typos in example monorepo documentation. (#4164)" This reverts commit 058d03f8f8e3a41cfc835c2f8f0c7e35047549b8. --- packages/react-scripts/template/README.md | 26 ++++++----------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/packages/react-scripts/template/README.md b/packages/react-scripts/template/README.md index 335c51303ca..a301be79168 100644 --- a/packages/react-scripts/template/README.md +++ b/packages/react-scripts/template/README.md @@ -1877,24 +1877,14 @@ monorepo/ "private": true app1/ package.json: - "dependencies": { - "@myorg/comp1": ">=0.0.0", - "react": "^16.2.0" - }, - "devDependencies": { - "react-scripts": "2.0.0" - } + "dependencies": ["@myorg/comp1": ">=0.0.0", "react": "^16.2.0"], + "devDependencies": ["react-scripts": "2.0.0"] src/ app.js: import comp1 from '@myorg/comp1'; app2/ package.json: - "dependencies": { - "@myorg/comp1": ">=0.0.0", - "react": "^16.2.0" - }, - "devDependencies": { - "react-scripts": "2.0.0" - } + "dependencies": ["@myorg/comp1": ">=0.0.0", "react": "^16.2.0"], + "devDependencies": ["react-scripts": "2.0.0"] src/ app.js: import comp1 from '@myorg/comp1'; comp1/ @@ -1906,12 +1896,8 @@ monorepo/ package.json: "name": "@myorg/comp2", "version": "0.1.0", - "dependencies": { - "@myorg/comp1": ">=0.0.0" - }, - "devDependencies": { - "react": "^16.2.0" - } + "dependencies": ["@myorg/comp1": ">=0.0.0"], + "devDependencies": ["react": "^16.2.0"] index.js: import comp1 from '@myorg/comp1' ``` * Monorepo tools work on a package level, the same level as an npm package. From d8c2da5668d4c375ae1883abd56f0aca8d3c4e79 Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Tue, 18 Sep 2018 14:09:11 -0400 Subject: [PATCH 0062/1249] Revert "Add support for new yarn workspaces config format (#4001)" This reverts commit 9690bc86d5f4892e882d14e3a85ac6ee97871214. --- packages/react-dev-utils/workspaceUtils.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/react-dev-utils/workspaceUtils.js b/packages/react-dev-utils/workspaceUtils.js index 5c502753ab4..159580e6066 100644 --- a/packages/react-dev-utils/workspaceUtils.js +++ b/packages/react-dev-utils/workspaceUtils.js @@ -32,8 +32,7 @@ const findPkgs = (rootPath, globPatterns) => { const findMonorepo = appDir => { const monoPkgPath = findPkg.sync(path.resolve(appDir, '..')); const monoPkg = monoPkgPath && require(monoPkgPath); - const workspaces = monoPkg && monoPkg.workspaces; - const patterns = (workspaces && workspaces.packages) || workspaces; + const patterns = monoPkg && monoPkg.workspaces; const isYarnWs = Boolean(patterns); const allPkgs = patterns && findPkgs(path.dirname(monoPkgPath), patterns); const isIncluded = dir => allPkgs && allPkgs.indexOf(dir) !== -1; From cc328d62870f9e343a232137fcad508ae8fafb73 Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Tue, 18 Sep 2018 14:14:05 -0400 Subject: [PATCH 0063/1249] Revert "Use yarn when running inside yarn workspace. (#3997)" This reverts commit 2c34d5b66eab7d1c96e573bc48b8e82b6d8e82b0. --- packages/create-react-app/createReactApp.js | 11 ++--- packages/create-react-app/package.json | 1 - packages/react-dev-utils/package.json | 5 +- packages/react-dev-utils/workspaceUtils.js | 53 --------------------- packages/react-scripts/config/paths.js | 46 ++++++++++++++---- packages/react-scripts/package.json | 2 + packages/react-scripts/scripts/build.js | 3 +- packages/react-scripts/scripts/eject.js | 2 +- packages/react-scripts/scripts/start.js | 10 ++-- 9 files changed, 49 insertions(+), 84 deletions(-) delete mode 100644 packages/react-dev-utils/workspaceUtils.js diff --git a/packages/create-react-app/createReactApp.js b/packages/create-react-app/createReactApp.js index fbf0f3c8160..015417a2c2a 100755 --- a/packages/create-react-app/createReactApp.js +++ b/packages/create-react-app/createReactApp.js @@ -49,7 +49,7 @@ const url = require('url'); const hyperquest = require('hyperquest'); const envinfo = require('envinfo'); const os = require('os'); -const findMonorepo = require('react-dev-utils/workspaceUtils').findMonorepo; + const packageJson = require('./package.json'); // These files should be allowed to remain on a failed install, @@ -204,7 +204,7 @@ function createApp(name, verbose, version, useNpm, template) { JSON.stringify(packageJson, null, 2) + os.EOL ); - const useYarn = useNpm ? false : shouldUseYarn(root); + const useYarn = useNpm ? false : shouldUseYarn(); const originalDirectory = process.cwd(); process.chdir(root); if (!useYarn && !checkThatNpmCanReadCwd()) { @@ -244,7 +244,7 @@ function createApp(name, verbose, version, useNpm, template) { run(root, appName, version, verbose, originalDirectory, template, useYarn); } -function isYarnAvailable() { +function shouldUseYarn() { try { execSync('yarnpkg --version', { stdio: 'ignore' }); return true; @@ -253,11 +253,6 @@ function isYarnAvailable() { } } -function shouldUseYarn(appDir) { - const mono = findMonorepo(appDir); - return (mono.isYarnWs && mono.isAppIncluded) || isYarnAvailable(); -} - function install(root, useYarn, dependencies, verbose, isOnline) { return new Promise((resolve, reject) => { let command; diff --git a/packages/create-react-app/package.json b/packages/create-react-app/package.json index 27f7fc74089..dbc8a188e73 100644 --- a/packages/create-react-app/package.json +++ b/packages/create-react-app/package.json @@ -27,7 +27,6 @@ "envinfo": "5.4.0", "fs-extra": "^5.0.0", "hyperquest": "^2.1.2", - "react-dev-utils": "^5.0.0", "semver": "^5.0.3", "tar-pack": "^3.4.0", "tmp": "0.0.33", diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index 606aff50392..61394095fde 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -34,8 +34,7 @@ "printHostingInstructions.js", "WatchMissingNodeModulesPlugin.js", "WebpackDevServerUtils.js", - "webpackHotDevClient.js", - "workspaceUtils.js" + "webpackHotDevClient.js" ], "dependencies": { "@babel/code-frame": "7.0.0-beta.46", @@ -46,9 +45,7 @@ "detect-port-alt": "1.1.6", "escape-string-regexp": "1.0.5", "filesize": "3.6.1", - "find-pkg": "1.0.0", "global-modules": "1.0.0", - "globby": "8.0.1", "gzip-size": "4.1.0", "inquirer": "5.1.0", "is-root": "1.0.0", diff --git a/packages/react-dev-utils/workspaceUtils.js b/packages/react-dev-utils/workspaceUtils.js deleted file mode 100644 index 159580e6066..00000000000 --- a/packages/react-dev-utils/workspaceUtils.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Copyright (c) 2018-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -'use strict'; -const fs = require('fs'); -const path = require('path'); -const findPkg = require('find-pkg'); -const globby = require('globby'); - -const findPkgs = (rootPath, globPatterns) => { - if (!globPatterns) { - return []; - } - const globOpts = { - cwd: rootPath, - strict: true, - absolute: true, - }; - return globPatterns - .reduce( - (pkgs, pattern) => - pkgs.concat(globby.sync(path.join(pattern, 'package.json'), globOpts)), - [] - ) - .map(f => path.dirname(path.normalize(f))); -}; - -const findMonorepo = appDir => { - const monoPkgPath = findPkg.sync(path.resolve(appDir, '..')); - const monoPkg = monoPkgPath && require(monoPkgPath); - const patterns = monoPkg && monoPkg.workspaces; - const isYarnWs = Boolean(patterns); - const allPkgs = patterns && findPkgs(path.dirname(monoPkgPath), patterns); - const isIncluded = dir => allPkgs && allPkgs.indexOf(dir) !== -1; - const isAppIncluded = isIncluded(appDir); - const pkgs = allPkgs - ? allPkgs.filter(f => fs.realpathSync(f) !== appDir) - : []; - - return { - isAppIncluded, - isYarnWs, - pkgs, - }; -}; - -module.exports = { - findMonorepo, -}; diff --git a/packages/react-scripts/config/paths.js b/packages/react-scripts/config/paths.js index 32665e9b76c..f701bf2bd40 100644 --- a/packages/react-scripts/config/paths.js +++ b/packages/react-scripts/config/paths.js @@ -11,7 +11,8 @@ const path = require('path'); const fs = require('fs'); const url = require('url'); -const findMonorepo = require('react-dev-utils/workspaceUtils').findMonorepo; +const findPkg = require('find-pkg'); +const globby = require('globby'); // Make sure any symlinks in the project folder are resolved: // https://github.com/facebook/create-react-app/issues/637 @@ -57,6 +58,7 @@ module.exports = { appIndexJs: resolveApp('src/index.js'), appPackageJson: resolveApp('package.json'), appSrc: resolveApp('src'), + yarnLockFile: resolveApp('yarn.lock'), testsSetup: resolveApp('src/setupTests.js'), appNodeModules: resolveApp('node_modules'), publicUrl: getPublicUrl(resolveApp('package.json')), @@ -78,6 +80,7 @@ module.exports = { appIndexJs: resolveApp('src/index.js'), appPackageJson: resolveApp('package.json'), appSrc: resolveApp('src'), + yarnLockFile: resolveApp('yarn.lock'), testsSetup: resolveApp('src/setupTests.js'), appNodeModules: resolveApp('node_modules'), publicUrl: getPublicUrl(resolveApp('package.json')), @@ -103,6 +106,7 @@ if (useTemplate) { appIndexJs: resolveOwn('template/src/index.js'), appPackageJson: resolveOwn('package.json'), appSrc: resolveOwn('template/src'), + yarnLockFile: resolveOwn('template/yarn.lock'), testsSetup: resolveOwn('template/src/setupTests.js'), appNodeModules: resolveOwn('node_modules'), publicUrl: getPublicUrl(resolveOwn('package.json')), @@ -116,16 +120,40 @@ if (useTemplate) { module.exports.srcPaths = [module.exports.appSrc]; -module.exports.useYarn = fs.existsSync( - path.join(module.exports.appPath, 'yarn.lock') -); +const findPkgs = (rootPath, globPatterns) => { + const globOpts = { + cwd: rootPath, + strict: true, + absolute: true, + }; + return globPatterns + .reduce( + (pkgs, pattern) => + pkgs.concat(globby.sync(path.join(pattern, 'package.json'), globOpts)), + [] + ) + .map(f => path.dirname(path.normalize(f))); +}; + +const getMonorepoPkgPaths = () => { + const monoPkgPath = findPkg.sync(path.resolve(appDirectory, '..')); + if (monoPkgPath) { + // get monorepo config from yarn workspace + const pkgPatterns = require(monoPkgPath).workspaces; + if (pkgPatterns == null) { + return []; + } + const pkgPaths = findPkgs(path.dirname(monoPkgPath), pkgPatterns); + // only include monorepo pkgs if app itself is included in monorepo + if (pkgPaths.indexOf(appDirectory) !== -1) { + return pkgPaths.filter(f => fs.realpathSync(f) !== appDirectory); + } + } + return []; +}; if (checkForMonorepo) { // if app is in a monorepo (lerna or yarn workspace), treat other packages in // the monorepo as if they are app source - const mono = findMonorepo(appDirectory); - if (mono.isAppIncluded) { - Array.prototype.push.apply(module.exports.srcPaths, mono.pkgs); - } - module.exports.useYarn = module.exports.useYarn || mono.isYarnWs; + Array.prototype.push.apply(module.exports.srcPaths, getMonorepoPkgPaths()); } diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 0e639a768dd..7fe0b2bb1c6 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -44,7 +44,9 @@ "eslint-plugin-jsx-a11y": "6.0.3", "eslint-plugin-react": "7.8.2", "file-loader": "1.1.11", + "find-pkg": "1.0.0", "fs-extra": "5.0.0", + "globby": "7.1.1", "graphql": "0.13.2", "graphql-tag": "2.9.2", "html-webpack-plugin": "3.2.0", diff --git a/packages/react-scripts/scripts/build.js b/packages/react-scripts/scripts/build.js index 599aa32ee4e..6c37f3d71ae 100644 --- a/packages/react-scripts/scripts/build.js +++ b/packages/react-scripts/scripts/build.js @@ -46,6 +46,7 @@ const { printBrowsers } = require('react-dev-utils/browsersHelper'); const measureFileSizesBeforeBuild = FileSizeReporter.measureFileSizesBeforeBuild; const printFileSizesAfterBuild = FileSizeReporter.printFileSizesAfterBuild; +const useYarn = fs.existsSync(paths.yarnLockFile); // These sizes are pretty large. We'll warn for bundles exceeding them. const WARN_AFTER_BUNDLE_GZIP_SIZE = 512 * 1024; @@ -116,7 +117,7 @@ checkBrowsers(paths.appPath) publicUrl, publicPath, buildFolder, - paths.useYarn + useYarn ); printBrowsers(paths.appPath); }, diff --git a/packages/react-scripts/scripts/eject.js b/packages/react-scripts/scripts/eject.js index 98863b915f2..e8c64a77853 100644 --- a/packages/react-scripts/scripts/eject.js +++ b/packages/react-scripts/scripts/eject.js @@ -224,7 +224,7 @@ inquirer } } - if (paths.useYarn) { + if (fs.existsSync(paths.yarnLockFile)) { const windowsCmdFilePath = path.join( appPath, 'node_modules', diff --git a/packages/react-scripts/scripts/start.js b/packages/react-scripts/scripts/start.js index 95502bc2a24..1b080f92ac2 100644 --- a/packages/react-scripts/scripts/start.js +++ b/packages/react-scripts/scripts/start.js @@ -29,6 +29,7 @@ if (process.env.SKIP_PREFLIGHT_CHECK !== 'true') { } // @remove-on-eject-end +const fs = require('fs'); const chalk = require('chalk'); const webpack = require('webpack'); const WebpackDevServer = require('webpack-dev-server'); @@ -45,6 +46,7 @@ const paths = require('../config/paths'); const config = require('../config/webpack.config.dev'); const createDevServerConfig = require('../config/webpackDevServer.config'); +const useYarn = fs.existsSync(paths.yarnLockFile); const isInteractive = process.stdout.isTTY; // Warn and crash if required files are missing @@ -91,13 +93,7 @@ checkBrowsers(paths.appPath) const appName = require(paths.appPackageJson).name; const urls = prepareUrls(protocol, HOST, port); // Create a webpack compiler that is configured with custom messages. - const compiler = createCompiler( - webpack, - config, - appName, - urls, - paths.useYarn - ); + const compiler = createCompiler(webpack, config, appName, urls, useYarn); // Load proxy config const proxySetting = require(paths.appPackageJson).proxy; const proxyConfig = prepareProxy(proxySetting, paths.appPublic); From 10e8fd55312e482308827c43347d2246c182c920 Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Tue, 18 Sep 2018 14:14:28 -0400 Subject: [PATCH 0064/1249] Revert "Ensure workspaces key exists in parent package.json (#3989)" This reverts commit 47d2d94118db8d8366ac8036469439885d3e1525. --- packages/react-scripts/config/paths.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/react-scripts/config/paths.js b/packages/react-scripts/config/paths.js index f701bf2bd40..2b77980c12b 100644 --- a/packages/react-scripts/config/paths.js +++ b/packages/react-scripts/config/paths.js @@ -140,9 +140,6 @@ const getMonorepoPkgPaths = () => { if (monoPkgPath) { // get monorepo config from yarn workspace const pkgPatterns = require(monoPkgPath).workspaces; - if (pkgPatterns == null) { - return []; - } const pkgPaths = findPkgs(path.dirname(monoPkgPath), pkgPatterns); // only include monorepo pkgs if app itself is included in monorepo if (pkgPaths.indexOf(appDirectory) !== -1) { From 92e40c38e8c5ab953996849b05e3f0c51bdbc134 Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Tue, 18 Sep 2018 14:14:46 -0400 Subject: [PATCH 0065/1249] Revert "Add react-scripts version compatibility for monorepos. (#3953)" This reverts commit aa8789b1aa0153dc1680c28b5bb806a853abe0a0. --- packages/react-scripts/template/README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/react-scripts/template/README.md b/packages/react-scripts/template/README.md index a301be79168..d857bc93c03 100644 --- a/packages/react-scripts/template/README.md +++ b/packages/react-scripts/template/README.md @@ -1852,9 +1852,6 @@ Learn more about React Styleguidist: * [Documentation](https://react-styleguidist.js.org/docs/getting-started.html) ## Sharing Components in a Monorepo - ->Note: this feature is available with `react-scripts@2.0.0` and higher. - A typical monorepo folder structure looks like this: ``` monorepo/ From 50b4857ff89e1e54f030bdf00395090a6b465dfb Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Tue, 18 Sep 2018 14:25:39 -0400 Subject: [PATCH 0066/1249] Revert "Add support for yarn and lerna monorepos. (#3741)" This reverts commit b43ad04b880f460ed23dbb7968bae634bf7dbc91. --- .travis.yml | 2 - appveyor.yml | 4 - .../config/jest/babelTransform.js | 5 +- packages/react-scripts/config/paths.js | 59 ++------ .../config/webpack.config.dev.js | 10 +- .../config/webpack.config.prod.js | 10 +- .../fixtures/kitchensink/.babelrc | 3 - .../monorepos/packages/comp1/index.js | 21 --- .../monorepos/packages/comp1/index.test.js | 8 -- .../monorepos/packages/comp1/package.json | 10 -- .../monorepos/packages/comp2/index.js | 11 -- .../monorepos/packages/comp2/index.test.js | 8 -- .../monorepos/packages/comp2/package.json | 13 -- .../monorepos/packages/cra-app1/.gitignore | 21 --- .../monorepos/packages/cra-app1/package.json | 32 ----- .../packages/cra-app1/public/favicon.ico | Bin 3870 -> 0 bytes .../packages/cra-app1/public/index.html | 40 ------ .../packages/cra-app1/public/manifest.json | 15 -- .../monorepos/packages/cra-app1/src/App.css | 28 ---- .../monorepos/packages/cra-app1/src/App.js | 24 ---- .../packages/cra-app1/src/App.test.js | 9 -- .../monorepos/packages/cra-app1/src/index.css | 5 - .../monorepos/packages/cra-app1/src/index.js | 6 - .../monorepos/packages/cra-app1/src/logo.svg | 7 - .../fixtures/monorepos/yarn-ws/package.json | 4 - packages/react-scripts/package.json | 2 - packages/react-scripts/scripts/eject.js | 14 +- packages/react-scripts/scripts/test.js | 2 +- .../scripts/utils/createJestConfig.js | 16 +-- packages/react-scripts/template/README.md | 61 -------- tasks/e2e-kitchensink.sh | 8 ++ tasks/e2e-monorepos.sh | 134 ------------------ tasks/local-test.sh | 5 +- 33 files changed, 49 insertions(+), 548 deletions(-) delete mode 100644 packages/react-scripts/fixtures/kitchensink/.babelrc delete mode 100644 packages/react-scripts/fixtures/monorepos/packages/comp1/index.js delete mode 100644 packages/react-scripts/fixtures/monorepos/packages/comp1/index.test.js delete mode 100644 packages/react-scripts/fixtures/monorepos/packages/comp1/package.json delete mode 100644 packages/react-scripts/fixtures/monorepos/packages/comp2/index.js delete mode 100644 packages/react-scripts/fixtures/monorepos/packages/comp2/index.test.js delete mode 100644 packages/react-scripts/fixtures/monorepos/packages/comp2/package.json delete mode 100644 packages/react-scripts/fixtures/monorepos/packages/cra-app1/.gitignore delete mode 100644 packages/react-scripts/fixtures/monorepos/packages/cra-app1/package.json delete mode 100644 packages/react-scripts/fixtures/monorepos/packages/cra-app1/public/favicon.ico delete mode 100644 packages/react-scripts/fixtures/monorepos/packages/cra-app1/public/index.html delete mode 100644 packages/react-scripts/fixtures/monorepos/packages/cra-app1/public/manifest.json delete mode 100644 packages/react-scripts/fixtures/monorepos/packages/cra-app1/src/App.css delete mode 100644 packages/react-scripts/fixtures/monorepos/packages/cra-app1/src/App.js delete mode 100644 packages/react-scripts/fixtures/monorepos/packages/cra-app1/src/App.test.js delete mode 100644 packages/react-scripts/fixtures/monorepos/packages/cra-app1/src/index.css delete mode 100644 packages/react-scripts/fixtures/monorepos/packages/cra-app1/src/index.js delete mode 100644 packages/react-scripts/fixtures/monorepos/packages/cra-app1/src/logo.svg delete mode 100644 packages/react-scripts/fixtures/monorepos/yarn-ws/package.json delete mode 100755 tasks/e2e-monorepos.sh diff --git a/.travis.yml b/.travis.yml index a014151cf6a..aea00ad24ba 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,7 +18,6 @@ script: - 'if [ $TEST_SUITE = "installs" ]; then tasks/e2e-installs.sh; fi' - 'if [ $TEST_SUITE = "kitchensink" ]; then tasks/e2e-kitchensink.sh; fi' - 'if [ $TEST_SUITE = "kitchensink-eject" ]; then tasks/e2e-kitchensink-eject.sh; fi' - - 'if [ $TEST_SUITE = "monorepos" ]; then tasks/e2e-monorepos.sh; fi' - 'if [ $TEST_SUITE = "old-node" ]; then tasks/e2e-old-node.sh; fi' env: matrix: @@ -26,7 +25,6 @@ env: - TEST_SUITE=installs - TEST_SUITE=kitchensink - TEST_SUITE=kitchensink-eject - - TEST_SUITE=monorepos matrix: include: - node_js: 4 diff --git a/appveyor.yml b/appveyor.yml index a4315250399..cc66be280c5 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -10,8 +10,6 @@ environment: test_suite: "kitchensink" - nodejs_version: 10 test_suite: "kitchensink-eject" - - nodejs_version: 10 - test_suite: "monorepos" - nodejs_version: 8 test_suite: "simple" - nodejs_version: 8 @@ -20,8 +18,6 @@ environment: test_suite: "kitchensink" - nodejs_version: 8 test_suite: "kitchensink-eject" - - nodejs_version: 8 - test_suite: "monorepos" cache: - node_modules -> appveyor.cleanup-cache.txt - packages\react-scripts\node_modules -> appveyor.cleanup-cache.txt diff --git a/packages/react-scripts/config/jest/babelTransform.js b/packages/react-scripts/config/jest/babelTransform.js index 8792f3f6473..02742e90c6c 100644 --- a/packages/react-scripts/config/jest/babelTransform.js +++ b/packages/react-scripts/config/jest/babelTransform.js @@ -1,18 +1,15 @@ -// @remove-on-eject-begin +// @remove-file-on-eject /** * Copyright (c) 2014-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -// @remove-on-eject-end 'use strict'; const babelJest = require('babel-jest'); module.exports = babelJest.createTransformer({ presets: [require.resolve('babel-preset-react-app')], - // @remove-on-eject-begin babelrc: false, - // @remove-on-eject-end }); diff --git a/packages/react-scripts/config/paths.js b/packages/react-scripts/config/paths.js index 2b77980c12b..eb15377e71e 100644 --- a/packages/react-scripts/config/paths.js +++ b/packages/react-scripts/config/paths.js @@ -11,8 +11,6 @@ const path = require('path'); const fs = require('fs'); const url = require('url'); -const findPkg = require('find-pkg'); -const globby = require('globby'); // Make sure any symlinks in the project folder are resolved: // https://github.com/facebook/create-react-app/issues/637 @@ -65,8 +63,6 @@ module.exports = { servedPath: getServedPath(resolveApp('package.json')), }; -let checkForMonorepo = true; - // @remove-on-eject-begin const resolveOwn = relativePath => path.resolve(__dirname, '..', relativePath); @@ -90,13 +86,17 @@ module.exports = { ownNodeModules: resolveOwn('node_modules'), // This is empty on npm 3 }; -// detect if template should be used, ie. when cwd is react-scripts itself -const useTemplate = - appDirectory === fs.realpathSync(path.join(__dirname, '..')); - -checkForMonorepo = !useTemplate; - -if (useTemplate) { +const ownPackageJson = require('../package.json'); +const reactScriptsPath = resolveApp(`node_modules/${ownPackageJson.name}`); +const reactScriptsLinked = + fs.existsSync(reactScriptsPath) && + fs.lstatSync(reactScriptsPath).isSymbolicLink(); + +// config before publish: we're in ./packages/react-scripts/config/ +if ( + !reactScriptsLinked && + __dirname.indexOf(path.join('packages', 'react-scripts', 'config')) !== -1 +) { module.exports = { dotenv: resolveOwn('template/.env'), appPath: resolveApp('.'), @@ -117,40 +117,3 @@ if (useTemplate) { }; } // @remove-on-eject-end - -module.exports.srcPaths = [module.exports.appSrc]; - -const findPkgs = (rootPath, globPatterns) => { - const globOpts = { - cwd: rootPath, - strict: true, - absolute: true, - }; - return globPatterns - .reduce( - (pkgs, pattern) => - pkgs.concat(globby.sync(path.join(pattern, 'package.json'), globOpts)), - [] - ) - .map(f => path.dirname(path.normalize(f))); -}; - -const getMonorepoPkgPaths = () => { - const monoPkgPath = findPkg.sync(path.resolve(appDirectory, '..')); - if (monoPkgPath) { - // get monorepo config from yarn workspace - const pkgPatterns = require(monoPkgPath).workspaces; - const pkgPaths = findPkgs(path.dirname(monoPkgPath), pkgPatterns); - // only include monorepo pkgs if app itself is included in monorepo - if (pkgPaths.indexOf(appDirectory) !== -1) { - return pkgPaths.filter(f => fs.realpathSync(f) !== appDirectory); - } - } - return []; -}; - -if (checkForMonorepo) { - // if app is in a monorepo (lerna or yarn workspace), treat other packages in - // the monorepo as if they are app source - Array.prototype.push.apply(module.exports.srcPaths, getMonorepoPkgPaths()); -} diff --git a/packages/react-scripts/config/webpack.config.dev.js b/packages/react-scripts/config/webpack.config.dev.js index b36d81ea01f..3a3f96eeefd 100644 --- a/packages/react-scripts/config/webpack.config.dev.js +++ b/packages/react-scripts/config/webpack.config.dev.js @@ -182,10 +182,10 @@ module.exports = { options: { formatter: require.resolve('react-dev-utils/eslintFormatter'), eslintPath: require.resolve('eslint'), + // @remove-on-eject-begin baseConfig: { extends: [require.resolve('eslint-config-react-app')], }, - // @remove-on-eject-begin ignore: false, useEslintrc: false, // @remove-on-eject-end @@ -193,8 +193,7 @@ module.exports = { loader: require.resolve('eslint-loader'), }, ], - include: paths.srcPaths, - exclude: [/[/\\\\]node_modules[/\\\\]/], + include: paths.appSrc, }, { // "oneOf" will traverse all following loaders until one will @@ -216,8 +215,7 @@ module.exports = { // The preset includes JSX, Flow, and some ESnext features. { test: /\.(js|jsx|mjs)$/, - include: paths.srcPaths, - exclude: [/[/\\\\]node_modules[/\\\\]/], + include: paths.appSrc, use: [ // This loader parallelizes code compilation, it is optional but // improves compile time on larger projects @@ -232,8 +230,8 @@ module.exports = { options: { // @remove-on-eject-begin babelrc: false, - // @remove-on-eject-end presets: [require.resolve('babel-preset-react-app')], + // @remove-on-eject-end plugins: [ [ require.resolve('babel-plugin-named-asset-import'), diff --git a/packages/react-scripts/config/webpack.config.prod.js b/packages/react-scripts/config/webpack.config.prod.js index 5d92c9ef859..f936a8ddbf9 100644 --- a/packages/react-scripts/config/webpack.config.prod.js +++ b/packages/react-scripts/config/webpack.config.prod.js @@ -220,12 +220,12 @@ module.exports = { options: { formatter: require.resolve('react-dev-utils/eslintFormatter'), eslintPath: require.resolve('eslint'), + // @remove-on-eject-begin // TODO: consider separate config for production, // e.g. to enable no-console and no-debugger only in production. baseConfig: { extends: [require.resolve('eslint-config-react-app')], }, - // @remove-on-eject-begin ignore: false, useEslintrc: false, // @remove-on-eject-end @@ -233,8 +233,7 @@ module.exports = { loader: require.resolve('eslint-loader'), }, ], - include: paths.srcPaths, - exclude: [/[/\\\\]node_modules[/\\\\]/], + include: paths.appSrc, }, { // "oneOf" will traverse all following loaders until one will @@ -255,8 +254,7 @@ module.exports = { // The preset includes JSX, Flow, and some ESnext features. { test: /\.(js|jsx|mjs)$/, - include: paths.srcPaths, - exclude: [/[/\\\\]node_modules[/\\\\]/], + include: paths.appSrc, use: [ // This loader parallelizes code compilation, it is optional but // improves compile time on larger projects @@ -266,8 +264,8 @@ module.exports = { options: { // @remove-on-eject-begin babelrc: false, - // @remove-on-eject-end presets: [require.resolve('babel-preset-react-app')], + // @remove-on-eject-end plugins: [ [ require.resolve('babel-plugin-named-asset-import'), diff --git a/packages/react-scripts/fixtures/kitchensink/.babelrc b/packages/react-scripts/fixtures/kitchensink/.babelrc deleted file mode 100644 index c14b2828d16..00000000000 --- a/packages/react-scripts/fixtures/kitchensink/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": ["react-app"] -} diff --git a/packages/react-scripts/fixtures/monorepos/packages/comp1/index.js b/packages/react-scripts/fixtures/monorepos/packages/comp1/index.js deleted file mode 100644 index 104989fe35a..00000000000 --- a/packages/react-scripts/fixtures/monorepos/packages/comp1/index.js +++ /dev/null @@ -1,21 +0,0 @@ -import React from 'react'; - -class Comp1 extends React.Component { - static parts = { - greeting: 'hello', - region: 'world', - }; - - render() { - const { greeting, region } = Comp1.parts; - - return ( -

- Comp1 - {greeting} {region} -
- ); - } -} - -export default Comp1; diff --git a/packages/react-scripts/fixtures/monorepos/packages/comp1/index.test.js b/packages/react-scripts/fixtures/monorepos/packages/comp1/index.test.js deleted file mode 100644 index 25160484031..00000000000 --- a/packages/react-scripts/fixtures/monorepos/packages/comp1/index.test.js +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import Comp1 from '.'; - -it('renders Comp1 without crashing', () => { - const div = document.createElement('div'); - ReactDOM.render(, div); -}); diff --git a/packages/react-scripts/fixtures/monorepos/packages/comp1/package.json b/packages/react-scripts/fixtures/monorepos/packages/comp1/package.json deleted file mode 100644 index baa4c31dc71..00000000000 --- a/packages/react-scripts/fixtures/monorepos/packages/comp1/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "comp1", - "version": "1.0.0", - "main": "index.js", - "license": "MIT", - "devDependencies": { - "react": "^16.2.0", - "react-dom": "^16.2.0" - } -} diff --git a/packages/react-scripts/fixtures/monorepos/packages/comp2/index.js b/packages/react-scripts/fixtures/monorepos/packages/comp2/index.js deleted file mode 100644 index 6dcc69dacf1..00000000000 --- a/packages/react-scripts/fixtures/monorepos/packages/comp2/index.js +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react'; - -import Comp1 from 'comp1'; - -const Comp2 = () => ( -
- Comp2, nested Comp1: -
-); - -export default Comp2; diff --git a/packages/react-scripts/fixtures/monorepos/packages/comp2/index.test.js b/packages/react-scripts/fixtures/monorepos/packages/comp2/index.test.js deleted file mode 100644 index 6d022e87d54..00000000000 --- a/packages/react-scripts/fixtures/monorepos/packages/comp2/index.test.js +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import Comp2 from '.'; - -it('renders Comp2 without crashing', () => { - const div = document.createElement('div'); - ReactDOM.render(, div); -}); diff --git a/packages/react-scripts/fixtures/monorepos/packages/comp2/package.json b/packages/react-scripts/fixtures/monorepos/packages/comp2/package.json deleted file mode 100644 index 329b14077ba..00000000000 --- a/packages/react-scripts/fixtures/monorepos/packages/comp2/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "comp2", - "dependencies": { - "comp1": "^1.0.0" - }, - "devDependencies": { - "react": "^16.2.0", - "react-dom": "^16.2.0" - }, - "version": "1.0.0", - "main": "index.js", - "license": "MIT" -} diff --git a/packages/react-scripts/fixtures/monorepos/packages/cra-app1/.gitignore b/packages/react-scripts/fixtures/monorepos/packages/cra-app1/.gitignore deleted file mode 100644 index d30f40ef442..00000000000 --- a/packages/react-scripts/fixtures/monorepos/packages/cra-app1/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -# See https://help.github.com/ignore-files/ for more about ignoring files. - -# dependencies -/node_modules - -# testing -/coverage - -# production -/build - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* diff --git a/packages/react-scripts/fixtures/monorepos/packages/cra-app1/package.json b/packages/react-scripts/fixtures/monorepos/packages/cra-app1/package.json deleted file mode 100644 index 218edb79d6b..00000000000 --- a/packages/react-scripts/fixtures/monorepos/packages/cra-app1/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "cra-app1", - "version": "0.1.0", - "private": true, - "dependencies": { - "comp2": "^1.0.0", - "react": "^16.2.0", - "react-dom": "^16.2.0" - }, - "devDependencies": { - "react-scripts": "latest" - }, - "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test --env=jsdom", - "eject": "react-scripts eject" - }, - "browserslist": { - "development": [ - "last 2 chrome versions", - "last 2 firefox versions", - "last 2 edge versions" - ], - "production": [ - ">1%", - "last 4 versions", - "Firefox ESR", - "not ie < 11" - ] - } -} diff --git a/packages/react-scripts/fixtures/monorepos/packages/cra-app1/public/favicon.ico b/packages/react-scripts/fixtures/monorepos/packages/cra-app1/public/favicon.ico deleted file mode 100644 index a11777cc471a4344702741ab1c8a588998b1311a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ diff --git a/packages/react-scripts/fixtures/monorepos/packages/cra-app1/public/index.html b/packages/react-scripts/fixtures/monorepos/packages/cra-app1/public/index.html deleted file mode 100644 index ed0ebafa1b7..00000000000 --- a/packages/react-scripts/fixtures/monorepos/packages/cra-app1/public/index.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - React App - - - -
- - - diff --git a/packages/react-scripts/fixtures/monorepos/packages/cra-app1/public/manifest.json b/packages/react-scripts/fixtures/monorepos/packages/cra-app1/public/manifest.json deleted file mode 100644 index ef19ec243e7..00000000000 --- a/packages/react-scripts/fixtures/monorepos/packages/cra-app1/public/manifest.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "short_name": "React App", - "name": "Create React App Sample", - "icons": [ - { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" - } - ], - "start_url": "./index.html", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} diff --git a/packages/react-scripts/fixtures/monorepos/packages/cra-app1/src/App.css b/packages/react-scripts/fixtures/monorepos/packages/cra-app1/src/App.css deleted file mode 100644 index c5c6e8a68ad..00000000000 --- a/packages/react-scripts/fixtures/monorepos/packages/cra-app1/src/App.css +++ /dev/null @@ -1,28 +0,0 @@ -.App { - text-align: center; -} - -.App-logo { - animation: App-logo-spin infinite 20s linear; - height: 80px; -} - -.App-header { - background-color: #222; - height: 150px; - padding: 20px; - color: white; -} - -.App-title { - font-size: 1.5em; -} - -.App-intro { - font-size: large; -} - -@keyframes App-logo-spin { - from { transform: rotate(0deg); } - to { transform: rotate(360deg); } -} diff --git a/packages/react-scripts/fixtures/monorepos/packages/cra-app1/src/App.js b/packages/react-scripts/fixtures/monorepos/packages/cra-app1/src/App.js deleted file mode 100644 index ab9f3f95793..00000000000 --- a/packages/react-scripts/fixtures/monorepos/packages/cra-app1/src/App.js +++ /dev/null @@ -1,24 +0,0 @@ -import React, { Component } from 'react'; -import logo from './logo.svg'; -import './App.css'; - -import Comp2 from 'comp2'; - -class App extends Component { - render() { - return ( -
-
- logo -

YarnWS-CraApp1

-
-

- To get started, edit src/App.js and save to reload. -

- -
- ); - } -} - -export default App; diff --git a/packages/react-scripts/fixtures/monorepos/packages/cra-app1/src/App.test.js b/packages/react-scripts/fixtures/monorepos/packages/cra-app1/src/App.test.js deleted file mode 100644 index a754b201bf9..00000000000 --- a/packages/react-scripts/fixtures/monorepos/packages/cra-app1/src/App.test.js +++ /dev/null @@ -1,9 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import App from './App'; - -it('renders without crashing', () => { - const div = document.createElement('div'); - ReactDOM.render(, div); - ReactDOM.unmountComponentAtNode(div); -}); diff --git a/packages/react-scripts/fixtures/monorepos/packages/cra-app1/src/index.css b/packages/react-scripts/fixtures/monorepos/packages/cra-app1/src/index.css deleted file mode 100644 index b4cc7250b98..00000000000 --- a/packages/react-scripts/fixtures/monorepos/packages/cra-app1/src/index.css +++ /dev/null @@ -1,5 +0,0 @@ -body { - margin: 0; - padding: 0; - font-family: sans-serif; -} diff --git a/packages/react-scripts/fixtures/monorepos/packages/cra-app1/src/index.js b/packages/react-scripts/fixtures/monorepos/packages/cra-app1/src/index.js deleted file mode 100644 index 395b74997b2..00000000000 --- a/packages/react-scripts/fixtures/monorepos/packages/cra-app1/src/index.js +++ /dev/null @@ -1,6 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import './index.css'; -import App from './App'; - -ReactDOM.render(, document.getElementById('root')); diff --git a/packages/react-scripts/fixtures/monorepos/packages/cra-app1/src/logo.svg b/packages/react-scripts/fixtures/monorepos/packages/cra-app1/src/logo.svg deleted file mode 100644 index 6b60c1042f5..00000000000 --- a/packages/react-scripts/fixtures/monorepos/packages/cra-app1/src/logo.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/packages/react-scripts/fixtures/monorepos/yarn-ws/package.json b/packages/react-scripts/fixtures/monorepos/yarn-ws/package.json deleted file mode 100644 index aad9ea832aa..00000000000 --- a/packages/react-scripts/fixtures/monorepos/yarn-ws/package.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "private": true, - "workspaces": ["packages/*"] -} diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 7fe0b2bb1c6..0e639a768dd 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -44,9 +44,7 @@ "eslint-plugin-jsx-a11y": "6.0.3", "eslint-plugin-react": "7.8.2", "file-loader": "1.1.11", - "find-pkg": "1.0.0", "fs-extra": "5.0.0", - "globby": "7.1.1", "graphql": "0.13.2", "graphql-tag": "2.9.2", "html-webpack-plugin": "3.2.0", diff --git a/packages/react-scripts/scripts/eject.js b/packages/react-scripts/scripts/eject.js index e8c64a77853..84353fc3c81 100644 --- a/packages/react-scripts/scripts/eject.js +++ b/packages/react-scripts/scripts/eject.js @@ -109,7 +109,7 @@ inquirer const jestConfig = createJestConfig( filePath => path.posix.join('', filePath), null, - paths.srcPaths + true ); console.log(); @@ -205,6 +205,18 @@ inquirer console.log(` Adding ${cyan('Jest')} configuration`); appPackage.jest = jestConfig; + // Add Babel config + console.log(` Adding ${cyan('Babel')} preset`); + appPackage.babel = { + presets: ['react-app'], + }; + + // Add ESlint config + console.log(` Adding ${cyan('ESLint')} configuration`); + appPackage.eslintConfig = { + extends: 'react-app', + }; + fs.writeFileSync( path.join(appPath, 'package.json'), JSON.stringify(appPackage, null, 2) + os.EOL diff --git a/packages/react-scripts/scripts/test.js b/packages/react-scripts/scripts/test.js index b77db920625..60b69e1673f 100644 --- a/packages/react-scripts/scripts/test.js +++ b/packages/react-scripts/scripts/test.js @@ -53,7 +53,7 @@ argv.push( createJestConfig( relativePath => path.resolve(__dirname, '..', relativePath), path.resolve(paths.appSrc, '..'), - paths.srcPaths + false ) ) ); diff --git a/packages/react-scripts/scripts/utils/createJestConfig.js b/packages/react-scripts/scripts/utils/createJestConfig.js index e884518d73a..72c50e1f1b2 100644 --- a/packages/react-scripts/scripts/utils/createJestConfig.js +++ b/packages/react-scripts/scripts/utils/createJestConfig.js @@ -8,19 +8,16 @@ 'use strict'; const fs = require('fs'); -const path = require('path'); const chalk = require('chalk'); const paths = require('../../config/paths'); -module.exports = (resolve, rootDir, srcRoots) => { +module.exports = (resolve, rootDir, isEjecting) => { // Use this instead of `paths.testsSetup` to avoid putting // an absolute filename into configuration after ejecting. const setupTestsFile = fs.existsSync(paths.testsSetup) ? '/src/setupTests.js' : undefined; - const toRelRootDir = f => '/' + path.relative(rootDir || '', f); - // TODO: I don't know if it's safe or not to just use / as path separator // in Jest configs. We need help from somebody with Windows to determine this. const config = { @@ -28,15 +25,15 @@ module.exports = (resolve, rootDir, srcRoots) => { setupFiles: [resolve('config/polyfills.js')], setupTestFrameworkScriptFile: setupTestsFile, testMatch: [ - '**/__tests__/**/*.{js,jsx,mjs}', - '**/?(*.)(spec|test).{js,jsx,mjs}', + '/src/**/__tests__/**/*.{js,jsx,mjs}', + '/src/**/?(*.)(spec|test).{js,jsx,mjs}', ], - // where to search for files/tests - roots: srcRoots.map(toRelRootDir), testEnvironment: 'node', testURL: 'http://localhost', transform: { - '^.+\\.(js|jsx|mjs)$': resolve('config/jest/babelTransform.js'), + '^.+\\.(js|jsx|mjs)$': isEjecting + ? '/node_modules/babel-jest' + : resolve('config/jest/babelTransform.js'), '^.+\\.css$': resolve('config/jest/cssTransform.js'), '^.+\\.(graphql)$': resolve('config/jest/graphqlTransform.js'), '^(?!.*\\.(js|jsx|mjs|css|json|graphql)$)': resolve( @@ -64,7 +61,6 @@ module.exports = (resolve, rootDir, srcRoots) => { if (rootDir) { config.rootDir = rootDir; } - const overrides = Object.assign({}, require(paths.appPackageJson).jest); const supportedKeys = [ 'collectCoverageFrom', diff --git a/packages/react-scripts/template/README.md b/packages/react-scripts/template/README.md index d857bc93c03..edaf7c62f52 100644 --- a/packages/react-scripts/template/README.md +++ b/packages/react-scripts/template/README.md @@ -74,7 +74,6 @@ You can find the most recent version of this guide [here](https://github.com/fac - [Developing Components in Isolation](#developing-components-in-isolation) - [Getting Started with Storybook](#getting-started-with-storybook) - [Getting Started with Styleguidist](#getting-started-with-styleguidist) -- [Sharing Components in a Monorepo](#sharing-components-in-a-monorepo) - [Publishing Components to npm](#publishing-components-to-npm) - [Making a Progressive Web App](#making-a-progressive-web-app) - [Opting Out of Caching](#opting-out-of-caching) @@ -1851,66 +1850,6 @@ Learn more about React Styleguidist: * [GitHub Repo](https://github.com/styleguidist/react-styleguidist) * [Documentation](https://react-styleguidist.js.org/docs/getting-started.html) -## Sharing Components in a Monorepo -A typical monorepo folder structure looks like this: -``` -monorepo/ - app1/ - app2/ - comp1/ - comp2/ -``` - -The monorepo allows components to be separated from the app, providing: -* a level of encapsulation for components -* sharing of components - -### How to Set Up a Monorepo -Below expands on the monorepo structure above, adding the package.json files required to configure the monorepo for [yarn workspaces](https://yarnpkg.com/en/docs/workspaces). -``` -monorepo/ - package.json: - "workspaces": ["*"], - "private": true - app1/ - package.json: - "dependencies": ["@myorg/comp1": ">=0.0.0", "react": "^16.2.0"], - "devDependencies": ["react-scripts": "2.0.0"] - src/ - app.js: import comp1 from '@myorg/comp1'; - app2/ - package.json: - "dependencies": ["@myorg/comp1": ">=0.0.0", "react": "^16.2.0"], - "devDependencies": ["react-scripts": "2.0.0"] - src/ - app.js: import comp1 from '@myorg/comp1'; - comp1/ - package.json: - "name": "@myorg/comp1", - "version": "0.1.0" - index.js - comp2/ - package.json: - "name": "@myorg/comp2", - "version": "0.1.0", - "dependencies": ["@myorg/comp1": ">=0.0.0"], - "devDependencies": ["react": "^16.2.0"] - index.js: import comp1 from '@myorg/comp1' -``` -* Monorepo tools work on a package level, the same level as an npm package. -* The "workspaces" in the top-level package.json is an array of glob patterns specifying where shared packages are located in the monorepo. -* The scoping prefixes, e.g. @myorg/, are not required, but are recommended, allowing you to differentiate your packages from others of the same name. See [scoped packages ](https://docs.npmjs.com/misc/scope) for more info. -* Using a package in the monorepo is accomplished in the same manner as a published npm package, by specifying the shared package as dependency. -* In order to pick up the monorepo version of a package, the specified dependency version must semantically match the package version in the monorepo. See [semver](https://docs.npmjs.com/misc/semver) for info on semantic version matching. - -### CRA Apps in a Monorepo -* CRA apps in a monorepo are just a standard CRA app, they use the same react-script scripts. -* However, when you use react-scripts for an app in a monorepo, all packages in the monorepo are treated as app sources -- they are watched, linted, transpiled, and tested in the same way as if they were part of the app itself. -* Without this functionality, each package would need its own build/test/etc functionality and it would be challenging to link all of these together. - -### Lerna and Publishing -[Lerna](https://github.com/lerna/lerna) is a popular tool for managing monorepos. Lerna can be configured to use yarn workspaces, so it will work with the monorepo structure above. It's important to note that while lerna helps publish various packages in a monorepo, react-scripts does nothing to help publish a component to npm. A component which uses JSX or ES6+ features would need to be built by another tool before it can be published to npm. See [publishing components to npm](#publishing-components-to-npm) for more info. - ## Publishing Components to npm Create React App doesn't provide any built-in functionality to publish a component to npm. If you're ready to extract a component from your project so other people can use it, we recommend moving it to a separate directory outside of your project and then using a tool like [nwb](https://github.com/insin/nwb#react-components-and-libraries) to prepare it for publishing. diff --git a/tasks/e2e-kitchensink.sh b/tasks/e2e-kitchensink.sh index c001a01e4da..c6011997cf8 100755 --- a/tasks/e2e-kitchensink.sh +++ b/tasks/e2e-kitchensink.sh @@ -145,6 +145,10 @@ PORT=3001 \ nohup yarn start &>$tmp_server_log & grep -q 'You can now view' <(tail -f $tmp_server_log) +# Before running Mocha, specify that it should use our preset +# TODO: this is very hacky and we should find some other solution +echo '{"presets":["react-app"]}' > .babelrc + # Test "development" environment E2E_URL="http://localhost:3001" \ REACT_APP_SHELL_ENV_MESSAGE=fromtheshell \ @@ -161,5 +165,9 @@ E2E_FILE=./build/index.html \ PUBLIC_URL=http://www.example.org/spa/ \ node_modules/.bin/mocha --timeout 30000 --compilers js:@babel/register --require @babel/polyfill integration/*.test.js +# Remove the config we just created for Mocha +# TODO: this is very hacky and we should find some other solution +rm .babelrc + # Cleanup cleanup diff --git a/tasks/e2e-monorepos.sh b/tasks/e2e-monorepos.sh deleted file mode 100755 index 0f3f70219bd..00000000000 --- a/tasks/e2e-monorepos.sh +++ /dev/null @@ -1,134 +0,0 @@ -#!/bin/bash -# Copyright (c) 2015-present, Facebook, Inc. -# -# This source code is licensed under the MIT license found in the -# LICENSE file in the root directory of this source tree. - -# ****************************************************************************** -# This is an end-to-end test intended to run on CI. -# You can also run it locally but it's slow. -# ****************************************************************************** - -# Start in tasks/ even if run from root directory -cd "$(dirname "$0")" - -# App temporary location -# http://unix.stackexchange.com/a/84980 -temp_app_path=`mktemp -d 2>/dev/null || mktemp -d -t 'temp_app_path'` -custom_registry_url=http://localhost:4873 -original_npm_registry_url=`npm get registry` -original_yarn_registry_url=`yarn config get registry` - -function cleanup { - echo 'Cleaning up.' - cd "$root_path" - # Uncomment when snapshot testing is enabled by default: - # rm ./packages/react-scripts/template/src/__snapshots__/App.test.js.snap - rm -rf "$temp_app_path" - npm set registry "$original_npm_registry_url" - yarn config set registry "$original_yarn_registry_url" -} - -# Error messages are redirected to stderr -function handle_error { - echo "$(basename $0): ERROR! An error was encountered executing line $1." 1>&2; - cleanup - echo 'Exiting with error.' 1>&2; - exit 1 -} - -function handle_exit { - cleanup - echo 'Exiting without error.' 1>&2; - exit -} - -# Check for the existence of one or more files. -function exists { - for f in $*; do - test -e "$f" - done -} - -# Exit the script with a helpful error message when any error is encountered -trap 'set +x; handle_error $LINENO $BASH_COMMAND' ERR - -# Cleanup before exit on any termination signal -trap 'set +x; handle_exit' SIGQUIT SIGTERM SIGINT SIGKILL SIGHUP - -# Echo every command being executed -set -x - -# Go to root -cd .. -root_path=$PWD - -if hash npm 2>/dev/null -then - npm i -g npm@latest -fi - -# Bootstrap create-react-app monorepo -yarn - -# Start local registry -tmp_registry_log=`mktemp` -nohup npx verdaccio@3.2.0 -c tasks/verdaccio.yaml &>$tmp_registry_log & -# Wait for `verdaccio` to boot -grep -q 'http address' <(tail -f $tmp_registry_log) - -# Set registry to local registry -npm set registry "$custom_registry_url" -yarn config set registry "$custom_registry_url" - -# Login so we can publish packages -(cd && npx npm-auth-to-token@1.0.0 -u user -p password -e user@example.com -r "$custom_registry_url") - -git clean -df -./tasks/publish.sh --yes --force-publish=* --skip-git --cd-version=prerelease --exact --npm-tag=latest - -function verifyTest { - CI=true yarn test --watch=no --json --outputFile testoutput.json || return 1 - cat testoutput.json - # on windows, output contains double backslashes for path separator - grep -E -q "src([\\]{1,2}|/)App.test.js" testoutput.json || return 1 - grep -E -q "comp1([\\]{1,2}|/)index.test.js" testoutput.json || return 1 - grep -E -q "comp2([\\]{1,2}|/)index.test.js" testoutput.json || return 1 -} - -function verifyBuild { - yarn build || return 1 - grep -F -R --exclude=*.map "YarnWS-CraApp" build/ -q || return 1 -} - -# ****************************************************************************** -# Test yarn workspace monorepo -# ****************************************************************************** -# Set up yarn workspace monorepo -pushd "$temp_app_path" -cp -r "$root_path/packages/react-scripts/fixtures/monorepos/yarn-ws" . -cd "yarn-ws" -cp -r "$root_path/packages/react-scripts/fixtures/monorepos/packages" . -yarn - -# Test cra-app1 -cd packages/cra-app1 -verifyBuild -yarn start --smoke-test -verifyTest - -# Test eject -echo yes | npm run eject -verifyBuild -yarn start --smoke-test -verifyTest - -# ****************************************************************************** -# Test create-react-app inside workspace -# ****************************************************************************** -# npx create-react-app --internal-testing-template="$root_path"/packages/react-scripts/fixtures/yarn-ws/ws/cra-app1 cra-app2 -# -- above needs https://github.com/facebookincubator/create-react-app/pull/3435 to user create-react-app -popd - -# Cleanup -cleanup diff --git a/tasks/local-test.sh b/tasks/local-test.sh index 222630f2170..c9618dda2c9 100755 --- a/tasks/local-test.sh +++ b/tasks/local-test.sh @@ -49,7 +49,7 @@ while [ "$1" != "" ]; do shift done -test_command="./tasks/e2e-simple.sh && ./tasks/e2e-kitchensink.sh && ./tasks/e2e-installs.sh && ./tasks/e2e-monorepos.sh" +test_command="./tasks/e2e-simple.sh && ./tasks/e2e-kitchensink.sh && ./tasks/e2e-installs.sh" case ${test_suite} in "all") ;; @@ -62,9 +62,6 @@ case ${test_suite} in "installs") test_command="./tasks/e2e-installs.sh" ;; - "monorepos") - test_command="./tasks/e2e-monorepos.sh" - ;; *) ;; esac From ac12d38a7f10f3c5ca22d7dbbb7d96f39cd3092c Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Tue, 18 Sep 2018 14:49:27 -0400 Subject: [PATCH 0067/1249] Upgrade workplace dependencies --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index e8309674b8b..d28684fd7c2 100644 --- a/package.json +++ b/package.json @@ -20,12 +20,12 @@ }, "devDependencies": { "eslint": "4.19.1", - "execa": "^0.10.0", + "execa": "1.0.0", "husky": "^0.14.3", - "lerna": "2.9.1", - "lerna-changelog": "^0.7.0", + "lerna": "3.4.0", + "lerna-changelog": "^0.8.0", "lint-staged": "^7.0.5", - "meow": "^4.0.0", + "meow": "^5.0.0", "multimatch": "^2.1.0", "prettier": "1.12.1", "svg-term-cli": "^2.1.1", From 7398ee6fcd8c8d853f178a7207b22ca13610f365 Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Tue, 18 Sep 2018 16:52:56 -0400 Subject: [PATCH 0068/1249] Revert Lerna dependency, there's too many bugs in v3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d28684fd7c2..f44c468e55a 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "eslint": "4.19.1", "execa": "1.0.0", "husky": "^0.14.3", - "lerna": "3.4.0", + "lerna": "2.9.1", "lerna-changelog": "^0.8.0", "lint-staged": "^7.0.5", "meow": "^5.0.0", From 9bbc1775bb3ff5701b6f069ac04c8e702166d001 Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Tue, 18 Sep 2018 17:09:27 -0400 Subject: [PATCH 0069/1249] Remove `mjs` support (#5027) * Revert Lerna dependency, there's too many bugs in v3 * Remove `mjs` support --- .../config/webpack.config.dev.js | 8 +++---- .../config/webpack.config.prod.js | 8 +++---- .../scripts/utils/createJestConfig.js | 22 ++++++------------- 3 files changed, 15 insertions(+), 23 deletions(-) diff --git a/packages/react-scripts/config/webpack.config.dev.js b/packages/react-scripts/config/webpack.config.dev.js index 3a3f96eeefd..643fa1798d1 100644 --- a/packages/react-scripts/config/webpack.config.dev.js +++ b/packages/react-scripts/config/webpack.config.dev.js @@ -142,7 +142,7 @@ module.exports = { // https://github.com/facebook/create-react-app/issues/290 // `web` extension prefixes have been added for better support // for React Native Web. - extensions: ['.web.js', '.mjs', '.js', '.json', '.web.jsx', '.jsx'], + extensions: ['.web.js', '.js', '.json', '.web.jsx', '.jsx'], alias: { // @remove-on-eject-begin // Resolve Babel runtime relative to react-scripts. @@ -175,7 +175,7 @@ module.exports = { // First, run the linter. // It's important to do this before Babel processes the JS. { - test: /\.(js|jsx|mjs)$/, + test: /\.(js|jsx)$/, enforce: 'pre', use: [ { @@ -214,7 +214,7 @@ module.exports = { // Process application JS with Babel. // The preset includes JSX, Flow, and some ESnext features. { - test: /\.(js|jsx|mjs)$/, + test: /\.(js|jsx)$/, include: paths.appSrc, use: [ // This loader parallelizes code compilation, it is optional but @@ -341,7 +341,7 @@ module.exports = { // its runtime that would otherwise be processed through "file" loader. // Also exclude `html` and `json` extensions so they get processed // by webpacks internal loaders. - exclude: [/\.(js|jsx|mjs)$/, /\.html$/, /\.json$/], + exclude: [/\.(js|jsx)$/, /\.html$/, /\.json$/], loader: require.resolve('file-loader'), options: { name: 'static/media/[name].[hash:8].[ext]', diff --git a/packages/react-scripts/config/webpack.config.prod.js b/packages/react-scripts/config/webpack.config.prod.js index f936a8ddbf9..010a5db4c20 100644 --- a/packages/react-scripts/config/webpack.config.prod.js +++ b/packages/react-scripts/config/webpack.config.prod.js @@ -180,7 +180,7 @@ module.exports = { // https://github.com/facebook/create-react-app/issues/290 // `web` extension prefixes have been added for better support // for React Native Web. - extensions: ['.web.js', '.mjs', '.js', '.json', '.web.jsx', '.jsx'], + extensions: ['.web.js', '.js', '.json', '.web.jsx', '.jsx'], alias: { // @remove-on-eject-begin // Resolve Babel runtime relative to react-scripts. @@ -213,7 +213,7 @@ module.exports = { // First, run the linter. // It's important to do this before Babel processes the JS. { - test: /\.(js|jsx|mjs)$/, + test: /\.(js|jsx)$/, enforce: 'pre', use: [ { @@ -253,7 +253,7 @@ module.exports = { // Process application JS with Babel. // The preset includes JSX, Flow, and some ESnext features. { - test: /\.(js|jsx|mjs)$/, + test: /\.(js|jsx)$/, include: paths.appSrc, use: [ // This loader parallelizes code compilation, it is optional but @@ -375,7 +375,7 @@ module.exports = { // it's runtime that would otherwise be processed through "file" loader. // Also exclude `html` and `json` extensions so they get processed // by webpacks internal loaders. - exclude: [/\.(js|jsx|mjs)$/, /\.html$/, /\.json$/], + exclude: [/\.(js|jsx)$/, /\.html$/, /\.json$/], options: { name: 'static/media/[name].[hash:8].[ext]', }, diff --git a/packages/react-scripts/scripts/utils/createJestConfig.js b/packages/react-scripts/scripts/utils/createJestConfig.js index 72c50e1f1b2..373981d09ed 100644 --- a/packages/react-scripts/scripts/utils/createJestConfig.js +++ b/packages/react-scripts/scripts/utils/createJestConfig.js @@ -21,42 +21,34 @@ module.exports = (resolve, rootDir, isEjecting) => { // TODO: I don't know if it's safe or not to just use / as path separator // in Jest configs. We need help from somebody with Windows to determine this. const config = { - collectCoverageFrom: ['src/**/*.{js,jsx,mjs}'], + collectCoverageFrom: ['src/**/*.{js,jsx}'], setupFiles: [resolve('config/polyfills.js')], setupTestFrameworkScriptFile: setupTestsFile, testMatch: [ - '/src/**/__tests__/**/*.{js,jsx,mjs}', - '/src/**/?(*.)(spec|test).{js,jsx,mjs}', + '/src/**/__tests__/**/*.{js,jsx}', + '/src/**/?(*.)(spec|test).{js,jsx}', ], testEnvironment: 'node', testURL: 'http://localhost', transform: { - '^.+\\.(js|jsx|mjs)$': isEjecting + '^.+\\.(js|jsx)$': isEjecting ? '/node_modules/babel-jest' : resolve('config/jest/babelTransform.js'), '^.+\\.css$': resolve('config/jest/cssTransform.js'), '^.+\\.(graphql)$': resolve('config/jest/graphqlTransform.js'), - '^(?!.*\\.(js|jsx|mjs|css|json|graphql)$)': resolve( + '^(?!.*\\.(js|jsx|css|json|graphql)$)': resolve( 'config/jest/fileTransform.js' ), }, transformIgnorePatterns: [ - '[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs)$', + '[/\\\\]node_modules[/\\\\].+\\.(js|jsx)$', '^.+\\.module\\.(css|sass|scss)$', ], moduleNameMapper: { '^react-native$': 'react-native-web', '^.+\\.module\\.(css|sass|scss)$': 'identity-obj-proxy', }, - moduleFileExtensions: [ - 'web.js', - 'js', - 'json', - 'web.jsx', - 'jsx', - 'node', - 'mjs', - ], + moduleFileExtensions: ['web.js', 'js', 'json', 'web.jsx', 'jsx', 'node'], }; if (rootDir) { config.rootDir = rootDir; From f11bea1e4c581274134aabcec923460c0029815a Mon Sep 17 00:00:00 2001 From: Fredrik Palmquist Date: Wed, 19 Sep 2018 14:25:55 +0200 Subject: [PATCH 0070/1249] Fix file size reporter on Windows (#5025) * fix FileSizeReporter in Windows enviroment * chore: change line endings --- packages/react-dev-utils/FileSizeReporter.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/react-dev-utils/FileSizeReporter.js b/packages/react-dev-utils/FileSizeReporter.js index 68aae411f12..e33eedda6dd 100644 --- a/packages/react-dev-utils/FileSizeReporter.js +++ b/packages/react-dev-utils/FileSizeReporter.js @@ -43,7 +43,7 @@ function printFileSizesAfterBuild( name: path.basename(asset.name), size: size, sizeLabel: - filesize(size) + (difference ? ' (' + difference + ')' : '') + filesize(size) + (difference ? ' (' + difference + ')' : ''), }; }) ) @@ -98,6 +98,7 @@ function printFileSizesAfterBuild( function removeFileNameHash(buildFolder, fileName) { return fileName .replace(buildFolder, '') + .replace(/\\/g, '/') .replace( /\/?(.*)(\.[0-9a-f]+)(\.chunk)?(\.js|\.css)/, (match, p1, p2, p3, p4) => p1 + p4 From d55525651fb57e6ca6fb79c1d5c61601c129cbbd Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Wed, 19 Sep 2018 09:43:57 -0400 Subject: [PATCH 0071/1249] Disable webpack chunk coalescing (#5030) * Disable webpack chunk rollup * Bump timeout * Revert "Bump timeout" This reverts commit 84632115d178b48e08eb75dc5e9a921ece6aa759. --- packages/react-scripts/config/webpack.config.dev.js | 2 +- packages/react-scripts/config/webpack.config.prod.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-scripts/config/webpack.config.dev.js b/packages/react-scripts/config/webpack.config.dev.js index 643fa1798d1..d46a9c6698a 100644 --- a/packages/react-scripts/config/webpack.config.dev.js +++ b/packages/react-scripts/config/webpack.config.dev.js @@ -121,7 +121,7 @@ module.exports = { // https://medium.com/webpack/webpack-4-code-splitting-chunk-graph-and-the-splitchunks-optimization-be739a861366 splitChunks: { chunks: 'all', - name: 'vendors', + name: false, }, // Keep the runtime chunk seperated to enable long term caching // https://twitter.com/wSokra/status/969679223278505985 diff --git a/packages/react-scripts/config/webpack.config.prod.js b/packages/react-scripts/config/webpack.config.prod.js index 010a5db4c20..94d72d6d1ed 100644 --- a/packages/react-scripts/config/webpack.config.prod.js +++ b/packages/react-scripts/config/webpack.config.prod.js @@ -159,7 +159,7 @@ module.exports = { // https://medium.com/webpack/webpack-4-code-splitting-chunk-graph-and-the-splitchunks-optimization-be739a861366 splitChunks: { chunks: 'all', - name: 'vendors', + name: false, }, // Keep the runtime chunk seperated to enable long term caching // https://twitter.com/wSokra/status/969679223278505985 From c1ccbbc2822051ec0f0c021a56380849bb2c1aab Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Wed, 19 Sep 2018 12:09:18 -0400 Subject: [PATCH 0072/1249] Upgrade `html-webpack-plugin` to fix tests (#5031) * Upgrade html webpack plugin * Fix build --- .../react-dev-utils/InterpolateHtmlPlugin.js | 14 ++-- packages/react-dev-utils/README.md | 68 +++++++++---------- .../config/webpack.config.dev.js | 2 +- .../config/webpack.config.prod.js | 2 +- packages/react-scripts/package.json | 2 +- 5 files changed, 43 insertions(+), 45 deletions(-) diff --git a/packages/react-dev-utils/InterpolateHtmlPlugin.js b/packages/react-dev-utils/InterpolateHtmlPlugin.js index 5100349f335..30438f0b8e0 100644 --- a/packages/react-dev-utils/InterpolateHtmlPlugin.js +++ b/packages/react-dev-utils/InterpolateHtmlPlugin.js @@ -6,7 +6,7 @@ */ // This Webpack plugin lets us interpolate custom variables into `index.html`. -// Usage: `new InterpolateHtmlPlugin({ 'MY_VARIABLE': 42 })` +// Usage: `new InterpolateHtmlPlugin(HtmlWebpackPlugin, { 'MY_VARIABLE': 42 })` // Then, you can use %MY_VARIABLE% in your `index.html`. // It works in tandem with HtmlWebpackPlugin. @@ -17,15 +17,16 @@ const escapeStringRegexp = require('escape-string-regexp'); class InterpolateHtmlPlugin { - constructor(replacements) { + constructor(htmlWebpackPlugin, replacements) { + this.htmlWebpackPlugin = htmlWebpackPlugin; this.replacements = replacements; } apply(compiler) { compiler.hooks.compilation.tap('InterpolateHtmlPlugin', compilation => { - compilation.hooks.htmlWebpackPluginBeforeHtmlProcessing.tap( - 'InterpolateHtmlPlugin', - data => { + this.htmlWebpackPlugin + .getHooks(compilation) + .beforeEmit.tap('InterpolateHtmlPlugin', data => { // Run HTML through a series of user-specified string replacements. Object.keys(this.replacements).forEach(key => { const value = this.replacements[key]; @@ -34,8 +35,7 @@ class InterpolateHtmlPlugin { value ); }); - } - ); + }); }); } } diff --git a/packages/react-dev-utils/README.md b/packages/react-dev-utils/README.md index 9d53e05db05..a93166d759e 100644 --- a/packages/react-dev-utils/README.md +++ b/packages/react-dev-utils/README.md @@ -34,7 +34,7 @@ var publicUrl = '/my-custom-url'; module.exports = { output: { // ... - publicPath: publicUrl + '/' + publicPath: publicUrl + '/', }, // ... plugins: [ @@ -45,18 +45,17 @@ module.exports = { }), // Makes the public URL available as %PUBLIC_URL% in index.html, e.g.: // - new InterpolateHtmlPlugin({ - PUBLIC_URL: publicUrl + new InterpolateHtmlPlugin(HtmlWebpackPlugin, { + PUBLIC_URL: publicUrl, // You can pass any key-value pairs, this was just an example. // WHATEVER: 42 will replace %WHATEVER% with 42 in index.html. }), // ... ], // ... -} +}; ``` - #### `new ModuleScopePlugin(appSrc: string | string[], allowedFiles?: string[])` This Webpack plugin ensures that relative imports from app's source directories don't reach outside of it. @@ -65,7 +64,6 @@ This Webpack plugin ensures that relative imports from app's source directories var path = require('path'); var ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin'); - module.exports = { // ... resolve: { @@ -77,7 +75,7 @@ module.exports = { // ... }, // ... -} +}; ``` #### `new WatchMissingNodeModulesPlugin(nodeModulesPath: string)` @@ -99,10 +97,10 @@ module.exports = { // to restart the development server for Webpack to discover it. This plugin // makes the discovery automatic so you don't have to restart. // See https://github.com/facebook/create-react-app/issues/186 - new WatchMissingNodeModulesPlugin(path.resolve('node_modules')) + new WatchMissingNodeModulesPlugin(path.resolve('node_modules')), ], // ... -} +}; ``` #### `checkRequiredFiles(files: Array): boolean` @@ -115,10 +113,12 @@ If a file is not found, prints a warning message and returns `false`. var path = require('path'); var checkRequiredFiles = require('react-dev-utils/checkRequiredFiles'); -if (!checkRequiredFiles([ - path.resolve('public/index.html'), - path.resolve('src/index.js') -])) { +if ( + !checkRequiredFiles([ + path.resolve('public/index.html'), + path.resolve('src/index.js'), + ]) +) { process.exit(1); } ``` @@ -145,22 +145,22 @@ const eslintFormatter = require('react-dev-utils/eslintFormatter'); // In your webpack config: // ... module: { - rules: [ - { - test: /\.(js|jsx)$/, - include: paths.appSrc, - enforce: 'pre', - use: [ - { - loader: 'eslint-loader', - options: { - // Pass the formatter: - formatter: eslintFormatter, - }, + rules: [ + { + test: /\.(js|jsx)$/, + include: paths.appSrc, + enforce: 'pre', + use: [ + { + loader: 'eslint-loader', + options: { + // Pass the formatter: + formatter: eslintFormatter, }, - ], - } - ] + }, + ], + }, + ]; } ``` @@ -264,7 +264,6 @@ Attempts to open the browser with a given URL.
On Mac OS X, attempts to reuse an existing Chrome tab via AppleScript.
Otherwise, falls back to [opn](https://github.com/sindresorhus/opn) behavior. - ```js var path = require('path'); var openBrowser = require('react-dev-utils/openBrowser'); @@ -321,10 +320,10 @@ module.exports = { // require.resolve('webpack-dev-server/client') + '?/', // require.resolve('webpack/hot/dev-server'), 'react-dev-utils/webpackHotDevClient', - 'src/index' + 'src/index', ], // ... -} +}; ``` #### `getCSSModuleLocalIdent(context: Object, localIdentName: String, localName: String, options: Object): string` @@ -340,7 +339,7 @@ const getCSSModuleLocalIdent = require('react-dev-utils/getCSSModuleLocalIdent') // In your webpack config: // ... module: { - rules: [ + rules: [ { test: /\.module\.css$/, use: [ @@ -358,8 +357,7 @@ module: { options: postCSSLoaderOptions, }, ], - } - ] + }, + ]; } ``` - diff --git a/packages/react-scripts/config/webpack.config.dev.js b/packages/react-scripts/config/webpack.config.dev.js index d46a9c6698a..1fe0f70e264 100644 --- a/packages/react-scripts/config/webpack.config.dev.js +++ b/packages/react-scripts/config/webpack.config.dev.js @@ -363,7 +363,7 @@ module.exports = { // The public URL is available as %PUBLIC_URL% in index.html, e.g.: // // In development, this will be an empty string. - new InterpolateHtmlPlugin(env.raw), + new InterpolateHtmlPlugin(HtmlWebpackPlugin, env.raw), // Makes some environment variables available to the JS code, for example: // if (process.env.NODE_ENV === 'development') { ... }. See `./env.js`. new webpack.DefinePlugin(env.stringified), diff --git a/packages/react-scripts/config/webpack.config.prod.js b/packages/react-scripts/config/webpack.config.prod.js index 94d72d6d1ed..f36e1de3bce 100644 --- a/packages/react-scripts/config/webpack.config.prod.js +++ b/packages/react-scripts/config/webpack.config.prod.js @@ -409,7 +409,7 @@ module.exports = { // // In production, it will be an empty string unless you specify "homepage" // in `package.json`, in which case it will be the pathname of that URL. - new InterpolateHtmlPlugin(env.raw), + new InterpolateHtmlPlugin(HtmlWebpackPlugin, env.raw), // Makes some environment variables available to the JS code, for example: // if (process.env.NODE_ENV === 'production') { ... }. See `./env.js`. // It is absolutely essential that NODE_ENV was set to production here. diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 0e639a768dd..9e0a4d8c739 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -47,7 +47,7 @@ "fs-extra": "5.0.0", "graphql": "0.13.2", "graphql-tag": "2.9.2", - "html-webpack-plugin": "3.2.0", + "html-webpack-plugin": "4.0.0-alpha.2", "identity-obj-proxy": "3.0.0", "jest": "23.5.0", "loader-utils": "1.1.0", From 1b2813144b3b0e731d8f404a8169e6fa5916dde4 Mon Sep 17 00:00:00 2001 From: Jeffrey Posnick Date: Wed, 19 Sep 2018 14:08:38 -0400 Subject: [PATCH 0073/1249] Updates to reflect service worker registration being opt-in (#3924) * Updates to reflect service worker registration being opt-in. * Fixed an anchor link. * Updates to SWPrecacheWebpackPlugin config, and corresponding docs. --- .../config/webpack.config.prod.js | 15 +++- packages/react-scripts/template/README.md | 89 +++++++++---------- 2 files changed, 54 insertions(+), 50 deletions(-) diff --git a/packages/react-scripts/config/webpack.config.prod.js b/packages/react-scripts/config/webpack.config.prod.js index f36e1de3bce..5085bbad49d 100644 --- a/packages/react-scripts/config/webpack.config.prod.js +++ b/packages/react-scripts/config/webpack.config.prod.js @@ -450,12 +450,19 @@ module.exports = { console.log(message); }, minify: true, + // For unknown URLs, fallback to the index page + navigateFallback: publicUrl + '/index.html', + // Ignores URLs starting from /__ (useful for Firebase): + // https://github.com/facebookincubator/create-react-app/issues/2237#issuecomment-302693219 + navigateFallbackWhitelist: [/^(?!\/__).*/], // Don't precache sourcemaps (they're large) and build asset manifest: staticFileGlobsIgnorePatterns: [/\.map$/, /asset-manifest\.json$/], - // `navigateFallback` and `navigateFallbackWhitelist` are disabled by default; see - // https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#service-worker-considerations - // navigateFallback: publicUrl + '/index.html', - // navigateFallbackWhitelist: [/^(?!\/__).*/], + // Disabling skipWaiting ensures better compatibility with web apps that + // use deferred or lazy-loading, at the expense of "keeping around" the + // previously cached version of your web app until all open instances have + // been closed. + // See https://developers.google.com/web/fundamentals/primers/service-workers/lifecycle#skip_the_waiting_phase + skipWaiting: false, }), // Moment.js is an extremely popular library that bundles large locale files // by default due to how Webpack interprets its code. This is a practical diff --git a/packages/react-scripts/template/README.md b/packages/react-scripts/template/README.md index edaf7c62f52..8ad0d0dd153 100644 --- a/packages/react-scripts/template/README.md +++ b/packages/react-scripts/template/README.md @@ -76,7 +76,7 @@ You can find the most recent version of this guide [here](https://github.com/fac - [Getting Started with Styleguidist](#getting-started-with-styleguidist) - [Publishing Components to npm](#publishing-components-to-npm) - [Making a Progressive Web App](#making-a-progressive-web-app) - - [Opting Out of Caching](#opting-out-of-caching) + - [Why Opt-in?](#why-opt-in) - [Offline-First Considerations](#offline-first-considerations) - [Progressive Web App Metadata](#progressive-web-app-metadata) - [Analyzing the Bundle Size](#analyzing-the-bundle-size) @@ -1856,10 +1856,28 @@ Create React App doesn't provide any built-in functionality to publish a compone ## Making a Progressive Web App -By default, the production build is a fully functional, offline-first -[Progressive Web App](https://developers.google.com/web/progressive-web-apps/). +The production build has all the tools necessary to generate a first-class +[Progressive Web App](https://developers.google.com/web/progressive-web-apps/), +but **the offline/cache-first behavior is opt-in only**. By default, +the build process will generate a service worker file, but it will not be +registered, so it will not take control of your production web app. -Progressive Web Apps are faster and more reliable than traditional web pages, and provide an engaging mobile experience: +In order to opt-in to the offline-first behavior, developers should look for the +following in their [`src/index.js`](src/index.js) file: + +```js +// If you want your app to work offline and load faster, you can change +// unregister() to register() below. Note this comes with some pitfalls. +// Learn more about service workers: http://bit.ly/CRA-PWA +serviceWorker.unregister(); +``` + +As the comment states, switching `serviceWorker.unregister()` to +`serviceWorker.register()` will opt you in to using the service worker. + +### Why Opt-in? + +Offline-first Progressive Web Apps are faster and more reliable than traditional web pages, and provide an engaging mobile experience: * All static site assets are cached so that your page loads fast on subsequent visits, regardless of network connectivity (such as 2G or 3G). Updates are downloaded in the background. * Your app will work regardless of network state, even if offline. This means your users will be able to use your app at 10,000 feet and on the subway. @@ -1872,33 +1890,14 @@ precache all of your local assets and keep them up to date as you deploy updates The service worker will use a [cache-first strategy](https://developers.google.com/web/fundamentals/instant-and-offline/offline-cookbook/#cache-falling-back-to-network) for handling all requests for local assets, including [navigation requests](https://developers.google.com/web/fundamentals/primers/service-workers/high-performance-loading#first_what_are_navigation_requests) -for `/` and `/index.html`, ensuring that your web app is consistently fast, even -on a slow or unreliable network. - ->Note: If you are using the `pushState` history API and want to enable -cache-first navigations for URLs other than `/` and `/index.html`, please -[follow these steps](#service-worker-considerations). - -### Opting Out of Caching - -If you would prefer not to enable service workers prior to your initial -production deployment, then remove the call to `registerServiceWorker()` -from [`src/index.js`](src/index.js). - -If you had previously enabled service workers in your production deployment and -have decided that you would like to disable them for all your existing users, -you can swap out the call to `registerServiceWorker()` in -[`src/index.js`](src/index.js) first by modifying the service worker import: -```javascript -import { unregister } from './registerServiceWorker'; -``` -and then call `unregister()` instead. -After the user visits a page that has `unregister()`, -the service worker will be uninstalled. Note that depending on how `/service-worker.js` is served, -it may take up to 24 hours for the cache to be invalidated. +for your HTML, ensuring that your web app is consistently fast, even on a slow +or unreliable network. ### Offline-First Considerations +If you do decide to opt-in to service worker registration, please take the +following into account: + 1. Service workers [require HTTPS](https://developers.google.com/web/fundamentals/getting-started/primers/service-workers#you_need_https), although to facilitate local testing, that policy [does not apply to `localhost`](http://stackoverflow.com/questions/34160509/options-for-testing-service-workers-via-http/34161385#34161385). @@ -1967,6 +1966,11 @@ icons, names, and branding colors to use when the web app is displayed. provides more context about what each field means, and how your customizations will affect your users' experience. +Progressive web apps that have been added to the homescreen will load faster and +work offline when there's an active service worker. That being said, the +metadata from the web app manifest will still be used regardless of whether or +not you opt-in to service worker registration. + ## Analyzing the Bundle Size [Source map explorer](https://www.npmjs.com/package/source-map-explorer) analyzes @@ -2080,27 +2084,20 @@ If you’re using [Apache Tomcat](http://tomcat.apache.org/), you need to follow Now requests to `/todos/42` will be handled correctly both in development and in production. -When users install your app to the homescreen of their device the default configuration will make a shortcut to `/`. This may not work if you don't use a client-side router and expect the app to be served from `/index.html`. In this case, the web app manifest at [`public/manifest.json`](public/manifest.json) and change `start_url` to `./index.html`. - -### Service Worker Considerations - -[Navigation requests](https://developers.google.com/web/fundamentals/primers/service-workers/high-performance-loading#first_what_are_navigation_requests) -for URLs like `/todos/42` will not be intercepted by the -[service worker](https://developers.google.com/web/fundamentals/getting-started/primers/service-workers) -created by the production build. Navigations for those URLs will always -require a network connection, as opposed to navigations for `/` and -`/index.html`, both of which will be served from the cache by the service worker -and work without requiring a network connection. - -If you are using the `pushState` history API and would like to enable service -worker support for navigations to URLs like `/todos/42`, you need to -[`npm eject`](#npm-run-eject) and enable the [`navigateFallback`](https://github.com/GoogleChrome/sw-precache#navigatefallback-string) +On a production build, and when you've [opted-in](#why-opt-in), +a [service worker](https://developers.google.com/web/fundamentals/primers/service-workers/) will automatically handle all navigation requests, like for +`/todos/42`, by serving the cached copy of your `index.html`. This +service worker navigation routing can be configured or disabled by +[`eject`ing](#npm-run-eject) and then modifying the +[`navigateFallback`](https://github.com/GoogleChrome/sw-precache#navigatefallback-string) and [`navigateFallbackWhitelist`](https://github.com/GoogleChrome/sw-precache#navigatefallbackwhitelist-arrayregexp) options of the `SWPreachePlugin` [configuration](../config/webpack.config.prod.js). ->Note: This is a [change in default behavior](https://github.com/facebook/create-react-app/issues/3248), -as earlier versions of `create-react-app` shipping with `navigateFallback` -enabled by default. +When users install your app to the homescreen of their device the default configuration will make a shortcut to `/index.html`. This may not work for client-side routers which expect the app to be served from `/`. Edit the web app manifest at [`public/manifest.json`](public/manifest.json) and change `start_url` to match the required URL scheme, for example: + +```js + "start_url": ".", +``` ### Building for Relative Paths From 25ebe01399e6751958c90751452ba20788724135 Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Wed, 19 Sep 2018 14:44:08 -0400 Subject: [PATCH 0074/1249] Upgrade `react-scripts` dependencies (#5032) * No lock files prevents the use of yarn upgrade & outdated * Update deps * Bump Jest across the board * Add safe postcss parser --- .yarnrc | 3 -- .../confusing-browser-globals/package.json | 2 +- packages/react-dev-utils/package.json | 2 +- packages/react-error-overlay/package.json | 2 +- .../config/webpack.config.prod.js | 5 +- packages/react-scripts/package.json | 49 ++++++++++--------- 6 files changed, 32 insertions(+), 31 deletions(-) delete mode 100644 .yarnrc diff --git a/.yarnrc b/.yarnrc deleted file mode 100644 index 07e44a9a5b2..00000000000 --- a/.yarnrc +++ /dev/null @@ -1,3 +0,0 @@ ---install.no-lockfile true ---install.check-files true ---add.no-lockfile true diff --git a/packages/confusing-browser-globals/package.json b/packages/confusing-browser-globals/package.json index f549c02fc17..df823daaf7f 100644 --- a/packages/confusing-browser-globals/package.json +++ b/packages/confusing-browser-globals/package.json @@ -16,6 +16,6 @@ "index.js" ], "devDependencies": { - "jest": "23.5.0" + "jest": "23.6.0" } } diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index 61394095fde..fafcc1a83c6 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -60,7 +60,7 @@ }, "devDependencies": { "cross-env": "^5.2.0", - "jest": "23.5.0" + "jest": "23.6.0" }, "scripts": { "test": "cross-env FORCE_COLOR=true jest" diff --git a/packages/react-error-overlay/package.json b/packages/react-error-overlay/package.json index abd51987ac2..baf48be8182 100644 --- a/packages/react-error-overlay/package.json +++ b/packages/react-error-overlay/package.json @@ -50,7 +50,7 @@ "eslint-plugin-react": "7.8.2", "flow-bin": "^0.63.1", "html-entities": "1.2.1", - "jest": "23.5.0", + "jest": "23.6.0", "jest-fetch-mock": "1.5.0", "object-assign": "4.1.1", "promise": "8.0.1", diff --git a/packages/react-scripts/config/webpack.config.prod.js b/packages/react-scripts/config/webpack.config.prod.js index 5085bbad49d..a3bb99bd0b7 100644 --- a/packages/react-scripts/config/webpack.config.prod.js +++ b/packages/react-scripts/config/webpack.config.prod.js @@ -15,6 +15,7 @@ const HtmlWebpackPlugin = require('html-webpack-plugin'); const TerserPlugin = require('terser-webpack-plugin'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin'); +const safePostCssParser = require('postcss-safe-parser'); const ManifestPlugin = require('webpack-manifest-plugin'); const InterpolateHtmlPlugin = require('react-dev-utils/InterpolateHtmlPlugin'); const SWPrecacheWebpackPlugin = require('sw-precache-webpack-plugin'); @@ -152,7 +153,9 @@ module.exports = { cache: true, sourceMap: shouldUseSourceMap, }), - new OptimizeCSSAssetsPlugin({ cssProcessorOptions: { safe: true } }), + new OptimizeCSSAssetsPlugin({ + cssProcessorOptions: { parser: safePostCssParser }, + }), ], // Automatically split vendor and commons // https://twitter.com/wSokra/status/969633336732905474 diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 9e0a4d8c739..fcb6200dc1a 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -23,61 +23,62 @@ "dependencies": { "@babel/core": "7.0.0-beta.46", "@babel/runtime": "7.0.0-beta.46", - "autoprefixer": "8.5.0", + "autoprefixer": "9.1.5", "babel-core": "7.0.0-bridge.0", "babel-eslint": "8.2.3", - "babel-jest": "23.4.2", + "babel-jest": "23.6.0", "babel-loader": "8.0.0-beta.4", "babel-plugin-named-asset-import": "^0.1.0", "babel-preset-react-app": "^3.1.1", - "bfj": "5.2.0", + "bfj": "6.1.1", "case-sensitive-paths-webpack-plugin": "2.1.2", "chalk": "2.4.1", "css-loader": "0.28.11", - "dotenv": "5.0.1", + "dotenv": "6.0.0", "dotenv-expand": "4.2.0", "eslint": "4.19.1", "eslint-config-react-app": "^2.1.0", "eslint-loader": "Timer/eslint-loader#e242479990d520213425a0180e5c749b2e71c1ce", - "eslint-plugin-flowtype": "2.46.3", - "eslint-plugin-import": "2.11.0", - "eslint-plugin-jsx-a11y": "6.0.3", - "eslint-plugin-react": "7.8.2", + "eslint-plugin-flowtype": "2.50.1", + "eslint-plugin-import": "2.14.0", + "eslint-plugin-jsx-a11y": "6.1.1", + "eslint-plugin-react": "7.11.1", "file-loader": "1.1.11", - "fs-extra": "5.0.0", + "fs-extra": "7.0.0", "graphql": "0.13.2", "graphql-tag": "2.9.2", "html-webpack-plugin": "4.0.0-alpha.2", "identity-obj-proxy": "3.0.0", - "jest": "23.5.0", + "jest": "23.6.0", "loader-utils": "1.1.0", - "mini-css-extract-plugin": "0.4.0", + "mini-css-extract-plugin": "0.4.3", "object-assign": "4.1.1", - "optimize-css-assets-webpack-plugin": "4.0.1", - "postcss-flexbugs-fixes": "3.3.1", - "postcss-loader": "2.1.5", - "promise": "8.0.1", + "optimize-css-assets-webpack-plugin": "5.0.1", + "postcss-flexbugs-fixes": "4.1.0", + "postcss-loader": "3.0.0", + "postcss-safe-parser": "4.0.1", + "promise": "8.0.2", "raf": "3.4.0", "react-dev-utils": "^5.0.0", - "resolve": "1.6.0", - "sass-loader": "7.0.1", - "style-loader": "0.21.0", + "resolve": "1.8.1", + "sass-loader": "7.1.0", + "style-loader": "0.23.0", "svgr": "1.9.2", "sw-precache-webpack-plugin": "0.11.5", "terser-webpack-plugin": "1.1.0", "thread-loader": "1.2.0", - "url-loader": "1.0.1", - "webpack": "4.19.0", - "webpack-dev-server": "3.1.7", - "webpack-manifest-plugin": "2.0.3", - "whatwg-fetch": "2.0.4" + "url-loader": "1.1.1", + "webpack": "4.19.1", + "webpack-dev-server": "3.1.8", + "webpack-manifest-plugin": "2.0.4", + "whatwg-fetch": "3.0.0" }, "devDependencies": { "react": "^16.3.2", "react-dom": "^16.3.2" }, "optionalDependencies": { - "fsevents": "1.2.0" + "fsevents": "1.2.4" }, "browserslist": { "development": [ From e41c67dfce6ec45966d7c3d2701120c4d98446a6 Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Wed, 19 Sep 2018 14:47:26 -0400 Subject: [PATCH 0075/1249] Upgrade Prettier --- package.json | 2 +- packages/babel-plugin-named-asset-import/index.js | 7 ++++++- packages/react-dev-utils/ModuleScopePlugin.js | 3 ++- packages/react-dev-utils/clearConsole.js | 4 +++- packages/react-dev-utils/getProcessForPort.js | 4 +++- packages/react-dev-utils/launchEditor.js | 2 +- packages/react-scripts/fixtures/kitchensink/src/App.js | 5 ++++- .../fixtures/kitchensink/src/features/env/NodePath.js | 4 +++- .../kitchensink/src/features/syntax/ArraySpread.js | 4 +++- .../fixtures/kitchensink/src/features/syntax/AsyncAwait.js | 4 +++- .../kitchensink/src/features/syntax/ClassProperties.js | 4 +++- .../kitchensink/src/features/syntax/DefaultParameters.js | 4 +++- .../src/features/syntax/DestructuringAndAwait.js | 4 +++- .../fixtures/kitchensink/src/features/syntax/Generators.js | 4 +++- .../fixtures/kitchensink/src/features/syntax/Promises.js | 4 +++- .../kitchensink/src/features/syntax/RestAndDefault.js | 4 +++- .../kitchensink/src/features/syntax/RestParameters.js | 4 +++- .../src/features/syntax/TemplateInterpolation.js | 4 +++- 18 files changed, 53 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index f44c468e55a..2610953cc7b 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "lint-staged": "^7.0.5", "meow": "^5.0.0", "multimatch": "^2.1.0", - "prettier": "1.12.1", + "prettier": "1.14.3", "svg-term-cli": "^2.1.1", "tempy": "^0.2.1" }, diff --git a/packages/babel-plugin-named-asset-import/index.js b/packages/babel-plugin-named-asset-import/index.js index 6fd919bc676..f1989e5ee06 100644 --- a/packages/babel-plugin-named-asset-import/index.js +++ b/packages/babel-plugin-named-asset-import/index.js @@ -7,7 +7,12 @@ function namedAssetImportPlugin({ types: t }) { return { visitor: { - ImportDeclaration(path, { opts: { loaderMap } }) { + ImportDeclaration( + path, + { + opts: { loaderMap }, + } + ) { const sourcePath = path.node.source.value; const ext = extname(sourcePath).substr(1); diff --git a/packages/react-dev-utils/ModuleScopePlugin.js b/packages/react-dev-utils/ModuleScopePlugin.js index a16954c91ed..9ce24fd11a0 100644 --- a/packages/react-dev-utils/ModuleScopePlugin.js +++ b/packages/react-dev-utils/ModuleScopePlugin.js @@ -84,7 +84,8 @@ class ModuleScopePlugin { } else { callback(); } - }); + } + ); } } diff --git a/packages/react-dev-utils/clearConsole.js b/packages/react-dev-utils/clearConsole.js index cb02af89237..2099a57ec35 100644 --- a/packages/react-dev-utils/clearConsole.js +++ b/packages/react-dev-utils/clearConsole.js @@ -8,7 +8,9 @@ 'use strict'; function clearConsole() { - process.stdout.write(process.platform === 'win32' ? '\x1B[2J\x1B[0f' : '\x1B[2J\x1B[3J\x1B[H'); + process.stdout.write( + process.platform === 'win32' ? '\x1B[2J\x1B[0f' : '\x1B[2J\x1B[3J\x1B[H' + ); } module.exports = clearConsole; diff --git a/packages/react-dev-utils/getProcessForPort.js b/packages/react-dev-utils/getProcessForPort.js index f9eda7752b4..8df45464977 100644 --- a/packages/react-dev-utils/getProcessForPort.js +++ b/packages/react-dev-utils/getProcessForPort.js @@ -58,7 +58,9 @@ function getProcessCommand(processId, processDirectory) { function getDirectoryOfProcessById(processId) { return execSync( - 'lsof -p ' + processId + ' | awk \'$4=="cwd" {for (i=9; i<=NF; i++) printf "%s ", $i}\'', + 'lsof -p ' + + processId + + ' | awk \'$4=="cwd" {for (i=9; i<=NF; i++) printf "%s ", $i}\'', execOptions ).trim(); } diff --git a/packages/react-dev-utils/launchEditor.js b/packages/react-dev-utils/launchEditor.js index dc7b63345eb..65acefbe0cb 100644 --- a/packages/react-dev-utils/launchEditor.js +++ b/packages/react-dev-utils/launchEditor.js @@ -103,7 +103,7 @@ const COMMON_EDITORS_WIN = [ // Transpiled version of: /^[\p{L}0-9/.\-_\\]+$/u // Non-transpiled version requires support for Unicode property regex. Allows // alphanumeric characters, periods, dashes, slashes, and underscores. -const WINDOWS_FILE_NAME_WHITELIST = /^(?:[\x2D-9A-Z\\_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7B9\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFF1]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D])+$/ +const WINDOWS_FILE_NAME_WHITELIST = /^(?:[\x2D-9A-Z\\_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7B9\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFF1]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D])+$/; function addWorkspaceToArgumentsIfExists(args, workspace) { if (workspace) { diff --git a/packages/react-scripts/fixtures/kitchensink/src/App.js b/packages/react-scripts/fixtures/kitchensink/src/App.js index f5e3d5911b1..73c844a8aaf 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/App.js +++ b/packages/react-scripts/fixtures/kitchensink/src/App.js @@ -28,7 +28,10 @@ class BuiltEmitter extends Component { } render() { - const { props: { feature }, handleReady } = this; + const { + props: { feature }, + handleReady, + } = this; return (
{createElement(feature, { diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/env/NodePath.js b/packages/react-scripts/fixtures/kitchensink/src/features/env/NodePath.js index f14c5d24f14..e89228e20b0 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/env/NodePath.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/env/NodePath.js @@ -31,7 +31,9 @@ export default class extends Component { render() { return (
- {this.state.users.map(user =>
{user.name}
)} + {this.state.users.map(user => ( +
{user.name}
+ ))}
); } diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ArraySpread.js b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ArraySpread.js index be696ffa215..7832af8b10d 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ArraySpread.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ArraySpread.js @@ -39,7 +39,9 @@ export default class extends Component { render() { return (
- {this.state.users.map(user =>
{user.name}
)} + {this.state.users.map(user => ( +
{user.name}
+ ))}
); } diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/AsyncAwait.js b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/AsyncAwait.js index e10f36559c8..ba0439be493 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/AsyncAwait.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/AsyncAwait.js @@ -49,7 +49,9 @@ export default class extends Component { render() { return (
- {this.state.users.map(user =>
{user.name}
)} + {this.state.users.map(user => ( +
{user.name}
+ ))}
); } diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ClassProperties.js b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ClassProperties.js index b1a063cf0c4..c58799fb045 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ClassProperties.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ClassProperties.js @@ -27,7 +27,9 @@ export default class extends Component { render() { return (
- {this.users.map(user =>
{user.name}
)} + {this.users.map(user => ( +
{user.name}
+ ))}
); } diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/DefaultParameters.js b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/DefaultParameters.js index d86a989cc40..e9beaf7cf38 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/DefaultParameters.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/DefaultParameters.js @@ -39,7 +39,9 @@ export default class extends Component { render() { return (
- {this.state.users.map(user =>
{user.name}
)} + {this.state.users.map(user => ( +
{user.name}
+ ))}
); } diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/DestructuringAndAwait.js b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/DestructuringAndAwait.js index a69167d44a4..401ab52dcc9 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/DestructuringAndAwait.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/DestructuringAndAwait.js @@ -41,7 +41,9 @@ export default class extends Component { render() { return (
- {this.state.users.map(user =>
{user.name}
)} + {this.state.users.map(user => ( +
{user.name}
+ ))}
); } diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/Generators.js b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/Generators.js index 7ad8fc8faba..a4853d4d9e8 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/Generators.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/Generators.js @@ -41,7 +41,9 @@ export default class extends Component { render() { return (
- {this.state.users.map(user =>
{user.name}
)} + {this.state.users.map(user => ( +
{user.name}
+ ))}
); } diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/Promises.js b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/Promises.js index f7fd34f0a5e..f71bdf899e0 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/Promises.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/Promises.js @@ -40,7 +40,9 @@ export default class extends Component { render() { return (
- {this.state.users.map(user =>
{user.name}
)} + {this.state.users.map(user => ( +
{user.name}
+ ))}
); } diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/RestAndDefault.js b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/RestAndDefault.js index 3f22cc816cb..b8e52d6082d 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/RestAndDefault.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/RestAndDefault.js @@ -39,7 +39,9 @@ export default class extends Component { render() { return (
- {this.state.users.map(user =>
{user.name}
)} + {this.state.users.map(user => ( +
{user.name}
+ ))}
); } diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/RestParameters.js b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/RestParameters.js index 8e8c0b8b2de..b4a9c4c0320 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/RestParameters.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/RestParameters.js @@ -39,7 +39,9 @@ export default class extends Component { render() { return (
- {this.state.users.map(user =>
{user.name}
)} + {this.state.users.map(user => ( +
{user.name}
+ ))}
); } diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/TemplateInterpolation.js b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/TemplateInterpolation.js index 9788ee5dc28..df3df100ec6 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/TemplateInterpolation.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/TemplateInterpolation.js @@ -39,7 +39,9 @@ export default class extends Component { render() { return (
- {this.state.users.map(user =>
{user.name}
)} + {this.state.users.map(user => ( +
{user.name}
+ ))}
); } From c9e18763823780f884ece97129175da6b7fc5f6c Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Wed, 19 Sep 2018 15:54:24 -0400 Subject: [PATCH 0076/1249] Lock babel configuration back to IE 9 support (ES5) (#5033) --- packages/babel-preset-react-app/create.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/babel-preset-react-app/create.js b/packages/babel-preset-react-app/create.js index 2ead09570f6..70bd4e8e478 100644 --- a/packages/babel-preset-react-app/create.js +++ b/packages/babel-preset-react-app/create.js @@ -45,7 +45,7 @@ module.exports = function(api, opts, env) { require('@babel/preset-env').default, { targets: { - node: '6.12', + node: 'current', }, }, ], @@ -53,6 +53,14 @@ module.exports = function(api, opts, env) { // Latest stable ECMAScript features require('@babel/preset-env').default, { + // We want Create React App to be IE 9 compatible until React itself + // no longer works with IE 9 + targets: { + ie: 9, + }, + // Users cannot override this behavior because this Babel + // configuration is highly tuned for ES5 support + ignoreBrowserslistConfig: true, // `entry` transforms `@babel/polyfill` into individual requires for // the targeted browsers. This is safer than `usage` which performs // static code analysis to determine what's required. From 0bdbe42768d0f5c2385365f34ac79e31aba2d6a6 Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Thu, 20 Sep 2018 10:17:09 -0400 Subject: [PATCH 0077/1249] Upgrade to Babel 7 stable (#5042) Closes #4932, Closes #4876 --- .../package.json | 2 +- packages/babel-preset-react-app/create.js | 1 - packages/babel-preset-react-app/package.json | 30 +++++++++---------- packages/react-dev-utils/package.json | 2 +- packages/react-error-overlay/package.json | 14 ++++----- packages/react-scripts/package.json | 8 ++--- 6 files changed, 28 insertions(+), 29 deletions(-) diff --git a/packages/babel-plugin-named-asset-import/package.json b/packages/babel-plugin-named-asset-import/package.json index eec4516f8ac..de1c3a0b8b8 100644 --- a/packages/babel-plugin-named-asset-import/package.json +++ b/packages/babel-plugin-named-asset-import/package.json @@ -12,6 +12,6 @@ "index.js" ], "peerDependencies": { - "@babel/core": "7.0.0-beta.46" + "@babel/core": "7.1.0" } } diff --git a/packages/babel-preset-react-app/create.js b/packages/babel-preset-react-app/create.js index 70bd4e8e478..c300019bee6 100644 --- a/packages/babel-preset-react-app/create.js +++ b/packages/babel-preset-react-app/create.js @@ -115,7 +115,6 @@ module.exports = function(api, opts, env) { require('@babel/plugin-transform-runtime').default, { helpers: false, - polyfill: false, regenerator: true, }, ], diff --git a/packages/babel-preset-react-app/package.json b/packages/babel-preset-react-app/package.json index 27b70195299..6387d54c1ca 100644 --- a/packages/babel-preset-react-app/package.json +++ b/packages/babel-preset-react-app/package.json @@ -16,21 +16,21 @@ "test.js" ], "dependencies": { - "@babel/core": "7.0.0-beta.46", - "@babel/plugin-proposal-class-properties": "7.0.0-beta.46", - "@babel/plugin-proposal-object-rest-spread": "7.0.0-beta.46", - "@babel/plugin-syntax-dynamic-import": "7.0.0-beta.46", - "@babel/plugin-transform-classes": "7.0.0-beta.46", - "@babel/plugin-transform-destructuring": "7.0.0-beta.46", - "@babel/plugin-transform-react-constant-elements": "7.0.0-beta.46", - "@babel/plugin-transform-react-display-name": "7.0.0-beta.46", - "@babel/plugin-transform-regenerator": "7.0.0-beta.46", - "@babel/plugin-transform-runtime": "7.0.0-beta.46", - "@babel/preset-env": "7.0.0-beta.46", - "@babel/preset-flow": "7.0.0-beta.46", - "@babel/preset-react": "7.0.0-beta.46", - "babel-plugin-macros": "2.2.1", + "@babel/core": "7.1.0", + "@babel/plugin-proposal-class-properties": "7.1.0", + "@babel/plugin-proposal-object-rest-spread": "7.0.0", + "@babel/plugin-syntax-dynamic-import": "7.0.0", + "@babel/plugin-transform-classes": "7.1.0", + "@babel/plugin-transform-destructuring": "7.0.0", + "@babel/plugin-transform-react-constant-elements": "7.0.0", + "@babel/plugin-transform-react-display-name": "7.0.0", + "@babel/plugin-transform-regenerator": "7.0.0", + "@babel/plugin-transform-runtime": "7.1.0", + "@babel/preset-env": "7.1.0", + "@babel/preset-flow": "7.0.0", + "@babel/preset-react": "7.0.0", + "babel-plugin-macros": "2.4.1", "babel-plugin-transform-dynamic-import": "2.0.0", - "babel-plugin-transform-react-remove-prop-types": "0.4.13" + "babel-plugin-transform-react-remove-prop-types": "0.4.15" } } diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index fafcc1a83c6..23ff82d5c75 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -37,7 +37,7 @@ "webpackHotDevClient.js" ], "dependencies": { - "@babel/code-frame": "7.0.0-beta.46", + "@babel/code-frame": "7.0.0", "address": "1.0.3", "browserslist": "3.2.6", "chalk": "2.4.1", diff --git a/packages/react-error-overlay/package.json b/packages/react-error-overlay/package.json index baf48be8182..b3c4e83553b 100644 --- a/packages/react-error-overlay/package.json +++ b/packages/react-error-overlay/package.json @@ -30,14 +30,14 @@ "lib/index.js" ], "devDependencies": { - "@babel/code-frame": "7.0.0-beta.46", - "@babel/core": "7.0.0-beta.46", - "@babel/runtime": "7.0.0-beta.46", + "@babel/code-frame": "7.0.0", + "@babel/core": "7.1.0", + "@babel/runtime": "7.0.0", "anser": "1.4.6", - "babel-core": "^7.0.0-bridge.0", - "babel-eslint": "^8.2.2", - "babel-jest": "^23.4.2", - "babel-loader": "^8.0.0-beta.0", + "babel-core": "7.0.0-bridge.0", + "babel-eslint": "9.0.0", + "babel-jest": "23.6.0", + "babel-loader": "8.0.2", "babel-preset-react-app": "^3.1.1", "chalk": "^2.3.2", "chokidar": "^2.0.2", diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index fcb6200dc1a..701dc2b84f3 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -21,13 +21,13 @@ "react-scripts": "./bin/react-scripts.js" }, "dependencies": { - "@babel/core": "7.0.0-beta.46", - "@babel/runtime": "7.0.0-beta.46", + "@babel/core": "7.1.0", + "@babel/runtime": "7.0.0", "autoprefixer": "9.1.5", "babel-core": "7.0.0-bridge.0", - "babel-eslint": "8.2.3", + "babel-eslint": "9.0.0", "babel-jest": "23.6.0", - "babel-loader": "8.0.0-beta.4", + "babel-loader": "8.0.2", "babel-plugin-named-asset-import": "^0.1.0", "babel-preset-react-app": "^3.1.1", "bfj": "6.1.1", From 0da9f2d6c27e832f1913647149956b74119abbfc Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Thu, 20 Sep 2018 10:21:39 -0400 Subject: [PATCH 0078/1249] Switch back to main eslint-loader Closes #5020 --- packages/react-scripts/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 701dc2b84f3..165e02a448e 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -38,7 +38,7 @@ "dotenv-expand": "4.2.0", "eslint": "4.19.1", "eslint-config-react-app": "^2.1.0", - "eslint-loader": "Timer/eslint-loader#e242479990d520213425a0180e5c749b2e71c1ce", + "eslint-loader": "2.1.1", "eslint-plugin-flowtype": "2.50.1", "eslint-plugin-import": "2.14.0", "eslint-plugin-jsx-a11y": "6.1.1", From 054ba79ff6bc34e30e1441b237c6ec26f6a9b430 Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Thu, 20 Sep 2018 11:22:59 -0400 Subject: [PATCH 0079/1249] Turn off use built ins --- packages/babel-preset-react-app/create.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/packages/babel-preset-react-app/create.js b/packages/babel-preset-react-app/create.js index c300019bee6..5b46dc0ab04 100644 --- a/packages/babel-preset-react-app/create.js +++ b/packages/babel-preset-react-app/create.js @@ -61,12 +61,9 @@ module.exports = function(api, opts, env) { // Users cannot override this behavior because this Babel // configuration is highly tuned for ES5 support ignoreBrowserslistConfig: true, - // `entry` transforms `@babel/polyfill` into individual requires for - // the targeted browsers. This is safer than `usage` which performs - // static code analysis to determine what's required. - // This is probably a fine default to help trim down bundles when - // end-users inevitably import '@babel/polyfill'. - useBuiltIns: 'entry', + // If users import all core-js they're probably not concerned with + // bundle size. We shouldn't rely on magic to try and shrink it. + useBuiltIns: false, // Do not transform modules to CJS modules: false, }, From c989b70b89e8945ab4c70a9f3d39e1205bd1007f Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Thu, 20 Sep 2018 11:26:33 -0400 Subject: [PATCH 0080/1249] Further tweak runtime plugin per documentation --- packages/babel-preset-react-app/create.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/babel-preset-react-app/create.js b/packages/babel-preset-react-app/create.js index 5b46dc0ab04..5eb16619c6a 100644 --- a/packages/babel-preset-react-app/create.js +++ b/packages/babel-preset-react-app/create.js @@ -107,12 +107,18 @@ module.exports = function(api, opts, env) { useBuiltIns: true, }, ], - // Polyfills the runtime needed for async/await and generators + // Polyfills the runtime needed for async/await, generators, and friends + // https://babeljs.io/docs/en/babel-plugin-transform-runtime [ require('@babel/plugin-transform-runtime').default, { + corejs: false, helpers: false, regenerator: true, + // https://babeljs.io/docs/en/babel-plugin-transform-runtime#useesmodules + // We should turn this on once the lowest version of Node LTS + // supports ES Modules. + useESModules: isEnvDevelopment || isEnvProduction, }, ], isEnvProduction && [ From 4abc5c4877dce10043d2e3d0940b1d84775f6af9 Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Thu, 20 Sep 2018 11:58:27 -0400 Subject: [PATCH 0081/1249] Always lint with latest React version (#5043) This is the best behavior so people have seamless upgrades to new React majors. This is probably a terrible default warning from the ESLint plugin, and we need to wait for https://github.com/yannickcr/eslint-plugin-react/issues/1955 before changing this hardcoded behavior. Closes #5034 --- packages/react-scripts/config/webpack.config.dev.js | 1 + packages/react-scripts/config/webpack.config.prod.js | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/react-scripts/config/webpack.config.dev.js b/packages/react-scripts/config/webpack.config.dev.js index 1fe0f70e264..e967bb94818 100644 --- a/packages/react-scripts/config/webpack.config.dev.js +++ b/packages/react-scripts/config/webpack.config.dev.js @@ -185,6 +185,7 @@ module.exports = { // @remove-on-eject-begin baseConfig: { extends: [require.resolve('eslint-config-react-app')], + settings: { react: { version: '999.999.999' } }, }, ignore: false, useEslintrc: false, diff --git a/packages/react-scripts/config/webpack.config.prod.js b/packages/react-scripts/config/webpack.config.prod.js index a3bb99bd0b7..1e0fadbf0e9 100644 --- a/packages/react-scripts/config/webpack.config.prod.js +++ b/packages/react-scripts/config/webpack.config.prod.js @@ -228,6 +228,7 @@ module.exports = { // e.g. to enable no-console and no-debugger only in production. baseConfig: { extends: [require.resolve('eslint-config-react-app')], + settings: { react: { version: '999.999.999' } }, }, ignore: false, useEslintrc: false, From 7d41493e73b06b76fa19ecfefede422a44837969 Mon Sep 17 00:00:00 2001 From: "James B. Pollack" Date: Thu, 20 Sep 2018 10:36:13 -0700 Subject: [PATCH 0082/1249] Reorder Storybook resources to be more helpful (#5035) --- packages/react-scripts/template/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/react-scripts/template/README.md b/packages/react-scripts/template/README.md index 8ad0d0dd153..490eb5f5666 100644 --- a/packages/react-scripts/template/README.md +++ b/packages/react-scripts/template/README.md @@ -851,7 +851,7 @@ npm install --save reactstrap bootstrap@4 Alternatively you may use `yarn`: ```sh -yarn add bootstrap@4 reactstrap +yarn add bootstrap@4 reactstrap ``` Import Bootstrap CSS and optionally Bootstrap theme CSS in the beginning of your ```src/index.js``` file: @@ -1807,9 +1807,9 @@ After that, follow the instructions on the screen. Learn more about React Storybook: -* [GitHub Repo](https://github.com/storybooks/storybook) -* [Documentation](https://storybook.js.org/basics/introduction/) * [Learn Storybook (tutorial)](https://learnstorybook.com) +* [Documentation](https://storybook.js.org/basics/introduction/) +* [GitHub Repo](https://github.com/storybooks/storybook) * [Snapshot Testing UI](https://github.com/storybooks/storybook/tree/master/addons/storyshots) with Storybook + addon/storyshot ### Getting Started with Styleguidist From a1a08dba98caa9d31644e2fe3f745b0ed3c3661c Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Thu, 20 Sep 2018 16:24:08 -0400 Subject: [PATCH 0083/1249] Correct Babel dependency behavior (#5046) * Correct babel dependency compile target * Correctly compile runtime for dependencies --- .../babel-preset-react-app/dependencies.js | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/packages/babel-preset-react-app/dependencies.js b/packages/babel-preset-react-app/dependencies.js index b676945a311..6877ebe110e 100644 --- a/packages/babel-preset-react-app/dependencies.js +++ b/packages/babel-preset-react-app/dependencies.js @@ -48,10 +48,45 @@ module.exports = function(api, opts) { // Latest stable ECMAScript features require('@babel/preset-env').default, { + // We want Create React App to be IE 9 compatible until React itself + // no longer works with IE 9 + targets: { + ie: 9, + }, + // Users cannot override this behavior because this Babel + // configuration is highly tuned for ES5 support + ignoreBrowserslistConfig: true, + // If users import all core-js they're probably not concerned with + // bundle size. We shouldn't rely on magic to try and shrink it. + useBuiltIns: false, // Do not transform modules to CJS modules: false, }, ], ].filter(Boolean), + plugins: [ + // Polyfills the runtime needed for async/await, generators, and friends + // https://babeljs.io/docs/en/babel-plugin-transform-runtime + [ + require('@babel/plugin-transform-runtime').default, + { + corejs: false, + helpers: false, + regenerator: true, + // https://babeljs.io/docs/en/babel-plugin-transform-runtime#useesmodules + // We should turn this on once the lowest version of Node LTS + // supports ES Modules. + useESModules: isEnvDevelopment || isEnvProduction, + }, + ], + // function* () { yield 42; yield 43; } + !isEnvTest && [ + require('@babel/plugin-transform-regenerator').default, + { + // Async functions are converted to generators by @babel/preset-env + async: false, + }, + ], + ].filter(Boolean), }; }; From e2dc3fc5a40427b2d0c742b75b862a6c656b41f8 Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Thu, 20 Sep 2018 16:48:45 -0400 Subject: [PATCH 0084/1249] Lessen significance of browserslist Adjust the default browsers to be a single list and remove it from the build output; it only affects CSS now --- packages/react-dev-utils/browsersHelper.js | 36 ++-------------------- packages/react-scripts/package.json | 18 +++-------- packages/react-scripts/scripts/build.js | 2 -- 3 files changed, 8 insertions(+), 48 deletions(-) diff --git a/packages/react-dev-utils/browsersHelper.js b/packages/react-dev-utils/browsersHelper.js index c4ad85ab486..2aefb09ff73 100644 --- a/packages/react-dev-utils/browsersHelper.js +++ b/packages/react-dev-utils/browsersHelper.js @@ -13,12 +13,7 @@ const inquirer = require('inquirer'); const pkgUp = require('pkg-up'); const fs = require('fs'); -const defaultBrowsers = { - development: ['chrome', 'firefox', 'edge'].map( - browser => `last 2 ${browser} versions` - ), - production: ['>0.25%', 'not op_mini all', 'ie 11'], -}; +const defaultBrowsers = ['>0.25%', 'not op_mini all', 'ie 11']; function checkBrowsers(dir, retry = true) { const current = browserslist.findConfig(dir); @@ -66,16 +61,7 @@ function checkBrowsers(dir, retry = true) { console.log(); console.log(chalk.green('Set target browsers:')); console.log(); - console.log( - `\t${chalk.bold('Production')}: ${chalk.cyan( - defaultBrowsers.production.join(', ') - )}` - ); - console.log( - `\t${chalk.bold('Development')}: ${chalk.cyan( - defaultBrowsers.development.join(', ') - )}` - ); + console.log(`\t${chalk.cyan(defaultBrowsers.join(', '))}`); console.log(); }) // Swallow any error @@ -88,20 +74,4 @@ function checkBrowsers(dir, retry = true) { }); } -function printBrowsers(dir) { - return checkBrowsers(dir).then(browsers => { - if (browsers == null) { - console.log('Built the bundle with default browser support.'); - return; - } - browsers = browsers[process.env.NODE_ENV] || browsers; - if (Array.isArray(browsers)) { - browsers = browsers.join(', '); - } - console.log( - `Built the bundle with browser support for ${chalk.cyan(browsers)}.` - ); - }); -} - -module.exports = { defaultBrowsers, checkBrowsers, printBrowsers }; +module.exports = { defaultBrowsers, checkBrowsers }; diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 165e02a448e..2811663c94c 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -80,17 +80,9 @@ "optionalDependencies": { "fsevents": "1.2.4" }, - "browserslist": { - "development": [ - "last 2 chrome versions", - "last 2 firefox versions", - "last 2 edge versions" - ], - "production": [ - ">1%", - "last 4 versions", - "Firefox ESR", - "not ie < 11" - ] - } + "browserslist": [ + ">0.25%", + "not op_mini all", + "ie 11" + ] } diff --git a/packages/react-scripts/scripts/build.js b/packages/react-scripts/scripts/build.js index 6c37f3d71ae..bc0f81b1d72 100644 --- a/packages/react-scripts/scripts/build.js +++ b/packages/react-scripts/scripts/build.js @@ -41,7 +41,6 @@ const formatWebpackMessages = require('react-dev-utils/formatWebpackMessages'); const printHostingInstructions = require('react-dev-utils/printHostingInstructions'); const FileSizeReporter = require('react-dev-utils/FileSizeReporter'); const printBuildError = require('react-dev-utils/printBuildError'); -const { printBrowsers } = require('react-dev-utils/browsersHelper'); const measureFileSizesBeforeBuild = FileSizeReporter.measureFileSizesBeforeBuild; @@ -119,7 +118,6 @@ checkBrowsers(paths.appPath) buildFolder, useYarn ); - printBrowsers(paths.appPath); }, err => { console.log(chalk.red('Failed to compile.\n')); From 9ac99cef31db86e72f582abe3755492bf33d499a Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Thu, 20 Sep 2018 16:50:40 -0400 Subject: [PATCH 0085/1249] Change browsers output to be a single line --- packages/react-dev-utils/browsersHelper.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/react-dev-utils/browsersHelper.js b/packages/react-dev-utils/browsersHelper.js index 2aefb09ff73..db62fbc785b 100644 --- a/packages/react-dev-utils/browsersHelper.js +++ b/packages/react-dev-utils/browsersHelper.js @@ -59,9 +59,11 @@ function checkBrowsers(dir, retry = true) { browserslist.clearCaches(); console.log(); - console.log(chalk.green('Set target browsers:')); - console.log(); - console.log(`\t${chalk.cyan(defaultBrowsers.join(', '))}`); + console.log( + `${chalk.green('Set target browsers:')} ${chalk.cyan( + defaultBrowsers.join(', ') + )}` + ); console.log(); }) // Swallow any error From e8b0ee8080c0f5ca76b771723f1ffc547a99258d Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Thu, 20 Sep 2018 16:54:12 -0400 Subject: [PATCH 0086/1249] Allow dynamic import proposal in node_modules (#5047) --- packages/babel-preset-react-app/dependencies.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/babel-preset-react-app/dependencies.js b/packages/babel-preset-react-app/dependencies.js index 6877ebe110e..d3fdc518b12 100644 --- a/packages/babel-preset-react-app/dependencies.js +++ b/packages/babel-preset-react-app/dependencies.js @@ -87,6 +87,8 @@ module.exports = function(api, opts) { async: false, }, ], + // Adds syntax support for import() + require('@babel/plugin-syntax-dynamic-import').default, ].filter(Boolean), }; }; From 2ed8eccf0856c10cea9f84dd78029ba871aaf436 Mon Sep 17 00:00:00 2001 From: Jason Laster Date: Thu, 20 Sep 2018 18:54:50 -0400 Subject: [PATCH 0087/1249] Switch to eval-source-map (#4930) --- .../evalSourceMapMiddleware.js | 45 +++++++++++++++++++ packages/react-dev-utils/package.json | 1 + .../react-error-overlay/src/utils/mapper.js | 6 ++- .../config/webpack.config.dev.js | 2 +- .../config/webpackDevServer.config.js | 6 ++- 5 files changed, 57 insertions(+), 3 deletions(-) create mode 100644 packages/react-dev-utils/evalSourceMapMiddleware.js diff --git a/packages/react-dev-utils/evalSourceMapMiddleware.js b/packages/react-dev-utils/evalSourceMapMiddleware.js new file mode 100644 index 00000000000..dee6370f8ee --- /dev/null +++ b/packages/react-dev-utils/evalSourceMapMiddleware.js @@ -0,0 +1,45 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +'use strict'; + +function base64SourceMap(source) { + const base64 = Buffer.from(JSON.stringify(source.map()), 'utf8').toString( + 'base64' + ); + return `data:application/json;charset=utf-8;base64,${base64}`; +} + +function getSourceById(server, id) { + const module = server._stats.compilation.modules.find(m => m.id == id); + return module.originalSource(); +} + +/* + * Middleware responsible for retrieving a generated source + * Receives a webpack internal url: "webpack-internal:///" + * Returns a generated source: "" + * + * Based on EvalSourceMapDevToolModuleTemplatePlugin.js + */ +module.exports = function createEvalSourceMapMiddleware(server) { + return function handleWebpackInternalMiddleware(req, res, next) { + if (req.url.startsWith('/__get-internal-source')) { + const fileName = req.query.fileName; + const id = fileName.match(/webpack-internal:\/\/\/(.+)/)[1]; + if (!id || !server._stats) { + next(); + } + + const source = getSourceById(server, id); + const sourceMapURL = `//# sourceMappingURL=${base64SourceMap(source)}`; + const sourceURL = `//# sourceURL=webpack-internal:///${module.id}`; + res.end(`${source.source()}\n${sourceMapURL}\n${sourceURL}`); + } else { + next(); + } + }; +}; diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index 23ff82d5c75..74093b4a60a 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -17,6 +17,7 @@ "crossSpawn.js", "errorOverlayMiddleware.js", "eslintFormatter.js", + "evalSourceMapMiddleware.js", "FileSizeReporter.js", "formatWebpackMessages.js", "getCSSModuleLocalIdent.js", diff --git a/packages/react-error-overlay/src/utils/mapper.js b/packages/react-error-overlay/src/utils/mapper.js index 92407be537d..95aa006a2c0 100644 --- a/packages/react-error-overlay/src/utils/mapper.js +++ b/packages/react-error-overlay/src/utils/mapper.js @@ -34,7 +34,11 @@ async function map( }); await settle( files.map(async fileName => { - const fileSource = await fetch(fileName).then(r => r.text()); + const fetchUrl = fileName.startsWith('webpack-internal:') + ? `/__get-internal-source?fileName=${encodeURIComponent(fileName)}` + : fileName; + + const fileSource = await fetch(fetchUrl).then(r => r.text()); const map = await getSourceMap(fileName, fileSource); cache[fileName] = { fileSource, map }; }) diff --git a/packages/react-scripts/config/webpack.config.dev.js b/packages/react-scripts/config/webpack.config.dev.js index e967bb94818..12b8f8cf2dd 100644 --- a/packages/react-scripts/config/webpack.config.dev.js +++ b/packages/react-scripts/config/webpack.config.dev.js @@ -76,7 +76,7 @@ module.exports = { mode: 'development', // You may want 'eval' instead if you prefer to see the compiled output in DevTools. // See the discussion in https://github.com/facebook/create-react-app/issues/343 - devtool: 'cheap-module-source-map', + devtool: 'eval-source-map', // These are the "entry points" to our application. // This means they will be the "root" imports that are included in JS bundle. // The first two entry points enable "hot" CSS and auto-refreshes for JS. diff --git a/packages/react-scripts/config/webpackDevServer.config.js b/packages/react-scripts/config/webpackDevServer.config.js index 17dac9dc0fc..b5eb9349aa6 100644 --- a/packages/react-scripts/config/webpackDevServer.config.js +++ b/packages/react-scripts/config/webpackDevServer.config.js @@ -9,6 +9,7 @@ 'use strict'; const errorOverlayMiddleware = require('react-dev-utils/errorOverlayMiddleware'); +const evalSourceMapMiddleware = require('react-dev-utils/evalSourceMapMiddleware'); const noopServiceWorkerMiddleware = require('react-dev-utils/noopServiceWorkerMiddleware'); const ignoredFiles = require('react-dev-utils/ignoredFiles'); const config = require('./webpack.config.dev'); @@ -89,7 +90,10 @@ module.exports = function(proxy, allowedHost) { }, public: allowedHost, proxy, - before(app) { + before(app, server) { + // This lets us fetch source contents from webpack for the error overlay + app.use(evalSourceMapMiddleware(server)); + // This lets us open files from the runtime error overlay. app.use(errorOverlayMiddleware()); // This service worker file is effectively a 'no-op' that will reset any From d0ed84507b9bc36e9751ddc6f10e3402c049146f Mon Sep 17 00:00:00 2001 From: Jack Zhao Date: Fri, 21 Sep 2018 02:17:45 -0700 Subject: [PATCH 0088/1249] Convert test suite to Jest (#4550) * convert mocha tests to jest * jest 23 * add jest configs * use material css * fix windows * forceExit jest test * force exit eject * test * test * retrigger test * remove appveyor comment * try to remove pretendToBeVisual option * use jsdom env * test environment * no cache * test no close * bring back raf * test revert all broken changes * add back jsdom * remove jsdom * node test environment * use latest change * runInBand * runInBand * comment test run * try different jest option * standardize jest test options * increase heap size * remove heap size config * support scoped packages for cra --scripts-version option * upgrade jest version * fix windows * fix windows again * jest 23.4.1 * babel-jest * babel-jest * split out kitchhensink * travis node 6 * travis node 6 config * node 6 travis eject * cache yarn * only cache yarn * remove unrelated changes * typo --- .../kitchensink/.template.dependencies.json | 9 +--- .../fixtures/kitchensink/README.md | 1 - .../kitchensink/integration/env.test.js | 31 ++++++------- .../kitchensink/integration/initDOM.js | 5 +-- .../kitchensink/integration/syntax.test.js | 45 +++++++++---------- .../kitchensink/integration/webpack.test.js | 23 +++++----- .../kitchensink/jest.integration.config.js | 4 ++ .../features/webpack/assets/scss-styles.scss | 10 ++++- packages/react-scripts/template/README.md | 2 +- tasks/e2e-kitchensink-eject.sh | 6 +-- tasks/e2e-kitchensink.sh | 11 ++--- 11 files changed, 70 insertions(+), 77 deletions(-) create mode 100644 packages/react-scripts/fixtures/kitchensink/jest.integration.config.js diff --git a/packages/react-scripts/fixtures/kitchensink/.template.dependencies.json b/packages/react-scripts/fixtures/kitchensink/.template.dependencies.json index 0a42b7d4cd1..e45cf8218e1 100644 --- a/packages/react-scripts/fixtures/kitchensink/.template.dependencies.json +++ b/packages/react-scripts/fixtures/kitchensink/.template.dependencies.json @@ -1,12 +1,7 @@ { "dependencies": { - "@babel/plugin-transform-modules-commonjs": "7.0.0-beta.46", - "@babel/polyfill": "7.0.0-beta.46", - "@babel/register": "7.0.0-beta.46", - "bootstrap": "4.1.0", - "chai": "3.5.0", - "jsdom": "9.8.3", - "mocha": "3.2.0", + "bootstrap": "4.1.1", + "jest": "23.6.0", "node-sass": "4.8.3", "normalize.css": "7.0.0", "prop-types": "15.5.6", diff --git a/packages/react-scripts/fixtures/kitchensink/README.md b/packages/react-scripts/fixtures/kitchensink/README.md index 4e7725ce15f..0e64a76aed3 100644 --- a/packages/react-scripts/fixtures/kitchensink/README.md +++ b/packages/react-scripts/fixtures/kitchensink/README.md @@ -51,4 +51,3 @@ An usual flow for the test itself is something similar to: - since `initDOM` returns a `Document` element, the previous `id` attribute is used to target the feature's DOM and `expect` accordingly -These tests are run by **mocha** (why not **jest**? See [this issue](https://github.com/facebook/jest/issues/2288)) and the environments used are both `development` and `production`. diff --git a/packages/react-scripts/fixtures/kitchensink/integration/env.test.js b/packages/react-scripts/fixtures/kitchensink/integration/env.test.js index b1f5f5d5544..79de16706dc 100644 --- a/packages/react-scripts/fixtures/kitchensink/integration/env.test.js +++ b/packages/react-scripts/fixtures/kitchensink/integration/env.test.js @@ -5,7 +5,6 @@ * LICENSE file in the root directory of this source tree. */ -import { expect } from 'chai'; import initDOM from './initDOM'; describe('Integration', () => { @@ -15,23 +14,23 @@ describe('Integration', () => { expect( doc.getElementById('feature-file-env-original-1').textContent - ).to.equal('from-original-env-1'); + ).toBe('from-original-env-1'); expect( doc.getElementById('feature-file-env-original-2').textContent - ).to.equal('override-from-original-local-env-2'); + ).toBe('override-from-original-local-env-2'); if (process.env.NODE_ENV === 'production') { - expect(doc.getElementById('feature-file-env').textContent).to.equal( + expect(doc.getElementById('feature-file-env').textContent).toBe( 'production' ); - expect(doc.getElementById('feature-file-env-x').textContent).to.equal( + expect(doc.getElementById('feature-file-env-x').textContent).toBe( 'x-from-production-env' ); } else { - expect(doc.getElementById('feature-file-env').textContent).to.equal( + expect(doc.getElementById('feature-file-env').textContent).toBe( 'development' ); - expect(doc.getElementById('feature-file-env-x').textContent).to.equal( + expect(doc.getElementById('feature-file-env-x').textContent).toBe( 'x-from-development-env' ); } @@ -41,9 +40,7 @@ describe('Integration', () => { it('NODE_PATH', async () => { const doc = await initDOM('node-path'); - expect( - doc.getElementById('feature-node-path').childElementCount - ).to.equal(4); + expect(doc.getElementById('feature-node-path').childElementCount).toBe(4); doc.defaultView.close(); }); @@ -54,12 +51,12 @@ describe('Integration', () => { process.env.NODE_ENV === 'development' ? '' : 'http://www.example.org/spa'; - expect(doc.getElementById('feature-public-url').textContent).to.equal( + expect(doc.getElementById('feature-public-url').textContent).toBe( `${prefix}.` ); expect( doc.querySelector('head link[rel="shortcut icon"]').getAttribute('href') - ).to.equal(`${prefix}/favicon.ico`); + ).toBe(`${prefix}/favicon.ico`); doc.defaultView.close(); }); @@ -68,25 +65,25 @@ describe('Integration', () => { expect( doc.getElementById('feature-shell-env-variables').textContent - ).to.equal('fromtheshell.'); + ).toBe('fromtheshell.'); doc.defaultView.close(); }); it('expand .env variables', async () => { const doc = await initDOM('expand-env-variables'); - expect(doc.getElementById('feature-expand-env-1').textContent).to.equal( + expect(doc.getElementById('feature-expand-env-1').textContent).toBe( 'basic' ); - expect(doc.getElementById('feature-expand-env-2').textContent).to.equal( + expect(doc.getElementById('feature-expand-env-2').textContent).toBe( 'basic' ); - expect(doc.getElementById('feature-expand-env-3').textContent).to.equal( + expect(doc.getElementById('feature-expand-env-3').textContent).toBe( 'basic' ); expect( doc.getElementById('feature-expand-env-existing').textContent - ).to.equal('fromtheshell'); + ).toBe('fromtheshell'); doc.defaultView.close(); }); }); diff --git a/packages/react-scripts/fixtures/kitchensink/integration/initDOM.js b/packages/react-scripts/fixtures/kitchensink/integration/initDOM.js index 0ed5a940891..e807888d397 100644 --- a/packages/react-scripts/fixtures/kitchensink/integration/initDOM.js +++ b/packages/react-scripts/fixtures/kitchensink/integration/initDOM.js @@ -7,9 +7,8 @@ const fs = require('fs'); const http = require('http'); -const jsdom = require('jsdom'); +const jsdom = require('jsdom/lib/old-api.js'); const path = require('path'); -const { expect } = require('chai'); let getMarkup; export let resourceLoader; @@ -50,7 +49,7 @@ if (process.env.E2E_FILE) { it.only('can run jsdom (at least one of "E2E_FILE" or "E2E_URL" environment variables must be provided)', () => { expect( new Error("This isn't the error you are looking for.") - ).to.be.undefined(); + ).toBeUndefined(); }); } diff --git a/packages/react-scripts/fixtures/kitchensink/integration/syntax.test.js b/packages/react-scripts/fixtures/kitchensink/integration/syntax.test.js index 9e34b669d6e..54920726fa5 100644 --- a/packages/react-scripts/fixtures/kitchensink/integration/syntax.test.js +++ b/packages/react-scripts/fixtures/kitchensink/integration/syntax.test.js @@ -5,7 +5,6 @@ * LICENSE file in the root directory of this source tree. */ -import { expect } from 'chai'; import initDOM from './initDOM'; describe('Integration', () => { @@ -15,25 +14,25 @@ describe('Integration', () => { expect( doc.getElementById('feature-array-destructuring').childElementCount - ).to.equal(4); + ).toBe(4); doc.defaultView.close(); }); it('array spread', async () => { const doc = await initDOM('array-spread'); - expect( - doc.getElementById('feature-array-spread').childElementCount - ).to.equal(4); + expect(doc.getElementById('feature-array-spread').childElementCount).toBe( + 4 + ); doc.defaultView.close(); }); it('async/await', async () => { const doc = await initDOM('async-await'); - expect( - doc.getElementById('feature-async-await').childElementCount - ).to.equal(4); + expect(doc.getElementById('feature-async-await').childElementCount).toBe( + 4 + ); doc.defaultView.close(); }); @@ -42,7 +41,7 @@ describe('Integration', () => { expect( doc.getElementById('feature-class-properties').childElementCount - ).to.equal(4); + ).toBe(4); doc.defaultView.close(); }); @@ -51,7 +50,7 @@ describe('Integration', () => { expect( doc.getElementById('feature-computed-properties').childElementCount - ).to.equal(4); + ).toBe(4); doc.defaultView.close(); }); @@ -60,7 +59,7 @@ describe('Integration', () => { expect( doc.getElementById('feature-custom-interpolation').childElementCount - ).to.equal(4); + ).toBe(4); doc.defaultView.close(); }); @@ -69,7 +68,7 @@ describe('Integration', () => { expect( doc.getElementById('feature-default-parameters').childElementCount - ).to.equal(4); + ).toBe(4); doc.defaultView.close(); }); @@ -78,16 +77,16 @@ describe('Integration', () => { expect( doc.getElementById('feature-destructuring-and-await').childElementCount - ).to.equal(4); + ).toBe(4); doc.defaultView.close(); }); it('generators', async () => { const doc = await initDOM('generators'); - expect( - doc.getElementById('feature-generators').childElementCount - ).to.equal(4); + expect(doc.getElementById('feature-generators').childElementCount).toBe( + 4 + ); doc.defaultView.close(); }); @@ -96,7 +95,7 @@ describe('Integration', () => { expect( doc.getElementById('feature-object-destructuring').childElementCount - ).to.equal(4); + ).toBe(4); doc.defaultView.close(); }); @@ -105,16 +104,14 @@ describe('Integration', () => { expect( doc.getElementById('feature-object-spread').childElementCount - ).to.equal(4); + ).toBe(4); doc.defaultView.close(); }); it('promises', async () => { const doc = await initDOM('promises'); - expect(doc.getElementById('feature-promises').childElementCount).to.equal( - 4 - ); + expect(doc.getElementById('feature-promises').childElementCount).toBe(4); doc.defaultView.close(); }); @@ -123,7 +120,7 @@ describe('Integration', () => { expect( doc.getElementById('feature-rest-and-default').childElementCount - ).to.equal(4); + ).toBe(4); doc.defaultView.close(); }); @@ -132,7 +129,7 @@ describe('Integration', () => { expect( doc.getElementById('feature-rest-parameters').childElementCount - ).to.equal(4); + ).toBe(4); doc.defaultView.close(); }); @@ -141,7 +138,7 @@ describe('Integration', () => { expect( doc.getElementById('feature-template-interpolation').childElementCount - ).to.equal(4); + ).toBe(4); doc.defaultView.close(); }); }); diff --git a/packages/react-scripts/fixtures/kitchensink/integration/webpack.test.js b/packages/react-scripts/fixtures/kitchensink/integration/webpack.test.js index 4aca73603dd..ebd830dfaaa 100644 --- a/packages/react-scripts/fixtures/kitchensink/integration/webpack.test.js +++ b/packages/react-scripts/fixtures/kitchensink/integration/webpack.test.js @@ -5,7 +5,6 @@ * LICENSE file in the root directory of this source tree. */ -import { expect } from 'chai'; import initDOM, { resourceLoader } from './initDOM'; import url from 'url'; @@ -20,14 +19,14 @@ const matchCSS = (doc, regexes) => { } resourceLoader({ url: url.parse(href) }, (_, textContent) => { for (const regex of regexes) { - expect(textContent).to.match(regex); + expect(textContent).toMatch(regex); } }); } else { for (let i = 0; i < regexes.length; ++i) { expect( doc.getElementsByTagName('style')[i].textContent.replace(/\s/g, '') - ).to.match(regexes[i]); + ).toMatch(regexes[i]); } } }; @@ -87,7 +86,7 @@ describe('Integration', () => { const children = doc.getElementById('graphql-inclusion').children; // .graphql - expect(children[0].textContent.replace(/\s/g, '')).to.equal( + expect(children[0].textContent.replace(/\s/g, '')).toBe( '{"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","variableDefinitions":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"test"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"test"},"value":{"kind":"StringValue","value":"test","block":false}}],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"test"},"arguments":[],"directives":[]}]}}]}}],"loc":{"start":0,"end":40,"source":{"body":"{\\ntest(test:\\"test\\"){\\ntest\\n}\\n}\\n","name":"GraphQLrequest","locationOffset":{"line":1,"column":1}}}}' ); doc.defaultView.close(); @@ -96,7 +95,7 @@ describe('Integration', () => { it('image inclusion', async () => { const doc = await initDOM('image-inclusion'); - expect(doc.getElementById('feature-image-inclusion').src).to.match( + expect(doc.getElementById('feature-image-inclusion').src).toMatch( /^data:image\/jpeg;base64.+==$/ ); doc.defaultView.close(); @@ -105,7 +104,7 @@ describe('Integration', () => { it('no ext inclusion', async () => { const doc = await initDOM('no-ext-inclusion'); - expect(doc.getElementById('feature-no-ext-inclusion').href).to.match( + expect(doc.getElementById('feature-no-ext-inclusion').href).toMatch( /\/static\/media\/aFileWithoutExt\.[a-f0-9]{8}\.bin$/ ); doc.defaultView.close(); @@ -114,7 +113,7 @@ describe('Integration', () => { it('json inclusion', async () => { const doc = await initDOM('json-inclusion'); - expect(doc.getElementById('feature-json-inclusion').textContent).to.equal( + expect(doc.getElementById('feature-json-inclusion').textContent).toBe( 'This is an abstract.' ); doc.defaultView.close(); @@ -123,7 +122,7 @@ describe('Integration', () => { it('linked modules', async () => { const doc = await initDOM('linked-modules'); - expect(doc.getElementById('feature-linked-modules').textContent).to.equal( + expect(doc.getElementById('feature-linked-modules').textContent).toBe( '2.0.0' ); doc.defaultView.close(); @@ -131,7 +130,7 @@ describe('Integration', () => { it('svg inclusion', async () => { const doc = await initDOM('svg-inclusion'); - expect(doc.getElementById('feature-svg-inclusion').src).to.match( + expect(doc.getElementById('feature-svg-inclusion').src).toMatch( /\/static\/media\/logo\..+\.svg$/ ); doc.defaultView.close(); @@ -140,9 +139,7 @@ describe('Integration', () => { it('svg component', async () => { const doc = await initDOM('svg-component'); - expect(doc.getElementById('feature-svg-component').textContent).to.equal( - '' - ); + expect(doc.getElementById('feature-svg-component').textContent).toBe(''); doc.defaultView.close(); }); @@ -155,7 +152,7 @@ describe('Integration', () => { it('unknown ext inclusion', async () => { const doc = await initDOM('unknown-ext-inclusion'); - expect(doc.getElementById('feature-unknown-ext-inclusion').href).to.match( + expect(doc.getElementById('feature-unknown-ext-inclusion').href).toMatch( /\/static\/media\/aFileWithExt\.[a-f0-9]{8}\.unknown$/ ); doc.defaultView.close(); diff --git a/packages/react-scripts/fixtures/kitchensink/jest.integration.config.js b/packages/react-scripts/fixtures/kitchensink/jest.integration.config.js new file mode 100644 index 00000000000..fc778892493 --- /dev/null +++ b/packages/react-scripts/fixtures/kitchensink/jest.integration.config.js @@ -0,0 +1,4 @@ +module.exports = { + testEnvironment: 'node', + testMatch: ['**/integration/*.test.js'], +}; diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/webpack/assets/scss-styles.scss b/packages/react-scripts/fixtures/kitchensink/src/features/webpack/assets/scss-styles.scss index 8aac77fbf6e..5a764ed2022 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/webpack/assets/scss-styles.scss +++ b/packages/react-scripts/fixtures/kitchensink/src/features/webpack/assets/scss-styles.scss @@ -1,4 +1,12 @@ -@import "~bootstrap/scss/bootstrap"; +@import "~bootstrap/scss/functions"; +@import "~bootstrap/scss/variables"; +@import "~bootstrap/scss/mixins"; + +@import "~bootstrap/scss/reboot"; +@import "~bootstrap/scss/type"; +@import "~bootstrap/scss/images"; +@import "~bootstrap/scss/code"; +@import "~bootstrap/scss/grid"; #feature-scss-inclusion { background: ghostwhite; diff --git a/packages/react-scripts/template/README.md b/packages/react-scripts/template/README.md index 490eb5f5666..47f3b417d17 100644 --- a/packages/react-scripts/template/README.md +++ b/packages/react-scripts/template/README.md @@ -1475,7 +1475,7 @@ import App from './App'; it('renders welcome message', () => { const wrapper = shallow(); const welcome =

Welcome to React

; - // expect(wrapper.contains(welcome)).to.equal(true); + // expect(wrapper.contains(welcome)).toBe(true); expect(wrapper.contains(welcome)).toEqual(true); }); ``` diff --git a/tasks/e2e-kitchensink-eject.sh b/tasks/e2e-kitchensink-eject.sh index ef7a511dc23..41ea1ab0d10 100755 --- a/tasks/e2e-kitchensink-eject.sh +++ b/tasks/e2e-kitchensink-eject.sh @@ -145,7 +145,7 @@ REACT_APP_SHELL_ENV_MESSAGE=fromtheshell \ CI=true \ NODE_PATH=src \ NODE_ENV=test \ - yarn test --no-cache --testPathPattern=src + yarn test --no-cache --runInBand --testPathPattern=src # Test "development" environment tmp_server_log=`mktemp` @@ -159,7 +159,7 @@ E2E_URL="http://localhost:3002" \ CI=true NODE_PATH=src \ NODE_ENV=development \ BABEL_ENV=test \ - node_modules/.bin/mocha --timeout 30000 --compilers js:@babel/register --require @babel/polyfill integration/*.test.js + node_modules/.bin/jest --no-cache --runInBand --config='jest.integration.config.js' # Test "production" environment E2E_FILE=./build/index.html \ @@ -168,7 +168,7 @@ E2E_FILE=./build/index.html \ BABEL_ENV=test \ NODE_PATH=src \ PUBLIC_URL=http://www.example.org/spa/ \ - node_modules/.bin/mocha --timeout 30000 --compilers js:@babel/register --require @babel/polyfill integration/*.test.js + node_modules/.bin/jest --no-cache --runInBand --config='jest.integration.config.js' # Cleanup cleanup diff --git a/tasks/e2e-kitchensink.sh b/tasks/e2e-kitchensink.sh index c6011997cf8..a4cb3438f26 100755 --- a/tasks/e2e-kitchensink.sh +++ b/tasks/e2e-kitchensink.sh @@ -131,11 +131,12 @@ exists build/*.html exists build/static/js/main.*.js # Unit tests +# https://facebook.github.io/jest/docs/en/troubleshooting.html#tests-are-extremely-slow-on-docker-and-or-continuous-integration-ci-server REACT_APP_SHELL_ENV_MESSAGE=fromtheshell \ CI=true \ NODE_PATH=src \ NODE_ENV=test \ - yarn test --no-cache --testPathPattern=src + yarn test --no-cache --runInBand --testPathPattern=src # Prepare "development" environment tmp_server_log=`mktemp` @@ -155,7 +156,7 @@ E2E_URL="http://localhost:3001" \ CI=true NODE_PATH=src \ NODE_ENV=development \ BABEL_ENV=test \ - node_modules/.bin/mocha --timeout 30000 --compilers js:@babel/register --require @babel/polyfill integration/*.test.js + node_modules/.bin/jest --no-cache --runInBand --config='jest.integration.config.js' # Test "production" environment E2E_FILE=./build/index.html \ CI=true \ @@ -163,11 +164,7 @@ E2E_FILE=./build/index.html \ NODE_ENV=production \ BABEL_ENV=test \ PUBLIC_URL=http://www.example.org/spa/ \ - node_modules/.bin/mocha --timeout 30000 --compilers js:@babel/register --require @babel/polyfill integration/*.test.js - -# Remove the config we just created for Mocha -# TODO: this is very hacky and we should find some other solution -rm .babelrc + node_modules/.bin/jest --no-cache --runInBand --config='jest.integration.config.js' # Cleanup cleanup From 58e00a3109d20c82128154d96e08429621904b6d Mon Sep 17 00:00:00 2001 From: Jack Zhao Date: Fri, 21 Sep 2018 04:35:02 -0700 Subject: [PATCH 0089/1249] Bump (peer) dependencies to ESLint 5.6 (#5050) --- package.json | 2 +- packages/react-error-overlay/package.json | 2 +- packages/react-scripts/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 2610953cc7b..82bb36b3d34 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "precommit": "lint-staged" }, "devDependencies": { - "eslint": "4.19.1", + "eslint": "5.6.0", "execa": "1.0.0", "husky": "^0.14.3", "lerna": "2.9.1", diff --git a/packages/react-error-overlay/package.json b/packages/react-error-overlay/package.json index b3c4e83553b..b5eec1b76d3 100644 --- a/packages/react-error-overlay/package.json +++ b/packages/react-error-overlay/package.json @@ -42,7 +42,7 @@ "chalk": "^2.3.2", "chokidar": "^2.0.2", "cross-env": "5.1.4", - "eslint": "4.19.1", + "eslint": "5.6.0", "eslint-config-react-app": "^2.1.0", "eslint-plugin-flowtype": "2.46.1", "eslint-plugin-import": "2.9.0", diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 2811663c94c..73dab1ad8a4 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -36,7 +36,7 @@ "css-loader": "0.28.11", "dotenv": "6.0.0", "dotenv-expand": "4.2.0", - "eslint": "4.19.1", + "eslint": "5.6.0", "eslint-config-react-app": "^2.1.0", "eslint-loader": "2.1.1", "eslint-plugin-flowtype": "2.50.1", From ca2e9f0f3c2d6bb23b9e3b3d28081d3e5b8cef3a Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Fri, 21 Sep 2018 08:07:12 -0400 Subject: [PATCH 0090/1249] Adjust ESLint configuration for v5 (#5051) --- packages/eslint-config-react-app/index.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/eslint-config-react-app/index.js b/packages/eslint-config-react-app/index.js index 7d2e716956a..f359dacdb19 100644 --- a/packages/eslint-config-react-app/index.js +++ b/packages/eslint-config-react-app/index.js @@ -39,12 +39,10 @@ module.exports = { }, parserOptions: { - ecmaVersion: 6, + ecmaVersion: 2018, sourceType: 'module', ecmaFeatures: { jsx: true, - generators: true, - experimentalObjectRestSpread: true, }, }, @@ -53,7 +51,7 @@ module.exports = { 'array-callback-return': 'warn', 'default-case': ['warn', { commentPattern: '^no default$' }], 'dot-location': ['warn', 'property'], - eqeqeq: ['warn', 'allow-null'], + eqeqeq: ['warn', 'smart'], 'new-parens': 'warn', 'no-array-constructor': 'warn', 'no-caller': 'warn', From 5254ffebcab39e23233d5045ecf9d84e32d5c124 Mon Sep 17 00:00:00 2001 From: Jack Zhao Date: Fri, 21 Sep 2018 05:10:16 -0700 Subject: [PATCH 0091/1249] Use Yarn cache for Travis (#4774) * support scoped packages for cra --scripts-version option * cache yarn * only cache yarn * also cache .npm --- .travis.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index aea00ad24ba..0608fe72253 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,10 +5,9 @@ node_js: - 8 - 10 cache: + yarn: true directories: - - node_modules - - packages/create-react-app/node_modules - - packages/react-scripts/node_modules + - .npm before_install: - curl -o- -L https://yarnpkg.com/install.sh | bash - export PATH="$HOME/.yarn/bin:$PATH" From 2aaf71eed0f13ceaf8b9018e0ac6bfce01dfa321 Mon Sep 17 00:00:00 2001 From: Aaron Reisman Date: Fri, 21 Sep 2018 05:15:01 -0700 Subject: [PATCH 0092/1249] Add `eslintConfig` to new projects automatically (#1457) --- packages/react-scripts/scripts/init.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/react-scripts/scripts/init.js b/packages/react-scripts/scripts/init.js index ac695d167d9..9dbd7f505eb 100644 --- a/packages/react-scripts/scripts/init.js +++ b/packages/react-scripts/scripts/init.js @@ -97,6 +97,11 @@ module.exports = function( test: 'react-scripts test --env=jsdom', eject: 'react-scripts eject', }; + + // Setup the eslint config + appPackage.eslintConfig = { + 'extends': 'react-app' + }; appPackage.browserslist = defaultBrowsers; From 7be14b914ffc83849e77b4c8c54bd07406da6e04 Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Fri, 21 Sep 2018 08:19:14 -0400 Subject: [PATCH 0093/1249] Tweak init.js after merge --- packages/react-scripts/scripts/init.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/react-scripts/scripts/init.js b/packages/react-scripts/scripts/init.js index 9dbd7f505eb..5d3fcb8efa9 100644 --- a/packages/react-scripts/scripts/init.js +++ b/packages/react-scripts/scripts/init.js @@ -97,12 +97,13 @@ module.exports = function( test: 'react-scripts test --env=jsdom', eject: 'react-scripts eject', }; - + // Setup the eslint config appPackage.eslintConfig = { - 'extends': 'react-app' + extends: 'react-app', }; + // Setup the browsers list appPackage.browserslist = defaultBrowsers; fs.writeFileSync( From f9849a26629b7451c2c21d709e4126dadf79a277 Mon Sep 17 00:00:00 2001 From: XiaoYan Li Date: Fri, 21 Sep 2018 20:46:41 +0800 Subject: [PATCH 0094/1249] Safely assume module type for `node_modules` (#5052) https://github.com/facebook/create-react-app/pull/5046#issuecomment-423501823 --- packages/babel-preset-react-app/dependencies.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/babel-preset-react-app/dependencies.js b/packages/babel-preset-react-app/dependencies.js index d3fdc518b12..ca04e8616fc 100644 --- a/packages/babel-preset-react-app/dependencies.js +++ b/packages/babel-preset-react-app/dependencies.js @@ -32,6 +32,11 @@ module.exports = function(api, opts) { } return { + // Babel assumes ES Modules, which isn't safe until CommonJS + // dies. This changes the behavior to assume CommonJS unless + // an `import` or `export` is present in the file. + // https://github.com/webpack/webpack/issues/4039#issuecomment-419284940 + sourceType: 'unambiguous', presets: [ isEnvTest && [ // ES features necessary for user's Node version From 74c4baebf20dab7cd6422519de5c4d652af13bb9 Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Fri, 21 Sep 2018 09:19:29 -0400 Subject: [PATCH 0095/1249] Normalize babel caching across the board (#5053) --- packages/react-scripts/config/webpack.config.dev.js | 4 ++++ packages/react-scripts/config/webpack.config.prod.js | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/packages/react-scripts/config/webpack.config.dev.js b/packages/react-scripts/config/webpack.config.dev.js index 12b8f8cf2dd..ebc27ded706 100644 --- a/packages/react-scripts/config/webpack.config.dev.js +++ b/packages/react-scripts/config/webpack.config.dev.js @@ -249,6 +249,8 @@ module.exports = { // It enables caching results in ./node_modules/.cache/babel-loader/ // directory for faster rebuilds. cacheDirectory: true, + // Don't waste time on Gzipping the cache + cacheCompression: false, highlightCode: true, }, }, @@ -276,6 +278,8 @@ module.exports = { require.resolve('babel-preset-react-app/dependencies'), ], cacheDirectory: true, + // Don't waste time on Gzipping the cache + cacheCompression: false, highlightCode: true, }, }, diff --git a/packages/react-scripts/config/webpack.config.prod.js b/packages/react-scripts/config/webpack.config.prod.js index 1e0fadbf0e9..72d82ea0231 100644 --- a/packages/react-scripts/config/webpack.config.prod.js +++ b/packages/react-scripts/config/webpack.config.prod.js @@ -282,6 +282,9 @@ module.exports = { }, ], ], + cacheDirectory: true, + // Save disk space when time isn't as important + cacheCompression: true, compact: true, highlightCode: true, }, @@ -305,6 +308,8 @@ module.exports = { require.resolve('babel-preset-react-app/dependencies'), ], cacheDirectory: true, + // Save disk space when time isn't as important + cacheCompression: true, highlightCode: true, }, }, From 0cfe758f2772501d5113d322802d1840aaf88f7f Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Fri, 21 Sep 2018 09:56:45 -0400 Subject: [PATCH 0096/1249] Ensure files get purged when they should (#5054) --- .../react-dev-utils/getCacheIdentifier.js | 21 +++++++++++++++++++ packages/react-dev-utils/package.json | 1 + .../config/webpack.config.dev.js | 20 ++++++++++++++++++ .../config/webpack.config.prod.js | 20 ++++++++++++++++++ 4 files changed, 62 insertions(+) create mode 100644 packages/react-dev-utils/getCacheIdentifier.js diff --git a/packages/react-dev-utils/getCacheIdentifier.js b/packages/react-dev-utils/getCacheIdentifier.js new file mode 100644 index 00000000000..2cc681f3a4a --- /dev/null +++ b/packages/react-dev-utils/getCacheIdentifier.js @@ -0,0 +1,21 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +module.exports = function getCacheIdentifier(environment, packages) { + let cacheIdentifier = `${environment}`; + for (const packageName of packages) { + cacheIdentifier += `:${packageName}@`; + try { + cacheIdentifier += require(`${packageName}/package.json`).version; + } catch (_) { + // ignored + } + } + return cacheIdentifier; +}; diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index 74093b4a60a..dd4917eef0e 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -20,6 +20,7 @@ "evalSourceMapMiddleware.js", "FileSizeReporter.js", "formatWebpackMessages.js", + "getCacheIdentifier.js", "getCSSModuleLocalIdent.js", "getProcessForPort.js", "ignoredFiles.js", diff --git a/packages/react-scripts/config/webpack.config.dev.js b/packages/react-scripts/config/webpack.config.dev.js index ebc27ded706..8cb32a3d488 100644 --- a/packages/react-scripts/config/webpack.config.dev.js +++ b/packages/react-scripts/config/webpack.config.dev.js @@ -20,6 +20,7 @@ const getCSSModuleLocalIdent = require('react-dev-utils/getCSSModuleLocalIdent') const getClientEnvironment = require('./env'); const paths = require('./paths'); const ManifestPlugin = require('webpack-manifest-plugin'); +const getCacheIdentifier = require('react-dev-utils/getCacheIdentifier'); // Webpack uses `publicPath` to determine where the app is being served from. // In development, we always serve from the root. This makes config easier. @@ -232,6 +233,17 @@ module.exports = { // @remove-on-eject-begin babelrc: false, presets: [require.resolve('babel-preset-react-app')], + // Make sure we have a unique cache identifier, erring on the + // side of caution. + // We remove this when the user ejects because the default + // is sane and uses Babel options. Instead of options, we use + // the react-scripts and babel-preset-react-app versions. + cacheIdentifier: getCacheIdentifier('development', [ + 'babel-plugin-named-asset-import', + 'babel-preset-react-app', + 'react-dev-utils', + 'react-scripts', + ]), // @remove-on-eject-end plugins: [ [ @@ -280,6 +292,14 @@ module.exports = { cacheDirectory: true, // Don't waste time on Gzipping the cache cacheCompression: false, + // @remove-on-eject-begin + cacheIdentifier: getCacheIdentifier('development', [ + 'babel-plugin-named-asset-import', + 'babel-preset-react-app', + 'react-dev-utils', + 'react-scripts', + ]), + // @remove-on-eject-end highlightCode: true, }, }, diff --git a/packages/react-scripts/config/webpack.config.prod.js b/packages/react-scripts/config/webpack.config.prod.js index 72d82ea0231..8e39b30fca5 100644 --- a/packages/react-scripts/config/webpack.config.prod.js +++ b/packages/react-scripts/config/webpack.config.prod.js @@ -23,6 +23,7 @@ const ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin'); const getCSSModuleLocalIdent = require('react-dev-utils/getCSSModuleLocalIdent'); const paths = require('./paths'); const getClientEnvironment = require('./env'); +const getCacheIdentifier = require('react-dev-utils/getCacheIdentifier'); // Webpack uses `publicPath` to determine where the app is being served from. // It requires a trailing slash, or the file assets will get an incorrect path. @@ -269,6 +270,17 @@ module.exports = { // @remove-on-eject-begin babelrc: false, presets: [require.resolve('babel-preset-react-app')], + // Make sure we have a unique cache identifier, erring on the + // side of caution. + // We remove this when the user ejects because the default + // is sane and uses Babel options. Instead of options, we use + // the react-scripts and babel-preset-react-app versions. + cacheIdentifier: getCacheIdentifier('production', [ + 'babel-plugin-named-asset-import', + 'babel-preset-react-app', + 'react-dev-utils', + 'react-scripts', + ]), // @remove-on-eject-end plugins: [ [ @@ -310,6 +322,14 @@ module.exports = { cacheDirectory: true, // Save disk space when time isn't as important cacheCompression: true, + // @remove-on-eject-begin + cacheIdentifier: getCacheIdentifier('production', [ + 'babel-plugin-named-asset-import', + 'babel-preset-react-app', + 'react-dev-utils', + 'react-scripts', + ]), + // @remove-on-eject-end highlightCode: true, }, }, From fdc916a5a097a61c0b7d36f4a06cae96285166b7 Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Fri, 21 Sep 2018 10:02:08 -0400 Subject: [PATCH 0097/1249] Cache identifier follow up (#5055) * Tweak environment handling * Add documentation for getCacheIdentifier --- packages/react-dev-utils/README.md | 14 ++++++++++++-- packages/react-dev-utils/getCacheIdentifier.js | 2 +- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/react-dev-utils/README.md b/packages/react-dev-utils/README.md index a93166d759e..53c73bfc502 100644 --- a/packages/react-dev-utils/README.md +++ b/packages/react-dev-utils/README.md @@ -3,8 +3,8 @@ This package includes some utilities used by [Create React App](https://github.com/facebook/create-react-app).
Please refer to its documentation: -* [Getting Started](https://github.com/facebook/create-react-app/blob/master/README.md#getting-started) – How to create a new app. -* [User Guide](https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md) – How to develop apps bootstrapped with Create React App. +- [Getting Started](https://github.com/facebook/create-react-app/blob/master/README.md#getting-started) – How to create a new app. +- [User Guide](https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md) – How to develop apps bootstrapped with Create React App. ## Usage in Create React App Projects @@ -361,3 +361,13 @@ module: { ]; } ``` + +#### `getCacheIdentifier(environment: string, packages: string[]): string` + +Returns a cache identifier (string) consisting of the specified environment and related package versions, e.g., + +```js +var getCacheIdentifier = require('react-dev-utils/getCacheIdentifier'); + +getCacheIdentifier('prod', ['react-dev-utils', 'chalk']); // # => 'prod:react-dev-utils@5.0.0:chalk@2.4.1' +``` diff --git a/packages/react-dev-utils/getCacheIdentifier.js b/packages/react-dev-utils/getCacheIdentifier.js index 2cc681f3a4a..08bcb6577ca 100644 --- a/packages/react-dev-utils/getCacheIdentifier.js +++ b/packages/react-dev-utils/getCacheIdentifier.js @@ -8,7 +8,7 @@ 'use strict'; module.exports = function getCacheIdentifier(environment, packages) { - let cacheIdentifier = `${environment}`; + let cacheIdentifier = environment == null ? '' : environment.toString(); for (const packageName of packages) { cacheIdentifier += `:${packageName}@`; try { From b98d5c9f33f08f42c346a58d505de510ebebea5e Mon Sep 17 00:00:00 2001 From: John Freeman Date: Fri, 21 Sep 2018 11:37:45 -0500 Subject: [PATCH 0098/1249] Move favicon.ico to accommodate Chrome (#4891) Chrome requests `favicon.ico` on every route change, but stops if the `` for it occurs early enough in the page. [Several](https://stackoverflow.com/questions/35409588/favicon-requested-on-every-route-change) other [people](https://github.com/ctrlplusb/react-universally/issues/145) have been running into this issue since at least February 2016. --- packages/react-scripts/template/public/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/template/public/index.html b/packages/react-scripts/template/public/index.html index ed0ebafa1b7..73b2ecd7fc3 100644 --- a/packages/react-scripts/template/public/index.html +++ b/packages/react-scripts/template/public/index.html @@ -2,6 +2,7 @@ + - ## Post-Processing CSS From 6c0cf8c3ac4cf26203b79dfa19d8b660f20d4d70 Mon Sep 17 00:00:00 2001 From: Reuben Antz Date: Wed, 26 Sep 2018 06:36:12 +0100 Subject: [PATCH 0129/1249] Update targeted IE version in documentation (#4551) * Update CONTRIBUTING.md * Update CONTRIBUTING.md --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e69f729fd27..a51391c44bc 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -57,7 +57,7 @@ packages/ ### Package Descriptions #### [babel-preset-react-app](https://github.com/facebook/create-react-app/tree/master/packages/babel-preset-react-app) This package is a babel preset intended to be used with `react-scripts`.
-It targets platforms that React is designed to support (IE 9+) and enables experimental features used heavily at Facebook.
+It targets platforms that React is designed to support (IE 11+) and enables experimental features used heavily at Facebook.
This package is enabled by default for all `create-react-app` scaffolded applications. #### [create-react-app](https://github.com/facebook/create-react-app/tree/master/packages/create-react-app) The global CLI command code can be found in this directory, and shouldn't often be changed. It should run on Node 0.10+. From 5b4c94c7a37dede07ea396f45368ef5e6aa886bf Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Wed, 26 Sep 2018 10:36:30 -0400 Subject: [PATCH 0130/1249] Format user guide --- packages/react-scripts/template/README.md | 460 ++++++++++++---------- 1 file changed, 241 insertions(+), 219 deletions(-) diff --git a/packages/react-scripts/template/README.md b/packages/react-scripts/template/README.md index bf8284ce54e..540137b488e 100644 --- a/packages/react-scripts/template/README.md +++ b/packages/react-scripts/template/README.md @@ -110,8 +110,8 @@ You can find the most recent version of this guide [here](https://github.com/fac Create React App is divided into two packages: -* `create-react-app` is a global command-line utility that you use to create new projects. -* `react-scripts` is a development dependency in the generated projects (including this one). +- `create-react-app` is a global command-line utility that you use to create new projects. +- `react-scripts` is a development dependency in the generated projects (including this one). You almost never need to update `create-react-app` itself: it delegates all the setup to `react-scripts`. @@ -150,8 +150,8 @@ my-app/ For the project to build, **these files must exist with exact filenames**: -* `public/index.html` is the page template; -* `src/index.js` is the JavaScript entry point. +- `public/index.html` is the page template; +- `src/index.js` is the JavaScript entry point. You can delete or rename the other files. @@ -212,12 +212,12 @@ You can refer [to the React documentation](https://reactjs.org/docs/react-dom.ht This project supports a superset of the latest JavaScript standard.
In addition to [ES6](https://github.com/lukehoban/es6features) syntax features, it also supports: -* [Exponentiation Operator](https://github.com/rwaldron/exponentiation-operator) (ES2016). -* [Async/await](https://github.com/tc39/ecmascript-asyncawait) (ES2017). -* [Object Rest/Spread Properties](https://github.com/tc39/proposal-object-rest-spread) (ES2018). -* [Dynamic import()](https://github.com/tc39/proposal-dynamic-import) (stage 3 proposal) -* [Class Fields and Static Properties](https://github.com/tc39/proposal-class-public-fields) (part of stage 3 proposal). -* [JSX](https://facebook.github.io/react/docs/introducing-jsx.html) and [Flow](https://flow.org/) syntax. +- [Exponentiation Operator](https://github.com/rwaldron/exponentiation-operator) (ES2016). +- [Async/await](https://github.com/tc39/ecmascript-asyncawait) (ES2017). +- [Object Rest/Spread Properties](https://github.com/tc39/proposal-object-rest-spread) (ES2018). +- [Dynamic import()](https://github.com/tc39/proposal-dynamic-import) (stage 3 proposal) +- [Class Fields and Static Properties](https://github.com/tc39/proposal-class-public-fields) (part of stage 3 proposal). +- [JSX](https://facebook.github.io/react/docs/introducing-jsx.html) and [Flow](https://flow.org/) syntax. Learn more about [different proposal stages](https://babeljs.io/docs/plugins/#presets-stage-x-experimental-presets-). @@ -225,9 +225,9 @@ While we recommend using experimental proposals with some caution, Facebook heav Note that **the project only includes a few ES6 [polyfills](https://en.wikipedia.org/wiki/Polyfill)**: -* [`Object.assign()`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) via [`object-assign`](https://github.com/sindresorhus/object-assign). -* [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) via [`promise`](https://github.com/then/promise). -* [`fetch()`](https://developer.mozilla.org/en/docs/Web/API/Fetch_API) via [`whatwg-fetch`](https://github.com/github/fetch). +- [`Object.assign()`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) via [`object-assign`](https://github.com/sindresorhus/object-assign). +- [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) via [`promise`](https://github.com/then/promise). +- [`fetch()`](https://developer.mozilla.org/en/docs/Web/API/Fetch_API) via [`whatwg-fetch`](https://github.com/github/fetch). If you use any other ES6+ features that need **runtime support** (such as `Array.from()` or `Symbol`), make sure you are including the appropriate polyfills manually, or that the browsers you are targeting already support them. @@ -239,8 +239,8 @@ To configure the syntax highlighting in your favorite text editor, head to the [ ## Displaying Lint Output in the Editor ->Note: this feature is available with `react-scripts@0.2.0` and higher.
->It also only works with npm 3 or higher. +> Note: this feature is available with `react-scripts@0.2.0` and higher.
+> It also only works with npm 3 or higher. Some editors, including Sublime Text, Atom, and Visual Studio Code, provide plugins for ESLint. @@ -275,19 +275,22 @@ Then add the block below to your `launch.json` file and put it inside the `.vsco ```json { "version": "0.2.0", - "configurations": [{ - "name": "Chrome", - "type": "chrome", - "request": "launch", - "url": "http://localhost:3000", - "webRoot": "${workspaceRoot}/src", - "sourceMapPathOverrides": { - "webpack:///src/*": "${webRoot}/*" + "configurations": [ + { + "name": "Chrome", + "type": "chrome", + "request": "launch", + "url": "http://localhost:3000", + "webRoot": "${workspaceRoot}/src", + "sourceMapPathOverrides": { + "webpack:///src/*": "${webRoot}/*" + } } - }] + ] } ``` ->Note: the URL may be different if you've made adjustments via the [HOST or PORT environment variables](#advanced-configuration). + +> Note: the URL may be different if you've made adjustments via the [HOST or PORT environment variables](#advanced-configuration). Start your app by running `npm start`, and start debugging in VS Code by pressing `F5` or by clicking the green debug icon. You can now write code, set breakpoints, make changes to the code, and debug your newly modified code—all from your editor. @@ -299,7 +302,7 @@ You would need to have [WebStorm](https://www.jetbrains.com/webstorm/) and [JetB In the WebStorm menu `Run` select `Edit Configurations...`. Then click `+` and select `JavaScript Debug`. Paste `http://localhost:3000` into the URL field and save the configuration. ->Note: the URL may be different if you've made adjustments via the [HOST or PORT environment variables](#advanced-configuration). +> Note: the URL may be different if you've made adjustments via the [HOST or PORT environment variables](#advanced-configuration). Start your app by running `npm start`, then press `^D` on macOS or `F9` on Windows and Linux or click the green debug icon to start debugging in WebStorm. @@ -321,9 +324,9 @@ Alternatively you may use `yarn`: yarn add husky lint-staged prettier ``` -* `husky` makes it easy to use githooks as if they are npm scripts. -* `lint-staged` allows us to run scripts on staged files in git. See this [blog post about lint-staged to learn more about it](https://medium.com/@okonetchnikov/make-linting-great-again-f3890e1ad6b8). -* `prettier` is the JavaScript formatter we will run before commits. +- `husky` makes it easy to use githooks as if they are npm scripts. +- `lint-staged` allows us to run scripts on staged files in git. See this [blog post about lint-staged to learn more about it](https://medium.com/@okonetchnikov/make-linting-great-again-f3890e1ad6b8). +- `prettier` is the JavaScript formatter we will run before commits. Now we can make sure every file is formatted correctly by adding a few lines to the `package.json` in the project root. @@ -405,7 +408,6 @@ export default Button; // Don’t forget to use export default! ### `DangerButton.js` - ```js import React, { Component } from 'react'; import Button from './Button'; // Import a component from another file @@ -427,9 +429,9 @@ Named exports are useful for utility modules that export several functions. A mo Learn more about ES6 modules: -* [When to use the curly braces?](http://stackoverflow.com/questions/36795819/react-native-es-6-when-should-i-use-curly-braces-for-import/36796281#36796281) -* [Exploring ES6: Modules](http://exploringjs.com/es6/ch_modules.html) -* [Understanding ES6: Modules](https://leanpub.com/understandinges6/read#leanpub-auto-encapsulating-code-with-modules) +- [When to use the curly braces?](http://stackoverflow.com/questions/36795819/react-native-es-6-when-should-i-use-curly-braces-for-import/36796281#36796281) +- [Exploring ES6: Modules](http://exploringjs.com/es6/ch_modules.html) +- [Understanding ES6: Modules](https://leanpub.com/understandinges6/read#leanpub-auto-encapsulating-code-with-modules) ## Code Splitting @@ -446,6 +448,7 @@ const moduleA = 'Hello'; export { moduleA }; ``` + ### `App.js` ```js @@ -545,7 +548,6 @@ import React, { Component } from 'react'; import styles from './Button.module.css'; // Import css modules stylesheet as styles import './another-stylesheet.css'; // Import regular stylesheet - class Button extends Component { render() { // reference as a js object @@ -553,7 +555,9 @@ class Button extends Component { } } ``` + ### `exported HTML` + No clashes from other `.error` class names ```html @@ -586,11 +590,11 @@ becomes this: display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; - -ms-flex-direction: row; - flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; + -ms-flex-align: center; + align-items: center; } ``` @@ -625,13 +629,13 @@ Then in `package.json`, add the following lines to `scripts`: "test": "react-scripts test", ``` ->Note: To use a different preprocessor, replace `build-css` and `watch-css` commands according to your preprocessor’s documentation. +> Note: To use a different preprocessor, replace `build-css` and `watch-css` commands according to your preprocessor’s documentation. Now you can rename `src/App.css` to `src/App.scss` and run `npm run watch-css`. The watcher will find every Sass file in `src` subdirectories, and create a corresponding CSS file next to it, in our case overwriting `src/App.css`. Since `src/App.js` still imports `src/App.css`, the styles become a part of your application. You can now edit `src/App.scss`, and `src/App.css` will be regenerated. To share variables between Sass files, you can use Sass imports. For example, `src/App.scss` and other component style files could include `@import "./shared.scss";` with variable definitions. -To enable importing files without using relative paths, you can add the `--include-path` option to the command in `package.json`. +To enable importing files without using relative paths, you can add the `--include-path` option to the command in `package.json`. ``` "build-css": "node-sass-chokidar --include-path ./node_modules src/ -o src/", @@ -682,13 +686,13 @@ Now running `npm start` and `npm run build` also builds Sass files. `node-sass` has been reported as having the following issues: -- `node-sass --watch` has been reported to have *performance issues* in certain conditions when used in a virtual machine or with docker. +- `node-sass --watch` has been reported to have _performance issues_ in certain conditions when used in a virtual machine or with docker. - Infinite styles compiling [#1939](https://github.com/facebook/create-react-app/issues/1939) - `node-sass` has been reported as having issues with detecting new files in a directory [#1891](https://github.com/sass/node-sass/issues/1891) - `node-sass-chokidar` is used here as it addresses these issues. +`node-sass-chokidar` is used here as it addresses these issues. ## Adding Images, Fonts, and Files @@ -733,7 +737,7 @@ An alternative way of handling static assets is described in the next section. ## Using the `public` Folder ->Note: this feature is available with `react-scripts@0.5.0` and higher. +> Note: this feature is available with `react-scripts@0.5.0` and higher. ### Changing the HTML @@ -748,13 +752,13 @@ Note that we normally encourage you to `import` assets in JavaScript files inste For example, see the sections on [adding a stylesheet](#adding-a-stylesheet) and [adding images and fonts](#adding-images-fonts-and-files). This mechanism provides a number of benefits: -* Scripts and stylesheets get minified and bundled together to avoid extra network requests. -* Missing files cause compilation errors instead of 404 errors for your users. -* Result filenames include content hashes so you don’t need to worry about browsers caching their old versions. +- Scripts and stylesheets get minified and bundled together to avoid extra network requests. +- Missing files cause compilation errors instead of 404 errors for your users. +- Result filenames include content hashes so you don’t need to worry about browsers caching their old versions. However there is an **escape hatch** that you can use to add an asset outside of the module system. -If you put a file into the `public` folder, it will **not** be processed by Webpack. Instead it will be copied into the build folder untouched. To reference assets in the `public` folder, you need to use a special variable called `PUBLIC_URL`. +If you put a file into the `public` folder, it will **not** be processed by Webpack. Instead it will be copied into the build folder untouched. To reference assets in the `public` folder, you need to use a special variable called `PUBLIC_URL`. Inside `index.html`, you can use it like this: @@ -779,19 +783,19 @@ render() { Keep in mind the downsides of this approach: -* None of the files in `public` folder get post-processed or minified. -* Missing files will not be called at compilation time, and will cause 404 errors for your users. -* Result filenames won’t include content hashes so you’ll need to add query arguments or rename them every time they change. +- None of the files in `public` folder get post-processed or minified. +- Missing files will not be called at compilation time, and will cause 404 errors for your users. +- Result filenames won’t include content hashes so you’ll need to add query arguments or rename them every time they change. ### When to Use the `public` Folder Normally we recommend importing [stylesheets](#adding-a-stylesheet), [images, and fonts](#adding-images-fonts-and-files) from JavaScript. The `public` folder is useful as a workaround for a number of less common cases: -* You need a file with a specific name in the build output, such as [`manifest.webmanifest`](https://developer.mozilla.org/en-US/docs/Web/Manifest). -* You have thousands of images and need to dynamically reference their paths. -* You want to include a small script like [`pace.js`](http://github.hubspot.com/pace/docs/welcome/) outside of the bundled code. -* Some library may be incompatible with Webpack and you have no other option but to include it as a ` +``` + +Then, on the server, you can replace `__SERVER_DATA__` with a JSON of real data right before sending the response. The client code can then read `window.SERVER_DATA` to use it. **Make sure to [sanitize the JSON before sending it to the client](https://medium.com/node-security/the-most-common-xss-vulnerability-in-react-js-applications-2bdffbcc1fa0) as it makes your app vulnerable to XSS attacks.** + +## Running Tests + +> Note: this feature is available with `react-scripts@0.3.0` and higher.
+ +> [Read the migration guide to learn how to enable it in older projects!](https://github.com/facebook/create-react-app/blob/master/CHANGELOG.md#migrating-from-023-to-030) + +Create React App uses [Jest](https://facebook.github.io/jest/) as its test runner. To prepare for this integration, we did a [major revamp](https://facebook.github.io/jest/blog/2016/09/01/jest-15.html) of Jest so if you heard bad things about it years ago, give it another try. + +Jest is a Node-based runner. This means that the tests always run in a Node environment and not in a real browser. This lets us enable fast iteration speed and prevent flakiness. + +While Jest provides browser globals such as `window` thanks to [jsdom](https://github.com/tmpvar/jsdom), they are only approximations of the real browser behavior. Jest is intended to be used for unit tests of your logic and your components rather than the DOM quirks. + +We recommend that you use a separate tool for browser end-to-end tests if you need them. They are beyond the scope of Create React App. + +### Filename Conventions + +Jest will look for test files with any of the following popular naming conventions: + +- Files with `.js` suffix in `__tests__` folders. +- Files with `.test.js` suffix. +- Files with `.spec.js` suffix. + +The `.test.js` / `.spec.js` files (or the `__tests__` folders) can be located at any depth under the `src` top level folder. + +We recommend to put the test files (or `__tests__` folders) next to the code they are testing so that relative imports appear shorter. For example, if `App.test.js` and `App.js` are in the same folder, the test just needs to `import App from './App'` instead of a long relative path. Colocation also helps find tests more quickly in larger projects. + +### Command Line Interface + +When you run `npm test`, Jest will launch in the watch mode. Every time you save a file, it will re-run the tests, just like `npm start` recompiles the code. + +The watcher includes an interactive command-line interface with the ability to run all tests, or focus on a search pattern. It is designed this way so that you can keep it open and enjoy fast re-runs. You can learn the commands from the “Watch Usage” note that the watcher prints after every run: + +![Jest watch mode](http://facebook.github.io/jest/img/blog/15-watch.gif) + +### Version Control Integration + +By default, when you run `npm test`, Jest will only run the tests related to files changed since the last commit. This is an optimization designed to make your tests run fast regardless of how many tests you have. However it assumes that you don’t often commit the code that doesn’t pass the tests. + +Jest will always explicitly mention that it only ran tests related to the files changed since the last commit. You can also press `a` in the watch mode to force Jest to run all tests. + +Jest will always run all tests on a [continuous integration](#continuous-integration) server or if the project is not inside a Git or Mercurial repository. + +### Writing Tests + +To create tests, add `it()` (or `test()`) blocks with the name of the test and its code. You may optionally wrap them in `describe()` blocks for logical grouping but this is neither required nor recommended. + +Jest provides a built-in `expect()` global function for making assertions. A basic test could look like this: + +```js +import sum from './sum'; + +it('sums numbers', () => { + expect(sum(1, 2)).toEqual(3); + expect(sum(2, 2)).toEqual(4); +}); +``` + +All `expect()` matchers supported by Jest are [extensively documented here](https://facebook.github.io/jest/docs/en/expect.html#content).
+You can also use [`jest.fn()` and `expect(fn).toBeCalled()`](https://facebook.github.io/jest/docs/en/expect.html#tohavebeencalled) to create “spies” or mock functions. + +### Testing Components + +There is a broad spectrum of component testing techniques. They range from a “smoke test” verifying that a component renders without throwing, to shallow rendering and testing some of the output, to full rendering and testing component lifecycle and state changes. + +Different projects choose different testing tradeoffs based on how often components change, and how much logic they contain. If you haven’t decided on a testing strategy yet, we recommend that you start with creating simple smoke tests for your components: + +```js +import React from 'react'; +import ReactDOM from 'react-dom'; +import App from './App'; + +it('renders without crashing', () => { + const div = document.createElement('div'); + ReactDOM.render(, div); +}); +``` + +This test mounts a component and makes sure that it didn’t throw during rendering. Tests like this provide a lot of value with very little effort so they are great as a starting point, and this is the test you will find in `src/App.test.js`. + +When you encounter bugs caused by changing components, you will gain a deeper insight into which parts of them are worth testing in your application. This might be a good time to introduce more specific tests asserting specific expected output or behavior. + +If you’d like to test components in isolation from the child components they render, we recommend using [`shallow()` rendering API](http://airbnb.io/enzyme/docs/api/shallow.html) from [Enzyme](http://airbnb.io/enzyme/). To install it, run: + +```sh +npm install --save enzyme enzyme-adapter-react-16 react-test-renderer +``` + +Alternatively you may use `yarn`: + +```sh +yarn add enzyme enzyme-adapter-react-16 react-test-renderer +``` + +As of Enzyme 3, you will need to install Enzyme along with an Adapter corresponding to the version of React you are using. (The examples above use the adapter for React 16.) + +The adapter will also need to be configured in your [global setup file](#initializing-test-environment): + +#### `src/setupTests.js` + +```js +import { configure } from 'enzyme'; +import Adapter from 'enzyme-adapter-react-16'; + +configure({ adapter: new Adapter() }); +``` + +> Note: Keep in mind that if you decide to "eject" before creating `src/setupTests.js`, the resulting `package.json` file won't contain any reference to it. [Read here](#initializing-test-environment) to learn how to add this after ejecting. + +Now you can write a smoke test with it: + +```js +import React from 'react'; +import { shallow } from 'enzyme'; +import App from './App'; + +it('renders without crashing', () => { + shallow(); +}); +``` + +Unlike the previous smoke test using `ReactDOM.render()`, this test only renders `` and doesn’t go deeper. For example, even if `` itself renders a `
- +
From 678ef7609e48936134e81c08d2e731e256e4bc11 Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk Date: Sun, 7 Oct 2018 20:18:17 +0200 Subject: [PATCH 0303/1249] Create a documentation intro page --- docusaurus/docs/documentation-intro.md | 7 +++++++ docusaurus/website/core/Footer.js | 4 ++-- docusaurus/website/pages/en/index.js | 3 +-- docusaurus/website/sidebars.json | 3 +++ 4 files changed, 13 insertions(+), 4 deletions(-) create mode 100644 docusaurus/docs/documentation-intro.md diff --git a/docusaurus/docs/documentation-intro.md b/docusaurus/docs/documentation-intro.md new file mode 100644 index 00000000000..00225ef48e0 --- /dev/null +++ b/docusaurus/docs/documentation-intro.md @@ -0,0 +1,7 @@ +--- +id: documentation-intro +title: Welcome to the Documentation +sidebar_label: About the docs +--- + +Please navigate via the table of content for finding what you are looking for. diff --git a/docusaurus/website/core/Footer.js b/docusaurus/website/core/Footer.js index d4e4df59b9c..246bf3a3521 100644 --- a/docusaurus/website/core/Footer.js +++ b/docusaurus/website/core/Footer.js @@ -37,8 +37,8 @@ class Footer extends React.Component { Getting Started - - User Guide + + Documentation API Reference (or other categories) diff --git a/docusaurus/website/pages/en/index.js b/docusaurus/website/pages/en/index.js index 81d9250e539..9ff496d920b 100755 --- a/docusaurus/website/pages/en/index.js +++ b/docusaurus/website/pages/en/index.js @@ -81,11 +81,10 @@ class HomeSplash extends React.Component {
- - +
diff --git a/docusaurus/website/sidebars.json b/docusaurus/website/sidebars.json index 8dbae0828c1..cbeb4788cd1 100644 --- a/docusaurus/website/sidebars.json +++ b/docusaurus/website/sidebars.json @@ -1,5 +1,8 @@ { "docs": { + "Welcome": [ + "documentation-intro" + ], "Getting Started": [ "getting-started", "folder-structure", From 6035abf8f307a25c8e461149393af1a045d3b6e0 Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk Date: Sun, 7 Oct 2018 20:24:27 +0200 Subject: [PATCH 0304/1249] No markdown in the headings --- docusaurus/docs/changing-the-page-title.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/docs/changing-the-page-title.md b/docusaurus/docs/changing-the-page-title.md index f899b3fcbff..0b450ee588d 100644 --- a/docusaurus/docs/changing-the-page-title.md +++ b/docusaurus/docs/changing-the-page-title.md @@ -1,6 +1,6 @@ --- id: changing-the-page-title -title: Changing the `` +title: Changing the <title /> --- You can find the source HTML file in the `public` folder of the generated project. You may edit the `<title>` tag in it to change the title from “React App” to anything else. From 0f5bb0d937a9eef5a63fd3b59181bee6069a6269 Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk <selbeezy@gmail.com> Date: Sun, 7 Oct 2018 20:34:45 +0200 Subject: [PATCH 0305/1249] Update all internal links --- .../docs/adding-a-css-modules-stylesheet.md | 2 +- docusaurus/docs/adding-a-router.md | 2 +- docusaurus/docs/adding-a-sass-stylesheet.md | 2 +- .../adding-custom-environment-variables.md | 4 +- docusaurus/docs/advanced-configuration.md | 4 +- docusaurus/docs/alternatives-to-ejecting.md | 2 +- docusaurus/docs/available-scripts.md | 4 +- docusaurus/docs/changing-the-page-title.md | 4 +- docusaurus/docs/debugging-in-the-editor.md | 4 +- docusaurus/docs/deployment.md | 4 +- .../docs/making-a-progressive-web-app.md | 6 +- .../proxying-api-requests-in-development.md | 2 +- docusaurus/docs/troubleshooting.md | 2 +- docusaurus/docs/using-https-in-development.md | 2 +- docusaurus/docs/using-the-public-folder.md | 6 +- docusaurus/website/i18n/en.json | 89 ++++++++++++++++++- 16 files changed, 111 insertions(+), 28 deletions(-) diff --git a/docusaurus/docs/adding-a-css-modules-stylesheet.md b/docusaurus/docs/adding-a-css-modules-stylesheet.md index ef57da3c503..4677ff00372 100644 --- a/docusaurus/docs/adding-a-css-modules-stylesheet.md +++ b/docusaurus/docs/adding-a-css-modules-stylesheet.md @@ -7,7 +7,7 @@ title: Adding a CSS Modules Stylesheet This project supports [CSS Modules](https://github.com/css-modules/css-modules) alongside regular stylesheets using the `[name].module.css` file naming convention. CSS Modules allows the scoping of CSS by automatically creating a unique classname of the format `[filename]\_[classname]\_\_[hash]`. -> **Tip:** Should you want to preprocess a stylesheet with Sass then make sure to [follow the installation instructions](#adding-a-sass-stylesheet) and then change the stylesheet file extension as follows: `[name].module.scss` or `[name].module.sass`. +> **Tip:** Should you want to preprocess a stylesheet with Sass then make sure to [follow the installation instructions](/docs/adding-a-sass-stylesheet) and then change the stylesheet file extension as follows: `[name].module.scss` or `[name].module.sass`. CSS Modules let you use the same CSS class name in different files without worrying about naming clashes. Learn more about CSS Modules [here](https://css-tricks.com/css-modules-part-1-need/). diff --git a/docusaurus/docs/adding-a-router.md b/docusaurus/docs/adding-a-router.md index 18c60a2f398..70dfcb63b6e 100644 --- a/docusaurus/docs/adding-a-router.md +++ b/docusaurus/docs/adding-a-router.md @@ -19,4 +19,4 @@ yarn add react-router-dom To try it, delete all the code in `src/App.js` and replace it with any of the examples on its website. The [Basic Example](https://reacttraining.com/react-router/web/example/basic) is a good place to get started. -Note that [you may need to configure your production server to support client-side routing](#serving-apps-with-client-side-routing) before deploying your app. +Note that [you may need to configure your production server to support client-side routing](/docs/deployments#serving-apps-with-client-side-routing) before deploying your app. diff --git a/docusaurus/docs/adding-a-sass-stylesheet.md b/docusaurus/docs/adding-a-sass-stylesheet.md index b1294548fec..cd3e3d6c2ef 100644 --- a/docusaurus/docs/adding-a-sass-stylesheet.md +++ b/docusaurus/docs/adding-a-sass-stylesheet.md @@ -29,6 +29,6 @@ This will allow you to do imports like @import '~nprogress/nprogress'; // importing a css file from the nprogress node module ``` -> **Tip:** You can opt into using this feature with [CSS modules](#adding-a-css-modules-stylesheet) too! +> **Tip:** You can opt into using this feature with [CSS modules](/docs/adding-a-css-modules-stylesheet) too! > **Note:** You must prefix imports from `node_modules` with `~` as displayed above. diff --git a/docusaurus/docs/adding-custom-environment-variables.md b/docusaurus/docs/adding-custom-environment-variables.md index e01e40ed2e2..90dc183666d 100644 --- a/docusaurus/docs/adding-custom-environment-variables.md +++ b/docusaurus/docs/adding-custom-environment-variables.md @@ -8,7 +8,7 @@ Your project can consume variables declared in your environment as if they were default you will have `NODE_ENV` defined for you, and any other environment variables starting with `REACT_APP_`. -**The environment variables are embedded during the build time**. Since Create React App produces a static HTML/CSS/JS bundle, it can’t possibly read them at runtime. To read them at runtime, you would need to load HTML into memory on the server and replace placeholders in runtime, just like [described here](#injecting-data-from-the-server-into-the-page). Alternatively you can rebuild the app on the server anytime you change them. +**The environment variables are embedded during the build time**. Since Create React App produces a static HTML/CSS/JS bundle, it can’t possibly read them at runtime. To read them at runtime, you would need to load HTML into memory on the server and replace placeholders in runtime, just like [described here](/docs/injecting-data-from-the-server-into-the-page). Alternatively you can rebuild the app on the server anytime you change them. > Note: You must create custom environment variables beginning with `REACT_APP_`. Any other variables except `NODE_ENV` will be ignored to avoid accidentally [exposing a private key on the machine that could have the same name](https://github.com/facebook/create-react-app/issues/865#issuecomment-252199527). Changing any environment variables will require you to restart the development server if it is running. @@ -76,7 +76,7 @@ You can also access the environment variables starting with `REACT_APP_` in the Note that the caveats from the above section apply: - Apart from a few built-in variables (`NODE_ENV` and `PUBLIC_URL`), variable names must start with `REACT_APP_` to work. -- The environment variables are injected at build time. If you need to inject them at runtime, [follow this approach instead](#generating-dynamic-meta-tags-on-the-server). +- The environment variables are injected at build time. If you need to inject them at runtime, [follow this approach instead](/docs/generating-dynamic-meta-tags-on-the-server). ### Adding Temporary Environment Variables In Your Shell diff --git a/docusaurus/docs/advanced-configuration.md b/docusaurus/docs/advanced-configuration.md index 6b711e971b5..fa01aa2baff 100644 --- a/docusaurus/docs/advanced-configuration.md +++ b/docusaurus/docs/advanced-configuration.md @@ -3,7 +3,7 @@ id: advanced-configuration title: Advanced Configuration --- -You can adjust various development and production settings by setting environment variables in your shell or with [.env](#adding-development-environment-variables-in-env). +You can adjust various development and production settings by setting environment variables in your shell or with [.env](/docs/adding-development-environment-variables-in-env). | Variable | Development | Production | Usage | | :------------------ | :--------------------: | :----------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -11,7 +11,7 @@ You can adjust various development and production settings by setting environmen | HOST | :white_check_mark: | :x: | By default, the development web server binds to `localhost`. You may use this variable to specify a different host. | | PORT | :white_check_mark: | :x: | By default, the development web server will attempt to listen on port 3000 or prompt you to attempt the next available port. You may use this variable to specify a different port. | | HTTPS | :white_check_mark: | :x: | When set to `true`, Create React App will run the development server in `https` mode. | -| PUBLIC_URL | :x: | :white_check_mark: | Create React App assumes your application is hosted at the serving web server's root or a subpath as specified in [`package.json` (`homepage`)](#building-for-relative-paths). Normally, Create React App ignores the hostname. You may use this variable to force assets to be referenced verbatim to the url you provide (hostname included). This may be particularly useful when using a CDN to host your application. | +| PUBLIC_URL | :x: | :white_check_mark: | Create React App assumes your application is hosted at the serving web server's root or a subpath as specified in [`package.json` (`homepage`)](/docs/deployment#building-for-relative-paths). Normally, Create React App ignores the hostname. You may use this variable to force assets to be referenced verbatim to the url you provide (hostname included). This may be particularly useful when using a CDN to host your application. | | CI | :large_orange_diamond: | :white_check_mark: | When set to `true`, Create React App treats warnings as failures in the build. It also makes the test runner non-watching. Most CIs set this flag by default. | | REACT_EDITOR | :white_check_mark: | :x: | When an app crashes in development, you will see an error overlay with clickable stack trace. When you click on it, Create React App will try to determine the editor you are using based on currently running processes, and open the relevant source file. You can [send a pull request to detect your editor of choice](https://github.com/facebook/create-react-app/issues/2636). Setting this environment variable overrides the automatic detection. If you do it, make sure your systems [PATH](<https://en.wikipedia.org/wiki/PATH_(variable)>) environment variable points to your editor’s bin folder. You can also set it to `none` to disable it completely. | | CHOKIDAR_USEPOLLING | :white_check_mark: | :x: | When set to `true`, the watcher runs in polling mode, as necessary inside a VM. Use this option if `npm start` isn't detecting changes. | diff --git a/docusaurus/docs/alternatives-to-ejecting.md b/docusaurus/docs/alternatives-to-ejecting.md index b38f33668f4..1bbc066c3bf 100644 --- a/docusaurus/docs/alternatives-to-ejecting.md +++ b/docusaurus/docs/alternatives-to-ejecting.md @@ -3,4 +3,4 @@ id: alternatives-to-ejecting title: Alternatives to Ejecting --- -[Ejecting](#npm-run-eject) lets you customize anything, but from that point on you have to maintain the configuration and scripts yourself. This can be daunting if you have many similar projects. In such cases instead of ejecting we recommend to _fork_ `react-scripts` and any other packages you need. [This article](https://auth0.com/blog/how-to-configure-create-react-app/) dives into how to do it in depth. You can find more discussion in [this issue](https://github.com/facebook/create-react-app/issues/682). +[Ejecting](/docs/available-scripts#npm-run-eject) lets you customize anything, but from that point on you have to maintain the configuration and scripts yourself. This can be daunting if you have many similar projects. In such cases instead of ejecting we recommend to _fork_ `react-scripts` and any other packages you need. [This article](https://auth0.com/blog/how-to-configure-create-react-app/) dives into how to do it in depth. You can find more discussion in [this issue](https://github.com/facebook/create-react-app/issues/682). diff --git a/docusaurus/docs/available-scripts.md b/docusaurus/docs/available-scripts.md index 6a496c395fa..b116205059e 100644 --- a/docusaurus/docs/available-scripts.md +++ b/docusaurus/docs/available-scripts.md @@ -17,7 +17,7 @@ You will also see any lint errors in the console. ### `npm test` Launches the test runner in the interactive watch mode.<br> -See the section about [running tests](#running-tests) for more information. +See the section about [running tests](/docs/running-tests) for more information. ### `npm run build` @@ -27,7 +27,7 @@ It correctly bundles React in production mode and optimizes the build for the be The build is minified and the filenames include the hashes.<br> Your app is ready to be deployed! -See the section about [deployment](#deployment) for more information. +See the section about [deployment](/docs/deployment) for more information. ### `npm run eject` diff --git a/docusaurus/docs/changing-the-page-title.md b/docusaurus/docs/changing-the-page-title.md index 0b450ee588d..3bbf7c35dd6 100644 --- a/docusaurus/docs/changing-the-page-title.md +++ b/docusaurus/docs/changing-the-page-title.md @@ -5,8 +5,8 @@ title: Changing the <title /> You can find the source HTML file in the `public` folder of the generated project. You may edit the `<title>` tag in it to change the title from “React App” to anything else. -Note that normally you wouldn’t edit files in the `public` folder very often. For example, [adding a stylesheet](#adding-a-stylesheet) is done without touching the HTML. +Note that normally you wouldn’t edit files in the `public` folder very often. For example, [adding a stylesheet](/docs/adding-a-stylesheet) is done without touching the HTML. If you need to dynamically update the page title based on the content, you can use the browser [`document.title`](https://developer.mozilla.org/en-US/docs/Web/API/Document/title) API. For more complex scenarios when you want to change the title from React components, you can use [React Helmet](https://github.com/nfl/react-helmet), a third party library. -If you use a custom server for your app in production and want to modify the title before it gets sent to the browser, you can follow advice in [this section](#generating-dynamic-meta-tags-on-the-server). Alternatively, you can pre-build each page as a static HTML file which then loads the JavaScript bundle, which is covered [here](#pre-rendering-into-static-html-files). +If you use a custom server for your app in production and want to modify the title before it gets sent to the browser, you can follow advice in [this section](/docs/generating-dynamic-meta-tags-on-the-server). Alternatively, you can pre-build each page as a static HTML file which then loads the JavaScript bundle, which is covered [here](/docs/pre-rendering-into-static-html-files). diff --git a/docusaurus/docs/debugging-in-the-editor.md b/docusaurus/docs/debugging-in-the-editor.md index d83f54f0b33..75bcb815459 100644 --- a/docusaurus/docs/debugging-in-the-editor.md +++ b/docusaurus/docs/debugging-in-the-editor.md @@ -31,7 +31,7 @@ Then add the block below to your `launch.json` file and put it inside the `.vsco } ``` -> Note: the URL may be different if you've made adjustments via the [HOST or PORT environment variables](#advanced-configuration). +> Note: the URL may be different if you've made adjustments via the [HOST or PORT environment variables](/docs/advanced-configuration). Start your app by running `npm start`, and start debugging in VS Code by pressing `F5` or by clicking the green debug icon. You can now write code, set breakpoints, make changes to the code, and debug your newly modified code—all from your editor. @@ -43,7 +43,7 @@ You would need to have [WebStorm](https://www.jetbrains.com/webstorm/) and [JetB In the WebStorm menu `Run` select `Edit Configurations...`. Then click `+` and select `JavaScript Debug`. Paste `http://localhost:3000` into the URL field and save the configuration. -> Note: the URL may be different if you've made adjustments via the [HOST or PORT environment variables](#advanced-configuration). +> Note: the URL may be different if you've made adjustments via the [HOST or PORT environment variables](/docs/advanced-configuration). Start your app by running `npm start`, then press `^D` on macOS or `F9` on Windows and Linux or click the green debug icon to start debugging in WebStorm. diff --git a/docusaurus/docs/deployment.md b/docusaurus/docs/deployment.md index 442243e77e6..97a5a1b70b4 100644 --- a/docusaurus/docs/deployment.md +++ b/docusaurus/docs/deployment.md @@ -79,11 +79,11 @@ If you’re using [Apache Tomcat](http://tomcat.apache.org/), you need to follow Now requests to `/todos/42` will be handled correctly both in development and in production. -On a production build, and when you've [opted-in](#why-opt-in), +On a production build, and when you've [opted-in](/docs/making-a-progressive-web-app#why-opt-in), a [service worker](https://developers.google.com/web/fundamentals/primers/service-workers/) will automatically handle all navigation requests, like for `/todos/42`, by serving the cached copy of your `index.html`. This service worker navigation routing can be configured or disabled by -[`eject`ing](#npm-run-eject) and then modifying the +[`eject`ing](/docs/available-scripts#npm-run-eject) and then modifying the [`navigateFallback`](https://github.com/GoogleChrome/sw-precache#navigatefallback-string) and [`navigateFallbackWhitelist`](https://github.com/GoogleChrome/sw-precache#navigatefallbackwhitelist-arrayregexp) options of the `SWPreachePlugin` [configuration](../config/webpack.config.prod.js). diff --git a/docusaurus/docs/making-a-progressive-web-app.md b/docusaurus/docs/making-a-progressive-web-app.md index d59f0923b4a..d290ac08d90 100644 --- a/docusaurus/docs/making-a-progressive-web-app.md +++ b/docusaurus/docs/making-a-progressive-web-app.md @@ -57,7 +57,7 @@ following into account: in older web browsers. Service worker registration [won't be attempted](src/registerServiceWorker.js) on browsers that lack support. -1. The service worker is only enabled in the [production environment](#deployment), +1. The service worker is only enabled in the [production environment](/docs/deployment), e.g. the output of `npm run build`. It's recommended that you do not enable an offline-first service worker in a development environment, as it can lead to frustration when previously cached assets are used and do not include the latest @@ -66,7 +66,7 @@ following into account: 1. If you _need_ to test your offline-first service worker locally, build the application (using `npm run build`) and run a simple http server from your build directory. After running the build script, `create-react-app` will give - instructions for one way to test your production build locally and the [deployment instructions](#deployment) have + instructions for one way to test your production build locally and the [deployment instructions](/docs/deployment) have instructions for using other methods. _Be sure to always use an incognito window to avoid complications with your browser cache._ @@ -83,7 +83,7 @@ following into account: JavaScript console. 1. By default, the generated service worker file will not intercept or cache any - cross-origin traffic, like HTTP [API requests](#integrating-with-an-api-backend), + cross-origin traffic, like HTTP [API requests](/docs/integrating-with-an-api-backend), images, or embeds loaded from a different domain. ### Progressive Web App Metadata diff --git a/docusaurus/docs/proxying-api-requests-in-development.md b/docusaurus/docs/proxying-api-requests-in-development.md index 7fdbf5fd272..fb1a53a651f 100644 --- a/docusaurus/docs/proxying-api-requests-in-development.md +++ b/docusaurus/docs/proxying-api-requests-in-development.md @@ -38,7 +38,7 @@ If the `proxy` option is **not** flexible enough for you, alternatively you can: - [Configure the proxy yourself](#configuring-the-proxy-manually) - Enable CORS on your server ([here’s how to do it for Express](http://enable-cors.org/server_expressjs.html)). -- Use [environment variables](#adding-custom-environment-variables) to inject the right server host and port into your app. +- Use [environment variables](/docs/adding-custom-environment-variables) to inject the right server host and port into your app. ### "Invalid Host Header" Errors After Configuring Proxy diff --git a/docusaurus/docs/troubleshooting.md b/docusaurus/docs/troubleshooting.md index a4bdb78b9a6..f0ea55a7019 100644 --- a/docusaurus/docs/troubleshooting.md +++ b/docusaurus/docs/troubleshooting.md @@ -53,7 +53,7 @@ If you are completely sure that you didn't terminate the process, consider [addi ### `npm run build` fails on Heroku This may be a problem with case sensitive filenames. -Please refer to [this section](#resolving-heroku-deployment-errors). +Please refer to [this section](/docs/deployment#resolving-heroku-deployment-errors). ### Moment.js locales are missing diff --git a/docusaurus/docs/using-https-in-development.md b/docusaurus/docs/using-https-in-development.md index 2117106e7c7..182b6a3e7fc 100644 --- a/docusaurus/docs/using-https-in-development.md +++ b/docusaurus/docs/using-https-in-development.md @@ -5,7 +5,7 @@ title: Using HTTPS in Development > Note: this feature is available with `react-scripts@0.4.0` and higher. -You may require the dev server to serve pages over HTTPS. One particular case where this could be useful is when using [the "proxy" feature](#proxying-api-requests-in-development) to proxy requests to an API server when that API server is itself serving HTTPS. +You may require the dev server to serve pages over HTTPS. One particular case where this could be useful is when using [the "proxy" feature](/docs/proxying-api-requests-in-development) to proxy requests to an API server when that API server is itself serving HTTPS. To do this, set the `HTTPS` environment variable to `true`, then start the dev server as usual with `npm start`: diff --git a/docusaurus/docs/using-the-public-folder.md b/docusaurus/docs/using-the-public-folder.md index c368b5b657b..cef6be375fb 100644 --- a/docusaurus/docs/using-the-public-folder.md +++ b/docusaurus/docs/using-the-public-folder.md @@ -7,7 +7,7 @@ title: Using the `public` Folder ### Changing the HTML -The `public` folder contains the HTML file so you can tweak it, for example, to [set the page title](#changing-the-page-title). +The `public` folder contains the HTML file so you can tweak it, for example, to [set the page title](/docs/changing-the-page-title). The `<script>` tag with the compiled code will be added to it automatically during the build process. ### Adding Assets Outside of the Module System @@ -15,7 +15,7 @@ The `<script>` tag with the compiled code will be added to it automatically duri You can also add other assets to the `public` folder. Note that we normally encourage you to `import` assets in JavaScript files instead. -For example, see the sections on [adding a stylesheet](#adding-a-stylesheet) and [adding images and fonts](#adding-images-fonts-and-files). +For example, see the sections on [adding a stylesheet](/docs/adding-a-stylesheet) and [adding images and fonts](/docs/adding-images-fonts-and-files). This mechanism provides a number of benefits: - Scripts and stylesheets get minified and bundled together to avoid extra network requests. @@ -55,7 +55,7 @@ Keep in mind the downsides of this approach: ### When to Use the `public` Folder -Normally we recommend importing [stylesheets](#adding-a-stylesheet), [images, and fonts](#adding-images-fonts-and-files) from JavaScript. +Normally we recommend importing [stylesheets](/docs/adding-a-stylesheet), [images, and fonts](/docs/adding-images-fonts-and-files) from JavaScript. The `public` folder is useful as a workaround for a number of less common cases: - You need a file with a specific name in the build output, such as [`manifest.webmanifest`](https://developer.mozilla.org/en-US/docs/Web/Manifest). diff --git a/docusaurus/website/i18n/en.json b/docusaurus/website/i18n/en.json index a28dea80793..2e9f00cab6d 100644 --- a/docusaurus/website/i18n/en.json +++ b/docusaurus/website/i18n/en.json @@ -5,6 +5,39 @@ "previous": "Previous", "tagline": "Create React apps with no build configuration.", "docs": { + "adding-a-css-modules-stylesheet": { + "title": "Adding a CSS Modules Stylesheet" + }, + "adding-a-router": { + "title": "Adding a Router" + }, + "adding-a-sass-stylesheet": { + "title": "Adding a Sass Stylesheet" + }, + "adding-a-stylesheet": { + "title": "Adding a Stylesheet" + }, + "adding-bootstrap": { + "title": "Adding Bootstrap" + }, + "adding-custom-environment-variables": { + "title": "Adding Custom Environment Variables" + }, + "adding-flow": { + "title": "Adding Flow" + }, + "adding-images-fonts-and-files": { + "title": "Adding Images, Fonts, and Files" + }, + "adding-relay": { + "title": "Adding Relay" + }, + "advanced-configuration": { + "title": "Advanced Configuration" + }, + "alternatives-to-ejecting": { + "title": "Alternatives to Ejecting" + }, "analyzing-the-bundle-size": { "title": "Analyzing the Bundle Size", "sidebar_label": "Analyzing bundle size" @@ -13,6 +46,15 @@ "title": "Available Scripts", "sidebar_label": "Available scripts" }, + "can-i-use-decorators": { + "title": "Can I Use Decorators?" + }, + "changing-the-page-title": { + "title": "Changing the <title />" + }, + "code-splitting": { + "title": "Code Splitting" + }, "debugging-in-the-editor": { "title": "Debugging in the Editor" }, @@ -27,6 +69,13 @@ "developing-components-in-isolation": { "title": "Developing Components in Isolation" }, + "documentation-intro": { + "title": "Welcome to the Documentation", + "sidebar_label": "About the docs" + }, + "fetching-data-with-ajax-requests": { + "title": "Fetching Data with AJAX Requests" + }, "folder-structure": { "title": "Folder structure" }, @@ -34,14 +83,38 @@ "title": "Formatting Code Automatically", "sidebar_label": "Formatting code" }, + "generating-dynamic-meta-tags-on-the-server": { + "title": "Generating Dynamic `<meta>` Tags on the Server" + }, "getting-started": { "title": "Getting started", "sidebar_label": "Getting started" }, + "importing-a-component": { + "title": "Importing a Component" + }, + "injecting-data-from-the-server-into-the-page": { + "title": "Injecting Data from the Server into the Page" + }, + "installing-a-dependency": { + "title": "Installing a Dependency" + }, + "integrating-with-an-api-backend": { + "title": "Integrating with an API Backend" + }, "lint-output-in-the-editor": { "title": "Displaying Lint Output in the Editor", "sidebar_label": "In-editor linting" }, + "making-a-progressive-web-app": { + "title": "Making a Progressive Web App" + }, + "post-processing-css": { + "title": "Post-Processing CSS" + }, + "pre-rendering-into-static-html-files": { + "title": "Pre-Rendering into Static HTML Files" + }, "proxying-api-requests-in-development": { "title": "Proxying API Requests in Development", "sidebar_label": "Proxying in development" @@ -68,6 +141,9 @@ "supported-browsers": { "title": "Supported Browsers" }, + "supported-language-features": { + "title": "Supported Language Features" + }, "syntax-highlighting-in-the-editor": { "title": "Syntax highlighting in the editor", "sidebar_label": "Syntax highlighting" @@ -79,9 +155,14 @@ "updating-to-new-releases": { "title": "Updating to New Releases" }, - "user-guide": { - "title": "User guide", - "sidebar_label": "User guide" + "using-global-variables": { + "title": "Using Global Variables" + }, + "using-https-in-development": { + "title": "Using HTTPS in Development" + }, + "using-the-public-folder": { + "title": "Using the `public` Folder" } }, "links": { @@ -90,8 +171,10 @@ "GitHub": "GitHub" }, "categories": { + "Welcome": "Welcome", "Getting Started": "Getting Started", "Development": "Development", + "How-to": "How-to", "Testing": "Testing", "Deployment": "Deployment", "Support": "Support" From 7aaa463547386ee9589cf4ff42bc1d66126b0054 Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk <selbeezy@gmail.com> Date: Sun, 7 Oct 2018 20:51:30 +0200 Subject: [PATCH 0306/1249] Bumping all headings one level because we can now --- .../docs/adding-a-css-modules-stylesheet.md | 8 +-- docusaurus/docs/adding-a-stylesheet.md | 4 +- docusaurus/docs/adding-bootstrap.md | 2 +- .../adding-custom-environment-variables.md | 16 +++--- .../docs/adding-images-fonts-and-files.md | 2 +- docusaurus/docs/available-scripts.md | 8 +-- docusaurus/docs/code-splitting.md | 6 +-- docusaurus/docs/debugging-in-the-editor.md | 4 +- docusaurus/docs/debugging-tests.md | 4 +- docusaurus/docs/deployment.md | 52 +++++++++---------- .../developing-components-in-isolation.md | 4 +- docusaurus/docs/importing-a-component.md | 4 +- .../docs/integrating-with-an-api-backend.md | 6 +-- .../docs/making-a-progressive-web-app.md | 6 +-- .../proxying-api-requests-in-development.md | 4 +- docusaurus/docs/running-tests.md | 48 ++++++++--------- docusaurus/docs/troubleshooting.md | 12 ++--- docusaurus/docs/using-https-in-development.md | 6 +-- docusaurus/docs/using-the-public-folder.md | 6 +-- 19 files changed, 100 insertions(+), 102 deletions(-) diff --git a/docusaurus/docs/adding-a-css-modules-stylesheet.md b/docusaurus/docs/adding-a-css-modules-stylesheet.md index 4677ff00372..5b2f7ceba18 100644 --- a/docusaurus/docs/adding-a-css-modules-stylesheet.md +++ b/docusaurus/docs/adding-a-css-modules-stylesheet.md @@ -11,7 +11,7 @@ This project supports [CSS Modules](https://github.com/css-modules/css-modules) CSS Modules let you use the same CSS class name in different files without worrying about naming clashes. Learn more about CSS Modules [here](https://css-tricks.com/css-modules-part-1-need/). -### `Button.module.css` +## `Button.module.css` ```css .error { @@ -19,7 +19,7 @@ CSS Modules let you use the same CSS class name in different files without worry } ``` -### `another-stylesheet.css` +## `another-stylesheet.css` ```css .error { @@ -27,7 +27,7 @@ CSS Modules let you use the same CSS class name in different files without worry } ``` -### `Button.js` +## `Button.js` ```js import React, { Component } from 'react'; @@ -42,7 +42,7 @@ class Button extends Component { } ``` -### Result +## Result No clashes from other `.error` class names diff --git a/docusaurus/docs/adding-a-stylesheet.md b/docusaurus/docs/adding-a-stylesheet.md index 9063525b3da..7155e584f2d 100644 --- a/docusaurus/docs/adding-a-stylesheet.md +++ b/docusaurus/docs/adding-a-stylesheet.md @@ -5,7 +5,7 @@ title: Adding a Stylesheet This project setup uses [Webpack](https://webpack.js.org/) for handling all assets. Webpack offers a custom way of “extending” the concept of `import` beyond JavaScript. To express that a JavaScript file depends on a CSS file, you need to **import the CSS from the JavaScript file**: -### `Button.css` +## `Button.css` ```css .Button { @@ -13,7 +13,7 @@ This project setup uses [Webpack](https://webpack.js.org/) for handling all asse } ``` -### `Button.js` +## `Button.js` ```js import React, { Component } from 'react'; diff --git a/docusaurus/docs/adding-bootstrap.md b/docusaurus/docs/adding-bootstrap.md index b01e825b41b..dc97b6cab94 100644 --- a/docusaurus/docs/adding-bootstrap.md +++ b/docusaurus/docs/adding-bootstrap.md @@ -33,7 +33,7 @@ import { Button } from 'reactstrap'; Now you are ready to use the imported reactstrap components within your component hierarchy defined in the render method. Here is an example [`App.js`](https://gist.githubusercontent.com/zx6658/d9f128cd57ca69e583ea2b5fea074238/raw/a56701c142d0c622eb6c20a457fbc01d708cb485/App.js) redone using reactstrap. -### Using a Custom Theme +## Using a Custom Theme > Note: this feature is available with `react-scripts@2.0.0` and higher. diff --git a/docusaurus/docs/adding-custom-environment-variables.md b/docusaurus/docs/adding-custom-environment-variables.md index 90dc183666d..62ff6a0260d 100644 --- a/docusaurus/docs/adding-custom-environment-variables.md +++ b/docusaurus/docs/adding-custom-environment-variables.md @@ -63,7 +63,7 @@ if (process.env.NODE_ENV !== 'production') { When you compile the app with `npm run build`, the minification step will strip out this condition, and the resulting bundle will be smaller. -### Referencing Environment Variables in the HTML +## Referencing Environment Variables in the HTML > Note: this feature is available with `react-scripts@0.9.0` and higher. @@ -78,12 +78,12 @@ Note that the caveats from the above section apply: - Apart from a few built-in variables (`NODE_ENV` and `PUBLIC_URL`), variable names must start with `REACT_APP_` to work. - The environment variables are injected at build time. If you need to inject them at runtime, [follow this approach instead](/docs/generating-dynamic-meta-tags-on-the-server). -### Adding Temporary Environment Variables In Your Shell +## Adding Temporary Environment Variables In Your Shell Defining environment variables can vary between OSes. It’s also important to know that this manner is temporary for the life of the shell session. -#### Windows (cmd.exe) +### Windows (cmd.exe) ```cmd set "REACT_APP_SECRET_CODE=abcdef" && npm start @@ -91,19 +91,19 @@ set "REACT_APP_SECRET_CODE=abcdef" && npm start (Note: Quotes around the variable assignment are required to avoid a trailing whitespace.) -#### Windows (Powershell) +### Windows (Powershell) ```Powershell ($env:REACT_APP_SECRET_CODE = "abcdef") -and (npm start) ``` -#### Linux, macOS (Bash) +### Linux, macOS (Bash) ```bash REACT_APP_SECRET_CODE=abcdef npm start ``` -### Adding Development Environment Variables In `.env` +## Adding Development Environment Variables In `.env` > Note: this feature is available with `react-scripts@0.5.0` and higher. @@ -117,7 +117,7 @@ REACT_APP_SECRET_CODE=abcdef `.env` files **should be** checked into source control (with the exclusion of `.env*.local`). -#### What other `.env` files can be used? +### What other `.env` files can be used? > Note: this feature is **available with `react-scripts@1.0.0` and higher**. @@ -138,7 +138,7 @@ Please refer to the [dotenv documentation](https://github.com/motdotla/dotenv) f > Note: If you are defining environment variables for development, your CI and/or hosting platform will most likely need > these defined as well. Consult their documentation how to do this. For example, see the documentation for [Travis CI](https://docs.travis-ci.com/user/environment-variables/) or [Heroku](https://devcenter.heroku.com/articles/config-vars). -#### Expanding Environment Variables In `.env` +### Expanding Environment Variables In `.env` > Note: this feature is available with `react-scripts@1.1.0` and higher. diff --git a/docusaurus/docs/adding-images-fonts-and-files.md b/docusaurus/docs/adding-images-fonts-and-files.md index 34f64cd0348..c481d96c75d 100644 --- a/docusaurus/docs/adding-images-fonts-and-files.md +++ b/docusaurus/docs/adding-images-fonts-and-files.md @@ -42,7 +42,7 @@ Please be advised that this is also a custom feature of Webpack. **It is not required for React** but many people enjoy it (and React Native uses a similar mechanism for images).<br> An alternative way of handling static assets is described in the next section. -### Adding SVGs +## Adding SVGs > Note: this feature is available with `react-scripts@2.0.0` and higher. diff --git a/docusaurus/docs/available-scripts.md b/docusaurus/docs/available-scripts.md index b116205059e..8f6ec40ceee 100644 --- a/docusaurus/docs/available-scripts.md +++ b/docusaurus/docs/available-scripts.md @@ -6,7 +6,7 @@ sidebar_label: Available scripts In the project directory, you can run: -### `npm start` +## `npm start` Runs the app in the development mode.<br> Open [http://localhost:3000](http://localhost:3000) to view it in the browser. @@ -14,12 +14,12 @@ Open [http://localhost:3000](http://localhost:3000) to view it in the browser. The page will reload if you make edits.<br> You will also see any lint errors in the console. -### `npm test` +## `npm test` Launches the test runner in the interactive watch mode.<br> See the section about [running tests](/docs/running-tests) for more information. -### `npm run build` +## `npm run build` Builds the app for production to the `build` folder.<br> It correctly bundles React in production mode and optimizes the build for the best performance. @@ -29,7 +29,7 @@ Your app is ready to be deployed! See the section about [deployment](/docs/deployment) for more information. -### `npm run eject` +## `npm run eject` **Note: this is a one-way operation. Once you `eject`, you can’t go back!** diff --git a/docusaurus/docs/code-splitting.md b/docusaurus/docs/code-splitting.md index 72dff8f4217..b288785b574 100644 --- a/docusaurus/docs/code-splitting.md +++ b/docusaurus/docs/code-splitting.md @@ -9,7 +9,7 @@ This project setup supports code splitting via [dynamic `import()`](http://2alit Here is an example: -### `moduleA.js` +## `moduleA.js` ```js const moduleA = 'Hello'; @@ -17,7 +17,7 @@ const moduleA = 'Hello'; export { moduleA }; ``` -### `App.js` +## `App.js` ```js import React, { Component } from 'react'; @@ -49,7 +49,7 @@ This will make `moduleA.js` and all its unique dependencies as a separate chunk You can also use it with `async` / `await` syntax if you prefer it. -### With React Router +## With React Router If you are using React Router check out [this tutorial](http://serverless-stack.com/chapters/code-splitting-in-create-react-app.html) on how to use code splitting with it. You can find the companion GitHub repository [here](https://github.com/AnomalyInnovations/serverless-stack-demo-client/tree/code-splitting-in-create-react-app). diff --git a/docusaurus/docs/debugging-in-the-editor.md b/docusaurus/docs/debugging-in-the-editor.md index 75bcb815459..7ce53f9eb80 100644 --- a/docusaurus/docs/debugging-in-the-editor.md +++ b/docusaurus/docs/debugging-in-the-editor.md @@ -7,7 +7,7 @@ title: Debugging in the Editor Visual Studio Code and WebStorm support debugging out of the box with Create React App. This enables you as a developer to write and debug your React code without leaving the editor, and most importantly it enables you to have a continuous development workflow, where context switching is minimal, as you don’t have to switch between tools. -### Visual Studio Code +## Visual Studio Code You would need to have the latest version of [VS Code](https://code.visualstudio.com) and VS Code [Chrome Debugger Extension](https://marketplace.visualstudio.com/items?itemName=msjsdiag.debugger-for-chrome) installed. @@ -37,7 +37,7 @@ Start your app by running `npm start`, and start debugging in VS Code by pressin Having problems with VS Code Debugging? Please see their [troubleshooting guide](https://github.com/Microsoft/vscode-chrome-debug/blob/master/README.md#troubleshooting). -### WebStorm +## WebStorm You would need to have [WebStorm](https://www.jetbrains.com/webstorm/) and [JetBrains IDE Support](https://chrome.google.com/webstore/detail/jetbrains-ide-support/hmhgeddbohgjknpmjagkdomcpobmllji) Chrome extension installed. diff --git a/docusaurus/docs/debugging-tests.md b/docusaurus/docs/debugging-tests.md index eaa4ec41726..79ee41b2a66 100644 --- a/docusaurus/docs/debugging-tests.md +++ b/docusaurus/docs/debugging-tests.md @@ -8,7 +8,7 @@ There are various ways to setup a debugger for your Jest tests. We cover debuggi > Note: debugging tests requires Node 8 or higher. -### Debugging Tests in Chrome +## Debugging Tests in Chrome Add the following to the `scripts` section in your project's `package.json` @@ -36,7 +36,7 @@ After opening that link, the Chrome Developer Tools will be displayed. Select `i > Note: the --runInBand cli option makes sure Jest runs test in the same process rather than spawning processes for individual tests. Normally Jest parallelizes test runs across processes but it is hard to debug many processes at the same time. -### Debugging Tests in Visual Studio Code +## Debugging Tests in Visual Studio Code Debugging Jest tests is supported out of the box for [Visual Studio Code](https://code.visualstudio.com). diff --git a/docusaurus/docs/deployment.md b/docusaurus/docs/deployment.md index 97a5a1b70b4..4c42844e5de 100644 --- a/docusaurus/docs/deployment.md +++ b/docusaurus/docs/deployment.md @@ -6,7 +6,7 @@ sidebar_label: Deployment `npm run build` creates a `build` directory with a production build of your app. Set up your favorite HTTP server so that a visitor to your site is served `index.html`, and requests to static paths like `/static/js/main.<hash>.js` are served with the contents of the `/static/js/main.<hash>.js` file. -### Static Server +## Static Server For environments using [Node](https://nodejs.org/), the easiest way to handle this would be to install [serve](https://github.com/zeit/serve) and let it handle the rest: @@ -23,7 +23,7 @@ Run this command to get a full list of the options available: serve -h ``` -### Other Solutions +## Other Solutions You don’t necessarily need a static server in order to run a Create React App project in production. It works just as fine integrated into an existing dynamic one. @@ -49,7 +49,7 @@ The `build` folder with static assets is the only output produced by Create Reac However this is not quite enough if you use client-side routing. Read the next section if you want to support URLs like `/todos/42` in your single-page app. -### Serving Apps with Client-Side Routing +## Serving Apps with Client-Side Routing If you use routers that use the HTML5 [`pushState` history API](https://developer.mozilla.org/en-US/docs/Web/API/History_API#Adding_and_modifying_history_entries) under the hood (for example, [React Router](https://github.com/ReactTraining/react-router) with `browserHistory`), many static file servers will fail. For example, if you used React Router with a route for `/todos/42`, the development server will respond to `localhost:3000/todos/42` properly, but an Express serving a production build as above will not. @@ -94,7 +94,7 @@ When users install your app to the homescreen of their device the default config "start_url": ".", ``` -### Building for Relative Paths +## Building for Relative Paths By default, Create React App produces a build assuming your app is hosted at the server root.<br> To override this, specify the `homepage` in your `package.json`, for example: @@ -115,7 +115,7 @@ For example: <Link to="/today"/> // renders <a href="/calendar/today"> ``` -#### Serving the Same Build from Different Paths +### Serving the Same Build from Different Paths > Note: this feature is available with `react-scripts@0.9.0` and higher. @@ -127,7 +127,7 @@ If you are not using the HTML5 `pushState` history API or not using client-side This will make sure that all the asset paths are relative to `index.html`. You will then be able to move your app from `http://mywebsite.com` to `http://mywebsite.com/relativepath` or even `http://mywebsite.com/relative/path` without having to rebuild it. -### Customizing Environment Variables for Arbitrary Build Environments +## Customizing Environment Variables for Arbitrary Build Environments You can create an arbitrary build environment by creating a custom `.env` file and loading it using [env-cmd](https://www.npmjs.com/package/env-cmd). @@ -155,13 +155,13 @@ You can specify other environments in the same way. Variables in `.env.production` will be used as fallback because `NODE_ENV` will always be set to `production` for a build. -### [Azure](https://azure.microsoft.com/) +## [Azure](https://azure.microsoft.com/) See [this](https://medium.com/@to_pe/deploying-create-react-app-on-microsoft-azure-c0f6686a4321) blog post on how to deploy your React app to Microsoft Azure. See [this](https://medium.com/@strid/host-create-react-app-on-azure-986bc40d5bf2#.pycfnafbg) blog post or [this](https://github.com/ulrikaugustsson/azure-appservice-static) repo for a way to use automatic deployment to Azure App Service. -### [Firebase](https://firebase.google.com/) +## [Firebase](https://firebase.google.com/) Install the Firebase CLI if you haven’t already by running `npm install -g firebase-tools`. Sign up for a [Firebase account](https://console.firebase.google.com/) and create a new project. Run `firebase login` and login with your previous created Firebase account. @@ -234,11 +234,11 @@ Now, after you create a production build with `npm run build`, you can deploy it For more information see [Add Firebase to your JavaScript Project](https://firebase.google.com/docs/web/setup). -### [GitHub Pages](https://pages.github.com/) +## [GitHub Pages](https://pages.github.com/) > Note: this feature is available with `react-scripts@0.2.0` and higher. -#### Step 1: Add `homepage` to `package.json` +### Step 1: Add `homepage` to `package.json` **The step below is important!**<br> **If you skip it, your app will not deploy correctly.** @@ -263,7 +263,7 @@ or for a custom domain page: Create React App uses the `homepage` field to determine the root URL in the built HTML file. -#### Step 2: Install `gh-pages` and add `deploy` to `scripts` in `package.json` +### Step 2: Install `gh-pages` and add `deploy` to `scripts` in `package.json` Now, whenever you run `npm run build`, you will see a cheat sheet with instructions on how to deploy to GitHub Pages. @@ -304,7 +304,7 @@ additional modifications: + "deploy": "gh-pages -b master -d build", ``` -#### Step 3: Deploy the site by running `npm run deploy` +### Step 3: Deploy the site by running `npm run deploy` Then run: @@ -312,13 +312,13 @@ Then run: npm run deploy ``` -#### Step 4: Ensure your project’s settings use `gh-pages` +### Step 4: Ensure your project’s settings use `gh-pages` Finally, make sure **GitHub Pages** option in your GitHub project settings is set to use the `gh-pages` branch: <img src="http://i.imgur.com/HUjEr9l.png" width="500" alt="gh-pages branch setting"> -#### Step 5: Optionally, configure the domain +### Step 5: Optionally, configure the domain You can configure a custom domain with GitHub Pages by adding a `CNAME` file to the `public/` folder. @@ -328,16 +328,16 @@ Your CNAME file should look like this: mywebsite.com ``` -#### Notes on client-side routing +### Notes on client-side routing GitHub Pages doesn’t support routers that use the HTML5 `pushState` history API under the hood (for example, React Router using `browserHistory`). This is because when there is a fresh page load for a url like `http://user.github.io/todomvc/todos/42`, where `/todos/42` is a frontend route, the GitHub Pages server returns 404 because it knows nothing of `/todos/42`. If you want to add a router to a project hosted on GitHub Pages, here are a couple of solutions: - You could switch from using HTML5 history API to routing with hashes. If you use React Router, you can switch to `hashHistory` for this effect, but the URL will be longer and more verbose (for example, `http://user.github.io/todomvc/#/todos/42?_k=yknaj`). [Read more](https://reacttraining.com/react-router/web/api/Router) about different history implementations in React Router. - Alternatively, you can use a trick to teach GitHub Pages to handle 404 by redirecting to your `index.html` page with a special redirect parameter. You would need to add a `404.html` file with the redirection code to the `build` folder before deploying your project, and you’ll need to add code handling the redirect parameter to `index.html`. You can find a detailed explanation of this technique [in this guide](https://github.com/rafrex/spa-github-pages). -#### Troubleshooting +### Troubleshooting -##### "/dev/tty: No such a device or address" +#### "/dev/tty: No such a device or address" If, when deploying, you get `/dev/tty: No such a device or address` or a similar error, try the following: @@ -345,7 +345,7 @@ If, when deploying, you get `/dev/tty: No such a device or address` or a similar 2. `git remote set-url origin https://<user>:<token>@github.com/<user>/<repo>` . 3. Try `npm run deploy` again -##### "Cannot read property 'email' of null" +#### "Cannot read property 'email' of null" If, when deploying, you get `Cannot read property 'email' of null`, try the following: @@ -353,16 +353,16 @@ If, when deploying, you get `Cannot read property 'email' of null`, try the foll 2. `git config --global user.email '<your_email>'` 3. Try `npm run deploy` again -### [Heroku](https://www.heroku.com/) +## [Heroku](https://www.heroku.com/) Use the [Heroku Buildpack for Create React App](https://github.com/mars/create-react-app-buildpack).<br> You can find instructions in [Deploying React with Zero Configuration](https://blog.heroku.com/deploying-react-with-zero-configuration). -#### Resolving Heroku Deployment Errors +### Resolving Heroku Deployment Errors Sometimes `npm run build` works locally but fails during deploy via Heroku. Following are the most common cases. -##### "Module not found: Error: Cannot resolve 'file' or 'directory'" +#### "Module not found: Error: Cannot resolve 'file' or 'directory'" If you get something like this: @@ -376,7 +376,7 @@ It means you need to ensure that the lettercase of the file or directory you `im This is important because Linux (the operating system used by Heroku) is case sensitive. So `MyDirectory` and `mydirectory` are two distinct directories and thus, even though the project builds locally, the difference in case breaks the `import` statements on Heroku remotes. -##### "Could not find a required file." +#### "Could not find a required file." If you exclude or ignore necessary files from the package you will see a error similar this one: @@ -391,7 +391,7 @@ remote: npm ERR! argv "/tmp/build_a2875fc163b209225122d68916f1d4df/.heroku/node/ In this case, ensure that the file is there with the proper lettercase and that’s not ignored on your local `.gitignore` or `~/.gitignore_global`. -### [Netlify](https://www.netlify.com/) +## [Netlify](https://www.netlify.com/) **To do a manual deploy to Netlify’s CDN:** @@ -420,7 +420,7 @@ To support `pushState`, make sure to create a `public/_redirects` file with the When you build the project, Create React App will place the `public` folder contents into the build output. -### [Now](https://zeit.co/now) +## [Now](https://zeit.co/now) Now offers a zero-configuration single-command deployment. You can use `now` to deploy your app for free. @@ -440,11 +440,11 @@ Now offers a zero-configuration single-command deployment. You can use `now` to Details are available in [this article.](https://zeit.co/blog/unlimited-static) -### [S3](https://aws.amazon.com/s3) and [CloudFront](https://aws.amazon.com/cloudfront/) +## [S3](https://aws.amazon.com/s3) and [CloudFront](https://aws.amazon.com/cloudfront/) See this [blog post](https://medium.com/@omgwtfmarc/deploying-create-react-app-to-s3-or-cloudfront-48dae4ce0af) on how to deploy your React app to Amazon Web Services S3 and CloudFront. -### [Surge](https://surge.sh/) +## [Surge](https://surge.sh/) Install the Surge CLI if you haven’t already by running `npm install -g surge`. Run the `surge` command and log in you or create a new account. diff --git a/docusaurus/docs/developing-components-in-isolation.md b/docusaurus/docs/developing-components-in-isolation.md index 1ec3b9ad79f..1f4be53614f 100644 --- a/docusaurus/docs/developing-components-in-isolation.md +++ b/docusaurus/docs/developing-components-in-isolation.md @@ -18,7 +18,7 @@ Create React App doesn’t include any tools for this by default, but you can ea You can also deploy your Storybook or style guide as a static app. This way, everyone in your team can view and review different states of UI components without starting a backend server or creating an account in your app. -### Getting Started with Storybook +## Getting Started with Storybook Storybook is a development environment for React UI components. It allows you to browse a component library, view the different states of each component, and interactively develop and test components. @@ -43,7 +43,7 @@ Learn more about React Storybook: - [GitHub Repo](https://github.com/storybooks/storybook) - [Snapshot Testing UI](https://github.com/storybooks/storybook/tree/master/addons/storyshots) with Storybook + addon/storyshot -### Getting Started with Styleguidist +## Getting Started with Styleguidist Styleguidist combines a style guide, where all your components are presented on a single page with their props documentation and usage examples, with an environment for developing components in isolation, similar to Storybook. In Styleguidist you write examples in Markdown, where each code snippet is rendered as a live editable playground. diff --git a/docusaurus/docs/importing-a-component.md b/docusaurus/docs/importing-a-component.md index 942957a923d..52767005c08 100644 --- a/docusaurus/docs/importing-a-component.md +++ b/docusaurus/docs/importing-a-component.md @@ -8,7 +8,7 @@ While you can still use `require()` and `module.exports`, we encourage you to us For example: -### `Button.js` +## `Button.js` ```js import React, { Component } from 'react'; @@ -22,7 +22,7 @@ class Button extends Component { export default Button; // Don’t forget to use export default! ``` -### `DangerButton.js` +## `DangerButton.js` ```js import React, { Component } from 'react'; diff --git a/docusaurus/docs/integrating-with-an-api-backend.md b/docusaurus/docs/integrating-with-an-api-backend.md index 4d69cd546c1..450198d509a 100644 --- a/docusaurus/docs/integrating-with-an-api-backend.md +++ b/docusaurus/docs/integrating-with-an-api-backend.md @@ -6,17 +6,17 @@ title: Integrating with an API Backend These tutorials will help you to integrate your app with an API backend running on another port, using `fetch()` to access it. -### Node +## Node Check out [this tutorial](https://www.fullstackreact.com/articles/using-create-react-app-with-a-server/). You can find the companion GitHub repository [here](https://github.com/fullstackreact/food-lookup-demo). -### Ruby on Rails +## Ruby on Rails Check out [this tutorial](https://www.fullstackreact.com/articles/how-to-get-create-react-app-to-work-with-your-rails-api/). You can find the companion GitHub repository [here](https://github.com/fullstackreact/food-lookup-demo-rails). -### API Platform (PHP and Symfony) +## API Platform (PHP and Symfony) [API Platform](https://api-platform.com) is a framework designed to build API-driven projects. It allows to create hypermedia and GraphQL APIs in minutes. diff --git a/docusaurus/docs/making-a-progressive-web-app.md b/docusaurus/docs/making-a-progressive-web-app.md index d290ac08d90..2fe93f4bac1 100644 --- a/docusaurus/docs/making-a-progressive-web-app.md +++ b/docusaurus/docs/making-a-progressive-web-app.md @@ -22,7 +22,7 @@ serviceWorker.unregister(); As the comment states, switching `serviceWorker.unregister()` to `serviceWorker.register()` will opt you in to using the service worker. -### Why Opt-in? +## Why Opt-in? Offline-first Progressive Web Apps are faster and more reliable than traditional web pages, and provide an engaging mobile experience: @@ -42,7 +42,7 @@ for handling all requests for local assets, including for your HTML, ensuring that your web app is consistently fast, even on a slow or unreliable network. -### Offline-First Considerations +## Offline-First Considerations If you do decide to opt-in to service worker registration, please take the following into account: @@ -86,7 +86,7 @@ following into account: cross-origin traffic, like HTTP [API requests](/docs/integrating-with-an-api-backend), images, or embeds loaded from a different domain. -### Progressive Web App Metadata +## Progressive Web App Metadata The default configuration includes a web app manifest located at [`public/manifest.json`](public/manifest.json), that you can customize with diff --git a/docusaurus/docs/proxying-api-requests-in-development.md b/docusaurus/docs/proxying-api-requests-in-development.md index fb1a53a651f..fb6b41c8e07 100644 --- a/docusaurus/docs/proxying-api-requests-in-development.md +++ b/docusaurus/docs/proxying-api-requests-in-development.md @@ -40,7 +40,7 @@ If the `proxy` option is **not** flexible enough for you, alternatively you can: - Enable CORS on your server ([here’s how to do it for Express](http://enable-cors.org/server_expressjs.html)). - Use [environment variables](/docs/adding-custom-environment-variables) to inject the right server host and port into your app. -### "Invalid Host Header" Errors After Configuring Proxy +## "Invalid Host Header" Errors After Configuring Proxy When you enable the `proxy` option, you opt into a more strict set of host checks. This is necessary because leaving the backend open to remote hosts makes your computer vulnerable to DNS rebinding attacks. The issue is explained in [this article](https://medium.com/webpack/webpack-dev-server-middleware-security-issues-1489d950874a) and [this issue](https://github.com/webpack/webpack-dev-server/issues/887). @@ -66,7 +66,7 @@ DANGEROUSLY_DISABLE_HOST_CHECK=true We don’t recommend this approach. -### Configuring the Proxy Manually +## Configuring the Proxy Manually > Note: this feature is available with `react-scripts@2.0.0` and higher. diff --git a/docusaurus/docs/running-tests.md b/docusaurus/docs/running-tests.md index 34cb573bdd4..f5b5efde0c5 100644 --- a/docusaurus/docs/running-tests.md +++ b/docusaurus/docs/running-tests.md @@ -4,8 +4,6 @@ title: Running Tests sidebar_label: Running tests --- -## Running Tests - > Note: this feature is available with `react-scripts@0.3.0` and higher.<br> > [Read the migration guide to learn how to enable it in older projects!](https://github.com/facebook/create-react-app/blob/master/CHANGELOG.md#migrating-from-023-to-030) @@ -18,7 +16,7 @@ While Jest provides browser globals such as `window` thanks to [jsdom](https://g We recommend that you use a separate tool for browser end-to-end tests if you need them. They are beyond the scope of Create React App. -### Filename Conventions +## Filename Conventions Jest will look for test files with any of the following popular naming conventions: @@ -30,7 +28,7 @@ The `.test.js` / `.spec.js` files (or the `__tests__` folders) can be located at We recommend to put the test files (or `__tests__` folders) next to the code they are testing so that relative imports appear shorter. For example, if `App.test.js` and `App.js` are in the same folder, the test just needs to `import App from './App'` instead of a long relative path. Colocation also helps find tests more quickly in larger projects. -### Command Line Interface +## Command Line Interface When you run `npm test`, Jest will launch in the watch mode. Every time you save a file, it will re-run the tests, just like `npm start` recompiles the code. @@ -38,7 +36,7 @@ The watcher includes an interactive command-line interface with the ability to r ![Jest watch mode](http://facebook.github.io/jest/img/blog/15-watch.gif) -### Version Control Integration +## Version Control Integration By default, when you run `npm test`, Jest will only run the tests related to files changed since the last commit. This is an optimization designed to make your tests run fast regardless of how many tests you have. However it assumes that you don’t often commit the code that doesn’t pass the tests. @@ -46,7 +44,7 @@ Jest will always explicitly mention that it only ran tests related to the files Jest will always run all tests on a [continuous integration](#continuous-integration) server or if the project is not inside a Git or Mercurial repository. -### Writing Tests +## Writing Tests To create tests, add `it()` (or `test()`) blocks with the name of the test and its code. You may optionally wrap them in `describe()` blocks for logical grouping but this is neither required nor recommended. @@ -64,7 +62,7 @@ it('sums numbers', () => { All `expect()` matchers supported by Jest are [extensively documented here](https://facebook.github.io/jest/docs/en/expect.html#content).<br> You can also use [`jest.fn()` and `expect(fn).toBeCalled()`](https://facebook.github.io/jest/docs/en/expect.html#tohavebeencalled) to create “spies” or mock functions. -### Testing Components +## Testing Components There is a broad spectrum of component testing techniques. They range from a “smoke test” verifying that a component renders without throwing, to shallow rendering and testing some of the output, to full rendering and testing component lifecycle and state changes. @@ -101,7 +99,7 @@ As of Enzyme 3, you will need to install Enzyme along with an Adapter correspond The adapter will also need to be configured in your [global setup file](#initializing-test-environment): -#### `src/setupTests.js` +### `src/setupTests.js` ```js import { configure } from 'enzyme'; @@ -170,7 +168,7 @@ Import it in [`src/setupTests.js`](#initializing-test-environment) to make its m import 'jest-enzyme'; ``` -### Using Third Party Assertion Libraries +## Using Third Party Assertion Libraries We recommend that you use `expect()` for assertions and `jest.fn()` for spies. If you are having issues with them please [file those against Jest](https://github.com/facebook/jest/issues/new), and we’ll fix them. We intend to keep making them better for React, supporting, for example, [pretty-printing React elements as JSX](https://github.com/facebook/jest/pull/1566). @@ -183,7 +181,7 @@ import { expect } from 'chai'; and then use them in your tests like you normally do. -### Initializing Test Environment +## Initializing Test Environment > Note: this feature is available with `react-scripts@0.4.0` and higher. @@ -191,7 +189,7 @@ If your app uses a browser API that you need to mock in your tests or if you jus For example: -#### `src/setupTests.js` +### `src/setupTests.js` ```js const localStorageMock = { @@ -211,12 +209,12 @@ global.localStorage = localStorageMock; > } > ``` -### Focusing and Excluding Tests +## Focusing and Excluding Tests You can replace `it()` with `xit()` to temporarily exclude a test from being executed.<br> Similarly, `fit()` lets you focus on a specific test without running any other tests. -### Coverage Reporting +## Coverage Reporting Jest has an integrated coverage reporter that works well with ES6 and requires no configuration.<br> Run `npm test -- --coverage` (note extra `--` in the middle) to include a coverage report like this: @@ -225,7 +223,7 @@ Run `npm test -- --coverage` (note extra `--` in the middle) to include a covera Note that tests run much slower with coverage so it is recommended to run it separately from your normal workflow. -#### Configuration +### Configuration The default Jest coverage configuration can be overridden by adding any of the following supported keys to a Jest config in your package.json. @@ -261,7 +259,7 @@ Example package.json: } ``` -### Continuous Integration +## Continuous Integration By default `npm test` runs the watcher with interactive CLI. However, you can force it to run tests once and finish the process by setting an environment variable called `CI`. @@ -269,9 +267,9 @@ When creating a build of your application with `npm run build` linter warnings a Popular CI servers already set the environment variable `CI` by default but you can do this yourself too: -### On CI servers +## On CI servers -#### Travis CI +### Travis CI 1. Following the [Travis Getting started](https://docs.travis-ci.com/user/getting-started/) guide for syncing your GitHub repository with Travis. You may need to initialize some settings manually in your [profile](https://travis-ci.org/profile) page. 1. Add a `.travis.yml` file to your git repository. @@ -291,13 +289,13 @@ script: 1. Trigger your first build with a git push. 1. [Customize your Travis CI Build](https://docs.travis-ci.com/user/customizing-the-build/) if needed. -#### CircleCI +### CircleCI Follow [this article](https://medium.com/@knowbody/circleci-and-zeits-now-sh-c9b7eebcd3c1) to set up CircleCI with a Create React App project. -### On your own environment +## On your own environment -##### Windows (cmd.exe) +#### Windows (cmd.exe) ```cmd set CI=true&&npm test @@ -309,7 +307,7 @@ set CI=true&&npm run build (Note: the lack of whitespace is intentional.) -##### Windows (Powershell) +#### Windows (Powershell) ```Powershell ($env:CI = $true) -and (npm test) @@ -319,7 +317,7 @@ set CI=true&&npm run build ($env:CI = $true) -and (npm run build) ``` -##### Linux, macOS (Bash) +#### Linux, macOS (Bash) ```bash CI=true npm test @@ -335,7 +333,7 @@ The test command will force Jest to run tests once instead of launching the watc The build command will check for linter warnings and fail if any are found. -### Disabling jsdom +## Disabling jsdom If you know that none of your tests depend on [jsdom](https://github.com/tmpvar/jsdom), you can safely set `--env=node`, and your tests will run faster: @@ -361,11 +359,11 @@ In contrast, **jsdom is not needed** for the following APIs: Finally, jsdom is also not needed for [snapshot testing](http://facebook.github.io/jest/blog/2016/07/27/jest-14.html). -### Snapshot Testing +## Snapshot Testing Snapshot testing is a feature of Jest that automatically generates text snapshots of your components and saves them on the disk so if the UI output changes, you get notified without manually writing any assertions on the component output. [Read more about snapshot testing.](http://facebook.github.io/jest/blog/2016/07/27/jest-14.html) -### Editor Integration +## Editor Integration If you use [Visual Studio Code](https://code.visualstudio.com), there is a [Jest extension](https://github.com/orta/vscode-jest) which works with Create React App out of the box. This provides a lot of IDE-like features while using a text editor: showing the status of a test run with potential fail messages inline, starting and stopping the watcher automatically, and offering one-click snapshot updates. diff --git a/docusaurus/docs/troubleshooting.md b/docusaurus/docs/troubleshooting.md index f0ea55a7019..47964b0ff7c 100644 --- a/docusaurus/docs/troubleshooting.md +++ b/docusaurus/docs/troubleshooting.md @@ -4,7 +4,7 @@ title: Troubleshooting sidebar_label: Troubleshooting --- -### `npm start` doesn’t detect changes +## `npm start` doesn’t detect changes When you save a file while `npm start` is running, the browser should refresh with the updated code.<br> If this doesn’t happen, try one of the following workarounds: @@ -18,7 +18,7 @@ If this doesn’t happen, try one of the following workarounds: If none of these solutions help please leave a comment [in this thread](https://github.com/facebook/create-react-app/issues/659). -### `npm test` hangs or crashes on macOS Sierra +## `npm test` hangs or crashes on macOS Sierra If you run `npm test` and the console gets stuck after printing `react-scripts test` to the console there might be a problem with your [Watchman](https://facebook.github.io/watchman/) installation as described in [facebook/create-react-app#713](https://github.com/facebook/create-react-app/issues/713). @@ -42,7 +42,7 @@ If this still doesn’t help, try running `launchctl unload -F ~/Library/LaunchA There are also reports that _uninstalling_ Watchman fixes the issue. So if nothing else helps, remove it from your system and try again. -### `npm run build` exits too early +## `npm run build` exits too early It is reported that `npm run build` can fail on machines with limited memory and no swap space, which is common in cloud environments. Even with small projects this command can increase RAM usage in your system by hundreds of megabytes, so if you have less than 1 GB of available memory your build is likely to fail with the following message: @@ -50,12 +50,12 @@ It is reported that `npm run build` can fail on machines with limited memory and If you are completely sure that you didn't terminate the process, consider [adding some swap space](https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04) to the machine you’re building on, or build the project locally. -### `npm run build` fails on Heroku +## `npm run build` fails on Heroku This may be a problem with case sensitive filenames. Please refer to [this section](/docs/deployment#resolving-heroku-deployment-errors). -### Moment.js locales are missing +## Moment.js locales are missing If you use a [Moment.js](https://momentjs.com/), you might notice that only the English locale is available by default. This is because the locale files are large, and you probably only need a subset of [all the locales provided by Moment.js](https://momentjs.com/#multiple-locale-support). @@ -81,7 +81,7 @@ moment.locale('fr'); This will only work for locales that have been explicitly imported before. -### `npm run build` fails to minify +## `npm run build` fails to minify Before `react-scripts@2.0.0`, this problem was caused by third party `node_modules` using modern JavaScript features because the minifier couldn't handle them during the build. This has been solved by compiling standard modern JavaScript features inside `node_modules` in `react-scripts@2.0.0` and higher. diff --git a/docusaurus/docs/using-https-in-development.md b/docusaurus/docs/using-https-in-development.md index 182b6a3e7fc..64b7bf217a8 100644 --- a/docusaurus/docs/using-https-in-development.md +++ b/docusaurus/docs/using-https-in-development.md @@ -9,7 +9,7 @@ You may require the dev server to serve pages over HTTPS. One particular case wh To do this, set the `HTTPS` environment variable to `true`, then start the dev server as usual with `npm start`: -#### Windows (cmd.exe) +### Windows (cmd.exe) ```cmd set HTTPS=true&&npm start @@ -17,13 +17,13 @@ set HTTPS=true&&npm start (Note: the lack of whitespace is intentional.) -#### Windows (Powershell) +### Windows (Powershell) ```Powershell ($env:HTTPS = $true) -and (npm start) ``` -#### Linux, macOS (Bash) +### Linux, macOS (Bash) ```bash HTTPS=true npm start diff --git a/docusaurus/docs/using-the-public-folder.md b/docusaurus/docs/using-the-public-folder.md index cef6be375fb..2d8b0ba36fc 100644 --- a/docusaurus/docs/using-the-public-folder.md +++ b/docusaurus/docs/using-the-public-folder.md @@ -5,12 +5,12 @@ title: Using the `public` Folder > Note: this feature is available with `react-scripts@0.5.0` and higher. -### Changing the HTML +## Changing the HTML The `public` folder contains the HTML file so you can tweak it, for example, to [set the page title](/docs/changing-the-page-title). The `<script>` tag with the compiled code will be added to it automatically during the build process. -### Adding Assets Outside of the Module System +## Adding Assets Outside of the Module System You can also add other assets to the `public` folder. @@ -53,7 +53,7 @@ Keep in mind the downsides of this approach: - Missing files will not be called at compilation time, and will cause 404 errors for your users. - Result filenames won’t include content hashes so you’ll need to add query arguments or rename them every time they change. -### When to Use the `public` Folder +## When to Use the `public` Folder Normally we recommend importing [stylesheets](/docs/adding-a-stylesheet), [images, and fonts](/docs/adding-images-fonts-and-files) from JavaScript. The `public` folder is useful as a workaround for a number of less common cases: From 6fc577c1df6390f78c3a0dc40de78b5f2136228b Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk <selbeezy@gmail.com> Date: Sun, 7 Oct 2018 20:51:45 +0200 Subject: [PATCH 0307/1249] Remove temporary readme file --- docusaurus/docs/README.md | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 docusaurus/docs/README.md diff --git a/docusaurus/docs/README.md b/docusaurus/docs/README.md deleted file mode 100644 index da362138798..00000000000 --- a/docusaurus/docs/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Nothing to see here right now - -Please refer to the [Readme](https://github.com/facebook/create-react-app/blob/master/README.md) or the [User Guide](https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md). From ffc63d55976f9cbcce7f33dc7c45b3c2190a5924 Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk <selbeezy@gmail.com> Date: Mon, 8 Oct 2018 18:40:09 +0200 Subject: [PATCH 0308/1249] Add Inc to copyright notice --- docusaurus/website/siteConfig.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/website/siteConfig.js b/docusaurus/website/siteConfig.js index cbaf69d0395..5c59bc8ab47 100644 --- a/docusaurus/website/siteConfig.js +++ b/docusaurus/website/siteConfig.js @@ -60,7 +60,7 @@ const siteConfig = { */ // This copyright info is used in /core/Footer.js and blog RSS/Atom feeds. - copyright: `Copyright © ${new Date().getFullYear()} Facebook`, + copyright: `Copyright © ${new Date().getFullYear()} Facebook Inc.`, highlight: { // Highlight.js theme to use for syntax highlighting in code blocks. From 6c17abdbd174605c0454873f446142d37ab7ae49 Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk <selbeezy@gmail.com> Date: Mon, 8 Oct 2018 18:44:30 +0200 Subject: [PATCH 0309/1249] Add underlines for post links --- docusaurus/website/static/css/custom.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docusaurus/website/static/css/custom.css b/docusaurus/website/static/css/custom.css index 85626861f9b..faec652e6bf 100644 --- a/docusaurus/website/static/css/custom.css +++ b/docusaurus/website/static/css/custom.css @@ -15,6 +15,10 @@ color: inherit; } +.post a { + text-decoration: underline; +} + @media only screen and (min-device-width: 360px) and (max-device-width: 736px) { } From 9971653775a4fc0d334e4951b3d72ff7ef7d8be7 Mon Sep 17 00:00:00 2001 From: Alex Forbes-Reed <github@alx.red> Date: Mon, 8 Oct 2018 17:48:15 +0100 Subject: [PATCH 0310/1249] Add environment variable to optionaly disable inlining of chunks (#5354) * Add environment variable to optionaly disable inlining of chunks * Changed env var to `process.env.INLINE_RUNTIME_CHUNK ` * Added env var to Advanced Configuration in docs * Drop implied behavior * Tweak working to match other descriptions --- .../config/webpack.config.prod.js | 7 ++++-- packages/react-scripts/template/README.md | 25 ++++++++++--------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/packages/react-scripts/config/webpack.config.prod.js b/packages/react-scripts/config/webpack.config.prod.js index a9133cba556..ec3c19c36c1 100644 --- a/packages/react-scripts/config/webpack.config.prod.js +++ b/packages/react-scripts/config/webpack.config.prod.js @@ -37,6 +37,9 @@ const publicPath = paths.servedPath; const shouldUseRelativeAssetPaths = publicPath === './'; // Source maps are resource heavy and can cause out of memory issue for large source files. const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== 'false'; +// Some apps do not need the benefits of saving a web request, so not inlining the chunk +// makes for a smoother build process. +const shouldInlineRuntimeChunk = process.env.INLINE_RUNTIME_CHUNK !== 'false'; // `publicUrl` is just like `publicPath`, but we will provide it to our app // as %PUBLIC_URL% in `index.html` and `process.env.PUBLIC_URL` in JavaScript. // Omit trailing slash as %PUBLIC_URL%/xyz looks better than %PUBLIC_URL%xyz. @@ -473,7 +476,7 @@ module.exports = { }), // Inlines the webpack runtime script. This script is too small to warrant // a network request. - new InlineChunkHtmlPlugin(HtmlWebpackPlugin, [/runtime~.+[.]js/]), + shouldInlineRuntimeChunk && new InlineChunkHtmlPlugin(HtmlWebpackPlugin, [/runtime~.+[.]js/]), // Makes some environment variables available in index.html. // The public URL is available as %PUBLIC_URL% in index.html, e.g.: // <link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico"> @@ -522,7 +525,7 @@ module.exports = { new RegExp('/[^/]+\\.[^/]+$'), ], }), - ], + ].filter(Boolean), // Some libraries import Node modules but don't use them in the browser. // Tell Webpack to provide empty mocks for them so importing them works. node: { diff --git a/packages/react-scripts/template/README.md b/packages/react-scripts/template/README.md index c037518f88c..c591bbf0d00 100644 --- a/packages/react-scripts/template/README.md +++ b/packages/react-scripts/template/README.md @@ -2447,18 +2447,19 @@ Note that in order to support routers that use HTML5 `pushState` API, you may wa You can adjust various development and production settings by setting environment variables in your shell or with [.env](#adding-development-environment-variables-in-env). -| Variable | Development | Production | Usage | -| :------------------ | :--------------------: | :----------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| BROWSER | :white_check_mark: | :x: | By default, Create React App will open the default system browser, favoring Chrome on macOS. Specify a [browser](https://github.com/sindresorhus/opn#app) to override this behavior, or set it to `none` to disable it completely. If you need to customize the way the browser is launched, you can specify a node script instead. Any arguments passed to `npm start` will also be passed to this script, and the url where your app is served will be the last argument. Your script's file name must have the `.js` extension. | -| HOST | :white_check_mark: | :x: | By default, the development web server binds to `localhost`. You may use this variable to specify a different host. | -| PORT | :white_check_mark: | :x: | By default, the development web server will attempt to listen on port 3000 or prompt you to attempt the next available port. You may use this variable to specify a different port. | -| HTTPS | :white_check_mark: | :x: | When set to `true`, Create React App will run the development server in `https` mode. | -| PUBLIC_URL | :x: | :white_check_mark: | Create React App assumes your application is hosted at the serving web server's root or a subpath as specified in [`package.json` (`homepage`)](#building-for-relative-paths). Normally, Create React App ignores the hostname. You may use this variable to force assets to be referenced verbatim to the url you provide (hostname included). This may be particularly useful when using a CDN to host your application. | -| CI | :large_orange_diamond: | :white_check_mark: | When set to `true`, Create React App treats warnings as failures in the build. It also makes the test runner non-watching. Most CIs set this flag by default. | -| REACT_EDITOR | :white_check_mark: | :x: | When an app crashes in development, you will see an error overlay with clickable stack trace. When you click on it, Create React App will try to determine the editor you are using based on currently running processes, and open the relevant source file. You can [send a pull request to detect your editor of choice](https://github.com/facebook/create-react-app/issues/2636). Setting this environment variable overrides the automatic detection. If you do it, make sure your systems [PATH](<https://en.wikipedia.org/wiki/PATH_(variable)>) environment variable points to your editor’s bin folder. You can also set it to `none` to disable it completely. | -| CHOKIDAR_USEPOLLING | :white_check_mark: | :x: | When set to `true`, the watcher runs in polling mode, as necessary inside a VM. Use this option if `npm start` isn't detecting changes. | -| GENERATE_SOURCEMAP | :x: | :white_check_mark: | When set to `false`, source maps are not generated for a production build. This solves OOM issues on some smaller machines. | -| NODE_PATH | :white_check_mark: | :white_check_mark: | Same as [`NODE_PATH` in Node.js](https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders), but only relative folders are allowed. Can be handy for emulating a monorepo setup by setting `NODE_PATH=src`. | +| Variable | Development | Production | Usage | +| :------------------: | :--------------------: | :----------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| BROWSER | :white_check_mark: | :x: | By default, Create React App will open the default system browser, favoring Chrome on macOS. Specify a [browser](https://github.com/sindresorhus/opn#app) to override this behavior, or set it to `none` to disable it completely. If you need to customize the way the browser is launched, you can specify a node script instead. Any arguments passed to `npm start` will also be passed to this script, and the url where your app is served will be the last argument. Your script's file name must have the `.js` extension. | +| HOST | :white_check_mark: | :x: | By default, the development web server binds to `localhost`. You may use this variable to specify a different host. | +| PORT | :white_check_mark: | :x: | By default, the development web server will attempt to listen on port 3000 or prompt you to attempt the next available port. You may use this variable to specify a different port. | +| HTTPS | :white_check_mark: | :x: | When set to `true`, Create React App will run the development server in `https` mode. | +| PUBLIC_URL | :x: | :white_check_mark: | Create React App assumes your application is hosted at the serving web server's root or a subpath as specified in [`package.json` (`homepage`)](#building-for-relative-paths). Normally, Create React App ignores the hostname. You may use this variable to force assets to be referenced verbatim to the url you provide (hostname included). This may be particularly useful when using a CDN to host your application. | +| CI | :large_orange_diamond: | :white_check_mark: | When set to `true`, Create React App treats warnings as failures in the build. It also makes the test runner non-watching. Most CIs set this flag by default. | +| REACT_EDITOR | :white_check_mark: | :x: | When an app crashes in development, you will see an error overlay with clickable stack trace. When you click on it, Create React App will try to determine the editor you are using based on currently running processes, and open the relevant source file. You can [send a pull request to detect your editor of choice](https://github.com/facebook/create-react-app/issues/2636). Setting this environment variable overrides the automatic detection. If you do it, make sure your systems [PATH](<https://en.wikipedia.org/wiki/PATH_(variable)>) environment variable points to your editor’s bin folder. You can also set it to `none` to disable it completely. | +| CHOKIDAR_USEPOLLING | :white_check_mark: | :x: | When set to `true`, the watcher runs in polling mode, as necessary inside a VM. Use this option if `npm start` isn't detecting changes. | +| GENERATE_SOURCEMAP | :x: | :white_check_mark: | When set to `false`, source maps are not generated for a production build. This solves OOM issues on some smaller machines. | +| NODE_PATH | :white_check_mark: | :white_check_mark: | Same as [`NODE_PATH` in Node.js](https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders), but only relative folders are allowed. Can be handy for emulating a monorepo setup by setting `NODE_PATH=src`. | +| INLINE_RUNTIME_CHUNK | :x: | :white_check_mark: | By default, Create React App will embed the runtime script into `index.html` during the production build. When set to `false`, the script will not be embedded and will be imported as usual. This is normally required when dealing with CSP. | ## Troubleshooting From 92afadfe8426a0d1e11eaefa9b76a24bf1813b69 Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk <selbeezy@gmail.com> Date: Mon, 8 Oct 2018 18:59:12 +0200 Subject: [PATCH 0311/1249] Create a new Styles and Assets sidebar category --- docusaurus/website/sidebars.json | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/docusaurus/website/sidebars.json b/docusaurus/website/sidebars.json index cbeb4788cd1..dceec455ff0 100644 --- a/docusaurus/website/sidebars.json +++ b/docusaurus/website/sidebars.json @@ -19,17 +19,19 @@ "developing-components-in-isolation", "analyzing-the-bundle-size" ], - "How-to": [ - "changing-the-page-title", - "installing-a-dependency", - "importing-a-component", - "code-splitting", + "Styles and Assets": [ "adding-a-stylesheet", "adding-a-css-modules-stylesheet", "adding-a-sass-stylesheet", "post-processing-css", "adding-images-fonts-and-files", "using-the-public-folder", + "code-splitting" + ], + "How-to": [ + "changing-the-page-title", + "installing-a-dependency", + "importing-a-component", "using-global-variables", "adding-bootstrap", "adding-flow", From f05b4eeb523af14d667b96e1255b812c3169d2d5 Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk <selbeezy@gmail.com> Date: Mon, 8 Oct 2018 19:04:54 +0200 Subject: [PATCH 0312/1249] Create two new categories for the sidebar --- docusaurus/website/sidebars.json | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/docusaurus/website/sidebars.json b/docusaurus/website/sidebars.json index dceec455ff0..5705f03da17 100644 --- a/docusaurus/website/sidebars.json +++ b/docusaurus/website/sidebars.json @@ -15,9 +15,9 @@ "lint-output-in-the-editor", "debugging-in-the-editor", "formatting-code-automatically", - "proxying-api-requests-in-development", "developing-components-in-isolation", - "analyzing-the-bundle-size" + "analyzing-the-bundle-size", + "using-https-in-development" ], "Styles and Assets": [ "adding-a-stylesheet", @@ -28,8 +28,7 @@ "using-the-public-folder", "code-splitting" ], - "How-to": [ - "changing-the-page-title", + "Building your App": [ "installing-a-dependency", "importing-a-component", "using-global-variables", @@ -38,19 +37,24 @@ "adding-relay", "adding-a-router", "adding-custom-environment-variables", - "can-i-use-decorators", + "making-a-progressive-web-app" + ], + "Back-End Integration": [ + "proxying-api-requests-in-development", "fetching-data-with-ajax-requests", "integrating-with-an-api-backend", - "using-https-in-development", + "changing-the-page-title", "generating-dynamic-meta-tags-on-the-server", + "injecting-data-from-the-server-into-the-page" + ], + "Testing": ["running-tests", "debugging-tests"], + "Deployment": ["publishing-components-to-npm", "deployment"], + "Advanced Usage": [ + "can-i-use-decorators", "pre-rendering-into-static-html-files", - "injecting-data-from-the-server-into-the-page", - "making-a-progressive-web-app", "advanced-configuration", "alternatives-to-ejecting" ], - "Testing": ["running-tests", "debugging-tests"], - "Deployment": ["publishing-components-to-npm", "deployment"], "Support": [ "troubleshooting", "updating-to-new-releases", From 964d2fb9c9a693552f278f97043dfacf2f319ac9 Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk <selbeezy@gmail.com> Date: Mon, 8 Oct 2018 19:12:00 +0200 Subject: [PATCH 0313/1249] Combine the supported browsers and language features pages --- docusaurus/docs/supported-browsers.md | 7 ------- docusaurus/docs/supported-language-features.md | 12 ++++++++++-- docusaurus/website/i18n/en.json | 16 +++++++--------- docusaurus/website/sidebars.json | 5 ++--- 4 files changed, 19 insertions(+), 21 deletions(-) delete mode 100644 docusaurus/docs/supported-browsers.md diff --git a/docusaurus/docs/supported-browsers.md b/docusaurus/docs/supported-browsers.md deleted file mode 100644 index dc4fa063d40..00000000000 --- a/docusaurus/docs/supported-browsers.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -id: supported-browsers -title: Supported Browsers ---- - -By default, the generated project supports all modern browsers.<br> -Support for Internet Explorer 9, 10, and 11 requires [polyfills](https://github.com/facebook/create-react-app/blob/master/packages/react-app-polyfill/README.md). diff --git a/docusaurus/docs/supported-language-features.md b/docusaurus/docs/supported-language-features.md index 2bdb27a6a44..e82b9b5e140 100644 --- a/docusaurus/docs/supported-language-features.md +++ b/docusaurus/docs/supported-language-features.md @@ -1,8 +1,16 @@ --- -id: supported-language-features -title: Supported Language Features +id: supported-browsers-features +title: Supported Browsers and Features +sidebar_label: Browsers and Features --- +## Supported Browsers + +By default, the generated project supports all modern browsers.<br> +Support for Internet Explorer 9, 10, and 11 requires [polyfills](https://github.com/facebook/create-react-app/blob/master/packages/react-app-polyfill/README.md). + +## Supported Language Features + This project supports a superset of the latest JavaScript standard.<br> In addition to [ES6](https://github.com/lukehoban/es6features) syntax features, it also supports: diff --git a/docusaurus/website/i18n/en.json b/docusaurus/website/i18n/en.json index 2e9f00cab6d..77372702a32 100644 --- a/docusaurus/website/i18n/en.json +++ b/docusaurus/website/i18n/en.json @@ -123,9 +123,6 @@ "title": "Publishing components to npm", "sidebar_label": "Publishing to npm" }, - "README": { - "title": "README" - }, "running-tests": { "title": "Running Tests", "sidebar_label": "Running tests" @@ -138,11 +135,9 @@ "title": "Something missing?", "sidebar_label": "Something missing?" }, - "supported-browsers": { - "title": "Supported Browsers" - }, - "supported-language-features": { - "title": "Supported Language Features" + "supported-browsers-features": { + "title": "Supported Browsers and Features", + "sidebar_label": "Browsers and Features" }, "syntax-highlighting-in-the-editor": { "title": "Syntax highlighting in the editor", @@ -174,9 +169,12 @@ "Welcome": "Welcome", "Getting Started": "Getting Started", "Development": "Development", - "How-to": "How-to", + "Styles and Assets": "Styles and Assets", + "Building your App": "Building your App", + "Back-End Integration": "Back-End Integration", "Testing": "Testing", "Deployment": "Deployment", + "Advanced Usage": "Advanced Usage", "Support": "Support" } }, diff --git a/docusaurus/website/sidebars.json b/docusaurus/website/sidebars.json index 5705f03da17..8e0205fa97c 100644 --- a/docusaurus/website/sidebars.json +++ b/docusaurus/website/sidebars.json @@ -7,8 +7,8 @@ "getting-started", "folder-structure", "available-scripts", - "supported-browsers", - "supported-language-features" + "supported-browsers-features", + "updating-to-new-releases" ], "Development": [ "syntax-highlighting-in-the-editor", @@ -57,7 +57,6 @@ ], "Support": [ "troubleshooting", - "updating-to-new-releases", "sending-feedback", "something-missing" ] From 559446099db0682251d24d56255c557c8b03604c Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk <selbeezy@gmail.com> Date: Mon, 8 Oct 2018 19:24:29 +0200 Subject: [PATCH 0314/1249] Combine a few articles on setting up your editor --- docusaurus/docs/debugging-in-the-editor.md | 50 ------- .../docs/formatting-code-automatically.md | 54 -------- docusaurus/docs/lint-output-in-the-editor.md | 26 ---- docusaurus/docs/setting-up-your-editor.md | 131 ++++++++++++++++++ .../docs/syntax-highlighting-in-the-editor.md | 7 - docusaurus/website/i18n/en.json | 19 +-- docusaurus/website/sidebars.json | 5 +- 7 files changed, 136 insertions(+), 156 deletions(-) delete mode 100644 docusaurus/docs/debugging-in-the-editor.md delete mode 100644 docusaurus/docs/formatting-code-automatically.md delete mode 100644 docusaurus/docs/lint-output-in-the-editor.md create mode 100644 docusaurus/docs/setting-up-your-editor.md delete mode 100644 docusaurus/docs/syntax-highlighting-in-the-editor.md diff --git a/docusaurus/docs/debugging-in-the-editor.md b/docusaurus/docs/debugging-in-the-editor.md deleted file mode 100644 index 7ce53f9eb80..00000000000 --- a/docusaurus/docs/debugging-in-the-editor.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -id: debugging-in-the-editor -title: Debugging in the Editor ---- - -**This feature is currently only supported by [Visual Studio Code](https://code.visualstudio.com) and [WebStorm](https://www.jetbrains.com/webstorm/).** - -Visual Studio Code and WebStorm support debugging out of the box with Create React App. This enables you as a developer to write and debug your React code without leaving the editor, and most importantly it enables you to have a continuous development workflow, where context switching is minimal, as you don’t have to switch between tools. - -## Visual Studio Code - -You would need to have the latest version of [VS Code](https://code.visualstudio.com) and VS Code [Chrome Debugger Extension](https://marketplace.visualstudio.com/items?itemName=msjsdiag.debugger-for-chrome) installed. - -Then add the block below to your `launch.json` file and put it inside the `.vscode` folder in your app’s root directory. - -```json -{ - "version": "0.2.0", - "configurations": [ - { - "name": "Chrome", - "type": "chrome", - "request": "launch", - "url": "http://localhost:3000", - "webRoot": "${workspaceRoot}/src", - "sourceMapPathOverrides": { - "webpack:///src/*": "${webRoot}/*" - } - } - ] -} -``` - -> Note: the URL may be different if you've made adjustments via the [HOST or PORT environment variables](/docs/advanced-configuration). - -Start your app by running `npm start`, and start debugging in VS Code by pressing `F5` or by clicking the green debug icon. You can now write code, set breakpoints, make changes to the code, and debug your newly modified code—all from your editor. - -Having problems with VS Code Debugging? Please see their [troubleshooting guide](https://github.com/Microsoft/vscode-chrome-debug/blob/master/README.md#troubleshooting). - -## WebStorm - -You would need to have [WebStorm](https://www.jetbrains.com/webstorm/) and [JetBrains IDE Support](https://chrome.google.com/webstore/detail/jetbrains-ide-support/hmhgeddbohgjknpmjagkdomcpobmllji) Chrome extension installed. - -In the WebStorm menu `Run` select `Edit Configurations...`. Then click `+` and select `JavaScript Debug`. Paste `http://localhost:3000` into the URL field and save the configuration. - -> Note: the URL may be different if you've made adjustments via the [HOST or PORT environment variables](/docs/advanced-configuration). - -Start your app by running `npm start`, then press `^D` on macOS or `F9` on Windows and Linux or click the green debug icon to start debugging in WebStorm. - -The same way you can debug your application in IntelliJ IDEA Ultimate, PhpStorm, PyCharm Pro, and RubyMine. diff --git a/docusaurus/docs/formatting-code-automatically.md b/docusaurus/docs/formatting-code-automatically.md deleted file mode 100644 index 763b71efc18..00000000000 --- a/docusaurus/docs/formatting-code-automatically.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -id: formatting-code-automatically -title: Formatting Code Automatically -sidebar_label: Formatting code ---- - -Prettier is an opinionated code formatter with support for JavaScript, CSS and JSON. With Prettier you can format the code you write automatically to ensure a code style within your project. See the [Prettier's GitHub page](https://github.com/prettier/prettier) for more information, and look at this [page to see it in action](https://prettier.github.io/prettier/). - -To format our code whenever we make a commit in git, we need to install the following dependencies: - -```sh -npm install --save husky lint-staged prettier -``` - -Alternatively you may use `yarn`: - -```sh -yarn add husky lint-staged prettier -``` - -- `husky` makes it easy to use githooks as if they are npm scripts. -- `lint-staged` allows us to run scripts on staged files in git. See this [blog post about lint-staged to learn more about it](https://medium.com/@okonetchnikov/make-linting-great-again-f3890e1ad6b8). -- `prettier` is the JavaScript formatter we will run before commits. - -Now we can make sure every file is formatted correctly by adding a few lines to the `package.json` in the project root. - -Add the following field to the `package.json` section: - -```diff -+ "husky": { -+ "hooks": { -+ "pre-commit": "lint-staged" -+ } -+ } -``` - -Next we add a 'lint-staged' field to the `package.json`, for example: - -```diff - "dependencies": { - // ... - }, -+ "lint-staged": { -+ "src/**/*.{js,jsx,json,css}": [ -+ "prettier --single-quote --write", -+ "git add" -+ ] -+ }, - "scripts": { -``` - -Now, whenever you make a commit, Prettier will format the changed files automatically. You can also run `./node_modules/.bin/prettier --single-quote --write "src/**/*.{js,jsx}"` to format your entire project for the first time. - -Next you might want to integrate Prettier in your favorite editor. Read the section on [Editor Integration](https://prettier.io/docs/en/editors.html) on the Prettier GitHub page. diff --git a/docusaurus/docs/lint-output-in-the-editor.md b/docusaurus/docs/lint-output-in-the-editor.md deleted file mode 100644 index 8e24a1ecd36..00000000000 --- a/docusaurus/docs/lint-output-in-the-editor.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -id: lint-output-in-the-editor -title: Displaying Lint Output in the Editor -sidebar_label: In-editor linting ---- - -> Note: this feature is available with `react-scripts@0.2.0` and higher.<br> -> It also only works with npm 3 or higher. - -Some editors, including Sublime Text, Atom, and Visual Studio Code, provide plugins for ESLint. - -They are not required for linting. You should see the linter output right in your terminal as well as the browser console. However, if you prefer the lint results to appear right in your editor, there are some extra steps you can do. - -You would need to install an ESLint plugin for your editor first. Then, add a file called `.eslintrc` to the project root: - -```js -{ - "extends": "react-app" -} -``` - -Now your editor should report the linting warnings. - -Note that even if you edit your `.eslintrc` file further, these changes will **only affect the editor integration**. They won’t affect the terminal and in-browser lint output. This is because Create React App intentionally provides a minimal set of rules that find common mistakes. - -If you want to enforce a coding style for your project, consider using [Prettier](https://github.com/jlongster/prettier) instead of ESLint style rules. diff --git a/docusaurus/docs/setting-up-your-editor.md b/docusaurus/docs/setting-up-your-editor.md new file mode 100644 index 00000000000..b7ee4e620f7 --- /dev/null +++ b/docusaurus/docs/setting-up-your-editor.md @@ -0,0 +1,131 @@ +--- +id: setting-up-your-editor +title: Setting up your Editor +sidebar_label: Setting up your Editor +--- + +## Syntax highlighting + +To configure the syntax highlighting in your favorite text editor, head to the [relevant Babel documentation page](https://babeljs.io/docs/editors) and follow the instructions. Some of the most popular editors are covered. + +## Displaying Lint Output in the Editor + +> Note: this feature is available with `react-scripts@0.2.0` and higher.<br> +> It also only works with npm 3 or higher. + +Some editors, including Sublime Text, Atom, and Visual Studio Code, provide plugins for ESLint. + +They are not required for linting. You should see the linter output right in your terminal as well as the browser console. However, if you prefer the lint results to appear right in your editor, there are some extra steps you can do. + +You would need to install an ESLint plugin for your editor first. Then, add a file called `.eslintrc` to the project root: + +```js +{ + "extends": "react-app" +} +``` + +Now your editor should report the linting warnings. + +Note that even if you edit your `.eslintrc` file further, these changes will **only affect the editor integration**. They won’t affect the terminal and in-browser lint output. This is because Create React App intentionally provides a minimal set of rules that find common mistakes. + +If you want to enforce a coding style for your project, consider using [Prettier](https://github.com/jlongster/prettier) instead of ESLint style rules. + +## Debugging in the Editor + +**This feature is currently only supported by [Visual Studio Code](https://code.visualstudio.com) and [WebStorm](https://www.jetbrains.com/webstorm/).** + +Visual Studio Code and WebStorm support debugging out of the box with Create React App. This enables you as a developer to write and debug your React code without leaving the editor, and most importantly it enables you to have a continuous development workflow, where context switching is minimal, as you don’t have to switch between tools. + +### Visual Studio Code + +You would need to have the latest version of [VS Code](https://code.visualstudio.com) and VS Code [Chrome Debugger Extension](https://marketplace.visualstudio.com/items?itemName=msjsdiag.debugger-for-chrome) installed. + +Then add the block below to your `launch.json` file and put it inside the `.vscode` folder in your app’s root directory. + +```json +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Chrome", + "type": "chrome", + "request": "launch", + "url": "http://localhost:3000", + "webRoot": "${workspaceRoot}/src", + "sourceMapPathOverrides": { + "webpack:///src/*": "${webRoot}/*" + } + } + ] +} +``` + +> Note: the URL may be different if you've made adjustments via the [HOST or PORT environment variables](/docs/advanced-configuration). + +Start your app by running `npm start`, and start debugging in VS Code by pressing `F5` or by clicking the green debug icon. You can now write code, set breakpoints, make changes to the code, and debug your newly modified code—all from your editor. + +Having problems with VS Code Debugging? Please see their [troubleshooting guide](https://github.com/Microsoft/vscode-chrome-debug/blob/master/README.md#troubleshooting). + +### WebStorm + +You would need to have [WebStorm](https://www.jetbrains.com/webstorm/) and [JetBrains IDE Support](https://chrome.google.com/webstore/detail/jetbrains-ide-support/hmhgeddbohgjknpmjagkdomcpobmllji) Chrome extension installed. + +In the WebStorm menu `Run` select `Edit Configurations...`. Then click `+` and select `JavaScript Debug`. Paste `http://localhost:3000` into the URL field and save the configuration. + +> Note: the URL may be different if you've made adjustments via the [HOST or PORT environment variables](/docs/advanced-configuration). + +Start your app by running `npm start`, then press `^D` on macOS or `F9` on Windows and Linux or click the green debug icon to start debugging in WebStorm. + +The same way you can debug your application in IntelliJ IDEA Ultimate, PhpStorm, PyCharm Pro, and RubyMine. + +## Formatting Code Automatically + +Prettier is an opinionated code formatter with support for JavaScript, CSS and JSON. With Prettier you can format the code you write automatically to ensure a code style within your project. See the [Prettier's GitHub page](https://github.com/prettier/prettier) for more information, and look at this [page to see it in action](https://prettier.github.io/prettier/). + +To format our code whenever we make a commit in git, we need to install the following dependencies: + +```sh +npm install --save husky lint-staged prettier +``` + +Alternatively you may use `yarn`: + +```sh +yarn add husky lint-staged prettier +``` + +- `husky` makes it easy to use githooks as if they are npm scripts. +- `lint-staged` allows us to run scripts on staged files in git. See this [blog post about lint-staged to learn more about it](https://medium.com/@okonetchnikov/make-linting-great-again-f3890e1ad6b8). +- `prettier` is the JavaScript formatter we will run before commits. + +Now we can make sure every file is formatted correctly by adding a few lines to the `package.json` in the project root. + +Add the following field to the `package.json` section: + +```diff ++ "husky": { ++ "hooks": { ++ "pre-commit": "lint-staged" ++ } ++ } +``` + +Next we add a 'lint-staged' field to the `package.json`, for example: + +```diff + "dependencies": { + // ... + }, ++ "lint-staged": { ++ "src/**/*.{js,jsx,json,css}": [ ++ "prettier --single-quote --write", ++ "git add" ++ ] ++ }, + "scripts": { +``` + +Now, whenever you make a commit, Prettier will format the changed files automatically. You can also run `./node_modules/.bin/prettier --single-quote --write "src/**/*.{js,jsx}"` to format your entire project for the first time. + +Next you might want to integrate Prettier in your favorite editor. Read the section on [Editor Integration](https://prettier.io/docs/en/editors.html) on the Prettier GitHub page. diff --git a/docusaurus/docs/syntax-highlighting-in-the-editor.md b/docusaurus/docs/syntax-highlighting-in-the-editor.md deleted file mode 100644 index 5e017e71d60..00000000000 --- a/docusaurus/docs/syntax-highlighting-in-the-editor.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -id: syntax-highlighting-in-the-editor -title: Syntax highlighting in the editor -sidebar_label: Syntax highlighting ---- - -To configure the syntax highlighting in your favorite text editor, head to the [relevant Babel documentation page](https://babeljs.io/docs/editors) and follow the instructions. Some of the most popular editors are covered. diff --git a/docusaurus/website/i18n/en.json b/docusaurus/website/i18n/en.json index 77372702a32..8684d9739bd 100644 --- a/docusaurus/website/i18n/en.json +++ b/docusaurus/website/i18n/en.json @@ -55,9 +55,6 @@ "code-splitting": { "title": "Code Splitting" }, - "debugging-in-the-editor": { - "title": "Debugging in the Editor" - }, "debugging-tests": { "title": "Debugging Tests", "sidebar_label": "Debugging tests" @@ -79,10 +76,6 @@ "folder-structure": { "title": "Folder structure" }, - "formatting-code-automatically": { - "title": "Formatting Code Automatically", - "sidebar_label": "Formatting code" - }, "generating-dynamic-meta-tags-on-the-server": { "title": "Generating Dynamic `<meta>` Tags on the Server" }, @@ -102,10 +95,6 @@ "integrating-with-an-api-backend": { "title": "Integrating with an API Backend" }, - "lint-output-in-the-editor": { - "title": "Displaying Lint Output in the Editor", - "sidebar_label": "In-editor linting" - }, "making-a-progressive-web-app": { "title": "Making a Progressive Web App" }, @@ -131,6 +120,10 @@ "title": "Sending feedback", "sidebar_label": "Feedback" }, + "setting-up-your-editor": { + "title": "Setting up your Editor", + "sidebar_label": "Setting up your Editor" + }, "something-missing": { "title": "Something missing?", "sidebar_label": "Something missing?" @@ -139,10 +132,6 @@ "title": "Supported Browsers and Features", "sidebar_label": "Browsers and Features" }, - "syntax-highlighting-in-the-editor": { - "title": "Syntax highlighting in the editor", - "sidebar_label": "Syntax highlighting" - }, "troubleshooting": { "title": "Troubleshooting", "sidebar_label": "Troubleshooting" diff --git a/docusaurus/website/sidebars.json b/docusaurus/website/sidebars.json index 8e0205fa97c..ace60465363 100644 --- a/docusaurus/website/sidebars.json +++ b/docusaurus/website/sidebars.json @@ -11,10 +11,7 @@ "updating-to-new-releases" ], "Development": [ - "syntax-highlighting-in-the-editor", - "lint-output-in-the-editor", - "debugging-in-the-editor", - "formatting-code-automatically", + "setting-up-your-editor", "developing-components-in-isolation", "analyzing-the-bundle-size", "using-https-in-development" From 8dbd62174343292972f0f46e4f454d8d436b3b1b Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk <selbeezy@gmail.com> Date: Mon, 8 Oct 2018 19:24:42 +0200 Subject: [PATCH 0315/1249] Add a note about why you _should_ set up your editor --- docusaurus/docs/setting-up-your-editor.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docusaurus/docs/setting-up-your-editor.md b/docusaurus/docs/setting-up-your-editor.md index b7ee4e620f7..b04b949136b 100644 --- a/docusaurus/docs/setting-up-your-editor.md +++ b/docusaurus/docs/setting-up-your-editor.md @@ -4,6 +4,8 @@ title: Setting up your Editor sidebar_label: Setting up your Editor --- +Create React App comes with a bunch of tools that improve the editing experience - if configured correctly. Here's a few tips to maximize your productivity: + ## Syntax highlighting To configure the syntax highlighting in your favorite text editor, head to the [relevant Babel documentation page](https://babeljs.io/docs/editors) and follow the instructions. Some of the most popular editors are covered. From cf7d1c08e5ca79d4c1671aabb36575940f2ceefd Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk <selbeezy@gmail.com> Date: Mon, 8 Oct 2018 19:25:54 +0200 Subject: [PATCH 0316/1249] Shorten label --- docusaurus/docs/setting-up-your-editor.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/docs/setting-up-your-editor.md b/docusaurus/docs/setting-up-your-editor.md index b04b949136b..4bcc1fc5ecc 100644 --- a/docusaurus/docs/setting-up-your-editor.md +++ b/docusaurus/docs/setting-up-your-editor.md @@ -1,7 +1,7 @@ --- id: setting-up-your-editor title: Setting up your Editor -sidebar_label: Setting up your Editor +sidebar_label: Editor setup --- Create React App comes with a bunch of tools that improve the editing experience - if configured correctly. Here's a few tips to maximize your productivity: From 001cdeadff27097acaf51ae56c82def729f5148b Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk <selbeezy@gmail.com> Date: Mon, 8 Oct 2018 19:30:31 +0200 Subject: [PATCH 0317/1249] Shorten the sidebar labels --- docusaurus/docs/adding-a-css-modules-stylesheet.md | 1 + docusaurus/docs/adding-a-sass-stylesheet.md | 1 + docusaurus/docs/adding-a-stylesheet.md | 1 + docusaurus/docs/adding-custom-environment-variables.md | 1 + docusaurus/docs/using-https-in-development.md | 1 + docusaurus/docs/using-the-public-folder.md | 2 +- 6 files changed, 6 insertions(+), 1 deletion(-) diff --git a/docusaurus/docs/adding-a-css-modules-stylesheet.md b/docusaurus/docs/adding-a-css-modules-stylesheet.md index 5b2f7ceba18..4dfdce32ef5 100644 --- a/docusaurus/docs/adding-a-css-modules-stylesheet.md +++ b/docusaurus/docs/adding-a-css-modules-stylesheet.md @@ -1,6 +1,7 @@ --- id: adding-a-css-modules-stylesheet title: Adding a CSS Modules Stylesheet +sidebar_label: Adding CSS Modules --- > Note: this feature is available with `react-scripts@2.0.0` and higher. diff --git a/docusaurus/docs/adding-a-sass-stylesheet.md b/docusaurus/docs/adding-a-sass-stylesheet.md index cd3e3d6c2ef..70e1008032f 100644 --- a/docusaurus/docs/adding-a-sass-stylesheet.md +++ b/docusaurus/docs/adding-a-sass-stylesheet.md @@ -1,6 +1,7 @@ --- id: adding-a-sass-stylesheet title: Adding a Sass Stylesheet +sidebar_label: Adding Sass Stylesheets --- > Note: this feature is available with `react-scripts@2.0.0` and higher. diff --git a/docusaurus/docs/adding-a-stylesheet.md b/docusaurus/docs/adding-a-stylesheet.md index 7155e584f2d..d1683458608 100644 --- a/docusaurus/docs/adding-a-stylesheet.md +++ b/docusaurus/docs/adding-a-stylesheet.md @@ -1,6 +1,7 @@ --- id: adding-a-stylesheet title: Adding a Stylesheet +sidebar_label: Adding stylesheets --- This project setup uses [Webpack](https://webpack.js.org/) for handling all assets. Webpack offers a custom way of “extending” the concept of `import` beyond JavaScript. To express that a JavaScript file depends on a CSS file, you need to **import the CSS from the JavaScript file**: diff --git a/docusaurus/docs/adding-custom-environment-variables.md b/docusaurus/docs/adding-custom-environment-variables.md index 62ff6a0260d..f9a462b7005 100644 --- a/docusaurus/docs/adding-custom-environment-variables.md +++ b/docusaurus/docs/adding-custom-environment-variables.md @@ -1,6 +1,7 @@ --- id: adding-custom-environment-variables title: Adding Custom Environment Variables +sidebar_label: Environment Variables --- > Note: this feature is available with `react-scripts@0.2.3` and higher. diff --git a/docusaurus/docs/using-https-in-development.md b/docusaurus/docs/using-https-in-development.md index 64b7bf217a8..ad3aa413973 100644 --- a/docusaurus/docs/using-https-in-development.md +++ b/docusaurus/docs/using-https-in-development.md @@ -1,6 +1,7 @@ --- id: using-https-in-development title: Using HTTPS in Development +sidebar_label: HTTPS in Development --- > Note: this feature is available with `react-scripts@0.4.0` and higher. diff --git a/docusaurus/docs/using-the-public-folder.md b/docusaurus/docs/using-the-public-folder.md index 2d8b0ba36fc..40a18de2830 100644 --- a/docusaurus/docs/using-the-public-folder.md +++ b/docusaurus/docs/using-the-public-folder.md @@ -1,6 +1,6 @@ --- id: using-the-public-folder -title: Using the `public` Folder +title: Using the public Folder --- > Note: this feature is available with `react-scripts@0.5.0` and higher. From 9f9f505efb55dc1a1c7f77bb4eb164779df7e3a6 Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk <selbeezy@gmail.com> Date: Mon, 8 Oct 2018 19:33:40 +0200 Subject: [PATCH 0318/1249] Combine pages about head tags --- ...erating-dynamic-meta-tags-on-the-server.md | 18 --------------- ...e-page-title.md => title-and-meta-tags.md} | 23 +++++++++++++++++-- docusaurus/website/sidebars.json | 3 +-- 3 files changed, 22 insertions(+), 22 deletions(-) delete mode 100644 docusaurus/docs/generating-dynamic-meta-tags-on-the-server.md rename docusaurus/docs/{changing-the-page-title.md => title-and-meta-tags.md} (51%) diff --git a/docusaurus/docs/generating-dynamic-meta-tags-on-the-server.md b/docusaurus/docs/generating-dynamic-meta-tags-on-the-server.md deleted file mode 100644 index e40c8f64211..00000000000 --- a/docusaurus/docs/generating-dynamic-meta-tags-on-the-server.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -id: generating-dynamic-meta-tags-on-the-server -title: Generating Dynamic `<meta>` Tags on the Server ---- - -Since Create React App doesn’t support server rendering, you might be wondering how to make `<meta>` tags dynamic and reflect the current URL. To solve this, we recommend to add placeholders into the HTML, like this: - -```html -<!doctype html> -<html lang="en"> - <head> - <meta property="og:title" content="__OG_TITLE__"> - <meta property="og:description" content="__OG_DESCRIPTION__"> -``` - -Then, on the server, regardless of the backend you use, you can read `index.html` into memory and replace `__OG_TITLE__`, `__OG_DESCRIPTION__`, and any other placeholders with values depending on the current URL. Just make sure to sanitize and escape the interpolated values so that they are safe to embed into HTML! - -If you use a Node server, you can even share the route matching logic between the client and the server. However duplicating it also works fine in simple cases. diff --git a/docusaurus/docs/changing-the-page-title.md b/docusaurus/docs/title-and-meta-tags.md similarity index 51% rename from docusaurus/docs/changing-the-page-title.md rename to docusaurus/docs/title-and-meta-tags.md index 3bbf7c35dd6..566a7358da0 100644 --- a/docusaurus/docs/changing-the-page-title.md +++ b/docusaurus/docs/title-and-meta-tags.md @@ -1,8 +1,11 @@ --- -id: changing-the-page-title -title: Changing the <title /> +id: title-and-meta-tags +title: Title and Meta Tags +sidebar_label: Title & Meta Tags --- +## Changing the <title /> tag + You can find the source HTML file in the `public` folder of the generated project. You may edit the `<title>` tag in it to change the title from “React App” to anything else. Note that normally you wouldn’t edit files in the `public` folder very often. For example, [adding a stylesheet](/docs/adding-a-stylesheet) is done without touching the HTML. @@ -10,3 +13,19 @@ Note that normally you wouldn’t edit files in the `public` folder very often. If you need to dynamically update the page title based on the content, you can use the browser [`document.title`](https://developer.mozilla.org/en-US/docs/Web/API/Document/title) API. For more complex scenarios when you want to change the title from React components, you can use [React Helmet](https://github.com/nfl/react-helmet), a third party library. If you use a custom server for your app in production and want to modify the title before it gets sent to the browser, you can follow advice in [this section](/docs/generating-dynamic-meta-tags-on-the-server). Alternatively, you can pre-build each page as a static HTML file which then loads the JavaScript bundle, which is covered [here](/docs/pre-rendering-into-static-html-files). + +## Generating Dynamic `<meta>` Tags on the Server + +Since Create React App doesn’t support server rendering, you might be wondering how to make `<meta>` tags dynamic and reflect the current URL. To solve this, we recommend to add placeholders into the HTML, like this: + +```html +<!doctype html> +<html lang="en"> + <head> + <meta property="og:title" content="__OG_TITLE__"> + <meta property="og:description" content="__OG_DESCRIPTION__"> +``` + +Then, on the server, regardless of the backend you use, you can read `index.html` into memory and replace `__OG_TITLE__`, `__OG_DESCRIPTION__`, and any other placeholders with values depending on the current URL. Just make sure to sanitize and escape the interpolated values so that they are safe to embed into HTML! + +If you use a Node server, you can even share the route matching logic between the client and the server. However duplicating it also works fine in simple cases. diff --git a/docusaurus/website/sidebars.json b/docusaurus/website/sidebars.json index ace60465363..8e8d5f3b4f5 100644 --- a/docusaurus/website/sidebars.json +++ b/docusaurus/website/sidebars.json @@ -40,8 +40,7 @@ "proxying-api-requests-in-development", "fetching-data-with-ajax-requests", "integrating-with-an-api-backend", - "changing-the-page-title", - "generating-dynamic-meta-tags-on-the-server", + "title-and-meta-tags", "injecting-data-from-the-server-into-the-page" ], "Testing": ["running-tests", "debugging-tests"], From 25ed9b3719fa45975b930fcd8cf4d5d368591b8f Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk <selbeezy@gmail.com> Date: Mon, 8 Oct 2018 19:40:18 +0200 Subject: [PATCH 0319/1249] Combine even more pages --- docusaurus/docs/documentation-intro.md | 4 ++ .../docs/fetching-data-with-ajax-requests.md | 1 + ...ting-data-from-the-server-into-the-page.md | 17 ------- .../docs/integrating-with-an-api-backend.md | 1 + .../pre-rendering-into-static-html-files.md | 1 + docusaurus/docs/something-missing.md | 7 --- docusaurus/docs/title-and-meta-tags.md | 17 ++++++- docusaurus/website/i18n/en.json | 45 +++++++++---------- docusaurus/website/sidebars.json | 6 +-- 9 files changed, 47 insertions(+), 52 deletions(-) delete mode 100644 docusaurus/docs/injecting-data-from-the-server-into-the-page.md delete mode 100644 docusaurus/docs/something-missing.md diff --git a/docusaurus/docs/documentation-intro.md b/docusaurus/docs/documentation-intro.md index 00225ef48e0..cb528d357ae 100644 --- a/docusaurus/docs/documentation-intro.md +++ b/docusaurus/docs/documentation-intro.md @@ -5,3 +5,7 @@ sidebar_label: About the docs --- Please navigate via the table of content for finding what you are looking for. + +## Something Missing? + +If you have ideas for more “How To” recipes that should be on this page, [let us know](https://github.com/facebook/create-react-app/issues) or [contribute some!](https://github.com/facebook/create-react-app/edit/master/packages/react-scripts/template/README.md) diff --git a/docusaurus/docs/fetching-data-with-ajax-requests.md b/docusaurus/docs/fetching-data-with-ajax-requests.md index cf539830aaa..8dff9f8ce58 100644 --- a/docusaurus/docs/fetching-data-with-ajax-requests.md +++ b/docusaurus/docs/fetching-data-with-ajax-requests.md @@ -1,6 +1,7 @@ --- id: fetching-data-with-ajax-requests title: Fetching Data with AJAX Requests +sidebar_label: Fetching Data --- React doesn't prescribe a specific approach to data fetching, but people commonly use either a library like [axios](https://github.com/axios/axios) or the [`fetch()` API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) provided by the browser. diff --git a/docusaurus/docs/injecting-data-from-the-server-into-the-page.md b/docusaurus/docs/injecting-data-from-the-server-into-the-page.md deleted file mode 100644 index ab428a627d0..00000000000 --- a/docusaurus/docs/injecting-data-from-the-server-into-the-page.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -id: injecting-data-from-the-server-into-the-page -title: Injecting Data from the Server into the Page ---- - -Similarly to the previous section, you can leave some placeholders in the HTML that inject global variables, for example: - -```js -<!doctype html> -<html lang="en"> - <head> - <script> - window.SERVER_DATA = __SERVER_DATA__; - </script> -``` - -Then, on the server, you can replace `__SERVER_DATA__` with a JSON of real data right before sending the response. The client code can then read `window.SERVER_DATA` to use it. **Make sure to [sanitize the JSON before sending it to the client](https://medium.com/node-security/the-most-common-xss-vulnerability-in-react-js-applications-2bdffbcc1fa0) as it makes your app vulnerable to XSS attacks.** diff --git a/docusaurus/docs/integrating-with-an-api-backend.md b/docusaurus/docs/integrating-with-an-api-backend.md index 450198d509a..4791d9d9029 100644 --- a/docusaurus/docs/integrating-with-an-api-backend.md +++ b/docusaurus/docs/integrating-with-an-api-backend.md @@ -1,6 +1,7 @@ --- id: integrating-with-an-api-backend title: Integrating with an API Backend +sidebar_label: Integrating with an API --- These tutorials will help you to integrate your app with an API backend running on another port, diff --git a/docusaurus/docs/pre-rendering-into-static-html-files.md b/docusaurus/docs/pre-rendering-into-static-html-files.md index 268feab9cf8..f9bab58190e 100644 --- a/docusaurus/docs/pre-rendering-into-static-html-files.md +++ b/docusaurus/docs/pre-rendering-into-static-html-files.md @@ -1,6 +1,7 @@ --- id: pre-rendering-into-static-html-files title: Pre-Rendering into Static HTML Files +sidebar_label: Pre-Rendering Static HTML --- If you’re hosting your `build` with a static hosting provider you can use [react-snapshot](https://www.npmjs.com/package/react-snapshot) or [react-snap](https://github.com/stereobooster/react-snap) to generate HTML pages for each route, or relative link, in your application. These pages will then seamlessly become active, or “hydrated”, when the JavaScript bundle has loaded. diff --git a/docusaurus/docs/something-missing.md b/docusaurus/docs/something-missing.md deleted file mode 100644 index 8201eab4f71..00000000000 --- a/docusaurus/docs/something-missing.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -id: something-missing -title: Something missing? -sidebar_label: Something missing? ---- - -If you have ideas for more “How To” recipes that should be on this page, [let us know](https://github.com/facebook/create-react-app/issues) or [contribute some!](https://github.com/facebook/create-react-app/edit/master/packages/react-scripts/template/README.md) diff --git a/docusaurus/docs/title-and-meta-tags.md b/docusaurus/docs/title-and-meta-tags.md index 566a7358da0..43928a42ea0 100644 --- a/docusaurus/docs/title-and-meta-tags.md +++ b/docusaurus/docs/title-and-meta-tags.md @@ -4,7 +4,7 @@ title: Title and Meta Tags sidebar_label: Title & Meta Tags --- -## Changing the <title /> tag +## Changing the title tag You can find the source HTML file in the `public` folder of the generated project. You may edit the `<title>` tag in it to change the title from “React App” to anything else. @@ -29,3 +29,18 @@ Since Create React App doesn’t support server rendering, you might be wonderin Then, on the server, regardless of the backend you use, you can read `index.html` into memory and replace `__OG_TITLE__`, `__OG_DESCRIPTION__`, and any other placeholders with values depending on the current URL. Just make sure to sanitize and escape the interpolated values so that they are safe to embed into HTML! If you use a Node server, you can even share the route matching logic between the client and the server. However duplicating it also works fine in simple cases. + +## Injecting Data from the Server into the Page + +Similarly to the previous section, you can leave some placeholders in the HTML that inject global variables, for example: + +```js +<!doctype html> +<html lang="en"> + <head> + <script> + window.SERVER_DATA = __SERVER_DATA__; + </script> +``` + +Then, on the server, you can replace `__SERVER_DATA__` with a JSON of real data right before sending the response. The client code can then read `window.SERVER_DATA` to use it. **Make sure to [sanitize the JSON before sending it to the client](https://medium.com/node-security/the-most-common-xss-vulnerability-in-react-js-applications-2bdffbcc1fa0) as it makes your app vulnerable to XSS attacks.** diff --git a/docusaurus/website/i18n/en.json b/docusaurus/website/i18n/en.json index 8684d9739bd..4e74e1dbfbe 100644 --- a/docusaurus/website/i18n/en.json +++ b/docusaurus/website/i18n/en.json @@ -6,22 +6,26 @@ "tagline": "Create React apps with no build configuration.", "docs": { "adding-a-css-modules-stylesheet": { - "title": "Adding a CSS Modules Stylesheet" + "title": "Adding a CSS Modules Stylesheet", + "sidebar_label": "Adding CSS Modules" }, "adding-a-router": { "title": "Adding a Router" }, "adding-a-sass-stylesheet": { - "title": "Adding a Sass Stylesheet" + "title": "Adding a Sass Stylesheet", + "sidebar_label": "Adding Sass Stylesheets" }, "adding-a-stylesheet": { - "title": "Adding a Stylesheet" + "title": "Adding a Stylesheet", + "sidebar_label": "Adding stylesheets" }, "adding-bootstrap": { "title": "Adding Bootstrap" }, "adding-custom-environment-variables": { - "title": "Adding Custom Environment Variables" + "title": "Adding Custom Environment Variables", + "sidebar_label": "Environment Variables" }, "adding-flow": { "title": "Adding Flow" @@ -49,9 +53,6 @@ "can-i-use-decorators": { "title": "Can I Use Decorators?" }, - "changing-the-page-title": { - "title": "Changing the <title />" - }, "code-splitting": { "title": "Code Splitting" }, @@ -71,14 +72,12 @@ "sidebar_label": "About the docs" }, "fetching-data-with-ajax-requests": { - "title": "Fetching Data with AJAX Requests" + "title": "Fetching Data with AJAX Requests", + "sidebar_label": "Fetching Data" }, "folder-structure": { "title": "Folder structure" }, - "generating-dynamic-meta-tags-on-the-server": { - "title": "Generating Dynamic `<meta>` Tags on the Server" - }, "getting-started": { "title": "Getting started", "sidebar_label": "Getting started" @@ -86,14 +85,12 @@ "importing-a-component": { "title": "Importing a Component" }, - "injecting-data-from-the-server-into-the-page": { - "title": "Injecting Data from the Server into the Page" - }, "installing-a-dependency": { "title": "Installing a Dependency" }, "integrating-with-an-api-backend": { - "title": "Integrating with an API Backend" + "title": "Integrating with an API Backend", + "sidebar_label": "Integrating with an API" }, "making-a-progressive-web-app": { "title": "Making a Progressive Web App" @@ -102,7 +99,8 @@ "title": "Post-Processing CSS" }, "pre-rendering-into-static-html-files": { - "title": "Pre-Rendering into Static HTML Files" + "title": "Pre-Rendering into Static HTML Files", + "sidebar_label": "Pre-Rendering Static HTML" }, "proxying-api-requests-in-development": { "title": "Proxying API Requests in Development", @@ -122,16 +120,16 @@ }, "setting-up-your-editor": { "title": "Setting up your Editor", - "sidebar_label": "Setting up your Editor" - }, - "something-missing": { - "title": "Something missing?", - "sidebar_label": "Something missing?" + "sidebar_label": "Editor setup" }, "supported-browsers-features": { "title": "Supported Browsers and Features", "sidebar_label": "Browsers and Features" }, + "title-and-meta-tags": { + "title": "Title and Meta Tags", + "sidebar_label": "Title & Meta Tags" + }, "troubleshooting": { "title": "Troubleshooting", "sidebar_label": "Troubleshooting" @@ -143,10 +141,11 @@ "title": "Using Global Variables" }, "using-https-in-development": { - "title": "Using HTTPS in Development" + "title": "Using HTTPS in Development", + "sidebar_label": "HTTPS in Development" }, "using-the-public-folder": { - "title": "Using the `public` Folder" + "title": "Using the public Folder" } }, "links": { diff --git a/docusaurus/website/sidebars.json b/docusaurus/website/sidebars.json index 8e8d5f3b4f5..d21dfac318e 100644 --- a/docusaurus/website/sidebars.json +++ b/docusaurus/website/sidebars.json @@ -40,8 +40,7 @@ "proxying-api-requests-in-development", "fetching-data-with-ajax-requests", "integrating-with-an-api-backend", - "title-and-meta-tags", - "injecting-data-from-the-server-into-the-page" + "title-and-meta-tags" ], "Testing": ["running-tests", "debugging-tests"], "Deployment": ["publishing-components-to-npm", "deployment"], @@ -53,8 +52,7 @@ ], "Support": [ "troubleshooting", - "sending-feedback", - "something-missing" + "sending-feedback" ] } } From 840c42419840664cb5f4b44177b520b158571e9a Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk <selbeezy@gmail.com> Date: Mon, 8 Oct 2018 19:41:25 +0200 Subject: [PATCH 0320/1249] Remove API reference from footer --- docusaurus/website/core/Footer.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/docusaurus/website/core/Footer.js b/docusaurus/website/core/Footer.js index 246bf3a3521..ba617e64aed 100644 --- a/docusaurus/website/core/Footer.js +++ b/docusaurus/website/core/Footer.js @@ -40,9 +40,6 @@ class Footer extends React.Component { <a href={this.docUrl('documentation-intro', this.props.language)}> Documentation </a> - <a href={this.docUrl('doc3.html', this.props.language)}> - API Reference (or other categories) - </a> </div> <div> <h5>Community</h5> From f80d27ba5b03385170c3584f91c2e160977c1f35 Mon Sep 17 00:00:00 2001 From: Joe Haddad <timer150@gmail.com> Date: Mon, 8 Oct 2018 18:35:01 -0400 Subject: [PATCH 0321/1249] Fix checking against non-semver compliant Yarn versions (#5362) --- packages/create-react-app/createReactApp.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/create-react-app/createReactApp.js b/packages/create-react-app/createReactApp.js index 5d837c60400..a62f88589f0 100755 --- a/packages/create-react-app/createReactApp.js +++ b/packages/create-react-app/createReactApp.js @@ -594,7 +594,11 @@ function checkYarnVersion() { yarnVersion = execSync('yarnpkg --version') .toString() .trim(); - hasMinYarnPnp = semver.gte(yarnVersion, '1.12.0'); + let trimmedYarnVersion = /^(.+?)[-+].+$/.exec(yarnVersion); + if (trimmedYarnVersion) { + trimmedYarnVersion = trimmedYarnVersion.pop(); + } + hasMinYarnPnp = semver.gte(trimmedYarnVersion || yarnVersion, '1.12.0'); } catch (err) { // ignore } From 89087144acee2daa95392bd0c874818b4a291d0e Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk <kristofer.selbekk@sparebank1.no> Date: Tue, 9 Oct 2018 06:55:08 +0200 Subject: [PATCH 0322/1249] Title Case All Headings --- docusaurus/docs/adding-a-css-modules-stylesheet.md | 2 +- docusaurus/docs/adding-a-router.md | 2 +- docusaurus/docs/adding-a-sass-stylesheet.md | 2 +- docusaurus/docs/adding-a-stylesheet.md | 4 ++-- docusaurus/docs/adding-images-fonts-and-files.md | 2 +- docusaurus/docs/alternatives-to-ejecting.md | 2 +- docusaurus/docs/analyzing-the-bundle-size.md | 2 +- docusaurus/docs/available-scripts.md | 2 +- docusaurus/docs/debugging-tests.md | 2 +- docusaurus/docs/developing-components-in-isolation.md | 2 +- docusaurus/docs/documentation-intro.md | 4 ++-- docusaurus/docs/folder-structure.md | 2 +- docusaurus/docs/getting-started.md | 5 ++--- docusaurus/docs/importing-a-component.md | 2 +- docusaurus/docs/installing-a-dependency.md | 2 +- docusaurus/docs/integrating-with-an-api-backend.md | 4 ++-- docusaurus/docs/making-a-progressive-web-app.md | 2 +- docusaurus/docs/pre-rendering-into-static-html-files.md | 2 +- docusaurus/docs/proxying-api-requests-in-development.md | 4 ++-- docusaurus/docs/publishing-components-to-npm.md | 5 +++-- docusaurus/docs/running-tests.md | 1 - docusaurus/docs/sending-feedback.md | 2 +- docusaurus/docs/setting-up-your-editor.md | 4 ++-- docusaurus/docs/supported-language-features.md | 6 +++--- docusaurus/docs/title-and-meta-tags.md | 2 +- docusaurus/docs/updating-to-new-releases.md | 2 +- docusaurus/docs/using-https-in-development.md | 4 ++-- docusaurus/docs/using-the-public-folder.md | 2 +- 28 files changed, 38 insertions(+), 39 deletions(-) diff --git a/docusaurus/docs/adding-a-css-modules-stylesheet.md b/docusaurus/docs/adding-a-css-modules-stylesheet.md index 4dfdce32ef5..e7c90f85b67 100644 --- a/docusaurus/docs/adding-a-css-modules-stylesheet.md +++ b/docusaurus/docs/adding-a-css-modules-stylesheet.md @@ -1,6 +1,6 @@ --- id: adding-a-css-modules-stylesheet -title: Adding a CSS Modules Stylesheet +title: Adding A CSS Modules Stylesheet sidebar_label: Adding CSS Modules --- diff --git a/docusaurus/docs/adding-a-router.md b/docusaurus/docs/adding-a-router.md index 70dfcb63b6e..65f82ff4476 100644 --- a/docusaurus/docs/adding-a-router.md +++ b/docusaurus/docs/adding-a-router.md @@ -1,6 +1,6 @@ --- id: adding-a-router -title: Adding a Router +title: Adding A Router --- Create React App doesn't prescribe a specific routing solution, but [React Router](https://reacttraining.com/react-router/web/) is the most popular one. diff --git a/docusaurus/docs/adding-a-sass-stylesheet.md b/docusaurus/docs/adding-a-sass-stylesheet.md index 70e1008032f..e4e6940c830 100644 --- a/docusaurus/docs/adding-a-sass-stylesheet.md +++ b/docusaurus/docs/adding-a-sass-stylesheet.md @@ -1,6 +1,6 @@ --- id: adding-a-sass-stylesheet -title: Adding a Sass Stylesheet +title: Adding A Sass Stylesheet sidebar_label: Adding Sass Stylesheets --- diff --git a/docusaurus/docs/adding-a-stylesheet.md b/docusaurus/docs/adding-a-stylesheet.md index d1683458608..b74dd814311 100644 --- a/docusaurus/docs/adding-a-stylesheet.md +++ b/docusaurus/docs/adding-a-stylesheet.md @@ -1,7 +1,7 @@ --- id: adding-a-stylesheet -title: Adding a Stylesheet -sidebar_label: Adding stylesheets +title: Adding A Stylesheet +sidebar_label: Adding Stylesheets --- This project setup uses [Webpack](https://webpack.js.org/) for handling all assets. Webpack offers a custom way of “extending” the concept of `import` beyond JavaScript. To express that a JavaScript file depends on a CSS file, you need to **import the CSS from the JavaScript file**: diff --git a/docusaurus/docs/adding-images-fonts-and-files.md b/docusaurus/docs/adding-images-fonts-and-files.md index c481d96c75d..87f276f097d 100644 --- a/docusaurus/docs/adding-images-fonts-and-files.md +++ b/docusaurus/docs/adding-images-fonts-and-files.md @@ -1,6 +1,6 @@ --- id: adding-images-fonts-and-files -title: Adding Images, Fonts, and Files +title: Adding Images, Fonts, And Files --- With Webpack, using static assets like images and fonts works similarly to CSS. diff --git a/docusaurus/docs/alternatives-to-ejecting.md b/docusaurus/docs/alternatives-to-ejecting.md index 1bbc066c3bf..e353adf3488 100644 --- a/docusaurus/docs/alternatives-to-ejecting.md +++ b/docusaurus/docs/alternatives-to-ejecting.md @@ -1,6 +1,6 @@ --- id: alternatives-to-ejecting -title: Alternatives to Ejecting +title: Alternatives To Ejecting --- [Ejecting](/docs/available-scripts#npm-run-eject) lets you customize anything, but from that point on you have to maintain the configuration and scripts yourself. This can be daunting if you have many similar projects. In such cases instead of ejecting we recommend to _fork_ `react-scripts` and any other packages you need. [This article](https://auth0.com/blog/how-to-configure-create-react-app/) dives into how to do it in depth. You can find more discussion in [this issue](https://github.com/facebook/create-react-app/issues/682). diff --git a/docusaurus/docs/analyzing-the-bundle-size.md b/docusaurus/docs/analyzing-the-bundle-size.md index 9c18be20045..ce175e085d6 100644 --- a/docusaurus/docs/analyzing-the-bundle-size.md +++ b/docusaurus/docs/analyzing-the-bundle-size.md @@ -1,7 +1,7 @@ --- id: analyzing-the-bundle-size title: Analyzing the Bundle Size -sidebar_label: Analyzing bundle size +sidebar_label: Analyzing Bundle Size --- [Source map explorer](https://www.npmjs.com/package/source-map-explorer) analyzes diff --git a/docusaurus/docs/available-scripts.md b/docusaurus/docs/available-scripts.md index 8f6ec40ceee..fa438459f13 100644 --- a/docusaurus/docs/available-scripts.md +++ b/docusaurus/docs/available-scripts.md @@ -1,7 +1,7 @@ --- id: available-scripts title: Available Scripts -sidebar_label: Available scripts +sidebar_label: Available Scripts --- In the project directory, you can run: diff --git a/docusaurus/docs/debugging-tests.md b/docusaurus/docs/debugging-tests.md index 79ee41b2a66..93da201a9f6 100644 --- a/docusaurus/docs/debugging-tests.md +++ b/docusaurus/docs/debugging-tests.md @@ -1,7 +1,7 @@ --- id: debugging-tests title: Debugging Tests -sidebar_label: Debugging tests +sidebar_label: Debugging Tests --- There are various ways to setup a debugger for your Jest tests. We cover debugging in Chrome and [Visual Studio Code](https://code.visualstudio.com/). diff --git a/docusaurus/docs/developing-components-in-isolation.md b/docusaurus/docs/developing-components-in-isolation.md index 1f4be53614f..ac38b7a71a1 100644 --- a/docusaurus/docs/developing-components-in-isolation.md +++ b/docusaurus/docs/developing-components-in-isolation.md @@ -1,6 +1,6 @@ --- id: developing-components-in-isolation -title: Developing Components in Isolation +title: Developing Components In Isolation --- Usually, in an app, you have a lot of UI components, and each of them has many different states. diff --git a/docusaurus/docs/documentation-intro.md b/docusaurus/docs/documentation-intro.md index cb528d357ae..0bc98640b5a 100644 --- a/docusaurus/docs/documentation-intro.md +++ b/docusaurus/docs/documentation-intro.md @@ -1,7 +1,7 @@ --- id: documentation-intro -title: Welcome to the Documentation -sidebar_label: About the docs +title: Welcome To The Documentation +sidebar_label: About The Docs --- Please navigate via the table of content for finding what you are looking for. diff --git a/docusaurus/docs/folder-structure.md b/docusaurus/docs/folder-structure.md index 74ef1fc9e0c..e8564b493f3 100644 --- a/docusaurus/docs/folder-structure.md +++ b/docusaurus/docs/folder-structure.md @@ -1,6 +1,6 @@ --- id: folder-structure -title: Folder structure +title: Folder Structure --- After creation, your project should look like this: diff --git a/docusaurus/docs/getting-started.md b/docusaurus/docs/getting-started.md index 20e8e85aa3f..4e046fb1635 100644 --- a/docusaurus/docs/getting-started.md +++ b/docusaurus/docs/getting-started.md @@ -1,10 +1,9 @@ --- id: getting-started -title: Getting started -sidebar_label: Getting started +title: Getting Started --- -Create React App is an officially supported way to create single-page React +Create React App is an officially supported way to create single-page React applications. It offers a modern build setup with no configuration. ## Quick Start diff --git a/docusaurus/docs/importing-a-component.md b/docusaurus/docs/importing-a-component.md index 52767005c08..9ad0a25e5ab 100644 --- a/docusaurus/docs/importing-a-component.md +++ b/docusaurus/docs/importing-a-component.md @@ -1,6 +1,6 @@ --- id: importing-a-component -title: Importing a Component +title: Importing A Component --- This project setup supports ES6 modules thanks to Webpack.<br> diff --git a/docusaurus/docs/installing-a-dependency.md b/docusaurus/docs/installing-a-dependency.md index 6e356315ab2..909c56cfa6b 100644 --- a/docusaurus/docs/installing-a-dependency.md +++ b/docusaurus/docs/installing-a-dependency.md @@ -1,6 +1,6 @@ --- id: installing-a-dependency -title: Installing a Dependency +title: Installing A Dependency --- The generated project includes React and ReactDOM as dependencies. It also includes a set of scripts used by Create React App as a development dependency. You may install other dependencies (for example, React Router) with `npm`: diff --git a/docusaurus/docs/integrating-with-an-api-backend.md b/docusaurus/docs/integrating-with-an-api-backend.md index 4791d9d9029..339215160f7 100644 --- a/docusaurus/docs/integrating-with-an-api-backend.md +++ b/docusaurus/docs/integrating-with-an-api-backend.md @@ -1,7 +1,7 @@ --- id: integrating-with-an-api-backend -title: Integrating with an API Backend -sidebar_label: Integrating with an API +title: Integrating With An API Backend +sidebar_label: Integrating With An API --- These tutorials will help you to integrate your app with an API backend running on another port, diff --git a/docusaurus/docs/making-a-progressive-web-app.md b/docusaurus/docs/making-a-progressive-web-app.md index 2fe93f4bac1..ae8de4e5240 100644 --- a/docusaurus/docs/making-a-progressive-web-app.md +++ b/docusaurus/docs/making-a-progressive-web-app.md @@ -1,6 +1,6 @@ --- id: making-a-progressive-web-app -title: Making a Progressive Web App +title: Making A Progressive Web App --- The production build has all the tools necessary to generate a first-class diff --git a/docusaurus/docs/pre-rendering-into-static-html-files.md b/docusaurus/docs/pre-rendering-into-static-html-files.md index f9bab58190e..0ce53c6180f 100644 --- a/docusaurus/docs/pre-rendering-into-static-html-files.md +++ b/docusaurus/docs/pre-rendering-into-static-html-files.md @@ -1,6 +1,6 @@ --- id: pre-rendering-into-static-html-files -title: Pre-Rendering into Static HTML Files +title: Pre-Rendering Into Static HTML Files sidebar_label: Pre-Rendering Static HTML --- diff --git a/docusaurus/docs/proxying-api-requests-in-development.md b/docusaurus/docs/proxying-api-requests-in-development.md index fb6b41c8e07..7d932229348 100644 --- a/docusaurus/docs/proxying-api-requests-in-development.md +++ b/docusaurus/docs/proxying-api-requests-in-development.md @@ -1,7 +1,7 @@ --- id: proxying-api-requests-in-development -title: Proxying API Requests in Development -sidebar_label: Proxying in development +title: Proxying API Requests In Development +sidebar_label: Proxying In Development --- > Note: this feature is available with `react-scripts@0.2.3` and higher. diff --git a/docusaurus/docs/publishing-components-to-npm.md b/docusaurus/docs/publishing-components-to-npm.md index f436a7eb9e5..af01ec1e383 100644 --- a/docusaurus/docs/publishing-components-to-npm.md +++ b/docusaurus/docs/publishing-components-to-npm.md @@ -1,6 +1,7 @@ --- id: publishing-components-to-npm -title: Publishing components to npm -sidebar_label: Publishing to npm +title: Publishing Components To npm +sidebar_label: Publishing To npm --- + Create React App doesn't provide any built-in functionality to publish a component to npm. If you're ready to extract a component from your project so other people can use it, we recommend moving it to a separate directory outside of your project and then using a tool like [nwb](https://github.com/insin/nwb#react-components-and-libraries) to prepare it for publishing. diff --git a/docusaurus/docs/running-tests.md b/docusaurus/docs/running-tests.md index f5b5efde0c5..3a6181d775c 100644 --- a/docusaurus/docs/running-tests.md +++ b/docusaurus/docs/running-tests.md @@ -1,7 +1,6 @@ --- id: running-tests title: Running Tests -sidebar_label: Running tests --- > Note: this feature is available with `react-scripts@0.3.0` and higher.<br> diff --git a/docusaurus/docs/sending-feedback.md b/docusaurus/docs/sending-feedback.md index 8fd0e223c43..b04dd455b66 100644 --- a/docusaurus/docs/sending-feedback.md +++ b/docusaurus/docs/sending-feedback.md @@ -1,6 +1,6 @@ --- id: sending-feedback -title: Sending feedback +title: Sending Feedback sidebar_label: Feedback --- diff --git a/docusaurus/docs/setting-up-your-editor.md b/docusaurus/docs/setting-up-your-editor.md index 4bcc1fc5ecc..937ed1d77bd 100644 --- a/docusaurus/docs/setting-up-your-editor.md +++ b/docusaurus/docs/setting-up-your-editor.md @@ -1,7 +1,7 @@ --- id: setting-up-your-editor -title: Setting up your Editor -sidebar_label: Editor setup +title: Setting Up Your Editor +sidebar_label: Editor Setup --- Create React App comes with a bunch of tools that improve the editing experience - if configured correctly. Here's a few tips to maximize your productivity: diff --git a/docusaurus/docs/supported-language-features.md b/docusaurus/docs/supported-language-features.md index e82b9b5e140..2d320ce3144 100644 --- a/docusaurus/docs/supported-language-features.md +++ b/docusaurus/docs/supported-language-features.md @@ -1,10 +1,10 @@ --- id: supported-browsers-features -title: Supported Browsers and Features -sidebar_label: Browsers and Features +title: Supported Browsers And Features +sidebar_label: Browsers & Features --- -## Supported Browsers +## Supported Browsers By default, the generated project supports all modern browsers.<br> Support for Internet Explorer 9, 10, and 11 requires [polyfills](https://github.com/facebook/create-react-app/blob/master/packages/react-app-polyfill/README.md). diff --git a/docusaurus/docs/title-and-meta-tags.md b/docusaurus/docs/title-and-meta-tags.md index 43928a42ea0..f8be44c0bee 100644 --- a/docusaurus/docs/title-and-meta-tags.md +++ b/docusaurus/docs/title-and-meta-tags.md @@ -1,6 +1,6 @@ --- id: title-and-meta-tags -title: Title and Meta Tags +title: Title And Meta Tags sidebar_label: Title & Meta Tags --- diff --git a/docusaurus/docs/updating-to-new-releases.md b/docusaurus/docs/updating-to-new-releases.md index 825832464c8..b106673bc89 100644 --- a/docusaurus/docs/updating-to-new-releases.md +++ b/docusaurus/docs/updating-to-new-releases.md @@ -1,6 +1,6 @@ --- id: updating-to-new-releases -title: Updating to New Releases +title: Updating To New Releases --- Create React App is divided into two packages: diff --git a/docusaurus/docs/using-https-in-development.md b/docusaurus/docs/using-https-in-development.md index ad3aa413973..465ca6e942a 100644 --- a/docusaurus/docs/using-https-in-development.md +++ b/docusaurus/docs/using-https-in-development.md @@ -1,7 +1,7 @@ --- id: using-https-in-development -title: Using HTTPS in Development -sidebar_label: HTTPS in Development +title: Using HTTPS In Development +sidebar_label: HTTPS In Development --- > Note: this feature is available with `react-scripts@0.4.0` and higher. diff --git a/docusaurus/docs/using-the-public-folder.md b/docusaurus/docs/using-the-public-folder.md index 40a18de2830..e6a973c45d6 100644 --- a/docusaurus/docs/using-the-public-folder.md +++ b/docusaurus/docs/using-the-public-folder.md @@ -1,6 +1,6 @@ --- id: using-the-public-folder -title: Using the public Folder +title: Using The public Folder --- > Note: this feature is available with `react-scripts@0.5.0` and higher. From e3f0f4ab459c626399b4e17d231ea0f8019df769 Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk <kristofer.selbekk@sparebank1.no> Date: Tue, 9 Oct 2018 06:57:35 +0200 Subject: [PATCH 0323/1249] Make 'publishing components to npm' a sub-part of the deployment doc --- docusaurus/docs/deployment.md | 3 +++ docusaurus/docs/publishing-components-to-npm.md | 7 ------- docusaurus/website/sidebars.json | 8 ++++---- 3 files changed, 7 insertions(+), 11 deletions(-) delete mode 100644 docusaurus/docs/publishing-components-to-npm.md diff --git a/docusaurus/docs/deployment.md b/docusaurus/docs/deployment.md index 4c42844e5de..6260c9953db 100644 --- a/docusaurus/docs/deployment.md +++ b/docusaurus/docs/deployment.md @@ -456,3 +456,6 @@ When asked about the project path, make sure to specify the `build` folder, for Note that in order to support routers that use HTML5 `pushState` API, you may want to rename the `index.html` in your build folder to `200.html` before deploying to Surge. This [ensures that every URL falls back to that file](https://surge.sh/help/adding-a-200-page-for-client-side-routing). +## Publishing Components To npm + +Create React App doesn't provide any built-in functionality to publish a component to npm. If you're ready to extract a component from your project so other people can use it, we recommend moving it to a separate directory outside of your project and then using a tool like [nwb](https://github.com/insin/nwb#react-components-and-libraries) to prepare it for publishing. diff --git a/docusaurus/docs/publishing-components-to-npm.md b/docusaurus/docs/publishing-components-to-npm.md deleted file mode 100644 index af01ec1e383..00000000000 --- a/docusaurus/docs/publishing-components-to-npm.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -id: publishing-components-to-npm -title: Publishing Components To npm -sidebar_label: Publishing To npm ---- - -Create React App doesn't provide any built-in functionality to publish a component to npm. If you're ready to extract a component from your project so other people can use it, we recommend moving it to a separate directory outside of your project and then using a tool like [nwb](https://github.com/insin/nwb#react-components-and-libraries) to prepare it for publishing. diff --git a/docusaurus/website/sidebars.json b/docusaurus/website/sidebars.json index d21dfac318e..bd79060e9de 100644 --- a/docusaurus/website/sidebars.json +++ b/docusaurus/website/sidebars.json @@ -4,8 +4,8 @@ "documentation-intro" ], "Getting Started": [ - "getting-started", - "folder-structure", + "getting-started", + "folder-structure", "available-scripts", "supported-browsers-features", "updating-to-new-releases" @@ -43,7 +43,7 @@ "title-and-meta-tags" ], "Testing": ["running-tests", "debugging-tests"], - "Deployment": ["publishing-components-to-npm", "deployment"], + "Deployment": ["deployment"], "Advanced Usage": [ "can-i-use-decorators", "pre-rendering-into-static-html-files", @@ -51,7 +51,7 @@ "alternatives-to-ejecting" ], "Support": [ - "troubleshooting", + "troubleshooting", "sending-feedback" ] } From 4a7a4362c9509494610d2637cd4db31c60ee3d8a Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk <kristofer.selbekk@sparebank1.no> Date: Tue, 9 Oct 2018 06:58:38 +0200 Subject: [PATCH 0324/1249] Move testing above back-end integration --- docusaurus/website/sidebars.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/website/sidebars.json b/docusaurus/website/sidebars.json index bd79060e9de..a346d65395f 100644 --- a/docusaurus/website/sidebars.json +++ b/docusaurus/website/sidebars.json @@ -36,13 +36,13 @@ "adding-custom-environment-variables", "making-a-progressive-web-app" ], + "Testing": ["running-tests", "debugging-tests"], "Back-End Integration": [ "proxying-api-requests-in-development", "fetching-data-with-ajax-requests", "integrating-with-an-api-backend", "title-and-meta-tags" ], - "Testing": ["running-tests", "debugging-tests"], "Deployment": ["deployment"], "Advanced Usage": [ "can-i-use-decorators", From bd648f34dc38d4f54ce8394badcc2aa474c9590b Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk <kristofer.selbekk@sparebank1.no> Date: Tue, 9 Oct 2018 07:00:29 +0200 Subject: [PATCH 0325/1249] Make 'sending feedback' a part of the introduction --- docusaurus/docs/documentation-intro.md | 4 ++++ docusaurus/docs/sending-feedback.md | 7 ------- docusaurus/website/sidebars.json | 3 +-- 3 files changed, 5 insertions(+), 9 deletions(-) delete mode 100644 docusaurus/docs/sending-feedback.md diff --git a/docusaurus/docs/documentation-intro.md b/docusaurus/docs/documentation-intro.md index 0bc98640b5a..f428aaac340 100644 --- a/docusaurus/docs/documentation-intro.md +++ b/docusaurus/docs/documentation-intro.md @@ -9,3 +9,7 @@ Please navigate via the table of content for finding what you are looking for. ## Something Missing? If you have ideas for more “How To” recipes that should be on this page, [let us know](https://github.com/facebook/create-react-app/issues) or [contribute some!](https://github.com/facebook/create-react-app/edit/master/packages/react-scripts/template/README.md) + +## Feedback + +We are always open to [your feedback](https://github.com/facebook/create-react-app/issues). diff --git a/docusaurus/docs/sending-feedback.md b/docusaurus/docs/sending-feedback.md deleted file mode 100644 index b04dd455b66..00000000000 --- a/docusaurus/docs/sending-feedback.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -id: sending-feedback -title: Sending Feedback -sidebar_label: Feedback ---- - -We are always open to [your feedback](https://github.com/facebook/create-react-app/issues). diff --git a/docusaurus/website/sidebars.json b/docusaurus/website/sidebars.json index a346d65395f..e774b26e8d4 100644 --- a/docusaurus/website/sidebars.json +++ b/docusaurus/website/sidebars.json @@ -51,8 +51,7 @@ "alternatives-to-ejecting" ], "Support": [ - "troubleshooting", - "sending-feedback" + "troubleshooting" ] } } From 2e9bc28b465be88a2c71c7014d6d287984488411 Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk <kristofer.selbekk@sparebank1.no> Date: Tue, 9 Oct 2018 07:02:15 +0200 Subject: [PATCH 0326/1249] Update i18n file --- docusaurus/website/i18n/en.json | 78 ++++++++++++++------------------- 1 file changed, 34 insertions(+), 44 deletions(-) diff --git a/docusaurus/website/i18n/en.json b/docusaurus/website/i18n/en.json index 4e74e1dbfbe..8a1ad0a38c5 100644 --- a/docusaurus/website/i18n/en.json +++ b/docusaurus/website/i18n/en.json @@ -6,19 +6,19 @@ "tagline": "Create React apps with no build configuration.", "docs": { "adding-a-css-modules-stylesheet": { - "title": "Adding a CSS Modules Stylesheet", + "title": "Adding A CSS Modules Stylesheet", "sidebar_label": "Adding CSS Modules" }, "adding-a-router": { - "title": "Adding a Router" + "title": "Adding A Router" }, "adding-a-sass-stylesheet": { - "title": "Adding a Sass Stylesheet", + "title": "Adding A Sass Stylesheet", "sidebar_label": "Adding Sass Stylesheets" }, "adding-a-stylesheet": { - "title": "Adding a Stylesheet", - "sidebar_label": "Adding stylesheets" + "title": "Adding A Stylesheet", + "sidebar_label": "Adding Stylesheets" }, "adding-bootstrap": { "title": "Adding Bootstrap" @@ -31,7 +31,7 @@ "title": "Adding Flow" }, "adding-images-fonts-and-files": { - "title": "Adding Images, Fonts, and Files" + "title": "Adding Images, Fonts, And Files" }, "adding-relay": { "title": "Adding Relay" @@ -40,15 +40,15 @@ "title": "Advanced Configuration" }, "alternatives-to-ejecting": { - "title": "Alternatives to Ejecting" + "title": "Alternatives To Ejecting" }, "analyzing-the-bundle-size": { "title": "Analyzing the Bundle Size", - "sidebar_label": "Analyzing bundle size" + "sidebar_label": "Analyzing Bundle Size" }, "available-scripts": { "title": "Available Scripts", - "sidebar_label": "Available scripts" + "sidebar_label": "Available Scripts" }, "can-i-use-decorators": { "title": "Can I Use Decorators?" @@ -58,76 +58,66 @@ }, "debugging-tests": { "title": "Debugging Tests", - "sidebar_label": "Debugging tests" + "sidebar_label": "Debugging Tests" }, "deployment": { "title": "Deployment", "sidebar_label": "Deployment" }, "developing-components-in-isolation": { - "title": "Developing Components in Isolation" + "title": "Developing Components In Isolation" }, "documentation-intro": { - "title": "Welcome to the Documentation", - "sidebar_label": "About the docs" + "title": "Welcome To The Documentation", + "sidebar_label": "About The Docs" }, "fetching-data-with-ajax-requests": { "title": "Fetching Data with AJAX Requests", "sidebar_label": "Fetching Data" }, "folder-structure": { - "title": "Folder structure" + "title": "Folder Structure" }, "getting-started": { - "title": "Getting started", - "sidebar_label": "Getting started" + "title": "Getting Started" }, "importing-a-component": { - "title": "Importing a Component" + "title": "Importing A Component" }, "installing-a-dependency": { - "title": "Installing a Dependency" + "title": "Installing A Dependency" }, "integrating-with-an-api-backend": { - "title": "Integrating with an API Backend", - "sidebar_label": "Integrating with an API" + "title": "Integrating With An API Backend", + "sidebar_label": "Integrating With An API" }, "making-a-progressive-web-app": { - "title": "Making a Progressive Web App" + "title": "Making A Progressive Web App" }, "post-processing-css": { "title": "Post-Processing CSS" }, "pre-rendering-into-static-html-files": { - "title": "Pre-Rendering into Static HTML Files", + "title": "Pre-Rendering Into Static HTML Files", "sidebar_label": "Pre-Rendering Static HTML" }, "proxying-api-requests-in-development": { - "title": "Proxying API Requests in Development", - "sidebar_label": "Proxying in development" - }, - "publishing-components-to-npm": { - "title": "Publishing components to npm", - "sidebar_label": "Publishing to npm" + "title": "Proxying API Requests In Development", + "sidebar_label": "Proxying In Development" }, "running-tests": { - "title": "Running Tests", - "sidebar_label": "Running tests" - }, - "sending-feedback": { - "title": "Sending feedback", - "sidebar_label": "Feedback" + "title": "Running Tests" }, "setting-up-your-editor": { - "title": "Setting up your Editor", - "sidebar_label": "Editor setup" + "title": "Setting Up Your Editor", + "sidebar_label": "Editor Setup" }, "supported-browsers-features": { - "title": "Supported Browsers and Features", - "sidebar_label": "Browsers and Features" + "title": "Supported Browsers And Features", + "sidebar_label": "Browsers & Features" }, "title-and-meta-tags": { - "title": "Title and Meta Tags", + "title": "Title And Meta Tags", "sidebar_label": "Title & Meta Tags" }, "troubleshooting": { @@ -135,17 +125,17 @@ "sidebar_label": "Troubleshooting" }, "updating-to-new-releases": { - "title": "Updating to New Releases" + "title": "Updating To New Releases" }, "using-global-variables": { "title": "Using Global Variables" }, "using-https-in-development": { - "title": "Using HTTPS in Development", - "sidebar_label": "HTTPS in Development" + "title": "Using HTTPS In Development", + "sidebar_label": "HTTPS In Development" }, "using-the-public-folder": { - "title": "Using the public Folder" + "title": "Using The public Folder" } }, "links": { @@ -159,8 +149,8 @@ "Development": "Development", "Styles and Assets": "Styles and Assets", "Building your App": "Building your App", - "Back-End Integration": "Back-End Integration", "Testing": "Testing", + "Back-End Integration": "Back-End Integration", "Deployment": "Deployment", "Advanced Usage": "Advanced Usage", "Support": "Support" From 04735de777382b047f3e20c30f87de302d9ca061 Mon Sep 17 00:00:00 2001 From: Jon Clark <jonscottclark@gmail.com> Date: Tue, 9 Oct 2018 15:57:53 -0400 Subject: [PATCH 0327/1249] Update path to serviceWorker.js in docs (#5371) --- README.md | 2 +- docusaurus/docs/getting-started.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ffa70b3847f..3054e7656e6 100644 --- a/README.md +++ b/README.md @@ -82,7 +82,7 @@ my-app ├── index.css ├── index.js ├── logo.svg - └── registerServiceWorker.js + └── serviceWorker.js ``` No configuration or complicated folder structures, just the files you need to build your app.<br> diff --git a/docusaurus/docs/getting-started.md b/docusaurus/docs/getting-started.md index 1fcd24cf712..6d1a26d5c4f 100644 --- a/docusaurus/docs/getting-started.md +++ b/docusaurus/docs/getting-started.md @@ -78,7 +78,7 @@ my-app ├── index.css ├── index.js ├── logo.svg - └── registerServiceWorker.js + └── serviceWorker.js ``` No configuration or complicated folder structures, just the files you need to build your app.<br> From 5fecfee2373ebd1eda0c405b82a1c2d24afae6a1 Mon Sep 17 00:00:00 2001 From: Joe Haddad <timer150@gmail.com> Date: Wed, 10 Oct 2018 11:05:15 -0400 Subject: [PATCH 0328/1249] Clean up the behavior tests (#5365) * Speed up installs with pnp * Move to a better relative path test * Continue work on new test organization * Move mjs test to new enhanced tests * Move over last legacy test * Update behavior e2e script * Add first iteration of instructions to test readme * Add some more bad instructions * Split test command into multiple lines * Use two workers (do not run in band) * Bump install timeout * No global pollution * Fix PnP support via standard run mechanism * Prevent circular serve command * Silent yarn execs * Fix common commands by using a shell * Run with npx instead of Yarn * Remove unused scripts * Wait for localhost and fix script booting with PnP * Don't pnp locally because links will cause module resolution to whine * lint-staged is annoying * Strip Yarn out of execa runs * Set default license if none specified * Don't impose worker limit * Disable pnp for webpack messages * Add missing dependency * Disable timeout and rely on Jest * Only use 2 jest workers * Add missing dependency --- .../__snapshots__/index.test.js.snap | 5 - .../browser/graphql-with-mjs/index.test.js | 56 ------ fixtures/browser/jest.config.js | 7 - fixtures/browser/setupBrowserTests.js | 9 - fixtures/output/jest.config.js | 5 - fixtures/output/setupOutputTests.js | 6 - .../webpack-message-formatting/index.test.js | 157 ---------------- .../public/index.html | 9 - fixtures/smoke/boostrap-sass/index.test.js | 17 -- .../smoke/boostrap-sass/public/index.html | 9 - .../index.test.js | 17 -- .../public/index.html | 9 - .../index.test.js | 13 -- .../public/index.html | 9 - fixtures/smoke/relative-paths/index.test.js | 37 ---- .../smoke/relative-paths/public/index.html | 9 - fixtures/smoke/setupSmokeTests.js | 10 - fixtures/utils.js | 177 ------------------ package.json | 4 +- tasks/e2e-behavior.sh | 11 +- test/README.md | 45 +++++ .../__shared__/template}/public/index.html | 0 test/fixtures/__shared__/test-setup.js | 21 +++ test/fixtures/__shared__/util/scripts.js | 113 +++++++++++ test/fixtures/__shared__/util/setup.js | 104 ++++++++++ test/fixtures/boostrap-sass/.disable-pnp | 0 test/fixtures/boostrap-sass/index.test.js | 16 ++ .../fixtures}/boostrap-sass/package.json | 0 .../fixtures}/boostrap-sass/src/index.js | 0 .../fixtures}/boostrap-sass/src/index.sass | 0 .../index.test.js | 10 + .../package.json | 1 + .../src/index.js | 0 .../index.test.js | 8 + .../package.json | 0 .../src/App.js | 0 .../src/App.test.js | 0 .../__snapshots__/index.test.js.snap | 5 + test/fixtures/mjs-support/index.test.js | 43 +++++ .../fixtures/mjs-support}/package.json | 1 + .../fixtures/mjs-support}/src/App.js | 0 .../fixtures/mjs-support}/src/index.js | 0 test/fixtures/relative-paths/index.test.js | 25 +++ .../fixtures}/relative-paths/package.json | 0 .../fixtures}/relative-paths/src/index.css | 0 .../fixtures}/relative-paths/src/index.js | 0 .../fixtures}/relative-paths/src/logo.svg | 0 .../webpack-message-formatting/.disable-pnp | 0 .../__snapshots__/index.test.js.snap | 22 +-- .../webpack-message-formatting/index.test.js | 136 ++++++++++++++ .../webpack-message-formatting/package.json | 0 .../src/AppAliasUnknownExport.js | 0 .../src/AppBabel.js | 0 .../webpack-message-formatting/src/AppCss.css | 0 .../webpack-message-formatting/src/AppCss.js | 0 .../src/AppIncorrectCase.js | 0 .../src/AppLintError.js | 0 .../src/AppLintWarning.js | 0 .../src/AppMissingPackage.js | 0 .../src/AppNoDefault.js | 0 .../src/AppOutOfScopeImport.js | 0 .../webpack-message-formatting/src/AppSass.js | 0 .../src/AppSass.scss | 0 .../src/AppUnknownExport.js | 0 .../src/AppUnknownFile.js | 0 .../webpack-message-formatting/src/Export5.js | 0 .../src/ExportNoDefault.js | 0 .../src/FooExport.js | 0 .../webpack-message-formatting/src/index.js | 0 {fixtures/smoke => test}/jest.config.js | 5 +- 70 files changed, 547 insertions(+), 584 deletions(-) delete mode 100644 fixtures/browser/graphql-with-mjs/__snapshots__/index.test.js.snap delete mode 100644 fixtures/browser/graphql-with-mjs/index.test.js delete mode 100644 fixtures/browser/jest.config.js delete mode 100644 fixtures/browser/setupBrowserTests.js delete mode 100644 fixtures/output/jest.config.js delete mode 100644 fixtures/output/setupOutputTests.js delete mode 100644 fixtures/output/webpack-message-formatting/index.test.js delete mode 100644 fixtures/output/webpack-message-formatting/public/index.html delete mode 100644 fixtures/smoke/boostrap-sass/index.test.js delete mode 100644 fixtures/smoke/boostrap-sass/public/index.html delete mode 100644 fixtures/smoke/builds-with-multiple-runtimes/index.test.js delete mode 100644 fixtures/smoke/builds-with-multiple-runtimes/public/index.html delete mode 100644 fixtures/smoke/issue-5176-flow-class-properties/index.test.js delete mode 100644 fixtures/smoke/issue-5176-flow-class-properties/public/index.html delete mode 100644 fixtures/smoke/relative-paths/index.test.js delete mode 100644 fixtures/smoke/relative-paths/public/index.html delete mode 100644 fixtures/smoke/setupSmokeTests.js delete mode 100644 fixtures/utils.js create mode 100644 test/README.md rename {fixtures/browser/graphql-with-mjs => test/fixtures/__shared__/template}/public/index.html (100%) create mode 100644 test/fixtures/__shared__/test-setup.js create mode 100644 test/fixtures/__shared__/util/scripts.js create mode 100644 test/fixtures/__shared__/util/setup.js create mode 100644 test/fixtures/boostrap-sass/.disable-pnp create mode 100644 test/fixtures/boostrap-sass/index.test.js rename {fixtures/smoke => test/fixtures}/boostrap-sass/package.json (100%) rename {fixtures/smoke => test/fixtures}/boostrap-sass/src/index.js (100%) rename {fixtures/smoke => test/fixtures}/boostrap-sass/src/index.sass (100%) create mode 100644 test/fixtures/builds-with-multiple-runtimes/index.test.js rename {fixtures/smoke => test/fixtures}/builds-with-multiple-runtimes/package.json (82%) rename {fixtures/smoke => test/fixtures}/builds-with-multiple-runtimes/src/index.js (100%) create mode 100644 test/fixtures/issue-5176-flow-class-properties/index.test.js rename {fixtures/smoke => test/fixtures}/issue-5176-flow-class-properties/package.json (100%) rename {fixtures/smoke => test/fixtures}/issue-5176-flow-class-properties/src/App.js (100%) rename {fixtures/smoke => test/fixtures}/issue-5176-flow-class-properties/src/App.test.js (100%) create mode 100644 test/fixtures/mjs-support/__snapshots__/index.test.js.snap create mode 100644 test/fixtures/mjs-support/index.test.js rename {fixtures/browser/graphql-with-mjs => test/fixtures/mjs-support}/package.json (85%) rename {fixtures/browser/graphql-with-mjs => test/fixtures/mjs-support}/src/App.js (100%) rename {fixtures/browser/graphql-with-mjs => test/fixtures/mjs-support}/src/index.js (100%) create mode 100644 test/fixtures/relative-paths/index.test.js rename {fixtures/smoke => test/fixtures}/relative-paths/package.json (100%) rename {fixtures/smoke => test/fixtures}/relative-paths/src/index.css (100%) rename {fixtures/smoke => test/fixtures}/relative-paths/src/index.js (100%) rename {fixtures/smoke => test/fixtures}/relative-paths/src/logo.svg (100%) create mode 100644 test/fixtures/webpack-message-formatting/.disable-pnp rename {fixtures/output => test/fixtures}/webpack-message-formatting/__snapshots__/index.test.js.snap (78%) create mode 100644 test/fixtures/webpack-message-formatting/index.test.js rename {fixtures/output => test/fixtures}/webpack-message-formatting/package.json (100%) rename {fixtures/output => test/fixtures}/webpack-message-formatting/src/AppAliasUnknownExport.js (100%) rename {fixtures/output => test/fixtures}/webpack-message-formatting/src/AppBabel.js (100%) rename {fixtures/output => test/fixtures}/webpack-message-formatting/src/AppCss.css (100%) rename {fixtures/output => test/fixtures}/webpack-message-formatting/src/AppCss.js (100%) rename {fixtures/output => test/fixtures}/webpack-message-formatting/src/AppIncorrectCase.js (100%) rename {fixtures/output => test/fixtures}/webpack-message-formatting/src/AppLintError.js (100%) rename {fixtures/output => test/fixtures}/webpack-message-formatting/src/AppLintWarning.js (100%) rename {fixtures/output => test/fixtures}/webpack-message-formatting/src/AppMissingPackage.js (100%) rename {fixtures/output => test/fixtures}/webpack-message-formatting/src/AppNoDefault.js (100%) rename {fixtures/output => test/fixtures}/webpack-message-formatting/src/AppOutOfScopeImport.js (100%) rename {fixtures/output => test/fixtures}/webpack-message-formatting/src/AppSass.js (100%) rename {fixtures/output => test/fixtures}/webpack-message-formatting/src/AppSass.scss (100%) rename {fixtures/output => test/fixtures}/webpack-message-formatting/src/AppUnknownExport.js (100%) rename {fixtures/output => test/fixtures}/webpack-message-formatting/src/AppUnknownFile.js (100%) rename {fixtures/output => test/fixtures}/webpack-message-formatting/src/Export5.js (100%) rename {fixtures/output => test/fixtures}/webpack-message-formatting/src/ExportNoDefault.js (100%) rename {fixtures/output => test/fixtures}/webpack-message-formatting/src/FooExport.js (100%) rename {fixtures/output => test/fixtures}/webpack-message-formatting/src/index.js (100%) rename {fixtures/smoke => test}/jest.config.js (53%) diff --git a/fixtures/browser/graphql-with-mjs/__snapshots__/index.test.js.snap b/fixtures/browser/graphql-with-mjs/__snapshots__/index.test.js.snap deleted file mode 100644 index 5e56b8d629b..00000000000 --- a/fixtures/browser/graphql-with-mjs/__snapshots__/index.test.js.snap +++ /dev/null @@ -1,5 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`graphql with mjs entrypoint correctly bundles files in development 1`] = `"Pikachu"`; - -exports[`graphql with mjs entrypoint correctly bundles files in production 1`] = `"Pikachu"`; diff --git a/fixtures/browser/graphql-with-mjs/index.test.js b/fixtures/browser/graphql-with-mjs/index.test.js deleted file mode 100644 index 6149ed88c32..00000000000 --- a/fixtures/browser/graphql-with-mjs/index.test.js +++ /dev/null @@ -1,56 +0,0 @@ -const { - bootstrap, - startDevelopmentServer, - startProductionServer, -} = require('../../utils'); -const puppeteer = require('puppeteer'); - -beforeEach(async () => { - await bootstrap({ directory: global.testDirectory, template: __dirname }); - global.appDevPort = await startDevelopmentServer({ - directory: global.testDirectory, - }); - global.appProdPort = await startProductionServer({ - directory: global.testDirectory, - }); - // Wait for serve to boot up - await new Promise(resolve => setTimeout(resolve, 1000)); -}); - -// https://github.com/facebook/create-react-app/issues/5234 -// https://github.com/facebook/create-react-app/pull/5258 -describe('graphql with mjs entrypoint', () => { - it('correctly bundles files in development', async () => { - const browser = await puppeteer.launch({ headless: true }); - try { - const page = await browser.newPage(); - await page.goto(`http://localhost:${global.appDevPort}/`); - await page.waitForSelector('.Pokemon-Name-Data'); - const output = await page.evaluate(() => { - return Array.from( - document.getElementsByClassName('Pokemon-Name-Data') - ).pop().innerHTML; - }); - expect(output).toMatchSnapshot(); - } finally { - browser.close(); - } - }); - - it('correctly bundles files in production', async () => { - const browser = await puppeteer.launch({ headless: true }); - try { - const page = await browser.newPage(); - await page.goto(`http://localhost:${global.appProdPort}/`); - await page.waitForSelector('.Pokemon-Name-Data'); - const output = await page.evaluate(() => { - return Array.from( - document.getElementsByClassName('Pokemon-Name-Data') - ).pop().innerHTML; - }); - expect(output).toMatchSnapshot(); - } finally { - browser.close(); - } - }); -}); diff --git a/fixtures/browser/jest.config.js b/fixtures/browser/jest.config.js deleted file mode 100644 index e3ab37e7923..00000000000 --- a/fixtures/browser/jest.config.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - testEnvironment: 'node', - testMatch: ['**/*.test.js'], - testPathIgnorePatterns: ['/src/', 'node_modules'], - setupTestFrameworkScriptFile: './setupBrowserTests.js', - forceExit: true, -}; diff --git a/fixtures/browser/setupBrowserTests.js b/fixtures/browser/setupBrowserTests.js deleted file mode 100644 index 9bbc3ffb675..00000000000 --- a/fixtures/browser/setupBrowserTests.js +++ /dev/null @@ -1,9 +0,0 @@ -const fs = require('fs-extra'); -const tempy = require('tempy'); -beforeEach(() => { - global.testDirectory = tempy.directory(); - jest.setTimeout(1000 * 60 * 5); -}); -afterEach(() => { - fs.removeSync(global.testDirectory); -}); diff --git a/fixtures/output/jest.config.js b/fixtures/output/jest.config.js deleted file mode 100644 index fa718fa3ea3..00000000000 --- a/fixtures/output/jest.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - testEnvironment: 'node', - testMatch: ['**/*.test.js'], - setupTestFrameworkScriptFile: './setupOutputTests.js', -}; diff --git a/fixtures/output/setupOutputTests.js b/fixtures/output/setupOutputTests.js deleted file mode 100644 index b709406980f..00000000000 --- a/fixtures/output/setupOutputTests.js +++ /dev/null @@ -1,6 +0,0 @@ -beforeAll(() => { - jest.setTimeout(1000 * 60 * 5); -}); -beforeEach(() => { - jest.setTimeout(1000 * 60 * 5); -}); diff --git a/fixtures/output/webpack-message-formatting/index.test.js b/fixtures/output/webpack-message-formatting/index.test.js deleted file mode 100644 index 475fb108536..00000000000 --- a/fixtures/output/webpack-message-formatting/index.test.js +++ /dev/null @@ -1,157 +0,0 @@ -const { - bootstrap, - getOutputDevelopment, - getOutputProduction, -} = require('../../utils'); -const fs = require('fs-extra'); -const path = require('path'); -const Semaphore = require('async-sema'); -const tempy = require('tempy'); - -describe('webpack message formatting', () => { - const semaphore = new Semaphore(1, { capacity: Infinity }); - let testDirectory; - beforeAll(async () => { - testDirectory = tempy.directory(); - await bootstrap({ directory: testDirectory, template: __dirname }); - }); - beforeEach(async () => { - await semaphore.acquire(); - }); - afterEach(async () => { - fs.removeSync(path.join(testDirectory, 'src', 'App.js')); - semaphore.release(); - }); - - it('formats babel syntax error', async () => { - fs.copySync( - path.join(__dirname, 'src', 'AppBabel.js'), - path.join(testDirectory, 'src', 'App.js') - ); - - const response = await getOutputProduction({ directory: testDirectory }); - expect(response).toMatchSnapshot(); - }); - - it('formats css syntax error', async () => { - fs.copySync( - path.join(__dirname, 'src', 'AppCss.js'), - path.join(testDirectory, 'src', 'App.js') - ); - - const response = await getOutputProduction({ directory: testDirectory }); - expect(response).toMatchSnapshot(); - }); - - it('formats unknown export', async () => { - fs.copySync( - path.join(__dirname, 'src', 'AppUnknownExport.js'), - path.join(testDirectory, 'src', 'App.js') - ); - - const response = await getOutputProduction({ directory: testDirectory }); - expect(response).toMatchSnapshot(); - }); - - it('formats aliased unknown export', async () => { - fs.copySync( - path.join(__dirname, 'src', 'AppAliasUnknownExport.js'), - path.join(testDirectory, 'src', 'App.js') - ); - - const response = await getOutputProduction({ directory: testDirectory }); - expect(response).toMatchSnapshot(); - }); - - it('formats no default export', async () => { - fs.copySync( - path.join(__dirname, 'src', 'AppNoDefault.js'), - path.join(testDirectory, 'src', 'App.js') - ); - - const response = await getOutputProduction({ directory: testDirectory }); - expect(response).toMatchSnapshot(); - }); - - it('formats missing package', async () => { - fs.copySync( - path.join(__dirname, 'src', 'AppMissingPackage.js'), - path.join(testDirectory, 'src', 'App.js') - ); - - const response = await getOutputProduction({ directory: testDirectory }); - expect(response).toMatchSnapshot(); - }); - - it('formats eslint warning', async () => { - fs.copySync( - path.join(__dirname, 'src', 'AppLintWarning.js'), - path.join(testDirectory, 'src', 'App.js') - ); - - const response = await getOutputProduction({ directory: testDirectory }); - const sizeIndex = response.stdout.indexOf('File sizes after gzip'); - if (sizeIndex !== -1) { - response.stdout = response.stdout.substring(0, sizeIndex); - } - expect(response).toMatchSnapshot(); - }); - - it('formats eslint error', async () => { - fs.copySync( - path.join(__dirname, 'src', 'AppLintError.js'), - path.join(testDirectory, 'src', 'App.js') - ); - - const response = await getOutputProduction({ directory: testDirectory }); - expect(response).toMatchSnapshot(); - }); - - it('helps when users tries to use sass', async () => { - fs.copySync( - path.join(__dirname, 'src', 'AppSass.js'), - path.join(testDirectory, 'src', 'App.js') - ); - - const response = await getOutputProduction({ directory: testDirectory }); - expect(response).toMatchSnapshot(); - }); - - it('formats file not found error', async () => { - fs.copySync( - path.join(__dirname, 'src', 'AppUnknownFile.js'), - path.join(testDirectory, 'src', 'App.js') - ); - - const response = await getOutputProduction({ directory: testDirectory }); - expect(response).toMatchSnapshot(); - }); - - it('formats case sensitive path error', async () => { - fs.copySync( - path.join(__dirname, 'src', 'AppIncorrectCase.js'), - path.join(testDirectory, 'src', 'App.js') - ); - - const response = await getOutputDevelopment({ directory: testDirectory }); - if (process.platform === 'darwin') { - expect(response.stderr).toMatch( - `Cannot find file: 'export5.js' does not match the corresponding name on disk: './src/Export5.js'.` - ); - } else { - expect(response.stderr).not.toEqual(''); // TODO: figure out how we can test this on Linux/Windows - // I believe getting this working requires we tap into enhanced-resolve - // pipeline, which is debt we don't want to take on right now. - } - }); - - it('formats out of scope error', async () => { - fs.copySync( - path.join(__dirname, 'src', 'AppOutOfScopeImport.js'), - path.join(testDirectory, 'src', 'App.js') - ); - - const response = await getOutputProduction({ directory: testDirectory }); - expect(response).toMatchSnapshot(); - }); -}); diff --git a/fixtures/output/webpack-message-formatting/public/index.html b/fixtures/output/webpack-message-formatting/public/index.html deleted file mode 100644 index 86010b24067..00000000000 --- a/fixtures/output/webpack-message-formatting/public/index.html +++ /dev/null @@ -1,9 +0,0 @@ -<!DOCTYPE html> - <html lang="en"> - <head> - <title>React App - - -
- - diff --git a/fixtures/smoke/boostrap-sass/index.test.js b/fixtures/smoke/boostrap-sass/index.test.js deleted file mode 100644 index 44f3a6c9d13..00000000000 --- a/fixtures/smoke/boostrap-sass/index.test.js +++ /dev/null @@ -1,17 +0,0 @@ -const { - bootstrap, - isSuccessfulDevelopment, - isSuccessfulProduction, -} = require('../../utils'); -beforeEach(async () => { - await bootstrap({ directory: global.testDirectory, template: __dirname }); -}); - -describe('bootstrap sass', () => { - it('builds in development', async () => { - await isSuccessfulDevelopment({ directory: global.testDirectory }); - }); - it('builds in production', async () => { - await isSuccessfulProduction({ directory: global.testDirectory }); - }); -}); diff --git a/fixtures/smoke/boostrap-sass/public/index.html b/fixtures/smoke/boostrap-sass/public/index.html deleted file mode 100644 index 86010b24067..00000000000 --- a/fixtures/smoke/boostrap-sass/public/index.html +++ /dev/null @@ -1,9 +0,0 @@ - - - - React App - - -
- - diff --git a/fixtures/smoke/builds-with-multiple-runtimes/index.test.js b/fixtures/smoke/builds-with-multiple-runtimes/index.test.js deleted file mode 100644 index 990ea7b357c..00000000000 --- a/fixtures/smoke/builds-with-multiple-runtimes/index.test.js +++ /dev/null @@ -1,17 +0,0 @@ -const { - bootstrap, - isSuccessfulDevelopment, - isSuccessfulProduction, -} = require('../../utils'); -beforeEach(async () => { - await bootstrap({ directory: global.testDirectory, template: __dirname }); -}); - -describe('builds-with-multiple-runtimes', () => { - it('builds in development', async () => { - await isSuccessfulDevelopment({ directory: global.testDirectory }); - }); - it('builds in production', async () => { - await isSuccessfulProduction({ directory: global.testDirectory }); - }); -}); diff --git a/fixtures/smoke/builds-with-multiple-runtimes/public/index.html b/fixtures/smoke/builds-with-multiple-runtimes/public/index.html deleted file mode 100644 index 86010b24067..00000000000 --- a/fixtures/smoke/builds-with-multiple-runtimes/public/index.html +++ /dev/null @@ -1,9 +0,0 @@ - - - - React App - - -
- - diff --git a/fixtures/smoke/issue-5176-flow-class-properties/index.test.js b/fixtures/smoke/issue-5176-flow-class-properties/index.test.js deleted file mode 100644 index 72a7a3daf0e..00000000000 --- a/fixtures/smoke/issue-5176-flow-class-properties/index.test.js +++ /dev/null @@ -1,13 +0,0 @@ -const { bootstrap, isSuccessfulTest } = require('../../utils'); -beforeEach(async () => { - await bootstrap({ directory: global.testDirectory, template: __dirname }); -}); - -describe('issue #5176 (flow class properties interaction)', () => { - it('passes tests', async () => { - await isSuccessfulTest({ - directory: global.testDirectory, - jestEnvironment: 'node', - }); - }); -}); diff --git a/fixtures/smoke/issue-5176-flow-class-properties/public/index.html b/fixtures/smoke/issue-5176-flow-class-properties/public/index.html deleted file mode 100644 index 86010b24067..00000000000 --- a/fixtures/smoke/issue-5176-flow-class-properties/public/index.html +++ /dev/null @@ -1,9 +0,0 @@ - - - - React App - - -
- - diff --git a/fixtures/smoke/relative-paths/index.test.js b/fixtures/smoke/relative-paths/index.test.js deleted file mode 100644 index 1f367f64350..00000000000 --- a/fixtures/smoke/relative-paths/index.test.js +++ /dev/null @@ -1,37 +0,0 @@ -const fs = require('fs-extra'); -const globby = require('globby'); -const path = require('path'); -const { - bootstrap, - isSuccessfulDevelopment, - isSuccessfulProduction, -} = require('../../utils'); -beforeEach(async () => { - await bootstrap({ directory: global.testDirectory, template: __dirname }); -}); - -describe('relative paths', () => { - // TODO: enable when development relative paths are supported - xit('builds in development', async () => { - await isSuccessfulDevelopment({ directory: global.testDirectory }); - }); - it('builds in production', async () => { - await isSuccessfulProduction({ directory: global.testDirectory }); - - const buildDir = path.join(global.testDirectory, 'build'); - const cssFile = path.join( - buildDir, - globby.sync('**/*.css', { cwd: buildDir }).pop() - ); - const svgFile = path.join( - buildDir, - globby.sync('**/*.svg', { cwd: buildDir }).pop() - ); - const desiredPath = /url\((.+?)\)/ - .exec(fs.readFileSync(cssFile, 'utf8')) - .pop(); - expect(path.resolve(path.join(path.dirname(cssFile), desiredPath))).toBe( - path.resolve(svgFile) - ); - }); -}); diff --git a/fixtures/smoke/relative-paths/public/index.html b/fixtures/smoke/relative-paths/public/index.html deleted file mode 100644 index 86010b24067..00000000000 --- a/fixtures/smoke/relative-paths/public/index.html +++ /dev/null @@ -1,9 +0,0 @@ - - - - React App - - -
- - diff --git a/fixtures/smoke/setupSmokeTests.js b/fixtures/smoke/setupSmokeTests.js deleted file mode 100644 index 1d4038de417..00000000000 --- a/fixtures/smoke/setupSmokeTests.js +++ /dev/null @@ -1,10 +0,0 @@ -const fs = require('fs-extra'); -const tempy = require('tempy'); - -beforeEach(() => { - global.testDirectory = tempy.directory(); - jest.setTimeout(1000 * 60 * 5); -}); -afterEach(() => { - fs.removeSync(global.testDirectory); -}); diff --git a/fixtures/utils.js b/fixtures/utils.js deleted file mode 100644 index 0c08a32746f..00000000000 --- a/fixtures/utils.js +++ /dev/null @@ -1,177 +0,0 @@ -const execa = require('execa'); -const fs = require('fs-extra'); -const getPort = require('get-port'); -const path = require('path'); -const os = require('os'); -const stripAnsi = require('strip-ansi'); - -async function bootstrap({ directory, template }) { - const shouldInstallScripts = process.env.CI && process.env.CI !== 'false'; - await Promise.all( - ['public/', 'src/', 'package.json'].map(async file => - fs.copy(path.join(template, file), path.join(directory, file)) - ) - ); - if (shouldInstallScripts) { - const packageJson = fs.readJsonSync(path.join(directory, 'package.json')); - packageJson.dependencies = Object.assign({}, packageJson.dependencies, { - 'react-scripts': 'latest', - }); - fs.writeJsonSync(path.join(directory, 'package.json'), packageJson); - } - await execa('yarnpkg', ['install', '--mutex', 'network'], { cwd: directory }); - if (!shouldInstallScripts) { - fs.ensureSymlinkSync( - path.resolve( - path.join( - __dirname, - '..', - 'packages', - 'react-scripts', - 'bin', - 'react-scripts.js' - ) - ), - path.join(directory, 'node_modules', '.bin', 'react-scripts') - ); - await execa('yarnpkg', ['link', 'react-scripts'], { cwd: directory }); - } -} - -async function isSuccessfulDevelopment({ directory }) { - const { stdout, stderr } = await execa( - './node_modules/.bin/react-scripts', - ['start', '--smoke-test'], - { - cwd: directory, - env: { BROWSER: 'none', PORT: await getPort() }, - } - ); - - if (!/Compiled successfully/.test(stdout)) { - throw new Error(`stdout: ${stdout}${os.EOL + os.EOL}stderr: ${stderr}`); - } -} - -async function isSuccessfulProduction({ directory }) { - const { stdout, stderr } = await execa( - './node_modules/.bin/react-scripts', - ['build'], - { - cwd: directory, - } - ); - - if (!/Compiled successfully/.test(stdout)) { - throw new Error(`stdout: ${stdout}${os.EOL + os.EOL}stderr: ${stderr}`); - } -} - -async function isSuccessfulTest({ directory, jestEnvironment = 'jsdom' }) { - await execa( - './node_modules/.bin/react-scripts', - ['test', '--env', jestEnvironment, '--ci'], - { - cwd: directory, - env: { CI: 'true' }, - } - ); -} - -async function getOutputDevelopment({ directory, env = {} }) { - try { - const { stdout, stderr } = await execa( - './node_modules/.bin/react-scripts', - ['start', '--smoke-test'], - { - cwd: directory, - env: Object.assign( - {}, - { - BROWSER: 'none', - PORT: await getPort(), - CI: 'false', - FORCE_COLOR: '0', - }, - env - ), - } - ); - return { stdout: stripAnsi(stdout), stderr: stripAnsi(stderr) }; - } catch (err) { - return { - stdout: '', - stderr: stripAnsi( - err.message - .split(os.EOL) - .slice(2) - .join(os.EOL) - ), - }; - } -} - -async function getOutputProduction({ directory, env = {} }) { - try { - const { stdout, stderr } = await execa( - './node_modules/.bin/react-scripts', - ['build'], - { - cwd: directory, - env: Object.assign({}, { CI: 'false', FORCE_COLOR: '0' }, env), - } - ); - return { stdout: stripAnsi(stdout), stderr: stripAnsi(stderr) }; - } catch (err) { - return { - stdout: '', - stderr: stripAnsi( - err.message - .split(os.EOL) - .slice(2) - .join(os.EOL) - ), - }; - } -} - -async function startDevelopmentServer({ directory, env = {} }) { - const port = await getPort(); - execa('./node_modules/.bin/react-scripts', ['start'], { - cwd: directory, - env: Object.assign( - {}, - { - BROWSER: 'none', - PORT: port, - CI: 'false', - FORCE_COLOR: '0', - }, - env - ), - }); - return port; -} - -async function startProductionServer({ directory, env = {} }) { - const port = await getPort(); - await execa('./node_modules/.bin/react-scripts', ['build'], { - cwd: directory, - env: Object.assign({}, { CI: 'false' }, env), - }); - execa('./node_modules/.bin/serve', ['-s', 'build', '-p', port], { - cwd: directory, - }); - return port; -} - -module.exports = { - bootstrap, - isSuccessfulDevelopment, - isSuccessfulProduction, - isSuccessfulTest, - getOutputDevelopment, - getOutputProduction, - startDevelopmentServer, - startProductionServer, -}; diff --git a/package.json b/package.json index ec66107fa58..71eaa2a6d24 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,6 @@ "compile:lockfile": "node tasks/compile-lockfile.js" }, "devDependencies": { - "async-sema": "^2.1.3", "eslint": "5.6.0", "execa": "1.0.0", "fs-extra": "^7.0.0", @@ -36,7 +35,8 @@ "puppeteer": "^1.8.0", "strip-ansi": "^4.0.0", "svg-term-cli": "^2.1.1", - "tempy": "^0.2.1" + "tempy": "^0.2.1", + "wait-for-localhost": "2.0.1" }, "husky": { "hooks": { diff --git a/tasks/e2e-behavior.sh b/tasks/e2e-behavior.sh index f4ed77659ad..1ca2e012a2e 100755 --- a/tasks/e2e-behavior.sh +++ b/tasks/e2e-behavior.sh @@ -95,14 +95,9 @@ git clean -df # Now that we have published them, run all tests as if they were released. # ****************************************************************************** -# Browser tests -CI=true ./node_modules/.bin/jest --config fixtures/browser/jest.config.js - -# Smoke tests -CI=true ./node_modules/.bin/jest --config fixtures/smoke/jest.config.js - -# Output tests -CI=true ./node_modules/.bin/jest --config fixtures/output/jest.config.js +# Run all tests +cd test/ +CI=true ../node_modules/.bin/jest -w 2 # Cleanup cleanup diff --git a/test/README.md b/test/README.md new file mode 100644 index 00000000000..f6340108381 --- /dev/null +++ b/test/README.md @@ -0,0 +1,45 @@ +# Create React App End-to-End Tests + +## Usage + +These tests ensure various functionality contracts are upheld across dependency upgrades. + +To get started locally, run `cd packages/react-scripts/ && yarn link; cd ../../test/ && ../node_modules/.bin/jest --watchAll`. + +It's suggested that you filter down tests to avoid re-running everything. The most common tests will be the webpack messages.
+To only run the webpack messages, type `p` followed by `webpack-message` and press `[enter]`. + +## How do these work? + +### `fixtures/` + +Each `fixture/` gets spun up in a temporary directory and has its dependencies installed with Yarn PnP (for speed).
+To opt-out of PnP, create a `.disable-pnp` file in the specific fixture directory. + +A global (`testSetup`) is created which has a few interesting properties: + +- `testSetup.testDirectory`: the directory containing the test application +- `testSetup.scripts`: an object allowing you to invoke `react-scripts` commands and friends + +All tests for each `fixture/` are then ran. + +#### `testSetup.scripts` + +##### `start` + +This will run the `start` command, it can be ran asynchronously or blocking if `{ smoke: true }` is used.
+If ran asynchronously, it will return the `port` and a `done` function to clean up the process. +If ran blocking, it will return the `stdout` and `stderr` of the process. + +##### `build` + +This will run the `build` command and return the `stdout` and `stderr` of the process. + +##### `test` + +This will run the `test` command and return the `stdout` and `stderr` of the process. + +##### `serve` + +This will run serve the application. +It will return the `port` and a `done` function to clean up the process. diff --git a/fixtures/browser/graphql-with-mjs/public/index.html b/test/fixtures/__shared__/template/public/index.html similarity index 100% rename from fixtures/browser/graphql-with-mjs/public/index.html rename to test/fixtures/__shared__/template/public/index.html diff --git a/test/fixtures/__shared__/test-setup.js b/test/fixtures/__shared__/test-setup.js new file mode 100644 index 00000000000..30d1ac644a2 --- /dev/null +++ b/test/fixtures/__shared__/test-setup.js @@ -0,0 +1,21 @@ +const path = require('path'); +const fs = require('fs-extra'); +const TestSetup = require('./util/setup'); + +const fixturePath = path.dirname(module.parent.filename); +const fixtureName = path.basename(fixturePath); +const disablePnp = fs.existsSync(path.resolve(fixturePath, '.disable-pnp')); +const testSetup = new TestSetup(fixtureName, fixturePath, { + pnp: !disablePnp, +}); + +beforeAll(async () => { + await testSetup.setup(); +}, 1000 * 60 * 5); +afterAll(async () => { + await testSetup.teardown(); +}); + +beforeEach(() => jest.setTimeout(1000 * 60 * 5)); + +module.exports = testSetup; diff --git a/test/fixtures/__shared__/util/scripts.js b/test/fixtures/__shared__/util/scripts.js new file mode 100644 index 00000000000..0965c654037 --- /dev/null +++ b/test/fixtures/__shared__/util/scripts.js @@ -0,0 +1,113 @@ +const execa = require('execa'); +const getPort = require('get-port'); +const os = require('os'); +const stripAnsi = require('strip-ansi'); +const waitForLocalhost = require('wait-for-localhost'); + +function stripYarn(output) { + let lines = output.split('\n'); + + let runIndex = lines.findIndex(line => line.match(/^yarn run/)); + if (runIndex !== -1) { + lines.splice(0, runIndex + 2); + lines = lines.filter(line => !line.match(/^info Visit.*yarnpkg/)); + } + + return lines.join('\n'); +} + +function execaSafe(...args) { + return execa(...args) + .then(({ stdout, stderr, ...rest }) => ({ + fulfilled: true, + rejected: false, + stdout: stripYarn(stripAnsi(stdout)), + stderr: stripYarn(stripAnsi(stderr)), + ...rest, + })) + .catch(err => ({ + fulfilled: false, + rejected: true, + reason: err, + stdout: '', + stderr: stripYarn( + stripAnsi( + err.message + .split(os.EOL) + .slice(2) + .join(os.EOL) + ) + ), + })); +} + +module.exports = class ReactScripts { + constructor(root) { + this.root = root; + } + + async start({ smoke = false, env = {} } = {}) { + const port = await getPort(); + const options = { + cwd: this.root, + env: Object.assign( + {}, + { + CI: 'false', + FORCE_COLOR: '0', + BROWSER: 'none', + PORT: port, + }, + env + ), + }; + + if (smoke) { + return await execaSafe('yarnpkg', ['start', '--smoke-test'], options); + } + const startProcess = execa('yarnpkg', ['start'], options); + await waitForLocalhost(port); + return { + port, + done() { + startProcess.kill('SIGKILL'); + }, + }; + } + + async build({ env = {} } = {}) { + return await execaSafe('yarnpkg', ['build'], { + cwd: this.root, + env: Object.assign({}, { CI: 'false', FORCE_COLOR: '0' }, env), + }); + } + + async serve() { + const port = await getPort(); + const serveProcess = execa( + 'yarnpkg', + ['serve', '--', '-p', port, '-s', 'build/'], + { + cwd: this.root, + } + ); + await waitForLocalhost(port); + return { + port, + done() { + serveProcess.kill('SIGKILL'); + }, + }; + } + + async test({ jestEnvironment = 'jsdom', env = {} } = {}) { + return await execaSafe( + 'yarnpkg', + ['test', '--env', jestEnvironment, '--ci'], + { + cwd: this.root, + env: Object.assign({}, { CI: 'true' }, env), + } + ); + } +}; diff --git a/test/fixtures/__shared__/util/setup.js b/test/fixtures/__shared__/util/setup.js new file mode 100644 index 00000000000..8dd7d2e3e84 --- /dev/null +++ b/test/fixtures/__shared__/util/setup.js @@ -0,0 +1,104 @@ +const execa = require('execa'); +const fs = require('fs-extra'); +const path = require('path'); +const tempy = require('tempy'); +const ReactScripts = require('./scripts'); + +module.exports = class TestSetup { + constructor(fixtureName, templateDirectory, { pnp = true } = {}) { + this.fixtureName = fixtureName; + + this.templateDirectory = templateDirectory; + this.testDirectory = null; + this._scripts = null; + + this.setup = this.setup.bind(this); + this.teardown = this.teardown.bind(this); + + this.isLocal = !(process.env.CI && process.env.CI !== 'false'); + this.settings = { pnp: pnp && !this.isLocal }; + } + + async setup() { + await this.teardown(); + this.testDirectory = tempy.directory(); + await fs.copy( + path.resolve(__dirname, '..', 'template'), + this.testDirectory + ); + await fs.copy(this.templateDirectory, this.testDirectory); + await fs.remove(path.resolve(this.testDirectory, 'test.partial.js')); + await fs.remove(path.resolve(this.testDirectory, '.disable-pnp')); + + const packageJson = await fs.readJson( + path.resolve(this.testDirectory, 'package.json') + ); + + const shouldInstallScripts = !this.isLocal; + if (shouldInstallScripts) { + packageJson.dependencies = Object.assign({}, packageJson.dependencies, { + 'react-scripts': 'latest', + }); + } + packageJson.scripts = Object.assign({}, packageJson.scripts, { + start: 'react-scripts start', + build: 'react-scripts build', + test: 'react-scripts test', + }); + packageJson.license = packageJson.license || 'UNLICENSED'; + await fs.writeJson( + path.resolve(this.testDirectory, 'package.json'), + packageJson + ); + + await execa( + 'yarnpkg', + [ + 'install', + this.settings.pnp ? '--enable-pnp' : null, + '--mutex', + 'network', + ].filter(Boolean), + { + cwd: this.testDirectory, + } + ); + + if (!shouldInstallScripts) { + await fs.ensureSymlink( + path.resolve( + path.resolve( + __dirname, + '../../../..', + 'packages', + 'react-scripts', + 'bin', + 'react-scripts.js' + ) + ), + path.join(this.testDirectory, 'node_modules', '.bin', 'react-scripts') + ); + await execa('yarnpkg', ['link', 'react-scripts'], { + cwd: this.testDirectory, + }); + } + } + + get scripts() { + if (this.testDirectory == null) { + return null; + } + if (this._scripts == null) { + this._scripts = new ReactScripts(this.testDirectory); + } + return this._scripts; + } + + async teardown() { + if (this.testDirectory != null) { + await fs.remove(this.testDirectory); + this.testDirectory = null; + this._scripts = null; + } + } +}; diff --git a/test/fixtures/boostrap-sass/.disable-pnp b/test/fixtures/boostrap-sass/.disable-pnp new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/fixtures/boostrap-sass/index.test.js b/test/fixtures/boostrap-sass/index.test.js new file mode 100644 index 00000000000..4be53d03460 --- /dev/null +++ b/test/fixtures/boostrap-sass/index.test.js @@ -0,0 +1,16 @@ +const testSetup = require('../__shared__/test-setup'); + +if (testSetup.isLocal) { + // TODO: make this work locally + test('skipped locally', () => {}); +} else { + test('builds in development', async () => { + const { fulfilled } = await testSetup.scripts.start({ smoke: true }); + expect(fulfilled).toBe(true); + }); + + test('builds in production', async () => { + const { fulfilled } = await testSetup.scripts.build(); + expect(fulfilled).toBe(true); + }); +} diff --git a/fixtures/smoke/boostrap-sass/package.json b/test/fixtures/boostrap-sass/package.json similarity index 100% rename from fixtures/smoke/boostrap-sass/package.json rename to test/fixtures/boostrap-sass/package.json diff --git a/fixtures/smoke/boostrap-sass/src/index.js b/test/fixtures/boostrap-sass/src/index.js similarity index 100% rename from fixtures/smoke/boostrap-sass/src/index.js rename to test/fixtures/boostrap-sass/src/index.js diff --git a/fixtures/smoke/boostrap-sass/src/index.sass b/test/fixtures/boostrap-sass/src/index.sass similarity index 100% rename from fixtures/smoke/boostrap-sass/src/index.sass rename to test/fixtures/boostrap-sass/src/index.sass diff --git a/test/fixtures/builds-with-multiple-runtimes/index.test.js b/test/fixtures/builds-with-multiple-runtimes/index.test.js new file mode 100644 index 00000000000..64d328aee0b --- /dev/null +++ b/test/fixtures/builds-with-multiple-runtimes/index.test.js @@ -0,0 +1,10 @@ +const testSetup = require('../__shared__/test-setup'); + +test('builds in development', async () => { + const { fulfilled } = await testSetup.scripts.start({ smoke: true }); + expect(fulfilled).toBe(true); +}); +test('builds in production', async () => { + const { fulfilled } = await testSetup.scripts.build(); + expect(fulfilled).toBe(true); +}); diff --git a/fixtures/smoke/builds-with-multiple-runtimes/package.json b/test/fixtures/builds-with-multiple-runtimes/package.json similarity index 82% rename from fixtures/smoke/builds-with-multiple-runtimes/package.json rename to test/fixtures/builds-with-multiple-runtimes/package.json index b2792516c6e..b0652fe7fc5 100644 --- a/fixtures/smoke/builds-with-multiple-runtimes/package.json +++ b/test/fixtures/builds-with-multiple-runtimes/package.json @@ -1,6 +1,7 @@ { "dependencies": { "dva": "2.4.0", + "history": "4.7.2", "ky": "0.3.0", "react": "latest", "react-dom": "latest" diff --git a/fixtures/smoke/builds-with-multiple-runtimes/src/index.js b/test/fixtures/builds-with-multiple-runtimes/src/index.js similarity index 100% rename from fixtures/smoke/builds-with-multiple-runtimes/src/index.js rename to test/fixtures/builds-with-multiple-runtimes/src/index.js diff --git a/test/fixtures/issue-5176-flow-class-properties/index.test.js b/test/fixtures/issue-5176-flow-class-properties/index.test.js new file mode 100644 index 00000000000..fa09a2222af --- /dev/null +++ b/test/fixtures/issue-5176-flow-class-properties/index.test.js @@ -0,0 +1,8 @@ +const testSetup = require('../__shared__/test-setup'); + +test('passes tests', async () => { + const { fulfilled } = await testSetup.scripts.test({ + jestEnvironment: 'node', + }); + expect(fulfilled).toBe(true); +}); diff --git a/fixtures/smoke/issue-5176-flow-class-properties/package.json b/test/fixtures/issue-5176-flow-class-properties/package.json similarity index 100% rename from fixtures/smoke/issue-5176-flow-class-properties/package.json rename to test/fixtures/issue-5176-flow-class-properties/package.json diff --git a/fixtures/smoke/issue-5176-flow-class-properties/src/App.js b/test/fixtures/issue-5176-flow-class-properties/src/App.js similarity index 100% rename from fixtures/smoke/issue-5176-flow-class-properties/src/App.js rename to test/fixtures/issue-5176-flow-class-properties/src/App.js diff --git a/fixtures/smoke/issue-5176-flow-class-properties/src/App.test.js b/test/fixtures/issue-5176-flow-class-properties/src/App.test.js similarity index 100% rename from fixtures/smoke/issue-5176-flow-class-properties/src/App.test.js rename to test/fixtures/issue-5176-flow-class-properties/src/App.test.js diff --git a/test/fixtures/mjs-support/__snapshots__/index.test.js.snap b/test/fixtures/mjs-support/__snapshots__/index.test.js.snap new file mode 100644 index 00000000000..1fff97685f1 --- /dev/null +++ b/test/fixtures/mjs-support/__snapshots__/index.test.js.snap @@ -0,0 +1,5 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`can use mjs library in development 1`] = `"Pikachu"`; + +exports[`can use mjs library in production 1`] = `"Pikachu"`; diff --git a/test/fixtures/mjs-support/index.test.js b/test/fixtures/mjs-support/index.test.js new file mode 100644 index 00000000000..767af17b564 --- /dev/null +++ b/test/fixtures/mjs-support/index.test.js @@ -0,0 +1,43 @@ +const testSetup = require('../__shared__/test-setup'); + +const puppeteer = require('puppeteer'); + +test('can use mjs library in development', async () => { + const { port, done } = await testSetup.scripts.start(); + + const browser = await puppeteer.launch({ headless: true }); + try { + const page = await browser.newPage(); + await page.goto(`http://localhost:${port}/`); + await page.waitForSelector('.Pokemon-Name-Data', { timeout: 0 }); + const output = await page.evaluate(() => { + return Array.from( + document.getElementsByClassName('Pokemon-Name-Data') + ).pop().innerHTML; + }); + expect(output).toMatchSnapshot(); + } finally { + browser.close(); + done(); + } +}); +test('can use mjs library in production', async () => { + await testSetup.scripts.build(); + const { port, done } = await testSetup.scripts.serve(); + + const browser = await puppeteer.launch({ headless: true }); + try { + const page = await browser.newPage(); + await page.goto(`http://localhost:${port}/`); + await page.waitForSelector('.Pokemon-Name-Data', { timeout: 0 }); + const output = await page.evaluate(() => { + return Array.from( + document.getElementsByClassName('Pokemon-Name-Data') + ).pop().innerHTML; + }); + expect(output).toMatchSnapshot(); + } finally { + browser.close(); + done(); + } +}); diff --git a/fixtures/browser/graphql-with-mjs/package.json b/test/fixtures/mjs-support/package.json similarity index 85% rename from fixtures/browser/graphql-with-mjs/package.json rename to test/fixtures/mjs-support/package.json index ad9cf3d89d7..47b6cf58047 100644 --- a/fixtures/browser/graphql-with-mjs/package.json +++ b/test/fixtures/mjs-support/package.json @@ -3,6 +3,7 @@ "apollo-boost": "0.1.16", "graphql": "14.0.2", "react-apollo": "2.2.1", + "apollo-client": "2.4.2", "react": "latest", "react-dom": "latest", "serve": "10.0.2" diff --git a/fixtures/browser/graphql-with-mjs/src/App.js b/test/fixtures/mjs-support/src/App.js similarity index 100% rename from fixtures/browser/graphql-with-mjs/src/App.js rename to test/fixtures/mjs-support/src/App.js diff --git a/fixtures/browser/graphql-with-mjs/src/index.js b/test/fixtures/mjs-support/src/index.js similarity index 100% rename from fixtures/browser/graphql-with-mjs/src/index.js rename to test/fixtures/mjs-support/src/index.js diff --git a/test/fixtures/relative-paths/index.test.js b/test/fixtures/relative-paths/index.test.js new file mode 100644 index 00000000000..f29dc2b3589 --- /dev/null +++ b/test/fixtures/relative-paths/index.test.js @@ -0,0 +1,25 @@ +const testSetup = require('../__shared__/test-setup'); + +const fs = require('fs-extra'); +const globby = require('globby'); +const path = require('path'); + +test('contains a relative path in production build', async () => { + await testSetup.scripts.build(); + + const buildDir = path.join(testSetup.testDirectory, 'build'); + const cssFile = path.join( + buildDir, + globby.sync('**/*.css', { cwd: buildDir }).pop() + ); + const svgFile = path.join( + buildDir, + globby.sync('**/*.svg', { cwd: buildDir }).pop() + ); + const desiredPath = /url\((.+?)\)/ + .exec(fs.readFileSync(cssFile, 'utf8')) + .pop(); + expect(path.resolve(path.join(path.dirname(cssFile), desiredPath))).toBe( + path.resolve(svgFile) + ); +}); diff --git a/fixtures/smoke/relative-paths/package.json b/test/fixtures/relative-paths/package.json similarity index 100% rename from fixtures/smoke/relative-paths/package.json rename to test/fixtures/relative-paths/package.json diff --git a/fixtures/smoke/relative-paths/src/index.css b/test/fixtures/relative-paths/src/index.css similarity index 100% rename from fixtures/smoke/relative-paths/src/index.css rename to test/fixtures/relative-paths/src/index.css diff --git a/fixtures/smoke/relative-paths/src/index.js b/test/fixtures/relative-paths/src/index.js similarity index 100% rename from fixtures/smoke/relative-paths/src/index.js rename to test/fixtures/relative-paths/src/index.js diff --git a/fixtures/smoke/relative-paths/src/logo.svg b/test/fixtures/relative-paths/src/logo.svg similarity index 100% rename from fixtures/smoke/relative-paths/src/logo.svg rename to test/fixtures/relative-paths/src/logo.svg diff --git a/test/fixtures/webpack-message-formatting/.disable-pnp b/test/fixtures/webpack-message-formatting/.disable-pnp new file mode 100644 index 00000000000..e69de29bb2d diff --git a/fixtures/output/webpack-message-formatting/__snapshots__/index.test.js.snap b/test/fixtures/webpack-message-formatting/__snapshots__/index.test.js.snap similarity index 78% rename from fixtures/output/webpack-message-formatting/__snapshots__/index.test.js.snap rename to test/fixtures/webpack-message-formatting/__snapshots__/index.test.js.snap index 6a510ef70b9..a70b43eff15 100644 --- a/fixtures/output/webpack-message-formatting/__snapshots__/index.test.js.snap +++ b/test/fixtures/webpack-message-formatting/__snapshots__/index.test.js.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`webpack message formatting formats aliased unknown export 1`] = ` +exports[`formats aliased unknown export 1`] = ` Object { "stderr": "Creating an optimized production build... Failed to compile. @@ -14,7 +14,7 @@ Attempted import error: 'bar' is not exported from './AppUnknownExport' (importe } `; -exports[`webpack message formatting formats babel syntax error 1`] = ` +exports[`formats babel syntax error 1`] = ` Object { "stderr": "Creating an optimized production build... Failed to compile. @@ -36,7 +36,7 @@ Syntax error: Unterminated JSX contents (8:13) } `; -exports[`webpack message formatting formats css syntax error 1`] = ` +exports[`formats css syntax error 1`] = ` Object { "stderr": "Creating an optimized production build... Failed to compile. @@ -56,7 +56,7 @@ Syntax error: Unexpected } (3:2) } `; -exports[`webpack message formatting formats eslint error 1`] = ` +exports[`formats eslint error 1`] = ` Object { "stderr": "Creating an optimized production build... Failed to compile. @@ -72,7 +72,7 @@ Search for the keywords to learn more about each error. } `; -exports[`webpack message formatting formats eslint warning 1`] = ` +exports[`formats eslint warning 1`] = ` Object { "stderr": "", "stdout": "Creating an optimized production build... @@ -88,7 +88,7 @@ To ignore, add // eslint-disable-next-line to the line before. } `; -exports[`webpack message formatting formats file not found error 1`] = ` +exports[`formats file not found error 1`] = ` Object { "stderr": "Creating an optimized production build... Failed to compile. @@ -102,7 +102,7 @@ Cannot find file './ThisFileSouldNotExist' in './src'. } `; -exports[`webpack message formatting formats missing package 1`] = ` +exports[`formats missing package 1`] = ` Object { "stderr": "Creating an optimized production build... Failed to compile. @@ -118,7 +118,7 @@ You can install this package by running: yarn add unknown-package. } `; -exports[`webpack message formatting formats no default export 1`] = ` +exports[`formats no default export 1`] = ` Object { "stderr": "Creating an optimized production build... Failed to compile. @@ -132,7 +132,7 @@ Attempted import error: './ExportNoDefault' does not contain a default export (i } `; -exports[`webpack message formatting formats out of scope error 1`] = ` +exports[`formats out of scope error 1`] = ` Object { "stderr": "Creating an optimized production build... Failed to compile. @@ -147,7 +147,7 @@ You can either move it inside src/, or add a symlink to it from project's node_m } `; -exports[`webpack message formatting formats unknown export 1`] = ` +exports[`formats unknown export 1`] = ` Object { "stderr": "Creating an optimized production build... Failed to compile. @@ -161,7 +161,7 @@ Attempted import error: 'bar' is not exported from './AppUnknownExport'. } `; -exports[`webpack message formatting helps when users tries to use sass 1`] = ` +exports[`helps when users tries to use sass 1`] = ` Object { "stderr": "Creating an optimized production build... Failed to compile. diff --git a/test/fixtures/webpack-message-formatting/index.test.js b/test/fixtures/webpack-message-formatting/index.test.js new file mode 100644 index 00000000000..1aebc3a2175 --- /dev/null +++ b/test/fixtures/webpack-message-formatting/index.test.js @@ -0,0 +1,136 @@ +const testSetup = require('../__shared__/test-setup'); + +const fs = require('fs-extra'); +const path = require('path'); + +test('formats babel syntax error', async () => { + fs.copySync( + path.join(__dirname, 'src', 'AppBabel.js'), + path.join(testSetup.testDirectory, 'src', 'App.js') + ); + + const { stdout, stderr } = await testSetup.scripts.build(); + expect({ stdout, stderr }).toMatchSnapshot(); +}); + +test('formats css syntax error', async () => { + fs.copySync( + path.join(__dirname, 'src', 'AppCss.js'), + path.join(testSetup.testDirectory, 'src', 'App.js') + ); + + const { stdout, stderr } = await testSetup.scripts.build(); + expect({ stdout, stderr }).toMatchSnapshot(); +}); + +test('formats unknown export', async () => { + fs.copySync( + path.join(__dirname, 'src', 'AppUnknownExport.js'), + path.join(testSetup.testDirectory, 'src', 'App.js') + ); + + const { stdout, stderr } = await testSetup.scripts.build(); + expect({ stdout, stderr }).toMatchSnapshot(); +}); + +test('formats aliased unknown export', async () => { + fs.copySync( + path.join(__dirname, 'src', 'AppAliasUnknownExport.js'), + path.join(testSetup.testDirectory, 'src', 'App.js') + ); + + const { stdout, stderr } = await testSetup.scripts.build(); + expect({ stdout, stderr }).toMatchSnapshot(); +}); + +test('formats no default export', async () => { + fs.copySync( + path.join(__dirname, 'src', 'AppNoDefault.js'), + path.join(testSetup.testDirectory, 'src', 'App.js') + ); + + const { stdout, stderr } = await testSetup.scripts.build(); + expect({ stdout, stderr }).toMatchSnapshot(); +}); + +test('formats missing package', async () => { + fs.copySync( + path.join(__dirname, 'src', 'AppMissingPackage.js'), + path.join(testSetup.testDirectory, 'src', 'App.js') + ); + + const { stdout, stderr } = await testSetup.scripts.build(); + expect({ stdout, stderr }).toMatchSnapshot(); +}); + +test('formats eslint warning', async () => { + fs.copySync( + path.join(__dirname, 'src', 'AppLintWarning.js'), + path.join(testSetup.testDirectory, 'src', 'App.js') + ); + + let { stdout, stderr } = await testSetup.scripts.build(); + const sizeIndex = stdout.indexOf('File sizes after gzip'); + if (sizeIndex !== -1) { + stdout = stdout.substring(0, sizeIndex); + } + expect({ stdout, stderr }).toMatchSnapshot(); +}); + +test('formats eslint error', async () => { + fs.copySync( + path.join(__dirname, 'src', 'AppLintError.js'), + path.join(testSetup.testDirectory, 'src', 'App.js') + ); + + const { stdout, stderr } = await testSetup.scripts.build(); + expect({ stdout, stderr }).toMatchSnapshot(); +}); + +test('helps when users tries to use sass', async () => { + fs.copySync( + path.join(__dirname, 'src', 'AppSass.js'), + path.join(testSetup.testDirectory, 'src', 'App.js') + ); + + const { stdout, stderr } = await testSetup.scripts.build(); + expect({ stdout, stderr }).toMatchSnapshot(); +}); + +test('formats file not found error', async () => { + fs.copySync( + path.join(__dirname, 'src', 'AppUnknownFile.js'), + path.join(testSetup.testDirectory, 'src', 'App.js') + ); + + const { stdout, stderr } = await testSetup.scripts.build(); + expect({ stdout, stderr }).toMatchSnapshot(); +}); + +test('formats case sensitive path error', async () => { + fs.copySync( + path.join(__dirname, 'src', 'AppIncorrectCase.js'), + path.join(testSetup.testDirectory, 'src', 'App.js') + ); + + const { stdout, stderr } = await testSetup.scripts.start({ smoke: true }); + if (process.platform === 'darwin') { + expect(stderr).toMatch( + `Cannot find file: 'export5.js' does not match the corresponding name on disk: './src/Export5.js'.` + ); + } else { + expect(stderr).not.toEqual(''); // TODO: figure out how we can test this on Linux/Windows + // I believe getting this working requires we tap into enhanced-resolve + // pipeline, which is debt we don't want to take on right now. + } +}); + +test('formats out of scope error', async () => { + fs.copySync( + path.join(__dirname, 'src', 'AppOutOfScopeImport.js'), + path.join(testSetup.testDirectory, 'src', 'App.js') + ); + + const { stdout, stderr } = await testSetup.scripts.build(); + expect({ stdout, stderr }).toMatchSnapshot(); +}); diff --git a/fixtures/output/webpack-message-formatting/package.json b/test/fixtures/webpack-message-formatting/package.json similarity index 100% rename from fixtures/output/webpack-message-formatting/package.json rename to test/fixtures/webpack-message-formatting/package.json diff --git a/fixtures/output/webpack-message-formatting/src/AppAliasUnknownExport.js b/test/fixtures/webpack-message-formatting/src/AppAliasUnknownExport.js similarity index 100% rename from fixtures/output/webpack-message-formatting/src/AppAliasUnknownExport.js rename to test/fixtures/webpack-message-formatting/src/AppAliasUnknownExport.js diff --git a/fixtures/output/webpack-message-formatting/src/AppBabel.js b/test/fixtures/webpack-message-formatting/src/AppBabel.js similarity index 100% rename from fixtures/output/webpack-message-formatting/src/AppBabel.js rename to test/fixtures/webpack-message-formatting/src/AppBabel.js diff --git a/fixtures/output/webpack-message-formatting/src/AppCss.css b/test/fixtures/webpack-message-formatting/src/AppCss.css similarity index 100% rename from fixtures/output/webpack-message-formatting/src/AppCss.css rename to test/fixtures/webpack-message-formatting/src/AppCss.css diff --git a/fixtures/output/webpack-message-formatting/src/AppCss.js b/test/fixtures/webpack-message-formatting/src/AppCss.js similarity index 100% rename from fixtures/output/webpack-message-formatting/src/AppCss.js rename to test/fixtures/webpack-message-formatting/src/AppCss.js diff --git a/fixtures/output/webpack-message-formatting/src/AppIncorrectCase.js b/test/fixtures/webpack-message-formatting/src/AppIncorrectCase.js similarity index 100% rename from fixtures/output/webpack-message-formatting/src/AppIncorrectCase.js rename to test/fixtures/webpack-message-formatting/src/AppIncorrectCase.js diff --git a/fixtures/output/webpack-message-formatting/src/AppLintError.js b/test/fixtures/webpack-message-formatting/src/AppLintError.js similarity index 100% rename from fixtures/output/webpack-message-formatting/src/AppLintError.js rename to test/fixtures/webpack-message-formatting/src/AppLintError.js diff --git a/fixtures/output/webpack-message-formatting/src/AppLintWarning.js b/test/fixtures/webpack-message-formatting/src/AppLintWarning.js similarity index 100% rename from fixtures/output/webpack-message-formatting/src/AppLintWarning.js rename to test/fixtures/webpack-message-formatting/src/AppLintWarning.js diff --git a/fixtures/output/webpack-message-formatting/src/AppMissingPackage.js b/test/fixtures/webpack-message-formatting/src/AppMissingPackage.js similarity index 100% rename from fixtures/output/webpack-message-formatting/src/AppMissingPackage.js rename to test/fixtures/webpack-message-formatting/src/AppMissingPackage.js diff --git a/fixtures/output/webpack-message-formatting/src/AppNoDefault.js b/test/fixtures/webpack-message-formatting/src/AppNoDefault.js similarity index 100% rename from fixtures/output/webpack-message-formatting/src/AppNoDefault.js rename to test/fixtures/webpack-message-formatting/src/AppNoDefault.js diff --git a/fixtures/output/webpack-message-formatting/src/AppOutOfScopeImport.js b/test/fixtures/webpack-message-formatting/src/AppOutOfScopeImport.js similarity index 100% rename from fixtures/output/webpack-message-formatting/src/AppOutOfScopeImport.js rename to test/fixtures/webpack-message-formatting/src/AppOutOfScopeImport.js diff --git a/fixtures/output/webpack-message-formatting/src/AppSass.js b/test/fixtures/webpack-message-formatting/src/AppSass.js similarity index 100% rename from fixtures/output/webpack-message-formatting/src/AppSass.js rename to test/fixtures/webpack-message-formatting/src/AppSass.js diff --git a/fixtures/output/webpack-message-formatting/src/AppSass.scss b/test/fixtures/webpack-message-formatting/src/AppSass.scss similarity index 100% rename from fixtures/output/webpack-message-formatting/src/AppSass.scss rename to test/fixtures/webpack-message-formatting/src/AppSass.scss diff --git a/fixtures/output/webpack-message-formatting/src/AppUnknownExport.js b/test/fixtures/webpack-message-formatting/src/AppUnknownExport.js similarity index 100% rename from fixtures/output/webpack-message-formatting/src/AppUnknownExport.js rename to test/fixtures/webpack-message-formatting/src/AppUnknownExport.js diff --git a/fixtures/output/webpack-message-formatting/src/AppUnknownFile.js b/test/fixtures/webpack-message-formatting/src/AppUnknownFile.js similarity index 100% rename from fixtures/output/webpack-message-formatting/src/AppUnknownFile.js rename to test/fixtures/webpack-message-formatting/src/AppUnknownFile.js diff --git a/fixtures/output/webpack-message-formatting/src/Export5.js b/test/fixtures/webpack-message-formatting/src/Export5.js similarity index 100% rename from fixtures/output/webpack-message-formatting/src/Export5.js rename to test/fixtures/webpack-message-formatting/src/Export5.js diff --git a/fixtures/output/webpack-message-formatting/src/ExportNoDefault.js b/test/fixtures/webpack-message-formatting/src/ExportNoDefault.js similarity index 100% rename from fixtures/output/webpack-message-formatting/src/ExportNoDefault.js rename to test/fixtures/webpack-message-formatting/src/ExportNoDefault.js diff --git a/fixtures/output/webpack-message-formatting/src/FooExport.js b/test/fixtures/webpack-message-formatting/src/FooExport.js similarity index 100% rename from fixtures/output/webpack-message-formatting/src/FooExport.js rename to test/fixtures/webpack-message-formatting/src/FooExport.js diff --git a/fixtures/output/webpack-message-formatting/src/index.js b/test/fixtures/webpack-message-formatting/src/index.js similarity index 100% rename from fixtures/output/webpack-message-formatting/src/index.js rename to test/fixtures/webpack-message-formatting/src/index.js diff --git a/fixtures/smoke/jest.config.js b/test/jest.config.js similarity index 53% rename from fixtures/smoke/jest.config.js rename to test/jest.config.js index b2f8182ebd9..2f70a94b34d 100644 --- a/fixtures/smoke/jest.config.js +++ b/test/jest.config.js @@ -1,6 +1,7 @@ +'use strict'; + module.exports = { testEnvironment: 'node', - testMatch: ['**/*.test.js'], + testMatch: ['/**/*.test.js'], testPathIgnorePatterns: ['/src/', 'node_modules'], - setupTestFrameworkScriptFile: './setupSmokeTests.js', }; From 5b9b3382a3d6b39c7d0362b589b0b0a9a148dfae Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk Date: Thu, 11 Oct 2018 07:31:48 +0200 Subject: [PATCH 0329/1249] Make the navigation easier to read on small devices --- docusaurus/website/static/css/custom.css | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docusaurus/website/static/css/custom.css b/docusaurus/website/static/css/custom.css index faec652e6bf..1b9fec7805d 100644 --- a/docusaurus/website/static/css/custom.css +++ b/docusaurus/website/static/css/custom.css @@ -19,10 +19,17 @@ text-decoration: underline; } +.navigationSlider .slidingNav ul { + background: #282c34; +} + @media only screen and (min-device-width: 360px) and (max-device-width: 736px) { } @media only screen and (min-width: 1024px) { + .navigationSlider .slidingNav ul { + background: none; + } } @media only screen and (max-width: 1023px) { From 4ea222f54f3ee993cbca47debea9f727a17c527e Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk Date: Thu, 11 Oct 2018 07:50:33 +0200 Subject: [PATCH 0330/1249] Add section about how to get started --- docusaurus/website/pages/en/index.js | 37 ++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/docusaurus/website/pages/en/index.js b/docusaurus/website/pages/en/index.js index 939484caaac..323266ed141 100755 --- a/docusaurus/website/pages/en/index.js +++ b/docusaurus/website/pages/en/index.js @@ -79,7 +79,9 @@ class HomeSplash extends React.Component { - +
@@ -93,12 +95,16 @@ const Block = props => ( id={props.id} background={props.background} > - + ); -const Features = () => ( - +const Features = props => ( + {[ { content: @@ -119,6 +125,26 @@ const Features = () => ( ); +const GetStarted = props => ( + + {[ + { + title: 'Get started coding in a matter of seconds!', + content: `With Create React App, you get to focus on **writing React, not boilerplate**. + All you need to do is run a command, install some dependencies, and decide what's for dinner. + + npx create-react-app my-app + `, + }, + { + image: + 'https://camo.githubusercontent.com/29765c4a32f03bd01d44edef1cd674225e3c906b/68747470733a2f2f63646e2e7261776769742e636f6d2f66616365626f6f6b2f6372656174652d72656163742d6170702f323762343261632f73637265656e636173742e737667', + imageAlign: 'right', + }, + ]} + +); + class Index extends React.Component { render() { const language = this.props.language || ''; @@ -127,7 +153,8 @@ class Index extends React.Component {
- + +
); From 8ea3222c2d21f883b34592de7c425f7270e52e9b Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk Date: Thu, 11 Oct 2018 08:32:01 +0200 Subject: [PATCH 0331/1249] Add section about updating --- docusaurus/website/pages/en/index.js | 20 ++++++++++++++++++++ docusaurus/website/static/img/update.png | Bin 0 -> 62158 bytes 2 files changed, 20 insertions(+) create mode 100644 docusaurus/website/static/img/update.png diff --git a/docusaurus/website/pages/en/index.js b/docusaurus/website/pages/en/index.js index 323266ed141..f54cca2d781 100755 --- a/docusaurus/website/pages/en/index.js +++ b/docusaurus/website/pages/en/index.js @@ -145,6 +145,25 @@ const GetStarted = props => (
); +const Update = props => ( + + {[ + { + image: imgUrl('update.png'), + imageAlign: 'left', + }, + { + title: 'Easy-to-maintain toolchain', + content: `Keeping a build toolchain up to date with the latest and greatest can be a daunting and time-consuming + task for even the most seasoned developer. Create React App extracts all of those concerns into a single + dependency, which are **easy to update** and **battle tested by thousands** + + npm install react-scripts@latest`, + }, + ]} + +); + class Index extends React.Component { render() { const language = this.props.language || ''; @@ -155,6 +174,7 @@ class Index extends React.Component {
+
); diff --git a/docusaurus/website/static/img/update.png b/docusaurus/website/static/img/update.png new file mode 100644 index 0000000000000000000000000000000000000000..a428f813cdbd460fa23f071240164bb4e5014c8f GIT binary patch literal 62158 zcmeFZ`9IX_|36+*(Q1$-*+U4~M)tCYu`h|CLnsW{cTr;O`#P3Hb~DE|7>rJh?2&CS zmh3T>EJH@>^K{PpM6dVv_WAq)-`8($&w0A8>#^M*>-CJ#(^0>8?&`S{Cr(_vr=enS z;>4+$6DKG(sm=gTEE}C4ojAd9;-1P~BOl9^X6kxY)$Dp`Lq`uAEv*hM%_H?YdgD^K z3D>E*Pk&si8%=MCJ>?9K6n_QJWr_ZF@E6DycbaB*{uJw#akaDFdhtS4?uj(*nyHBO zJ;^266is7OV{hYJg+=UvoLs}M#}KM?>IZ2W3mqC7pl6}vIB}Bd&It;d;1mD;SpiBP zexM~m`Jc~ef`gTC_bC43ZJOXaQIs?r41WyJ|GU7^S|Gl&|9gEQ+B-P&P>A8tYya-9 zl6CFq82|oUqj3V{0s=$s{&vX2Uuj(3{?{{(KCY80O{yajr~lXS@8CNA*R%f~{vU?_ zm-GKsn?vLHufhHoZ2(OD{~J`EQ4Jnvq4yno`O68?^ieyVJxe*p8+@S_65uh$?X9+G z;dcFBrv!LR5;eyrX%sS=**=&oPZ~bO$KHPSxNn@}4z5|Wku^#Hq4H#)F|u8I&e8EF zjx9jbu69DdHwo!<9~JP z_##Y9C+7klenCh^w@c3A?O-2`5j9WF|Lai?7khv2gf#o}t*~*=-RlsNyZBICOJl~p z-d~RS?Nd}QUHl1U_4VmV-Rh}pf z54!xiXS(O+8~Q|gZ}Ql}ke9!!M0@Ui%jEDQU1SoXfHL->_wio-$_NOQu~|3-7G-R{ ziu-fbI@g-4Yjz~2lT=&*5lm;GS8oQ>hH(rFi2!_?@r)0fwo*Jq{?l?Xc@sPRn zi#vt4Ly(%&ul9%3_F*-m9!oJ_M|91cg&StQ^`D;g>{j;H@BicISRo;_Oa-?um9CDj zF2pMKg_aE5cB>Jr&C+)JfX@D@?}F0#Xn6Lx&^@VZgp%_IEeUM~yVvRrP%wSR`Bx6$ z#3a>^BMZ|D&Vt_GGmBi(9Nzc$8ntO%`?b@pQpzyZ&u+Wo-U0H@+|ViFJAD?X+B*Y_ z1Q^3DTnUNmX!6wX#)Y1j_tbw;e}XcRmMQuByn~df1)U$#%dHiXDIxvhqGpX7o1xRn zwF_=ICuI}&U0Lt%BksDszxD#S_l45!ymjn1X=^m+9BjL>dQ^U>^#*C9C^pR;>%J|e z-fh9ycZ(#+cxp!JUri0UOUuN|-1P}RC~DZ&B{bKtFWWwjbn-8a)QFw^2&$IzEwL_& zx(;~L!CDv~uZDa?etry{=OENF;Cn&wR;x)$&T02DDvPxY_X6A0I$=e}=yf*tgcpAWwi18jDdHIj-q&0?s(-hhHTc4e=2n~kcSI`k}&PZdtv+jasP zkWL$IW-T4agpcR)P{}OOW+L70L1Co05hHu{F*s*p3NflOy;9`Na`;-3K~5K)SsgpS zi{6EsCDvDS&QT;UGa0sSbiju8qE?li_DZos5pUSF2FRSg6KX7+2d^$1WjA-&DEL)- zhu#;$>X-2mEarUZfV9(?waU4UCY-)H)WU#u>eVa`&2Bhp4CYn4G>s$#&1i)_J%-xK zIvgo|LorE8-8O_+q1*@UM6^rcgVNjCTGRTe+4OCxTx!1kL|kM^(rYK}3)0AuP00Ph z2A|~}l#cme$PsTebYBU9$_P46&FD9B=x1(ch=Z=#d-RnCIE~zli`=oL#Ra#K^rFj= z_S%FzTSRO?I6A-RQMQboW)b|;SFt>qBck5Y&}wi#^|THhej+fRw>p?WOdr7xYJdb) zFIXv>Pbiiq4s6$F4zFW^!>?IsWEA$Z64X{&6J&#&p53_o3l%tM)H&*cha%X``3jmU zv^ARVcU+1w%Xu@hiL53_=nRlu&G1S~`t&J7TvX?(?=4BxrP!^X!9yr45M+k+bY9+%*9j z($(78G7y|>fxLK7wv6$;RGG;;beSKH**PzDXr$eZDwz!>VrX)iVWCd8k@dBHbX?#7 z6NI==#*h8bPfF!&8z^x0eP?YGnv631VA@uvxE-dXk=1t}S#TMa|3tO|>Tx_d)tL>3vANEtzF%SumX9qY+3?&d zkhjVhSz5&UaJI#Bh53Fgvkt3C69`v|RkSt7J^v+Q!-P8oF5@9fCo84S{mySY`*Zal zYe22J1n|u$6{WI*tl8v z`5Y>v3@AFK)NWpmp2J(;eD#*)m zeCoQkRLN8U5@l7f!hZVh6SoVnp^H!W)MAOzx7u*{q+YzYdkZRnS+>SvVv}Fw)d;rG z3330IwLD~^zF?4SO}HfFlDak2#W{&g7Y*DZnQsaeXlJB}+V)tm8BK&(8NL^0f{=l2 zvg-TDSU1tHG4Fu|VCzfC5I9g^DrSWD&s2yzP_m zbUA}-ua8Sw$NkTF&2}$0z8zeBHsL2q!Daw93RCWS35S(;w?+GeKfTCL_fB~G9TiMO zf^Gg7T8?qXD^*!rhbG5>2zqA1PYMNGG(EI)d&F7Z;qX7>og$v_&4sCGAWjL1uOu22 z{q$T8rE=EJV5)Q$_-NbW#7o*MOso;n(l(^wiMWWN$(IVW-CcV*OGAw6DRQ*&C0 z-}F=gd(@0G$fm@H@BBsY&9YdS<(AbL9~53A8!z@=nB9|XRiu;Boyqr+QPJp~&3s+N zV?wNm>OOzNs4xvXF@5K(+sXbLM;H*CatHox=t^b$2>)E8+%0*Na~;mK`5#?JW8bHs zIh_oLVf~YLM4I&ym>=^A#o$-HC;a+f#$&KzoU}Pg!8X=kYz^C+;!@%gbaMceS#VnR z$y+tJ^vkVlds39}2$<+Wet7ao7D98A@iA}MqeRpuW-l~ve41+-t}w5ge2e_+kK}mX zK%}`;K@LhAel0w?gmy?TK}Tpx^k6t?qI}WjvE_}*d7|ZGSgm2*v%w=*0p;#XWokv! zi9;JT#vhQy&dG2Rb=ZJX0i-!}w z@EYV`a zdBNpd7kf(MM@o1UYFs)xFXq<|F1csRl!SibE5aTqNMB?&7VauYU603_R$i7C;k0#P zRGIMW5EiC5R?@o88E@FFRP>~c%8`{5Y%6nJO@ldtNNjXzAzly5N{bgODZn_J-%FGL zx8Lg2bjr2qO1q%EJd~i_tm7;i3;JplNS)v=u8XMJnGe(mu)45wEHbW9e-&Z$a`57n zrw4F%2oH*OIX;2RtF$ItD3GwbD()hTv(s(&^~la0K|c^tjDAi_SRC2R<5IXmeHmnz z7Th*ClvG)2snJcZt!!fiRq=G^R3%hcjY}Lw)o1Q-nB;T|gG<;A@TR=SyEcdxKjaCe-+*r9?|8*El5DI8w<_Pv%sH94tasgN^v#b;2OjSU;Ny7%c z#vCWVo+owYOi=5ksOy8P_D;?5o0VLalC*4MRVzvTG}M=4^m!j?bTe&S%8>tTvrcfa z)CL$3B-(%EEl->j47ty|m4Xt?;%Yoi76Gj8 zYj_9BSBeb9gPaXLpkh#-QBTSyoopIvB!)BL`7;f68Sj(*oJVMUQsiXr{WiFHdksIWu!Ap|OnNM}Qhgim_u*$sc*2yU>|Vm50b=L8a)GHo?4SX*OtHhuB)H@~Q7J<&|GO zhygt|oaw^kZ79#lsNOVHgw9xc&gMfvaXm?IJ>D=Kfz%z25SqWv@zZhnigH=1m%{?7 zBIpDr_-*#)2;=N-;#_mraLJVu^wipdYB=S)d!4ORhT5Y7`h)utRMeLHK0?`G>x1(}0e2P60iH{BhF*%&yfSM485=Z?HwL1o6Wa^+OMV|g&ivk174 zeiIF5c6D}T7IpC<_pGhVG`gW|(Mt2p%e*hv z&pd}cYmd2X)m%!ynZ3nZ=~(F8?BIF5&{C_%;pL8ajm0R7)!vA{Ib!95W&`ADpc`~Z z4SI5y^xkPeN?ql~-Pjr|s_r&$Ni8f@^l-aHJiCExI4xE z?v_zbQ9-n~nTj=;!4R!k6_{u#nMh3PDLpXG@8eW*N-dEso$#QX;N1XE=5fy;x2`^z zBE4ishJKR|lF56CHK(y{j@3q(aw%8vC zf8ESGuJ6_qc}i=7j50&xJdvFJt8@fjCFe3nwj@-bq0*ZG4OVmc1Bpg!qkG<8_Rc~0 ztmMRXoc8*H28Hp)qQJJ=zE-0$`G1P$PaD5x<(~Fb|BEh> z7A(sZg^$7^b@M)7r0cTTrzGj<2#kUqKaicOPA%3z%=#fVtd3`zlY(6)QD|PNYnclc zTizHepB#b8g3JWEA+4AorxiL>)o6b0d*UR(-8}G%)T9mr>J6}ecXD2+gVl{Mw zQC#C{HGaNIyF|mkOPWevh)=g;!%b2~By0+l?9S)Aw1}VrNTWwtOjyjFXo=Qq=8r9M zZxd9+=Bo7om1@9^@s!)iVy9rP7M|9GZPqBQV5r#oj0MSeRBd8wy{i(4rf+xbcpGzA zlT%8a3<2+{Z<--P%f>bC=TE-jqdfr-)nyXn(-s{Tp2I?T2})x3JHU_aMZMF75?g``p*cB=MnoZ!df`V|wPBx3VUwGEm{U?_jPWF-C z3>%M9t(rb=pmj3d8~HRMlgP~d*0`UIYYqF!#p=RT5Q`ynr_5P9eZQOK%)(0=Kj%!i zhm&w^P-Q>IFWX@PQHWMu;nL@VzP09r7jm&B zvUnCWr*xHaMIqB2k%A^jR@rhZyek;$Lg<* zY+`*B_)%A"{zUxev8t^06$;Vka{?^lZe{0-_uNx% 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 Date: Thu, 11 Oct 2018 09:01:22 +0200 Subject: [PATCH 0332/1249] Add a few more features to the bottom --- docusaurus/website/pages/en/index.js | 71 +++++++++++++++++++++++++++- 1 file changed, 70 insertions(+), 1 deletion(-) diff --git a/docusaurus/website/pages/en/index.js b/docusaurus/website/pages/en/index.js index f54cca2d781..a0d05a7ed4c 100755 --- a/docusaurus/website/pages/en/index.js +++ b/docusaurus/website/pages/en/index.js @@ -91,7 +91,7 @@ class HomeSplash extends React.Component { const Block = props => ( @@ -102,6 +102,9 @@ const Block = props => ( /> ); +Block.defaultProps = { + padding: ['bottom', 'top'], +}; const Features = props => ( @@ -164,6 +167,71 @@ const Update = props => ( ); +const FineGrainedFeatures = props => ( + + {[ + { + title: 'Webpack 4', + content: + 'Webpack 4 gives you lightning fast rebuilds and code-splitting out of the box', + }, + { + title: 'Babel 7', + content: + 'Babel 7 transpiles your code faster than ever, now with support for the new Fragment syntax ``', + }, + { + title: 'ES2015+', + content: + 'Create React App is set up for you to use the features of the future', + }, + { + title: 'Jest', + content: + 'The best test runner in the business is set up for you by default', + }, + { + title: 'Dev-server', + content: + 'No-hassle local development thanks to the built-in dev-server', + }, + { + title: 'PostCSS', + content: + 'Prefixing of new CSS features are done for you through Autoprefixer', + }, + { + title: 'SASS', + content: 'Now you can write your styles with the power of SASS', + }, + { + title: 'CSS Modules', + content: 'CSS Modules are also supported out of the box', + }, + { + title: 'Babel Macros', + content: + 'Need some extra Babel-power? Babel Macros gives you just that!', + }, + { + title: 'SVGs in React', + content: + 'Now you can import your SVGs and use them as React components', + }, + { + title: 'Progressive Web Apps', + content: + 'Every app created by Create React App is a fully Lighthouse-compliant PWA - opt in.', + }, + { + title: 'Great DX', + content: + "Create React App is made for you - the developer. And we've made your day-to-day so much better", + }, + ]} + +); + class Index extends React.Component { render() { const language = this.props.language || ''; @@ -175,6 +243,7 @@ class Index extends React.Component { +
); From 740ff8ba1deded663cf77bd4fbcbd547ed980d01 Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk Date: Thu, 11 Oct 2018 10:06:21 +0200 Subject: [PATCH 0333/1249] Fix indentation mess --- docusaurus/website/pages/en/index.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/docusaurus/website/pages/en/index.js b/docusaurus/website/pages/en/index.js index a0d05a7ed4c..7d6b9f8612c 100755 --- a/docusaurus/website/pages/en/index.js +++ b/docusaurus/website/pages/en/index.js @@ -134,10 +134,12 @@ const GetStarted = props => ( { title: 'Get started coding in a matter of seconds!', content: `With Create React App, you get to focus on **writing React, not boilerplate**. - All you need to do is run a command, install some dependencies, and decide what's for dinner. +All you need to do is run a command, install some dependencies, and decide what's for dinner. - npx create-react-app my-app - `, +\`\`\`sh +npx create-react-app my-app +\`\`\` +`, }, { image: @@ -158,10 +160,12 @@ const Update = props => ( { title: 'Easy-to-maintain toolchain', content: `Keeping a build toolchain up to date with the latest and greatest can be a daunting and time-consuming - task for even the most seasoned developer. Create React App extracts all of those concerns into a single - dependency, which are **easy to update** and **battle tested by thousands** +task for even the most seasoned developer. Create React App extracts all of those concerns into a single +dependency, which are **easy to update** and **battle tested by thousands** - npm install react-scripts@latest`, +\`\`\`sh +npm install react-scripts@latest +\`\`\``, }, ]} From 83542fca5b42dd8cf18dcd83697477e1ee43e320 Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk Date: Thu, 11 Oct 2018 10:06:58 +0200 Subject: [PATCH 0334/1249] Add missing period --- docusaurus/website/pages/en/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/website/pages/en/index.js b/docusaurus/website/pages/en/index.js index 7d6b9f8612c..04a5adcc8cb 100755 --- a/docusaurus/website/pages/en/index.js +++ b/docusaurus/website/pages/en/index.js @@ -161,7 +161,7 @@ const Update = props => ( title: 'Easy-to-maintain toolchain', content: `Keeping a build toolchain up to date with the latest and greatest can be a daunting and time-consuming task for even the most seasoned developer. Create React App extracts all of those concerns into a single -dependency, which are **easy to update** and **battle tested by thousands** +dependency, which are **easy to update** and **battle tested by thousands**. \`\`\`sh npm install react-scripts@latest From 9b751311d2f781912d8eb3a1976e0d20560bd2fa Mon Sep 17 00:00:00 2001 From: Kristofer Selbekk Date: Thu, 11 Oct 2018 10:08:07 +0200 Subject: [PATCH 0335/1249] Remove punctuation for consistency --- docusaurus/website/pages/en/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docusaurus/website/pages/en/index.js b/docusaurus/website/pages/en/index.js index 04a5adcc8cb..e01f5dced31 100755 --- a/docusaurus/website/pages/en/index.js +++ b/docusaurus/website/pages/en/index.js @@ -215,7 +215,7 @@ const FineGrainedFeatures = props => ( { title: 'Babel Macros', content: - 'Need some extra Babel-power? Babel Macros gives you just that!', + 'Need some extra Babel-power? Babel Macros gives you just that', }, { title: 'SVGs in React', @@ -225,7 +225,7 @@ const FineGrainedFeatures = props => ( { title: 'Progressive Web Apps', content: - 'Every app created by Create React App is a fully Lighthouse-compliant PWA - opt in.', + 'Every app created by Create React App is a fully Lighthouse-compliant PWA - opt in', }, { title: 'Great DX', From 33cbc7ad5bf408735d558d5aaef121cd9bcb53f4 Mon Sep 17 00:00:00 2001 From: Amy Lam Date: Thu, 11 Oct 2018 01:08:21 -0700 Subject: [PATCH 0336/1249] Make `Getting Started` consistent --- docusaurus/website/i18n/en.json | 2 +- docusaurus/website/pages/en/index.js | 2 +- docusaurus/website/siteConfig.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docusaurus/website/i18n/en.json b/docusaurus/website/i18n/en.json index 8a1ad0a38c5..d701f7d93c7 100644 --- a/docusaurus/website/i18n/en.json +++ b/docusaurus/website/i18n/en.json @@ -139,7 +139,7 @@ } }, "links": { - "Getting started": "Getting started", + "Getting Started": "Getting Started", "Help": "Help", "GitHub": "GitHub" }, diff --git a/docusaurus/website/pages/en/index.js b/docusaurus/website/pages/en/index.js index 939484caaac..aebd78058c1 100755 --- a/docusaurus/website/pages/en/index.js +++ b/docusaurus/website/pages/en/index.js @@ -77,7 +77,7 @@ class HomeSplash extends React.Component { diff --git a/docusaurus/website/siteConfig.js b/docusaurus/website/siteConfig.js index 5c59bc8ab47..56c56a7e159 100644 --- a/docusaurus/website/siteConfig.js +++ b/docusaurus/website/siteConfig.js @@ -26,7 +26,7 @@ const siteConfig = { // For no header links in the top nav bar -> headerLinks: [], headerLinks: [ - { doc: 'getting-started', label: 'Getting started' }, + { doc: 'getting-started', label: 'Getting Started' }, { href: 'https://reactjs.org/community/support.html', label: 'Help' }, { href: 'https://www.github.com/facebook/create-react-app', From 492de3cc299f2c2f7367e5f0ba93c71d8ab1a830 Mon Sep 17 00:00:00 2001 From: Amy Lam Date: Thu, 11 Oct 2018 01:10:06 -0700 Subject: [PATCH 0337/1249] Order docs in footer Rename to match page "About The Docs" These seem redundant, consider just "Getting Started"? Add more links? --- docusaurus/website/core/Footer.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docusaurus/website/core/Footer.js b/docusaurus/website/core/Footer.js index ba617e64aed..3cc2f1f6c36 100644 --- a/docusaurus/website/core/Footer.js +++ b/docusaurus/website/core/Footer.js @@ -34,12 +34,12 @@ class Footer extends React.Component {
Community
From 6235d576312ced8a67096c535d11d186cd67cda2 Mon Sep 17 00:00:00 2001 From: Amy Lam Date: Thu, 11 Oct 2018 01:37:00 -0700 Subject: [PATCH 0338/1249] Edits to Getting Started - Copy edits for consistency - Remove
's for readability Should all headers be Title Case? I see `Creating an App` but `Installing A Dependency`. I tend to use https://titlecaseconverter.com/, thoughts? --- docusaurus/docs/available-scripts.md | 15 ++++------- docusaurus/docs/documentation-intro.md | 4 +-- docusaurus/docs/folder-structure.md | 9 +++---- docusaurus/docs/getting-started.md | 26 +++++++------------ ...ures.md => supported-browsers-features.md} | 8 +++--- docusaurus/website/i18n/en.json | 4 +-- 6 files changed, 25 insertions(+), 41 deletions(-) rename docusaurus/docs/{supported-language-features.md => supported-browsers-features.md} (89%) diff --git a/docusaurus/docs/available-scripts.md b/docusaurus/docs/available-scripts.md index fa438459f13..b52b0926bb7 100644 --- a/docusaurus/docs/available-scripts.md +++ b/docusaurus/docs/available-scripts.md @@ -8,24 +8,19 @@ In the project directory, you can run: ## `npm start` -Runs the app in the development mode.
-Open [http://localhost:3000](http://localhost:3000) to view it in the browser. +Runs the app in the development mode. Open [http://localhost:3000](http://localhost:3000) to view it in the browser. -The page will reload if you make edits.
-You will also see any lint errors in the console. +The page will reload if you make edits. You will also see any lint errors in the console. ## `npm test` -Launches the test runner in the interactive watch mode.
-See the section about [running tests](/docs/running-tests) for more information. +Launches the test runner in the interactive watch mode. See the section about [running tests](/docs/running-tests) for more information. ## `npm run build` -Builds the app for production to the `build` folder.
-It correctly bundles React in production mode and optimizes the build for the best performance. +Builds the app for production to the `build` folder. It correctly bundles React in production mode and optimizes the build for the best performance. -The build is minified and the filenames include the hashes.
-Your app is ready to be deployed! +The build is minified and the filenames include the hashes. Your app is ready to be deployed! See the section about [deployment](/docs/deployment) for more information. diff --git a/docusaurus/docs/documentation-intro.md b/docusaurus/docs/documentation-intro.md index f428aaac340..cc430b51808 100644 --- a/docusaurus/docs/documentation-intro.md +++ b/docusaurus/docs/documentation-intro.md @@ -1,10 +1,10 @@ --- id: documentation-intro -title: Welcome To The Documentation +title: About The Docs sidebar_label: About The Docs --- -Please navigate via the table of content for finding what you are looking for. +Welcome to the documentation! Please navigate via the table of contents to find what you are looking for. ## Something Missing? diff --git a/docusaurus/docs/folder-structure.md b/docusaurus/docs/folder-structure.md index e8564b493f3..625b3272150 100644 --- a/docusaurus/docs/folder-structure.md +++ b/docusaurus/docs/folder-structure.md @@ -29,11 +29,8 @@ For the project to build, **these files must exist with exact filenames**: You can delete or rename the other files. -You may create subdirectories inside `src`. For faster rebuilds, only files inside `src` are processed by Webpack.
-You need to **put any JS and CSS files inside `src`**, otherwise Webpack won’t see them. +You may create subdirectories inside `src`. For faster rebuilds, only files inside `src` are processed by Webpack. You need to **put any JS and CSS files inside `src`**, otherwise Webpack won’t see them. -Only files inside `public` can be used from `public/index.html`.
-Read instructions below for using assets from JavaScript and HTML. +Only files inside `public` can be used from `public/index.html`. Read instructions below for using assets from JavaScript and HTML. -You can, however, create more top-level directories.
-They will not be included in the production build so you can use them for things like documentation. +You can, however, create more top-level directories. They will not be included in the production build so you can use them for things like documentation. diff --git a/docusaurus/docs/getting-started.md b/docusaurus/docs/getting-started.md index 4e046fb1635..42c46a0b7ae 100644 --- a/docusaurus/docs/getting-started.md +++ b/docusaurus/docs/getting-started.md @@ -16,7 +16,8 @@ npm start _([npx](https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b) comes with npm 5.2+ and higher, see [instructions for older npm versions](https://gist.github.com/gaearon/4064d3c23a77c74a3614c498a8bb1c5f))_ -Then open [http://localhost:3000/](http://localhost:3000/) to see your app.
+Then open [http://localhost:3000/](http://localhost:3000/) to see your app. + When you’re ready to deploy to production, create a minified bundle with `npm run build`.

@@ -25,8 +26,7 @@ When you’re ready to deploy to production, create a minified bundle with `npm ### Get Started Immediately -You **don’t** need to install or configure tools like Webpack or Babel.
-They are preconfigured and hidden so that you can focus on the code. +You **don’t** need to install or configure tools like Webpack or Babel. They are preconfigured and hidden so that you can focus on the code. Just create a project, and you’re good to go. @@ -62,8 +62,7 @@ _`yarn create` is available in Yarn 0.25+_ ## Output -Running either of these commands will create a directory called `my-app` inside the current folder.
-Inside that directory, it will generate the initial project structure and install the transitive dependencies: +Running amy of these commands will create a directory called `my-app` inside the current folder. Inside that directory, it will generate the initial project structure and install the transitive dependencies: ``` my-app @@ -85,8 +84,7 @@ my-app └── registerServiceWorker.js ``` -No configuration or complicated folder structures, just the files you need to build your app.
-Once the installation is done, you can open your project folder: +No configuration or complicated folder structures, just the files you need to build your app. Once the installation is done, you can open your project folder: ```sh cd my-app @@ -98,11 +96,9 @@ Inside the newly created project, you can run some built-in commands: ### `npm start` or `yarn start` -Runs the app in development mode.
-Open [http://localhost:3000](http://localhost:3000) to view it in the browser. +Runs the app in development mode. Open [http://localhost:3000](http://localhost:3000) to view it in the browser. -The page will automatically reload if you make changes to the code.
-You will see the build errors and lint warnings in the console. +The page will automatically reload if you make changes to the code. You will see the build errors and lint warnings in the console.

Build errors @@ -110,15 +106,13 @@ You will see the build errors and lint warnings in the console. ### `npm test` or `yarn test` -Runs the test watcher in an interactive mode.
-By default, runs tests related to files changed since the last commit. +Runs the test watcher in an interactive mode. By default, runs tests related to files changed since the last commit. -[Read more about testing.](https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#running-tests) +[Read more about testing](https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#running-tests). ### `npm run build` or `yarn build` -Builds the app for production to the `build` folder.
-It correctly bundles React in production mode and optimizes the build for the best performance. +Builds the app for production to the `build` folder. It correctly bundles React in production mode and optimizes the build for the best performance. The build is minified and the filenames include the hashes. diff --git a/docusaurus/docs/supported-language-features.md b/docusaurus/docs/supported-browsers-features.md similarity index 89% rename from docusaurus/docs/supported-language-features.md rename to docusaurus/docs/supported-browsers-features.md index 2d320ce3144..76a8f9a9e7a 100644 --- a/docusaurus/docs/supported-language-features.md +++ b/docusaurus/docs/supported-browsers-features.md @@ -1,18 +1,16 @@ --- id: supported-browsers-features title: Supported Browsers And Features -sidebar_label: Browsers & Features +sidebar_label: Supported Browsers And Features --- ## Supported Browsers -By default, the generated project supports all modern browsers.
-Support for Internet Explorer 9, 10, and 11 requires [polyfills](https://github.com/facebook/create-react-app/blob/master/packages/react-app-polyfill/README.md). +By default, the generated project supports all modern browsers. Support for Internet Explorer 9, 10, and 11 requires [polyfills](https://github.com/facebook/create-react-app/blob/master/packages/react-app-polyfill/README.md). ## Supported Language Features -This project supports a superset of the latest JavaScript standard.
-In addition to [ES6](https://github.com/lukehoban/es6features) syntax features, it also supports: +This project supports a superset of the latest JavaScript standard. In addition to [ES6](https://github.com/lukehoban/es6features) syntax features, it also supports: - [Exponentiation Operator](https://github.com/rwaldron/exponentiation-operator) (ES2016). - [Async/await](https://github.com/tc39/ecmascript-asyncawait) (ES2017). diff --git a/docusaurus/website/i18n/en.json b/docusaurus/website/i18n/en.json index d701f7d93c7..fb381f360ba 100644 --- a/docusaurus/website/i18n/en.json +++ b/docusaurus/website/i18n/en.json @@ -68,7 +68,7 @@ "title": "Developing Components In Isolation" }, "documentation-intro": { - "title": "Welcome To The Documentation", + "title": "About The Docs", "sidebar_label": "About The Docs" }, "fetching-data-with-ajax-requests": { @@ -114,7 +114,7 @@ }, "supported-browsers-features": { "title": "Supported Browsers And Features", - "sidebar_label": "Browsers & Features" + "sidebar_label": "Supported Browsers And Features" }, "title-and-meta-tags": { "title": "Title And Meta Tags", From 9fe8f6b4e79789af8a68fd38fd93234d5f32a3a6 Mon Sep 17 00:00:00 2001 From: Ludovico Fischer Date: Fri, 12 Oct 2018 11:39:33 +0200 Subject: [PATCH 0339/1249] Fix eslint config docs. (#5416) Update peer dependency versions in README. --- packages/eslint-config-react-app/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/eslint-config-react-app/README.md b/packages/eslint-config-react-app/README.md index 7051d7f2526..fd942bdaf74 100644 --- a/packages/eslint-config-react-app/README.md +++ b/packages/eslint-config-react-app/README.md @@ -19,7 +19,7 @@ If you want to use this ESLint configuration in a project not built with Create First, install this package, ESLint and the necessary plugins. ```sh -npm install --save-dev eslint-config-react-app babel-eslint@^7.2.3 eslint@^4.1.1 eslint-plugin-flowtype@^2.34.1 eslint-plugin-import@^2.6.0 eslint-plugin-jsx-a11y@^5.1.1 eslint-plugin-react@^7.1.0 +npm install --save-dev eslint-config-react-app babel-eslint@9.x eslint@5.x eslint-plugin-flowtype@2.x eslint-plugin-import@2.x eslint-plugin-jsx-a11y@6.x eslint-plugin-react@7.x ``` Then create a file named `.eslintrc` with following contents in the root folder of your project: From 4e3ffb9843738a3083089ce759c5796efd64cc74 Mon Sep 17 00:00:00 2001 From: Wenchen Li Date: Fri, 12 Oct 2018 05:43:45 -0400 Subject: [PATCH 0340/1249] Add the new SVGs feature from the template README to the root README (#5374) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3054e7656e6..dae86042b51 100644 --- a/README.md +++ b/README.md @@ -144,6 +144,7 @@ The [User Guide](https://github.com/facebook/create-react-app/blob/master/packag - [Adding a CSS Modules Stylesheet](https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#adding-a-css-modules-stylesheet) - [Post-Processing CSS](https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#post-processing-css) - [Adding Images, Fonts, and Files](https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#adding-images-fonts-and-files) +- [Adding SVGs](https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#adding-svgs) - [Using the `public` Folder](https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#using-the-public-folder) - [Using Global Variables](https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#using-global-variables) - [Adding Bootstrap](https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#adding-bootstrap) From 50607682ef1c5e28c158a613051ddafb30567b72 Mon Sep 17 00:00:00 2001 From: Jeffrey Posnick Date: Fri, 12 Oct 2018 09:45:57 -0400 Subject: [PATCH 0341/1249] Updates to clarify the "waiting" SW behavior (#5410) --- packages/react-scripts/template/README.md | 36 ++++++++++--------- .../template/src/serviceWorker.js | 28 ++++++++------- 2 files changed, 36 insertions(+), 28 deletions(-) diff --git a/packages/react-scripts/template/README.md b/packages/react-scripts/template/README.md index c591bbf0d00..60acc10653b 100644 --- a/packages/react-scripts/template/README.md +++ b/packages/react-scripts/template/README.md @@ -1896,16 +1896,32 @@ or unreliable network. If you do decide to opt-in to service worker registration, please take the following into account: +1. After the initial caching is done, the [service worker lifecycle](https://developers.google.com/web/fundamentals/primers/service-workers/lifecycle) +controls when updated content ends up being shown to users. In order to guard against +[race conditions with lazy-loaded content](https://github.com/facebook/create-react-app/issues/3613#issuecomment-353467430), +the default behavior is to conservatively keep the updated service worker in the "[waiting](https://developers.google.com/web/fundamentals/primers/service-workers/lifecycle#waiting)" +state. This means that users will end up seeing older content until they close (reloading is not +enough) their existing, open tabs. See [this blog post](https://jeffy.info/2018/10/10/sw-in-c-r-a.html) +for more details about this behavior. + +1. Users aren't always familiar with offline-first web apps. It can be useful to + [let the user know](https://developers.google.com/web/fundamentals/instant-and-offline/offline-ux#inform_the_user_when_the_app_is_ready_for_offline_consumption) + when the service worker has finished populating your caches (showing a "This web + app works offline!" message) and also let them know when the service worker has + fetched the latest updates that will be available the next time they load the + page (showing a "New content is available once existing tabs are closed." message). Showing + this messages is currently left as an exercise to the developer, but as a + starting point, you can make use of the logic included in [`src/serviceWorker.js`](src/serviceWorker.js), which + demonstrates which service worker lifecycle events to listen for to detect each + scenario, and which as a default, just logs appropriate messages to the + JavaScript console. + 1. Service workers [require HTTPS](https://developers.google.com/web/fundamentals/getting-started/primers/service-workers#you_need_https), although to facilitate local testing, that policy [does not apply to `localhost`](http://stackoverflow.com/questions/34160509/options-for-testing-service-workers-via-http/34161385#34161385). If your production web server does not support HTTPS, then the service worker registration will fail, but the rest of your web app will remain functional. -1. Service workers are [not supported](https://jakearchibald.github.io/isserviceworkerready/#moar) - in older web browsers. Service worker registration [won't be attempted](src/serviceWorker.js) - on browsers that lack support. - 1. The service worker is only enabled in the [production environment](#deployment), e.g. the output of `npm run build`. It's recommended that you do not enable an offline-first service worker in a development environment, as it can lead to @@ -1919,18 +1935,6 @@ following into account: instructions for using other methods. _Be sure to always use an incognito window to avoid complications with your browser cache._ -1. Users aren't always familiar with offline-first web apps. It can be useful to - [let the user know](https://developers.google.com/web/fundamentals/instant-and-offline/offline-ux#inform_the_user_when_the_app_is_ready_for_offline_consumption) - when the service worker has finished populating your caches (showing a "This web - app works offline!" message) and also let them know when the service worker has - fetched the latest updates that will be available the next time they load the - page (showing a "New content is available; please refresh." message). Showing - this messages is currently left as an exercise to the developer, but as a - starting point, you can make use of the logic included in [`src/serviceWorker.js`](src/serviceWorker.js), which - demonstrates which service worker lifecycle events to listen for to detect each - scenario, and which as a default, just logs appropriate messages to the - JavaScript console. - 1. By default, the generated service worker file will not intercept or cache any cross-origin traffic, like HTTP [API requests](#integrating-with-an-api-backend), images, or embeds loaded from a different domain. diff --git a/packages/react-scripts/template/src/serviceWorker.js b/packages/react-scripts/template/src/serviceWorker.js index 46c98a44037..012c322dd2c 100644 --- a/packages/react-scripts/template/src/serviceWorker.js +++ b/packages/react-scripts/template/src/serviceWorker.js @@ -1,12 +1,14 @@ -// In production, we register a service worker to serve assets from local cache. +// This optional code is used to register a service worker. +// register() is not called by default. // This lets the app load faster on subsequent visits in production, and gives // it offline capabilities. However, it also means that developers (and users) -// will only see deployed updates on the "N+1" visit to a page, since previously -// cached resources are updated in the background. +// will only see deployed updates on subsequent visits to a page, after all the +// existing tabs open on the page have been closed, since previously cached +// resources are updated in the background. -// To learn more about the benefits of this model, read https://goo.gl/KwvDNy. -// This link also includes instructions on opting out of this behavior. +// To learn more about the benefits of this model and instructions on how to +// opt-in, read http://bit.ly/CRA-PWA. const isLocalhost = Boolean( window.location.hostname === 'localhost' || @@ -41,11 +43,11 @@ export function register(config) { navigator.serviceWorker.ready.then(() => { console.log( 'This web app is being served cache-first by a service ' + - 'worker. To learn more, visit https://goo.gl/SC7cgQ' + 'worker. To learn more, visit http://bit.ly/CRA-PWA' ); }); } else { - // Is not local host. Just register service worker + // Is not localhost. Just register service worker registerValidSW(swUrl, config); } }); @@ -61,11 +63,13 @@ function registerValidSW(swUrl, config) { installingWorker.onstatechange = () => { if (installingWorker.state === 'installed') { if (navigator.serviceWorker.controller) { - // At this point, the old content will have been purged and - // the fresh content will have been added to the cache. - // It's the perfect time to display a "New content is - // available; please refresh." message in your web app. - console.log('New content is available; please refresh.'); + // At this point, the updated precached content has been fetched, + // but the previous service worker will still serve the older + // content until all client tabs are closed. + console.log( + 'New content is available and will be used when all ' + + 'tabs for this page are closed. See http://bit.ly/CRA-PWA.' + ); // Execute callback if (config && config.onUpdate) { From 52fcb23b0d3b80a3d79e3863a27372e83dded1e7 Mon Sep 17 00:00:00 2001 From: Vikram Rangaraj Date: Sun, 14 Oct 2018 11:22:18 -0700 Subject: [PATCH 0342/1249] use the correct dependency for babel-plugin-dynamic-import-node (#4984) * use the correct dependency for babel-plugin-dynamic-import-node * Update package.json --- packages/babel-preset-react-app/create.js | 2 +- packages/babel-preset-react-app/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/babel-preset-react-app/create.js b/packages/babel-preset-react-app/create.js index 17a5319388e..cdf94a63243 100644 --- a/packages/babel-preset-react-app/create.js +++ b/packages/babel-preset-react-app/create.js @@ -158,7 +158,7 @@ module.exports = function(api, opts, env) { require('@babel/plugin-syntax-dynamic-import').default, isEnvTest && // Transform dynamic import to require - require('babel-plugin-transform-dynamic-import').default, + require('babel-plugin-dynamic-import-node'), ].filter(Boolean), }; }; diff --git a/packages/babel-preset-react-app/package.json b/packages/babel-preset-react-app/package.json index e2d52cd92d2..7f2e741650c 100644 --- a/packages/babel-preset-react-app/package.json +++ b/packages/babel-preset-react-app/package.json @@ -31,8 +31,8 @@ "@babel/preset-react": "7.0.0", "@babel/runtime": "7.0.0", "babel-loader": "8.0.4", + "babel-plugin-dynamic-import-node": "2.2.0", "babel-plugin-macros": "2.4.2", - "babel-plugin-transform-dynamic-import": "2.1.0", "babel-plugin-transform-react-remove-prop-types": "0.4.18" } } From bd0ffb72aa61ff9c99d03bffc6a21e60aed92694 Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Sun, 14 Oct 2018 19:27:34 +0100 Subject: [PATCH 0343/1249] Fix click-to-open on Windows (#5431) * Fix click-to-open on Windows * Oops --- packages/react-dev-utils/launchEditor.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-dev-utils/launchEditor.js b/packages/react-dev-utils/launchEditor.js index 705fac51ebc..b5d16014d69 100644 --- a/packages/react-dev-utils/launchEditor.js +++ b/packages/react-dev-utils/launchEditor.js @@ -101,10 +101,10 @@ const COMMON_EDITORS_WIN = [ 'goland64.exe', ]; -// Transpiled version of: /^[\p{L}0-9/.\-_\\]+$/u +// Transpiled version of: /^([A-Za-z]:[/\\])?[\p{L}0-9/.\-_\\]+$/u // Non-transpiled version requires support for Unicode property regex. Allows // alphanumeric characters, periods, dashes, slashes, and underscores. -const WINDOWS_FILE_NAME_WHITELIST = /^(?:[\x2D-9A-Z\\_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7B9\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFF1]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D])+$/; +const WINDOWS_FILE_NAME_WHITELIST = /^([A-Za-z]:[/\\])?(?:[\x2D-9A-Z\\_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7B9\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFF1]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D])+$/; function addWorkspaceToArgumentsIfExists(args, workspace) { if (workspace) { From c52cdc6280c2fd00c46a80b85aeae3ffa162f32a Mon Sep 17 00:00:00 2001 From: Gavin Barron Date: Sun, 14 Oct 2018 11:30:45 -0700 Subject: [PATCH 0344/1249] Correct instructions for HTTPS and PowerShell (#5394) Current instructions for running using HTTPS in a PowerShell prompt are incorrect and do not work on Windows 10 v1809 --- packages/react-scripts/template/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/template/README.md b/packages/react-scripts/template/README.md index 60acc10653b..156173f54c7 100644 --- a/packages/react-scripts/template/README.md +++ b/packages/react-scripts/template/README.md @@ -1242,7 +1242,7 @@ set HTTPS=true&&npm start #### Windows (Powershell) ```Powershell -($env:HTTPS = $true) -and (npm start) +($env:HTTPS = "true") -and (npm start) ``` #### Linux, macOS (Bash) From a70055fe5b28beaa120b931057e45f0e679e0628 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20L=C3=BCder?= Date: Sun, 14 Oct 2018 13:36:44 -0500 Subject: [PATCH 0345/1249] Added note on update to .flowconfig for .scss imports (#5321) * Added note on update to .flowconfig for .scss imports Added a note aimed at Flow users on how to get Flow to recognize the .scss imports. * Mentioned .sass extension in note, added backticks --- packages/react-scripts/template/README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/react-scripts/template/README.md b/packages/react-scripts/template/README.md index 156173f54c7..395038bb3a5 100644 --- a/packages/react-scripts/template/README.md +++ b/packages/react-scripts/template/README.md @@ -598,6 +598,14 @@ This will allow you to do imports like > **Note:** You must prefix imports from `node_modules` with `~` as displayed above. +> **Note:** If you're using Flow, add the following to your `.flowconfig` so it'll recognize the `.sass` or `.scss` imports. + +``` +[options] +module.file_ext=.sass +module.file_ext=.scss +``` + ## Post-Processing CSS This project setup minifies your CSS and adds vendor prefixes to it automatically through [Autoprefixer](https://github.com/postcss/autoprefixer) so you don’t need to worry about it. From 659dd6447a669791b303b1561a89faebe390e15d Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Sun, 14 Oct 2018 19:53:41 +0100 Subject: [PATCH 0346/1249] Downgrade lerna-changelog because it has a bug --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 71eaa2a6d24..045e9655b43 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "husky": "1.0.0-rc.15", "jest": "^23.6.0", "lerna": "2.9.1", - "lerna-changelog": "^0.8.0", + "lerna-changelog": "^0.7.0", "lint-staged": "^7.0.5", "meow": "^5.0.0", "multimatch": "^2.1.0", From 9d532d2751efb3951ab8447d9a501ecb37ae553b Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Sun, 14 Oct 2018 19:58:24 +0100 Subject: [PATCH 0347/1249] Update cached lockfile --- packages/create-react-app/yarn.lock.cached | 463 ++++++++++----------- 1 file changed, 217 insertions(+), 246 deletions(-) diff --git a/packages/create-react-app/yarn.lock.cached b/packages/create-react-app/yarn.lock.cached index 8874e65430d..796a437be62 100644 --- a/packages/create-react-app/yarn.lock.cached +++ b/packages/create-react-app/yarn.lock.cached @@ -67,12 +67,12 @@ source-map "^0.5.0" trim-right "^1.0.1" -"@babel/generator@^7.0.0", "@babel/generator@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.1.2.tgz#fde75c072575ce7abbd97322e8fef5bae67e4630" - integrity sha512-70A9HWLS/1RHk3Ck8tNHKxOoKQuSKocYgwDN85Pyl/RBduss6AKxUR7RIZ/lzduQMSYfWEM4DDBu6A+XGbkFig== +"@babel/generator@^7.0.0", "@babel/generator@^7.1.2", "@babel/generator@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.1.3.tgz#2103ec9c42d9bdad9190a6ad5ff2d456fd7b8673" + integrity sha512-ZoCZGcfIJFJuZBqxcY9OjC1KW2lWK64qrX1o4UYL3yshVhwKFYgzpWZ0vvtGMNJdTlvkw0W+HR1VnYN8q3QPFQ== dependencies: - "@babel/types" "^7.1.2" + "@babel/types" "^7.1.3" jsesc "^2.5.1" lodash "^4.17.10" source-map "^0.5.0" @@ -291,10 +291,10 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.2.tgz#85c5c47af6d244fab77bce6b9bd830e38c978409" - integrity sha512-x5HFsW+E/nQalGMw7hu+fvPqnBeBaIr0lWJ2SG0PPL2j+Pm9lYvCrsZJGIgauPIENx0v10INIyFjmSNUD/gSqQ== +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.1.2", "@babel/parser@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.3.tgz#2c92469bac2b7fbff810b67fca07bd138b48af77" + integrity sha512-gqmspPZOMW3MIRb9HlrnbZHXI1/KHTOroBwN1NcLL6pWxzqzEKGvRTq0W/PxS45OtQGbaFikSQpkS5zbnsQm2w== "@babel/plugin-proposal-async-generator-functions@^7.1.0": version "7.1.0" @@ -466,9 +466,9 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-destructuring@^7.0.0": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.1.2.tgz#5fa77d473f5a0a3f5266ad7ce2e8c995a164d60a" - integrity sha512-cvToXvp/OsYxtEn57XJu9BvsGSEYjAh9UeUuXpoi7x6QHB7YdWyQ4lRU/q0Fu1IJNT0o0u4FQ1DMQBzJ8/8vZg== + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.1.3.tgz#e69ff50ca01fac6cb72863c544e516c2b193012f" + integrity sha512-Mb9M4DGIOspH1ExHOUnn2UUXFOyVTiX84fXCd+6B5iWrQg/QMeeRmSwpZ9lnjYLSXtZwiw80ytVMr3zue0ucYw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -544,9 +544,9 @@ "@babel/helper-simple-access" "^7.1.0" "@babel/plugin-transform-modules-systemjs@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.0.0.tgz#8873d876d4fee23209decc4d1feab8f198cf2df4" - integrity sha512-8EDKMAsitLkiF/D4Zhe9CHEE2XLh4bfLbb9/Zf3FgXYQOZyZYyg7EAel/aT2A7bHv62jwHf09q2KU/oEexr83g== + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.1.3.tgz#2119a3e3db612fd74a19d88652efbfe9613a5db0" + integrity sha512-PvTxgjxQAq4pvVUZF3mD5gEtVDuId8NtWkJsZLEJZMZAW3TvgQl1pmydLLN1bM8huHFVVU43lf0uvjQj9FRkKw== dependencies: "@babel/helper-hoist-variables" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -787,16 +787,16 @@ lodash "^4.2.0" "@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.0.tgz#503ec6669387efd182c3888c4eec07bcc45d91b2" - integrity sha512-bwgln0FsMoxm3pLOgrrnGaXk18sSM9JNf1/nHC/FksmNGFbYnPWY4GYCfLxyP1KRmfsxqkRpfoa6xr6VuuSxdw== + version "7.1.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.4.tgz#f4f83b93d649b4b2c91121a9087fa2fa949ec2b4" + integrity sha512-my9mdrAIGdDiSVBuMjpn/oXYpva0/EZwWL3sm3Wcy/AVWO2eXnsoZruOT9jOGNRXU8KbCIu5zsKnXcAJ6PcV6Q== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.0.0" + "@babel/generator" "^7.1.3" "@babel/helper-function-name" "^7.1.0" "@babel/helper-split-export-declaration" "^7.0.0" - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/parser" "^7.1.3" + "@babel/types" "^7.1.3" debug "^3.1.0" globals "^11.1.0" lodash "^4.17.10" @@ -810,10 +810,10 @@ lodash "^4.2.0" to-fast-properties "^2.0.0" -"@babel/types@^7.0.0", "@babel/types@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.1.2.tgz#183e7952cf6691628afdc2e2b90d03240bac80c0" - integrity sha512-pb1I05sZEKiSlMUV9UReaqsCPUpgbHHHu2n1piRm7JkuBkm6QxcaIzKu6FMnMtCbih/cEYTR+RGYYC96Yk9HAg== +"@babel/types@^7.0.0", "@babel/types@^7.1.2", "@babel/types@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.1.3.tgz#3a767004567060c2f40fca49a304712c525ee37d" + integrity sha512-RpPOVfK+yatXyn8n4PB1NW6k9qjinrXrRR8ugBN8fD6hCy5RXI6PSbVqpOJBO9oSaY7Nom4ohj35feb0UR9hSA== dependencies: esutils "^2.0.2" lodash "^4.17.10" @@ -1036,7 +1036,7 @@ acorn-dynamic-import@^3.0.0: dependencies: acorn "^5.0.0" -acorn-globals@^4.1.0: +acorn-globals@^4.1.0, acorn-globals@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.0.tgz#e3b6f8da3c1552a95ae627571f7dd6923bb54103" integrity sha512-hMtHj3s5RnuhvHPowpBYvJVj3rAar82JiDQHvGs1zO0l10ocX/xEdBShNHTJaboucJUsScghp74pH3s7EnHHQw== @@ -1056,12 +1056,12 @@ acorn-walk@^6.0.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.0.tgz#c957f4a1460da46af4a0388ce28b4c99355b0cbc" integrity sha512-ugTb7Lq7u4GfWSqqpwE0bGyoBZNMTok/zDBXxfEG0QM50jNlGhIWjRC1pPN7bvV1anhF+bs+/gNcRw+o55Evbg== -acorn@^5.0.0, acorn@^5.0.3, acorn@^5.5.3, acorn@^5.6.0, acorn@^5.6.2, acorn@^5.7.1: +acorn@^5.0.0, acorn@^5.0.3, acorn@^5.5.3, acorn@^5.6.0, acorn@^5.6.2: version "5.7.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== -acorn@^6.0.1: +acorn@^6.0.1, acorn@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.2.tgz#6a459041c320ab17592c6317abbfdf4bbaa98ca4" integrity sha512-GXmKIvbrN3TV7aVqAzVFaMW8F8wzVX7voEBRO3bDA64+EX37YSayggRJP5Xig6HYHBkWKpFg9W5gg6orklubhg== @@ -1354,16 +1354,16 @@ atob@^2.1.1: integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== autoprefixer@^9.1.5: - version "9.1.5" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.1.5.tgz#8675fd8d1c0d43069f3b19a2c316f3524e4f6671" - integrity sha512-kk4Zb6RUc58ld7gdosERHMF3DzIYJc2fp5sX46qEsGXQQy5bXsu8qyLjoxuY1NuQ/cJuCYnx99BfjwnRggrYIw== + version "9.2.0" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.2.0.tgz#e46f893882b19a160370e7bcd3ec6bbeaace4d10" + integrity sha512-OuxUyTvzRe9EvKyouPqfr8QUkQ0pH400NOFzI1LFINO8zwgJr7ZTybLql03P//LjR0iWile2lCoy2vRTRSFpMw== dependencies: - browserslist "^4.1.0" - caniuse-lite "^1.0.30000884" + browserslist "^4.2.1" + caniuse-lite "^1.0.30000890" normalize-range "^0.1.2" num2fraction "^1.2.2" - postcss "^7.0.2" - postcss-value-parser "^3.2.3" + postcss "^7.0.5" + postcss-value-parser "^3.3.1" aws-sign2@~0.7.0: version "0.7.0" @@ -1560,10 +1560,10 @@ babel-preset-jest@^23.2.0: babel-plugin-jest-hoist "^23.2.0" babel-plugin-syntax-object-rest-spread "^6.13.0" -babel-preset-react-app@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-5.0.2.tgz#b00605ec1ae4f0dee0bde33f5b6896de6f720a15" - integrity sha512-ogV5J3o5lxdUwNGNGbVTHhAnWMLhnSv9QR/Kyb0aeeJ4IURdky3Uj8gTb258hyE4jRUMohU9CUUwzHfeuj3qPw== +babel-preset-react-app@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-5.0.3.tgz#ab750bc368e5bbabb45a3dade946660d29dac6bd" + integrity sha512-nLeuYPjhOUGKgYCZrGW57glKCwr5ahMsX5gv025bugevHfK2H+wTw8zOIkG/mpiC/vkhFBp8GamOhnpHNFIwmA== dependencies: "@babel/core" "7.1.0" "@babel/plugin-proposal-class-properties" "7.1.0" @@ -1715,21 +1715,21 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== -body-parser@1.18.2: - version "1.18.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" - integrity sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ= +body-parser@1.18.3: + version "1.18.3" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" + integrity sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ= dependencies: bytes "3.0.0" content-type "~1.0.4" debug "2.6.9" - depd "~1.1.1" - http-errors "~1.6.2" - iconv-lite "0.4.19" + depd "~1.1.2" + http-errors "~1.6.3" + iconv-lite "0.4.23" on-finished "~2.3.0" - qs "6.5.1" - raw-body "2.3.2" - type-is "~1.6.15" + qs "6.5.2" + raw-body "2.3.3" + type-is "~1.6.16" bonjour@^3.5.0: version "3.5.0" @@ -1866,14 +1866,14 @@ browserslist@4.1.1: electron-to-chromium "^1.3.62" node-releases "^1.0.0-alpha.11" -browserslist@^4.0.0, browserslist@^4.1.0, browserslist@^4.1.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.1.2.tgz#632feb46d1cbdd6bb1a6eb660eff68f2345ae7e7" - integrity sha512-docXmVcYth9AiW5183dEe2IxnbmpXF4jiM6efGBVRAli/iDSS894Svvjenrv5NPqAJ4dEJULmT4MSvmLG9qoYg== +browserslist@^4.0.0, browserslist@^4.1.0, browserslist@^4.1.1, browserslist@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.2.1.tgz#257a24c879d1cd4016348eee5c25de683260b21d" + integrity sha512-1oO0c7Zhejwd+LXihS89WqtKionSbz298rJZKJgfrHIZhrV8AC15gw553VcB0lcEugja7IhWD7iAlrsamfYVPA== dependencies: - caniuse-lite "^1.0.30000888" - electron-to-chromium "^1.3.73" - node-releases "^1.0.0-alpha.12" + caniuse-lite "^1.0.30000890" + electron-to-chromium "^1.3.79" + node-releases "^1.0.0-alpha.14" bser@^2.0.0: version "2.0.0" @@ -2020,10 +2020,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000884, caniuse-lite@^1.0.30000887, caniuse-lite@^1.0.30000888: - version "1.0.30000889" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000889.tgz#53e266c83e725ad3bd2e4a3ea76d5031a8aa4c3e" - integrity sha512-MFxcQ6x/LEEoaIhO7Zdb7Eg8YyNONN+WBnS5ERJ0li2yRw51+i4xXUNxnLaveTb/4ZoJqsWKEmlomhG2pYzlQA== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000884, caniuse-lite@^1.0.30000887, caniuse-lite@^1.0.30000890: + version "1.0.30000890" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000890.tgz#86a18ffcc65d79ec6a437e985761b8bf1c4efeaf" + integrity sha512-4NI3s4Y6ROm+SgZN5sLUG4k7nVWQnedis3c/RWkynV5G6cHSY7+a8fwFyn2yoBDE3E6VswhTNNwR3PvzGqlTkg== capture-exit@^1.2.0: version "1.2.0" @@ -2232,9 +2232,9 @@ color-string@^1.5.2: simple-swizzle "^0.2.2" color@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a" - integrity sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w== + version "3.1.0" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.0.tgz#d8e9fb096732875774c84bf922815df0308d0ffc" + integrity sha512-CwyopLkuRYO5ei2EpzpIh6LqJMt6Mt+jZhO5VI5f/wJLZriXQE32/SSqzmrh+QB+AZT81Cj8yv+7zwToW8ahZg== dependencies: color-convert "^1.9.1" color-string "^1.5.2" @@ -2264,9 +2264,9 @@ commander@2.17.x, commander@~2.17.1: integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== commander@^2.11.0: - version "2.18.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.18.0.tgz#2bf063ddee7c7891176981a2cc798e5754bc6970" - integrity sha512-6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ== + version "2.19.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== commander@~2.13.0: version "2.13.0" @@ -2682,7 +2682,7 @@ csso@^3.5.0: dependencies: css-tree "1.0.0-alpha.29" -cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0", cssom@^0.3.4: version "0.3.4" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.4.tgz#8cd52e8a3acfd68d3aed38ee0a640177d2f9d797" integrity sha512-+7prCSORpXNeR4/fUP3rL+TzqtiFfhMvTd7uEqMdgPvLPt4+uzFUeufx5RHjGTACCargg/DiEt/moMQmvnfkog== @@ -2740,9 +2740,9 @@ debug@=3.1.0: ms "2.0.0" debug@^3.1.0: - version "3.2.5" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.5.tgz#c2418fbfd7a29f4d4f70ff4cea604d4b64c46407" - integrity sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg== + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" @@ -2857,12 +2857,7 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= -depd@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" - integrity sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k= - -depd@~1.1.1, depd@~1.1.2: +depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= @@ -3049,9 +3044,9 @@ duplexer@^0.1.1: integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= duplexify@^3.4.2, duplexify@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.0.tgz#592903f5d80b38d037220541264d69a198fb3410" - integrity sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ== + version "3.6.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.1.tgz#b1a7a29c4abfd639585efaecce80d666b1e34125" + integrity sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA== dependencies: end-of-stream "^1.0.0" inherits "^2.0.1" @@ -3071,10 +3066,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.62, electron-to-chromium@^1.3.73: - version "1.3.73" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.73.tgz#aa67787067d58cc3920089368b3b8d6fe0fc12f6" - integrity sha512-6PIg7v9zRoVGh6EheRF8h6Plti+3Yo/qtHobS4/Htyt53DNHmKKGFqSae1AIk0k1S4gCQvt7I2WgpbuZNcDY+g== +electron-to-chromium@^1.3.62, electron-to-chromium@^1.3.79: + version "1.3.79" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.79.tgz#774718f06284a4bf8f578ac67e74508fe659f13a" + integrity sha512-LQdY3j4PxuUl6xfxiFruTSlCniTrTrzAd8/HfsLEMi0PUpaQ0Iy+Pr4N4VllDYjs0Hyu2lkTbvzqlG+PX9NsNw== elliptic@^6.0.0: version "6.4.1" @@ -3238,10 +3233,10 @@ eslint-plugin-import@2.14.0: read-pkg-up "^2.0.0" resolve "^1.6.0" -eslint-plugin-jsx-a11y@6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.1.tgz#7bf56dbe7d47d811d14dbb3ddff644aa656ce8e1" - integrity sha512-JsxNKqa3TwmPypeXNnI75FntkUktGzI1wSa1LgNZdSOMI+B4sxnr1lSF8m8lPiz4mKiC+14ysZQM4scewUrP7A== +eslint-plugin-jsx-a11y@6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.2.tgz#69bca4890b36dcf0fe16dd2129d2d88b98f33f88" + integrity sha512-7gSSmwb3A+fQwtw0arguwMdOdzmKUgnUcbSNlo+GjKLAQFuC2EZxWqG9XHRI8VscBJD5a8raz3RuxQNFW+XJbw== dependencies: aria-query "^3.0.0" array-includes "^3.0.3" @@ -3490,13 +3485,13 @@ expect@^23.6.0: jest-regex-util "^23.3.0" express@^4.16.2: - version "4.16.3" - resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" - integrity sha1-avilAjUNsyRuzEvs9rWjTSL37VM= + version "4.16.4" + resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e" + integrity sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg== dependencies: accepts "~1.3.5" array-flatten "1.1.1" - body-parser "1.18.2" + body-parser "1.18.3" content-disposition "0.5.2" content-type "~1.0.4" cookie "0.3.1" @@ -3513,10 +3508,10 @@ express@^4.16.2: on-finished "~2.3.0" parseurl "~1.3.2" path-to-regexp "0.1.7" - proxy-addr "~2.0.3" - qs "6.5.1" + proxy-addr "~2.0.4" + qs "6.5.2" range-parser "~1.2.0" - safe-buffer "5.1.1" + safe-buffer "5.1.2" send "0.16.2" serve-static "1.13.2" setprototypeof "1.1.0" @@ -3784,9 +3779,9 @@ flush-write-stream@^1.0.0: readable-stream "^2.0.4" follow-redirects@^1.0.0: - version "1.5.8" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.8.tgz#1dbfe13e45ad969f813e86c00e5296f525c885a1" - integrity sha512-sy1mXPmv7kLAMKW/8XofG7o9T+6gAjzdZK4AJF6ryqQYUa/hnzgiypoeUecZ53x7XiqKNEpNqLtS97MshW2nxg== + version "1.5.9" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.9.tgz#c9ed9d748b814a39535716e531b9196a845d89c6" + integrity sha512-Bh65EZI/RU8nx0wbYF9shkFZlqLP+6WT/5FnA3cE/djNSuKNHJEinGGZgu/cQEkeeb2GdFOgenAmn8qaqYke2w== dependencies: debug "=3.1.0" @@ -4059,12 +4054,12 @@ gzip-size@5.0.0: pify "^3.0.0" h2x-core@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/h2x-core/-/h2x-core-1.1.0.tgz#dfbf2460043d8ab76c6fa90902a1557f8330221a" - integrity sha512-vw1GN5i+dKctUEKn6z9CFs2Lh3ktYw8M3knqSvvqd4DhDV7c4d13tVPKSgxbtoXMdIph2Icd401L5m2KzxIosw== + version "1.1.1" + resolved "https://registry.yarnpkg.com/h2x-core/-/h2x-core-1.1.1.tgz#7fb31ab28e30ebf11818e3c7d183487ecf489f9f" + integrity sha512-LdXe4Irs731knLtHgLyFrnJCumfiqXXQwKN1IMUhi37li29PLfLbMDvfK7Rk4wmgHLKP+sIITT1mcJV4QsC3nw== dependencies: h2x-generate "^1.1.0" - h2x-parse "^1.1.0" + h2x-parse "^1.1.1" h2x-traverse "^1.1.0" h2x-generate@^1.1.0: @@ -4074,18 +4069,18 @@ h2x-generate@^1.1.0: dependencies: h2x-traverse "^1.1.0" -h2x-parse@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/h2x-parse/-/h2x-parse-1.1.0.tgz#833e6fc9ef4f5e634c85214aca8bbbd2525c3029" - integrity sha512-VOxlDHA5aqi110rAfCYrfRlcbxozZcSpLdchwYDYpZHmLzKp+e8EsNb/4qiiQaoj8yXuk7nLlvy79CcWgPJFgw== +h2x-parse@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/h2x-parse/-/h2x-parse-1.1.1.tgz#875712cd3be75cf736c610d279b8653b24f58385" + integrity sha512-WRSmPF+tIWuUXVEZaYRhcZx/JGEJx8LjZpDDtrvMr5m/GTR0NerydCik5dRzcKXPWCtfXxuJRLR4v2P4HB2B1A== dependencies: h2x-types "^1.1.0" - jsdom "^12.0.0" + jsdom ">=11.0.0" h2x-plugin-jsx@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/h2x-plugin-jsx/-/h2x-plugin-jsx-1.1.0.tgz#cb2595c7c69e4c171f748445a1988dcc653c56e2" - integrity sha512-0XeyGqbPPLvwn0a0umRxLprwR/STZTySjQmx2KY37jDh+SBbhyLo04QozMCyCWYbs85jTg/KGi6PJHfE0z4mrQ== + version "1.2.0" + resolved "https://registry.yarnpkg.com/h2x-plugin-jsx/-/h2x-plugin-jsx-1.2.0.tgz#211fa02e5c4e0a07307b0005629923910e631c01" + integrity sha512-a7Vb3BHhJJq0dPDNdqguEyQirENkVsFtvM2YkiaT5h/fmGhmM1nDy3BLeJeSKi2tL2g9v4ykm2Z+GG9QrhDgPA== dependencies: h2x-types "^1.1.0" @@ -4286,9 +4281,9 @@ hsla-regex@^1.0.0: integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= html-comment-regex@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" - integrity sha1-ZouTd26q5V696POtRkswekljYl4= + version "1.1.2" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" + integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== html-encoding-sniffer@^1.0.2: version "1.0.2" @@ -4343,17 +4338,7 @@ http-deceiver@^1.2.7: resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= -http-errors@1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" - integrity sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY= - dependencies: - depd "1.1.1" - inherits "2.0.3" - setprototypeof "1.0.3" - statuses ">= 1.3.1 < 2" - -http-errors@~1.6.2: +http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: version "1.6.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= @@ -4401,10 +4386,12 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -iconv-lite@0.4.19: - version "0.4.19" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" - integrity sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ== +iconv-lite@0.4.23: + version "0.4.23" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" + integrity sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA== + dependencies: + safer-buffer ">= 2.1.2 < 3" iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: version "0.4.24" @@ -5373,6 +5360,37 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= +jsdom@>=11.0.0: + version "12.2.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-12.2.0.tgz#7cf3f5b5eafd47f8f09ca52315d367ff6e95de23" + integrity sha512-QPOggIJ8fquWPLaYYMoh+zqUmdphDtu1ju0QGTitZT1Yd8I5qenPpXM1etzUegu3MjVp8XPzgZxdn8Yj7e40ig== + dependencies: + abab "^2.0.0" + acorn "^6.0.2" + acorn-globals "^4.3.0" + array-equal "^1.0.0" + cssom "^0.3.4" + cssstyle "^1.1.1" + data-urls "^1.0.1" + domexception "^1.0.1" + escodegen "^1.11.0" + html-encoding-sniffer "^1.0.2" + nwsapi "^2.0.9" + parse5 "5.1.0" + pn "^1.1.0" + request "^2.88.0" + request-promise-native "^1.0.5" + saxes "^3.1.3" + symbol-tree "^3.2.2" + tough-cookie "^2.4.3" + w3c-hr-time "^1.0.1" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + ws "^6.1.0" + xml-name-validator "^3.0.0" + jsdom@^11.5.1: version "11.12.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" @@ -5405,37 +5423,6 @@ jsdom@^11.5.1: ws "^5.2.0" xml-name-validator "^3.0.0" -jsdom@^12.0.0: - version "12.1.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-12.1.0.tgz#2c8fbd12a2c690c8a8e14cce164afa11879e57f4" - integrity sha512-1lrrgWhI5zN5B5p88xihrhfeAbdagMUXEN8Z+8l5f33k5IMZYDxIDJaPXKOOBF4xAt6hVyE/HrBbUYGjSrZlvg== - dependencies: - abab "^2.0.0" - acorn "^5.7.1" - acorn-globals "^4.1.0" - array-equal "^1.0.0" - cssom ">= 0.3.2 < 0.4.0" - cssstyle "^1.1.1" - data-urls "^1.0.1" - domexception "^1.0.1" - escodegen "^1.11.0" - html-encoding-sniffer "^1.0.2" - nwsapi "^2.0.8" - parse5 "5.1.0" - pn "^1.1.0" - request "^2.88.0" - request-promise-native "^1.0.5" - saxes "^3.1.2" - symbol-tree "^3.2.2" - tough-cookie "^2.4.3" - w3c-hr-time "^1.0.1" - webidl-conversions "^4.0.2" - whatwg-encoding "^1.0.4" - whatwg-mimetype "^2.1.0" - whatwg-url "^7.0.0" - ws "^6.0.0" - xml-name-validator "^3.0.0" - jsesc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" @@ -5997,9 +5984,9 @@ minipass@^2.2.1, minipass@^2.3.3: yallist "^3.0.0" minizlib@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" - integrity sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA== + version "1.1.1" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.1.tgz#6734acc045a46e61d596a43bb9d9cd326e19cc42" + integrity sha512-TrfjCjk4jLhcJyGMYymBH6oTXcWjYbUAXTHDbtnWHjZC25h0cdajHuPE1zxb4DVmu8crfh+HwH/WMuyLG0nHBg== dependencies: minipass "^2.2.1" @@ -6221,10 +6208,10 @@ node-pre-gyp@^0.10.0: semver "^5.3.0" tar "^4" -node-releases@^1.0.0-alpha.11, node-releases@^1.0.0-alpha.12: - version "1.0.0-alpha.12" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.0.0-alpha.12.tgz#32e461b879ea76ac674e511d9832cf29da345268" - integrity sha512-VPB4rTPqpVyWKBHbSa4YPFme3+8WHsOSpvbp0Mfj0bWsC8TEjt4HQrLl1hsBDELlp1nB4lflSgSuGTYiuyaP7Q== +node-releases@^1.0.0-alpha.11, node-releases@^1.0.0-alpha.14: + version "1.0.0-alpha.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.0.0-alpha.14.tgz#da9e2780add4bbb59ad890af9e2018a1d9c0034b" + integrity sha512-G8nnF9cP9QPP/jUmYWw/uUUhumHmkm+X/EarCugYFjYm2uXRMFeOD6CVT3RLdoyCvDUNy51nirGfUItKWs/S1g== dependencies: semver "^5.3.0" @@ -6269,9 +6256,9 @@ npm-bundled@^1.0.1: integrity sha512-m/e6jgWu8/v5niCUKQi9qQl8QdeEduFA96xHDDzFGqly0OOjI7c+60KM/2sppfnUU9JJagf+zs+yGhqSOFj71g== npm-packlist@^1.1.6: - version "1.1.11" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.11.tgz#84e8c683cbe7867d34b1d357d893ce29e28a02de" - integrity sha512-CxKlZ24urLkJk+9kCm48RTQ7L4hsmgSVzEk0TLGPzzyuFxD7VNgy5Sl24tOLMzQv773a/NeJ1ce1DKeacqffEA== + version "1.1.12" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.12.tgz#22bde2ebc12e72ca482abd67afc51eb49377243a" + integrity sha512-WJKFOVMeAlsU/pjXuqVdzU0WfgtIBCupkEVwn+1Y0ERAbUfWw8R4GjgVbaKnUjRoD2FoQbHOCbOyT5Mbs9Lw4g== dependencies: ignore-walk "^3.0.1" npm-bundled "^1.0.1" @@ -6310,7 +6297,7 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= -nwsapi@^2.0.7, nwsapi@^2.0.8: +nwsapi@^2.0.7, nwsapi@^2.0.9: version "2.0.9" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.0.9.tgz#77ac0cdfdcad52b6a1151a84e73254edc33ed016" integrity sha512-nlWFSCTYQcHk/6A9FFnfhKc14c3aFhfdNBXgo8Qgi9QTBu/qg3Ww+Uiz9wMzXd1T8GFxPc2QIHB6Qtf2XFryFQ== @@ -6867,11 +6854,11 @@ postcss-convert-values@^4.0.1: postcss-value-parser "^3.0.0" postcss-custom-media@^7.0.4: - version "7.0.4" - resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.4.tgz#98e593c4a9a38fefee848434131fa16d316ee165" - integrity sha512-DY0Vdc4wW7EN1CNzV7FJCA+B9p0u9RjnPtGcFoHxr824/Ce76ff9t20jrfvijRHwlS14Ca4/MjVTuC/wMYWVcw== + version "7.0.6" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.6.tgz#c6b00ff7fee6ddc7dfdd946d66ed65e7743db09b" + integrity sha512-Txk5Ve0XWw105N6490xoq1aAHkLWIBGowBxHrLqbfsPfv/nzPvP2txyPMwn6OW87eeTO7H0a7P/BVJ4WMPEgJA== dependencies: - postcss "^7.0.2" + postcss "^7.0.5" postcss-custom-properties@^8.0.5: version "8.0.8" @@ -7380,10 +7367,10 @@ postcss-unique-selectors@^4.0.1: postcss "^7.0.0" uniqs "^2.0.0" -postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" - integrity sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU= +postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== postcss-values-parser@^2.0.0: version "2.0.0" @@ -7496,7 +7483,7 @@ prop-types@^15.6.2: loose-envify "^1.3.1" object-assign "^4.1.1" -proxy-addr@~2.0.3: +proxy-addr@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93" integrity sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA== @@ -7576,12 +7563,7 @@ q@^1.1.2: resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= -qs@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" - integrity sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A== - -qs@~6.5.2: +qs@6.5.2, qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== @@ -7597,9 +7579,9 @@ querystring@0.2.0: integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= querystringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.0.0.tgz#fa3ed6e68eb15159457c89b37bc6472833195755" - integrity sha512-eTPo5t/4bgaMNZxyjWx6N2a6AuE0mq51KWvpc7nU/MAqixcI6v6KrGUKES0HaomdnolQBBXU/++X6/QQ9KL4tw== + version "2.1.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.0.tgz#7ded8dfbf7879dcc60d0a644ac6754b283ad17ef" + integrity sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg== raf@3.4.0: version "3.4.0" @@ -7637,14 +7619,14 @@ range-parser@^1.0.3, range-parser@~1.2.0: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4= -raw-body@2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" - integrity sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k= +raw-body@2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" + integrity sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw== dependencies: bytes "3.0.0" - http-errors "1.6.2" - iconv-lite "0.4.19" + http-errors "1.6.3" + iconv-lite "0.4.23" unpipe "1.0.0" rc@^1.2.7: @@ -7668,10 +7650,10 @@ react-app-polyfill@^0.1.3: raf "3.4.0" whatwg-fetch "3.0.0" -react-dev-utils@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-6.0.3.tgz#78662b5fd7b4441140485e80d04d594116c5b1e3" - integrity sha512-3fI6rknX4td1/iFM+RtQh56TgSKUn6lvAmzqtYepk6OrTGwG1bEXv0x0NvaUdTwZHwdcdkuaeOeTzZHSbHk4Ug== +react-dev-utils@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-6.0.4.tgz#cd6d2712aa22d67751ef6757dc82787351da8826" + integrity sha512-0I+eRcb4RrmlWCKRJhDLi29oTEqpDEbbVGI1DrN/ZTJbvhzycsg03Edi67YQVUjYl690URufowi54+u0TUnQMw== dependencies: "@babel/code-frame" "7.0.0" address "1.0.3" @@ -7689,17 +7671,17 @@ react-dev-utils@^6.0.3: loader-utils "1.1.0" opn "5.4.0" pkg-up "2.0.0" - react-error-overlay "^5.0.3" + react-error-overlay "^5.0.4" recursive-readdir "2.2.2" shell-quote "1.6.1" sockjs-client "1.1.5" strip-ansi "4.0.0" text-table "0.2.0" -react-error-overlay@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-5.0.3.tgz#6eae9350144f3cd036e4f968c5a8bfae542af562" - integrity sha512-TLMcjJcNy7BalEHN1iNuIK0E6ODYgExcrdaKraT4kzKVztkrBHI1THTAn3qx7GVvtP4TbCqi+mBjsZqoWtuiEQ== +react-error-overlay@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-5.0.4.tgz#39cf184d770f98b65a2ee59a779d03b8d092b69e" + integrity sha512-grVJtoDzIbSMYgy5rKbSOmt2FvzR4iJnpMBjXmZolSYJM5acQvBHoEbBBNW0FzTE/TLZMZ+gSy0bAHydc1hFEw== read-pkg-up@^1.0.1: version "1.0.1" @@ -7834,9 +7816,9 @@ regex-not@^1.0.0, regex-not@^1.0.2: safe-regex "^1.1.0" regexpp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.0.tgz#b2a7534a85ca1b033bcf5ce9ff8e56d4e0755365" - integrity sha512-g2FAVtR8Uh8GO1Nv5wpxW7VFVwHcCEr4wyA8/MHiRkO8uHoR5ntAA8Uq3P1vvMTX/BeQiRVSpDGLd+Wn5HNOTA== + version "2.0.1" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== regexpu-core@^1.0.0: version "1.0.0" @@ -8097,11 +8079,6 @@ rxjs@^6.1.0: dependencies: tslib "^1.9.0" -safe-buffer@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" - integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg== - safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -8152,7 +8129,7 @@ sax@^1.2.4, sax@~1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -saxes@^3.1.2: +saxes@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.3.tgz#334ab3b802a465ccda96fff9bdefbd505546ffa8" integrity sha512-Nc5DXc5A+m3rUDtkS+vHlBWKT7mCKjJPyia7f8YMW773hsXVv2wEHQZGE0zs4+5PLwz9U5Sbl/94Cnd9vHV7Bg== @@ -8182,16 +8159,16 @@ select-hose@^2.0.0: integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= selfsigned@^1.9.1: - version "1.10.3" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.3.tgz#d628ecf9e3735f84e8bafba936b3cf85bea43823" - integrity sha512-vmZenZ+8Al3NLHkWnhBQ0x6BkML1eCP2xEi3JE+f3D9wW9fipD9NNJHYtE9XJM4TsPaHGZJIamrSI6MTg1dU2Q== + version "1.10.4" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.4.tgz#cdd7eccfca4ed7635d47a08bf2d5d3074092e2cd" + integrity sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw== dependencies: node-forge "0.7.5" "semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1: - version "5.5.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477" - integrity sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw== + version "5.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" + integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== send@0.16.2: version "0.16.2" @@ -8270,11 +8247,6 @@ setimmediate@^1.0.4: resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= -setprototypeof@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" - integrity sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ= - setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" @@ -8414,9 +8386,9 @@ sockjs@0.3.19: uuid "^3.0.1" source-list-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" - integrity sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A== + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== source-map-resolve@^0.5.0: version "0.5.2" @@ -8460,9 +8432,9 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== spdx-correct@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.1.tgz#434434ff9d1726b4d9f4219d1004813d80639e30" - integrity sha512-hxSPZbRZvSDuOvADntOElzJpenIR7wXJkuoUcUtS0erbgt2fgeaoPIYretfKpslMhfFDY4k0MZ2F5CUzhBsSvQ== + version "3.0.2" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.2.tgz#19bb409e91b47b1ad54159243f7312a858db3c2e" + integrity sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ== dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" @@ -8523,19 +8495,18 @@ sprintf-js@~1.0.2: integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= sshpk@^1.7.0: - version "1.14.2" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98" - integrity sha1-xvxhZIo9nE52T9P8306hBeSSupg= + version "1.15.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.15.1.tgz#b79a089a732e346c6e0714830f36285cd38191a2" + integrity sha512-mSdgNUaidk+dRU5MhYtN9zebdzF2iG0cNPWy8HG+W8y+fT1JnSkh0fzzpjOa0L7P8i1Rscz38t0h4gPcKz43xA== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - safer-buffer "^2.0.2" - optionalDependencies: bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" ecc-jsbn "~0.1.1" + getpass "^0.1.1" jsbn "~0.1.0" + safer-buffer "^2.0.2" tweetnacl "~0.14.0" ssri@^5.2.4: @@ -8570,7 +8541,7 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2": +"statuses@>= 1.4.0 < 2": version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= @@ -8813,9 +8784,9 @@ terser-webpack-plugin@1.1.0: worker-farm "^1.5.2" terser@^3.8.1: - version "3.9.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-3.9.2.tgz#d139d8292eb3a23091304c934fb539d9f456fb19" - integrity sha512-zOaL2PwflERZkVWbzv8rGbDR493fUaD/KXIUz/vjuvyH6Cxwu4pitM6con3Jy4bWtcQJwNOvN4rHltFeTEwZQA== + version "3.10.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-3.10.0.tgz#6ae15dafecbd02c9788d5f36d27fca32196b533a" + integrity sha512-hNh2WR3YxtKoY7BNSb3+CJ9Xv9bbUuOU9uriIf2F1tiAYNA4rNy2wWuSDV8iKcag27q65KPJ/sPpMWEh6qttgw== dependencies: commander "~2.17.1" source-map "~0.6.1" @@ -8985,7 +8956,7 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-is@~1.6.15, type-is@~1.6.16: +type-is@~1.6.16: version "1.6.16" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" integrity sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q== @@ -9391,7 +9362,7 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== -whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.4: +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== @@ -9403,7 +9374,7 @@ whatwg-fetch@3.0.0: resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== -whatwg-mimetype@^2.1.0: +whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.2.0.tgz#a3d58ef10b76009b042d03e25591ece89b88d171" integrity sha512-5YSO1nMd5D1hY3WzAQV3PzZL83W3YeyR1yW9PcH26Weh1t+Vzh9B6XkDh7aXm83HBZ4nSMvkjvN2H2ySWIvBgw== @@ -9625,10 +9596,10 @@ ws@^5.2.0: dependencies: async-limiter "~1.0.0" -ws@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.0.0.tgz#eaa494aded00ac4289d455bac8d84c7c651cef35" - integrity sha512-c2UlYcAZp1VS8AORtpq6y4RJIkJ9dQz18W32SpR/qXGfLDZ2jU4y4wKvvZwqbi7U6gxFQTeE+urMbXU/tsDy4w== +ws@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.0.tgz#119a9dbf92c54e190ec18d10e871d55c95cf9373" + integrity sha512-H3dGVdGvW2H8bnYpIDc3u3LH8Wue3Qh+Zto6aXXFzvESkTVT6rAfKR6tR/+coaUvxs8yHtmNV0uioBF62ZGSTg== dependencies: async-limiter "~1.0.0" From 7a6a9b50b6d3cfc4fed2ae7d432a7419cbfbbfbe Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Sun, 14 Oct 2018 20:02:26 +0100 Subject: [PATCH 0348/1249] Changelog for 2.0.5 --- CHANGELOG.md | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 38924d33cdd..c0fd3cf7f7a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,92 @@ +## 2.0.5 (October 14, 2018) + +#### :bug: Bug Fix +* `react-dev-utils` + * [#5431](https://github.com/facebook/create-react-app/pull/5431) Fix click-to-open on Windows. ([@gaearon](https://github.com/gaearon)) + * [#5335](https://github.com/facebook/create-react-app/pull/5335) Fix file size report after build. ([@OskarPersson](https://github.com/OskarPersson)) + +* `create-react-app` + * [#5362](https://github.com/facebook/create-react-app/pull/5362) Fix CI: non-semver compliant Yarn versions. ([@Timer](https://github.com/Timer)) + +* `react-scripts` + * [#5301](https://github.com/facebook/create-react-app/pull/5301) Fix TypeError when registering service workers without config. ([@peterbe](https://github.com/peterbe)) + +#### :nail_care: Enhancement +* `babel-preset-react-app` + * [#4984](https://github.com/facebook/create-react-app/pull/4984) Use the correct dependency for `babel-plugin-dynamic-import-node`. ([@vikr01](https://github.com/vikr01)) + +* `react-scripts` + * [#5354](https://github.com/facebook/create-react-app/pull/5354) Add environment variable to optionaly disable inlining of chunks. ([@0xdeafcafe](https://github.com/0xdeafcafe)) + * [#5330](https://github.com/facebook/create-react-app/pull/5330) Update `eslint-plugin-jsx-a11y` version. ([@AlmeroSteyn](https://github.com/AlmeroSteyn)) + +#### :memo: Documentation +* `react-scripts` + * [#5321](https://github.com/facebook/create-react-app/pull/5321) Added note on update to `.flowconfig` for .scss imports. ([@rlueder](https://github.com/rlueder)) + * [#5394](https://github.com/facebook/create-react-app/pull/5394) Correct instructions for HTTPS and PowerShell. ([@gavinbarron](https://github.com/gavinbarron)) + * [#5410](https://github.com/facebook/create-react-app/pull/5410) Updates to clarify the "waiting" SW behavior. ([@jeffposnick](https://github.com/jeffposnick)) + * [#5302](https://github.com/facebook/create-react-app/pull/5302) Update README.md. ([@simonCordovaByte9](https://github.com/simonCordovaByte9)) + * [#5334](https://github.com/facebook/create-react-app/pull/5334) Update README due to deprecation of react-testing-library's toBeInTheDOM. ([@rrebase](https://github.com/rrebase)) + * [#5326](https://github.com/facebook/create-react-app/pull/5326) README link fixes. ([@davidgilbertson](https://github.com/davidgilbertson)) + * [#5327](https://github.com/facebook/create-react-app/pull/5327) Updated the URL in index.html. ([@behzod](https://github.com/behzod)) + * [#5296](https://github.com/facebook/create-react-app/pull/5296) Adding documentation about git init. ([@ryancogswell](https://github.com/ryancogswell)) + * [#5290](https://github.com/facebook/create-react-app/pull/5290) Add react-testing-library documentation/examples (#4679). ([@gnapse](https://github.com/gnapse)) + * [#5286](https://github.com/facebook/create-react-app/pull/5286) Fix broken links to src/serviceWorker.js. ([@adambowles](https://github.com/adambowles)) +* Other + * [#5374](https://github.com/facebook/create-react-app/pull/5374) Add the new SVGs feature from the template README to the root README. ([@neo](https://github.com/neo)) + * [#5371](https://github.com/facebook/create-react-app/pull/5371) Update path to serviceWorker.js in graphical folder structure. ([@jonscottclark](https://github.com/jonscottclark)) + * [#5337](https://github.com/facebook/create-react-app/pull/5337) Fix typo. ([@mvasin](https://github.com/mvasin)) + +* `eslint-config-react-app` + * [#5416](https://github.com/facebook/create-react-app/pull/5416) Fix eslint config docs. ([@ludovicofischer](https://github.com/ludovicofischer)) + +#### :house: Internal +* Other + * [#5365](https://github.com/facebook/create-react-app/pull/5365) Clean up the behavior tests. ([@Timer](https://github.com/Timer)) + +* `create-react-app` + * [#5362](https://github.com/facebook/create-react-app/pull/5362) Fix CI: non-semver compliant Yarn versions. ([@Timer](https://github.com/Timer)) +* `react-scripts` + * [#5317](https://github.com/facebook/create-react-app/pull/5317) Remove unused require for getCacheIdentifier after ejecting. ([@benbrandt](https://github.com/benbrandt)) + +#### Committers: 23 +- Adam Bowles ([adambowles](https://github.com/adambowles)) +- Alex Forbes-Reed ([0xdeafcafe](https://github.com/0xdeafcafe)) +- Almero Steyn ([AlmeroSteyn](https://github.com/AlmeroSteyn)) +- Behzod Saidov ([behzod](https://github.com/behzod)) +- Ben Brandt ([benbrandt](https://github.com/benbrandt)) +- Dan Abramov ([gaearon](https://github.com/gaearon)) +- David Gilbertson ([davidgilbertson](https://github.com/davidgilbertson)) +- Ernesto García ([gnapse](https://github.com/gnapse)) +- Gavin Barron ([gavinbarron](https://github.com/gavinbarron)) +- Jeffrey Posnick ([jeffposnick](https://github.com/jeffposnick)) +- Joe Haddad ([Timer](https://github.com/Timer)) +- Jon Clark ([jonscottclark](https://github.com/jonscottclark)) +- Kristofer Selbekk ([selbekk](https://github.com/selbekk)) +- Ludovico Fischer ([ludovicofischer](https://github.com/ludovicofischer)) +- Mikhail Vasin ([mvasin](https://github.com/mvasin)) +- Oskar Persson ([OskarPersson](https://github.com/OskarPersson)) +- Peter Bengtsson ([peterbe](https://github.com/peterbe)) +- Rafael Lüder ([rlueder](https://github.com/rlueder)) +- Ragnar Rebase ([rrebase](https://github.com/rrebase)) +- Ryan Cogswell ([ryancogswell](https://github.com/ryancogswell)) +- Vikram Rangaraj ([vikr01](https://github.com/vikr01)) +- Wenchen Li ([neo](https://github.com/neo)) +- [simonCordovaByte9](https://github.com/simonCordovaByte9) + +### Migrating from 2.0.4 to 2.0.5 + +Inside any created project that has not been ejected, run: + +```bash +npm install --save --save-exact react-scripts@2.0.5 +``` + +or + +``` +yarn add --exact react-scripts@2.0.5 +``` + ## 2.0.4 (October 3, 2018) #### :bug: Bug Fix @@ -50,6 +139,20 @@ - Shubham Tiwari ([@lockround](https://github.com/lockround)) - Zacharias Knudsen ([@zachasme](https://github.com/zachasme)) +### Migrating from 2.0.3 to 2.0.4 + +Inside any created project that has not been ejected, run: + +```bash +npm install --save --save-exact react-scripts@2.0.4 +``` + +or + +``` +yarn add --exact react-scripts@2.0.4 +``` + ## 2.0.3 (October 1, 2018) Create React App 2.0 brings a year’s worth of improvements in a single dependency update. From f89385f7438f39750b762590ebd9729534e30190 Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Sun, 14 Oct 2018 20:03:15 +0100 Subject: [PATCH 0349/1249] Publish - babel-preset-react-app@5.0.4 - confusing-browser-globals@1.0.4 - create-react-app@2.0.4 - eslint-config-react-app@3.0.4 - react-dev-utils@6.0.5 - react-error-overlay@5.0.5 - react-scripts@2.0.5 --- packages/babel-preset-react-app/package.json | 2 +- packages/confusing-browser-globals/package.json | 2 +- packages/create-react-app/package.json | 2 +- packages/eslint-config-react-app/package.json | 4 ++-- packages/react-dev-utils/package.json | 4 ++-- packages/react-error-overlay/package.json | 6 +++--- packages/react-scripts/package.json | 8 ++++---- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/babel-preset-react-app/package.json b/packages/babel-preset-react-app/package.json index 7f2e741650c..f6fa2ea4466 100644 --- a/packages/babel-preset-react-app/package.json +++ b/packages/babel-preset-react-app/package.json @@ -1,6 +1,6 @@ { "name": "babel-preset-react-app", - "version": "5.0.3", + "version": "5.0.4", "description": "Babel preset used by Create React App", "repository": "facebook/create-react-app", "license": "MIT", diff --git a/packages/confusing-browser-globals/package.json b/packages/confusing-browser-globals/package.json index 3f8f8412b08..9b3d15335f6 100644 --- a/packages/confusing-browser-globals/package.json +++ b/packages/confusing-browser-globals/package.json @@ -1,6 +1,6 @@ { "name": "confusing-browser-globals", - "version": "1.0.3", + "version": "1.0.4", "description": "A list of browser globals that are often used by mistake instead of local variables", "license": "MIT", "main": "index.js", diff --git a/packages/create-react-app/package.json b/packages/create-react-app/package.json index 0a224714275..c5ecf050462 100644 --- a/packages/create-react-app/package.json +++ b/packages/create-react-app/package.json @@ -1,6 +1,6 @@ { "name": "create-react-app", - "version": "2.0.3", + "version": "2.0.4", "keywords": [ "react" ], diff --git a/packages/eslint-config-react-app/package.json b/packages/eslint-config-react-app/package.json index 5b0c6231df8..fa4bc60dd38 100644 --- a/packages/eslint-config-react-app/package.json +++ b/packages/eslint-config-react-app/package.json @@ -1,6 +1,6 @@ { "name": "eslint-config-react-app", - "version": "3.0.3", + "version": "3.0.4", "description": "ESLint configuration used by Create React App", "repository": "facebook/create-react-app", "license": "MIT", @@ -19,6 +19,6 @@ "eslint-plugin-react": "7.x" }, "dependencies": { - "confusing-browser-globals": "^1.0.3" + "confusing-browser-globals": "^1.0.4" } } diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index bbfb93eb27b..e70d4b57ac8 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -1,6 +1,6 @@ { "name": "react-dev-utils", - "version": "6.0.4", + "version": "6.0.5", "description": "Webpack utilities used by Create React App", "repository": "facebook/create-react-app", "license": "MIT", @@ -57,7 +57,7 @@ "loader-utils": "1.1.0", "opn": "5.4.0", "pkg-up": "2.0.0", - "react-error-overlay": "^5.0.4", + "react-error-overlay": "^5.0.5", "recursive-readdir": "2.2.2", "shell-quote": "1.6.1", "sockjs-client": "1.1.5", diff --git a/packages/react-error-overlay/package.json b/packages/react-error-overlay/package.json index a8fbd7493af..15f912d5abe 100644 --- a/packages/react-error-overlay/package.json +++ b/packages/react-error-overlay/package.json @@ -1,6 +1,6 @@ { "name": "react-error-overlay", - "version": "5.0.4", + "version": "5.0.5", "description": "An overlay for displaying stack frames.", "main": "lib/index.js", "scripts": { @@ -37,12 +37,12 @@ "babel-eslint": "9.0.0", "babel-jest": "23.6.0", "babel-loader": "8.0.4", - "babel-preset-react-app": "^5.0.3", + "babel-preset-react-app": "^5.0.4", "chalk": "^2.3.2", "chokidar": "^2.0.2", "cross-env": "5.2.0", "eslint": "5.6.0", - "eslint-config-react-app": "^3.0.3", + "eslint-config-react-app": "^3.0.4", "eslint-plugin-flowtype": "2.50.1", "eslint-plugin-import": "2.14.0", "eslint-plugin-jsx-a11y": "6.1.1", diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 469e003bab1..8c2ec3c5c76 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -1,6 +1,6 @@ { "name": "react-scripts", - "version": "2.0.4", + "version": "2.0.5", "description": "Configuration and scripts for Create React App.", "repository": "facebook/create-react-app", "license": "MIT", @@ -28,7 +28,7 @@ "babel-jest": "23.6.0", "babel-loader": "8.0.4", "babel-plugin-named-asset-import": "^0.2.2", - "babel-preset-react-app": "^5.0.3", + "babel-preset-react-app": "^5.0.4", "bfj": "6.1.1", "case-sensitive-paths-webpack-plugin": "2.1.2", "chalk": "2.4.1", @@ -36,7 +36,7 @@ "dotenv": "6.0.0", "dotenv-expand": "4.2.0", "eslint": "5.6.0", - "eslint-config-react-app": "^3.0.3", + "eslint-config-react-app": "^3.0.4", "eslint-loader": "2.1.1", "eslint-plugin-flowtype": "2.50.1", "eslint-plugin-import": "2.14.0", @@ -57,7 +57,7 @@ "postcss-preset-env": "6.0.6", "postcss-safe-parser": "4.0.1", "react-app-polyfill": "^0.1.3", - "react-dev-utils": "^6.0.4", + "react-dev-utils": "^6.0.5", "resolve": "1.8.1", "sass-loader": "7.1.0", "style-loader": "0.23.0", From 05d3fd2d0dd300d30684afc48240acaae6d85227 Mon Sep 17 00:00:00 2001 From: Ran Yitzhaki Date: Wed, 17 Oct 2018 03:14:33 +0300 Subject: [PATCH 0350/1249] Remove dot from the end of the link (#5449) --- packages/react-scripts/template/src/serviceWorker.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/template/src/serviceWorker.js b/packages/react-scripts/template/src/serviceWorker.js index 012c322dd2c..0bece46ae65 100644 --- a/packages/react-scripts/template/src/serviceWorker.js +++ b/packages/react-scripts/template/src/serviceWorker.js @@ -8,7 +8,7 @@ // resources are updated in the background. // To learn more about the benefits of this model and instructions on how to -// opt-in, read http://bit.ly/CRA-PWA. +// opt-in, read http://bit.ly/CRA-PWA const isLocalhost = Boolean( window.location.hostname === 'localhost' || From 302daeffff308a7268e9debca6cb7a1708e4c7f7 Mon Sep 17 00:00:00 2001 From: Kit Thompson Date: Thu, 18 Oct 2018 10:31:43 -0400 Subject: [PATCH 0351/1249] Fix typo explictly seems like a typo for explicitly --- packages/react-scripts/scripts/build.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/scripts/build.js b/packages/react-scripts/scripts/build.js index a9f6b87e2d0..955f1a0fb54 100644 --- a/packages/react-scripts/scripts/build.js +++ b/packages/react-scripts/scripts/build.js @@ -62,7 +62,7 @@ if (!checkRequiredFiles([paths.appHtml, paths.appIndexJs])) { const argv = process.argv.slice(2); const writeStatsJson = argv.indexOf('--stats') !== -1; -// We require that you explictly set browsers and do not fall back to +// We require that you explicitly set browsers and do not fall back to // browserslist defaults. const { checkBrowsers } = require('react-dev-utils/browsersHelper'); checkBrowsers(paths.appPath, isInteractive) From b652a98e8c7fd2895d0fdcafb63058d00aeb5e98 Mon Sep 17 00:00:00 2001 From: Sophie Alpert Date: Thu, 18 Oct 2018 18:40:59 -0700 Subject: [PATCH 0352/1249] New copy, by me --- docusaurus/website/pages/en/index.js | 93 ++++------------------------ docusaurus/website/siteConfig.js | 2 +- 2 files changed, 14 insertions(+), 81 deletions(-) diff --git a/docusaurus/website/pages/en/index.js b/docusaurus/website/pages/en/index.js index 3e09b15cd1d..82cb83702b6 100755 --- a/docusaurus/website/pages/en/index.js +++ b/docusaurus/website/pages/en/index.js @@ -110,19 +110,19 @@ const Features = props => ( {[ { + title: 'Less to Learn', content: - 'There is just one build dependency. It uses Webpack, Babel, ESLint, and other amazing projects, but provides a cohesive curated experience on top of them.', - title: 'One dependency', + "You don't need to learn and configure many build tools. Instant reloads help you focus on development. When it's time to deploy, your bundles are optimized automatically.", }, { + title: 'Only One Dependency', content: - "You don't need to configure anything. Reasonably good configuration of both development and production builds is handled for you so you can focus on writing code.", - title: 'No configuration required', + 'Your app only needs one build dependency. We test Create React App to make sure that all of its underlying pieces work together seamlessly – no complicated version mismatches.', }, { + title: 'No Lock-In', content: - 'You can “eject” to a custom setup at any time. Run a single command, and all the configuration and build dependencies will be moved directly into your project, so you can pick up right where you left off.', - title: 'No lock-in', + 'Under the hood, we use Webpack, Babel, ESLint, and other amazing projects to power your app. If you ever want an advanced configuration, you can ”eject” from Create React App and edit their config files directly.', }, ]} @@ -132,9 +132,10 @@ const GetStarted = props => ( {[ { - title: 'Get started coding in a matter of seconds!', - content: `With Create React App, you get to focus on **writing React, not boilerplate**. -All you need to do is run a command, install some dependencies, and decide what's for dinner. + title: 'Get started in seconds', + content: `Whether you’re using React or another library, Create React App lets you **focus on code, not build tools**. + +To create a project called \`my-app\`, run this command: \`\`\`sh npx create-react-app my-app @@ -158,10 +159,8 @@ const Update = props => ( imageAlign: 'left', }, { - title: 'Easy-to-maintain toolchain', - content: `Keeping a build toolchain up to date with the latest and greatest can be a daunting and time-consuming -task for even the most seasoned developer. Create React App extracts all of those concerns into a single -dependency, which are **easy to update** and **battle tested by thousands**. + title: 'Easy to maintain', + content: `Updating your build tooling is typically a daunting and time-consuming task. When new versions of Create React App are released, you can upgrade using a single command: \`\`\`sh npm install react-scripts@latest @@ -171,71 +170,6 @@ npm install react-scripts@latest ); -const FineGrainedFeatures = props => ( - - {[ - { - title: 'Webpack 4', - content: - 'Webpack 4 gives you lightning fast rebuilds and code-splitting out of the box', - }, - { - title: 'Babel 7', - content: - 'Babel 7 transpiles your code faster than ever, now with support for the new Fragment syntax ``', - }, - { - title: 'ES2015+', - content: - 'Create React App is set up for you to use the features of the future', - }, - { - title: 'Jest', - content: - 'The best test runner in the business is set up for you by default', - }, - { - title: 'Dev-server', - content: - 'No-hassle local development thanks to the built-in dev-server', - }, - { - title: 'PostCSS', - content: - 'Prefixing of new CSS features are done for you through Autoprefixer', - }, - { - title: 'SASS', - content: 'Now you can write your styles with the power of SASS', - }, - { - title: 'CSS Modules', - content: 'CSS Modules are also supported out of the box', - }, - { - title: 'Babel Macros', - content: - 'Need some extra Babel-power? Babel Macros gives you just that', - }, - { - title: 'SVGs in React', - content: - 'Now you can import your SVGs and use them as React components', - }, - { - title: 'Progressive Web Apps', - content: - 'Every app created by Create React App is a fully Lighthouse-compliant PWA - opt in', - }, - { - title: 'Great DX', - content: - "Create React App is made for you - the developer. And we've made your day-to-day so much better", - }, - ]} - -); - class Index extends React.Component { render() { const language = this.props.language || ''; @@ -244,10 +178,9 @@ class Index extends React.Component {

- + -
); diff --git a/docusaurus/website/siteConfig.js b/docusaurus/website/siteConfig.js index 56c56a7e159..d9bf81fa9a7 100644 --- a/docusaurus/website/siteConfig.js +++ b/docusaurus/website/siteConfig.js @@ -10,7 +10,7 @@ const siteConfig = { title: 'Create React App', // Title for your website. - tagline: 'Create React apps with no build configuration.', + tagline: 'Set up a modern web app by running one command.', url: 'https://facebook.github.io', // Your website URL baseUrl: '/', // Base URL for your project */ // For github.io type URLs, you would set the url and baseUrl like: From a840d566835e93c71b4ad192b7086ac693c11a2e Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Fri, 19 Oct 2018 19:30:11 -0400 Subject: [PATCH 0353/1249] Port documentation updates --- docusaurus/docs/adding-a-sass-stylesheet.md | 8 ++++ docusaurus/docs/advanced-configuration.md | 25 +++++----- docusaurus/docs/folder-structure.md | 2 + .../docs/making-a-progressive-web-app.md | 38 ++++++++------- docusaurus/docs/post-processing-css.md | 2 +- docusaurus/docs/running-tests.md | 47 ++++++++++++++++++- docusaurus/docs/using-https-in-development.md | 2 +- docusaurus/website/i18n/en.json | 2 +- 8 files changed, 92 insertions(+), 34 deletions(-) diff --git a/docusaurus/docs/adding-a-sass-stylesheet.md b/docusaurus/docs/adding-a-sass-stylesheet.md index e4e6940c830..a642dd50ca8 100644 --- a/docusaurus/docs/adding-a-sass-stylesheet.md +++ b/docusaurus/docs/adding-a-sass-stylesheet.md @@ -33,3 +33,11 @@ This will allow you to do imports like > **Tip:** You can opt into using this feature with [CSS modules](/docs/adding-a-css-modules-stylesheet) too! > **Note:** You must prefix imports from `node_modules` with `~` as displayed above. + +> **Note:** If you're using Flow, add the following to your `.flowconfig` so it'll recognize the `.sass` or `.scss` imports. +> +> ``` +> [options] +> module.file_ext=.sass +> module.file_ext=.scss +> ``` diff --git a/docusaurus/docs/advanced-configuration.md b/docusaurus/docs/advanced-configuration.md index fa01aa2baff..2150b18e15d 100644 --- a/docusaurus/docs/advanced-configuration.md +++ b/docusaurus/docs/advanced-configuration.md @@ -5,15 +5,16 @@ title: Advanced Configuration You can adjust various development and production settings by setting environment variables in your shell or with [.env](/docs/adding-development-environment-variables-in-env). -| Variable | Development | Production | Usage | -| :------------------ | :--------------------: | :----------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| BROWSER | :white_check_mark: | :x: | By default, Create React App will open the default system browser, favoring Chrome on macOS. Specify a [browser](https://github.com/sindresorhus/opn#app) to override this behavior, or set it to `none` to disable it completely. If you need to customize the way the browser is launched, you can specify a node script instead. Any arguments passed to `npm start` will also be passed to this script, and the url where your app is served will be the last argument. Your script's file name must have the `.js` extension. | -| HOST | :white_check_mark: | :x: | By default, the development web server binds to `localhost`. You may use this variable to specify a different host. | -| PORT | :white_check_mark: | :x: | By default, the development web server will attempt to listen on port 3000 or prompt you to attempt the next available port. You may use this variable to specify a different port. | -| HTTPS | :white_check_mark: | :x: | When set to `true`, Create React App will run the development server in `https` mode. | -| PUBLIC_URL | :x: | :white_check_mark: | Create React App assumes your application is hosted at the serving web server's root or a subpath as specified in [`package.json` (`homepage`)](/docs/deployment#building-for-relative-paths). Normally, Create React App ignores the hostname. You may use this variable to force assets to be referenced verbatim to the url you provide (hostname included). This may be particularly useful when using a CDN to host your application. | -| CI | :large_orange_diamond: | :white_check_mark: | When set to `true`, Create React App treats warnings as failures in the build. It also makes the test runner non-watching. Most CIs set this flag by default. | -| REACT_EDITOR | :white_check_mark: | :x: | When an app crashes in development, you will see an error overlay with clickable stack trace. When you click on it, Create React App will try to determine the editor you are using based on currently running processes, and open the relevant source file. You can [send a pull request to detect your editor of choice](https://github.com/facebook/create-react-app/issues/2636). Setting this environment variable overrides the automatic detection. If you do it, make sure your systems [PATH]() environment variable points to your editor’s bin folder. You can also set it to `none` to disable it completely. | -| CHOKIDAR_USEPOLLING | :white_check_mark: | :x: | When set to `true`, the watcher runs in polling mode, as necessary inside a VM. Use this option if `npm start` isn't detecting changes. | -| GENERATE_SOURCEMAP | :x: | :white_check_mark: | When set to `false`, source maps are not generated for a production build. This solves OOM issues on some smaller machines. | -| NODE_PATH | :white_check_mark: | :white_check_mark: | Same as [`NODE_PATH` in Node.js](https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders), but only relative folders are allowed. Can be handy for emulating a monorepo setup by setting `NODE_PATH=src`. | +| Variable | Development | Production | Usage | +| :------------------- | :---------: | :--------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| BROWSER | ✅ Used | 🚫 Ignored | By default, Create React App will open the default system browser, favoring Chrome on macOS. Specify a [browser](https://github.com/sindresorhus/opn#app) to override this behavior, or set it to `none` to disable it completely. If you need to customize the way the browser is launched, you can specify a node script instead. Any arguments passed to `npm start` will also be passed to this script, and the url where your app is served will be the last argument. Your script's file name must have the `.js` extension. | +| HOST | ✅ Used | 🚫 Ignored | By default, the development web server binds to `localhost`. You may use this variable to specify a different host. | +| PORT | ✅ Used | 🚫 Ignored | By default, the development web server will attempt to listen on port 3000 or prompt you to attempt the next available port. You may use this variable to specify a different port. | +| HTTPS | ✅ Used | 🚫 Ignored | When set to `true`, Create React App will run the development server in `https` mode. | +| PUBLIC_URL | 🚫 Ignored | ✅ Used | Create React App assumes your application is hosted at the serving web server's root or a subpath as specified in [`package.json` (`homepage`)](/docs/deployment#building-for-relative-paths). Normally, Create React App ignores the hostname. You may use this variable to force assets to be referenced verbatim to the url you provide (hostname included). This may be particularly useful when using a CDN to host your application. | +| CI | ✅ Used | ✅ Used | When set to `true`, Create React App treats warnings as failures in the build. It also makes the test runner non-watching. Most CIs set this flag by default. | +| REACT_EDITOR | ✅ Used | 🚫 Ignored | When an app crashes in development, you will see an error overlay with clickable stack trace. When you click on it, Create React App will try to determine the editor you are using based on currently running processes, and open the relevant source file. You can [send a pull request to detect your editor of choice](https://github.com/facebook/create-react-app/issues/2636). Setting this environment variable overrides the automatic detection. If you do it, make sure your systems [PATH]() environment variable points to your editor’s bin folder. You can also set it to `none` to disable it completely. | +| CHOKIDAR_USEPOLLING | ✅ Used | 🚫 Ignored | When set to `true`, the watcher runs in polling mode, as necessary inside a VM. Use this option if `npm start` isn't detecting changes. | +| GENERATE_SOURCEMAP | 🚫 Ignored | ✅ Used | When set to `false`, source maps are not generated for a production build. This solves OOM issues on some smaller machines. | +| NODE_PATH | ✅ Used | ✅ Used | Same as [`NODE_PATH` in Node.js](https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders), but only relative folders are allowed. Can be handy for emulating a monorepo setup by setting `NODE_PATH=src`. | +| INLINE_RUNTIME_CHUNK | 🚫 Ignored | ✅ Used | By default, Create React App will embed the runtime script into `index.html` during the production build. When set to `false`, the script will not be embedded and will be imported as usual. This is normally required when dealing with CSP. | | diff --git a/docusaurus/docs/folder-structure.md b/docusaurus/docs/folder-structure.md index 625b3272150..3701132d9f9 100644 --- a/docusaurus/docs/folder-structure.md +++ b/docusaurus/docs/folder-structure.md @@ -34,3 +34,5 @@ You may create subdirectories inside `src`. For faster rebuilds, only files insi Only files inside `public` can be used from `public/index.html`. Read instructions below for using assets from JavaScript and HTML. You can, however, create more top-level directories. They will not be included in the production build so you can use them for things like documentation. + +If you have Git installed and your project is not part of a larger repository, then a new repository will be initialized resulting in an additional top-level `.git` directory. diff --git a/docusaurus/docs/making-a-progressive-web-app.md b/docusaurus/docs/making-a-progressive-web-app.md index ae8de4e5240..73869ff66f1 100644 --- a/docusaurus/docs/making-a-progressive-web-app.md +++ b/docusaurus/docs/making-a-progressive-web-app.md @@ -10,7 +10,7 @@ the build process will generate a service worker file, but it will not be registered, so it will not take control of your production web app. In order to opt-in to the offline-first behavior, developers should look for the -following in their [`src/index.js`](src/index.js) file: +following in their [`src/index.js`](https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/src/index.js) file: ```js // If you want your app to work offline and load faster, you can change @@ -47,16 +47,32 @@ or unreliable network. If you do decide to opt-in to service worker registration, please take the following into account: +1. After the initial caching is done, the [service worker lifecycle](https://developers.google.com/web/fundamentals/primers/service-workers/lifecycle) + controls when updated content ends up being shown to users. In order to guard against + [race conditions with lazy-loaded content](https://github.com/facebook/create-react-app/issues/3613#issuecomment-353467430), + the default behavior is to conservatively keep the updated service worker in the "[waiting](https://developers.google.com/web/fundamentals/primers/service-workers/lifecycle#waiting)" + state. This means that users will end up seeing older content until they close (reloading is not + enough) their existing, open tabs. See [this blog post](https://jeffy.info/2018/10/10/sw-in-c-r-a.html) + for more details about this behavior. + +1. Users aren't always familiar with offline-first web apps. It can be useful to + [let the user know](https://developers.google.com/web/fundamentals/instant-and-offline/offline-ux#inform_the_user_when_the_app_is_ready_for_offline_consumption) + when the service worker has finished populating your caches (showing a "This web + app works offline!" message) and also let them know when the service worker has + fetched the latest updates that will be available the next time they load the + page (showing a "New content is available once existing tabs are closed." message). Showing + this messages is currently left as an exercise to the developer, but as a + starting point, you can make use of the logic included in [`src/serviceWorker.js`](https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/src/serviceWorker.js), which + demonstrates which service worker lifecycle events to listen for to detect each + scenario, and which as a default, just logs appropriate messages to the + JavaScript console. + 1. Service workers [require HTTPS](https://developers.google.com/web/fundamentals/getting-started/primers/service-workers#you_need_https), although to facilitate local testing, that policy [does not apply to `localhost`](http://stackoverflow.com/questions/34160509/options-for-testing-service-workers-via-http/34161385#34161385). If your production web server does not support HTTPS, then the service worker registration will fail, but the rest of your web app will remain functional. -1. Service workers are [not supported](https://jakearchibald.github.io/isserviceworkerready/#moar) - in older web browsers. Service worker registration [won't be attempted](src/registerServiceWorker.js) - on browsers that lack support. - 1. The service worker is only enabled in the [production environment](/docs/deployment), e.g. the output of `npm run build`. It's recommended that you do not enable an offline-first service worker in a development environment, as it can lead to @@ -70,18 +86,6 @@ following into account: instructions for using other methods. _Be sure to always use an incognito window to avoid complications with your browser cache._ -1. Users aren't always familiar with offline-first web apps. It can be useful to - [let the user know](https://developers.google.com/web/fundamentals/instant-and-offline/offline-ux#inform_the_user_when_the_app_is_ready_for_offline_consumption) - when the service worker has finished populating your caches (showing a "This web - app works offline!" message) and also let them know when the service worker has - fetched the latest updates that will be available the next time they load the - page (showing a "New content is available; please refresh." message). Showing - this messages is currently left as an exercise to the developer, but as a - starting point, you can make use of the logic included in [`src/registerServiceWorker.js`](src/registerServiceWorker.js), which - demonstrates which service worker lifecycle events to listen for to detect each - scenario, and which as a default, just logs appropriate messages to the - JavaScript console. - 1. By default, the generated service worker file will not intercept or cache any cross-origin traffic, like HTTP [API requests](/docs/integrating-with-an-api-backend), images, or embeds loaded from a different domain. diff --git a/docusaurus/docs/post-processing-css.md b/docusaurus/docs/post-processing-css.md index 601bceb41ed..3fb4556a836 100644 --- a/docusaurus/docs/post-processing-css.md +++ b/docusaurus/docs/post-processing-css.md @@ -7,7 +7,7 @@ This project setup minifies your CSS and adds vendor prefixes to it automaticall Support for new CSS features like the [`all` property](https://developer.mozilla.org/en-US/docs/Web/CSS/all), [`break` properties](https://www.w3.org/TR/css-break-3/#breaking-controls), [custom properties](https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_variables), and [media query ranges](https://www.w3.org/TR/mediaqueries-4/#range-context) are automatically polyfilled to add support for older browsers. -You can customize your target support browsers by adjusting the `browserslist` key in `package.json` accoring to the [Browserslist specification](https://github.com/browserslist/browserslist#readme). +You can customize your target support browsers by adjusting the `browserslist` key in `package.json` according to the [Browserslist specification](https://github.com/browserslist/browserslist#readme). For example, this: diff --git a/docusaurus/docs/running-tests.md b/docusaurus/docs/running-tests.md index 3a6181d775c..4d889a8ab9a 100644 --- a/docusaurus/docs/running-tests.md +++ b/docusaurus/docs/running-tests.md @@ -82,6 +82,8 @@ This test mounts a component and makes sure that it didn’t throw during render When you encounter bugs caused by changing components, you will gain a deeper insight into which parts of them are worth testing in your application. This might be a good time to introduce more specific tests asserting specific expected output or behavior. +### Option 1: Shallow Rendering + If you’d like to test components in isolation from the child components they render, we recommend using [`shallow()` rendering API](http://airbnb.io/enzyme/docs/api/shallow.html) from [Enzyme](http://airbnb.io/enzyme/). To install it, run: ```sh @@ -167,6 +169,47 @@ Import it in [`src/setupTests.js`](#initializing-test-environment) to make its m import 'jest-enzyme'; ``` +### Option 2: React Testing Library + +As an alternative or companion to `enzyme`, you may consider using `react-testing-library`. [`react-testing-library`](https://github.com/kentcdodds/react-testing-library) is a library for testing React components in a way that resembles the way the components are used by end users. It is well suited for unit, integration, and end-to-end testing of React components and applications. It works more directly with DOM nodes, and therefore it's recommended to use with [`jest-dom`](https://github.com/gnapse/jest-dom) for improved assertions. + +To install `react-testing-library` and `jest-dom`, you can run: + +```sh +npm install --save react-testing-library jest-dom +``` + +Alternatively you may use `yarn`: + +```sh +yarn add react-testing-library jest-dom +``` + +Similar to `enzyme` you can create a `src/setupTests.js` file to avoid boilerplate in your test files: + +```js +// react-testing-library renders your components to document.body, +// this will ensure they're removed after each test. +import 'react-testing-library/cleanup-after-each'; +// this adds jest-dom's custom assertions +import 'jest-dom/extend-expect'; +``` + +Here's an example of using `react-testing-library` and `jest-dom` for testing that the `` component renders "Welcome to React". + +```js +import React from 'react'; +import { render } from 'react-testing-library'; +import App from './App'; + +it('renders welcome message', () => { + const { getByText } = render(); + expect(getByText('Welcome to React')).toBeInTheDocument(); +}); +``` + +Learn more about the utilities provided by `react-testing-library` to facilitate testing asynchronous interactions as well as selecting form elements from [the `react-testing-library` documentation](https://github.com/kentcdodds/react-testing-library) and [examples](https://codesandbox.io/s/github/kentcdodds/react-testing-library-examples). + ## Using Third Party Assertion Libraries We recommend that you use `expect()` for assertions and `jest.fn()` for spies. If you are having issues with them please [file those against Jest](https://github.com/facebook/jest/issues/new), and we’ll fix them. We intend to keep making them better for React, supporting, for example, [pretty-printing React elements as JSX](https://github.com/facebook/jest/pull/1566). @@ -309,11 +352,11 @@ set CI=true&&npm run build #### Windows (Powershell) ```Powershell -($env:CI = $true) -and (npm test) +($env:CI = "true") -and (npm test) ``` ```Powershell -($env:CI = $true) -and (npm run build) +($env:CI = "true") -and (npm run build) ``` #### Linux, macOS (Bash) diff --git a/docusaurus/docs/using-https-in-development.md b/docusaurus/docs/using-https-in-development.md index 465ca6e942a..701c78fc202 100644 --- a/docusaurus/docs/using-https-in-development.md +++ b/docusaurus/docs/using-https-in-development.md @@ -21,7 +21,7 @@ set HTTPS=true&&npm start ### Windows (Powershell) ```Powershell -($env:HTTPS = $true) -and (npm start) +($env:HTTPS = "true") -and (npm start) ``` ### Linux, macOS (Bash) diff --git a/docusaurus/website/i18n/en.json b/docusaurus/website/i18n/en.json index fb381f360ba..57caabc05a1 100644 --- a/docusaurus/website/i18n/en.json +++ b/docusaurus/website/i18n/en.json @@ -3,7 +3,7 @@ "localized-strings": { "next": "Next", "previous": "Previous", - "tagline": "Create React apps with no build configuration.", + "tagline": "Set up a modern web app by running one command.", "docs": { "adding-a-css-modules-stylesheet": { "title": "Adding A CSS Modules Stylesheet", From 0febe269b555d922f7726f30d505ed5cca2598ec Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Fri, 19 Oct 2018 19:49:55 -0400 Subject: [PATCH 0354/1249] doc tweaks --- .../docs/adding-a-css-modules-stylesheet.md | 2 +- docusaurus/docs/adding-a-router.md | 2 +- docusaurus/docs/adding-a-sass-stylesheet.md | 2 +- docusaurus/docs/adding-a-stylesheet.md | 2 +- .../docs/adding-images-fonts-and-files.md | 2 +- docusaurus/docs/alternatives-to-ejecting.md | 2 +- .../developing-components-in-isolation.md | 2 +- docusaurus/docs/documentation-intro.md | 18 +++++-- docusaurus/docs/importing-a-component.md | 2 +- docusaurus/docs/installing-a-dependency.md | 2 +- .../docs/integrating-with-an-api-backend.md | 4 +- .../docs/making-a-progressive-web-app.md | 2 +- .../pre-rendering-into-static-html-files.md | 2 +- .../proxying-api-requests-in-development.md | 4 +- .../docs/supported-browsers-features.md | 4 +- docusaurus/docs/title-and-meta-tags.md | 2 +- docusaurus/docs/updating-to-new-releases.md | 2 +- docusaurus/docs/using-https-in-development.md | 4 +- docusaurus/docs/using-the-public-folder.md | 2 +- docusaurus/website/core/Footer.js | 30 ++++++++---- docusaurus/website/i18n/en.json | 48 +++++++++---------- docusaurus/website/pages/en/index.js | 5 +- 22 files changed, 82 insertions(+), 63 deletions(-) diff --git a/docusaurus/docs/adding-a-css-modules-stylesheet.md b/docusaurus/docs/adding-a-css-modules-stylesheet.md index e7c90f85b67..4dfdce32ef5 100644 --- a/docusaurus/docs/adding-a-css-modules-stylesheet.md +++ b/docusaurus/docs/adding-a-css-modules-stylesheet.md @@ -1,6 +1,6 @@ --- id: adding-a-css-modules-stylesheet -title: Adding A CSS Modules Stylesheet +title: Adding a CSS Modules Stylesheet sidebar_label: Adding CSS Modules --- diff --git a/docusaurus/docs/adding-a-router.md b/docusaurus/docs/adding-a-router.md index 65f82ff4476..70dfcb63b6e 100644 --- a/docusaurus/docs/adding-a-router.md +++ b/docusaurus/docs/adding-a-router.md @@ -1,6 +1,6 @@ --- id: adding-a-router -title: Adding A Router +title: Adding a Router --- Create React App doesn't prescribe a specific routing solution, but [React Router](https://reacttraining.com/react-router/web/) is the most popular one. diff --git a/docusaurus/docs/adding-a-sass-stylesheet.md b/docusaurus/docs/adding-a-sass-stylesheet.md index a642dd50ca8..ad3815b1ab3 100644 --- a/docusaurus/docs/adding-a-sass-stylesheet.md +++ b/docusaurus/docs/adding-a-sass-stylesheet.md @@ -1,6 +1,6 @@ --- id: adding-a-sass-stylesheet -title: Adding A Sass Stylesheet +title: Adding a Sass Stylesheet sidebar_label: Adding Sass Stylesheets --- diff --git a/docusaurus/docs/adding-a-stylesheet.md b/docusaurus/docs/adding-a-stylesheet.md index b74dd814311..2dc27b1ed9d 100644 --- a/docusaurus/docs/adding-a-stylesheet.md +++ b/docusaurus/docs/adding-a-stylesheet.md @@ -1,6 +1,6 @@ --- id: adding-a-stylesheet -title: Adding A Stylesheet +title: Adding a Stylesheet sidebar_label: Adding Stylesheets --- diff --git a/docusaurus/docs/adding-images-fonts-and-files.md b/docusaurus/docs/adding-images-fonts-and-files.md index 87f276f097d..c481d96c75d 100644 --- a/docusaurus/docs/adding-images-fonts-and-files.md +++ b/docusaurus/docs/adding-images-fonts-and-files.md @@ -1,6 +1,6 @@ --- id: adding-images-fonts-and-files -title: Adding Images, Fonts, And Files +title: Adding Images, Fonts, and Files --- With Webpack, using static assets like images and fonts works similarly to CSS. diff --git a/docusaurus/docs/alternatives-to-ejecting.md b/docusaurus/docs/alternatives-to-ejecting.md index e353adf3488..1bbc066c3bf 100644 --- a/docusaurus/docs/alternatives-to-ejecting.md +++ b/docusaurus/docs/alternatives-to-ejecting.md @@ -1,6 +1,6 @@ --- id: alternatives-to-ejecting -title: Alternatives To Ejecting +title: Alternatives to Ejecting --- [Ejecting](/docs/available-scripts#npm-run-eject) lets you customize anything, but from that point on you have to maintain the configuration and scripts yourself. This can be daunting if you have many similar projects. In such cases instead of ejecting we recommend to _fork_ `react-scripts` and any other packages you need. [This article](https://auth0.com/blog/how-to-configure-create-react-app/) dives into how to do it in depth. You can find more discussion in [this issue](https://github.com/facebook/create-react-app/issues/682). diff --git a/docusaurus/docs/developing-components-in-isolation.md b/docusaurus/docs/developing-components-in-isolation.md index ac38b7a71a1..1f4be53614f 100644 --- a/docusaurus/docs/developing-components-in-isolation.md +++ b/docusaurus/docs/developing-components-in-isolation.md @@ -1,6 +1,6 @@ --- id: developing-components-in-isolation -title: Developing Components In Isolation +title: Developing Components in Isolation --- Usually, in an app, you have a lot of UI components, and each of them has many different states. diff --git a/docusaurus/docs/documentation-intro.md b/docusaurus/docs/documentation-intro.md index cc430b51808..8976946c784 100644 --- a/docusaurus/docs/documentation-intro.md +++ b/docusaurus/docs/documentation-intro.md @@ -1,14 +1,24 @@ --- id: documentation-intro -title: About The Docs -sidebar_label: About The Docs +title: About the Documentation +sidebar_label: About Docs --- -Welcome to the documentation! Please navigate via the table of contents to find what you are looking for. +Welcome to the Create React App documentation! + +## Navigation + +You can find different topics in the table of contents. On desktop, you should see it in the left sidebar. On mobile, you should see it after pressing an icon with arrows in the top left corner. + +## Looking for React Docs? + +The documentation for React itself is located on a separate website: **[reactjs.org](https://reactjs.org/)**. + +This website is only about Create React App. ## Something Missing? -If you have ideas for more “How To” recipes that should be on this page, [let us know](https://github.com/facebook/create-react-app/issues) or [contribute some!](https://github.com/facebook/create-react-app/edit/master/packages/react-scripts/template/README.md) +If you have ideas for more “How To” recipes that should be on this page, [let us know](https://github.com/facebook/create-react-app/issues) or [contribute some!](https://github.com/facebook/create-react-app/tree/master/docusaurus/docs) ## Feedback diff --git a/docusaurus/docs/importing-a-component.md b/docusaurus/docs/importing-a-component.md index 9ad0a25e5ab..52767005c08 100644 --- a/docusaurus/docs/importing-a-component.md +++ b/docusaurus/docs/importing-a-component.md @@ -1,6 +1,6 @@ --- id: importing-a-component -title: Importing A Component +title: Importing a Component --- This project setup supports ES6 modules thanks to Webpack.
diff --git a/docusaurus/docs/installing-a-dependency.md b/docusaurus/docs/installing-a-dependency.md index 909c56cfa6b..6e356315ab2 100644 --- a/docusaurus/docs/installing-a-dependency.md +++ b/docusaurus/docs/installing-a-dependency.md @@ -1,6 +1,6 @@ --- id: installing-a-dependency -title: Installing A Dependency +title: Installing a Dependency --- The generated project includes React and ReactDOM as dependencies. It also includes a set of scripts used by Create React App as a development dependency. You may install other dependencies (for example, React Router) with `npm`: diff --git a/docusaurus/docs/integrating-with-an-api-backend.md b/docusaurus/docs/integrating-with-an-api-backend.md index 339215160f7..4791d9d9029 100644 --- a/docusaurus/docs/integrating-with-an-api-backend.md +++ b/docusaurus/docs/integrating-with-an-api-backend.md @@ -1,7 +1,7 @@ --- id: integrating-with-an-api-backend -title: Integrating With An API Backend -sidebar_label: Integrating With An API +title: Integrating with an API Backend +sidebar_label: Integrating with an API --- These tutorials will help you to integrate your app with an API backend running on another port, diff --git a/docusaurus/docs/making-a-progressive-web-app.md b/docusaurus/docs/making-a-progressive-web-app.md index 73869ff66f1..23b43f551da 100644 --- a/docusaurus/docs/making-a-progressive-web-app.md +++ b/docusaurus/docs/making-a-progressive-web-app.md @@ -1,6 +1,6 @@ --- id: making-a-progressive-web-app -title: Making A Progressive Web App +title: Making a Progressive Web App --- The production build has all the tools necessary to generate a first-class diff --git a/docusaurus/docs/pre-rendering-into-static-html-files.md b/docusaurus/docs/pre-rendering-into-static-html-files.md index 0ce53c6180f..f9bab58190e 100644 --- a/docusaurus/docs/pre-rendering-into-static-html-files.md +++ b/docusaurus/docs/pre-rendering-into-static-html-files.md @@ -1,6 +1,6 @@ --- id: pre-rendering-into-static-html-files -title: Pre-Rendering Into Static HTML Files +title: Pre-Rendering into Static HTML Files sidebar_label: Pre-Rendering Static HTML --- diff --git a/docusaurus/docs/proxying-api-requests-in-development.md b/docusaurus/docs/proxying-api-requests-in-development.md index 7d932229348..fe238bb1a18 100644 --- a/docusaurus/docs/proxying-api-requests-in-development.md +++ b/docusaurus/docs/proxying-api-requests-in-development.md @@ -1,7 +1,7 @@ --- id: proxying-api-requests-in-development -title: Proxying API Requests In Development -sidebar_label: Proxying In Development +title: Proxying API Requests in Development +sidebar_label: Proxying in Development --- > Note: this feature is available with `react-scripts@0.2.3` and higher. diff --git a/docusaurus/docs/supported-browsers-features.md b/docusaurus/docs/supported-browsers-features.md index 76a8f9a9e7a..6156734e1d7 100644 --- a/docusaurus/docs/supported-browsers-features.md +++ b/docusaurus/docs/supported-browsers-features.md @@ -1,7 +1,7 @@ --- id: supported-browsers-features -title: Supported Browsers And Features -sidebar_label: Supported Browsers And Features +title: Supported Browsers and Features +sidebar_label: Supported Browsers and Features --- ## Supported Browsers diff --git a/docusaurus/docs/title-and-meta-tags.md b/docusaurus/docs/title-and-meta-tags.md index f8be44c0bee..43928a42ea0 100644 --- a/docusaurus/docs/title-and-meta-tags.md +++ b/docusaurus/docs/title-and-meta-tags.md @@ -1,6 +1,6 @@ --- id: title-and-meta-tags -title: Title And Meta Tags +title: Title and Meta Tags sidebar_label: Title & Meta Tags --- diff --git a/docusaurus/docs/updating-to-new-releases.md b/docusaurus/docs/updating-to-new-releases.md index b106673bc89..825832464c8 100644 --- a/docusaurus/docs/updating-to-new-releases.md +++ b/docusaurus/docs/updating-to-new-releases.md @@ -1,6 +1,6 @@ --- id: updating-to-new-releases -title: Updating To New Releases +title: Updating to New Releases --- Create React App is divided into two packages: diff --git a/docusaurus/docs/using-https-in-development.md b/docusaurus/docs/using-https-in-development.md index 701c78fc202..ebefce2f7a9 100644 --- a/docusaurus/docs/using-https-in-development.md +++ b/docusaurus/docs/using-https-in-development.md @@ -1,7 +1,7 @@ --- id: using-https-in-development -title: Using HTTPS In Development -sidebar_label: HTTPS In Development +title: Using HTTPS in Development +sidebar_label: HTTPS in Development --- > Note: this feature is available with `react-scripts@0.4.0` and higher. diff --git a/docusaurus/docs/using-the-public-folder.md b/docusaurus/docs/using-the-public-folder.md index e6a973c45d6..b994b6142e7 100644 --- a/docusaurus/docs/using-the-public-folder.md +++ b/docusaurus/docs/using-the-public-folder.md @@ -1,6 +1,6 @@ --- id: using-the-public-folder -title: Using The public Folder +title: Using the Public Folder --- > Note: this feature is available with `react-scripts@0.5.0` and higher. diff --git a/docusaurus/website/core/Footer.js b/docusaurus/website/core/Footer.js index 3cc2f1f6c36..aeb252c4204 100644 --- a/docusaurus/website/core/Footer.js +++ b/docusaurus/website/core/Footer.js @@ -8,12 +8,18 @@ const React = require('react'); class Footer extends React.Component { - docUrl(doc, language) { + docUrl(doc) { + // FIXME: this is a second argument but for some reason /en/ links don't work. + let language = ''; + const baseUrl = this.props.config.baseUrl; return `${baseUrl}docs/${language ? `${language}/` : ''}${doc}`; } - pageUrl(doc, language) { + pageUrl(doc) { + // FIXME: this is a second argument but for some reason /en/ links don't work. + let language = ''; + const baseUrl = this.props.config.baseUrl; return baseUrl + (language ? `${language}/` : '') + doc; } @@ -34,11 +40,15 @@ class Footer extends React.Component {
@@ -50,8 +60,8 @@ class Footer extends React.Component { > Stack Overflow - @@ -67,7 +77,9 @@ class Footer extends React.Component {
From ac6edee48b9c7c3c21d6e3c3879ecabed6e99721 Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Fri, 19 Oct 2018 19:58:47 -0400 Subject: [PATCH 0355/1249] fix url --- docusaurus/website/siteConfig.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docusaurus/website/siteConfig.js b/docusaurus/website/siteConfig.js index d9bf81fa9a7..87b2498ce3a 100644 --- a/docusaurus/website/siteConfig.js +++ b/docusaurus/website/siteConfig.js @@ -12,10 +12,9 @@ const siteConfig = { title: 'Create React App', // Title for your website. tagline: 'Set up a modern web app by running one command.', url: 'https://facebook.github.io', // Your website URL - baseUrl: '/', // Base URL for your project */ // For github.io type URLs, you would set the url and baseUrl like: - // url: 'https://facebook.github.io', - // baseUrl: '/test-site/', + url: 'https://facebook.github.io', + baseUrl: '/create-react-app/', // Used for publishing and more projectName: 'create-react-app', From 0ff690dba74f732704717f38e8d7cfd348732784 Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Fri, 19 Oct 2018 20:04:06 -0400 Subject: [PATCH 0356/1249] Point README to docs --- packages/react-scripts/template/README.md | 2529 +-------------------- 1 file changed, 3 insertions(+), 2526 deletions(-) diff --git a/packages/react-scripts/template/README.md b/packages/react-scripts/template/README.md index 395038bb3a5..47a18fc11d3 100644 --- a/packages/react-scripts/template/README.md +++ b/packages/react-scripts/template/README.md @@ -1,170 +1,10 @@ This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). -Below you will find some information on how to perform common tasks.
-You can find the most recent version of this guide [here](https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md). +Below you will find some information on how to perform common tasks. -## Table of Contents +**To learn more about what your app can do, refer to the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).** -- [Updating to New Releases](#updating-to-new-releases) -- [Sending Feedback](#sending-feedback) -- [Folder Structure](#folder-structure) -- [Available Scripts](#available-scripts) - - [npm start](#npm-start) - - [npm test](#npm-test) - - [npm run build](#npm-run-build) - - [npm run eject](#npm-run-eject) -- [Supported Browsers](#supported-browsers) -- [Supported Language Features](#supported-language-features) -- [Syntax Highlighting in the Editor](#syntax-highlighting-in-the-editor) -- [Displaying Lint Output in the Editor](#displaying-lint-output-in-the-editor) -- [Debugging in the Editor](#debugging-in-the-editor) -- [Formatting Code Automatically](#formatting-code-automatically) -- [Changing the Page ``](#changing-the-page-title) -- [Installing a Dependency](#installing-a-dependency) -- [Importing a Component](#importing-a-component) -- [Code Splitting](#code-splitting) -- [Adding a Stylesheet](#adding-a-stylesheet) -- [Adding a CSS Modules Stylesheet](#adding-a-css-modules-stylesheet) -- [Adding a Sass Stylesheet](#adding-a-sass-stylesheet) -- [Post-Processing CSS](#post-processing-css) -- [Adding Images, Fonts, and Files](#adding-images-fonts-and-files) -- [Adding SVGs](#adding-svgs) -- [Using the `public` Folder](#using-the-public-folder) - - [Changing the HTML](#changing-the-html) - - [Adding Assets Outside of the Module System](#adding-assets-outside-of-the-module-system) - - [When to Use the `public` Folder](#when-to-use-the-public-folder) -- [Using Global Variables](#using-global-variables) -- [Adding Bootstrap](#adding-bootstrap) - - [Using a Custom Theme](#using-a-custom-theme) -- [Adding Flow](#adding-flow) -- [Adding Relay](#adding-relay) -- [Adding a Router](#adding-a-router) -- [Adding Custom Environment Variables](#adding-custom-environment-variables) - - [Referencing Environment Variables in the HTML](#referencing-environment-variables-in-the-html) - - [Adding Temporary Environment Variables In Your Shell](#adding-temporary-environment-variables-in-your-shell) - - [Adding Development Environment Variables In `.env`](#adding-development-environment-variables-in-env) -- [Can I Use Decorators?](#can-i-use-decorators) -- [Fetching Data with AJAX Requests](#fetching-data-with-ajax-requests) -- [Integrating with an API Backend](#integrating-with-an-api-backend) - - [Node](#node) - - [Ruby on Rails](#ruby-on-rails) -- [Proxying API Requests in Development](#proxying-api-requests-in-development) - - ["Invalid Host Header" Errors After Configuring Proxy](#invalid-host-header-errors-after-configuring-proxy) - - [Configuring the Proxy Manually](#configuring-the-proxy-manually) -- [Using HTTPS in Development](#using-https-in-development) -- [Generating Dynamic `<meta>` Tags on the Server](#generating-dynamic-meta-tags-on-the-server) -- [Pre-Rendering into Static HTML Files](#pre-rendering-into-static-html-files) -- [Injecting Data from the Server into the Page](#injecting-data-from-the-server-into-the-page) -- [Running Tests](#running-tests) - - [Filename Conventions](#filename-conventions) - - [Command Line Interface](#command-line-interface) - - [Version Control Integration](#version-control-integration) - - [Writing Tests](#writing-tests) - - [Testing Components](#testing-components) - - [Using Third Party Assertion Libraries](#using-third-party-assertion-libraries) - - [Initializing Test Environment](#initializing-test-environment) - - [Focusing and Excluding Tests](#focusing-and-excluding-tests) - - [Coverage Reporting](#coverage-reporting) - - [Continuous Integration](#continuous-integration) - - [Disabling jsdom](#disabling-jsdom) - - [Snapshot Testing](#snapshot-testing) - - [Editor Integration](#editor-integration) -- [Debugging Tests](#debugging-tests) - - [Debugging Tests in Chrome](#debugging-tests-in-chrome) - - [Debugging Tests in Visual Studio Code](#debugging-tests-in-visual-studio-code) -- [Developing Components in Isolation](#developing-components-in-isolation) - - [Getting Started with Storybook](#getting-started-with-storybook) - - [Getting Started with Styleguidist](#getting-started-with-styleguidist) -- [Publishing Components to npm](#publishing-components-to-npm) -- [Making a Progressive Web App](#making-a-progressive-web-app) - - [Why Opt-in?](#why-opt-in) - - [Offline-First Considerations](#offline-first-considerations) - - [Progressive Web App Metadata](#progressive-web-app-metadata) -- [Analyzing the Bundle Size](#analyzing-the-bundle-size) -- [Deployment](#deployment) - - [Static Server](#static-server) - - [Other Solutions](#other-solutions) - - [Serving Apps with Client-Side Routing](#serving-apps-with-client-side-routing) - - [Building for Relative Paths](#building-for-relative-paths) - - [Customizing Environment Variables for Arbitrary Build Environments](#customizing-environment-variables-for-arbitrary-build-environments) - - [Azure](#azure) - - [Firebase](#firebase) - - [GitHub Pages](#github-pages) - - [Heroku](#heroku) - - [Netlify](#netlify) - - [Now](#now) - - [S3 and CloudFront](#s3-and-cloudfront) - - [Surge](#surge) -- [Advanced Configuration](#advanced-configuration) -- [Troubleshooting](#troubleshooting-1) - - [`npm start` doesn’t detect changes](#npm-start-doesnt-detect-changes) - - [`npm test` hangs or crashes on macOS Sierra](#npm-test-hangs-or-crashes-on-macos-sierra) - - [`npm run build` exits too early](#npm-run-build-exits-too-early) - - [`npm run build` fails on Heroku](#npm-run-build-fails-on-heroku) - - [`npm run build` fails to minify](#npm-run-build-fails-to-minify) - - [Moment.js locales are missing](#momentjs-locales-are-missing) -- [Alternatives to Ejecting](#alternatives-to-ejecting) -- [Something Missing?](#something-missing) - -## Updating to New Releases - -Create React App is divided into two packages: - -- `create-react-app` is a global command-line utility that you use to create new projects. -- `react-scripts` is a development dependency in the generated projects (including this one). - -You almost never need to update `create-react-app` itself: it delegates all the setup to `react-scripts`. - -When you run `create-react-app`, it always creates the project with the latest version of `react-scripts` so you’ll get all the new features and improvements in newly created apps automatically. - -To update an existing project to a new version of `react-scripts`, [open the changelog](https://github.com/facebook/create-react-app/blob/master/CHANGELOG.md), find the version you’re currently on (check `package.json` in this folder if you’re not sure), and apply the migration instructions for the newer versions. - -In most cases bumping the `react-scripts` version in `package.json` and running `npm install` (or `yarn install`) in this folder should be enough, but it’s good to consult the [changelog](https://github.com/facebook/create-react-app/blob/master/CHANGELOG.md) for potential breaking changes. - -We commit to keeping the breaking changes minimal so you can upgrade `react-scripts` painlessly. - -## Sending Feedback - -We are always open to [your feedback](https://github.com/facebook/create-react-app/issues). - -## Folder Structure - -After creation, your project should look like this: - -``` -my-app/ - README.md - node_modules/ - package.json - public/ - index.html - favicon.ico - src/ - App.css - App.js - App.test.js - index.css - index.js - logo.svg -``` - -For the project to build, **these files must exist with exact filenames**: - -- `public/index.html` is the page template; -- `src/index.js` is the JavaScript entry point. - -You can delete or rename the other files. - -You may create subdirectories inside `src`. For faster rebuilds, only files inside `src` are processed by Webpack.<br> -You need to **put any JS and CSS files inside `src`**, otherwise Webpack won’t see them. - -Only files inside `public` can be used from `public/index.html`.<br> -Read instructions below for using assets from JavaScript and HTML. - -You can, however, create more top-level directories.<br> -They will not be included in the production build so you can use them for things like documentation. - -If you have Git installed and your project is not part of a larger repository, then a new repository will be initialized resulting in an additional `.git/` top-level directory. +**To learn React, check out [React documentation](https://reactjs.org/).** ## Available Scripts @@ -202,2366 +42,3 @@ If you aren’t satisfied with the build tool and configuration choices, you can Instead, it will copy all the configuration files and the transitive dependencies (Webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. - -## Supported Browsers - -By default, the generated project supports all modern browsers.<br> -Support for Internet Explorer 9, 10, and 11 requires [polyfills](https://github.com/facebook/create-react-app/blob/master/packages/react-app-polyfill/README.md). - -### Supported Language Features - -This project supports a superset of the latest JavaScript standard.<br> -In addition to [ES6](https://github.com/lukehoban/es6features) syntax features, it also supports: - -- [Exponentiation Operator](https://github.com/rwaldron/exponentiation-operator) (ES2016). -- [Async/await](https://github.com/tc39/ecmascript-asyncawait) (ES2017). -- [Object Rest/Spread Properties](https://github.com/tc39/proposal-object-rest-spread) (ES2018). -- [Dynamic import()](https://github.com/tc39/proposal-dynamic-import) (stage 3 proposal) -- [Class Fields and Static Properties](https://github.com/tc39/proposal-class-public-fields) (part of stage 3 proposal). -- [JSX](https://facebook.github.io/react/docs/introducing-jsx.html) and [Flow](https://flow.org/) syntax. - -Learn more about [different proposal stages](https://babeljs.io/docs/plugins/#presets-stage-x-experimental-presets-). - -While we recommend using experimental proposals with some caution, Facebook heavily uses these features in the product code, so we intend to provide [codemods](https://medium.com/@cpojer/effective-javascript-codemods-5a6686bb46fb) if any of these proposals change in the future. - -Note that **this project includes no [polyfills](https://github.com/facebook/create-react-app/blob/master/packages/react-app-polyfill/README.md)** by default. - -If you use any other ES6+ features that need **runtime support** (such as `Array.from()` or `Symbol`), make sure you are [including the appropriate polyfills manually](https://github.com/facebook/create-react-app/blob/master/packages/react-app-polyfill/README.md), or that the browsers you are targeting already support them. - -## Syntax Highlighting in the Editor - -To configure the syntax highlighting in your favorite text editor, head to the [relevant Babel documentation page](https://babeljs.io/docs/editors) and follow the instructions. Some of the most popular editors are covered. - -## Displaying Lint Output in the Editor - -> Note: this feature is available with `react-scripts@0.2.0` and higher.<br> -> It also only works with npm 3 or higher. - -Some editors, including Sublime Text, Atom, and Visual Studio Code, provide plugins for ESLint. - -They are not required for linting. You should see the linter output right in your terminal as well as the browser console. However, if you prefer the lint results to appear right in your editor, there are some extra steps you can do. - -You would need to install an ESLint plugin for your editor first. Then, add a file called `.eslintrc` to the project root: - -```js -{ - "extends": "react-app" -} -``` - -Now your editor should report the linting warnings. - -Note that even if you edit your `.eslintrc` file further, these changes will **only affect the editor integration**. They won’t affect the terminal and in-browser lint output. This is because Create React App intentionally provides a minimal set of rules that find common mistakes. - -If you want to enforce a coding style for your project, consider using [Prettier](https://github.com/jlongster/prettier) instead of ESLint style rules. - -## Debugging in the Editor - -**This feature is currently only supported by [Visual Studio Code](https://code.visualstudio.com) and [WebStorm](https://www.jetbrains.com/webstorm/).** - -Visual Studio Code and WebStorm support debugging out of the box with Create React App. This enables you as a developer to write and debug your React code without leaving the editor, and most importantly it enables you to have a continuous development workflow, where context switching is minimal, as you don’t have to switch between tools. - -### Visual Studio Code - -You would need to have the latest version of [VS Code](https://code.visualstudio.com) and VS Code [Chrome Debugger Extension](https://marketplace.visualstudio.com/items?itemName=msjsdiag.debugger-for-chrome) installed. - -Then add the block below to your `launch.json` file and put it inside the `.vscode` folder in your app’s root directory. - -```json -{ - "version": "0.2.0", - "configurations": [ - { - "name": "Chrome", - "type": "chrome", - "request": "launch", - "url": "http://localhost:3000", - "webRoot": "${workspaceRoot}/src", - "sourceMapPathOverrides": { - "webpack:///src/*": "${webRoot}/*" - } - } - ] -} -``` - -> Note: the URL may be different if you've made adjustments via the [HOST or PORT environment variables](#advanced-configuration). - -Start your app by running `npm start`, and start debugging in VS Code by pressing `F5` or by clicking the green debug icon. You can now write code, set breakpoints, make changes to the code, and debug your newly modified code—all from your editor. - -Having problems with VS Code Debugging? Please see their [troubleshooting guide](https://github.com/Microsoft/vscode-chrome-debug/blob/master/README.md#troubleshooting). - -### WebStorm - -You would need to have [WebStorm](https://www.jetbrains.com/webstorm/) and [JetBrains IDE Support](https://chrome.google.com/webstore/detail/jetbrains-ide-support/hmhgeddbohgjknpmjagkdomcpobmllji) Chrome extension installed. - -In the WebStorm menu `Run` select `Edit Configurations...`. Then click `+` and select `JavaScript Debug`. Paste `http://localhost:3000` into the URL field and save the configuration. - -> Note: the URL may be different if you've made adjustments via the [HOST or PORT environment variables](#advanced-configuration). - -Start your app by running `npm start`, then press `^D` on macOS or `F9` on Windows and Linux or click the green debug icon to start debugging in WebStorm. - -The same way you can debug your application in IntelliJ IDEA Ultimate, PhpStorm, PyCharm Pro, and RubyMine. - -## Formatting Code Automatically - -Prettier is an opinionated code formatter with support for JavaScript, CSS and JSON. With Prettier you can format the code you write automatically to ensure a code style within your project. See the [Prettier's GitHub page](https://github.com/prettier/prettier) for more information, and look at this [page to see it in action](https://prettier.github.io/prettier/). - -To format our code whenever we make a commit in git, we need to install the following dependencies: - -```sh -npm install --save husky lint-staged prettier -``` - -Alternatively you may use `yarn`: - -```sh -yarn add husky lint-staged prettier -``` - -- `husky` makes it easy to use githooks as if they are npm scripts. -- `lint-staged` allows us to run scripts on staged files in git. See this [blog post about lint-staged to learn more about it](https://medium.com/@okonetchnikov/make-linting-great-again-f3890e1ad6b8). -- `prettier` is the JavaScript formatter we will run before commits. - -Now we can make sure every file is formatted correctly by adding a few lines to the `package.json` in the project root. - -Add the following field to the `package.json` section: - -```diff -+ "husky": { -+ "hooks": { -+ "pre-commit": "lint-staged" -+ } -+ } -``` - -Next we add a 'lint-staged' field to the `package.json`, for example: - -```diff - "dependencies": { - // ... - }, -+ "lint-staged": { -+ "src/**/*.{js,jsx,json,css}": [ -+ "prettier --single-quote --write", -+ "git add" -+ ] -+ }, - "scripts": { -``` - -Now, whenever you make a commit, Prettier will format the changed files automatically. You can also run `./node_modules/.bin/prettier --single-quote --write "src/**/*.{js,jsx}"` to format your entire project for the first time. - -Next you might want to integrate Prettier in your favorite editor. Read the section on [Editor Integration](https://prettier.io/docs/en/editors.html) on the Prettier GitHub page. - -## Changing the Page `<title>` - -You can find the source HTML file in the `public` folder of the generated project. You may edit the `<title>` tag in it to change the title from “React App” to anything else. - -Note that normally you wouldn’t edit files in the `public` folder very often. For example, [adding a stylesheet](#adding-a-stylesheet) is done without touching the HTML. - -If you need to dynamically update the page title based on the content, you can use the browser [`document.title`](https://developer.mozilla.org/en-US/docs/Web/API/Document/title) API. For more complex scenarios when you want to change the title from React components, you can use [React Helmet](https://github.com/nfl/react-helmet), a third party library. - -If you use a custom server for your app in production and want to modify the title before it gets sent to the browser, you can follow advice in [this section](#generating-dynamic-meta-tags-on-the-server). Alternatively, you can pre-build each page as a static HTML file which then loads the JavaScript bundle, which is covered [here](#pre-rendering-into-static-html-files). - -## Installing a Dependency - -The generated project includes React and ReactDOM as dependencies. It also includes a set of scripts used by Create React App as a development dependency. You may install other dependencies (for example, React Router) with `npm`: - -```sh -npm install --save react-router-dom -``` - -Alternatively you may use `yarn`: - -```sh -yarn add react-router-dom -``` - -This works for any library, not just `react-router-dom`. - -## Importing a Component - -This project setup supports ES6 modules thanks to Webpack.<br> -While you can still use `require()` and `module.exports`, we encourage you to use [`import` and `export`](http://exploringjs.com/es6/ch_modules.html) instead. - -For example: - -### `Button.js` - -```js -import React, { Component } from 'react'; - -class Button extends Component { - render() { - // ... - } -} - -export default Button; // Don’t forget to use export default! -``` - -### `DangerButton.js` - -```js -import React, { Component } from 'react'; -import Button from './Button'; // Import a component from another file - -class DangerButton extends Component { - render() { - return <Button color="red" />; - } -} - -export default DangerButton; -``` - -Be aware of the [difference between default and named exports](http://stackoverflow.com/questions/36795819/react-native-es-6-when-should-i-use-curly-braces-for-import/36796281#36796281). It is a common source of mistakes. - -We suggest that you stick to using default imports and exports when a module only exports a single thing (for example, a component). That’s what you get when you use `export default Button` and `import Button from './Button'`. - -Named exports are useful for utility modules that export several functions. A module may have at most one default export and as many named exports as you like. - -Learn more about ES6 modules: - -- [When to use the curly braces?](http://stackoverflow.com/questions/36795819/react-native-es-6-when-should-i-use-curly-braces-for-import/36796281#36796281) -- [Exploring ES6: Modules](http://exploringjs.com/es6/ch_modules.html) -- [Understanding ES6: Modules](https://leanpub.com/understandinges6/read#leanpub-auto-encapsulating-code-with-modules) - -## Code Splitting - -Instead of downloading the entire app before users can use it, code splitting allows you to split your code into small chunks which you can then load on demand. - -This project setup supports code splitting via [dynamic `import()`](http://2ality.com/2017/01/import-operator.html#loading-code-on-demand). Its [proposal](https://github.com/tc39/proposal-dynamic-import) is in stage 3. The `import()` function-like form takes the module name as an argument and returns a [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) which always resolves to the namespace object of the module. - -Here is an example: - -### `moduleA.js` - -```js -const moduleA = 'Hello'; - -export { moduleA }; -``` - -### `App.js` - -```js -import React, { Component } from 'react'; - -class App extends Component { - handleClick = () => { - import('./moduleA') - .then(({ moduleA }) => { - // Use moduleA - }) - .catch(err => { - // Handle failure - }); - }; - - render() { - return ( - <div> - <button onClick={this.handleClick}>Load</button> - </div> - ); - } -} - -export default App; -``` - -This will make `moduleA.js` and all its unique dependencies as a separate chunk that only loads after the user clicks the 'Load' button. - -You can also use it with `async` / `await` syntax if you prefer it. - -### With React Router - -If you are using React Router check out [this tutorial](http://serverless-stack.com/chapters/code-splitting-in-create-react-app.html) on how to use code splitting with it. You can find the companion GitHub repository [here](https://github.com/AnomalyInnovations/serverless-stack-demo-client/tree/code-splitting-in-create-react-app). - -Also check out the [Code Splitting](https://reactjs.org/docs/code-splitting.html) section in React documentation. - -## Adding a Stylesheet - -This project setup uses [Webpack](https://webpack.js.org/) for handling all assets. Webpack offers a custom way of “extending” the concept of `import` beyond JavaScript. To express that a JavaScript file depends on a CSS file, you need to **import the CSS from the JavaScript file**: - -### `Button.css` - -```css -.Button { - padding: 20px; -} -``` - -### `Button.js` - -```js -import React, { Component } from 'react'; -import './Button.css'; // Tell Webpack that Button.js uses these styles - -class Button extends Component { - render() { - // You can use them as regular CSS styles - return <div className="Button" />; - } -} -``` - -**This is not required for React** but many people find this feature convenient. You can read about the benefits of this approach [here](https://medium.com/seek-blog/block-element-modifying-your-javascript-components-d7f99fcab52b). However you should be aware that this makes your code less portable to other build tools and environments than Webpack. - -In development, expressing dependencies this way allows your styles to be reloaded on the fly as you edit them. In production, all CSS files will be concatenated into a single minified `.css` file in the build output. - -If you are concerned about using Webpack-specific semantics, you can put all your CSS right into `src/index.css`. It would still be imported from `src/index.js`, but you could always remove that import if you later migrate to a different build tool. - -## Adding a CSS Modules Stylesheet - -> Note: this feature is available with `react-scripts@2.0.0` and higher. - -This project supports [CSS Modules](https://github.com/css-modules/css-modules) alongside regular stylesheets using the `[name].module.css` file naming convention. CSS Modules allows the scoping of CSS by automatically creating a unique classname of the format `[filename]\_[classname]\_\_[hash]`. - -> **Tip:** Should you want to preprocess a stylesheet with Sass then make sure to [follow the installation instructions](#adding-a-sass-stylesheet) and then change the stylesheet file extension as follows: `[name].module.scss` or `[name].module.sass`. - -CSS Modules let you use the same CSS class name in different files without worrying about naming clashes. Learn more about CSS Modules [here](https://css-tricks.com/css-modules-part-1-need/). - -### `Button.module.css` - -```css -.error { - background-color: red; -} -``` - -### `another-stylesheet.css` - -```css -.error { - color: red; -} -``` - -### `Button.js` - -```js -import React, { Component } from 'react'; -import styles from './Button.module.css'; // Import css modules stylesheet as styles -import './another-stylesheet.css'; // Import regular stylesheet - -class Button extends Component { - render() { - // reference as a js object - return <button className={styles.error}>Error Button</button>; - } -} -``` - -### Result - -No clashes from other `.error` class names - -```html -<!-- This button has red background but not red text --> -<button class="Button_error_ax7yz"></div> -``` - -**This is an optional feature.** Regular `<link>` stylesheets and CSS files are fully supported. CSS Modules are turned on for files ending with the `.module.css` extension. - -## Adding a Sass Stylesheet - -> Note: this feature is available with `react-scripts@2.0.0` and higher. - -Generally, we recommend that you don’t reuse the same CSS classes across different components. For example, instead of using a `.Button` CSS class in `<AcceptButton>` and `<RejectButton>` components, we recommend creating a `<Button>` component with its own `.Button` styles, that both `<AcceptButton>` and `<RejectButton>` can render (but [not inherit](https://facebook.github.io/react/docs/composition-vs-inheritance.html)). - -Following this rule often makes CSS preprocessors less useful, as features like mixins and nesting are replaced by component composition. You can, however, integrate a CSS preprocessor if you find it valuable. - -To use Sass, first install `node-sass`: - -```bash -$ npm install node-sass --save -$ # or -$ yarn add node-sass -``` - -Now you can rename `src/App.css` to `src/App.scss` and update `src/App.js` to import `src/App.scss`. -This file and any other file will be automatically compiled if imported with the extension `.scss` or `.sass`. - -To share variables between Sass files, you can use Sass imports. For example, `src/App.scss` and other component style files could include `@import "./shared.scss";` with variable definitions. - -This will allow you to do imports like - -```scss -@import 'styles/_colors.scss'; // assuming a styles directory under src/ -@import '~nprogress/nprogress'; // importing a css file from the nprogress node module -``` - -> **Tip:** You can opt into using this feature with [CSS modules](#adding-a-css-modules-stylesheet) too! - -> **Note:** You must prefix imports from `node_modules` with `~` as displayed above. - -> **Note:** If you're using Flow, add the following to your `.flowconfig` so it'll recognize the `.sass` or `.scss` imports. - -``` -[options] -module.file_ext=.sass -module.file_ext=.scss -``` - -## Post-Processing CSS - -This project setup minifies your CSS and adds vendor prefixes to it automatically through [Autoprefixer](https://github.com/postcss/autoprefixer) so you don’t need to worry about it. - -Support for new CSS features like the [`all` property](https://developer.mozilla.org/en-US/docs/Web/CSS/all), [`break` properties](https://www.w3.org/TR/css-break-3/#breaking-controls), [custom properties](https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_variables), and [media query ranges](https://www.w3.org/TR/mediaqueries-4/#range-context) are automatically polyfilled to add support for older browsers. - -You can customize your target support browsers by adjusting the `browserslist` key in `package.json` according to the [Browserslist specification](https://github.com/browserslist/browserslist#readme). - -For example, this: - -```css -.App { - display: flex; - flex-direction: row; - align-items: center; -} -``` - -becomes this: - -```css -.App { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-direction: row; - flex-direction: row; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; -} -``` - -If you need to disable autoprefixing for some reason, [follow this section](https://github.com/postcss/autoprefixer#disabling). - -[CSS Grid Layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout) prefixing is disabled by default, but it will **not** strip manual prefixing. -If you'd like to opt-in to CSS Grid prefixing, [first familiarize yourself about its limitations](https://github.com/postcss/autoprefixer#does-autoprefixer-polyfill-grid-layout-for-ie).<br> -To enable CSS Grid prefixing, add `/* autoprefixer grid: on */` to the top of your CSS file. - -## Adding Images, Fonts, and Files - -With Webpack, using static assets like images and fonts works similarly to CSS. - -You can **`import` a file right in a JavaScript module**. This tells Webpack to include that file in the bundle. Unlike CSS imports, importing a file gives you a string value. This value is the final path you can reference in your code, e.g. as the `src` attribute of an image or the `href` of a link to a PDF. - -To reduce the number of requests to the server, importing images that are less than 10,000 bytes returns a [data URI](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) instead of a path. This applies to the following file extensions: bmp, gif, jpg, jpeg, and png. SVG files are excluded due to [#1153](https://github.com/facebook/create-react-app/issues/1153). - -Here is an example: - -```js -import React from 'react'; -import logo from './logo.png'; // Tell Webpack this JS file uses this image - -console.log(logo); // /logo.84287d09.png - -function Header() { - // Import result is the URL of your image - return <img src={logo} alt="Logo" />; -} - -export default Header; -``` - -This ensures that when the project is built, Webpack will correctly move the images into the build folder, and provide us with correct paths. - -This works in CSS too: - -```css -.Logo { - background-image: url(./logo.png); -} -``` - -Webpack finds all relative module references in CSS (they start with `./`) and replaces them with the final paths from the compiled bundle. If you make a typo or accidentally delete an important file, you will see a compilation error, just like when you import a non-existent JavaScript module. The final filenames in the compiled bundle are generated by Webpack from content hashes. If the file content changes in the future, Webpack will give it a different name in production so you don’t need to worry about long-term caching of assets. - -Please be advised that this is also a custom feature of Webpack. - -**It is not required for React** but many people enjoy it (and React Native uses a similar mechanism for images).<br> -An alternative way of handling static assets is described in the next section. - -### Adding SVGs - -> Note: this feature is available with `react-scripts@2.0.0` and higher. - -One way to add SVG files was described in the section above. You can also import SVGs directly as React components. You can use either of the two approaches. In your code it would look like this: - -```js -import { ReactComponent as Logo } from './logo.svg'; -const App = () => ( - <div> - {/* Logo is an actual React component */} - <Logo /> - </div> -); -``` - -This is handy if you don't want to load SVG as a separate file. Don't forget the curly braces in the import! The `ReactComponent` import name is special and tells Create React App that you want a React component that renders an SVG, rather than its filename. - -## Using the `public` Folder - -> Note: this feature is available with `react-scripts@0.5.0` and higher. - -### Changing the HTML - -The `public` folder contains the HTML file so you can tweak it, for example, to [set the page title](#changing-the-page-title). -The `<script>` tag with the compiled code will be added to it automatically during the build process. - -### Adding Assets Outside of the Module System - -You can also add other assets to the `public` folder. - -Note that we normally encourage you to `import` assets in JavaScript files instead. -For example, see the sections on [adding a stylesheet](#adding-a-stylesheet) and [adding images and fonts](#adding-images-fonts-and-files). -This mechanism provides a number of benefits: - -- Scripts and stylesheets get minified and bundled together to avoid extra network requests. -- Missing files cause compilation errors instead of 404 errors for your users. -- Result filenames include content hashes so you don’t need to worry about browsers caching their old versions. - -However there is an **escape hatch** that you can use to add an asset outside of the module system. - -If you put a file into the `public` folder, it will **not** be processed by Webpack. Instead it will be copied into the build folder untouched. To reference assets in the `public` folder, you need to use a special variable called `PUBLIC_URL`. - -Inside `index.html`, you can use it like this: - -```html -<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico"> -``` - -Only files inside the `public` folder will be accessible by `%PUBLIC_URL%` prefix. If you need to use a file from `src` or `node_modules`, you’ll have to copy it there to explicitly specify your intention to make this file a part of the build. - -When you run `npm run build`, Create React App will substitute `%PUBLIC_URL%` with a correct absolute path so your project works even if you use client-side routing or host it at a non-root URL. - -In JavaScript code, you can use `process.env.PUBLIC_URL` for similar purposes: - -```js -render() { - // Note: this is an escape hatch and should be used sparingly! - // Normally we recommend using `import` for getting asset URLs - // as described in “Adding Images and Fonts” above this section. - return <img src={process.env.PUBLIC_URL + '/img/logo.png'} />; -} -``` - -Keep in mind the downsides of this approach: - -- None of the files in `public` folder get post-processed or minified. -- Missing files will not be called at compilation time, and will cause 404 errors for your users. -- Result filenames won’t include content hashes so you’ll need to add query arguments or rename them every time they change. - -### When to Use the `public` Folder - -Normally we recommend importing [stylesheets](#adding-a-stylesheet), [images, and fonts](#adding-images-fonts-and-files) from JavaScript. -The `public` folder is useful as a workaround for a number of less common cases: - -- You need a file with a specific name in the build output, such as [`manifest.webmanifest`](https://developer.mozilla.org/en-US/docs/Web/Manifest). -- You have thousands of images and need to dynamically reference their paths. -- You want to include a small script like [`pace.js`](http://github.hubspot.com/pace/docs/welcome/) outside of the bundled code. -- Some library may be incompatible with Webpack and you have no other option but to include it as a `<script>` tag. - -Note that if you add a `<script>` that declares global variables, you also need to read the next section on using them. - -## Using Global Variables - -When you include a script in the HTML file that defines global variables and try to use one of these variables in the code, the linter will complain because it cannot see the definition of the variable. - -You can avoid this by reading the global variable explicitly from the `window` object, for example: - -```js -const $ = window.$; -``` - -This makes it obvious you are using a global variable intentionally rather than because of a typo. - -Alternatively, you can force the linter to ignore any line by adding `// eslint-disable-line` after it. - -## Adding Bootstrap - -You don’t have to use [reactstrap](https://reactstrap.github.io/) together with React but it is a popular library for integrating Bootstrap with React apps. If you need it, you can integrate it with Create React App by following these steps: - -Install reactstrap and Bootstrap from npm. reactstrap does not include Bootstrap CSS so this needs to be installed as well: - -```sh -npm install --save reactstrap bootstrap@4 -``` - -Alternatively you may use `yarn`: - -```sh -yarn add bootstrap@4 reactstrap -``` - -Import Bootstrap CSS and optionally Bootstrap theme CSS in the beginning of your `src/index.js` file: - -```js -import 'bootstrap/dist/css/bootstrap.css'; -// Put any other imports below so that CSS from your -// components takes precedence over default styles. -``` - -Import required reactstrap components within `src/App.js` file or your custom component files: - -```js -import { Button } from 'reactstrap'; -``` - -Now you are ready to use the imported reactstrap components within your component hierarchy defined in the render method. Here is an example [`App.js`](https://gist.githubusercontent.com/zx6658/d9f128cd57ca69e583ea2b5fea074238/raw/a56701c142d0c622eb6c20a457fbc01d708cb485/App.js) redone using reactstrap. - -### Using a Custom Theme - -> Note: this feature is available with `react-scripts@2.0.0` and higher. - -Sometimes you might need to tweak the visual styles of Bootstrap (or equivalent package).<br> -As of `react-scripts@2.0.0` you can import `.scss` files. This makes it possible to use a package's built-in Sass variables for global style preferences. - -To customize Bootstrap, create a file called `src/custom.scss` (or similar) and import the Bootstrap source stylesheet. Add any overrides _before_ the imported file(s). You can reference [Bootstrap's documentation](http://getbootstrap.com/docs/4.1/getting-started/theming/#css-variables) for the names of the available variables. - -```scss -// Override default variables before the import -$body-bg: #000; - -// Import Bootstrap and its default variables -@import '~bootstrap/scss/bootstrap.scss'; -``` - -> **Note:** You must prefix imports from `node_modules` with `~` as displayed above. - -Finally, import the newly created `.scss` file instead of the default Bootstrap `.css` in the beginning of your `src/index.js` file, for example: - -```javascript -import './custom.scss'; -``` - -## Adding Flow - -Flow is a static type checker that helps you write code with fewer bugs. Check out this [introduction to using static types in JavaScript](https://medium.com/@preethikasireddy/why-use-static-types-in-javascript-part-1-8382da1e0adb) if you are new to this concept. - -Recent versions of [Flow](https://flow.org/) work with Create React App projects out of the box. - -To add Flow to a Create React App project, follow these steps: - -1. Run `npm install --save flow-bin` (or `yarn add flow-bin`). -2. Add `"flow": "flow"` to the `scripts` section of your `package.json`. -3. Run `npm run flow init` (or `yarn flow init`) to create a [`.flowconfig` file](https://flow.org/en/docs/config/) in the root directory. -4. Add `// @flow` to any files you want to type check (for example, to `src/App.js`). - -Now you can run `npm run flow` (or `yarn flow`) to check the files for type errors. -You can optionally use an IDE like [Nuclide](https://nuclide.io/docs/languages/flow/) for a better integrated experience. -In the future we plan to integrate it into Create React App even more closely. - -To learn more about Flow, check out [its documentation](https://flow.org/). - -## Adding Relay - -Relay is a framework for building data-driven React applications powered by GraphQL. The current release candidate of Relay works with Create React App projects out of the box using Babel Macros. Simply set up your project as laid out in the [Relay documentation](https://facebook.github.io/relay/), then make sure you have a version of the babel plugin providing the macro. - -To add it, run: - -```sh -npm install --save --dev babel-plugin-relay@dev -``` - -Alternatively you may use `yarn`: - -```sh -yarn upgrade babel-plugin-relay@dev -``` - -Then, wherever you use the `graphql` template tag, import the macro: - -```js -import graphql from 'babel-plugin-relay/macro'; -// instead of: -// import { graphql } from "babel-plugin-relay" - -graphql` - query UserQuery { - viewer { - id - } - } -`; -``` - -To learn more about Relay, check out [its documentation](https://facebook.github.io/relay/). - -## Adding a Router - -Create React App doesn't prescribe a specific routing solution, but [React Router](https://reacttraining.com/react-router/web/) is the most popular one. - -To add it, run: - -```sh -npm install --save react-router-dom -``` - -Alternatively you may use `yarn`: - -```sh -yarn add react-router-dom -``` - -To try it, delete all the code in `src/App.js` and replace it with any of the examples on its website. The [Basic Example](https://reacttraining.com/react-router/web/example/basic) is a good place to get started. - -Note that [you may need to configure your production server to support client-side routing](#serving-apps-with-client-side-routing) before deploying your app. - -## Adding Custom Environment Variables - -> Note: this feature is available with `react-scripts@0.2.3` and higher. - -Your project can consume variables declared in your environment as if they were declared locally in your JS files. By -default you will have `NODE_ENV` defined for you, and any other environment variables starting with -`REACT_APP_`. - -**The environment variables are embedded during the build time**. Since Create React App produces a static HTML/CSS/JS bundle, it can’t possibly read them at runtime. To read them at runtime, you would need to load HTML into memory on the server and replace placeholders in runtime, just like [described here](#injecting-data-from-the-server-into-the-page). Alternatively you can rebuild the app on the server anytime you change them. - -> Note: You must create custom environment variables beginning with `REACT_APP_`. Any other variables except `NODE_ENV` will be ignored to avoid accidentally [exposing a private key on the machine that could have the same name](https://github.com/facebook/create-react-app/issues/865#issuecomment-252199527). Changing any environment variables will require you to restart the development server if it is running. - -These environment variables will be defined for you on `process.env`. For example, having an environment -variable named `REACT_APP_SECRET_CODE` will be exposed in your JS as `process.env.REACT_APP_SECRET_CODE`. - -There is also a special built-in environment variable called `NODE_ENV`. You can read it from `process.env.NODE_ENV`. When you run `npm start`, it is always equal to `'development'`, when you run `npm test` it is always equal to `'test'`, and when you run `npm run build` to make a production bundle, it is always equal to `'production'`. **You cannot override `NODE_ENV` manually.** This prevents developers from accidentally deploying a slow development build to production. - -These environment variables can be useful for displaying information conditionally based on where the project is -deployed or consuming sensitive data that lives outside of version control. - -First, you need to have environment variables defined. For example, let’s say you wanted to consume a secret defined -in the environment inside a `<form>`: - -```jsx -render() { - return ( - <div> - <small>You are running this application in <b>{process.env.NODE_ENV}</b> mode.</small> - <form> - <input type="hidden" defaultValue={process.env.REACT_APP_SECRET_CODE} /> - </form> - </div> - ); -} -``` - -During the build, `process.env.REACT_APP_SECRET_CODE` will be replaced with the current value of the `REACT_APP_SECRET_CODE` environment variable. Remember that the `NODE_ENV` variable will be set for you automatically. - -When you load the app in the browser and inspect the `<input>`, you will see its value set to `abcdef`, and the bold text will show the environment provided when using `npm start`: - -```html -<div> - <small>You are running this application in <b>development</b> mode.</small> - <form> - <input type="hidden" value="abcdef" /> - </form> -</div> -``` - -The above form is looking for a variable called `REACT_APP_SECRET_CODE` from the environment. In order to consume this -value, we need to have it defined in the environment. This can be done using two ways: either in your shell or in -a `.env` file. Both of these ways are described in the next few sections. - -Having access to the `NODE_ENV` is also useful for performing actions conditionally: - -```js -if (process.env.NODE_ENV !== 'production') { - analytics.disable(); -} -``` - -When you compile the app with `npm run build`, the minification step will strip out this condition, and the resulting bundle will be smaller. - -### Referencing Environment Variables in the HTML - -> Note: this feature is available with `react-scripts@0.9.0` and higher. - -You can also access the environment variables starting with `REACT_APP_` in the `public/index.html`. For example: - -```html -<title>%REACT_APP_WEBSITE_NAME% -``` - -Note that the caveats from the above section apply: - -- Apart from a few built-in variables (`NODE_ENV` and `PUBLIC_URL`), variable names must start with `REACT_APP_` to work. -- The environment variables are injected at build time. If you need to inject them at runtime, [follow this approach instead](#generating-dynamic-meta-tags-on-the-server). - -### Adding Temporary Environment Variables In Your Shell - -Defining environment variables can vary between OSes. It’s also important to know that this manner is temporary for the -life of the shell session. - -#### Windows (cmd.exe) - -```cmd -set "REACT_APP_SECRET_CODE=abcdef" && npm start -``` - -(Note: Quotes around the variable assignment are required to avoid a trailing whitespace.) - -#### Windows (Powershell) - -```Powershell -($env:REACT_APP_SECRET_CODE = "abcdef") -and (npm start) -``` - -#### Linux, macOS (Bash) - -```bash -REACT_APP_SECRET_CODE=abcdef npm start -``` - -### Adding Development Environment Variables In `.env` - -> Note: this feature is available with `react-scripts@0.5.0` and higher. - -To define permanent environment variables, create a file called `.env` in the root of your project: - -``` -REACT_APP_SECRET_CODE=abcdef -``` - -> Note: You must create custom environment variables beginning with `REACT_APP_`. Any other variables except `NODE_ENV` will be ignored to avoid [accidentally exposing a private key on the machine that could have the same name](https://github.com/facebook/create-react-app/issues/865#issuecomment-252199527). Changing any environment variables will require you to restart the development server if it is running. - -`.env` files **should be** checked into source control (with the exclusion of `.env*.local`). - -#### What other `.env` files can be used? - -> Note: this feature is **available with `react-scripts@1.0.0` and higher**. - -- `.env`: Default. -- `.env.local`: Local overrides. **This file is loaded for all environments except test.** -- `.env.development`, `.env.test`, `.env.production`: Environment-specific settings. -- `.env.development.local`, `.env.test.local`, `.env.production.local`: Local overrides of environment-specific settings. - -Files on the left have more priority than files on the right: - -- `npm start`: `.env.development.local`, `.env.development`, `.env.local`, `.env` -- `npm run build`: `.env.production.local`, `.env.production`, `.env.local`, `.env` -- `npm test`: `.env.test.local`, `.env.test`, `.env` (note `.env.local` is missing) - -These variables will act as the defaults if the machine does not explicitly set them.
-Please refer to the [dotenv documentation](https://github.com/motdotla/dotenv) for more details. - -> Note: If you are defining environment variables for development, your CI and/or hosting platform will most likely need -> these defined as well. Consult their documentation how to do this. For example, see the documentation for [Travis CI](https://docs.travis-ci.com/user/environment-variables/) or [Heroku](https://devcenter.heroku.com/articles/config-vars). - -#### Expanding Environment Variables In `.env` - -> Note: this feature is available with `react-scripts@1.1.0` and higher. - -Expand variables already on your machine for use in your `.env` file (using [dotenv-expand](https://github.com/motdotla/dotenv-expand)). - -For example, to get the environment variable `npm_package_version`: - -``` -REACT_APP_VERSION=$npm_package_version -# also works: -# REACT_APP_VERSION=${npm_package_version} -``` - -Or expand variables local to the current `.env` file: - -``` -DOMAIN=www.example.com -REACT_APP_FOO=$DOMAIN/foo -REACT_APP_BAR=$DOMAIN/bar -``` - -## Can I Use Decorators? - -Some popular libraries use [decorators](https://medium.com/google-developers/exploring-es7-decorators-76ecb65fb841) in their documentation.
-Create React App intentionally doesn’t support decorator syntax at the moment because: - -- It is an experimental proposal and is subject to change (in fact, it has already changed once, and will change again). -- Most libraries currently support only the old version of the proposal — which will never be a standard. - -However in many cases you can rewrite decorator-based code without decorators just as fine.
-Please refer to these two threads for reference: - -- [#214](https://github.com/facebook/create-react-app/issues/214) -- [#411](https://github.com/facebook/create-react-app/issues/411) - -Create React App will add decorator support when the specification advances to a stable stage. - -## Fetching Data with AJAX Requests - -React doesn't prescribe a specific approach to data fetching, but people commonly use either a library like [axios](https://github.com/axios/axios) or the [`fetch()` API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) provided by the browser. - -The global `fetch` function allows you to easily make AJAX requests. It takes in a URL as an input and returns a `Promise` that resolves to a `Response` object. You can find more information about `fetch` [here](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch). - -A Promise represents the eventual result of an asynchronous operation, you can find more information about Promises [here](https://www.promisejs.org/) and [here](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise). Both axios and `fetch()` use Promises under the hood. You can also use the [`async / await`](https://davidwalsh.name/async-await) syntax to reduce the callback nesting. - -Make sure the [`fetch()` API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) and [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) are available in your target audience's browsers. -For example, support in Internet Explorer requires a [polyfill](https://github.com/facebook/create-react-app/blob/master/packages/react-app-polyfill/README.md). - -You can learn more about making AJAX requests from React components in [the FAQ entry on the React website](https://reactjs.org/docs/faq-ajax.html). - -## Integrating with an API Backend - -These tutorials will help you to integrate your app with an API backend running on another port, -using `fetch()` to access it. - -### Node - -Check out [this tutorial](https://www.fullstackreact.com/articles/using-create-react-app-with-a-server/). -You can find the companion GitHub repository [here](https://github.com/fullstackreact/food-lookup-demo). - -### Ruby on Rails - -Check out [this tutorial](https://www.fullstackreact.com/articles/how-to-get-create-react-app-to-work-with-your-rails-api/). -You can find the companion GitHub repository [here](https://github.com/fullstackreact/food-lookup-demo-rails). - -### API Platform (PHP and Symfony) - -[API Platform](https://api-platform.com) is a framework designed to build API-driven projects. -It allows to create hypermedia and GraphQL APIs in minutes. -It is shipped with an official Progressive Web App generator as well as a dynamic administration interface, both built for Create React App. -Check out [this tutorial](https://api-platform.com/docs/distribution). - -## Proxying API Requests in Development - -> Note: this feature is available with `react-scripts@0.2.3` and higher. - -People often serve the front-end React app from the same host and port as their backend implementation.
-For example, a production setup might look like this after the app is deployed: - -``` -/ - static server returns index.html with React app -/todos - static server returns index.html with React app -/api/todos - server handles any /api/* requests using the backend implementation -``` - -Such setup is **not** required. However, if you **do** have a setup like this, it is convenient to write requests like `fetch('/api/todos')` without worrying about redirecting them to another host or port during development. - -To tell the development server to proxy any unknown requests to your API server in development, add a `proxy` field to your `package.json`, for example: - -```js - "proxy": "http://localhost:4000", -``` - -This way, when you `fetch('/api/todos')` in development, the development server will recognize that it’s not a static asset, and will proxy your request to `http://localhost:4000/api/todos` as a fallback. The development server will **only** attempt to send requests without `text/html` in its `Accept` header to the proxy. - -Conveniently, this avoids [CORS issues](http://stackoverflow.com/questions/21854516/understanding-ajax-cors-and-security-considerations) and error messages like this in development: - -``` -Fetch API cannot load http://localhost:4000/api/todos. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled. -``` - -Keep in mind that `proxy` only has effect in development (with `npm start`), and it is up to you to ensure that URLs like `/api/todos` point to the right thing in production. You don’t have to use the `/api` prefix. Any unrecognized request without a `text/html` accept header will be redirected to the specified `proxy`. - -The `proxy` option supports HTTP, HTTPS and WebSocket connections.
-If the `proxy` option is **not** flexible enough for you, alternatively you can: - -- [Configure the proxy yourself](#configuring-the-proxy-manually) -- Enable CORS on your server ([here’s how to do it for Express](http://enable-cors.org/server_expressjs.html)). -- Use [environment variables](#adding-custom-environment-variables) to inject the right server host and port into your app. - -### "Invalid Host Header" Errors After Configuring Proxy - -When you enable the `proxy` option, you opt into a more strict set of host checks. This is necessary because leaving the backend open to remote hosts makes your computer vulnerable to DNS rebinding attacks. The issue is explained in [this article](https://medium.com/webpack/webpack-dev-server-middleware-security-issues-1489d950874a) and [this issue](https://github.com/webpack/webpack-dev-server/issues/887). - -This shouldn’t affect you when developing on `localhost`, but if you develop remotely like [described here](https://github.com/facebook/create-react-app/issues/2271), you will see this error in the browser after enabling the `proxy` option: - -> Invalid Host header - -To work around it, you can specify your public development host in a file called `.env.development` in the root of your project: - -``` -HOST=mypublicdevhost.com -``` - -If you restart the development server now and load the app from the specified host, it should work. - -If you are still having issues or if you’re using a more exotic environment like a cloud editor, you can bypass the host check completely by adding a line to `.env.development.local`. **Note that this is dangerous and exposes your machine to remote code execution from malicious websites:** - -``` -# NOTE: THIS IS DANGEROUS! -# It exposes your machine to attacks from the websites you visit. -DANGEROUSLY_DISABLE_HOST_CHECK=true -``` - -We don’t recommend this approach. - -### Configuring the Proxy Manually - -> Note: this feature is available with `react-scripts@2.0.0` and higher. - -If the `proxy` option is **not** flexible enough for you, you can get direct access to the Express app instance and hook up your own proxy middleware. - -You can use this feature in conjunction with the `proxy` property in `package.json`, but it is recommended you consolidate all of your logic into `src/setupProxy.js`. - -First, install `http-proxy-middleware` using npm or Yarn: - -```bash -$ npm install http-proxy-middleware --save -$ # or -$ yarn add http-proxy-middleware -``` - -Next, create `src/setupProxy.js` and place the following contents in it: - -```js -const proxy = require('http-proxy-middleware'); - -module.exports = function(app) { - // ... -}; -``` - -You can now register proxies as you wish! Here's an example using the above `http-proxy-middleware`: - -```js -const proxy = require('http-proxy-middleware'); - -module.exports = function(app) { - app.use(proxy('/api', { target: 'http://localhost:5000/' })); -}; -``` - -> **Note:** You do not need to import this file anywhere. It is automatically registered when you start the development server. - -> **Note:** This file only supports Node's JavaScript syntax. Be sure to only use supported language features (i.e. no support for Flow, ES Modules, etc). - -> **Note:** Passing the path to the proxy function allows you to use globbing and/or pattern matching on the path, which is more flexible than the express route matching. - -## Using HTTPS in Development - -> Note: this feature is available with `react-scripts@0.4.0` and higher. - -You may require the dev server to serve pages over HTTPS. One particular case where this could be useful is when using [the "proxy" feature](#proxying-api-requests-in-development) to proxy requests to an API server when that API server is itself serving HTTPS. - -To do this, set the `HTTPS` environment variable to `true`, then start the dev server as usual with `npm start`: - -#### Windows (cmd.exe) - -```cmd -set HTTPS=true&&npm start -``` - -(Note: the lack of whitespace is intentional.) - -#### Windows (Powershell) - -```Powershell -($env:HTTPS = "true") -and (npm start) -``` - -#### Linux, macOS (Bash) - -```bash -HTTPS=true npm start -``` - -Note that the server will use a self-signed certificate, so your web browser will almost definitely display a warning upon accessing the page. - -## Generating Dynamic `` Tags on the Server - -Since Create React App doesn’t support server rendering, you might be wondering how to make `` tags dynamic and reflect the current URL. To solve this, we recommend to add placeholders into the HTML, like this: - -```html - - - - - -``` - -Then, on the server, regardless of the backend you use, you can read `index.html` into memory and replace `__OG_TITLE__`, `__OG_DESCRIPTION__`, and any other placeholders with values depending on the current URL. Just make sure to sanitize and escape the interpolated values so that they are safe to embed into HTML! - -If you use a Node server, you can even share the route matching logic between the client and the server. However duplicating it also works fine in simple cases. - -## Pre-Rendering into Static HTML Files - -If you’re hosting your `build` with a static hosting provider you can use [react-snapshot](https://www.npmjs.com/package/react-snapshot) or [react-snap](https://github.com/stereobooster/react-snap) to generate HTML pages for each route, or relative link, in your application. These pages will then seamlessly become active, or “hydrated”, when the JavaScript bundle has loaded. - -There are also opportunities to use this outside of static hosting, to take the pressure off the server when generating and caching routes. - -The primary benefit of pre-rendering is that you get the core content of each page _with_ the HTML payload—regardless of whether or not your JavaScript bundle successfully downloads. It also increases the likelihood that each route of your application will be picked up by search engines. - -You can read more about [zero-configuration pre-rendering (also called snapshotting) here](https://medium.com/superhighfives/an-almost-static-stack-6df0a2791319). - -## Injecting Data from the Server into the Page - -Similarly to the previous section, you can leave some placeholders in the HTML that inject global variables, for example: - -```js - - - - -``` - -Then, on the server, you can replace `__SERVER_DATA__` with a JSON of real data right before sending the response. The client code can then read `window.SERVER_DATA` to use it. **Make sure to [sanitize the JSON before sending it to the client](https://medium.com/node-security/the-most-common-xss-vulnerability-in-react-js-applications-2bdffbcc1fa0) as it makes your app vulnerable to XSS attacks.** - -## Running Tests - -> Note: this feature is available with `react-scripts@0.3.0` and higher.
- -> [Read the migration guide to learn how to enable it in older projects!](https://github.com/facebook/create-react-app/blob/master/CHANGELOG.md#migrating-from-023-to-030) - -Create React App uses [Jest](https://facebook.github.io/jest/) as its test runner. To prepare for this integration, we did a [major revamp](https://facebook.github.io/jest/blog/2016/09/01/jest-15.html) of Jest so if you heard bad things about it years ago, give it another try. - -Jest is a Node-based runner. This means that the tests always run in a Node environment and not in a real browser. This lets us enable fast iteration speed and prevent flakiness. - -While Jest provides browser globals such as `window` thanks to [jsdom](https://github.com/tmpvar/jsdom), they are only approximations of the real browser behavior. Jest is intended to be used for unit tests of your logic and your components rather than the DOM quirks. - -We recommend that you use a separate tool for browser end-to-end tests if you need them. They are beyond the scope of Create React App. - -### Filename Conventions - -Jest will look for test files with any of the following popular naming conventions: - -- Files with `.js` suffix in `__tests__` folders. -- Files with `.test.js` suffix. -- Files with `.spec.js` suffix. - -The `.test.js` / `.spec.js` files (or the `__tests__` folders) can be located at any depth under the `src` top level folder. - -We recommend to put the test files (or `__tests__` folders) next to the code they are testing so that relative imports appear shorter. For example, if `App.test.js` and `App.js` are in the same folder, the test just needs to `import App from './App'` instead of a long relative path. Colocation also helps find tests more quickly in larger projects. - -### Command Line Interface - -When you run `npm test`, Jest will launch in the watch mode. Every time you save a file, it will re-run the tests, just like `npm start` recompiles the code. - -The watcher includes an interactive command-line interface with the ability to run all tests, or focus on a search pattern. It is designed this way so that you can keep it open and enjoy fast re-runs. You can learn the commands from the “Watch Usage” note that the watcher prints after every run: - -![Jest watch mode](http://facebook.github.io/jest/img/blog/15-watch.gif) - -### Version Control Integration - -By default, when you run `npm test`, Jest will only run the tests related to files changed since the last commit. This is an optimization designed to make your tests run fast regardless of how many tests you have. However it assumes that you don’t often commit the code that doesn’t pass the tests. - -Jest will always explicitly mention that it only ran tests related to the files changed since the last commit. You can also press `a` in the watch mode to force Jest to run all tests. - -Jest will always run all tests on a [continuous integration](#continuous-integration) server or if the project is not inside a Git or Mercurial repository. - -### Writing Tests - -To create tests, add `it()` (or `test()`) blocks with the name of the test and its code. You may optionally wrap them in `describe()` blocks for logical grouping but this is neither required nor recommended. - -Jest provides a built-in `expect()` global function for making assertions. A basic test could look like this: - -```js -import sum from './sum'; - -it('sums numbers', () => { - expect(sum(1, 2)).toEqual(3); - expect(sum(2, 2)).toEqual(4); -}); -``` - -All `expect()` matchers supported by Jest are [extensively documented here](https://facebook.github.io/jest/docs/en/expect.html#content).
-You can also use [`jest.fn()` and `expect(fn).toBeCalled()`](https://facebook.github.io/jest/docs/en/expect.html#tohavebeencalled) to create “spies” or mock functions. - -### Testing Components - -There is a broad spectrum of component testing techniques. They range from a “smoke test” verifying that a component renders without throwing, to shallow rendering and testing some of the output, to full rendering and testing component lifecycle and state changes. - -Different projects choose different testing tradeoffs based on how often components change, and how much logic they contain. If you haven’t decided on a testing strategy yet, we recommend that you start with creating simple smoke tests for your components: - -```js -import React from 'react'; -import ReactDOM from 'react-dom'; -import App from './App'; - -it('renders without crashing', () => { - const div = document.createElement('div'); - ReactDOM.render(, div); -}); -``` - -This test mounts a component and makes sure that it didn’t throw during rendering. Tests like this provide a lot of value with very little effort so they are great as a starting point, and this is the test you will find in `src/App.test.js`. - -When you encounter bugs caused by changing components, you will gain a deeper insight into which parts of them are worth testing in your application. This might be a good time to introduce more specific tests asserting specific expected output or behavior. - -If you’d like to test components in isolation from the child components they render, we recommend using [`shallow()` rendering API](http://airbnb.io/enzyme/docs/api/shallow.html) from [Enzyme](http://airbnb.io/enzyme/). To install it, run: - -```sh -npm install --save enzyme enzyme-adapter-react-16 react-test-renderer -``` - -Alternatively you may use `yarn`: - -```sh -yarn add enzyme enzyme-adapter-react-16 react-test-renderer -``` - -As of Enzyme 3, you will need to install Enzyme along with an Adapter corresponding to the version of React you are using. (The examples above use the adapter for React 16.) - -The adapter will also need to be configured in your [global setup file](#initializing-test-environment): - -#### `src/setupTests.js` - -```js -import { configure } from 'enzyme'; -import Adapter from 'enzyme-adapter-react-16'; - -configure({ adapter: new Adapter() }); -``` - -> Note: Keep in mind that if you decide to "eject" before creating `src/setupTests.js`, the resulting `package.json` file won't contain any reference to it. [Read here](#initializing-test-environment) to learn how to add this after ejecting. - -Now you can write a smoke test with it: - -```js -import React from 'react'; -import { shallow } from 'enzyme'; -import App from './App'; - -it('renders without crashing', () => { - shallow(); -}); -``` - -Unlike the previous smoke test using `ReactDOM.render()`, this test only renders `` and doesn’t go deeper. For example, even if `` itself renders a `
+ ``` **This is an optional feature.** Regular `` stylesheets and CSS files are fully supported. CSS Modules are turned on for files ending with the `.module.css` extension. From 6a95aae96db594705fb5ce7d168fa50a4ef0f0ad Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Fri, 4 Jan 2019 10:08:47 -0800 Subject: [PATCH 0503/1249] Prepare 2.1.3 release --- CHANGELOG.md | 48 +++ lerna.json | 3 +- packages/create-react-app/yarn.lock.cached | 420 ++++++++++++--------- 3 files changed, 285 insertions(+), 186 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a7d5c6536a1..7599943de0b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,51 @@ +## 2.1.3 (January 4, 2019) + +#### :memo: Documentation + +- Other + - [#6067](https://github.com/facebook/create-react-app/pull/6067) Correct an error for documentation. ([@hardo](https://github.com/hardo)) + - [#6110](https://github.com/facebook/create-react-app/pull/6110) Replace deprecated VSCode launch.json variable. ([@raiskila](https://github.com/raiskila)) + - [#5631](https://github.com/facebook/create-react-app/pull/5631) Generalize the adding bootstrap documentation. ([@jquense](https://github.com/jquense)) + - [#6084](https://github.com/facebook/create-react-app/pull/6084) Remove outdated docs for setting up eslint in editor. ([@LukasWerfel](https://github.com/LukasWerfel)) + - [#6061](https://github.com/facebook/create-react-app/pull/6061) Fix control comment of CSS Grid prefixing. ([@denexapp](https://github.com/denexapp)) +- `react-scripts` + - [#6036](https://github.com/facebook/create-react-app/pull/6036) Fix comment typo. ([@shawtung](https://github.com/shawtung)) + +#### :house: Internal + +- `create-react-app`, `react-error-overlay` + - [#6104](https://github.com/facebook/create-react-app/pull/6104) Typo fixes. ([@prashant-andani](https://github.com/prashant-andani)) + +#### :hammer: Underlying Tools + +- `react-scripts` + - [#6064](https://github.com/facebook/create-react-app/pull/6064) Update webpack-dev-server 3.1.9 -> 3.1.14. ([@Friss](https://github.com/Friss)) + +#### Committers: 8 + +- Denis Mukhametov ([denexapp](https://github.com/denexapp)) +- Hardo ([hardo](https://github.com/hardo)) +- Janne Raiskila ([raiskila](https://github.com/raiskila)) +- Jason Quense ([jquense](https://github.com/jquense)) +- Lukas Werfel ([LukasWerfel](https://github.com/LukasWerfel)) +- Prashant Andani ([prashant-andani](https://github.com/prashant-andani)) +- Zachary Friss ([Friss](https://github.com/Friss)) +- [shawtung](https://github.com/shawtung) + +### Migrating from 2.1.2 to 2.1.3 + +Inside any created project that has not been ejected, run: + +```bash +npm install --save --save-exact react-scripts@2.1.3 +``` + +or + +``` +yarn add --exact react-scripts@2.1.3 +``` + ## 2.1.2 (December 23, 2018) v2.1.2 is a maintenance release including various bug fixes. diff --git a/lerna.json b/lerna.json index 093d206cdc9..8ea483cdb84 100644 --- a/lerna.json +++ b/lerna.json @@ -11,7 +11,8 @@ "tag: bug fix": ":bug: Bug Fix", "tag: enhancement": ":nail_care: Enhancement", "tag: documentation": ":memo: Documentation", - "tag: internal": ":house: Internal" + "tag: internal": ":house: Internal", + "tag: underlying tools": ":hammer: Underlying Tools" }, "cacheDir": ".changelog" } diff --git a/packages/create-react-app/yarn.lock.cached b/packages/create-react-app/yarn.lock.cached index a931a267cd7..17d0eacc4aa 100644 --- a/packages/create-react-app/yarn.lock.cached +++ b/packages/create-react-app/yarn.lock.cached @@ -9,26 +9,6 @@ dependencies: "@babel/highlight" "^7.0.0" -"@babel/core@7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.1.0.tgz#08958f1371179f62df6966d8a614003d11faeb04" - integrity sha512-9EWmD0cQAbcXSc+31RIoYgEHx3KQ2CCSMDBhnXrShWvo45TMw+3/55KVxlhkG53kw9tl87DqINgHDgFVhZJV/Q== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.0.0" - "@babel/helpers" "^7.1.0" - "@babel/parser" "^7.1.0" - "@babel/template" "^7.1.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" - convert-source-map "^1.1.0" - debug "^3.1.0" - json5 "^0.5.0" - lodash "^4.17.10" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - "@babel/core@7.1.6": version "7.1.6" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.1.6.tgz#3733cbee4317429bc87c62b29cf8587dba7baeb3" @@ -69,7 +49,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.0.0", "@babel/generator@^7.1.6", "@babel/generator@^7.2.2": +"@babel/generator@^7.1.6", "@babel/generator@^7.2.2": version "7.2.2" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.2.2.tgz#18c816c70962640eab42fe8cae5f3947a5c65ccc" integrity sha512-I4o675J/iS8k+P38dvJ3IBGqObLXyQLTxtrR4u9cSUJOURvafeEWb/pFMOTwtNrmq73mJzyF6ueTbO1BtN0Zeg== @@ -243,7 +223,7 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.2.0" -"@babel/helpers@^7.1.0", "@babel/helpers@^7.1.5", "@babel/helpers@^7.2.0": +"@babel/helpers@^7.1.5", "@babel/helpers@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.2.0.tgz#8335f3140f3144270dc63c4732a4f8b0a50b7a21" integrity sha512-Fr07N+ea0dMcMN8nFpuK6dUIT7/ivt9yKQdEEnjVS83tG2pHwPi03gYmk/tyuwONnZ+sY+GFFPlWGgCtW1hF9A== @@ -261,7 +241,7 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.1.6", "@babel/parser@^7.2.2", "@babel/parser@^7.2.3": +"@babel/parser@^7.0.0", "@babel/parser@^7.1.6", "@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" integrity sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA== @@ -287,10 +267,10 @@ "@babel/helper-replace-supers" "^7.1.0" "@babel/plugin-syntax-class-properties" "^7.0.0" -"@babel/plugin-proposal-decorators@7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.1.2.tgz#79829bd75fced6581ec6c7ab1930e8d738e892e7" - integrity sha512-YooynBO6PmBgHvAd0fl5e5Tq/a0pEC6RqF62ouafme8FzdIVH41Mz/u1dn8fFVm4jzEJ+g/MsOxouwybJPuP8Q== +"@babel/plugin-proposal-decorators@7.1.6": + version "7.1.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.1.6.tgz#460c31edbd01953efe45d491583b3ec31661d689" + integrity sha512-U42f8KhUbtlhUDyV/wK4Rq/wWh8vWyttYABckG/v0vVnMPvayOewZC/83CbVdmyP+UhEqI368FEQ7hHMfhBpQA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-replace-supers" "^7.1.0" @@ -431,7 +411,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.2.0": +"@babel/plugin-transform-block-scoping@^7.1.5", "@babel/plugin-transform-block-scoping@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.2.0.tgz#f17c49d91eedbcdf5dd50597d16f5f2f770132d4" integrity sha512-vDTgf19ZEV6mx35yiPJe4fS02mPQUUcBNwWQSZFXSzTSbsJFQvHt7DqyS3LK8oOWALFOsJ+8bbqBgkirZteD5Q== @@ -474,10 +454,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-destructuring@7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0.tgz#68e911e1935dda2f06b6ccbbf184ffb024e9d43a" - integrity sha512-Fr2GtF8YJSXGTyFPakPFB4ODaEKGU04bPsAllAIabwoXdFrPxL0LVXQX5dQWoxOjjgozarJcC9eWGsj0fD6Zsg== +"@babel/plugin-transform-destructuring@7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.1.3.tgz#e69ff50ca01fac6cb72863c544e516c2b193012f" + integrity sha512-Mb9M4DGIOspH1ExHOUnn2UUXFOyVTiX84fXCd+6B5iWrQg/QMeeRmSwpZ9lnjYLSXtZwiw80ytVMr3zue0ucYw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -512,10 +492,10 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-flow-strip-types@7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.0.0.tgz#c40ced34c2783985d90d9f9ac77a13e6fb396a01" - integrity sha512-WhXUNb4It5a19RsgKKbQPrjmy4yWOY1KynpEbNw7bnd1QTcrT/EIl3MJvnGgpgvrKyKbqX7nUNOJfkpLOnoDKA== +"@babel/plugin-transform-flow-strip-types@7.1.6": + version "7.1.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.1.6.tgz#4b7be62604d39e63cfe23b1d00d63e9fb7e763ba" + integrity sha512-0tyFAAjJmnRlr8MVJV39ASn1hv+PbdVP71hf7aAseqLfQ0o9QXk9htbMbq7/ZYXnUIp6gDw0lUUP0+PQMbbtmg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-flow" "^7.0.0" @@ -725,10 +705,10 @@ "@babel/helper-regex" "^7.0.0" regexpu-core "^4.1.3" -"@babel/preset-env@7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.1.0.tgz#e67ea5b0441cfeab1d6f41e9b5c79798800e8d11" - integrity sha512-ZLVSynfAoDHB/34A17/JCZbyrzbQj59QC1Anyueb4Bwjh373nVPq5/HMph0z+tCmcDjXDe+DlKQq9ywQuvWrQg== +"@babel/preset-env@7.1.6": + version "7.1.6" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.1.6.tgz#a0bf4b96b6bfcf6e000afc5b72b4abe7cc13ae97" + integrity sha512-YIBfpJNQMBkb6MCkjz/A9J76SNCSuGVamOVBgoUkLzpJD/z8ghHi9I42LQ4pulVX68N/MmImz6ZTixt7Azgexw== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -743,7 +723,7 @@ "@babel/plugin-transform-arrow-functions" "^7.0.0" "@babel/plugin-transform-async-to-generator" "^7.1.0" "@babel/plugin-transform-block-scoped-functions" "^7.0.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" + "@babel/plugin-transform-block-scoping" "^7.1.5" "@babel/plugin-transform-classes" "^7.1.0" "@babel/plugin-transform-computed-properties" "^7.0.0" "@babel/plugin-transform-destructuring" "^7.0.0" @@ -838,10 +818,10 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-typescript" "^7.1.0" -"@babel/runtime@7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0.tgz#adeb78fedfc855aa05bc041640f3f6f98e85424c" - integrity sha512-7hGhzlcmg01CvH1EHdSPVXYX1aJ8KCEyz6I9xYIi/asDtzBPMyMhVibhM/K6g/5qnKBwjZtp10bNZIEFTRW1MA== +"@babel/runtime@7.1.5": + version "7.1.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.1.5.tgz#4170907641cf1f61508f563ece3725150cc6fe39" + integrity sha512-xKnPpXG/pvK1B90JkwwxSGii90rQGKtzcMt2gI5G6+M0REXaq6rOHsGC2ay6/d0Uje7zzvSzjEzfR3ENhFlrfA== dependencies: regenerator-runtime "^0.12.0" @@ -1137,9 +1117,9 @@ acorn@^5.0.0, acorn@^5.5.3, acorn@^5.6.2: integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== acorn@^6.0.1, acorn@^6.0.2, acorn@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.4.tgz#77377e7353b72ec5104550aa2d2097a2fd40b754" - integrity sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg== + version "6.0.5" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.5.tgz#81730c0815f3f3b34d8efa95cb7430965f4d887a" + integrity sha512-i33Zgp3XWtmZBMNvCr4azvOFeWVw1Rk6p3hfi3LUDvIFraOMywb1kAtrbi+med14m4Xfpqm3zRZMT+c0FNE7kg== address@1.0.3, address@^1.0.1: version "1.0.3" @@ -1424,15 +1404,15 @@ atob@^2.1.1: integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== autoprefixer@^9.3.1: - version "9.4.3" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.4.3.tgz#c97384a8fd80477b78049163a91bbc725d9c41d9" - integrity sha512-/XSnzDepRkAU//xLcXA/lUWxpsBuw0WiriAHOqnxkuCtzLhaz+fL4it4gp20BQ8n5SyLzK/FOc7A0+u/rti2FQ== + version "9.4.4" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.4.4.tgz#40c42b335bdb22efe8cd80389ca82ffb5e32d68d" + integrity sha512-7tpjBadJyHKf+gOJEmKhZIksWxdZCSrnKbbTJNsw+/zX9+f//DLELRQPWjjjVoDbbWlCuNRkN7RfmZwDVgWMLw== dependencies: - browserslist "^4.3.6" - caniuse-lite "^1.0.30000921" + browserslist "^4.3.7" + caniuse-lite "^1.0.30000926" normalize-range "^0.1.2" num2fraction "^1.2.2" - postcss "^7.0.6" + postcss "^7.0.7" postcss-value-parser "^3.3.1" aws-sign2@~0.7.0: @@ -1587,10 +1567,10 @@ babel-plugin-macros@2.4.2: cosmiconfig "^5.0.5" resolve "^1.8.1" -babel-plugin-named-asset-import@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.2.3.tgz#b40ed50a848e7bb0a2a7e34d990d1f9d46fe9b38" - integrity sha512-9mx2Z9M4EGbutvXxoLV7aUBCY6ps3sqLFl094FeA2tFQzQffIh0XSsmwwQRxiSfpg3rnb5x/o46qRLxS/OzFTg== +babel-plugin-named-asset-import@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.0.tgz#3289ec622d19cd1cc84df8d784b41f1b048bd524" + integrity sha512-to6Shd/r8fMRRg/MaOhDNfqpuXfjlQx3ypWDG6jh4ESCVZDJCgdgIalZbrnVlBPGgH/QeyHMjnGb2W+JJiy+NQ== babel-plugin-syntax-object-rest-spread@^6.13.0, babel-plugin-syntax-object-rest-spread@^6.8.0: version "6.13.0" @@ -1605,10 +1585,10 @@ babel-plugin-transform-object-rest-spread@^6.26.0: babel-plugin-syntax-object-rest-spread "^6.8.0" babel-runtime "^6.26.0" -babel-plugin-transform-react-remove-prop-types@0.4.18: - version "0.4.18" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.18.tgz#85ff79d66047b34288c6f7cc986b8854ab384f8c" - integrity sha512-azed2nHo8vmOy7EY26KH+om5oOcWRs0r1U8wOmhwta+SBMMnmJ4H6yaBZRCcHBtMeWp9AVhvBTL/lpR1kEx+Xw== +babel-plugin-transform-react-remove-prop-types@0.4.20: + version "0.4.20" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.20.tgz#688bdea1e27ea0023775dea817fa2d3f8df8802b" + integrity sha512-bWQ8e7LsgdFpyHU/RabjDAjVhL7KLAJXEt0nb0LANFje8YAGA8RlZv88a72aCswOxELWULkYuJqfFoKgs58Tng== babel-preset-jest@^23.2.0: version "23.2.0" @@ -1618,30 +1598,30 @@ babel-preset-jest@^23.2.0: babel-plugin-jest-hoist "^23.2.0" babel-plugin-syntax-object-rest-spread "^6.13.0" -babel-preset-react-app@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-6.1.0.tgz#477ae7f8557eb99ce26d179530127913b733310d" - integrity sha512-8PJ4N+acfYsjhDK4gMWkqJMVRMjDKb93D+nz7lWlNe73Jcv38FNu37i5K/dVQnFDdRYHbe1SjII+Y0mCgink9A== +babel-preset-react-app@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-7.0.0.tgz#86bf71e43cb8d36e40da69f8b4ad5d6f945dec93" + integrity sha512-LQKCB3xxdhAlRbk6IIZdO4ry1yA8gKGVV4phjOIgCEQr3oyaLPXf2j+lfD0zljOE2wkN2axRGOLTzdUPzVDO4w== dependencies: - "@babel/core" "7.1.0" + "@babel/core" "7.1.6" "@babel/plugin-proposal-class-properties" "7.1.0" - "@babel/plugin-proposal-decorators" "7.1.2" + "@babel/plugin-proposal-decorators" "7.1.6" "@babel/plugin-proposal-object-rest-spread" "7.0.0" "@babel/plugin-syntax-dynamic-import" "7.0.0" "@babel/plugin-transform-classes" "7.1.0" - "@babel/plugin-transform-destructuring" "7.0.0" - "@babel/plugin-transform-flow-strip-types" "7.0.0" + "@babel/plugin-transform-destructuring" "7.1.3" + "@babel/plugin-transform-flow-strip-types" "7.1.6" "@babel/plugin-transform-react-constant-elements" "7.0.0" "@babel/plugin-transform-react-display-name" "7.0.0" "@babel/plugin-transform-runtime" "7.1.0" - "@babel/preset-env" "7.1.0" + "@babel/preset-env" "7.1.6" "@babel/preset-react" "7.0.0" "@babel/preset-typescript" "7.1.0" - "@babel/runtime" "7.0.0" + "@babel/runtime" "7.1.5" babel-loader "8.0.4" babel-plugin-dynamic-import-node "2.2.0" babel-plugin-macros "2.4.2" - babel-plugin-transform-react-remove-prop-types "0.4.18" + babel-plugin-transform-react-remove-prop-types "0.4.20" babel-register@^6.26.0: version "6.26.0" @@ -1755,6 +1735,11 @@ big.js@^3.1.3: resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + binary-extensions@^1.0.0: version "1.12.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14" @@ -1921,14 +1906,14 @@ browserslist@4.1.1: electron-to-chromium "^1.3.62" node-releases "^1.0.0-alpha.11" -browserslist@^4.0.0, browserslist@^4.1.0, browserslist@^4.3.4, browserslist@^4.3.6: - version "4.3.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.3.6.tgz#0f9d9081afc66b36f477c6bdf3813f784f42396a" - integrity sha512-kMGKs4BTzRWviZ8yru18xBpx+CyHG9eqgRbj9XbE3IMgtczf4aiA0Y1YCpVdvUieKGZ03kolSPXqTcscBCb9qw== +browserslist@^4.0.0, browserslist@^4.1.0, browserslist@^4.3.4, browserslist@^4.3.7: + version "4.3.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.3.7.tgz#f1de479a6466ea47a0a26dcc725e7504817e624a" + integrity sha512-pWQv51Ynb0MNk9JGMCZ8VkM785/4MQNXiFYtPqI7EEP0TJO+/d/NqRVn1uiAN0DNbnlUSpL2sh16Kspasv3pUQ== dependencies: - caniuse-lite "^1.0.30000921" - electron-to-chromium "^1.3.92" - node-releases "^1.1.1" + caniuse-lite "^1.0.30000925" + electron-to-chromium "^1.3.96" + node-releases "^1.1.3" bser@^2.0.0: version "2.0.0" @@ -2094,10 +2079,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000884, caniuse-lite@^1.0.30000905, caniuse-lite@^1.0.30000921: - version "1.0.30000923" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000923.tgz#148f9bda508024b5ce957b463ae2e8302b451bb2" - integrity sha512-j5ur7eeluOFjjPUkydtXP4KFAsmH3XaQNch5tvWSO+dLHYt5PE+VgJZLWtbVOodfWij6m6zas28T4gB/cLYq1w== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000884, caniuse-lite@^1.0.30000905, caniuse-lite@^1.0.30000925, caniuse-lite@^1.0.30000926: + version "1.0.30000927" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000927.tgz#114a9de4ff1e01f5790fe578ecd93421c7524665" + integrity sha512-ogq4NbUWf1uG/j66k0AmiO3GjqJAlQyF8n4w8a954cbCyFKmYGvRtgz6qkq2fWuduTXHibX7GyYL5Pg58Aks2g== capture-exit@^1.2.0: version "1.2.0" @@ -2814,7 +2799,7 @@ debug@=3.1.0: dependencies: ms "2.0.0" -debug@^3.1.0: +debug@^3.1.0, debug@^3.2.5: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== @@ -2875,7 +2860,7 @@ default-require-extensions@^1.0.0: dependencies: strip-bom "^2.0.0" -define-properties@^1.1.2: +define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== @@ -2961,7 +2946,7 @@ detect-newline@^2.1.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= -detect-node@^2.0.3: +detect-node@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== @@ -3143,7 +3128,7 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.62, electron-to-chromium@^1.3.92: +electron-to-chromium@^1.3.62, electron-to-chromium@^1.3.96: version "1.3.96" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.96.tgz#25770ec99b8b07706dedf3a5f43fa50cb54c4f9a" integrity sha512-ZUXBUyGLeoJxp4Nt6G/GjBRLnyz8IKQGexZ2ndWaoegThgMGFO1tdDYID5gBV32/1S83osjJHyfzvanE/8HY4Q== @@ -3211,18 +3196,19 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.5.1, es-abstract@^1.6.1, es-abstract@^1.7.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" - integrity sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA== +es-abstract@^1.12.0, es-abstract@^1.5.1, es-abstract@^1.7.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" + integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== dependencies: - es-to-primitive "^1.1.1" + es-to-primitive "^1.2.0" function-bind "^1.1.1" - has "^1.0.1" - is-callable "^1.1.3" + has "^1.0.3" + is-callable "^1.1.4" is-regex "^1.0.4" + object-keys "^1.0.12" -es-to-primitive@^1.1.1: +es-to-primitive@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== @@ -3253,10 +3239,10 @@ escodegen@^1.11.0, escodegen@^1.9.1: optionalDependencies: source-map "~0.6.1" -eslint-config-react-app@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-3.0.5.tgz#d199088ab486d7ccc56d40dedcb1482b01934fb2" - integrity sha512-GjPuy0pbaCkl4+9wm8p0xpl/x/AGFy3wKuju3WNVefDNDDu8T6Ap1OFMDDJbYnOAI+4jfyAE3VT06lAYcJVpdw== +eslint-config-react-app@^3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-3.0.6.tgz#addcae1359235941e95f3c96970b7ac8552e1130" + integrity sha512-VL5rA1EBZv7f9toc9x71or7nr4jRmwCH4V9JKB9DFVaTLOLI9+vjWLgQLjMu3xR9iUT80dty86RbCfNaKyrFFg== dependencies: confusing-browser-globals "^1.0.5" @@ -3470,6 +3456,13 @@ eventsource@0.1.6: dependencies: original ">=0.0.5" +eventsource@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" + integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== + dependencies: + original "^1.0.0" + evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" @@ -3511,6 +3504,19 @@ execa@^0.7.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -3697,7 +3703,7 @@ faye-websocket@^0.10.0: dependencies: websocket-driver ">=0.5.1" -faye-websocket@~0.11.0: +faye-websocket@~0.11.0, faye-websocket@~0.11.1: version "0.11.1" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" integrity sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg= @@ -3864,9 +3870,9 @@ flush-write-stream@^1.0.0: readable-stream "^2.0.4" follow-redirects@^1.0.0: - version "1.5.10" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" - integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== + version "1.6.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.6.1.tgz#514973c44b5757368bad8bddfe52f81f015c94cb" + integrity sha512-t2JCjbzxQpWvbhts3l6SH1DKzSrx8a+SsaVf4h6bG4kOXUuPYS/kg2Lr4gQSb7eemaHqJkOThF1BGyjlUkO1GQ== dependencies: debug "=3.1.0" @@ -4004,7 +4010,7 @@ fsevents@^1.2.2, fsevents@^1.2.3: nan "^2.9.2" node-pre-gyp "^0.10.0" -function-bind@^1.1.0, function-bind@^1.1.1: +function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== @@ -4043,6 +4049,13 @@ get-stream@^3.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -4083,7 +4096,7 @@ glob-to-regexp@^0.3.0: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= -glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: +glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: version "7.1.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== @@ -4210,10 +4223,10 @@ h2x-types@^1.1.0: resolved "https://registry.yarnpkg.com/h2x-types/-/h2x-types-1.1.0.tgz#ec0d5e3674e2207269f32976ac9c82aaff4818e6" integrity sha512-QdH5qfLcdF209UsCdM0ZNZ9Dwm2PHvMfeLZtivBrjX3Y/df4US2pwsUC4HBfWhye/mx/t6puODeC7Oacb/Ol8g== -handle-thing@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" - integrity sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ= +handle-thing@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" + integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== handlebars@^4.0.3: version "4.0.12" @@ -4772,7 +4785,7 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" -is-callable@^1.1.3, is-callable@^1.1.4: +is-callable@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== @@ -5632,6 +5645,13 @@ json5@^0.5.0, json5@^0.5.1: resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + json5@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" @@ -5793,7 +5813,7 @@ loader-runner@^2.3.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.1.tgz#026f12fe7c3115992896ac02ba022ba92971b979" integrity sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw== -loader-utils@1.1.0, loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0: +loader-utils@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" integrity sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0= @@ -5802,6 +5822,15 @@ loader-utils@1.1.0, loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1. emojis-list "^2.0.0" json5 "^0.5.0" +loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== + dependencies: + big.js "^5.2.2" + emojis-list "^2.0.0" + json5 "^1.0.1" + locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -6374,10 +6403,10 @@ node-pre-gyp@^0.10.0: semver "^5.3.0" tar "^4" -node-releases@^1.0.0-alpha.11, node-releases@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.2.tgz#93c17fba5eec8650ad908de5433fa8763baebe4d" - integrity sha512-j1gEV/zX821yxdWp/1vBMN0pSUjuH9oGUdLCb4PfUko6ZW7KdRs3Z+QGGwDUhYtSpQvdVVyLd2V0YvLsmdg5jQ== +node-releases@^1.0.0-alpha.11, node-releases@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.3.tgz#aad9ce0dcb98129c753f772c0aa01360fb90fbd2" + integrity sha512-6VrvH7z6jqqNFY200kdB6HdzkgM96Oaj9v3dqGfgp6mF+cHmU4wyQKZ2/WPDRVoR0Jz9KqbamaBN0ZhdUaysUQ== dependencies: semver "^5.3.0" @@ -6538,16 +6567,16 @@ object.pick@^1.3.0: isobject "^3.0.1" object.values@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.0.4.tgz#e524da09b4f66ff05df457546ec72ac99f13069a" - integrity sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo= + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" + integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== dependencies: - define-properties "^1.1.2" - es-abstract "^1.6.1" - function-bind "^1.1.0" - has "^1.0.1" + define-properties "^1.1.3" + es-abstract "^1.12.0" + function-bind "^1.1.1" + has "^1.0.3" -obuf@^1.0.0, obuf@^1.1.1: +obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== @@ -6613,7 +6642,7 @@ optionator@^0.8.1, optionator@^0.8.2: type-check "~0.3.2" wordwrap "~1.0.0" -original@>=0.0.5: +original@>=0.0.5, original@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== @@ -6640,11 +6669,11 @@ os-locale@^2.0.0: mem "^1.1.0" os-locale@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.0.1.tgz#3b014fbf01d87f60a1e5348d80fe870dc82c4620" - integrity sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw== + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== dependencies: - execa "^0.10.0" + execa "^1.0.0" lcid "^2.0.0" mem "^4.0.0" @@ -6684,9 +6713,9 @@ p-limit@^1.1.0: p-try "^1.0.0" p-limit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec" - integrity sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A== + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.1.0.tgz#1d5a0d20fb12707c758a655f6bbc4386b5930d68" + integrity sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g== dependencies: p-try "^2.0.0" @@ -7582,7 +7611,7 @@ postcss@^6.0.1, postcss@^6.0.23: source-map "^0.6.1" supports-color "^5.4.0" -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.2, postcss@^7.0.5, postcss@^7.0.6: +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.2, postcss@^7.0.5, postcss@^7.0.7: version "7.0.7" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.7.tgz#2754d073f77acb4ef08f1235c36c5721a7201614" integrity sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg== @@ -7831,10 +7860,10 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-app-polyfill@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-0.1.3.tgz#e57bb50f3751dac0e6b3ac27673812c68c679a1d" - integrity sha512-Fl5Pic4F15G05qX7RmUqPZr1MtyFKJKSlRwMhel4kvDLrk/KcQ9QbpvyMTzv/0NN5957XFQ7r1BNHWi7qN59Pw== +react-app-polyfill@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-0.2.0.tgz#60eaf037223b2f3a5671f45e5ac3b418f0b48ad2" + integrity sha512-uBfocjRsBNqhTaEywUZ2buzhHbor2jBbnhZY8VUZ7VZ3PXucIPZrPDAAmbclELhvl+x08PbynAGQfMYcBmqZ2w== dependencies: core-js "2.5.7" object-assign "4.1.1" @@ -7842,10 +7871,10 @@ react-app-polyfill@^0.1.3: raf "3.4.0" whatwg-fetch "3.0.0" -react-dev-utils@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-6.1.1.tgz#a07e3e8923c4609d9f27e5af5207e3ca20724895" - integrity sha512-ThbJ86coVd6wV/QiTo8klDTvdAJ1WsFCGQN07+UkN+QN9CtCSsl/+YuDJToKGeG8X4j9HMGXNKbk2QhPAZr43w== +react-dev-utils@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-7.0.0.tgz#b99d87aea260294bf7ea087cdbd6b099fac3eb27" + integrity sha512-Rlt+rbsSIrv5h3jr8Z6I0fOIts/UxpPu0nB4wxYlpO48vpdnG9tCshOJGmaYjGfNBSNhaBpisIAGhK6c8X2/kw== dependencies: "@babel/code-frame" "7.0.0" address "1.0.3" @@ -7865,17 +7894,17 @@ react-dev-utils@^6.1.1: loader-utils "1.1.0" opn "5.4.0" pkg-up "2.0.0" - react-error-overlay "^5.1.0" + react-error-overlay "^5.1.1" recursive-readdir "2.2.2" shell-quote "1.6.1" sockjs-client "1.1.5" strip-ansi "4.0.0" text-table "0.2.0" -react-error-overlay@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-5.1.0.tgz#c516995a5652e7bfbed8b497910d5280df74a7e8" - integrity sha512-akMy/BQT5m1J3iJIHkSb4qycq2wzllWsmmolaaFVnb+LPV9cIJ/nTud40ZsiiT0H3P+/wXIdbjx2fzF61OaeOQ== +react-error-overlay@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-5.1.1.tgz#56f0439f001ff3588da0f479a86482ccb1e708cb" + integrity sha512-gJcOyak5ri9mzhpFObSAkCqNNBCVZE8LaR/mX37agULgSL0dobgX11NVSIetvNzhHMkr6CIqV0xiutvvcjBtkw== read-pkg-up@^1.0.1: version "1.0.1" @@ -7911,7 +7940,7 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== @@ -7934,6 +7963,15 @@ readable-stream@1.0: isarray "0.0.1" string_decoder "~0.10.x" +readable-stream@^3.0.6: + version "3.1.1" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.1.1.tgz#ed6bbc6c5ba58b090039ff18ce670515795aeb06" + integrity sha512-DkN66hPyqDhnIQ6Jcsvx9bFjhw214O4poMBcIMgPVpQvNy9a0e0Uhg5SqySyDKAmUlwt8LonTBz1ezOnM8pUdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readdirp@^2.0.0: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" @@ -8232,11 +8270,11 @@ rgba-regex@^1.0.0: integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@~2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" - integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w== + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== dependencies: - glob "^7.0.5" + glob "^7.1.3" ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" @@ -8358,7 +8396,7 @@ selfsigned@^1.9.1: dependencies: node-forge "0.7.5" -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1: +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: version "5.6.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== @@ -8383,9 +8421,9 @@ send@0.16.2: statuses "~1.4.0" serialize-javascript@^1.4.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe" - integrity sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ== + version "1.6.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.6.1.tgz#4d1f697ec49429a847ca6f442a2a755126c4d879" + integrity sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw== serve-index@^1.7.2: version "1.9.1" @@ -8570,6 +8608,18 @@ sockjs-client@1.1.5: json3 "^3.3.2" url-parse "^1.1.8" +sockjs-client@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.3.0.tgz#12fc9d6cb663da5739d3dc5fb6e8687da95cb177" + integrity sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg== + dependencies: + debug "^3.2.5" + eventsource "^1.0.7" + faye-websocket "~0.11.1" + inherits "^2.0.3" + json3 "^3.3.2" + url-parse "^1.4.3" + sockjs@0.3.19: version "0.3.19" resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" @@ -8650,30 +8700,28 @@ spdx-license-ids@^3.0.0: resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz#81c0ce8f21474756148bbb5f3bfc0f36bf15d76e" integrity sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g== -spdy-transport@^2.0.18: - version "2.1.1" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.1.1.tgz#c54815d73858aadd06ce63001e7d25fa6441623b" - integrity sha512-q7D8c148escoB3Z7ySCASadkegMmUZW8Wb/Q1u0/XBgDKMO880rLQDj8Twiew/tYi7ghemKUi/whSYOwE17f5Q== +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== dependencies: - debug "^2.6.8" - detect-node "^2.0.3" + debug "^4.1.0" + detect-node "^2.0.4" hpack.js "^2.1.6" - obuf "^1.1.1" - readable-stream "^2.2.9" - safe-buffer "^5.0.1" - wbuf "^1.7.2" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" -spdy@^3.4.1: - version "3.4.7" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc" - integrity sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw= +spdy@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.0.tgz#81f222b5a743a329aa12cea6a390e60e9b613c52" + integrity sha512-ot0oEGT/PGUpzf/6uk4AWLqkq+irlqHXkrdbk51oWONh3bxQmBuljxPNl66zlRRcIJStWq0QkLUCPOPjgjvU0Q== dependencies: - debug "^2.6.8" - handle-thing "^1.2.5" + debug "^4.1.0" + handle-thing "^2.0.0" http-deceiver "^1.2.7" - safe-buffer "^5.0.1" select-hose "^2.0.0" - spdy-transport "^2.0.18" + spdy-transport "^3.0.0" split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" @@ -8806,7 +8854,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string_decoder@^1.0.0: +string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== @@ -8991,9 +9039,9 @@ terser-webpack-plugin@1.1.0: worker-farm "^1.5.2" terser@^3.8.1: - version "3.13.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-3.13.1.tgz#a02e8827fb9705fe7b609c31093d010b28cea8eb" - integrity sha512-ogyZye4DFqOtMzT92Y3Nxxw8OvXmL39HOALro4fc+EUYFFF9G/kk0znkvwMz6PPYgBtdKAodh3FPR70eugdaQA== + version "3.14.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-3.14.1.tgz#cc4764014af570bc79c79742358bd46926018a32" + integrity sha512-NSo3E99QDbYSMeJaEk9YW2lTg3qS9V0aKGlb+PlOrei1X02r1wSBHCNX/O+yeTRFSWPKPIGj6MqvvdqV4rnVGw== dependencies: commander "~2.17.1" source-map "~0.6.1" @@ -9346,7 +9394,7 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= @@ -9462,7 +9510,7 @@ watchpack@^1.5.0: graceful-fs "^4.1.2" neo-async "^2.5.0" -wbuf@^1.1.0, wbuf@^1.7.2: +wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== @@ -9484,10 +9532,10 @@ webpack-dev-middleware@3.4.0: range-parser "^1.0.3" webpack-log "^2.0.0" -webpack-dev-server@3.1.9: - version "3.1.9" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.9.tgz#8b32167624d2faff40dcedc2cbce17ed1f34d3e0" - integrity sha512-fqPkuNalLuc/hRC2QMkVYJkgNmRvxZQo7ykA2e1XRg/tMJm3qY7ZaD6d89/Fqjxtj9bOrn5wZzLD2n84lJdvWg== +webpack-dev-server@3.1.14: + version "3.1.14" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.14.tgz#60fb229b997fc5a0a1fc6237421030180959d469" + integrity sha512-mGXDgz5SlTxcF3hUpfC8hrQ11yhAttuUQWf1Wmb+6zo3x6rb7b9mIfuQvAPLdfDRCGRGvakBWHdHOa0I9p/EVQ== dependencies: ansi-html "0.0.7" bonjour "^3.5.0" @@ -9508,12 +9556,14 @@ webpack-dev-server@3.1.9: portfinder "^1.0.9" schema-utils "^1.0.0" selfsigned "^1.9.1" + semver "^5.6.0" serve-index "^1.7.2" sockjs "0.3.19" - sockjs-client "1.1.5" - spdy "^3.4.1" + sockjs-client "1.3.0" + spdy "^4.0.0" strip-ansi "^3.0.0" supports-color "^5.1.0" + url "^0.11.0" webpack-dev-middleware "3.4.0" webpack-log "^2.0.0" yargs "12.0.2" From 0d0d0349a56a2b2239c87f7fbcba0447d04ce80e Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Fri, 4 Jan 2019 10:53:44 -0800 Subject: [PATCH 0504/1249] Publish - create-react-app@2.1.3 - react-dev-utils@7.0.1 - react-error-overlay@5.1.2 - react-scripts@2.1.3 --- packages/create-react-app/package.json | 2 +- packages/react-dev-utils/package.json | 4 ++-- packages/react-error-overlay/package.json | 2 +- packages/react-scripts/package.json | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/create-react-app/package.json b/packages/create-react-app/package.json index 5335b19c436..4618d5fc4a8 100644 --- a/packages/create-react-app/package.json +++ b/packages/create-react-app/package.json @@ -1,6 +1,6 @@ { "name": "create-react-app", - "version": "2.1.2", + "version": "2.1.3", "keywords": [ "react" ], diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index 0e00d71e8e2..16b1ab823be 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -1,6 +1,6 @@ { "name": "react-dev-utils", - "version": "7.0.0", + "version": "7.0.1", "description": "Webpack utilities used by Create React App", "repository": "facebook/create-react-app", "license": "MIT", @@ -62,7 +62,7 @@ "loader-utils": "1.1.0", "opn": "5.4.0", "pkg-up": "2.0.0", - "react-error-overlay": "^5.1.1", + "react-error-overlay": "^5.1.2", "recursive-readdir": "2.2.2", "shell-quote": "1.6.1", "sockjs-client": "1.1.5", diff --git a/packages/react-error-overlay/package.json b/packages/react-error-overlay/package.json index 6941e9bd423..743bb4487c7 100644 --- a/packages/react-error-overlay/package.json +++ b/packages/react-error-overlay/package.json @@ -1,6 +1,6 @@ { "name": "react-error-overlay", - "version": "5.1.1", + "version": "5.1.2", "description": "An overlay for displaying stack frames.", "main": "lib/index.js", "sideEffects": false, diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 6a475b01a00..c19236b9fc7 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -1,6 +1,6 @@ { "name": "react-scripts", - "version": "2.1.2", + "version": "2.1.3", "description": "Configuration and scripts for Create React App.", "repository": "facebook/create-react-app", "license": "MIT", @@ -61,7 +61,7 @@ "postcss-preset-env": "6.3.1", "postcss-safe-parser": "4.0.1", "react-app-polyfill": "^0.2.0", - "react-dev-utils": "^7.0.0", + "react-dev-utils": "^7.0.1", "resolve": "1.8.1", "sass-loader": "7.1.0", "style-loader": "0.23.0", From 73e3d0ebf1f2834e1c8c41d3a25ae5e0e99e6f14 Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Fri, 4 Jan 2019 11:02:24 -0800 Subject: [PATCH 0505/1249] Update CHANGELOG.md --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7599943de0b..763083ccd08 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ ## 2.1.3 (January 4, 2019) +v2.1.3 is a maintenance release to fix a [vulnerability in webpack-dev-server](https://www.npmjs.com/advisories/725). + #### :memo: Documentation - Other From 3e1dc990130c45f57c647e847682ded0ba352c7b Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Sun, 6 Jan 2019 13:13:20 -0500 Subject: [PATCH 0506/1249] Fix CI and upgrade dependencies (#6137) * Upgrade a bunch of dependencies * Turn off nightly Yarn --- .travis.yml | 2 +- appveyor.yml | 2 +- package.json | 2 +- packages/babel-preset-react-app/package.json | 32 ++++++++++---------- packages/react-app-polyfill/package.json | 4 +-- packages/react-dev-utils/package.json | 18 +++++------ packages/react-error-overlay/package.json | 16 +++++----- packages/react-scripts/package.json | 26 ++++++++-------- 8 files changed, 51 insertions(+), 51 deletions(-) diff --git a/.travis.yml b/.travis.yml index fe543211f32..fd0ba53313b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ cache: directories: - .npm before_install: - - curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --nightly + - curl -o- -L https://yarnpkg.com/install.sh | bash -s - export PATH="$HOME/.yarn/bin:$PATH" install: true script: diff --git a/appveyor.yml b/appveyor.yml index 5f5143167d6..ab266ab976e 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -37,7 +37,7 @@ platform: install: - ps: Install-Product node $env:nodejs_version $env:platform - ps: | - (New-Object Net.WebClient).DownloadFile("https://nightly.yarnpkg.com/latest.msi", "$env:temp\yarn.msi") + (New-Object Net.WebClient).DownloadFile("https://yarnpkg.com/latest.msi", "$env:temp\yarn.msi") cmd /c start /wait msiexec.exe /i $env:temp\yarn.msi /quiet /qn /norestart build: off diff --git a/package.json b/package.json index f3942e6df30..fdea26c2b93 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "compile:lockfile": "node tasks/compile-lockfile.js" }, "devDependencies": { - "eslint": "5.6.0", + "eslint": "5.12.0", "execa": "1.0.0", "fs-extra": "^7.0.0", "get-port": "^4.0.0", diff --git a/packages/babel-preset-react-app/package.json b/packages/babel-preset-react-app/package.json index d5448b0b163..c8050d43ddd 100644 --- a/packages/babel-preset-react-app/package.json +++ b/packages/babel-preset-react-app/package.json @@ -17,24 +17,24 @@ "test.js" ], "dependencies": { - "@babel/core": "7.1.6", - "@babel/plugin-proposal-class-properties": "7.1.0", - "@babel/plugin-proposal-decorators": "7.1.6", - "@babel/plugin-proposal-object-rest-spread": "7.0.0", - "@babel/plugin-syntax-dynamic-import": "7.0.0", - "@babel/plugin-transform-classes": "7.1.0", - "@babel/plugin-transform-destructuring": "7.1.3", - "@babel/plugin-transform-flow-strip-types": "7.1.6", - "@babel/plugin-transform-react-constant-elements": "7.0.0", - "@babel/plugin-transform-react-display-name": "7.0.0", - "@babel/plugin-transform-runtime": "7.1.0", - "@babel/preset-env": "7.1.6", + "@babel/core": "7.2.2", + "@babel/plugin-proposal-class-properties": "7.2.3", + "@babel/plugin-proposal-decorators": "7.2.3", + "@babel/plugin-proposal-object-rest-spread": "7.2.0", + "@babel/plugin-syntax-dynamic-import": "7.2.0", + "@babel/plugin-transform-classes": "7.2.2", + "@babel/plugin-transform-destructuring": "7.2.0", + "@babel/plugin-transform-flow-strip-types": "7.2.3", + "@babel/plugin-transform-react-constant-elements": "7.2.0", + "@babel/plugin-transform-react-display-name": "7.2.0", + "@babel/plugin-transform-runtime": "7.2.0", + "@babel/preset-env": "7.2.3", "@babel/preset-react": "7.0.0", "@babel/preset-typescript": "7.1.0", - "@babel/runtime": "7.1.5", - "babel-loader": "8.0.4", + "@babel/runtime": "7.2.0", + "babel-loader": "8.0.5", "babel-plugin-dynamic-import-node": "2.2.0", - "babel-plugin-macros": "2.4.2", - "babel-plugin-transform-react-remove-prop-types": "0.4.20" + "babel-plugin-macros": "2.4.4", + "babel-plugin-transform-react-remove-prop-types": "0.4.21" } } diff --git a/packages/react-app-polyfill/package.json b/packages/react-app-polyfill/package.json index d7d46e7e21a..456a9863de9 100644 --- a/packages/react-app-polyfill/package.json +++ b/packages/react-app-polyfill/package.json @@ -16,10 +16,10 @@ "jsdom.js" ], "dependencies": { - "core-js": "2.5.7", + "core-js": "2.6.1", "object-assign": "4.1.1", "promise": "8.0.2", - "raf": "3.4.0", + "raf": "3.4.1", "whatwg-fetch": "3.0.0" } } diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index 16b1ab823be..9a1a377935e 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -46,32 +46,32 @@ "dependencies": { "@babel/code-frame": "7.0.0", "address": "1.0.3", - "browserslist": "4.1.1", - "chalk": "2.4.1", + "browserslist": "4.3.7", + "chalk": "2.4.2", "cross-spawn": "6.0.5", "detect-port-alt": "1.1.6", "escape-string-regexp": "1.0.5", "filesize": "3.6.1", "find-up": "3.0.0", - "global-modules": "1.0.0", + "global-modules": "2.0.0", "globby": "8.0.1", "gzip-size": "5.0.0", - "immer": "1.7.2", - "inquirer": "6.2.0", + "immer": "1.10.0", + "inquirer": "6.2.1", "is-root": "2.0.0", - "loader-utils": "1.1.0", + "loader-utils": "1.2.3", "opn": "5.4.0", "pkg-up": "2.0.0", "react-error-overlay": "^5.1.2", "recursive-readdir": "2.2.2", "shell-quote": "1.6.1", - "sockjs-client": "1.1.5", - "strip-ansi": "4.0.0", + "sockjs-client": "1.3.0", + "strip-ansi": "5.0.0", "text-table": "0.2.0" }, "devDependencies": { "cross-env": "^5.2.0", - "jest": "23.6.0" + "jest": "^23.6.0" }, "scripts": { "test": "cross-env FORCE_COLOR=true jest" diff --git a/packages/react-error-overlay/package.json b/packages/react-error-overlay/package.json index 743bb4487c7..1a3166657da 100644 --- a/packages/react-error-overlay/package.json +++ b/packages/react-error-overlay/package.json @@ -31,22 +31,22 @@ ], "devDependencies": { "@babel/code-frame": "7.0.0", - "@babel/core": "7.1.0", - "anser": "1.4.7", + "@babel/core": "7.2.2", + "anser": "1.4.8", "babel-core": "7.0.0-bridge.0", "babel-eslint": "9.0.0", "babel-jest": "23.6.0", - "babel-loader": "8.0.4", + "babel-loader": "8.0.5", "babel-preset-react-app": "^7.0.0", - "chalk": "^2.3.2", + "chalk": "^2.4.2", "chokidar": "^2.0.2", "cross-env": "5.2.0", - "eslint": "5.6.0", + "eslint": "5.12.0", "eslint-config-react-app": "^3.0.6", "eslint-plugin-flowtype": "2.50.1", "eslint-plugin-import": "2.14.0", - "eslint-plugin-jsx-a11y": "6.1.1", - "eslint-plugin-react": "7.11.1", + "eslint-plugin-jsx-a11y": "6.1.2", + "eslint-plugin-react": "7.12.3", "flow-bin": "^0.63.1", "html-entities": "1.2.1", "jest": "23.6.0", @@ -60,7 +60,7 @@ "rimraf": "^2.6.2", "settle-promise": "1.0.0", "source-map": "0.5.6", - "terser-webpack-plugin": "1.1.0", + "terser-webpack-plugin": "1.2.1", "webpack": "^4.8.1" }, "jest": { diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index c19236b9fc7..21471be46d4 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -24,21 +24,21 @@ }, "types": "./lib/react-app.d.ts", "dependencies": { - "@babel/core": "7.1.6", + "@babel/core": "7.2.2", "@svgr/webpack": "2.4.1", "babel-core": "7.0.0-bridge.0", "babel-eslint": "9.0.0", "babel-jest": "23.6.0", - "babel-loader": "8.0.4", + "babel-loader": "8.0.5", "babel-plugin-named-asset-import": "^0.3.0", "babel-preset-react-app": "^7.0.0", "bfj": "6.1.1", "case-sensitive-paths-webpack-plugin": "2.1.2", - "chalk": "2.4.1", + "chalk": "2.4.2", "css-loader": "1.0.0", "dotenv": "6.0.0", "dotenv-expand": "4.2.0", - "eslint": "5.6.0", + "eslint": "5.12.0", "eslint-config-react-app": "^3.0.6", "eslint-loader": "2.1.1", "eslint-plugin-flowtype": "2.50.1", @@ -47,27 +47,27 @@ "eslint-plugin-react": "7.11.1", "file-loader": "2.0.0", "fork-ts-checker-webpack-plugin-alt": "0.4.14", - "fs-extra": "7.0.0", + "fs-extra": "7.0.1", "html-webpack-plugin": "4.0.0-alpha.2", "identity-obj-proxy": "3.0.0", "jest": "23.6.0", - "jest-pnp-resolver": "1.0.1", + "jest-pnp-resolver": "1.0.2", "jest-resolve": "23.6.0", "mini-css-extract-plugin": "0.4.3", "optimize-css-assets-webpack-plugin": "5.0.1", - "pnp-webpack-plugin": "1.1.0", + "pnp-webpack-plugin": "1.2.1", "postcss-flexbugs-fixes": "4.1.0", "postcss-loader": "3.0.0", - "postcss-preset-env": "6.3.1", + "postcss-preset-env": "6.5.0", "postcss-safe-parser": "4.0.1", "react-app-polyfill": "^0.2.0", "react-dev-utils": "^7.0.1", - "resolve": "1.8.1", + "resolve": "1.9.0", "sass-loader": "7.1.0", - "style-loader": "0.23.0", - "terser-webpack-plugin": "1.1.0", - "url-loader": "1.1.1", - "webpack": "4.19.1", + "style-loader": "0.23.1", + "terser-webpack-plugin": "1.2.1", + "url-loader": "1.1.2", + "webpack": "4.28.3", "webpack-dev-server": "3.1.14", "webpack-manifest-plugin": "2.0.4", "workbox-webpack-plugin": "3.6.3" From 005ee5b9525d476d2eb2dfb5b8afcd15b65dd5d2 Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Sun, 6 Jan 2019 15:05:14 -0800 Subject: [PATCH 0507/1249] Bump eslint-plugin-react version and update webpack config (#6132) * Bump eslint-plugin-react version * Move eslint-plugin-react settings into eslint-config-react-app * Add react/no-typos rule --- packages/eslint-config-react-app/index.js | 7 +++++++ packages/react-scripts/config/webpack.config.js | 1 - packages/react-scripts/package.json | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/eslint-config-react-app/index.js b/packages/eslint-config-react-app/index.js index ca232b879ec..f83ed06a104 100644 --- a/packages/eslint-config-react-app/index.js +++ b/packages/eslint-config-react-app/index.js @@ -46,6 +46,12 @@ module.exports = { }, }, + settings: { + react: { + version: 'detect', + }, + }, + rules: { // http://eslint.org/docs/rules/ 'array-callback-return': 'warn', @@ -205,6 +211,7 @@ module.exports = { // 'react/no-deprecated': 'warn', 'react/no-direct-mutation-state': 'warn', 'react/no-is-mounted': 'warn', + 'react/no-typos': 'error', 'react/react-in-jsx-scope': 'error', 'react/require-render-return': 'error', 'react/style-prop-object': 'warn', diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index 3696597fb44..7699d2cb040 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -314,7 +314,6 @@ module.exports = function(webpackEnv) { // @remove-on-eject-begin baseConfig: { extends: [require.resolve('eslint-config-react-app')], - settings: { react: { version: '999.999.999' } }, }, ignore: false, useEslintrc: false, diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 21471be46d4..0a94c39bd2d 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -44,7 +44,7 @@ "eslint-plugin-flowtype": "2.50.1", "eslint-plugin-import": "2.14.0", "eslint-plugin-jsx-a11y": "6.1.2", - "eslint-plugin-react": "7.11.1", + "eslint-plugin-react": "7.12.3", "file-loader": "2.0.0", "fork-ts-checker-webpack-plugin-alt": "0.4.14", "fs-extra": "7.0.1", From 773d10398675ecaa60f3e3d5e0cc731c3de4a918 Mon Sep 17 00:00:00 2001 From: Jason Laster Date: Sun, 6 Jan 2019 22:42:05 -0500 Subject: [PATCH 0508/1249] Switch to eval-source-map (#5060) Switches to eval-source-map, which is easier for webpack to recompute when a file changes and has column based mappings, which lets firefox devtools show original variable in the debugger and evaluate original expressions in the console. --- packages/react-scripts/config/webpack.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index 7699d2cb040..ed85b555ea6 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -131,7 +131,7 @@ module.exports = function(webpackEnv) { ? shouldUseSourceMap ? 'source-map' : false - : isEnvDevelopment && 'cheap-module-source-map', + : isEnvDevelopment && 'eval-source-map', // These are the "entry points" to our application. // This means they will be the "root" imports that are included in JS bundle. entry: [ From ddf294159fbee9513ad1c96aaa318df977a6b97f Mon Sep 17 00:00:00 2001 From: Yangshun Tay Date: Mon, 7 Jan 2019 07:53:08 -0800 Subject: [PATCH 0509/1249] Remove extra table cell (#6141) --- docusaurus/docs/advanced-configuration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/docs/advanced-configuration.md b/docusaurus/docs/advanced-configuration.md index c991fd72edb..343740b9a5a 100644 --- a/docusaurus/docs/advanced-configuration.md +++ b/docusaurus/docs/advanced-configuration.md @@ -17,4 +17,4 @@ You can adjust various development and production settings by setting environmen | CHOKIDAR_USEPOLLING | ✅ Used | 🚫 Ignored | When set to `true`, the watcher runs in polling mode, as necessary inside a VM. Use this option if `npm start` isn't detecting changes. | | GENERATE_SOURCEMAP | 🚫 Ignored | ✅ Used | When set to `false`, source maps are not generated for a production build. This solves OOM issues on some smaller machines. | | NODE_PATH | ✅ Used | ✅ Used | Same as [`NODE_PATH` in Node.js](https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders), but only relative folders are allowed. Can be handy for emulating a monorepo setup by setting `NODE_PATH=src`. | -| INLINE_RUNTIME_CHUNK | 🚫 Ignored | ✅ Used | By default, Create React App will embed the runtime script into `index.html` during the production build. When set to `false`, the script will not be embedded and will be imported as usual. This is normally required when dealing with CSP. | | +| INLINE_RUNTIME_CHUNK | 🚫 Ignored | ✅ Used | By default, Create React App will embed the runtime script into `index.html` during the production build. When set to `false`, the script will not be embedded and will be imported as usual. This is normally required when dealing with CSP. | From caf0effda5f036f454b5a208030adb35138d9e4e Mon Sep 17 00:00:00 2001 From: loveky Date: Tue, 8 Jan 2019 23:36:06 +0800 Subject: [PATCH 0510/1249] update link for difference between proposal stages (#6149) seems the page which the old link points to has removed the related information. --- docusaurus/docs/supported-browsers-features.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/docs/supported-browsers-features.md b/docusaurus/docs/supported-browsers-features.md index f38042f2515..a8e0875c355 100644 --- a/docusaurus/docs/supported-browsers-features.md +++ b/docusaurus/docs/supported-browsers-features.md @@ -19,7 +19,7 @@ This project supports a superset of the latest JavaScript standard. In addition - [Class Fields and Static Properties](https://github.com/tc39/proposal-class-public-fields) (part of stage 3 proposal). - [JSX](https://facebook.github.io/react/docs/introducing-jsx.html), [Flow](./adding-flow) and [TypeScript](./adding-typescript). -Learn more about [different proposal stages](https://babeljs.io/docs/plugins/#presets-stage-x-experimental-presets-). +Learn more about [different proposal stages](https://tc39.github.io/process-document/). While we recommend using experimental proposals with some caution, Facebook heavily uses these features in the product code, so we intend to provide [codemods](https://medium.com/@cpojer/effective-javascript-codemods-5a6686bb46fb) if any of these proposals change in the future. From 6e261f8a06809880bfc90e36f5e295598abdbc20 Mon Sep 17 00:00:00 2001 From: David Rice Date: Wed, 9 Jan 2019 13:24:03 -0600 Subject: [PATCH 0511/1249] Update react-dev-util globby dependency to v8.0.2 (#6162) v8.0.2 was recently released https://github.com/sindresorhus/globby/releases to fix some pathing issues with dir-glob. --- packages/react-dev-utils/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index 9a1a377935e..3e5d75eabb7 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -54,7 +54,7 @@ "filesize": "3.6.1", "find-up": "3.0.0", "global-modules": "2.0.0", - "globby": "8.0.1", + "globby": "8.0.2", "gzip-size": "5.0.0", "immer": "1.10.0", "inquirer": "6.2.1", From 2741781bc6095a43bb79cc259a416075efb915ff Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Wed, 9 Jan 2019 13:16:09 -0800 Subject: [PATCH 0512/1249] Add note for global install of CLI (#6157) * Add note for global install of CLI Closes #6140. --- docusaurus/docs/getting-started.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docusaurus/docs/getting-started.md b/docusaurus/docs/getting-started.md index c7d5eb50514..a77beb5c1b0 100644 --- a/docusaurus/docs/getting-started.md +++ b/docusaurus/docs/getting-started.md @@ -14,6 +14,8 @@ cd my-app npm start ``` +> If you've previously installed `create-react-app` globally via `npm install -g create-react-app`, we recommend you uninstall the package using `npm uninstall -g create-react-app` to ensure that `npx` always uses the latest version. + _([npx](https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b) comes with npm 5.2+ and higher, see [instructions for older npm versions](https://gist.github.com/gaearon/4064d3c23a77c74a3614c498a8bb1c5f))_ Then open [http://localhost:3000/](http://localhost:3000/) to see your app. From c8a540d9a105284f311eb6c932048a9077209a01 Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Thu, 10 Jan 2019 21:17:09 -0800 Subject: [PATCH 0513/1249] Add react/react-dom dependencies to relative-paths test fixture (#6165) --- test/fixtures/relative-paths/package.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test/fixtures/relative-paths/package.json b/test/fixtures/relative-paths/package.json index 64d2bb6dd27..749103ac36a 100644 --- a/test/fixtures/relative-paths/package.json +++ b/test/fixtures/relative-paths/package.json @@ -1,4 +1,7 @@ { - "dependencies": {}, + "dependencies": { + "react": "latest", + "react-dom": "latest" + }, "homepage": "." } From 132ac3523f94d31d6eb27e875ea1a56c1e9e0566 Mon Sep 17 00:00:00 2001 From: Dallon Feldner Date: Fri, 11 Jan 2019 17:35:13 -0600 Subject: [PATCH 0514/1249] Update local-test.sh to return test exit code (#6179) The `e2e:docker` command can run tests in a Docker container, but it always returns exit code 0 even if the tests failed. This PR resolves that and returns the exit code from the test command. --- tasks/local-test.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tasks/local-test.sh b/tasks/local-test.sh index 43a74ae0ec5..75bdd2987a7 100755 --- a/tasks/local-test.sh +++ b/tasks/local-test.sh @@ -98,8 +98,15 @@ ${apply_changes} node --version npm --version set +x -${test_command} && echo -e "\n\e[1;32m✔ Job passed\e[0m" || echo -e "\n\e[1;31m✘ Job failed\e[0m" +${test_command} +result_code=\$? +if [ \$result_code == 0 ]; then + echo -e "\n\e[1;32m✔ Job passed\e[0m" +else + echo -e "\n\e[1;31m✘ Job failed\e[0m" +fi $([[ ${interactive} == 'true' ]] && echo 'bash') +exit \$result_code CMD docker run \ From 8174eed5b31cc43b34b4bc0e4f44a04acea33465 Mon Sep 17 00:00:00 2001 From: Adam Laycock Date: Fri, 11 Jan 2019 20:45:32 -0700 Subject: [PATCH 0515/1249] Upgrade @svgr/webpack to 4.1.0 (#5816) * Upgrade svgr to 4.0.3 * Upgrade svgr to 4.0.4 * Remove unnecessary prettier option * Update to 4.1.0 --- .../babel-plugin-named-asset-import/index.test.js | 13 ++++++------- packages/react-scripts/config/webpack.config.js | 3 +-- packages/react-scripts/package.json | 2 +- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/packages/babel-plugin-named-asset-import/index.test.js b/packages/babel-plugin-named-asset-import/index.test.js index f14139f0fd6..17b1927be16 100644 --- a/packages/babel-plugin-named-asset-import/index.test.js +++ b/packages/babel-plugin-named-asset-import/index.test.js @@ -6,7 +6,7 @@ pluginTester({ pluginOptions: { loaderMap: { svg: { - ReactComponent: '@svgr/webpack?-prettier,-svgo![path]', + ReactComponent: '@svgr/webpack?-svgo![path]', }, }, }, @@ -36,7 +36,7 @@ pluginTester({ svgReactComponentNamedImport: { code: 'import { ReactComponent as logo } from "logo.svg";', output: - 'import { ReactComponent as logo } from "@svgr/webpack?-prettier,-svgo!logo.svg";', + 'import { ReactComponent as logo } from "@svgr/webpack?-svgo!logo.svg";', }, svgMultipleImport: { code: @@ -44,7 +44,7 @@ pluginTester({ output: 'import logo from "logo.svg";\n' + 'import { logoUrl } from "logo.svg";\n' + - 'import { ReactComponent as Logo } from "@svgr/webpack?-prettier,-svgo!logo.svg";', + 'import { ReactComponent as Logo } from "@svgr/webpack?-svgo!logo.svg";', }, defaultExport: { code: 'export default logo;', @@ -81,18 +81,17 @@ pluginTester({ svgReactComponentNamedExport: { code: 'export { ReactComponent as Logo } from "logo.svg";', output: - 'export { ReactComponent as Logo } from "@svgr/webpack?-prettier,-svgo!logo.svg";', + 'export { ReactComponent as Logo } from "@svgr/webpack?-svgo!logo.svg";', }, svgReactComponentExport: { code: 'export { ReactComponent } from "logo.svg";', - output: - 'export { ReactComponent } from "@svgr/webpack?-prettier,-svgo!logo.svg";', + output: 'export { ReactComponent } from "@svgr/webpack?-svgo!logo.svg";', }, svgMultipleExport: { code: 'export { logoUrl , ReactComponent as Logo } from "logo.svg";', output: 'export { logoUrl } from "logo.svg";\n' + - 'export { ReactComponent as Logo } from "@svgr/webpack?-prettier,-svgo!logo.svg";', + 'export { ReactComponent as Logo } from "@svgr/webpack?-svgo!logo.svg";', }, }, }); diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index ed85b555ea6..a5f147ce0ef 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -377,8 +377,7 @@ module.exports = function(webpackEnv) { { loaderMap: { svg: { - ReactComponent: - '@svgr/webpack?-prettier,-svgo![path]', + ReactComponent: '@svgr/webpack?-svgo![path]', }, }, }, diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 0a94c39bd2d..e98bd4dd798 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -25,7 +25,7 @@ "types": "./lib/react-app.d.ts", "dependencies": { "@babel/core": "7.2.2", - "@svgr/webpack": "2.4.1", + "@svgr/webpack": "4.1.0", "babel-core": "7.0.0-bridge.0", "babel-eslint": "9.0.0", "babel-jest": "23.6.0", From 47e9e2c7a07bfe60b52011cf71de5ca33bdeb6e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ot=C3=A1vio=20Pace?= Date: Sat, 12 Jan 2019 09:55:57 -0200 Subject: [PATCH 0516/1249] Move chalk dependency to react-dev-utils (#6150) Related to #751 --- packages/react-dev-utils/chalk.js | 12 ++++++++++++ packages/react-dev-utils/package.json | 1 + packages/react-scripts/package.json | 1 - packages/react-scripts/scripts/build.js | 2 +- packages/react-scripts/scripts/eject.js | 2 +- packages/react-scripts/scripts/init.js | 2 +- packages/react-scripts/scripts/start.js | 2 +- .../react-scripts/scripts/utils/createJestConfig.js | 2 +- .../react-scripts/scripts/utils/verifyPackageTree.js | 2 +- .../scripts/utils/verifyTypeScriptSetup.js | 2 +- 10 files changed, 20 insertions(+), 8 deletions(-) create mode 100644 packages/react-dev-utils/chalk.js diff --git a/packages/react-dev-utils/chalk.js b/packages/react-dev-utils/chalk.js new file mode 100644 index 00000000000..8c42148dd7b --- /dev/null +++ b/packages/react-dev-utils/chalk.js @@ -0,0 +1,12 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +var chalk = require('chalk'); + +module.exports = chalk; diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index 3e5d75eabb7..56928396549 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -12,6 +12,7 @@ }, "files": [ "browsersHelper.js", + "chalk.js", "checkRequiredFiles.js", "clearConsole.js", "crossSpawn.js", diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index e98bd4dd798..a9ed5e4c835 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -34,7 +34,6 @@ "babel-preset-react-app": "^7.0.0", "bfj": "6.1.1", "case-sensitive-paths-webpack-plugin": "2.1.2", - "chalk": "2.4.2", "css-loader": "1.0.0", "dotenv": "6.0.0", "dotenv-expand": "4.2.0", diff --git a/packages/react-scripts/scripts/build.js b/packages/react-scripts/scripts/build.js index 35cbfc15073..8cd1ad77ee5 100644 --- a/packages/react-scripts/scripts/build.js +++ b/packages/react-scripts/scripts/build.js @@ -32,7 +32,7 @@ verifyTypeScriptSetup(); // @remove-on-eject-end const path = require('path'); -const chalk = require('chalk'); +const chalk = require('react-dev-utils/chalk'); const fs = require('fs-extra'); const webpack = require('webpack'); const bfj = require('bfj'); diff --git a/packages/react-scripts/scripts/eject.js b/packages/react-scripts/scripts/eject.js index 3f850068668..a151bbd6e35 100644 --- a/packages/react-scripts/scripts/eject.js +++ b/packages/react-scripts/scripts/eject.js @@ -17,7 +17,7 @@ process.on('unhandledRejection', err => { const fs = require('fs-extra'); const path = require('path'); const execSync = require('child_process').execSync; -const chalk = require('chalk'); +const chalk = require('react-dev-utils/chalk'); const paths = require('../config/paths'); const createJestConfig = require('./utils/createJestConfig'); const inquirer = require('react-dev-utils/inquirer'); diff --git a/packages/react-scripts/scripts/init.js b/packages/react-scripts/scripts/init.js index 771f6dbf490..9b473ab3d95 100644 --- a/packages/react-scripts/scripts/init.js +++ b/packages/react-scripts/scripts/init.js @@ -16,7 +16,7 @@ process.on('unhandledRejection', err => { const fs = require('fs-extra'); const path = require('path'); -const chalk = require('chalk'); +const chalk = require('react-dev-utils/chalk'); const execSync = require('child_process').execSync; const spawn = require('react-dev-utils/crossSpawn'); const { defaultBrowsers } = require('react-dev-utils/browsersHelper'); diff --git a/packages/react-scripts/scripts/start.js b/packages/react-scripts/scripts/start.js index 7750c25a176..852e6b8fb44 100644 --- a/packages/react-scripts/scripts/start.js +++ b/packages/react-scripts/scripts/start.js @@ -32,7 +32,7 @@ verifyTypeScriptSetup(); // @remove-on-eject-end const fs = require('fs'); -const chalk = require('chalk'); +const chalk = require('react-dev-utils/chalk'); const webpack = require('webpack'); const WebpackDevServer = require('webpack-dev-server'); const clearConsole = require('react-dev-utils/clearConsole'); diff --git a/packages/react-scripts/scripts/utils/createJestConfig.js b/packages/react-scripts/scripts/utils/createJestConfig.js index 58c2ad48812..a5f1a1bd7b8 100644 --- a/packages/react-scripts/scripts/utils/createJestConfig.js +++ b/packages/react-scripts/scripts/utils/createJestConfig.js @@ -8,7 +8,7 @@ 'use strict'; const fs = require('fs'); -const chalk = require('chalk'); +const chalk = require('react-dev-utils/chalk'); const paths = require('../../config/paths'); module.exports = (resolve, rootDir, isEjecting) => { diff --git a/packages/react-scripts/scripts/utils/verifyPackageTree.js b/packages/react-scripts/scripts/utils/verifyPackageTree.js index 9b8a6a03486..075860eac5b 100644 --- a/packages/react-scripts/scripts/utils/verifyPackageTree.js +++ b/packages/react-scripts/scripts/utils/verifyPackageTree.js @@ -8,7 +8,7 @@ 'use strict'; -const chalk = require('chalk'); +const chalk = require('react-dev-utils/chalk'); const fs = require('fs'); const path = require('path'); diff --git a/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js b/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js index d8da57a3509..58c352c4464 100644 --- a/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js +++ b/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js @@ -8,7 +8,7 @@ 'use strict'; -const chalk = require('chalk'); +const chalk = require('react-dev-utils/chalk'); const fs = require('fs'); const resolve = require('resolve'); const path = require('path'); From fd382772a1ab656087c1467c5fe9ab8926af1d01 Mon Sep 17 00:00:00 2001 From: Matthew Holloway Date: Tue, 15 Jan 2019 00:54:46 +1300 Subject: [PATCH 0517/1249] Ignore node_modules in verifyNoTypeScript (#6022) --- .../scripts/utils/verifyTypeScriptSetup.js | 2 +- .../issue-5947-not-typescript/index.test.js | 36 +++++++++++++++++++ .../issue-5947-not-typescript/package.json | 3 ++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 test/fixtures/issue-5947-not-typescript/index.test.js create mode 100644 test/fixtures/issue-5947-not-typescript/package.json diff --git a/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js b/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js index 58c352c4464..370c7176e19 100644 --- a/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js +++ b/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js @@ -22,7 +22,7 @@ function writeJson(fileName, object) { } function verifyNoTypeScript() { - const typescriptFiles = globby('**/*.(ts|tsx)', { cwd: paths.appSrc }); + const typescriptFiles = globby(['**/*.(ts|tsx)', '!**/node_modules'], { cwd: paths.appSrc }); if (typescriptFiles.length > 0) { console.warn( chalk.yellow( diff --git a/test/fixtures/issue-5947-not-typescript/index.test.js b/test/fixtures/issue-5947-not-typescript/index.test.js new file mode 100644 index 00000000000..c0d38261f6f --- /dev/null +++ b/test/fixtures/issue-5947-not-typescript/index.test.js @@ -0,0 +1,36 @@ +const testSetup = require('../__shared__/test-setup'); +const path = require('path'); +const fs = require('fs'); + +test('Ignores node_modules when detecting TypeScript', async () => { + // CRA build will check for TypeScript files by + // globbing for src/**/*.ts however this shouldn't + // include any node_modules directories within src. + // See https://github.com/facebook/create-react-app/issues/5947 + + const tsConfigPath = path.join(testSetup.testDirectory, 'tsconfig.json'); + const tsPackagePath = [ + testSetup.testDirectory, + 'src', + 'node_modules', + 'package', + 'index.ts', + ]; + const tsSrcPath = path.join(testSetup.testDirectory, 'src', 'index.ts'); + + // Step 1. + // See if src/node_modules/package/index.ts is treated + // as a JS project + fs.mkdirSync(path.join(...tsPackagePath.slice(0, 2))); + fs.mkdirSync(path.join(...tsPackagePath.slice(0, 3))); + fs.mkdirSync(path.join(...tsPackagePath.slice(0, 4))); + fs.writeFileSync(path.join(...tsPackagePath)); + await testSetup.scripts.build(); + expect(fs.existsSync(tsConfigPath)).toBe(false); + + // Step 2. + // Add TS and ensure tsconfig.json is generated + fs.writeFileSync(tsSrcPath); + await testSetup.scripts.build(); + expect(fs.existsSync(tsConfigPath)).toBe(true); +}); diff --git a/test/fixtures/issue-5947-not-typescript/package.json b/test/fixtures/issue-5947-not-typescript/package.json new file mode 100644 index 00000000000..18a1e415e56 --- /dev/null +++ b/test/fixtures/issue-5947-not-typescript/package.json @@ -0,0 +1,3 @@ +{ + "dependencies": {} +} From 34e5029c548f0fa08e1cd0a9865fc7c90914ff1e Mon Sep 17 00:00:00 2001 From: Dotan Simha Date: Wed, 16 Jan 2019 04:26:24 -0500 Subject: [PATCH 0518/1249] Add empty mock for module (#5798) --- packages/react-scripts/config/webpack.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index a5f147ce0ef..25cc88ae716 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -644,6 +644,7 @@ module.exports = function(webpackEnv) { // Some libraries import Node modules but don't use them in the browser. // Tell Webpack to provide empty mocks for them so importing them works. node: { + module: 'empty', dgram: 'empty', fs: 'empty', net: 'empty', From 803946fe5868523cfa5fb320d14a26da5f8d397c Mon Sep 17 00:00:00 2001 From: Steven Tan Date: Thu, 17 Jan 2019 10:39:34 +0800 Subject: [PATCH 0519/1249] Changes to steps for publishing GitHub User Page (#6095) * Changes to steps for publishing GitHub User Page Remove the the step for switching to gh-pages branch as it is no longer a viable option. * Changed projects to project --- docusaurus/docs/deployment.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/docusaurus/docs/deployment.md b/docusaurus/docs/deployment.md index d25f18244fe..2b287488e7f 100644 --- a/docusaurus/docs/deployment.md +++ b/docusaurus/docs/deployment.md @@ -106,7 +106,8 @@ To override this, specify the `homepage` in your `package.json`, for example: This will let Create React App correctly infer the root path to use in the generated HTML file. **Note**: If you are using `react-router@^4`, you can root ``s using the `basename` prop on any ``.
-More information [here](https://reacttraining.com/react-router/web/api/BrowserRouter/basename-string).
+More information [here](https://reacttraining.com/react-router/web/api/BrowserRouter/basename-string).
+
For example: @@ -240,7 +241,8 @@ For more information see [Firebase Hosting](https://firebase.google.com/docs/hos ### Step 1: Add `homepage` to `package.json` -**The step below is important!**
+**The step below is important!**
+ **If you skip it, your app will not deploy correctly.** Open your `package.json` and add a `homepage` field for your project: @@ -291,11 +293,10 @@ Add the following scripts in your `package.json`: The `predeploy` script will run automatically before `deploy` is run. -If you are deploying to a GitHub user page instead of a project page you'll need to make two -additional modifications: +If you are deploying to a GitHub user page instead of a project page you'll need to make one +additional modification: -1. First, change your repository's source branch to be any branch other than **master**. -1. Additionally, tweak your `package.json` scripts to push deployments to **master**: +1. Tweak your `package.json` scripts to push deployments to **master**: ```diff "scripts": { @@ -312,7 +313,7 @@ Then run: npm run deploy ``` -### Step 4: Ensure your project’s settings use `gh-pages` +### Step 4: For a project page, ensure your project’s settings use `gh-pages` Finally, make sure **GitHub Pages** option in your GitHub project settings is set to use the `gh-pages` branch: From ed5fb1066bd9d08b6aa0a74ccb2ab8304aec7490 Mon Sep 17 00:00:00 2001 From: Ben Carp Date: Sun, 20 Jan 2019 04:13:37 +0200 Subject: [PATCH 0520/1249] Update updating-to-new-releases.md with note about global installs (#6190) * Update updating-to-new-releases.md Related to https://github.com/facebook/create-react-app/issues/6140 * Update updating-to-new-releases.md Linking to getting started following discussion on #6190. Adapt terminology to current installation methods. * Update updating-to-new-releases.md typo, rleative link * Update docusaurus/docs/updating-to-new-releases.md Co-Authored-By: carpben --- docusaurus/docs/updating-to-new-releases.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docusaurus/docs/updating-to-new-releases.md b/docusaurus/docs/updating-to-new-releases.md index 825832464c8..f8a2fa21850 100644 --- a/docusaurus/docs/updating-to-new-releases.md +++ b/docusaurus/docs/updating-to-new-releases.md @@ -8,9 +8,10 @@ Create React App is divided into two packages: - `create-react-app` is a global command-line utility that you use to create new projects. - `react-scripts` is a development dependency in the generated projects (including this one). -You almost never need to update `create-react-app` itself: it delegates all the setup to `react-scripts`. +When you run `npx create-react-app my-app` it automatically installs the latest version of Create React App. +> If you've previously installed `create-react-app` globally via `npm install -g create-react-app`, please visit [Getting Started](getting-started.md) to learn about current installation steps. -When you run `create-react-app`, it always creates the project with the latest version of `react-scripts` so you’ll get all the new features and improvements in newly created apps automatically. +Create React App creates the project with the latest version of `react-scripts` so you’ll get all the new features and improvements in newly created apps automatically. To update an existing project to a new version of `react-scripts`, [open the changelog](https://github.com/facebook/create-react-app/blob/master/CHANGELOG.md), find the version you’re currently on (check `package.json` in this folder if you’re not sure), and apply the migration instructions for the newer versions. From 1c591cb7a446ec63afc012be6511b0a868bcef67 Mon Sep 17 00:00:00 2001 From: Nikita Lyzhov Date: Sun, 20 Jan 2019 22:46:50 +0200 Subject: [PATCH 0521/1249] Update `serve` change listening port documentation (#6229) * [docs] Change serve port flag and add example * [docs] Add --listen flag --- docusaurus/docs/deployment.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docusaurus/docs/deployment.md b/docusaurus/docs/deployment.md index 2b287488e7f..58322318124 100644 --- a/docusaurus/docs/deployment.md +++ b/docusaurus/docs/deployment.md @@ -15,7 +15,11 @@ npm install -g serve serve -s build ``` -The last command shown above will serve your static site on the port **5000**. Like many of [serve](https://github.com/zeit/serve)’s internal settings, the port can be adjusted using the `-p` or `--port` flags. +The last command shown above will serve your static site on the port **5000**. Like many of [serve](https://github.com/zeit/serve)’s internal settings, the port can be adjusted using the `-l` or `--listen` flags: + +```sh +serve -s build -l 4000 +``` Run this command to get a full list of the options available: From 3efcdbf328cff893810a9ed88a4cf4cf838484f5 Mon Sep 17 00:00:00 2001 From: James K Nelson Date: Tue, 22 Jan 2019 12:24:34 +0900 Subject: [PATCH 0522/1249] Fix e2e:docker test failure (#6050) * fix e2e:docker issue * fix e2e tests --- tasks/local-test.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tasks/local-test.sh b/tasks/local-test.sh index 75bdd2987a7..aad6a477076 100755 --- a/tasks/local-test.sh +++ b/tasks/local-test.sh @@ -111,6 +111,7 @@ CMD docker run \ --env CI=true \ + --env NPM_CONFIG_PREFIX=/home/node/.npm \ --env NPM_CONFIG_QUIET=true \ --tty \ --user node \ From 91f54afb4086b30e1a9244390658dd6f711b855e Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Thu, 24 Jan 2019 22:01:55 -0700 Subject: [PATCH 0523/1249] Update stale config to ignore additional labels --- .github/stale.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/stale.yml b/.github/stale.yml index e9387e49029..b2c3bb27cda 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -9,8 +9,14 @@ daysUntilClose: 5 # Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable exemptLabels: - - "issue: proposal" + - "contributions: claimed" + - "contributions: up for grabs!" + - "good first issue" - "issue: announcement" + - "issue: bug" + - "issue: proposal" + - "tag: bug fix" + - "tag: needs investigation" # Set to true to ignore issues in a project (defaults to false) exemptProjects: true From 714599dae652426331007f95cee5e26ea627a1b1 Mon Sep 17 00:00:00 2001 From: Adriano Costa Date: Fri, 25 Jan 2019 18:26:26 -0200 Subject: [PATCH 0524/1249] Prevent cursor events on app-logo svg (#6276) --- packages/react-scripts/template-typescript/src/App.css | 1 + packages/react-scripts/template/src/App.css | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/react-scripts/template-typescript/src/App.css b/packages/react-scripts/template-typescript/src/App.css index 92f956e8040..b41d297cab1 100644 --- a/packages/react-scripts/template-typescript/src/App.css +++ b/packages/react-scripts/template-typescript/src/App.css @@ -5,6 +5,7 @@ .App-logo { animation: App-logo-spin infinite 20s linear; height: 40vmin; + pointer-events: none; } .App-header { diff --git a/packages/react-scripts/template/src/App.css b/packages/react-scripts/template/src/App.css index 92f956e8040..b41d297cab1 100644 --- a/packages/react-scripts/template/src/App.css +++ b/packages/react-scripts/template/src/App.css @@ -5,6 +5,7 @@ .App-logo { animation: App-logo-spin infinite 20s linear; height: 40vmin; + pointer-events: none; } .App-header { From af339ec343eba172d81df9f26dfaabc77b62e5c2 Mon Sep 17 00:00:00 2001 From: Rico Kahler Date: Fri, 1 Feb 2019 10:49:52 -0500 Subject: [PATCH 0525/1249] Add '--no-watch' flag for tests (#6285) --- packages/react-scripts/scripts/test.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/react-scripts/scripts/test.js b/packages/react-scripts/scripts/test.js index ac07e4792af..3659e8bc151 100644 --- a/packages/react-scripts/scripts/test.js +++ b/packages/react-scripts/scripts/test.js @@ -54,10 +54,12 @@ function isInMercurialRepository() { } } -// Watch unless on CI, in coverage mode, or explicitly running all tests +// Watch unless on CI, in coverage mode, explicitly adding `--no-watch`, +// or explicitly running all tests if ( !process.env.CI && argv.indexOf('--coverage') === -1 && + argv.indexOf('--no-watch') === -1 && argv.indexOf('--watchAll') === -1 ) { // https://github.com/facebook/create-react-app/issues/5210 @@ -65,6 +67,11 @@ if ( argv.push(hasSourceControl ? '--watch' : '--watchAll'); } +// Jest doesn't have this option so we'll remove it +if (argv.indexOf('--no-watch') !== -1) { + argv = argv.filter(arg => arg !== '--no-watch'); +} + // @remove-on-eject-begin // This is not necessary after eject because we embed config into package.json. const createJestConfig = require('./utils/createJestConfig'); From a78be99b5e64208a303d65101da3b832fcc96a95 Mon Sep 17 00:00:00 2001 From: James George Date: Sun, 3 Feb 2019 20:37:31 +0530 Subject: [PATCH 0526/1249] Check for multiple project names when initializing (#6080) --- packages/create-react-app/createReactApp.js | 23 ++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/packages/create-react-app/createReactApp.js b/packages/create-react-app/createReactApp.js index ff4beff99a2..356d886556f 100755 --- a/packages/create-react-app/createReactApp.js +++ b/packages/create-react-app/createReactApp.js @@ -143,11 +143,24 @@ if (program.info) { .then(console.log); } -if (typeof projectName === 'undefined') { - console.error('Please specify the project directory:'); - console.log( - ` ${chalk.cyan(program.name())} ${chalk.green('')}` - ); +const hasMultipleProjectNameArgs = + process.argv[3] && !process.argv[3].startsWith('-'); +if (typeof projectName === 'undefined' || hasMultipleProjectNameArgs) { + console.log(); + if (hasMultipleProjectNameArgs) { + console.error( + `You have provided more than one argument for ${chalk.green( + '' + )}.` + ); + console.log(); + console.log('Please specify only one project directory, without spaces.'); + } else { + console.error('Please specify the project directory:'); + console.log( + ` ${chalk.cyan(program.name())} ${chalk.green('')}` + ); + } console.log(); console.log('For example:'); console.log(` ${chalk.cyan(program.name())} ${chalk.green('my-react-app')}`); From dea19fdb30c2e896ed8ac75b68a612b0b92b2406 Mon Sep 17 00:00:00 2001 From: Rico Kahler Date: Mon, 4 Feb 2019 02:21:05 -0500 Subject: [PATCH 0527/1249] Add `--no-watch` test flag to docs (#6331) --- docusaurus/docs/debugging-tests.md | 3 ++- docusaurus/docs/getting-started.md | 2 +- docusaurus/docs/running-tests.md | 8 +++++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/docusaurus/docs/debugging-tests.md b/docusaurus/docs/debugging-tests.md index 93da201a9f6..80ca856cf33 100644 --- a/docusaurus/docs/debugging-tests.md +++ b/docusaurus/docs/debugging-tests.md @@ -54,7 +54,8 @@ Use the following [`launch.json`](https://code.visualstudio.com/docs/editor/debu "args": [ "test", "--runInBand", - "--no-cache" + "--no-cache", + "--no-watch" ], "cwd": "${workspaceRoot}", "protocol": "inspector", diff --git a/docusaurus/docs/getting-started.md b/docusaurus/docs/getting-started.md index a77beb5c1b0..6945b4e6f08 100644 --- a/docusaurus/docs/getting-started.md +++ b/docusaurus/docs/getting-started.md @@ -18,7 +18,7 @@ npm start _([npx](https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b) comes with npm 5.2+ and higher, see [instructions for older npm versions](https://gist.github.com/gaearon/4064d3c23a77c74a3614c498a8bb1c5f))_ -Then open [http://localhost:3000/](http://localhost:3000/) to see your app. +Then open [http://localhost:3000/](http://localhost:3000/) to see your app. When you’re ready to deploy to production, create a minified bundle with `npm run build`. diff --git a/docusaurus/docs/running-tests.md b/docusaurus/docs/running-tests.md index 6daaffb73aa..851e0c3a581 100644 --- a/docusaurus/docs/running-tests.md +++ b/docusaurus/docs/running-tests.md @@ -29,12 +29,14 @@ We recommend to put the test files (or `__tests__` folders) next to the code the ## Command Line Interface -When you run `npm test`, Jest will launch in the watch mode. Every time you save a file, it will re-run the tests, just like `npm start` recompiles the code. +When you run `npm test`, Jest will launch in watch mode\*. Every time you save a file, it will re-run the tests, just like `npm start` recompiles the code. The watcher includes an interactive command-line interface with the ability to run all tests, or focus on a search pattern. It is designed this way so that you can keep it open and enjoy fast re-runs. You can learn the commands from the “Watch Usage” note that the watcher prints after every run: ![Jest watch mode](https://jestjs.io/img/blog/15-watch.gif) +> \*Although we recommend running your tests in watch mode during development, you can disable this behavior by passing in the `--no-watch` flag. In most CI environments, this is handled for you (see [On CI servers](#on-ci-servers)). + ## Version Control Integration By default, when you run `npm test`, Jest will only run the tests related to files changed since the last commit. This is an optimization designed to make your tests run fast regardless of how many tests you have. However it assumes that you don’t often commit the code that doesn’t pass the tests. @@ -372,9 +374,9 @@ CI=true npm test CI=true npm run build ``` -The test command will force Jest to run tests once instead of launching the watcher. +The test command will force Jest to run in CI-mode, and tests will only run once instead of launching the watcher. -> If you find yourself doing this often in development, please [file an issue](https://github.com/facebook/create-react-app/issues/new) to tell us about your use case because we want to make watcher the best experience and are open to changing how it works to accommodate more workflows. +For non-CI environments, you can simply pass the `--no-watch` flag to disable test-watching. The build command will check for linter warnings and fail if any are found. From bacb4407488a7730da9d9d8eb22b58b5739a14fb Mon Sep 17 00:00:00 2001 From: Charles Pritchard Date: Mon, 4 Feb 2019 23:38:52 -0800 Subject: [PATCH 0528/1249] Add empty mock for dns (#6292) --- packages/react-scripts/config/webpack.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index 25cc88ae716..942c22a2cc7 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -646,6 +646,7 @@ module.exports = function(webpackEnv) { node: { module: 'empty', dgram: 'empty', + dns: 'mock', fs: 'empty', net: 'empty', tls: 'empty', From 1648ce8106916a3ed9cff5b3e46e9c55621f24c0 Mon Sep 17 00:00:00 2001 From: gottfired Date: Tue, 5 Feb 2019 08:45:57 +0100 Subject: [PATCH 0529/1249] Fix order of args in tasks/cra test (#6342) --- tasks/cra.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/cra.js b/tasks/cra.js index 82343b1563a..6d873a837ec 100644 --- a/tasks/cra.js +++ b/tasks/cra.js @@ -113,7 +113,7 @@ const args = process.argv.slice(2); // Now run the CRA command const craScriptPath = path.join(packagesDir, 'create-react-app', 'index.js'); cp.execSync( - `node ${craScriptPath} --scripts-version="${scriptsPath}" ${args.join(' ')}`, + `node ${craScriptPath} ${args.join(' ')} --scripts-version="${scriptsPath}"`, { cwd: rootDir, stdio: 'inherit', From aa25c77bbcdbd65186999273964722bd15bcd94b Mon Sep 17 00:00:00 2001 From: Nathan Schneider Date: Wed, 6 Feb 2019 02:56:36 -0500 Subject: [PATCH 0530/1249] Fix missing article in README (#6346) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 881ba7f4ad5..75aed91b989 100644 --- a/README.md +++ b/README.md @@ -163,7 +163,7 @@ Create React App is a great fit for: - **Starting new single-page React applications.** - **Creating examples** with React for your libraries and components. -Here are few common cases where you might want to try something else: +Here are a few common cases where you might want to try something else: - If you want to **try React** without hundreds of transitive build tool dependencies, consider [using a single HTML file or an online sandbox instead](https://reactjs.org/docs/try-react.html). From 1deb811c5d91ac6d337d2fd4e4f36c7d8c352ebd Mon Sep 17 00:00:00 2001 From: Chris Self Date: Wed, 6 Feb 2019 22:40:17 -0500 Subject: [PATCH 0531/1249] Make manifest.json description more generic (#6355) --- packages/react-scripts/template-typescript/public/index.html | 4 ++-- packages/react-scripts/template/public/index.html | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/react-scripts/template-typescript/public/index.html b/packages/react-scripts/template-typescript/public/index.html index 323182f3920..75980d58e22 100644 --- a/packages/react-scripts/template-typescript/public/index.html +++ b/packages/react-scripts/template-typescript/public/index.html @@ -9,8 +9,8 @@ /> + ```html
You are running this application in development mode. -
+
+ +
``` + + The above form is looking for a variable called `REACT_APP_NOT_SECRET_CODE` from the environment. In order to consume this value, we need to have it defined in the environment. This can be done using two ways: either in your shell or in a `.env` file. Both of these ways are described in the next few sections. Having access to the `NODE_ENV` is also useful for performing actions conditionally: From c54e36d810b9e80745dd0b21900bd3a68d18c120 Mon Sep 17 00:00:00 2001 From: ThePrez Date: Sat, 9 Mar 2019 13:58:03 -0600 Subject: [PATCH 0585/1249] Update webpack-dev-server to 3.2.1 (#6483) * Upgrade webpack-dev-server to 3.2.1 --- packages/react-scripts/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 257f2f7ea20..d33bd46a236 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -67,7 +67,7 @@ "terser-webpack-plugin": "1.2.2", "url-loader": "1.1.2", "webpack": "4.28.3", - "webpack-dev-server": "3.1.14", + "webpack-dev-server": "3.2.1", "webpack-manifest-plugin": "2.0.4", "workbox-webpack-plugin": "3.6.3" }, From bac02873ebbef14977a62a6f096ba03d9d01cf56 Mon Sep 17 00:00:00 2001 From: John Reilly Date: Sun, 10 Mar 2019 16:31:30 +0000 Subject: [PATCH 0586/1249] Enable click to go to error in console for TypeScript (#6502) * reattempt changes * formatter fixes * fix missing colon in path * revert path tweaking amends as per discussion with @ianschmitz --- packages/react-dev-utils/README.md | 2 +- .../react-dev-utils/formatWebpackMessages.js | 2 +- .../react-dev-utils/typescriptFormatter.js | 69 +++++++++---------- 3 files changed, 35 insertions(+), 38 deletions(-) diff --git a/packages/react-dev-utils/README.md b/packages/react-dev-utils/README.md index 9d43182d05e..d89dc95f667 100644 --- a/packages/react-dev-utils/README.md +++ b/packages/react-dev-utils/README.md @@ -332,7 +332,7 @@ Creates a Webpack compiler instance for WebpackDevServer with built-in helpful m The `args` object accepts a number of properties: - **appName** `string`: The name that will be printed to the terminal. -- **config** `Object`: The webpack configuration options to be provided to the webpack constructor. +- **config** `Object`: The webpack configuration options to be provided to the webpack constructor. - **devSocket** `Object`: Required if `useTypeScript` is `true`. This object should include `errors` and `warnings` which are functions accepting an array of errors or warnings emitted by the type checking. This is useful when running `fork-ts-checker-webpack-plugin` with `async: true` to report errors that are emitted after the webpack build is complete. - **urls** `Object`: To provide the `urls` argument, use `prepareUrls()` described below. - **useYarn** `boolean`: If `true`, yarn instructions will be emitted in the terminal instead of npm. diff --git a/packages/react-dev-utils/formatWebpackMessages.js b/packages/react-dev-utils/formatWebpackMessages.js index 4b0f44acb74..799c92be2c4 100644 --- a/packages/react-dev-utils/formatWebpackMessages.js +++ b/packages/react-dev-utils/formatWebpackMessages.js @@ -16,7 +16,7 @@ function isLikelyASyntaxError(message) { // Cleans up webpack error messages. // eslint-disable-next-line no-unused-vars -function formatMessage(message, isError) { +function formatMessage(message) { let lines = message.split('\n'); // Strip Webpack-added headers off errors/warnings diff --git a/packages/react-dev-utils/typescriptFormatter.js b/packages/react-dev-utils/typescriptFormatter.js index 3a33b37a427..dc2f85d2e3e 100644 --- a/packages/react-dev-utils/typescriptFormatter.js +++ b/packages/react-dev-utils/typescriptFormatter.js @@ -12,48 +12,45 @@ const codeFrame = require('@babel/code-frame').codeFrameColumns; const chalk = require('chalk'); const fs = require('fs'); +const types = { diagnostic: 'TypeScript', lint: 'TSLint' }; + function formatter(message, useColors) { - const hasGetters = typeof message.getFile === 'function'; + const { type, severity, file, line, content, code, character } = + typeof message.getFile === 'function' + ? { + type: message.getType(), + severity: message.getSeverity(), + file: message.getFile(), + line: message.getLine(), + content: message.getContent(), + code: message.getCode(), + character: message.getCharacter(), + } + : message; + const colors = new chalk.constructor({ enabled: useColors }); const messageColor = message.isWarningSeverity() ? colors.yellow : colors.red; - - let source; - - if (hasGetters) { - source = - message.getFile() && - fs.existsSync(message.getFile()) && - fs.readFileSync(message.getFile(), 'utf-8'); - } else { - source = - message.file && - fs.existsSync(message.file) && - fs.readFileSync(message.file, 'utf-8'); - } - - let frame = ''; - - if (source) { - frame = codeFrame( - source, - { start: { line: message.line, column: message.character } }, - { highlightCode: useColors } - ) - .split('\n') - .map(str => ' ' + str) - .join(os.EOL); - } - - const severity = hasGetters ? message.getSeverity() : message.severity; - const types = { diagnostic: 'TypeScript', lint: 'TSLint' }; + const fileAndNumberColor = colors.bold.cyan; + + const source = file && fs.existsSync(file) && fs.readFileSync(file, 'utf-8'); + const frame = source + ? codeFrame( + source, + { start: { line: line, column: character } }, + { highlightCode: useColors } + ) + .split('\n') + .map(str => ' ' + str) + .join(os.EOL) + : ''; return [ - messageColor.bold(`${types[message.type]} ${severity.toLowerCase()}: `) + - (hasGetters ? message.getContent() : message.content) + + messageColor.bold(`${types[type]} ${severity.toLowerCase()} in `) + + fileAndNumberColor(`${file}(${line},${character})`) + + messageColor(':'), + content + ' ' + - messageColor.underline( - (message.type === 'lint' ? 'Rule: ' : 'TS') + message.code - ), + messageColor.underline((type === 'lint' ? 'Rule: ' : 'TS') + code), '', frame, ].join(os.EOL); From 2591590194ce9a5808a32864e5059df7ac1e96d6 Mon Sep 17 00:00:00 2001 From: Aftab Khan Date: Mon, 11 Mar 2019 00:52:19 +0530 Subject: [PATCH 0587/1249] Update html-webpack-plugin (#6361) --- packages/react-scripts/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index d33bd46a236..7ab92a86661 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -46,7 +46,7 @@ "eslint-plugin-react": "7.12.4", "file-loader": "2.0.0", "fs-extra": "7.0.1", - "html-webpack-plugin": "4.0.0-alpha.2", + "html-webpack-plugin": "4.0.0-beta.5", "identity-obj-proxy": "3.0.0", "jest": "23.6.0", "jest-pnp-resolver": "1.0.2", From ed86da9ed37f2f99fca0a7687e84569eea562d12 Mon Sep 17 00:00:00 2001 From: Mike Beaton Date: Mon, 11 Mar 2019 15:47:16 +0000 Subject: [PATCH 0588/1249] Convert JSON.stringify \n to os.EOL when writing tsconfig.json (#6610) --- packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js b/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js index fa4b5c8716e..cb1e10ef47e 100644 --- a/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js +++ b/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js @@ -18,7 +18,7 @@ const immer = require('react-dev-utils/immer').produce; const globby = require('react-dev-utils/globby').sync; function writeJson(fileName, object) { - fs.writeFileSync(fileName, JSON.stringify(object, null, 2) + os.EOL); + fs.writeFileSync(fileName, JSON.stringify(object, null, 2).replace(/\n/g, os.EOL) + os.EOL); } function verifyNoTypeScript() { From e4fdac2418dbd1b3d51c8f0fecb474caa001f649 Mon Sep 17 00:00:00 2001 From: ZHAO Jinxiang Date: Tue, 12 Mar 2019 00:05:21 +0800 Subject: [PATCH 0589/1249] Change class components to functional components in templates (#6451) * change class component to function component * Update packages/react-scripts/template/src/App.js Co-Authored-By: xiaoxiangmoe * Update packages/react-scripts/template-typescript/src/App.tsx Co-Authored-By: xiaoxiangmoe --- .../template-typescript/src/App.tsx | 42 +++++++++---------- packages/react-scripts/template/src/App.js | 42 +++++++++---------- 2 files changed, 40 insertions(+), 44 deletions(-) diff --git a/packages/react-scripts/template-typescript/src/App.tsx b/packages/react-scripts/template-typescript/src/App.tsx index ff5a4a660ee..fd339698e56 100644 --- a/packages/react-scripts/template-typescript/src/App.tsx +++ b/packages/react-scripts/template-typescript/src/App.tsx @@ -1,28 +1,26 @@ -import React, { Component } from 'react'; +import * as React from 'react'; import logo from './logo.svg'; import './App.css'; -class App extends Component { - render() { - return ( -
- ); - } +const App: React.FC = () => { + return ( +
+
+ logo +

+ Edit src/App.tsx and save to reload. +

+ + Learn React + +
+
+ ); } export default App; diff --git a/packages/react-scripts/template/src/App.js b/packages/react-scripts/template/src/App.js index 7e261ca47e6..2b85f25b0fe 100644 --- a/packages/react-scripts/template/src/App.js +++ b/packages/react-scripts/template/src/App.js @@ -1,28 +1,26 @@ -import React, { Component } from 'react'; +import React from 'react'; import logo from './logo.svg'; import './App.css'; -class App extends Component { - render() { - return ( -
-
- logo -

- Edit src/App.js and save to reload. -

- - Learn React - -
-
- ); - } +const App = () => { + return ( +
+
+ logo +

+ Edit src/App.js and save to reload. +

+ + Learn React + +
+
+ ); } export default App; From 1a04b96795eb7cab166be6add36146504a216c1e Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Mon, 11 Mar 2019 09:20:00 -0700 Subject: [PATCH 0590/1249] Type check JSON files (#6615) --- packages/react-scripts/config/webpack.config.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index f6c0e7a237a..9a496ad4535 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -623,7 +623,6 @@ module.exports = function(webpackEnv) { tsconfig: paths.appTsConfig, reportFiles: [ '**', - '!**/*.json', '!**/__tests__/**', '!**/?(*.)(spec|test).*', '!**/src/setupProxy.*', From 5b77280dad0ebedb71b89d904a8dbba52baee120 Mon Sep 17 00:00:00 2001 From: Jannis Hell Date: Mon, 11 Mar 2019 20:42:20 +0100 Subject: [PATCH 0591/1249] Make compiler variable const instead of let (#6621) compiler is not being reassigned, so we can use a const here --- packages/react-scripts/scripts/build.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/scripts/build.js b/packages/react-scripts/scripts/build.js index 8cd1ad77ee5..1803e260af2 100644 --- a/packages/react-scripts/scripts/build.js +++ b/packages/react-scripts/scripts/build.js @@ -143,7 +143,7 @@ checkBrowsers(paths.appPath, isInteractive) function build(previousFileSizes) { console.log('Creating an optimized production build...'); - let compiler = webpack(config); + const compiler = webpack(config); return new Promise((resolve, reject) => { compiler.run((err, stats) => { let messages; From 3c9c21a2858a3397cceca51b3a299878b29c5c7b Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Mon, 11 Mar 2019 19:45:14 -0700 Subject: [PATCH 0592/1249] Upgrade dependencies (#6614) * Upgrade dependencies * Upgrade a couple missed deps * Run Prettier over codebase --- package.json | 22 +++++++------- packages/babel-preset-react-app/package.json | 18 +++++------ packages/create-react-app/createReactApp.js | 1 - packages/create-react-app/package.json | 14 ++++----- packages/react-app-polyfill/package.json | 2 +- packages/react-dev-utils/package.json | 6 ++-- packages/react-error-overlay/package.json | 26 ++++++++-------- packages/react-scripts/package.json | 30 +++++++++---------- .../scripts/utils/verifyTypeScriptSetup.js | 5 +++- test/fixtures/__shared__/util/scripts.js | 4 +-- 10 files changed, 65 insertions(+), 63 deletions(-) diff --git a/package.json b/package.json index fdea26c2b93..54921946a11 100644 --- a/package.json +++ b/package.json @@ -19,24 +19,24 @@ "compile:lockfile": "node tasks/compile-lockfile.js" }, "devDependencies": { - "eslint": "5.12.0", + "eslint": "5.15.1", "execa": "1.0.0", - "fs-extra": "^7.0.0", - "get-port": "^4.0.0", - "globby": "^8.0.1", - "husky": "1.0.0-rc.15", + "fs-extra": "^7.0.1", + "get-port": "^4.2.0", + "globby": "^9.1.0", + "husky": "^1.3.1", "jest": "^23.6.0", "lerna": "2.9.1", - "lerna-changelog": "^0.7.0", + "lerna-changelog": "~0.8.2", "lint-staged": "^8.0.4", "meow": "^5.0.0", - "multimatch": "^2.1.0", - "prettier": "1.15.2", - "puppeteer": "^1.8.0", - "strip-ansi": "^4.0.0", + "multimatch": "^3.0.0", + "prettier": "1.16.4", + "puppeteer": "^1.13.0", + "strip-ansi": "^5.1.0", "svg-term-cli": "^2.1.1", "tempy": "^0.2.1", - "wait-for-localhost": "2.0.1" + "wait-for-localhost": "^3.1.0" }, "husky": { "hooks": { diff --git a/packages/babel-preset-react-app/package.json b/packages/babel-preset-react-app/package.json index d1bcefdd872..90c8a7714e5 100644 --- a/packages/babel-preset-react-app/package.json +++ b/packages/babel-preset-react-app/package.json @@ -17,21 +17,21 @@ "test.js" ], "dependencies": { - "@babel/core": "7.2.2", - "@babel/plugin-proposal-class-properties": "7.3.0", + "@babel/core": "7.3.4", + "@babel/plugin-proposal-class-properties": "7.3.4", "@babel/plugin-proposal-decorators": "7.3.0", - "@babel/plugin-proposal-object-rest-spread": "7.3.2", + "@babel/plugin-proposal-object-rest-spread": "7.3.4", "@babel/plugin-syntax-dynamic-import": "7.2.0", - "@babel/plugin-transform-classes": "7.2.2", + "@babel/plugin-transform-classes": "7.3.4", "@babel/plugin-transform-destructuring": "7.3.2", - "@babel/plugin-transform-flow-strip-types": "7.2.3", + "@babel/plugin-transform-flow-strip-types": "7.3.4", "@babel/plugin-transform-react-constant-elements": "7.2.0", "@babel/plugin-transform-react-display-name": "7.2.0", - "@babel/plugin-transform-runtime": "7.2.0", - "@babel/preset-env": "7.3.1", + "@babel/plugin-transform-runtime": "7.3.4", + "@babel/preset-env": "7.3.4", "@babel/preset-react": "7.0.0", - "@babel/preset-typescript": "7.1.0", - "@babel/runtime": "7.3.1", + "@babel/preset-typescript": "7.3.3", + "@babel/runtime": "7.3.4", "babel-loader": "8.0.5", "babel-plugin-dynamic-import-node": "2.2.0", "babel-plugin-macros": "2.5.0", diff --git a/packages/create-react-app/createReactApp.js b/packages/create-react-app/createReactApp.js index 51dac9010f8..9ea51a87f5c 100755 --- a/packages/create-react-app/createReactApp.js +++ b/packages/create-react-app/createReactApp.js @@ -135,7 +135,6 @@ if (program.info) { npmGlobalPackages: ['create-react-app'], }, { - clipboard: false, duplicates: true, showNotFound: true, } diff --git a/packages/create-react-app/package.json b/packages/create-react-app/package.json index be4f29c6933..9e6f69ae508 100644 --- a/packages/create-react-app/package.json +++ b/packages/create-react-app/package.json @@ -8,7 +8,7 @@ "repository": "facebook/create-react-app", "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" }, "bugs": { "url": "https://github.com/facebook/create-react-app/issues" @@ -22,13 +22,13 @@ "create-react-app": "./index.js" }, "dependencies": { - "chalk": "1.1.3", - "commander": "2.18.0", - "cross-spawn": "4.0.2", - "envinfo": "5.11.1", - "fs-extra": "5.0.0", + "chalk": "2.4.2", + "commander": "2.19.0", + "cross-spawn": "6.0.5", + "envinfo": "7.1.0", + "fs-extra": "7.0.1", "hyperquest": "2.1.3", - "semver": "5.5.1", + "semver": "5.6.0", "tar-pack": "3.4.1", "tmp": "0.0.33", "validate-npm-package-name": "3.0.0" diff --git a/packages/react-app-polyfill/package.json b/packages/react-app-polyfill/package.json index 079d91250ce..b9b55d3a1e0 100644 --- a/packages/react-app-polyfill/package.json +++ b/packages/react-app-polyfill/package.json @@ -16,7 +16,7 @@ "jsdom.js" ], "dependencies": { - "core-js": "2.6.4", + "core-js": "2.6.5", "object-assign": "4.1.1", "promise": "8.0.2", "raf": "3.4.1", diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index 281b2492c6c..cd07fb1dcfb 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -48,7 +48,7 @@ "dependencies": { "@babel/code-frame": "7.0.0", "address": "1.0.3", - "browserslist": "4.4.1", + "browserslist": "4.4.2", "chalk": "2.4.2", "cross-spawn": "6.0.5", "detect-port-alt": "1.1.6", @@ -60,7 +60,7 @@ "globby": "8.0.2", "gzip-size": "5.0.0", "immer": "1.10.0", - "inquirer": "6.2.1", + "inquirer": "6.2.2", "is-root": "2.0.0", "loader-utils": "1.2.3", "opn": "5.4.0", @@ -69,7 +69,7 @@ "recursive-readdir": "2.2.2", "shell-quote": "1.6.1", "sockjs-client": "1.3.0", - "strip-ansi": "5.0.0", + "strip-ansi": "5.1.0", "text-table": "0.2.0" }, "devDependencies": { diff --git a/packages/react-error-overlay/package.json b/packages/react-error-overlay/package.json index 7c890301ae9..c855e7909aa 100644 --- a/packages/react-error-overlay/package.json +++ b/packages/react-error-overlay/package.json @@ -31,37 +31,37 @@ ], "devDependencies": { "@babel/code-frame": "7.0.0", - "@babel/core": "7.2.2", + "@babel/core": "7.3.4", "anser": "1.4.8", "babel-core": "7.0.0-bridge.0", - "babel-eslint": "9.0.0", + "babel-eslint": "10.0.1", "babel-jest": "23.6.0", "babel-loader": "8.0.5", "babel-preset-react-app": "^7.0.2", "chalk": "^2.4.2", - "chokidar": "^2.0.2", + "chokidar": "^2.1.2", "cross-env": "5.2.0", - "eslint": "5.12.0", + "eslint": "5.15.1", "eslint-config-react-app": "^3.0.8", "eslint-plugin-flowtype": "2.50.1", - "eslint-plugin-import": "2.14.0", - "eslint-plugin-jsx-a11y": "6.1.2", - "eslint-plugin-react": "7.12.3", + "eslint-plugin-import": "2.16.0", + "eslint-plugin-jsx-a11y": "6.2.1", + "eslint-plugin-react": "7.12.4", "flow-bin": "^0.63.1", "html-entities": "1.2.1", "jest": "23.6.0", "jest-fetch-mock": "1.6.6", "object-assign": "4.1.1", "promise": "8.0.2", - "raw-loader": "^0.5.1", - "react": "^16.3.2", + "raw-loader": "^1.0.0", + "react": "^16.8.4", "react-app-polyfill": "^0.2.2", - "react-dom": "^16.3.2", - "rimraf": "^2.6.2", + "react-dom": "^16.8.4", + "rimraf": "^2.6.3", "settle-promise": "1.0.0", "source-map": "0.5.6", - "terser-webpack-plugin": "1.2.1", - "webpack": "^4.8.1" + "terser-webpack-plugin": "1.2.3", + "webpack": "^4.29.6" }, "jest": { "setupFiles": [ diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 7ab92a86661..a5aaccf0b3d 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -24,27 +24,27 @@ }, "types": "./lib/react-app.d.ts", "dependencies": { - "@babel/core": "7.2.2", + "@babel/core": "7.3.4", "@svgr/webpack": "4.1.0", "babel-core": "7.0.0-bridge.0", - "babel-eslint": "9.0.0", + "babel-eslint": "10.0.1", "babel-jest": "23.6.0", "babel-loader": "8.0.5", "babel-plugin-named-asset-import": "^0.3.1", "babel-preset-react-app": "^7.0.2", "bfj": "6.1.1", "case-sensitive-paths-webpack-plugin": "2.2.0", - "css-loader": "1.0.0", - "dotenv": "6.0.0", + "css-loader": "2.1.1", + "dotenv": "6.2.0", "dotenv-expand": "4.2.0", - "eslint": "5.12.0", + "eslint": "5.15.1", "eslint-config-react-app": "^3.0.8", - "eslint-loader": "2.1.1", + "eslint-loader": "2.1.2", "eslint-plugin-flowtype": "2.50.1", - "eslint-plugin-import": "2.14.0", - "eslint-plugin-jsx-a11y": "6.1.2", + "eslint-plugin-import": "2.16.0", + "eslint-plugin-jsx-a11y": "6.2.1", "eslint-plugin-react": "7.12.4", - "file-loader": "2.0.0", + "file-loader": "3.0.1", "fs-extra": "7.0.1", "html-webpack-plugin": "4.0.0-beta.5", "identity-obj-proxy": "3.0.0", @@ -57,26 +57,26 @@ "pnp-webpack-plugin": "1.2.1", "postcss-flexbugs-fixes": "4.1.0", "postcss-loader": "3.0.0", - "postcss-preset-env": "6.5.0", + "postcss-preset-env": "6.6.0", "postcss-safe-parser": "4.0.1", "react-app-polyfill": "^0.2.2", "react-dev-utils": "^8.0.0", "resolve": "1.10.0", "sass-loader": "7.1.0", "style-loader": "0.23.1", - "terser-webpack-plugin": "1.2.2", + "terser-webpack-plugin": "1.2.3", "url-loader": "1.1.2", - "webpack": "4.28.3", + "webpack": "4.29.6", "webpack-dev-server": "3.2.1", "webpack-manifest-plugin": "2.0.4", "workbox-webpack-plugin": "3.6.3" }, "devDependencies": { - "react": "^16.3.2", - "react-dom": "^16.3.2" + "react": "^16.8.4", + "react-dom": "^16.8.4" }, "optionalDependencies": { - "fsevents": "1.2.4" + "fsevents": "1.2.7" }, "browserslist": [ ">0.2%", diff --git a/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js b/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js index cb1e10ef47e..5fcc38f8ad2 100644 --- a/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js +++ b/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js @@ -22,7 +22,10 @@ function writeJson(fileName, object) { } function verifyNoTypeScript() { - const typescriptFiles = globby(['**/*.(ts|tsx)', '!**/node_modules', '!**/*.d.ts'], { cwd: paths.appSrc }); + const typescriptFiles = globby( + ['**/*.(ts|tsx)', '!**/node_modules', '!**/*.d.ts'], + { cwd: paths.appSrc } + ); if (typescriptFiles.length > 0) { console.warn( chalk.yellow( diff --git a/test/fixtures/__shared__/util/scripts.js b/test/fixtures/__shared__/util/scripts.js index 0965c654037..b1ee60e7be8 100644 --- a/test/fixtures/__shared__/util/scripts.js +++ b/test/fixtures/__shared__/util/scripts.js @@ -66,7 +66,7 @@ module.exports = class ReactScripts { return await execaSafe('yarnpkg', ['start', '--smoke-test'], options); } const startProcess = execa('yarnpkg', ['start'], options); - await waitForLocalhost(port); + await waitForLocalhost({ port }); return { port, done() { @@ -91,7 +91,7 @@ module.exports = class ReactScripts { cwd: this.root, } ); - await waitForLocalhost(port); + await waitForLocalhost({ port }); return { port, done() { From dc133a351f16c2e2e7991416a9ebdaab3c2b6ec1 Mon Sep 17 00:00:00 2001 From: Salvador Hernandez Date: Tue, 12 Mar 2019 00:06:37 -0400 Subject: [PATCH 0593/1249] Stage files for commit after ejecting (#5960) * add command to add files to staging after eject * update console.log message * wrap git add in a try/catch block * return true & update log message * add test to check if files were staged * Fix check for staged files --- packages/react-scripts/scripts/eject.js | 21 +++++++++++++++++++++ tasks/e2e-simple.sh | 3 +++ 2 files changed, 24 insertions(+) diff --git a/packages/react-scripts/scripts/eject.js b/packages/react-scripts/scripts/eject.js index a151bbd6e35..9a26232ed72 100644 --- a/packages/react-scripts/scripts/eject.js +++ b/packages/react-scripts/scripts/eject.js @@ -38,6 +38,22 @@ function getGitStatus() { } } +function tryGitAdd(appPath) { + try { + spawnSync( + 'git', + ['add', path.join(appPath, 'config'), path.join(appPath, 'scripts')], + { + stdio: 'inherit', + } + ); + + return true; + } catch (e) { + return false; + } +} + console.log( chalk.cyan.bold( 'NOTE: Create React App 2 supports TypeScript, Sass, CSS Modules and more without ejecting: ' + @@ -310,6 +326,11 @@ inquirer console.log(green('Ejected successfully!')); console.log(); + if (tryGitAdd(appPath)) { + console.log(cyan('Staged ejected files for commit.')); + console.log(); + } + console.log( green('Please consider sharing why you ejected in this survey:') ); diff --git a/tasks/e2e-simple.sh b/tasks/e2e-simple.sh index c2fc89530a1..15564584d49 100755 --- a/tasks/e2e-simple.sh +++ b/tasks/e2e-simple.sh @@ -269,6 +269,9 @@ verify_module_scope # Eject... echo yes | npm run eject +# Test ejected files were staged +test -n "$(git diff --staged --name-only)" + # Test the build yarn build # Check for expected output From b60f56fca753b84a9e8c931f12bc6d04b36604d3 Mon Sep 17 00:00:00 2001 From: ZHAO Jinxiang Date: Tue, 12 Mar 2019 22:34:12 +0800 Subject: [PATCH 0594/1249] change named import into default import (#6625) --- packages/react-scripts/template-typescript/src/App.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/template-typescript/src/App.tsx b/packages/react-scripts/template-typescript/src/App.tsx index fd339698e56..226ee6316af 100644 --- a/packages/react-scripts/template-typescript/src/App.tsx +++ b/packages/react-scripts/template-typescript/src/App.tsx @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import logo from './logo.svg'; import './App.css'; From a500ede7555fe628388d706b81c686c640e1bf49 Mon Sep 17 00:00:00 2001 From: Taylor Briggs Date: Tue, 12 Mar 2019 22:45:57 -0400 Subject: [PATCH 0595/1249] Add note about npx caching (#6374) * Add note about npx caching and link to #6119 It is necessary to uninstall any version that was previously installed for the typescript flag to work when using npx. * Use proper casing for TypeScript Co-Authored-By: TaylorBriggs --- docusaurus/docs/adding-typescript.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docusaurus/docs/adding-typescript.md b/docusaurus/docs/adding-typescript.md index 70bc4d20820..25380216431 100644 --- a/docusaurus/docs/adding-typescript.md +++ b/docusaurus/docs/adding-typescript.md @@ -33,6 +33,9 @@ Type errors will show up in the same console as the build one. To learn more about TypeScript, check out [its documentation](https://www.typescriptlang.org/). +> **Note:** If your project is not created with TypeScript enabled, npx may be using a cached version of `create-react-app`. +> Remove previously installed versions with `npm uninstall -g create-react-app` (see [#6119](https://github.com/facebook/create-react-app/issues/6119#issuecomment-451614035)). + > **Note:** You are not required to make a [`tsconfig.json` file](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html), one will be made for you. > You are allowed to edit the generated TypeScript configuration. From 88d6f029bd1204334b324b023c19ed9c71fb2362 Mon Sep 17 00:00:00 2001 From: Kelvin Jin Date: Wed, 13 Mar 2019 18:50:19 -0700 Subject: [PATCH 0596/1249] Add empty mock for http2 (#5686) --- packages/react-scripts/config/webpack.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index 9a496ad4535..ac7b5333711 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -641,6 +641,7 @@ module.exports = function(webpackEnv) { dgram: 'empty', dns: 'mock', fs: 'empty', + http2: 'empty', net: 'empty', tls: 'empty', child_process: 'empty', From f4f20a20d095c7ea97191292e9d17753ff24596a Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Thu, 14 Mar 2019 12:16:09 -0700 Subject: [PATCH 0597/1249] Support browserslist in @babel/preset-env (#6608) * Add browserslist support to @babel/preset-env * Support @babel/polyfill in entry point --- .../docs/supported-browsers-features.md | 33 ++++++++++++++++++- packages/babel-preset-react-app/create.js | 13 ++------ packages/react-dev-utils/browsersHelper.js | 14 ++++---- packages/react-scripts/package.json | 18 ++++++---- 4 files changed, 54 insertions(+), 24 deletions(-) diff --git a/docusaurus/docs/supported-browsers-features.md b/docusaurus/docs/supported-browsers-features.md index a8e0875c355..d2add48197a 100644 --- a/docusaurus/docs/supported-browsers-features.md +++ b/docusaurus/docs/supported-browsers-features.md @@ -6,7 +6,7 @@ sidebar_label: Supported Browsers and Features ## Supported Browsers -By default, the generated project supports all modern browsers. Support for Internet Explorer 9, 10, and 11 requires [polyfills](https://github.com/facebook/create-react-app/blob/master/packages/react-app-polyfill/README.md). +By default, the generated project supports all modern browsers. Support for Internet Explorer 9, 10, and 11 requires polyfills. For a minimum set of polyfills to support older browsers, use [react-app-polyfill](https://github.com/facebook/create-react-app/blob/master/packages/react-app-polyfill/README.md). To polyfill other language features, see the [Adding Polyfills](#adding-polyfills) section below ## Supported Language Features @@ -26,3 +26,34 @@ While we recommend using experimental proposals with some caution, Facebook heav Note that **this project includes no [polyfills](https://github.com/facebook/create-react-app/blob/master/packages/react-app-polyfill/README.md)** by default. If you use any other ES6+ features that need **runtime support** (such as `Array.from()` or `Symbol`), make sure you are [including the appropriate polyfills manually](https://github.com/facebook/create-react-app/blob/master/packages/react-app-polyfill/README.md), or that the browsers you are targeting already support them. + +## Adding Polyfills + +You can install [`@babel/polyfill`](https://babeljs.io/docs/en/babel-polyfill) as a dependency in your application, and import it at the very top of your app's entry point (`src/index.js` or `src/index.tsx`) to emulate a full ES2015+ environment. Your `browerslist` configuration will be used to only include the polyfills necessary by your target browsers. + +## Configuring Supported Browsers + +By default, the generated project includes a [`browerslist`](https://github.com/browserslist/browserslist) configuration in your `package.json` file to target a broad range of browsers based on global usage (`> 0.2%`) for production builds, and modern browsers for development. This gives a good development experience, especially when using language features such as async/await, but still provides high compatibility with many browsers in production. + +The `browserslist` configuration controls the outputted JavaScript so that the emitted code will be compatible with the browsers specified. The `production` list will be used when creating a production build by running the `build` script, and the `development` list will be used when running the `start` script. You can use [https://browserl.ist](https://browserl.ist/?q=%3E+0.2%25%2C+not+dead%2C+not+op_mini+all) to see the browsers supported by your configured `browserslist`. + +Here is an example `browserslist` that is specified in `package.json`: + +```json +"browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] +} +``` + +> Note that this does not include polyfills automatically for you. You will still need to polyfill language features (see above) as needed based on the browsers your are supporting. + +> When editing the `browerslist` config, you may notice that your changes don't get picked up right away. This is due to an [issue in babel-loader](https://github.com/babel/babel-loader/issues/690) not detecting the change in your `package.json`. An easy solution is to delete the `node_modules/.cache` folder and try again. diff --git a/packages/babel-preset-react-app/create.js b/packages/babel-preset-react-app/create.js index a0423f2551c..9bc702d7eec 100644 --- a/packages/babel-preset-react-app/create.js +++ b/packages/babel-preset-react-app/create.js @@ -79,17 +79,8 @@ module.exports = function(api, opts, env) { // Latest stable ECMAScript features require('@babel/preset-env').default, { - // We want Create React App to be IE 9 compatible until React itself - // no longer works with IE 9 - targets: { - ie: 9, - }, - // Users cannot override this behavior because this Babel - // configuration is highly tuned for ES5 support - ignoreBrowserslistConfig: true, - // If users import all core-js they're probably not concerned with - // bundle size. We shouldn't rely on magic to try and shrink it. - useBuiltIns: false, + // Allow importing @babel/polyfill in entrypoint and use browserlist to select polyfills + useBuiltIns: 'entry', // Do not transform modules to CJS modules: false, // Exclude transforms that make all code slower diff --git a/packages/react-dev-utils/browsersHelper.js b/packages/react-dev-utils/browsersHelper.js index b32879944ab..a52ed342736 100644 --- a/packages/react-dev-utils/browsersHelper.js +++ b/packages/react-dev-utils/browsersHelper.js @@ -13,12 +13,14 @@ const inquirer = require('inquirer'); const pkgUp = require('pkg-up'); const fs = require('fs'); -const defaultBrowsers = [ - '>0.2%', - 'not dead', - 'not ie <= 11', - 'not op_mini all', -]; +const defaultBrowsers = { + production: ['>0.2%', 'not dead', 'not op_mini all'], + development: [ + 'last 1 chrome version', + 'last 1 firefox version', + 'last 1 safari version', + ], +}; function shouldSetBrowsers(isInteractive) { if (!isInteractive) { diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index a5aaccf0b3d..5a6bb215817 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -78,10 +78,16 @@ "optionalDependencies": { "fsevents": "1.2.7" }, - "browserslist": [ - ">0.2%", - "not dead", - "not ie <= 11", - "not op_mini all" - ] + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } } From 7ae3146037076f0d18cc435af8d9a0184d0af4e1 Mon Sep 17 00:00:00 2001 From: Eivind Arvesen Date: Fri, 15 Mar 2019 03:36:30 +0100 Subject: [PATCH 0598/1249] Support React Hooks (#5602) (#5997) * Add Babel plug-in for Hooks; Add ESLint plug-in for Hooks (WIP) * Fix transform destructuring loose config * Add eslint-plugin-react-hooks to package.json * Fix package.json's * Fix eslint-plugin-react-hooks version * Fix package.json * Fix package.json * Add eslint-plugin-react-hooks to script package.json * Force array destructuring to work in loose mode only for known Hooks * Update based on feedback from PR * Add 'exhaustive-deps' lint rule * Bump eslint-plugin-react-hooks to stable version * Remove extraneous dependency from react-scripts --- packages/babel-preset-react-app/create.js | 21 ++++++++++++++++++- packages/eslint-config-react-app/README.md | 2 +- packages/eslint-config-react-app/index.js | 6 +++++- packages/eslint-config-react-app/package.json | 3 ++- packages/react-scripts/package.json | 1 + 5 files changed, 29 insertions(+), 4 deletions(-) diff --git a/packages/babel-preset-react-app/create.js b/packages/babel-preset-react-app/create.js index 9bc702d7eec..74514baa653 100644 --- a/packages/babel-preset-react-app/create.js +++ b/packages/babel-preset-react-app/create.js @@ -117,7 +117,26 @@ module.exports = function(api, opts, env) { // Necessary to include regardless of the environment because // in practice some other transforms (such as object-rest-spread) // don't work without it: https://github.com/babel/babel/issues/7215 - require('@babel/plugin-transform-destructuring').default, + [ + require('@babel/plugin-transform-destructuring').default, + { + // Use loose mode for performance: + // https://github.com/facebook/create-react-app/issues/5602 + loose: false, + selectiveLoose: [ + 'useState', + 'useEffect', + 'useContext', + 'useReducer', + 'useCallback', + 'useMemo', + 'useRef', + 'useImperativeHandle', + 'useLayoutEffect', + 'useDebugValue', + ], + }, + ], // Turn on legacy decorators for TypeScript files isTypeScriptEnabled && [ require('@babel/plugin-proposal-decorators').default, diff --git a/packages/eslint-config-react-app/README.md b/packages/eslint-config-react-app/README.md index e0c4cc3d1ef..7cf509d98d9 100644 --- a/packages/eslint-config-react-app/README.md +++ b/packages/eslint-config-react-app/README.md @@ -19,7 +19,7 @@ If you want to use this ESLint configuration in a project not built with Create First, install this package, ESLint and the necessary plugins. ```sh -npm install --save-dev eslint-config-react-app babel-eslint@9.x eslint@5.x eslint-plugin-flowtype@2.x eslint-plugin-import@2.x eslint-plugin-jsx-a11y@6.x eslint-plugin-react@7.x +npm install --save-dev eslint-config-react-app babel-eslint@9.x eslint@5.x eslint-plugin-flowtype@2.x eslint-plugin-import@2.x eslint-plugin-jsx-a11y@6.x eslint-plugin-react@7.x eslint-plugin-react-hooks@1.5.0 ``` Then create a file named `.eslintrc.json` with following contents in the root folder of your project: diff --git a/packages/eslint-config-react-app/index.js b/packages/eslint-config-react-app/index.js index f83ed06a104..f69e53aacd1 100644 --- a/packages/eslint-config-react-app/index.js +++ b/packages/eslint-config-react-app/index.js @@ -28,7 +28,7 @@ module.exports = { parser: 'babel-eslint', - plugins: ['import', 'flowtype', 'jsx-a11y', 'react'], + plugins: ['import', 'flowtype', 'jsx-a11y', 'react', 'react-hooks'], env: { browser: true, @@ -161,6 +161,7 @@ module.exports = { ], 'no-with': 'warn', 'no-whitespace-before-property': 'warn', + 'react-hooks/exhaustive-deps': 'warn', 'require-yield': 'warn', 'rest-spread-spacing': ['warn', 'never'], strict: ['warn', 'never'], @@ -241,6 +242,9 @@ module.exports = { 'jsx-a11y/role-supports-aria-props': 'warn', 'jsx-a11y/scope': 'warn', + // https://github.com/facebook/react/tree/master/packages/eslint-plugin-react-hooks + 'react-hooks/rules-of-hooks': 'error', + // https://github.com/gajus/eslint-plugin-flowtype 'flowtype/define-flow-type': 'warn', 'flowtype/require-valid-file-annotation': 'warn', diff --git a/packages/eslint-config-react-app/package.json b/packages/eslint-config-react-app/package.json index dbfa2bf4c96..0da1eb67790 100644 --- a/packages/eslint-config-react-app/package.json +++ b/packages/eslint-config-react-app/package.json @@ -16,7 +16,8 @@ "eslint-plugin-flowtype": "2.x", "eslint-plugin-import": "2.x", "eslint-plugin-jsx-a11y": "6.x", - "eslint-plugin-react": "7.x" + "eslint-plugin-react": "7.x", + "eslint-plugin-react-hooks": "1.5.0" }, "dependencies": { "confusing-browser-globals": "^1.0.6" diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 5a6bb215817..4e4512b1626 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -44,6 +44,7 @@ "eslint-plugin-import": "2.16.0", "eslint-plugin-jsx-a11y": "6.2.1", "eslint-plugin-react": "7.12.4", + "eslint-plugin-react-hooks": "1.5.0", "file-loader": "3.0.1", "fs-extra": "7.0.1", "html-webpack-plugin": "4.0.0-beta.5", From eee8491d57d67dd76f0806a7512eaba2ce9c36f0 Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Thu, 14 Mar 2019 20:17:17 -0700 Subject: [PATCH 0599/1249] Add TypeScript linting support (#6513) * Initial pass adding typescript-eslint * Add warning to shared rule set * Add documentation for setting up VSCode extension * Provide tsconfig path to typescript-eslitn --- docusaurus/docs/setting-up-your-editor.md | 13 +++++ packages/eslint-config-react-app/index.js | 51 ++++++++++++++++++- packages/eslint-config-react-app/package.json | 2 + .../react-scripts/config/webpack.config.js | 2 +- packages/react-scripts/package.json | 2 + 5 files changed, 68 insertions(+), 2 deletions(-) diff --git a/docusaurus/docs/setting-up-your-editor.md b/docusaurus/docs/setting-up-your-editor.md index d99dca818cf..869592d2915 100644 --- a/docusaurus/docs/setting-up-your-editor.md +++ b/docusaurus/docs/setting-up-your-editor.md @@ -28,6 +28,19 @@ You would need to install an ESLint plugin for your editor first. Then, add a fi } ``` +If you're using TypeScript and Visual Studio Code, the [ESLint Visual Studio Code extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint#overview) currently [doesn't have TypeScript support enabled by default](https://github.com/Microsoft/vscode-eslint/issues/609). To enable TypeScript support in the ESLint extension, add the following to your project's Visual Studio Code settings file, located at `.vscode/settings.json` (you can create this file if it doesn't already exist): + +```json +{ + "eslint.validate": [ + "javascript", + "javascriptreact", + { "language": "typescript", "autoFix": true }, + { "language": "typescriptreact", "autoFix": true } + ] +} +``` + Now your editor should report the linting warnings. Note that even if you edit your `.eslintrc.json` file further, these changes will **only affect the editor integration**. They won’t affect the terminal and in-browser lint output. This is because Create React App intentionally provides a minimal set of rules that find common mistakes. diff --git a/packages/eslint-config-react-app/index.js b/packages/eslint-config-react-app/index.js index f69e53aacd1..441b501843c 100644 --- a/packages/eslint-config-react-app/index.js +++ b/packages/eslint-config-react-app/index.js @@ -21,7 +21,17 @@ // This is dangerous as it hides accidentally undefined variables. // We blacklist the globals that we deem potentially confusing. // To use them, explicitly reference them, e.g. `window.name` or `window.status`. -var restrictedGlobals = require('confusing-browser-globals'); +const restrictedGlobals = require('confusing-browser-globals'); + +// The following is copied from `react-scripts/config/paths.js`. +const path = require('path'); +const fs = require('fs'); +// Make sure any symlinks in the project folder are resolved: +// https://github.com/facebook/create-react-app/issues/637 +const appDirectory = fs.realpathSync(process.cwd()); +const resolveApp = relativePath => path.resolve(appDirectory, relativePath); +const projectRootPath = resolveApp('.'); +const tsConfigPath = resolveApp('tsconfig.json'); module.exports = { root: true, @@ -52,6 +62,45 @@ module.exports = { }, }, + overrides: { + files: ['**/*.ts', '**/*.tsx'], + parser: '@typescript-eslint/parser', + parserOptions: { + ecmaVersion: 2018, + sourceType: 'module', + ecmaFeatures: { + jsx: true, + }, + + // typescript-eslint specific options + project: tsConfigPath, + tsconfigRootDir: projectRootPath, + warnOnUnsupportedTypeScriptVersion: true, + }, + plugins: ['@typescript-eslint'], + rules: { + // These ESLint rules are known to cause issues with typescript-eslint + // See https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/src/configs/recommended.json + camelcase: 'off', + indent: 'off', + 'no-array-constructor': 'off', + 'no-unused-vars': 'off', + + '@typescript-eslint/no-angle-bracket-type-assertion': 'warn', + '@typescript-eslint/no-array-constructor': 'warn', + '@typescript-eslint/no-namespace': 'error', + '@typescript-eslint/no-unused-vars': [ + 'warn', + { + args: 'none', + ignoreRestSiblings: true, + }, + ], + }, + }, + + // NOTE: When adding rules here, you need to make sure they are compatible with + // `typescript-eslint`, as some rules such as `no-array-constructor` aren't compatible. rules: { // http://eslint.org/docs/rules/ 'array-callback-return': 'warn', diff --git a/packages/eslint-config-react-app/package.json b/packages/eslint-config-react-app/package.json index 0da1eb67790..aba589a7907 100644 --- a/packages/eslint-config-react-app/package.json +++ b/packages/eslint-config-react-app/package.json @@ -11,6 +11,8 @@ "index.js" ], "peerDependencies": { + "@typescript-eslint/eslint-plugin": "1.x", + "@typescript-eslint/parser": "1.x", "babel-eslint": "9.x", "eslint": "5.x", "eslint-plugin-flowtype": "2.x", diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index ac7b5333711..c569868fdfa 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -304,7 +304,7 @@ module.exports = function(webpackEnv) { // First, run the linter. // It's important to do this before Babel processes the JS. { - test: /\.(js|mjs|jsx)$/, + test: /\.(js|mjs|jsx|ts|tsx)$/, enforce: 'pre', use: [ { diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 4e4512b1626..cd5c1899a62 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -26,6 +26,8 @@ "dependencies": { "@babel/core": "7.3.4", "@svgr/webpack": "4.1.0", + "@typescript-eslint/eslint-plugin": "1.4.1", + "@typescript-eslint/parser": "1.4.1", "babel-core": "7.0.0-bridge.0", "babel-eslint": "10.0.1", "babel-jest": "23.6.0", From 3be35763044c690458e806c255e100336de0d9a1 Mon Sep 17 00:00:00 2001 From: Lorenzo Rapetti Date: Fri, 15 Mar 2019 19:02:59 +0100 Subject: [PATCH 0600/1249] Update to Jest 24 (#6278) * Update to jest 24 * Add notice about pnpResolver.js * Formatting * Fix linting * Update to jest 24.1.0 * Update jest-pnp-resolver * Swap create-react-app params in e2e scripts * Add extraGlobals to supportedKeys * Bump jest to 24.3.1 * Bump jest to 24.4.0 * Bumb jest to 24.5.0 * Update template dependencies jest to 24.5.0 * Debug failing test * Remove jest-pnp-resolver * Remove console.log * Revert yarn.lock.cached --- package.json | 2 +- .../babel-plugin-named-asset-import/package.json | 2 +- packages/confusing-browser-globals/package.json | 2 +- packages/react-dev-utils/package.json | 2 +- packages/react-error-overlay/package.json | 6 +++--- .../kitchensink/.template.dependencies.json | 2 +- packages/react-scripts/package.json | 7 +++---- .../scripts/utils/createJestConfig.js | 14 ++++---------- tasks/e2e-installs.sh | 16 ++++++++-------- tasks/e2e-kitchensink-eject.sh | 2 +- tasks/e2e-kitchensink.sh | 2 +- 11 files changed, 25 insertions(+), 32 deletions(-) diff --git a/package.json b/package.json index 54921946a11..6e6884f2ca2 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "get-port": "^4.2.0", "globby": "^9.1.0", "husky": "^1.3.1", - "jest": "^23.6.0", + "jest": "^24.5.0", "lerna": "2.9.1", "lerna-changelog": "~0.8.2", "lint-staged": "^8.0.4", diff --git a/packages/babel-plugin-named-asset-import/package.json b/packages/babel-plugin-named-asset-import/package.json index 44449f2eeb6..a6c9ccc7c57 100644 --- a/packages/babel-plugin-named-asset-import/package.json +++ b/packages/babel-plugin-named-asset-import/package.json @@ -16,7 +16,7 @@ }, "devDependencies": { "babel-plugin-tester": "^5.5.1", - "jest": "^23.6.0" + "jest": "^24.5.0" }, "scripts": { "test": "jest" diff --git a/packages/confusing-browser-globals/package.json b/packages/confusing-browser-globals/package.json index cb803f3fb44..54edd9c8893 100644 --- a/packages/confusing-browser-globals/package.json +++ b/packages/confusing-browser-globals/package.json @@ -16,6 +16,6 @@ "index.js" ], "devDependencies": { - "jest": "23.6.0" + "jest": "24.5.0" } } diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index cd07fb1dcfb..1c0f172069f 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -74,7 +74,7 @@ }, "devDependencies": { "cross-env": "^5.2.0", - "jest": "^23.6.0" + "jest": "^24.5.0" }, "scripts": { "test": "cross-env FORCE_COLOR=true jest" diff --git a/packages/react-error-overlay/package.json b/packages/react-error-overlay/package.json index c855e7909aa..879f3992602 100644 --- a/packages/react-error-overlay/package.json +++ b/packages/react-error-overlay/package.json @@ -35,7 +35,7 @@ "anser": "1.4.8", "babel-core": "7.0.0-bridge.0", "babel-eslint": "10.0.1", - "babel-jest": "23.6.0", + "babel-jest": "24.5.0", "babel-loader": "8.0.5", "babel-preset-react-app": "^7.0.2", "chalk": "^2.4.2", @@ -49,8 +49,8 @@ "eslint-plugin-react": "7.12.4", "flow-bin": "^0.63.1", "html-entities": "1.2.1", - "jest": "23.6.0", - "jest-fetch-mock": "1.6.6", + "jest": "24.5.0", + "jest-fetch-mock": "2.1.1", "object-assign": "4.1.1", "promise": "8.0.2", "raw-loader": "^1.0.0", diff --git a/packages/react-scripts/fixtures/kitchensink/.template.dependencies.json b/packages/react-scripts/fixtures/kitchensink/.template.dependencies.json index e45cf8218e1..b892bb90a42 100644 --- a/packages/react-scripts/fixtures/kitchensink/.template.dependencies.json +++ b/packages/react-scripts/fixtures/kitchensink/.template.dependencies.json @@ -1,7 +1,7 @@ { "dependencies": { "bootstrap": "4.1.1", - "jest": "23.6.0", + "jest": "24.5.0", "node-sass": "4.8.3", "normalize.css": "7.0.0", "prop-types": "15.5.6", diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index cd5c1899a62..95c2b99bba1 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -30,7 +30,7 @@ "@typescript-eslint/parser": "1.4.1", "babel-core": "7.0.0-bridge.0", "babel-eslint": "10.0.1", - "babel-jest": "23.6.0", + "babel-jest": "24.5.0", "babel-loader": "8.0.5", "babel-plugin-named-asset-import": "^0.3.1", "babel-preset-react-app": "^7.0.2", @@ -51,9 +51,8 @@ "fs-extra": "7.0.1", "html-webpack-plugin": "4.0.0-beta.5", "identity-obj-proxy": "3.0.0", - "jest": "23.6.0", - "jest-pnp-resolver": "1.0.2", - "jest-resolve": "23.6.0", + "jest": "24.5.0", + "jest-resolve": "24.5.0", "jest-watch-typeahead": "^0.2.1", "mini-css-extract-plugin": "0.5.0", "optimize-css-assets-webpack-plugin": "5.0.1", diff --git a/packages/react-scripts/scripts/utils/createJestConfig.js b/packages/react-scripts/scripts/utils/createJestConfig.js index 5294220b1fe..705f0f87ae3 100644 --- a/packages/react-scripts/scripts/utils/createJestConfig.js +++ b/packages/react-scripts/scripts/utils/createJestConfig.js @@ -24,20 +24,13 @@ module.exports = (resolve, rootDir, isEjecting) => { const config = { collectCoverageFrom: ['src/**/*.{js,jsx,ts,tsx}', '!src/**/*.d.ts'], - // TODO: this breaks Yarn PnP on eject. - // But we can't simply emit this because it'll be an absolute path. - // The proper fix is to write jest.config.js on eject instead of a package.json key. - // Then these can always stay as require.resolve()s. - resolver: isEjecting - ? 'jest-pnp-resolver' - : require.resolve('jest-pnp-resolver'), setupFiles: [ isEjecting ? 'react-app-polyfill/jsdom' : require.resolve('react-app-polyfill/jsdom'), ], - setupTestFrameworkScriptFile: setupTestsFile, + setupFilesAfterEnv: setupTestsFile ? [setupTestsFile] : [], testMatch: [ '/src/**/__tests__/**/*.{js,jsx,ts,tsx}', '/src/**/?(*.)(spec|test).{js,jsx,ts,tsx}', @@ -77,6 +70,7 @@ module.exports = (resolve, rootDir, isEjecting) => { 'collectCoverageFrom', 'coverageReporters', 'coverageThreshold', + 'extraGlobals', 'globalSetup', 'globalTeardown', 'resetMocks', @@ -94,13 +88,13 @@ module.exports = (resolve, rootDir, isEjecting) => { const unsupportedKeys = Object.keys(overrides); if (unsupportedKeys.length) { const isOverridingSetupFile = - unsupportedKeys.indexOf('setupTestFrameworkScriptFile') > -1; + unsupportedKeys.indexOf('setupFilesAfterEnv') > -1; if (isOverridingSetupFile) { console.error( chalk.red( 'We detected ' + - chalk.bold('setupTestFrameworkScriptFile') + + chalk.bold('setupFilesAfterEnv') + ' in your package.json.\n\n' + 'Remove it from Jest configuration, and put the initialization code in ' + chalk.bold('src/setupTests.js') + diff --git a/tasks/e2e-installs.sh b/tasks/e2e-installs.sh index 1be1c18468b..2009ae9a569 100755 --- a/tasks/e2e-installs.sh +++ b/tasks/e2e-installs.sh @@ -120,7 +120,7 @@ npx create-react-app --version # ****************************************************************************** cd "$temp_app_path" -npx create-react-app --scripts-version=@latest test-app-dist-tag +npx create-react-app test-app-dist-tag --scripts-version=@latest cd test-app-dist-tag # Check corresponding scripts version is installed and no TypeScript is present. @@ -135,7 +135,7 @@ checkDependencies # ****************************************************************************** cd "$temp_app_path" -npx create-react-app --scripts-version=1.0.17 test-app-version-number +npx create-react-app test-app-version-number --scripts-version=1.0.17 cd test-app-version-number # Check corresponding scripts version is installed. @@ -148,7 +148,7 @@ checkDependencies # ****************************************************************************** cd "$temp_app_path" -npx create-react-app --use-npm --scripts-version=1.0.17 test-use-npm-flag +npx create-react-app test-use-npm-flag --use-npm --scripts-version=1.0.17 cd test-use-npm-flag # Check corresponding scripts version is installed. @@ -196,7 +196,7 @@ CI=true yarn test # ****************************************************************************** cd "$temp_app_path" -npx create-react-app --scripts-version=https://registry.npmjs.org/react-scripts/-/react-scripts-1.0.17.tgz test-app-tarball-url +npx create-react-app test-app-tarball-url --scripts-version=https://registry.npmjs.org/react-scripts/-/react-scripts-1.0.17.tgz cd test-app-tarball-url # Check corresponding scripts version is installed. @@ -209,7 +209,7 @@ checkDependencies # ****************************************************************************** cd "$temp_app_path" -npx create-react-app --scripts-version=react-scripts-fork test-app-fork +npx create-react-app test-app-fork --scripts-version=react-scripts-fork cd test-app-fork # Check corresponding scripts version is installed. @@ -221,7 +221,7 @@ exists node_modules/react-scripts-fork cd "$temp_app_path" # we will install a non-existing package to simulate a failed installataion. -npx create-react-app --scripts-version=`date +%s` test-app-should-not-exist || true +npx create-react-app test-app-should-not-exist --scripts-version=`date +%s` || true # confirm that the project files were deleted test ! -e test-app-should-not-exist/package.json test ! -d test-app-should-not-exist/node_modules @@ -234,7 +234,7 @@ cd "$temp_app_path" mkdir test-app-should-remain echo '## Hello' > ./test-app-should-remain/README.md # we will install a non-existing package to simulate a failed installataion. -npx create-react-app --scripts-version=`date +%s` test-app-should-remain || true +npx create-react-app test-app-should-remain --scripts-version=`date +%s` || true # confirm the file exist test -e test-app-should-remain/README.md # confirm only README.md and error log are the only files in the directory @@ -248,7 +248,7 @@ fi cd $temp_app_path curl "https://registry.npmjs.org/@enoah_netzach/react-scripts/-/react-scripts-0.9.0.tgz" -o enoah-scripts-0.9.0.tgz -npx create-react-app --scripts-version=$temp_app_path/enoah-scripts-0.9.0.tgz test-app-scoped-fork-tgz +npx create-react-app test-app-scoped-fork-tgz --scripts-version=$temp_app_path/enoah-scripts-0.9.0.tgz cd test-app-scoped-fork-tgz # Check corresponding scripts version is installed. diff --git a/tasks/e2e-kitchensink-eject.sh b/tasks/e2e-kitchensink-eject.sh index 1640ca85ed4..9cb79e69376 100755 --- a/tasks/e2e-kitchensink-eject.sh +++ b/tasks/e2e-kitchensink-eject.sh @@ -100,7 +100,7 @@ git clean -df # Install the app in a temporary location cd $temp_app_path -npx create-react-app --internal-testing-template="$root_path"/packages/react-scripts/fixtures/kitchensink test-kitchensink +npx create-react-app test-kitchensink --internal-testing-template="$root_path"/packages/react-scripts/fixtures/kitchensink # Install the test module cd "$temp_module_path" diff --git a/tasks/e2e-kitchensink.sh b/tasks/e2e-kitchensink.sh index 2b886a1791a..b57e4550c88 100755 --- a/tasks/e2e-kitchensink.sh +++ b/tasks/e2e-kitchensink.sh @@ -100,7 +100,7 @@ git clean -df # Install the app in a temporary location cd $temp_app_path -npx create-react-app --internal-testing-template="$root_path"/packages/react-scripts/fixtures/kitchensink test-kitchensink +npx create-react-app test-kitchensink --internal-testing-template="$root_path"/packages/react-scripts/fixtures/kitchensink # Install the test module cd "$temp_module_path" From b0cbf2caa18ee8267855b14578ebc3dee826f552 Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Fri, 15 Mar 2019 12:14:39 -0600 Subject: [PATCH 0601/1249] Prepare 3.0.0 alpha release --- packages/create-react-app/yarn.lock.cached | 2787 +++++++++----------- 1 file changed, 1295 insertions(+), 1492 deletions(-) diff --git a/packages/create-react-app/yarn.lock.cached b/packages/create-react-app/yarn.lock.cached index e2abde015b8..e54168e9ac4 100644 --- a/packages/create-react-app/yarn.lock.cached +++ b/packages/create-react-app/yarn.lock.cached @@ -2,7 +2,7 @@ # yarn lockfile v1 -"@babel/code-frame@7.0.0", "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.0.0-beta.35": +"@babel/code-frame@7.0.0", "@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== @@ -29,7 +29,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.1.6": +"@babel/core@7.3.4", "@babel/core@^7.1.0", "@babel/core@^7.1.6": version "7.3.4" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.3.4.tgz#921a5a13746c21e32445bf0798680e9d11a6530b" integrity sha512-jRsuseXBo9pN197KnDwhhaaBzyZr2oIcLHHTt2oDdQrej5Qp57dCCJafWx5ivU8/alEYDpssYqv1MUqcxwQlrA== @@ -49,7 +49,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.2.2", "@babel/generator@^7.3.4": +"@babel/generator@^7.0.0", "@babel/generator@^7.2.2", "@babel/generator@^7.3.4": version "7.3.4" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.3.4.tgz#9aa48c1989257877a9d971296e5b73bfe72e446e" integrity sha512-8EXhHRFqlVVWXPezBW5keTiQi/rJMQTg/Y9uVCEZ0CAF3PKtCCaVRnp64Ii1ujhkoDhhF1fVsImoN4yJ2uz4Wg== @@ -253,7 +253,7 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.2.2", "@babel/parser@^7.3.4": +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.2.2", "@babel/parser@^7.3.4": version "7.3.4" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.3.4.tgz#a43357e4bbf4b92a437fb9e465c192848287f27c" integrity sha512-tXZCqWtlOOP4wgCp6RjRvLmfuhnqTLy9VHwRochJBCP2nDm27JnnuFEnXFASVyQNHk36jD1tAammsCEEqgscIQ== @@ -367,7 +367,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== @@ -814,7 +814,7 @@ dependencies: regenerator-runtime "^0.12.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== @@ -847,11 +847,156 @@ lodash "^4.17.11" to-fast-properties "^2.0.0" +"@cnakazawa/watch@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef" + integrity sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA== + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + "@csstools/convert-colors@^1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== +"@jest/console@^24.3.0": + version "24.3.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.3.0.tgz#7bd920d250988ba0bf1352c4493a48e1cb97671e" + integrity sha512-NaCty/OOei6rSDcbPdMiCbYCI0KGFGPgGO6B09lwWt5QTxnkuhKYET9El5u5z1GAcSxkQmSMtM63e24YabCWqA== + dependencies: + "@jest/source-map" "^24.3.0" + "@types/node" "*" + chalk "^2.0.1" + slash "^2.0.0" + +"@jest/core@^24.5.0": + version "24.5.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.5.0.tgz#2cefc6a69e9ebcae1da8f7c75f8a257152ba1ec0" + integrity sha512-RDZArRzAs51YS7dXG1pbXbWGxK53rvUu8mCDYsgqqqQ6uSOaTjcVyBl2Jce0exT2rSLk38ca7az7t2f3b0/oYQ== + dependencies: + "@jest/console" "^24.3.0" + "@jest/reporters" "^24.5.0" + "@jest/test-result" "^24.5.0" + "@jest/transform" "^24.5.0" + "@jest/types" "^24.5.0" + ansi-escapes "^3.0.0" + chalk "^2.0.1" + exit "^0.1.2" + graceful-fs "^4.1.15" + jest-changed-files "^24.5.0" + jest-config "^24.5.0" + jest-haste-map "^24.5.0" + jest-message-util "^24.5.0" + jest-regex-util "^24.3.0" + jest-resolve-dependencies "^24.5.0" + jest-runner "^24.5.0" + jest-runtime "^24.5.0" + jest-snapshot "^24.5.0" + jest-util "^24.5.0" + jest-validate "^24.5.0" + jest-watcher "^24.5.0" + micromatch "^3.1.10" + p-each-series "^1.0.0" + pirates "^4.0.1" + realpath-native "^1.1.0" + rimraf "^2.5.4" + strip-ansi "^5.0.0" + +"@jest/environment@^24.5.0": + version "24.5.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.5.0.tgz#a2557f7808767abea3f9e4cc43a172122a63aca8" + integrity sha512-tzUHR9SHjMXwM8QmfHb/EJNbF0fjbH4ieefJBvtwO8YErLTrecc1ROj0uo2VnIT6SlpEGZnvdCK6VgKYBo8LsA== + dependencies: + "@jest/fake-timers" "^24.5.0" + "@jest/transform" "^24.5.0" + "@jest/types" "^24.5.0" + "@types/node" "*" + jest-mock "^24.5.0" + +"@jest/fake-timers@^24.5.0": + version "24.5.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.5.0.tgz#4a29678b91fd0876144a58f8d46e6c62de0266f0" + integrity sha512-i59KVt3QBz9d+4Qr4QxsKgsIg+NjfuCjSOWj3RQhjF5JNy+eVJDhANQ4WzulzNCHd72srMAykwtRn5NYDGVraw== + dependencies: + "@jest/types" "^24.5.0" + "@types/node" "*" + jest-message-util "^24.5.0" + jest-mock "^24.5.0" + +"@jest/reporters@^24.5.0": + version "24.5.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.5.0.tgz#9363a210d0daa74696886d9cb294eb8b3ad9b4d9" + integrity sha512-vfpceiaKtGgnuC3ss5czWOihKOUSyjJA4M4udm6nH8xgqsuQYcyDCi4nMMcBKsHXWgz9/V5G7iisnZGfOh1w6Q== + dependencies: + "@jest/environment" "^24.5.0" + "@jest/test-result" "^24.5.0" + "@jest/transform" "^24.5.0" + "@jest/types" "^24.5.0" + chalk "^2.0.1" + exit "^0.1.2" + glob "^7.1.2" + istanbul-api "^2.1.1" + istanbul-lib-coverage "^2.0.2" + istanbul-lib-instrument "^3.0.1" + istanbul-lib-source-maps "^3.0.1" + jest-haste-map "^24.5.0" + jest-resolve "^24.5.0" + jest-runtime "^24.5.0" + jest-util "^24.5.0" + jest-worker "^24.4.0" + node-notifier "^5.2.1" + slash "^2.0.0" + source-map "^0.6.0" + string-length "^2.0.0" + +"@jest/source-map@^24.3.0": + version "24.3.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.3.0.tgz#563be3aa4d224caf65ff77edc95cd1ca4da67f28" + integrity sha512-zALZt1t2ou8le/crCeeiRYzvdnTzaIlpOWaet45lNSqNJUnXbppUUFR4ZUAlzgDmKee4Q5P/tKXypI1RiHwgag== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.1.15" + source-map "^0.6.0" + +"@jest/test-result@^24.5.0": + version "24.5.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.5.0.tgz#ab66fb7741a04af3363443084e72ea84861a53f2" + integrity sha512-u66j2vBfa8Bli1+o3rCaVnVYa9O8CAFZeqiqLVhnarXtreSXG33YQ6vNYBogT7+nYiFNOohTU21BKiHlgmxD5A== + dependencies: + "@jest/console" "^24.3.0" + "@jest/types" "^24.5.0" + "@types/istanbul-lib-coverage" "^1.1.0" + +"@jest/transform@^24.5.0": + version "24.5.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.5.0.tgz#6709fc26db918e6af63a985f2cc3c464b4cf99d9" + integrity sha512-XSsDz1gdR/QMmB8UCKlweAReQsZrD/DK7FuDlNo/pE8EcKMrfi2kqLRk8h8Gy/PDzgqJj64jNEzOce9pR8oj1w== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^24.5.0" + babel-plugin-istanbul "^5.1.0" + chalk "^2.0.1" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.1.15" + jest-haste-map "^24.5.0" + jest-regex-util "^24.3.0" + jest-util "^24.5.0" + micromatch "^3.1.10" + realpath-native "^1.1.0" + slash "^2.0.0" + source-map "^0.6.1" + write-file-atomic "2.4.1" + +"@jest/types@^24.5.0": + version "24.5.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.5.0.tgz#feee214a4d0167b0ca447284e95a57aa10b3ee95" + integrity sha512-kN7RFzNMf2R8UDadPOl6ReyI+MT8xfqRuAnuVL+i4gwjv/zubdDK+EDeLHYwq1j0CSSR2W/MmgaRlMZJzXdmVA== + dependencies: + "@types/istanbul-lib-coverage" "^1.1.0" + "@types/yargs" "^12.0.9" + "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" @@ -970,20 +1115,58 @@ "@svgr/plugin-svgo" "^4.0.3" loader-utils "^1.1.0" +"@types/babel__core@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.0.tgz#710f2487dda4dcfd010ca6abb2b4dc7394365c51" + integrity sha512-wJTeJRt7BToFx3USrCDs2BhEi4ijBInTQjOIukj6a/5tEkwpFMVZ+1ppgmE+Q/FQyc5P/VWUbx7I9NELrKruHA== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.0.2.tgz#d2112a6b21fad600d7674274293c85dce0cb47fc" + integrity sha512-NHcOfab3Zw4q5sEE2COkpfXjoE7o+PmqD9DQW4koUT3roNxwziUdXGnRndMat/LJNUtePwn1TlP4do3uoe3KZQ== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307" + integrity sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.0.6" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.6.tgz#328dd1a8fc4cfe3c8458be9477b219ea158fd7b2" + integrity sha512-XYVgHF2sQ0YblLRMLNPB3CkFMewzFmlDsH/TneZFHUXDlABQgh88uOxuez7ZcXxayLFrqLwtDH1t+FmlFwNZxw== + dependencies: + "@babel/types" "^7.3.0" + +"@types/istanbul-lib-coverage@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.0.tgz#2cc2ca41051498382b43157c8227fea60363f94a" + integrity sha512-ohkhb9LehJy+PA40rDtGAji61NCgdtKLAlFoYp4cnuuQEswwdK3vz9SOIkkyc3wrk8dzjphQApNs56yyXLStaQ== + "@types/node@*": - version "11.10.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-11.10.5.tgz#fbaca34086bdc118011e1f05c47688d432f2d571" - integrity sha512-DuIRlQbX4K+d5I+GMnv+UfnGh+ist0RdlvOp+JZ7ePJ6KQONCFQv/gKYSU1ZzbVdFSUCKZOltjmpFAGGv5MdYA== + version "11.11.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.3.tgz#7c6b0f8eaf16ae530795de2ad1b85d34bf2f5c58" + integrity sha512-wp6IOGu1lxsfnrD+5mX6qwSwWuqsdkKKxTN4aQc4wByHAKZJf9/D4KXPQ1POUjEbnCP5LMggB0OEFNY9OTsMqg== "@types/q@^1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.1.tgz#48fd98c1561fe718b61733daed46ff115b496e18" - integrity sha512-eqz8c/0kwNi/OEHQfvIuJVLTst3in0e7uTKeuY+WL/zfKn0xVujOTp42bS/vUUokhK5P2BppLd9JXMOMHcgbjA== + version "1.5.2" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" + integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== -"@types/tapable@1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.2.tgz#e13182e1b69871a422d7863e11a4a6f5b814a4bd" - integrity sha512-42zEJkBpNfMEAvWR5WlwtTH22oDzcMjFsL9gDGExwF8X8WvAiw7Vwop7hPw03QT8TKfec83LwbHj6SvpqM4ELQ== +"@types/stack-utils@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" + integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== "@types/unist@*", "@types/unist@^2.0.0": version "2.0.3" @@ -1007,158 +1190,193 @@ "@types/unist" "*" "@types/vfile-message" "*" -"@webassemblyjs/ast@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.11.tgz#b988582cafbb2b095e8b556526f30c90d057cace" - integrity sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA== - dependencies: - "@webassemblyjs/helper-module-context" "1.7.11" - "@webassemblyjs/helper-wasm-bytecode" "1.7.11" - "@webassemblyjs/wast-parser" "1.7.11" - -"@webassemblyjs/floating-point-hex-parser@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz#a69f0af6502eb9a3c045555b1a6129d3d3f2e313" - integrity sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg== - -"@webassemblyjs/helper-api-error@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz#c7b6bb8105f84039511a2b39ce494f193818a32a" - integrity sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg== - -"@webassemblyjs/helper-buffer@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz#3122d48dcc6c9456ed982debe16c8f37101df39b" - integrity sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w== - -"@webassemblyjs/helper-code-frame@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz#cf8f106e746662a0da29bdef635fcd3d1248364b" - integrity sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw== - dependencies: - "@webassemblyjs/wast-printer" "1.7.11" - -"@webassemblyjs/helper-fsm@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz#df38882a624080d03f7503f93e3f17ac5ac01181" - integrity sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A== - -"@webassemblyjs/helper-module-context@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz#d874d722e51e62ac202476935d649c802fa0e209" - integrity sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg== - -"@webassemblyjs/helper-wasm-bytecode@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz#dd9a1e817f1c2eb105b4cf1013093cb9f3c9cb06" - integrity sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ== - -"@webassemblyjs/helper-wasm-section@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz#9c9ac41ecf9fbcfffc96f6d2675e2de33811e68a" - integrity sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-buffer" "1.7.11" - "@webassemblyjs/helper-wasm-bytecode" "1.7.11" - "@webassemblyjs/wasm-gen" "1.7.11" - -"@webassemblyjs/ieee754@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz#c95839eb63757a31880aaec7b6512d4191ac640b" - integrity sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ== +"@types/yargs@^12.0.2", "@types/yargs@^12.0.9": + version "12.0.9" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.9.tgz#693e76a52f61a2f1e7fb48c0eef167b95ea4ffd0" + integrity sha512-sCZy4SxP9rN2w30Hlmg5dtdRwgYQfYRiLo9usw8X9cxlf+H4FqM1xX7+sNH7NNKVdbXMJWqva7iyy+fxh/V7fA== + +"@typescript-eslint/eslint-plugin@1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-1.4.1.tgz#f752a6888a957fd411c7bcada11884c4257d374a" + integrity sha512-+7wRNSKK+flJR0pOcGuTP2QwoJYJ91jdZV8Hm0IwVAWTqww8Jt5sN7r/Mlf2oFmDcO8jpM3ajsZCHJ4MmBMRjA== + dependencies: + "@typescript-eslint/parser" "1.4.1" + "@typescript-eslint/typescript-estree" "1.4.1" + requireindex "^1.2.0" + tsutils "^3.7.0" + +"@typescript-eslint/parser@1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-1.4.1.tgz#a7cd1a41722da6a37088ea90c0009ea56a27a372" + integrity sha512-W+9qep7F4Rn5Eq8F2vkOGbxiy639quYBGvDO6c4p4kIYnKdWj1rBGh3PoyOlaA1v1Dttj23yCRl9Ca9NmdgWCQ== + dependencies: + "@typescript-eslint/typescript-estree" "1.4.1" + eslint-scope "^4.0.0" + eslint-visitor-keys "^1.0.0" + +"@typescript-eslint/typescript-estree@1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-1.4.1.tgz#6ca30b1770db0aee62b92a1c4ac5eaabc332c116" + integrity sha512-23nw1CtVklWvkN9RotPjYqpVSzAoXtF9rdqGwyjJ4Bzd6q82CSXOQ+KBRnKePAcwJ2YtOlQQRi9lDX+DIdpCOA== + dependencies: + lodash.unescape "4.0.1" + semver "5.5.0" + +"@webassemblyjs/ast@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" + integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== + dependencies: + "@webassemblyjs/helper-module-context" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/wast-parser" "1.8.5" + +"@webassemblyjs/floating-point-hex-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" + integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== + +"@webassemblyjs/helper-api-error@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" + integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== + +"@webassemblyjs/helper-buffer@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" + integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== + +"@webassemblyjs/helper-code-frame@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" + integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== + dependencies: + "@webassemblyjs/wast-printer" "1.8.5" + +"@webassemblyjs/helper-fsm@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" + integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== + +"@webassemblyjs/helper-module-context@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" + integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== + dependencies: + "@webassemblyjs/ast" "1.8.5" + mamacro "^0.0.3" + +"@webassemblyjs/helper-wasm-bytecode@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" + integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== + +"@webassemblyjs/helper-wasm-section@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" + integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + +"@webassemblyjs/ieee754@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" + integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.11.tgz#d7267a1ee9c4594fd3f7e37298818ec65687db63" - integrity sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw== - dependencies: - "@xtuc/long" "4.2.1" - -"@webassemblyjs/utf8@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.11.tgz#06d7218ea9fdc94a6793aa92208160db3d26ee82" - integrity sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA== - -"@webassemblyjs/wasm-edit@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz#8c74ca474d4f951d01dbae9bd70814ee22a82005" - integrity sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-buffer" "1.7.11" - "@webassemblyjs/helper-wasm-bytecode" "1.7.11" - "@webassemblyjs/helper-wasm-section" "1.7.11" - "@webassemblyjs/wasm-gen" "1.7.11" - "@webassemblyjs/wasm-opt" "1.7.11" - "@webassemblyjs/wasm-parser" "1.7.11" - "@webassemblyjs/wast-printer" "1.7.11" - -"@webassemblyjs/wasm-gen@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz#9bbba942f22375686a6fb759afcd7ac9c45da1a8" - integrity sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-wasm-bytecode" "1.7.11" - "@webassemblyjs/ieee754" "1.7.11" - "@webassemblyjs/leb128" "1.7.11" - "@webassemblyjs/utf8" "1.7.11" - -"@webassemblyjs/wasm-opt@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz#b331e8e7cef8f8e2f007d42c3a36a0580a7d6ca7" - integrity sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-buffer" "1.7.11" - "@webassemblyjs/wasm-gen" "1.7.11" - "@webassemblyjs/wasm-parser" "1.7.11" - -"@webassemblyjs/wasm-parser@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz#6e3d20fa6a3519f6b084ef9391ad58211efb0a1a" - integrity sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-api-error" "1.7.11" - "@webassemblyjs/helper-wasm-bytecode" "1.7.11" - "@webassemblyjs/ieee754" "1.7.11" - "@webassemblyjs/leb128" "1.7.11" - "@webassemblyjs/utf8" "1.7.11" - -"@webassemblyjs/wast-parser@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz#25bd117562ca8c002720ff8116ef9072d9ca869c" - integrity sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/floating-point-hex-parser" "1.7.11" - "@webassemblyjs/helper-api-error" "1.7.11" - "@webassemblyjs/helper-code-frame" "1.7.11" - "@webassemblyjs/helper-fsm" "1.7.11" - "@xtuc/long" "4.2.1" - -"@webassemblyjs/wast-printer@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz#c4245b6de242cb50a2cc950174fdbf65c78d7813" - integrity sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/wast-parser" "1.7.11" - "@xtuc/long" "4.2.1" +"@webassemblyjs/leb128@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" + integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" + integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== + +"@webassemblyjs/wasm-edit@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" + integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/helper-wasm-section" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + "@webassemblyjs/wasm-opt" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + "@webassemblyjs/wast-printer" "1.8.5" + +"@webassemblyjs/wasm-gen@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" + integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/ieee754" "1.8.5" + "@webassemblyjs/leb128" "1.8.5" + "@webassemblyjs/utf8" "1.8.5" + +"@webassemblyjs/wasm-opt@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" + integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + +"@webassemblyjs/wasm-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" + integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-api-error" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/ieee754" "1.8.5" + "@webassemblyjs/leb128" "1.8.5" + "@webassemblyjs/utf8" "1.8.5" + +"@webassemblyjs/wast-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" + integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/floating-point-hex-parser" "1.8.5" + "@webassemblyjs/helper-api-error" "1.8.5" + "@webassemblyjs/helper-code-frame" "1.8.5" + "@webassemblyjs/helper-fsm" "1.8.5" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" + integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/wast-parser" "1.8.5" + "@xtuc/long" "4.2.2" "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== -"@xtuc/long@4.2.1": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.1.tgz#5c85d662f76fa1d34575766c5dcd6615abcd30d8" - integrity sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g== +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== abab@^2.0.0: version "2.0.0" @@ -1178,12 +1396,10 @@ accepts@~1.3.4, accepts@~1.3.5: mime-types "~2.1.18" negotiator "0.6.1" -acorn-dynamic-import@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278" - integrity sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg== - dependencies: - acorn "^5.0.0" +acorn-dynamic-import@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" + integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== acorn-globals@^4.1.0: version "4.3.0" @@ -1203,12 +1419,12 @@ acorn-walk@^6.0.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913" integrity sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw== -acorn@^5.0.0, acorn@^5.5.3, acorn@^5.6.2: +acorn@^5.5.3: version "5.7.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== -acorn@^6.0.1, acorn@^6.0.7: +acorn@^6.0.1, acorn@^6.0.5, acorn@^6.0.7: version "6.1.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA== @@ -1228,7 +1444,7 @@ ajv-keywords@^3.1.0: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.0.tgz#4b831e7b531415a7cc518cd404e73f6193c6349d" integrity sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw== -ajv@^6.1.0, ajv@^6.5.3, ajv@^6.5.5, ajv@^6.9.1: +ajv@^6.1.0, ajv@^6.5.5, ajv@^6.9.1: version "6.10.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg== @@ -1268,10 +1484,10 @@ ansi-regex@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= -ansi-regex@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.0.0.tgz#70de791edf021404c3fd615aa89118ae0432e5a9" - integrity sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w== +ansi-regex@^4.0.0, ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== ansi-styles@^2.2.1: version "2.2.1" @@ -1293,12 +1509,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: version "1.2.0" @@ -1328,19 +1544,12 @@ aria-query@^3.0.0: ast-types-flow "0.0.7" commander "^2.11.0" -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8= - dependencies: - arr-flatten "^1.0.1" - arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= -arr-flatten@^1.0.1, arr-flatten@^1.1.0: +arr-flatten@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== @@ -1400,11 +1609,6 @@ array-uniq@^1.0.1: resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= - array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" @@ -1464,9 +1668,9 @@ astral-regex@^1.0.0: integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== async-each@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" - integrity sha1-GdOGodntxufByF04iu28xW0zYC0= + version "1.0.2" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.2.tgz#8b8a7ca2a658f927e9f307d6d1a42f4199f0f735" + integrity sha512-6xrbvN0MOBKSJDdonmSSz2OwFSgxRaVtBDes26mj9KIGtDo+g9xosFRSC+i1gQh2oAN/tQ62AI/pGZGQjVOiRg== async-limiter@~1.0.0: version "1.0.0" @@ -1478,7 +1682,7 @@ async@^1.5.2: resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= -async@^2.1.4, async@^2.5.0: +async@^2.5.0, async@^2.6.1: version "2.6.2" resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg== @@ -1495,13 +1699,13 @@ atob@^2.1.1: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autoprefixer@^9.4.2: - version "9.4.10" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.4.10.tgz#e1be61fc728bacac8f4252ed242711ec0dcc6a7b" - integrity sha512-XR8XZ09tUrrSzgSlys4+hy5r2/z4Jp7Ag3pHm31U4g/CTccYPOVe19AkaJ4ey/vRd1sfj+5TtuD6I0PXtutjvQ== +autoprefixer@^9.4.9: + version "9.5.0" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.5.0.tgz#7e51d0355c11596e6cf9a0afc9a44e86d1596c70" + integrity sha512-hMKcyHsZn5+qL6AUeP3c8OyuteZ4VaUlg+fWbyl8z7PqsKHF/Bf8/px3K6AT8aMzDkBo8Bc11245MM+itDBOxQ== dependencies: browserslist "^4.4.2" - caniuse-lite "^1.0.30000940" + caniuse-lite "^1.0.30000947" normalize-range "^0.1.2" num2fraction "^1.2.2" postcss "^7.0.14" @@ -1517,14 +1721,14 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== -axobject-query@^2.0.1: +axobject-query@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz#ea187abe5b9002b377f925d8bf7d1c561adf38f9" integrity sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww== dependencies: ast-types-flow "0.0.7" -babel-code-frame@^6.26.0: +babel-code-frame@^6.22.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= @@ -1538,35 +1742,10 @@ babel-core@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-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-eslint@9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-9.0.0.tgz#7d9445f81ed9f60aff38115f838970df9f2b6220" - integrity sha512-itv1MwE3TMbY0QtNfeL7wzak1mV47Uy+n6HtSOO4Xd7rvmO+tsGQSgyOEEgo6Y2vHZKZphaoelNeSVj4vkLA1g== +babel-eslint@10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.1.tgz#919681dc099614cd7d31d45c8908695092a1faed" + integrity sha512-z7OT1iNV+TjOwHNLLyJk+HN+YVWX+CLE6fPD2SymJZOZQBs+QIexFjhm4keGTm8MW9xr4EC9Q0PbaLB24V5GoQ== dependencies: "@babel/code-frame" "^7.0.0" "@babel/parser" "^7.0.0" @@ -1582,35 +1761,18 @@ babel-extract-comments@^1.0.0: dependencies: babylon "^6.18.0" -babel-generator@^6.18.0, babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - 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, babel-jest@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.6.0.tgz#a644232366557a2240a0c083da6b25786185a2f1" - integrity sha512-lqKGG6LYXYu+DQh/slrQ8nxXQkEkhugdXsU6St7GmhVS7Ilc/22ArwqXNJrf0QaOBjZB0360qZMwXqDYQHXaew== +babel-jest@24.5.0, babel-jest@^24.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.5.0.tgz#0ea042789810c2bec9065f7c8ab4dc18e1d28559" + integrity sha512-0fKCXyRwxFTJL0UXDJiT2xYxO9Lu2vBd9n+cC+eDjESzcVG3s2DRGAxbzJX21fceB1WYoBjAh8pQ83dKcl003g== dependencies: - babel-plugin-istanbul "^4.1.6" - babel-preset-jest "^23.2.0" + "@jest/transform" "^24.5.0" + "@jest/types" "^24.5.0" + "@types/babel__core" "^7.1.0" + babel-plugin-istanbul "^5.1.0" + babel-preset-jest "^24.3.0" + chalk "^2.4.2" + slash "^2.0.0" babel-loader@8.0.5: version "8.0.5" @@ -1622,13 +1784,6 @@ babel-loader@8.0.5: mkdirp "^0.5.1" util.promisify "^1.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" - integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= - dependencies: - babel-runtime "^6.22.0" - babel-plugin-dynamic-import-node@2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.2.0.tgz#c0adfb07d95f4a4495e9aaac6ec386c4d7c2524e" @@ -1636,20 +1791,21 @@ babel-plugin-dynamic-import-node@2.2.0: dependencies: object.assign "^4.1.0" -babel-plugin-istanbul@^4.1.6: - version "4.1.6" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" - integrity sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ== +babel-plugin-istanbul@^5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.1.tgz#7981590f1956d75d67630ba46f0c22493588c893" + integrity sha512-RNNVv2lsHAXJQsEJ5jonQwrJVWK8AcZpG1oxhnjCUaAjL7xahYLANhPUZbzEQHjKy1NMYUwn+0NPKQc8iSY4xQ== dependencies: - babel-plugin-syntax-object-rest-spread "^6.13.0" - find-up "^2.1.0" - istanbul-lib-instrument "^1.10.1" - test-exclude "^4.2.1" + 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.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.3.0.tgz#f2e82952946f6e40bb0a75d266a3790d854c8b5b" + integrity sha512-nWh4N1mVH55Tzhx2isvUN5ebM5CDUvIpXPZYMRazQughie/EqGnbR+czzoQlhUmJG9pPJmYDRhvocotb2THl1w== + dependencies: + "@types/babel__traverse" "^7.0.6" babel-plugin-macros@2.5.0: version "2.5.0" @@ -1664,7 +1820,7 @@ babel-plugin-named-asset-import@^0.3.1: resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.1.tgz#5ec13ec446d0a1e5bb6c57a1f94c9cdedb0c50d6" integrity sha512-vzZlo+yEB5YHqI6CRRTDojeT43J3Wf3C/MVkZW5UlbSeIIVUYRKtxaFT2L/VTv9mbIyatCW39+9g/SZolvwRUQ== -babel-plugin-syntax-object-rest-spread@^6.13.0, babel-plugin-syntax-object-rest-spread@^6.8.0: +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" integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U= @@ -1682,13 +1838,13 @@ babel-plugin-transform-react-remove-prop-types@0.4.24: resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== -babel-preset-jest@^23.2.0: - version "23.2.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz#8ec7a03a138f001a1a8fb1e8113652bf1a55da46" - integrity sha1-jsegOhOPABoaj7HoETZSvxpV2kY= +babel-preset-jest@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.3.0.tgz#db88497e18869f15b24d9c0e547d8e0ab950796d" + integrity sha512-VGTV2QYBa/Kn3WCOKdfS31j9qomaXSgJqi65B6o05/1GsJyj9LVhSljM9ro4S+IBGj/ENhNBuH9bpqzztKAQSw== dependencies: - babel-plugin-jest-hoist "^23.2.0" - babel-plugin-syntax-object-rest-spread "^6.13.0" + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + babel-plugin-jest-hoist "^24.3.0" babel-preset-react-app@^7.0.2: version "7.0.2" @@ -1715,20 +1871,7 @@ babel-preset-react-app@^7.0.2: babel-plugin-macros "2.5.0" babel-plugin-transform-react-remove-prop-types "0.4.24" -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= - 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-runtime@^6.22.0, babel-runtime@^6.26.0: +babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= @@ -1736,42 +1879,6 @@ 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: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^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: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.0.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= - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - babylon@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" @@ -1888,15 +1995,6 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc= - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - braces@^2.3.1, braces@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" @@ -1998,7 +2096,7 @@ browserslist@4.4.1: electron-to-chromium "^1.3.103" node-releases "^1.1.3" -browserslist@^4.0.0, browserslist@^4.3.4, browserslist@^4.3.5, browserslist@^4.4.2: +browserslist@^4.0.0, browserslist@^4.3.4, browserslist@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.4.2.tgz#6ea8a74d6464bb0bd549105f659b41197d8f0ba2" integrity sha512-ISS/AIAiHERJ3d45Fz0AVYKkgcy+F/eJHzKEvv1j0wwKGKD9T3BrwKr/5g45L+Y4XIK5PlTqefHciRFcfE1Jxg== @@ -2125,7 +2223,7 @@ camelcase@^4.1.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= -camelcase@^5.0.0: +camelcase@^5.0.0, camelcase@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.2.0.tgz#e7522abda5ed94cc0489e1b8466610e88404cf45" integrity sha512-IXFsBS2pC+X0j0N/GE7Dm7j3bsEBp+oTpb7F50dwEVX7rf3IgwO9XatnegTsDtniKCUtEJH4fSU6Asw7uoVLfQ== @@ -2140,17 +2238,17 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000918, caniuse-lite@^1.0.30000929, caniuse-lite@^1.0.30000939, caniuse-lite@^1.0.30000940: - version "1.0.30000941" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000941.tgz#f0810802b2ab8d27f4b625d4769a610e24d5a42c" - integrity sha512-4vzGb2MfZcO20VMPj1j6nRAixhmtlhkypM4fL4zhgzEucQIYiRzSqPcWIu1OF8i0FETD93FMIPWfUJCAcFvrqA== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000929, caniuse-lite@^1.0.30000939, caniuse-lite@^1.0.30000947: + version "1.0.30000948" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000948.tgz#793ed7c28fe664856beb92b43fc013fc22b81633" + integrity sha512-Lw4y7oz1X5MOMZm+2IFaSISqVVQvUuD+ZUSfeYK/SlYiMjkHN/eJ2PDfJehW5NA6JjrxYSSnIWfwjeObQMEjFQ== -capture-exit@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" - integrity sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28= +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== dependencies: - rsvp "^3.3.3" + rsvp "^4.8.4" case-sensitive-paths-webpack-plugin@2.2.0: version "2.2.0" @@ -2197,7 +2295,7 @@ check-types@^7.3.0: resolved "https://registry.yarnpkg.com/check-types/-/check-types-7.4.0.tgz#0378ec1b9616ec71f774931a3c6516fad8c152f4" integrity sha512-YbulWHdfP99UfZ73NcUDlNJhEIDgm9Doq9GhpyXbF+7Aegi3CVV7qqMCKTTqJxlvEvnQBp9IA+dxsGN6xK/nSg== -chokidar@^2.0.0, chokidar@^2.0.2: +chokidar@^2.0.0, chokidar@^2.0.2, chokidar@^2.0.4: version "2.1.2" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.2.tgz#9c23ea40b01638439e0513864d362aeacc5ad058" integrity sha512-IwXUx0FXc5ibYmPC2XeEj5mpXoV66sR+t3jqu2NS2GYwCktt3KF1/Qqjws/NkegajBA4RbZ5+DDwlOiJsxDHEg== @@ -2228,10 +2326,10 @@ chrome-trace-event@^1.0.0: dependencies: tslib "^1.9.0" -ci-info@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" - integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" @@ -2241,11 +2339,6 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" -circular-json@^0.3.1: - version "0.3.3" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" - integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== - class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -2384,7 +2477,7 @@ commander@2.17.x, commander@~2.17.1: resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== -commander@^2.11.0: +commander@^2.11.0, commander@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== @@ -2399,6 +2492,11 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= +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" @@ -2481,7 +2579,7 @@ content-type@~1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== -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== @@ -2520,7 +2618,7 @@ core-js@2.6.4: resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.4.tgz#b8897c062c4d769dd30a0ac5c73976c47f92ea0d" integrity sha512-05qQ5hXShcqGkPZpXEFLIpxayZscVD2kuMBZewxiIPPEagukO4mqgPA9CWhUvFBJfy3ODdK2p9xyHh7FTU9/7A== -core-js@^2.4.0, core-js@^2.5.0: +core-js@^2.4.0: version "2.6.5" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz#44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895" integrity sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A== @@ -2593,15 +2691,6 @@ cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -2647,23 +2736,22 @@ css-has-pseudo@^0.10.0: postcss "^7.0.6" postcss-selector-parser "^5.0.0-rc.4" -css-loader@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-1.0.0.tgz#9f46aaa5ca41dbe31860e3b62b8e23c42916bf56" - integrity sha512-tMXlTYf3mIMt3b0dDCOQFJiVvxbocJ5Ho577WiGPYPZcqVEO218L2iU22pDXzkTZCLDE+9AmGSUkWxeh/nZReA== +css-loader@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-2.1.1.tgz#d8254f72e412bb2238bb44dd674ffbef497333ea" + integrity sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w== dependencies: - babel-code-frame "^6.26.0" - css-selector-tokenizer "^0.7.0" - icss-utils "^2.1.0" - loader-utils "^1.0.2" - lodash.camelcase "^4.3.0" - postcss "^6.0.23" - postcss-modules-extract-imports "^1.2.0" - postcss-modules-local-by-default "^1.2.0" - postcss-modules-scope "^1.1.0" - postcss-modules-values "^1.3.0" + camelcase "^5.2.0" + icss-utils "^4.1.0" + loader-utils "^1.2.3" + normalize-path "^3.0.0" + postcss "^7.0.14" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^2.0.6" + postcss-modules-scope "^2.1.0" + postcss-modules-values "^2.0.0" postcss-value-parser "^3.3.0" - source-list-map "^2.0.0" + schema-utils "^1.0.0" css-prefers-color-scheme@^3.1.1: version "3.1.1" @@ -2697,15 +2785,6 @@ css-select@^2.0.0: domutils "^1.7.0" nth-check "^1.0.2" -css-selector-tokenizer@^0.7.0: - version "0.7.1" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz#a177271a8bca5019172f4f891fc6eed9cbf68d5d" - integrity sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA== - dependencies: - cssesc "^0.1.0" - fastparse "^1.1.1" - regexpu-core "^1.0.0" - css-tree@1.0.0-alpha.28: version "1.0.0-alpha.28" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.28.tgz#8e8968190d886c9477bc8d61e96f61af3f7ffa7f" @@ -2738,20 +2817,20 @@ css-what@2.1, css-what@^2.1.2: integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== cssdb@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.3.0.tgz#2e1229900616f80c66ff2d568ea2b4f92db1c78c" - integrity sha512-VHPES/+c9s+I0ryNj+PXvp84nz+ms843z/efpaEINwP/QfGsINL3gpLp5qjapzDNzNzbXxur8uxKxSXImrg4ag== - -cssesc@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" - integrity sha1-yBSQPkViM3GgR3tAEJqq++6t27Q= + version "4.4.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" + integrity sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ== cssesc@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + cssnano-preset-default@^4.0.7: version "4.0.7" resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" @@ -2877,21 +2956,21 @@ debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6. dependencies: ms "2.0.0" -debug@^3.1.0, debug@^3.2.5, debug@^3.2.6: +debug@^3.2.5, debug@^3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" -debug@^4.0.1, debug@^4.1.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== dependencies: ms "^2.1.1" -decamelize@^1.1.1: +decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= @@ -2923,20 +3002,20 @@ deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= -default-gateway@^2.6.0: - version "2.7.2" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-2.7.2.tgz#b7ef339e5e024b045467af403d50348db4642d0f" - integrity sha512-lAc4i9QJR0YHSDFdzeBQKfZ1SRDG3hsJNEkrpcZa8QhBfidLAilT60BDEIVUUGqosFp425KOgB3uYqcnQrWafQ== +default-gateway@^4.0.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" + integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== dependencies: - execa "^0.10.0" + execa "^1.0.0" ip-regex "^2.1.0" -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" define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" @@ -3007,13 +3086,6 @@ destroy@~1.0.4: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= - dependencies: - repeating "^2.0.0" - detect-libc@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" @@ -3037,10 +3109,10 @@ detect-port-alt@1.1.6: address "^1.0.1" debug "^2.6.0" -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.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.3.0.tgz#0f20e8a1df1abddaf4d9c226680952e64118b975" + integrity sha512-xLqpez+Zj9GKSnPWS0WZw1igGocZ+uua8+y+5dDNTT934N3QuY1sp2LkHzwiaYQGz60hMq0pjAshdeXm5VUOEw== diffie-hellman@^5.0.0: version "5.0.3" @@ -3094,6 +3166,13 @@ doctrine@^2.1.0: dependencies: esutils "^2.0.2" +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + dom-converter@^0.2: version "0.2.0" resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" @@ -3161,10 +3240,10 @@ dotenv-expand@4.2.0: resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-4.2.0.tgz#def1f1ca5d6059d24a766e587942c21106ce1275" integrity sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU= -dotenv@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-6.0.0.tgz#24e37c041741c5f4b25324958ebbc34bca965935" - integrity sha512-FlWbnhgjtwD+uNLUGHbMykMOYQaTivdHEmYwAKFjn6GKe/CqY0fNae93ZHTd20snh9ZLr8mTzIL9m0APQ1pjQg== +dotenv@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-6.2.0.tgz#941c0410535d942c8becf28d3f357dbd9d476064" + integrity sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w== duplexer@^0.1.1: version "0.1.1" @@ -3195,9 +3274,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.103, electron-to-chromium@^1.3.113: - version "1.3.113" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.113.tgz#b1ccf619df7295aea17bc6951dc689632629e4a9" - integrity sha512-De+lPAxEcpxvqPTyZAXELNpRZXABRxf+uL/rSykstQhzj/B0l1150G/ExIIxKc16lI89Hgz81J0BHAcbTqK49g== + version "1.3.116" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.116.tgz#1dbfee6a592a0c14ade77dbdfe54fef86387d702" + integrity sha512-NKwKAXzur5vFCZYBHpdWjTMO8QptNLNP80nItkSIgUOapPAo9Uia+RvkCaZJtO7fhQaVElSvBPWEc2ku6cKsPA== elliptic@^6.0.0: version "6.4.1" @@ -3212,12 +3291,7 @@ elliptic@^6.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" -emoji-regex@^6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz#9baea929b155565c11ea41c6626eaa65cef992c2" - integrity sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ== - -emoji-regex@^7.0.1: +emoji-regex@^7.0.1, emoji-regex@^7.0.2: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== @@ -3317,7 +3391,7 @@ eslint-config-react-app@^3.0.8: dependencies: confusing-browser-globals "^1.0.6" -eslint-import-resolver-node@^0.3.1: +eslint-import-resolver-node@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q== @@ -3325,10 +3399,10 @@ eslint-import-resolver-node@^0.3.1: debug "^2.6.9" resolve "^1.5.0" -eslint-loader@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.1.1.tgz#2a9251523652430bfdd643efdb0afc1a2a89546a" - integrity sha512-1GrJFfSevQdYpoDzx8mEE2TDWsb/zmFuY09l6hURg1AeFIKQOvZ+vH0UPjzmd1CZIbfTV5HUkMeBmFiDBkgIsQ== +eslint-loader@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.1.2.tgz#453542a1230d6ffac90e4e7cb9cadba9d851be68" + integrity sha512-rA9XiXEOilLYPOIInvVH5S/hYfyTPyxag6DZhoQOduM+3TkghAEQ3VcFO8VnX4J4qg/UIBzp72aOf/xvYmpmsg== dependencies: loader-fs-cache "^1.0.0" loader-utils "^1.0.2" @@ -3336,7 +3410,7 @@ eslint-loader@2.1.1: object-hash "^1.1.4" rimraf "^2.6.1" -eslint-module-utils@^2.2.0: +eslint-module-utils@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.3.0.tgz#546178dab5e046c8b562bbb50705e2456d7bda49" integrity sha512-lmDJgeOOjk8hObTysjqH7wyMi+nsHwwvfBykwfhjR1LNdd7C2uFJBvx4OpWYpXOw4df1yE1cDEVd1yLHitk34w== @@ -3351,36 +3425,41 @@ eslint-plugin-flowtype@2.50.1: dependencies: lodash "^4.17.10" -eslint-plugin-import@2.14.0: - version "2.14.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz#6b17626d2e3e6ad52cfce8807a845d15e22111a8" - integrity sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g== +eslint-plugin-import@2.16.0: + version "2.16.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.16.0.tgz#97ac3e75d0791c4fac0e15ef388510217be7f66f" + integrity sha512-z6oqWlf1x5GkHIFgrSvtmudnqM6Q60KM4KvpWi5ubonMjycLjndvd5+8VAZIsTlHC03djdgJuyKG6XO577px6A== dependencies: contains-path "^0.1.0" - debug "^2.6.8" + debug "^2.6.9" doctrine "1.5.0" - eslint-import-resolver-node "^0.3.1" - eslint-module-utils "^2.2.0" - has "^1.0.1" - lodash "^4.17.4" - minimatch "^3.0.3" + eslint-import-resolver-node "^0.3.2" + eslint-module-utils "^2.3.0" + has "^1.0.3" + lodash "^4.17.11" + minimatch "^3.0.4" read-pkg-up "^2.0.0" - resolve "^1.6.0" + resolve "^1.9.0" -eslint-plugin-jsx-a11y@6.1.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.2.tgz#69bca4890b36dcf0fe16dd2129d2d88b98f33f88" - integrity sha512-7gSSmwb3A+fQwtw0arguwMdOdzmKUgnUcbSNlo+GjKLAQFuC2EZxWqG9XHRI8VscBJD5a8raz3RuxQNFW+XJbw== +eslint-plugin-jsx-a11y@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.1.tgz#4ebba9f339b600ff415ae4166e3e2e008831cf0c" + integrity sha512-cjN2ObWrRz0TTw7vEcGQrx+YltMvZoOEx4hWU8eEERDnBIU00OTq7Vr+jA7DFKxiwLNv4tTh5Pq2GUNEa8b6+w== dependencies: aria-query "^3.0.0" array-includes "^3.0.3" ast-types-flow "^0.0.7" - axobject-query "^2.0.1" + axobject-query "^2.0.2" damerau-levenshtein "^1.0.4" - emoji-regex "^6.5.1" + emoji-regex "^7.0.2" has "^1.0.3" jsx-ast-utils "^2.0.1" +eslint-plugin-react-hooks@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.5.0.tgz#cdd958cfff55bd5fa4f84db90d1490fb5ca4ae2b" + integrity sha512-iwDuWR2ReRgvJsNm8fXPtTKdg78IVQF8I4+am3ntztPf/+nPnWZfArFu6aXpaC75/iCYRrkqI8nPCYkxJstmpA== + eslint-plugin-react@7.12.4: version "7.12.4" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.12.4.tgz#b1ecf26479d61aee650da612e425c53a99f48c8c" @@ -3402,10 +3481,10 @@ eslint-scope@3.7.1: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-scope@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.2.tgz#5f10cd6cabb1965bf479fa65745673439e21cb0e" - integrity sha512-5q1+B/ogmHl8+paxtOKx38Z8LtWkVGuNt3+GQNErqwLl6ViNp/gdJGMCjZNxZ8j/VYjDNZ2Fo+eQc1TAVPIzbg== +eslint-scope@^4.0.0, eslint-scope@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" @@ -3420,50 +3499,49 @@ eslint-visitor-keys@^1.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== -eslint@5.12.0: - version "5.12.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.12.0.tgz#fab3b908f60c52671fb14e996a450b96c743c859" - integrity sha512-LntwyPxtOHrsJdcSwyQKVtHofPHdv+4+mFwEe91r2V13vqpM8yLr7b1sW+Oo/yheOPkWYsYlYJCkzlFAt8KV7g== +eslint@5.15.1: + version "5.15.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.15.1.tgz#8266b089fd5391e0009a047050795b1d73664524" + integrity sha512-NTcm6vQ+PTgN3UBsALw5BMhgO6i5EpIjQF/Xb5tIh3sk9QhrFafujUOczGz4J24JBlzWclSB9Vmx8d+9Z6bFCg== dependencies: "@babel/code-frame" "^7.0.0" - ajv "^6.5.3" + ajv "^6.9.1" chalk "^2.1.0" cross-spawn "^6.0.5" debug "^4.0.1" - doctrine "^2.1.0" - eslint-scope "^4.0.0" + doctrine "^3.0.0" + eslint-scope "^4.0.2" eslint-utils "^1.3.1" eslint-visitor-keys "^1.0.0" - espree "^5.0.0" + espree "^5.0.1" esquery "^1.0.1" esutils "^2.0.2" - file-entry-cache "^2.0.0" + file-entry-cache "^5.0.1" functional-red-black-tree "^1.0.1" glob "^7.1.2" globals "^11.7.0" ignore "^4.0.6" import-fresh "^3.0.0" imurmurhash "^0.1.4" - inquirer "^6.1.0" + inquirer "^6.2.2" js-yaml "^3.12.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.3.0" - lodash "^4.17.5" + lodash "^4.17.11" minimatch "^3.0.4" mkdirp "^0.5.1" natural-compare "^1.4.0" optionator "^0.8.2" path-is-inside "^1.0.2" - pluralize "^7.0.0" progress "^2.0.0" regexpp "^2.0.1" semver "^5.5.1" strip-ansi "^4.0.0" strip-json-comments "^2.0.1" - table "^5.0.2" + table "^5.2.3" text-table "^0.2.0" -espree@^5.0.0: +espree@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== @@ -3536,38 +3614,10 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -exec-sh@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.2.tgz#2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36" - integrity sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw== - dependencies: - merge "^1.2.0" - -execa@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" - integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw== - dependencies: - cross-spawn "^6.0.0" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" +exec-sh@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.2.tgz#6738de2eb7c8e671d0366aea0b0db8c6f7d7391b" + integrity sha512-9sLAvzhI5nc8TpuQUh4ahMdCrWT00wPWz7j47/emR5+2qEfoZP5zzUXvx+vdx+H6ohhnsYC31iX04QLYJK8zTg== execa@^1.0.0: version "1.0.0" @@ -3587,13 +3637,6 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s= - dependencies: - is-posix-bracket "^0.1.0" - expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -3607,24 +3650,17 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= - 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.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-24.5.0.tgz#492fb0df8378d8474cc84b827776b069f46294ed" + integrity sha512-p2Gmc0CLxOgkyA93ySWmHFYHUPFIHG6XZ06l7WArWAsrqYVaVEkOU5NtT5i68KUyGKbkQgDCkiT65bWmdoL6Bw== dependencies: + "@jest/types" "^24.5.0" 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.3.0" + jest-matcher-utils "^24.5.0" + jest-message-util "^24.5.0" + jest-regex-util "^24.3.0" express@^4.16.2: version "4.16.4" @@ -3691,13 +3727,6 @@ external-editor@^3.0.0, external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE= - dependencies: - is-extglob "^1.0.0" - extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -3749,11 +3778,6 @@ fast-levenshtein@~2.0.4: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= -fastparse@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" - integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== - faye-websocket@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" @@ -3787,28 +3811,22 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" -file-entry-cache@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" - integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E= +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" + flat-cache "^2.0.1" -file-loader@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-2.0.0.tgz#39749c82f020b9e85901dcff98e8004e6401cfde" - integrity sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ== +file-loader@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-3.0.1.tgz#f8e0ba0b599918b51adfe45d66d1e771ad560faa" + integrity sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw== dependencies: loader-utils "^1.0.2" schema-utils "^1.0.0" -filename-regex@^2.0.0: - version "2.0.1" - 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= @@ -3821,17 +3839,6 @@ filesize@3.6.1: resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== -fill-range@^2.1.0: - version "2.2.4" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" - integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q== - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^3.0.0" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -3865,12 +3872,12 @@ find-cache-dir@^0.1.1: pkg-dir "^1.0.0" find-cache-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.0.0.tgz#4c1faed59f45184530fb9d7fa123a4d04a98472d" - integrity sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA== + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== dependencies: commondir "^1.0.1" - make-dir "^1.0.0" + make-dir "^2.0.0" pkg-dir "^3.0.0" find-up@3.0.0, find-up@^3.0.0: @@ -3895,15 +3902,19 @@ find-up@^2.0.0, find-up@^2.1.0: dependencies: locate-path "^2.0.0" -flat-cache@^1.2.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" - integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg== +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== dependencies: - circular-json "^0.3.1" - graceful-fs "^4.1.2" - rimraf "~2.6.2" - write "^0.2.1" + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz#55122b6536ea496b4b44893ee2608141d10d9916" + integrity sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg== flatten@^1.0.2: version "1.0.2" @@ -3935,7 +3946,7 @@ for-in@^1.0.1, for-in@^1.0.2: resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= -for-own@^0.1.3, for-own@^0.1.4: +for-own@^0.1.3: version "0.1.5" resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= @@ -3954,6 +3965,19 @@ forever-agent@~0.6.1: resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= +fork-ts-checker-webpack-plugin@1.0.0-alpha.6: + version "1.0.0-alpha.6" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.0.0-alpha.6.tgz#826c57048addf8a3253853615c84f3ff7beeaf45" + integrity sha512-s/V+58nLrUjuXyzYk8AL11XG8bxIirTbafDLMn26sL59HQx8QvvsRTqOkhq4MV0coIkog1jZuH/E9Abm8zFZ2g== + dependencies: + babel-code-frame "^6.22.0" + chalk "^2.4.1" + chokidar "^2.0.4" + micromatch "^3.1.10" + minimatch "^3.0.4" + semver "^5.6.0" + tapable "^1.0.0" + form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" @@ -4028,7 +4052,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^1.2.3, fsevents@^1.2.7: +fsevents@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.7.tgz#4851b664a3783e52003b3c66eb0eee1074933aa4" integrity sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw== @@ -4070,11 +4094,6 @@ get-own-enumerable-property-symbols@^3.0.0: resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203" integrity sha512-CIJYJC4GGF06TakLg8z4GQKvDsx9EMspVxOYih7LerEL/WosUnFIww45CGfxfeKHqlg3twgUrYRT1O3WQqjGCg== -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - get-stream@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" @@ -4094,21 +4113,6 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= - dependencies: - is-glob "^2.0.0" - glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" @@ -4155,11 +4159,6 @@ globals@^11.1.0, globals@^11.7.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.11.0.tgz#dcf93757fa2de5486fbeed7118538adf789e9c2e" integrity sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw== -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== - globby@8.0.2: version "8.0.2" resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d" @@ -4207,7 +4206,7 @@ handle-thing@^2.0.0: resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== -handlebars@^4.0.3: +handlebars@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.0.tgz#0d6a6f34ff1f63cecec8423aa4169827bf787c3a" integrity sha512-l2jRuU1NAWK6AW5qqcTATWQJvNPEwkM7NEKSiv/gqOsoSQbVoWyqVEY5GS+XPQ88zLNmqASRpzfdm8d79hJS+w== @@ -4243,11 +4242,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" @@ -4367,14 +4361,6 @@ hoek@4.x.x: resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" integrity sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA== -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" - hoopy@^0.1.2: version "0.1.4" resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" @@ -4422,7 +4408,7 @@ html-entities@^1.2.0: resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= -html-minifier@^3.2.3: +html-minifier@^3.5.20: version "3.5.21" resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== @@ -4435,17 +4421,16 @@ html-minifier@^3.2.3: relateurl "0.2.x" uglify-js "3.4.x" -html-webpack-plugin@4.0.0-alpha.2: - version "4.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.0.0-alpha.2.tgz#7745967e389a57a098e26963f328ebe4c19b598d" - integrity sha512-tyvhjVpuGqD7QYHi1l1drMQTg5i+qRxpQEGbdnYFREgOKy7aFDf/ocQ/V1fuEDlQx7jV2zMap3Hj2nE9i5eGXw== +html-webpack-plugin@4.0.0-beta.5: + version "4.0.0-beta.5" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.0.0-beta.5.tgz#2c53083c1151bfec20479b1f8aaf0039e77b5513" + integrity sha512-y5l4lGxOW3pz3xBTFdfB9rnnrWRPVxlAhX6nrBYIcW+2k2zC3mSp/3DxlWVCMBfnO6UAnoF8OcFn0IMy6kaKAQ== dependencies: - "@types/tapable" "1.0.2" - html-minifier "^3.2.3" + html-minifier "^3.5.20" loader-utils "^1.1.0" - lodash "^4.17.10" - pretty-error "^2.0.2" - tapable "^1.0.0" + lodash "^4.17.11" + pretty-error "^2.1.1" + tapable "^1.1.0" util.promisify "1.0.0" htmlparser2@^3.3.0: @@ -4480,17 +4465,17 @@ http-parser-js@>=0.4.0: resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.0.tgz#d65edbede84349d0dc30320815a15d39cc3cbbd8" integrity sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w== -http-proxy-middleware@~0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz#0987e6bb5a5606e5a69168d8f967a87f15dd8aab" - integrity sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q== +http-proxy-middleware@^0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" + integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== dependencies: - http-proxy "^1.16.2" + http-proxy "^1.17.0" is-glob "^4.0.0" - lodash "^4.17.5" - micromatch "^3.1.9" + lodash "^4.17.11" + micromatch "^3.1.10" -http-proxy@^1.16.2: +http-proxy@^1.17.0: version "1.17.0" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" integrity sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g== @@ -4532,12 +4517,12 @@ icss-replace-symbols@^1.1.0: resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= -icss-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" - integrity sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI= +icss-utils@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.0.tgz#339dbbffb9f8729a243b701e1c29d4cc58c52f0e" + integrity sha512-3DEun4VOeMvSczifM3F2cKQrDQ5Pj6WKhkOq6HD4QTnDUAq8MQRxy5TX6Sy1iY6WPBe4gQ3p5vTECjbIkglkkQ== dependencies: - postcss "^6.0.1" + postcss "^7.0.14" identity-obj-proxy@3.0.0: version "3.0.0" @@ -4608,14 +4593,6 @@ import-from@^2.1.0: dependencies: resolve-from "^3.0.0" -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== - dependencies: - pkg-dir "^2.0.0" - resolve-cwd "^2.0.0" - import-local@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" @@ -4681,7 +4658,7 @@ inquirer@6.2.1: strip-ansi "^5.0.0" through "^2.3.6" -inquirer@^6.1.0: +inquirer@^6.2.2: version "6.2.2" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.2.tgz#46941176f65c9eb20804627149b743a218f25406" integrity sha512-Z2rREiXA6cHRR9KBOarR3WuLlFzlIfAEIiB45ll5SSadMg7WqOh1MKEjjndfuH5ewXdixWCxqnVfGOQzPeiztA== @@ -4700,13 +4677,13 @@ inquirer@^6.1.0: strip-ansi "^5.0.0" through "^2.3.6" -internal-ip@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-3.0.1.tgz#df5c99876e1d2eb2ea2d74f520e3f669a00ece27" - integrity sha512-NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q== +internal-ip@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.2.0.tgz#46e81b638d84c338e5c67e42b1a17db67d0814fa" + integrity sha512-ZY8Rk+hlvFeuMmG5uH1MXhhdeMntmIaxaInvAmzMq/SHV8rv4Kh+6GiQNNDQd0wZFrcO+FiTBo8lui/osKOyJw== dependencies: - default-gateway "^2.6.0" - ipaddr.js "^1.5.2" + default-gateway "^4.0.1" + ipaddr.js "^1.9.0" invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" @@ -4715,11 +4692,6 @@ invariant@^2.2.2, invariant@^2.2.4: dependencies: loose-envify "^1.0.0" -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= - invert-kv@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" @@ -4740,7 +4712,7 @@ ipaddr.js@1.8.0: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" integrity sha1-6qM9bd16zo9/b+DJygRA5wZzix4= -ipaddr.js@^1.5.2: +ipaddr.js@^1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== @@ -4796,12 +4768,12 @@ is-callable@^1.1.4: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== -is-ci@^1.0.10: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" - integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== dependencies: - ci-info "^1.5.0" + ci-info "^2.0.0" is-color-stop@^1.0.0: version "1.1.0" @@ -4857,18 +4829,6 @@ is-directory@^0.3.1: resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" - integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE= - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ= - dependencies: - is-primitive "^2.0.0" - is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -4881,23 +4841,11 @@ is-extendable@^1.0.1: dependencies: is-plain-object "^2.0.4" -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= - is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= -is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko= - dependencies: - number-is-nan "^1.0.0" - is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" @@ -4910,17 +4858,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-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= - dependencies: - is-extglob "^1.0.0" +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@^3.1.0: version "3.1.0" @@ -4936,13 +4877,6 @@ is-glob@^4.0.0: dependencies: is-extglob "^2.1.1" -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= - dependencies: - kind-of "^3.0.2" - is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -4950,11 +4884,6 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" -is-number@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" - integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== - is-obj@^1.0.0, is-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" @@ -4991,16 +4920,6 @@ is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q= - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= - is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" @@ -5052,11 +4971,6 @@ is-typedarray@~1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= - is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -5101,373 +5015,395 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -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.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-2.1.1.tgz#194b773f6d9cbc99a9258446848b0f988951c4d0" + integrity sha512-kVmYrehiwyeBAk/wE71tW6emzLiHGjYIiDrc8sfyty4F8M02/lrgXSm+R1kXysmF20zArvmZXjlE/mg24TVPJw== + 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.1" + 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: - 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-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@^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-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: - 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== +istanbul-lib-instrument@^3.0.0, 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: - babel-generator "^6.18.0" - babel-template "^6.16.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - babylon "^6.18.0" - istanbul-lib-coverage "^1.2.1" - semver "^5.3.0" + "@babel/generator" "^7.0.0" + "@babel/parser" "^7.0.0" + "@babel/template" "^7.0.0" + "@babel/traverse" "^7.0.0" + "@babel/types" "^7.0.0" + istanbul-lib-coverage "^2.0.3" + semver "^5.5.0" -istanbul-lib-report@^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-report@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.4.tgz#bfd324ee0c04f59119cb4f07dab157d09f24d7e4" + integrity sha512-sOiLZLAWpA0+3b5w5/dq0cjm2rrNdAfHWaGhmn7XEFW6X++IV9Ohn+pnELAl9K3rfpaeBfbmH9JU5sejacdLeA== dependencies: - istanbul-lib-coverage "^1.2.1" - mkdirp "^0.5.1" - path-parse "^1.0.5" - supports-color "^3.1.2" + istanbul-lib-coverage "^2.0.3" + make-dir "^1.3.0" + supports-color "^6.0.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-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 "^3.1.0" - istanbul-lib-coverage "^1.2.1" - mkdirp "^0.5.1" - rimraf "^2.6.1" - source-map "^0.5.3" + 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@^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-reports@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.1.1.tgz#72ef16b4ecb9a4a7bd0e2001e00f95d1eec8afa9" + integrity sha512-FzNahnidyEPBCI0HcufJoSEoKykesRlFcSzQqjH9x0+LC8tnnE/p/90PBLu8iZTxr8yYZNyTtiAujUqyN+CIxw== dependencies: - handlebars "^4.0.3" + handlebars "^4.1.0" -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.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.5.0.tgz#4075269ee115d87194fd5822e642af22133cf705" + integrity sha512-Ikl29dosYnTsH9pYa1Tv9POkILBhN/TLZ37xbzgNsZ1D2+2n+8oEZS2yP1BrHn/T4Rs4Ggwwbp/x8CKOS5YJOg== dependencies: + "@jest/types" "^24.5.0" + 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.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.5.0.tgz#598139d3446d1942fb7dc93944b9ba766d756d4b" + integrity sha512-P+Jp0SLO4KWN0cGlNtC7JV0dW1eSFR7eRpoOucP2UM0sqlzp/bVHeo71Omonvigrj9AvCKy7NtQANtqJ7FXz8g== dependencies: - ansi-escapes "^3.0.0" + "@jest/core" "^24.5.0" + "@jest/test-result" "^24.5.0" + "@jest/types" "^24.5.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" - node-notifier "^5.2.1" - prompts "^0.1.9" - realpath-native "^1.0.0" - rimraf "^2.5.4" - slash "^1.0.0" - string-length "^2.0.0" - strip-ansi "^4.0.0" - which "^1.2.12" - yargs "^11.0.0" - -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== - dependencies: - babel-core "^6.0.0" - babel-jest "^23.6.0" + import-local "^2.0.0" + is-ci "^2.0.0" + jest-config "^24.5.0" + jest-util "^24.5.0" + jest-validate "^24.5.0" + prompts "^2.0.1" + realpath-native "^1.1.0" + yargs "^12.0.2" + +jest-config@^24.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.5.0.tgz#404d1bc6bb81aed6bd1890d07e2dca9fbba2e121" + integrity sha512-t2UTh0Z2uZhGBNVseF8wA2DS2SuBiLOL6qpLq18+OZGfFUxTM7BzUVKyHFN/vuN+s/aslY1COW95j1Rw81huOQ== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^24.5.0" + babel-jest "^24.5.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-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-environment-jsdom "^24.5.0" + jest-environment-node "^24.5.0" + jest-get-type "^24.3.0" + jest-jasmine2 "^24.5.0" + jest-regex-util "^24.3.0" + jest-resolve "^24.5.0" + jest-util "^24.5.0" + jest-validate "^24.5.0" + micromatch "^3.1.10" + pretty-format "^24.5.0" + realpath-native "^1.1.0" + +jest-diff@^24.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.5.0.tgz#a2d8627964bb06a91893c0fbcb28ab228c257652" + integrity sha512-mCILZd9r7zqL9Uh6yNoXjwGQx0/J43OD2vvWVKwOEOLZliQOsojXwqboubAQ+Tszrb6DHGmNU7m4whGeB9YOqw== dependencies: chalk "^2.0.1" - diff "^3.2.0" - jest-get-type "^22.1.0" - pretty-format "^23.6.0" + diff-sequences "^24.3.0" + jest-get-type "^24.3.0" + pretty-format "^24.5.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.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.3.0.tgz#b9c32dac70f72e4464520d2ba4aec02ab14db5dd" + integrity sha512-nlANmF9Yq1dufhFlKG9rasfQlrY7wINJbo3q01tu56Jv5eBU5jirylhF2O5ZBnLxzOVBGRDz/9NAwNyBtG4Nyg== 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.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.5.0.tgz#da14d017a1b7d0f01fb458d338314cafe7f72318" + integrity sha512-6gy3Kh37PwIT5sNvNY2VchtIFOOBh8UCYnBlxXMb5sr5wpJUDPTUATX2Axq1Vfk+HWTMpsYPeVYp4TXx5uqUBw== dependencies: + "@jest/types" "^24.5.0" chalk "^2.0.1" - pretty-format "^23.6.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= - dependencies: - jest-mock "^23.2.0" - jest-util "^23.4.0" + jest-get-type "^24.3.0" + jest-util "^24.5.0" + pretty-format "^24.5.0" + +jest-environment-jsdom@^24.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.5.0.tgz#1c3143063e1374100f8c2723a8b6aad23b6db7eb" + integrity sha512-62Ih5HbdAWcsqBx2ktUnor/mABBo1U111AvZWcLKeWN/n/gc5ZvDBKe4Og44fQdHKiXClrNGC6G0mBo6wrPeGQ== + dependencies: + "@jest/environment" "^24.5.0" + "@jest/fake-timers" "^24.5.0" + "@jest/types" "^24.5.0" + jest-mock "^24.5.0" + jest-util "^24.5.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.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.5.0.tgz#763eebdf529f75b60aa600c6cf8cb09873caa6ab" + integrity sha512-du6FuyWr/GbKLsmAbzNF9mpr2Iu2zWSaq/BNHzX+vgOcts9f2ayXBweS7RAhr+6bLp6qRpMB6utAMF5Ygktxnw== dependencies: - jest-mock "^23.2.0" - jest-util "^23.4.0" + "@jest/environment" "^24.5.0" + "@jest/fake-timers" "^24.5.0" + "@jest/types" "^24.5.0" + jest-mock "^24.5.0" + jest-util "^24.5.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-get-type@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.3.0.tgz#582cfd1a4f91b5cdad1d43d2932f816d543c65da" + integrity sha512-HYF6pry72YUlVcvUx3sEpMRwXEWGEPlJ0bSPVnB3b3n++j4phUEoSPcS6GC0pPJ9rpyPSe4cb5muFo6D39cXow== -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-haste-map@^24.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.5.0.tgz#3f17d0c548b99c0c96ed2893f9c0ccecb2eb9066" + integrity sha512-mb4Yrcjw9vBgSvobDwH8QUovxApdimGcOkp+V1ucGGw4Uvr3VzZQBJhNm1UY3dXYm4XXyTW2G7IBEZ9pM2ggRQ== dependencies: + "@jest/types" "^24.5.0" 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-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== - dependencies: - babel-traverse "^6.0.0" + jest-serializer "^24.4.0" + jest-util "^24.5.0" + jest-worker "^24.4.0" + micromatch "^3.1.10" + sane "^4.0.3" + +jest-jasmine2@^24.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.5.0.tgz#e6af4d7f73dc527d007cca5a5b177c0bcc29d111" + integrity sha512-sfVrxVcx1rNUbBeyIyhkqZ4q+seNKyAG6iM0S2TYBdQsXjoFDdqWFfsUxb6uXSsbimbXX/NMkJIwUZ1uT9+/Aw== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^24.5.0" + "@jest/test-result" "^24.5.0" + "@jest/types" "^24.5.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.5.0" + is-generator-fn "^2.0.0" + jest-each "^24.5.0" + jest-matcher-utils "^24.5.0" + jest-message-util "^24.5.0" + jest-runtime "^24.5.0" + jest-snapshot "^24.5.0" + jest-util "^24.5.0" + pretty-format "^24.5.0" + throat "^4.0.0" + +jest-leak-detector@^24.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.5.0.tgz#21ae2b3b0da252c1171cd494f75696d65fb6fa89" + integrity sha512-LZKBjGovFRx3cRBkqmIg+BZnxbrLqhQl09IziMk3oeh1OV81Hg30RUIx885mq8qBv1PA0comB9bjKcuyNO1bCQ== + dependencies: + pretty-format "^24.5.0" + +jest-matcher-utils@^24.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.5.0.tgz#5995549dcf09fa94406e89526e877b094dad8770" + integrity sha512-QM1nmLROjLj8GMGzg5VBra3I9hLpjMPtF1YqzQS3rvWn2ltGZLrGAO1KQ9zUCVi5aCvrkbS5Ndm2evIP9yZg1Q== dependencies: chalk "^2.0.1" - jest-get-type "^22.1.0" - pretty-format "^23.6.0" + jest-diff "^24.5.0" + jest-get-type "^24.3.0" + pretty-format "^24.5.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.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.5.0.tgz#181420a65a7ef2e8b5c2f8e14882c453c6d41d07" + integrity sha512-6ZYgdOojowCGiV0D8WdgctZEAe+EcFU+KrVds+0ZjvpZurUW2/oKJGltJ6FWY2joZwYXN5VL36GPV6pNVRqRnQ== dependencies: - "@babel/code-frame" "^7.0.0-beta.35" + "@babel/code-frame" "^7.0.0" + "@jest/test-result" "^24.5.0" + "@jest/types" "^24.5.0" + "@types/stack-utils" "^1.0.1" 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.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.5.0.tgz#976912c99a93f2a1c67497a9414aa4d9da4c7b76" + integrity sha512-ZnAtkWrKf48eERgAOiUxVoFavVBziO2pAi2MfZ1+bGXVkDfxWLxU0//oJBkgwbsv6OAmuLBz4XFFqvCFMqnGUw== + dependencies: + "@jest/types" "^24.5.0" -jest-pnp-resolver@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.0.2.tgz#470384ae9ea31f72136db52618aa4010ff23b715" - integrity sha512-H2DvUlwdMedNGv4FOliPDnxani6ATWy70xe2eckGJgkLoMaWzRPqpSlc5ShqX0Ltk5OhRQvPQY2LLZPOpgcc7g== +jest-pnp-resolver@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" + integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ== -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.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.3.0.tgz#d5a65f60be1ae3e310d5214a0307581995227b36" + integrity sha512-tXQR1NEOyGlfylyEjg1ImtScwMq8Oh3iJbGTjN7p0J23EuVX1MA8rwU69K4sLbCmwzgCUbVkm0FkSF9TdzOhtg== -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.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.5.0.tgz#1a0dae9cdd41349ca4a84148b3e78da2ba33fd4b" + integrity sha512-dRVM1D+gWrFfrq2vlL5P9P/i8kB4BOYqYf3S7xczZ+A6PC3SgXYSErX/ScW/469pWMboM1uAhgLF+39nXlirCQ== dependencies: - jest-regex-util "^23.3.0" - jest-snapshot "^23.6.0" + "@jest/types" "^24.5.0" + jest-regex-util "^24.3.0" + jest-snapshot "^24.5.0" -jest-resolve@23.6.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.5.0, jest-resolve@^24.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.5.0.tgz#8c16ba08f60a1616c3b1cd7afb24574f50a24d04" + integrity sha512-ZIfGqLX1Rg8xJpQqNjdoO8MuxHV1q/i2OO1hLXjgCWFWs5bsedS8UrOdgjUqqNae6DXA+pCyRmdcB7lQEEbXew== dependencies: + "@jest/types" "^24.5.0" 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== - dependencies: + jest-pnp-resolver "^1.2.1" + realpath-native "^1.1.0" + +jest-runner@^24.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.5.0.tgz#9be26ece4fd4ab3dfb528b887523144b7c5ffca8" + integrity sha512-oqsiS9TkIZV5dVkD+GmbNfWBRPIvxqmlTQ+AQUJUQ07n+4xTSDc40r+aKBynHw9/tLzafC00DIbJjB2cOZdvMA== + dependencies: + "@jest/console" "^24.3.0" + "@jest/environment" "^24.5.0" + "@jest/test-result" "^24.5.0" + "@jest/types" "^24.5.0" + chalk "^2.4.2" 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.5.0" + jest-docblock "^24.3.0" + jest-haste-map "^24.5.0" + jest-jasmine2 "^24.5.0" + jest-leak-detector "^24.5.0" + jest-message-util "^24.5.0" + jest-resolve "^24.5.0" + jest-runtime "^24.5.0" + jest-util "^24.5.0" + jest-worker "^24.4.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== - dependencies: - babel-core "^6.0.0" - babel-plugin-istanbul "^4.1.6" +jest-runtime@^24.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.5.0.tgz#3a76e0bfef4db3896d5116e9e518be47ba771aa2" + integrity sha512-GTFHzfLdwpaeoDPilNpBrorlPoNZuZrwKKzKJs09vWwHo+9TOsIIuszK8cWOuKC7ss07aN1922Ge8fsGdsqCuw== + dependencies: + "@jest/console" "^24.3.0" + "@jest/environment" "^24.5.0" + "@jest/source-map" "^24.3.0" + "@jest/transform" "^24.5.0" + "@jest/types" "^24.5.0" + "@types/yargs" "^12.0.2" 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" - realpath-native "^1.0.0" - slash "^1.0.0" - strip-bom "3.0.0" - write-file-atomic "^2.1.0" - yargs "^11.0.0" + glob "^7.1.3" + graceful-fs "^4.1.15" + jest-config "^24.5.0" + jest-haste-map "^24.5.0" + jest-message-util "^24.5.0" + jest-mock "^24.5.0" + jest-regex-util "^24.3.0" + jest-resolve "^24.5.0" + jest-snapshot "^24.5.0" + jest-util "^24.5.0" + jest-validate "^24.5.0" + realpath-native "^1.1.0" + slash "^2.0.0" + strip-bom "^3.0.0" + 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.4.0: + version "24.4.0" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.4.0.tgz#f70c5918c8ea9235ccb1276d232e459080588db3" + integrity sha512-k//0DtglVstc1fv+GY/VHDIjrtNjdYvYjMlbLUed4kxrE92sIUewOi5Hj3vrpB8CXfkJntRPDRjCrCvUhBdL8Q== -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.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.5.0.tgz#e5d224468a759fd19e36f01217aac912f500f779" + integrity sha512-eBEeJb5ROk0NcpodmSKnCVgMOo+Qsu5z9EDl3tGffwPzK1yV37mjGWF2YeIz1NkntgTzP+fUL4s09a0+0dpVWA== dependencies: - babel-types "^6.0.0" + "@babel/types" "^7.0.0" + "@jest/types" "^24.5.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" + expect "^24.5.0" + jest-diff "^24.5.0" + jest-matcher-utils "^24.5.0" + jest-message-util "^24.5.0" + jest-resolve "^24.5.0" mkdirp "^0.5.1" natural-compare "^1.4.0" - pretty-format "^23.6.0" + pretty-format "^24.5.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.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.5.0.tgz#9d9cb06d9dcccc8e7cc76df91b1635025d7baa84" + integrity sha512-Xy8JsD0jvBz85K7VsTIQDuY44s+hYJyppAhcsHsOsGisVtdhar6fajf2UOf2mEVEgh15ZSdA0zkCuheN8cbr1Q== dependencies: - callsites "^2.0.0" + "@jest/console" "^24.3.0" + "@jest/fake-timers" "^24.5.0" + "@jest/source-map" "^24.3.0" + "@jest/test-result" "^24.5.0" + "@jest/types" "^24.5.0" + "@types/node" "*" + 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" mkdirp "^0.5.1" - slash "^1.0.0" + slash "^2.0.0" source-map "^0.6.0" -jest-validate@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.6.0.tgz#36761f99d1ed33fcd425b4e4c5595d62b6597474" - integrity sha512-OFKapYxe72yz7agrDAWi8v2WL8GIfVqcbKRCLbRG9PAxtzF9b1SEDdTpytNDN12z2fJynoBwpMpvj2R39plI2A== +jest-validate@^24.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.5.0.tgz#62fd93d81214c070bb2d7a55f329a79d8057c7de" + integrity sha512-gg0dYszxjgK2o11unSIJhkOFZqNRQbWOAB2/LOUdsd2LfD9oXiMeuee8XsT0iRy5EvSccBgB4h/9HRbIo3MHgQ== dependencies: + "@jest/types" "^24.5.0" + camelcase "^5.0.0" chalk "^2.0.1" - jest-get-type "^22.1.0" + jest-get-type "^24.3.0" leven "^2.1.0" - pretty-format "^23.6.0" + pretty-format "^24.5.0" jest-watch-typeahead@^0.2.1: version "0.2.1" @@ -5481,7 +5417,7 @@ jest-watch-typeahead@^0.2.1: string-length "^2.0.0" strip-ansi "^5.0.0" -jest-watcher@^23.1.0, jest-watcher@^23.4.0: +jest-watcher@^23.1.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= @@ -5490,20 +5426,36 @@ jest-watcher@^23.1.0, jest-watcher@^23.4.0: chalk "^2.0.1" 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-watcher@^24.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.5.0.tgz#da7bd9cb5967e274889b42078c8f501ae1c47761" + integrity sha512-/hCpgR6bg0nKvD3nv4KasdTxuhwfViVMHUATJlnGCD0r1QrmIssimPbmc5KfAQblAVxkD8xrzuij9vfPUk1/rA== + dependencies: + "@jest/test-result" "^24.5.0" + "@jest/types" "^24.5.0" + "@types/node" "*" + "@types/yargs" "^12.0.9" + ansi-escapes "^3.0.0" + chalk "^2.0.1" + jest-util "^24.5.0" + string-length "^2.0.0" + +jest-worker@^24.4.0: + version "24.4.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.4.0.tgz#fbc452b0120bb5c2a70cdc88fa132b48eeb11dd0" + integrity sha512-BH9X/klG9vxwoO99ZBUbZFfV8qO0XNZ5SIiCyYK2zOuJBl6YJVAeNIQjcoOVNu4HGEHeYEKsUWws8kSlSbZ9YQ== dependencies: + "@types/node" "*" 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.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-24.5.0.tgz#38f11ae2c2baa2f86c2bc4d8a91d2b51612cd19a" + integrity sha512-lxL+Fq5/RH7inxxmfS2aZLCf8MsS+YCUBfeiNO6BWz/MmjhDGaIEA/2bzEf9q4Q0X+mtFHiinHFvQ0u+RvW/qQ== dependencies: - import-local "^1.0.0" - jest-cli "^23.6.0" + import-local "^2.0.0" + jest-cli "^24.5.0" joi@^11.1.1: version "11.4.0" @@ -5529,7 +5481,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.2" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.2.tgz#ef1d067c5a9d9cb65bd72f285b5d8105c77f14fc" integrity sha512-QHn/Lh/7HhZ/Twc7vJYQTkjuCa0kaCcDcjK5Zlk2rvnUpy7DxMJ23+Jc2dcyvltwQVg1nygAVlB2oRDFHoRS5Q== @@ -5574,11 +5526,6 @@ jsdom@^11.5.1: ws "^5.2.0" xml-name-validator "^3.0.0" -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= - jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -5626,11 +5573,6 @@ json3@^3.3.2: resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" integrity sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE= -json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= - json5@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" @@ -5710,10 +5652,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.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.2.tgz#83c7ec858a41098b613d5998a7b653962b504f68" + integrity sha512-3h7B2WRT5LNXOtQiAaWonilegHcPSf9nLVXlSTci8lu1dZUuui61+EsPEZqSVxY7rXYmB2DVKMQILxaO5WL61Q== last-call-webpack-plugin@^3.0.0: version "3.0.0" @@ -5733,13 +5675,6 @@ lazy-cache@^1.0.3: resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= - dependencies: - invert-kv "^1.0.0" - lcid@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" @@ -5765,17 +5700,6 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - load-json-file@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" @@ -5786,6 +5710,16 @@ load-json-file@^2.0.0: pify "^2.0.0" strip-bom "^3.0.0" +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + loader-fs-cache@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz#56e0bf08bd9708b26a765b68509840c8dec9fdbc" @@ -5799,7 +5733,7 @@ loader-runner@^2.3.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== -loader-utils@1.2.3, loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0: +loader-utils@1.2.3, loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== @@ -5829,11 +5763,6 @@ lodash._reinterpolate@~3.0.0: resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= - lodash.get@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" @@ -5869,12 +5798,17 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "~3.0.0" +lodash.unescape@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c" + integrity sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw= + lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -"lodash@>=3.5 <5", lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5: +"lodash@>=3.5 <5", lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.5: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== @@ -5896,14 +5830,6 @@ lower-case@^1.1.1: resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -5911,13 +5837,21 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -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== dependencies: pify "^3.0.0" +make-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + makeerror@1.0.x: version "1.0.11" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" @@ -5925,6 +5859,11 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" +mamacro@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" + integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== + map-age-cleaner@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" @@ -5944,11 +5883,6 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -math-random@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" - integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A== - md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" @@ -5968,23 +5902,16 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -mem@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" - integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y= - dependencies: - mimic-fn "^1.0.0" - mem@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.1.0.tgz#aeb9be2d21f47e78af29e4ac5978e8afa2ca5b8a" - integrity sha512-I5u6Q1x7wxO0kdOpYBB28xueHADYps5uty/zg936CiG8NTe5sJL8EjrCuLneuDW3PlMdZBGDIn8BirEVdovZvg== + version "4.2.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.2.0.tgz#5ee057680ed9cb8dad8a78d820f9a8897a102025" + integrity sha512-5fJxa68urlY0Ir8ijatKa3eRz5lwXnRCTvo9+TbTGAuTFJOwpGcY0X05moBd0nW45965Njt4CDI2GFQoG8DvqA== dependencies: map-age-cleaner "^0.1.1" - mimic-fn "^1.0.0" + mimic-fn "^2.0.0" p-is-promise "^2.0.0" -memory-fs@^0.4.0, memory-fs@~0.4.1: +memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= @@ -6018,36 +5945,12 @@ merge2@^1.2.3: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5" integrity sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA== -merge@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" - integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ== - methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= -micromatch@^2.3.11: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" - -micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8, micromatch@^3.1.9: +micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== @@ -6101,6 +6004,11 @@ mimic-fn@^1.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== +mimic-fn@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.0.0.tgz#0913ff0b121db44ef5848242c38bbb35d44cabde" + integrity sha512-jbex9Yd/3lmICXwYT6gA/j2mNQGU48wCh/VzRd+/Y/PjYQtlg1gLMdZqvu9s/xH7qKvngxRObl56XZR609IMbA== + mini-css-extract-plugin@0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz#ac0059b02b9692515a637115b0cc9fed3a35c7b0" @@ -6237,9 +6145,9 @@ mute-stream@0.0.7: integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= nan@^2.9.2: - version "2.12.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.12.1.tgz#7b1aa193e9aa86057e3c7bbd0ac448e770925552" - integrity sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw== + version "2.13.1" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.1.tgz#a15bee3790bde247e8f38f1d446edcdaeb05f2dd" + integrity sha512-I6YB/YEuDeUZMmhscXKxGgZlFnhsn5y0hgOZBadkzfTRrZBtJDZeg6eQf7PYMIEclwmorTKK8GztsyOUSVBREA== nanomatch@^1.2.9: version "1.2.13" @@ -6333,6 +6241,11 @@ node-libs-browser@^2.0.0: util "^0.11.0" vm-browserify "0.0.4" +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.4.0" resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.0.tgz#7b455fdce9f7de0c63538297354f3db468426e6a" @@ -6361,9 +6274,9 @@ node-pre-gyp@^0.10.0: tar "^4" node-releases@^1.1.3, node-releases@^1.1.8: - version "1.1.9" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.9.tgz#70d0985ec4bf7de9f08fc481f5dae111889ca482" - integrity sha512-oic3GT4OtbWWKfRolz5Syw0Xus0KRFxeorLNj0s93ofX6PWyuzKjsiGxsCtWktBwwmTF6DdRRf2KreGqeOk5KA== + version "1.1.10" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.10.tgz#5dbeb6bc7f4e9c85b899e2e7adcc0635c9b2adf7" + integrity sha512-KbUPCpfoBvb3oBkej9+nrU0/7xPlVhmhhUJ1PZqwIP5/1dJkRWKWD3OONjo6M2J7tSCBtDCumLwwqeI+DWWaLQ== dependencies: semver "^5.3.0" @@ -6385,7 +6298,7 @@ normalize-package-data@^2.3.2: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^2.0.1, normalize-path@^2.1.1: +normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= @@ -6523,14 +6436,6 @@ object.getownpropertydescriptors@^2.0.3: define-properties "^1.1.2" es-abstract "^1.5.1" -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo= - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" @@ -6631,15 +6536,6 @@ os-homedir@^1.0.0: resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= -os-locale@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" - integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA== - dependencies: - execa "^0.7.0" - lcid "^1.0.0" - mem "^1.1.0" - os-locale@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" @@ -6649,7 +6545,7 @@ os-locale@^3.0.0: lcid "^2.0.0" mem "^4.0.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= @@ -6667,6 +6563,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-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -6710,6 +6613,11 @@ p-map@^1.1.1: resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA== +p-reduce@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" + integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= + p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" @@ -6760,16 +6668,6 @@ parse-asn1@^5.0.0: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw= - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" @@ -6827,7 +6725,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= @@ -6842,7 +6740,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== @@ -6852,15 +6750,6 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - path-type@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" @@ -6901,6 +6790,11 @@ pify@^3.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" @@ -6913,6 +6807,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.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" + integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== + dependencies: + node-modules-regexp "^1.0.0" + pkg-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" @@ -6941,11 +6842,6 @@ pkg-up@2.0.0: dependencies: find-up "^2.1.0" -pluralize@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" - integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== - pn@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" @@ -6972,7 +6868,7 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= -postcss-attribute-case-insensitive@^4.0.0: +postcss-attribute-case-insensitive@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.1.tgz#b2a721a0d279c2f9103a36331c88981526428cc7" integrity sha512-L2YKB3vF4PetdTIthQVeT+7YiSzMoNMLLYxPXXppOOP7NoazEAy45sh2LvJ8leCQjfBcfkYQs8TtCcQjeZTp8A== @@ -7280,36 +7176,37 @@ postcss-minify-selectors@^4.0.2: postcss "^7.0.0" postcss-selector-parser "^3.0.0" -postcss-modules-extract-imports@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz#dc87e34148ec7eab5f791f7cd5849833375b741a" - integrity sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw== +postcss-modules-extract-imports@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== dependencies: - postcss "^6.0.1" + postcss "^7.0.5" -postcss-modules-local-by-default@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" - integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk= +postcss-modules-local-by-default@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz#dd9953f6dd476b5fd1ef2d8830c8929760b56e63" + integrity sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA== dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" + postcss-value-parser "^3.3.1" -postcss-modules-scope@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" - integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A= +postcss-modules-scope@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.0.tgz#ad3f5bf7856114f6fcab901b0502e2a2bc39d4eb" + integrity sha512-91Rjps0JnmtUB0cujlc8KIKCsJXWjzuxGeT/+Q2i2HXKZ7nBUeF9YQTZZTNvHVoNYj1AthsjnGLtqDUE0Op79A== dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" -postcss-modules-values@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" - integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA= +postcss-modules-values@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz#479b46dc0c5ca3dc7fa5270851836b9ec7152f64" + integrity sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w== dependencies: icss-replace-symbols "^1.1.0" - postcss "^6.0.1" + postcss "^7.0.6" postcss-nesting@^7.0.0: version "7.0.0" @@ -7430,20 +7327,20 @@ postcss-place@^4.0.1: postcss "^7.0.2" postcss-values-parser "^2.0.0" -postcss-preset-env@6.5.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.5.0.tgz#a14b8f6e748b2a3a4a02a56f36c390f30073b9e1" - integrity sha512-RdsIrYJd9p9AouQoJ8dFP5ksBJEIegA4q4WzJDih8nevz3cZyIP/q1Eaw3pTVpUAu3n7Y32YmvAW3X07mSRGkw== +postcss-preset-env@6.6.0: + version "6.6.0" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.6.0.tgz#642e7d962e2bdc2e355db117c1eb63952690ed5b" + integrity sha512-I3zAiycfqXpPIFD6HXhLfWXIewAWO8emOKz+QSsxaUZb9Dp8HbF5kUf+4Wy/AxR33o+LRoO8blEWCHth0ZsCLA== dependencies: - autoprefixer "^9.4.2" - browserslist "^4.3.5" - caniuse-lite "^1.0.30000918" + autoprefixer "^9.4.9" + browserslist "^4.4.2" + caniuse-lite "^1.0.30000939" css-blank-pseudo "^0.1.4" css-has-pseudo "^0.10.0" css-prefers-color-scheme "^3.1.1" cssdb "^4.3.0" - postcss "^7.0.6" - postcss-attribute-case-insensitive "^4.0.0" + postcss "^7.0.14" + postcss-attribute-case-insensitive "^4.0.1" postcss-color-functional-notation "^2.0.1" postcss-color-gray "^5.0.0" postcss-color-hex-alpha "^5.0.2" @@ -7549,6 +7446,15 @@ postcss-selector-parser@^5.0.0, postcss-selector-parser@^5.0.0-rc.3, postcss-sel indexes-of "^1.0.1" uniq "^1.0.1" +postcss-selector-parser@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" + integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== + dependencies: + cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + postcss-svgo@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" @@ -7582,15 +7488,6 @@ postcss-values-parser@^2.0.0: indexes-of "^1.0.1" uniq "^1.0.1" -postcss@^6.0.1, postcss@^6.0.23: - version "6.0.23" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" - integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.4.0" - postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.2, postcss@^7.0.5, postcss@^7.0.6: version "7.0.14" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.14.tgz#4527ed6b1ca0d82c53ce5ec1a2041c2346bbd6e5" @@ -7605,17 +7502,12 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= - pretty-bytes@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9" integrity sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk= -pretty-error@^2.0.2: +pretty-error@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" integrity sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM= @@ -7623,15 +7515,17 @@ pretty-error@^2.0.2: renderkid "^2.0.1" utila "~0.4" -pretty-format@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz#5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760" - integrity sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw== +pretty-format@^24.5.0: + version "24.5.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.5.0.tgz#cc69a0281a62cd7242633fc135d6930cd889822d" + integrity sha512-/3RuSghukCf8Riu5Ncve0iI+BzVkbRU5EeUoArKARZobREycuH5O4waxvaNIloEXdb0qwgmEAed5vTpX1HNROQ== dependencies: - ansi-regex "^3.0.0" + "@jest/types" "^24.5.0" + ansi-regex "^4.0.0" ansi-styles "^3.2.0" + react-is "^16.8.4" -private@^0.1.6, private@^0.1.8: +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== @@ -7663,13 +7557,13 @@ promise@8.0.2: dependencies: asap "~2.0.6" -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.3" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.0.3.tgz#c5ccb324010b2e8f74752aadceeb57134c1d2522" + integrity sha512-H8oWEoRZpybm6NV4to9/1limhttEo13xK62pNvn2JzY0MA03p7s0OjtmhXyon3uJmxiJJVSuUwEJFFssI3eBiQ== dependencies: - kleur "^2.0.1" - sisteransi "^0.1.1" + kleur "^3.0.2" + sisteransi "^1.0.0" prop-types@^15.6.2: version "15.7.2" @@ -7700,11 +7594,6 @@ prr@~1.0.1: resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - psl@^1.1.24, psl@^1.1.28: version "1.1.31" resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz#e9aa86d0101b5b105cbe93ac6b784cd547276184" @@ -7794,15 +7683,6 @@ raf@3.4.1: dependencies: performance-now "^2.1.0" -randomatic@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" - integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== - dependencies: - is-number "^4.0.0" - kind-of "^6.0.0" - math-random "^1.0.1" - randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -7854,10 +7734,10 @@ react-app-polyfill@^0.2.2: raf "3.4.1" whatwg-fetch "3.0.0" -react-dev-utils@^7.0.5: - version "7.0.5" - resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-7.0.5.tgz#cb95375d01ae71ca27b3c7616006ef7a77d14e8e" - integrity sha512-zJnqqb0x6gd63E3xoz5pXAxBPNaW75Hyz7GgQp0qPhMroBCRQtRvG67AoTZZY1z4yCYVJQZAfQJFdnea0Ujbug== +react-dev-utils@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-8.0.0.tgz#7c5b227a45a32ea8ff7fbc318f336cf9e2c6e34c" + integrity sha512-TK8cj7eghvxfe7bfBluLGpI/upo4EXC+G74hYmPucAG8C2XcbT+vKnlWPwLnABb75Zk+mR6D556Da+yvDjljrw== dependencies: "@babel/code-frame" "7.0.0" address "1.0.3" @@ -7868,6 +7748,7 @@ react-dev-utils@^7.0.5: escape-string-regexp "1.0.5" filesize "3.6.1" find-up "3.0.0" + fork-ts-checker-webpack-plugin "1.0.0-alpha.6" global-modules "2.0.0" globby "8.0.2" gzip-size "5.0.0" @@ -7889,19 +7770,11 @@ react-error-overlay@^5.1.4: resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-5.1.4.tgz#88dfb88857c18ceb3b9f95076f850d7121776991" integrity sha512-fp+U98OMZcnduQ+NSEiQa4s/XMsbp+5KlydmkbESOw4P69iWZ68ZMFM5a2BuE0FgqPBKApJyRuYHR95jM8lAmg== -react-is@^16.8.1: +react-is@^16.8.1, react-is@^16.8.4: version "16.8.4" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.4.tgz#90f336a68c3a29a096a3d648ab80e87ec61482a2" integrity sha512-PVadd+WaUDOAciICm/J1waJaSvgq+4rHE/K70j0PFqKhkTBsPv/82UGQJNXAngz1fOQLLxI6z1sEDmJDQhCTAA== -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - read-pkg-up@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" @@ -7910,14 +7783,13 @@ read-pkg-up@^2.0.0: find-up "^2.0.0" read-pkg "^2.0.0" -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= +read-pkg-up@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" + integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA== dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" + find-up "^3.0.0" + read-pkg "^3.0.0" read-pkg@^2.0.0: version "2.0.0" @@ -7928,6 +7800,15 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" @@ -7959,7 +7840,7 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -realpath-native@^1.0.0: +realpath-native@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA== @@ -7973,14 +7854,14 @@ recursive-readdir@2.2.2: dependencies: minimatch "3.0.4" -regenerate-unicode-properties@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.0.1.tgz#58a4a74e736380a7ab3c5f7e03f303a941b31289" - integrity sha512-HTjMafphaH5d5QDHuwW8Me6Hbc/GhXg8luNqTkPVwZ/oCZhnoifjWhGYsu2BzepMELTlbnoVcXvV0f+2uDDvoQ== +regenerate-unicode-properties@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.0.2.tgz#7b38faa296252376d363558cfbda90c9ce709662" + integrity sha512-SbA/iNrBUf6Pv2zU8Ekv1Qbhv92yxL4hiDa2siuxs4KKn4oOoMDHXjAf7+Nz9qinUQ46B1LcWEi/PhJfPWpZWQ== dependencies: regenerate "^1.4.0" -regenerate@^1.2.1, regenerate@^1.4.0: +regenerate@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== @@ -8002,13 +7883,6 @@ regenerator-transform@^0.13.4: dependencies: private "^0.1.6" -regex-cache@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" - integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ== - dependencies: - is-equal-shallow "^0.1.3" - regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" @@ -8027,44 +7901,23 @@ regexpp@^2.0.1: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== -regexpu-core@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" - integrity sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs= - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - regexpu-core@^4.1.3, regexpu-core@^4.2.0: - version "4.5.3" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.3.tgz#72f572e03bb8b9f4f4d895a0ccc57e707f4af2e4" - integrity sha512-LON8666bTAlViVEPXMv65ZqiaR3rMNLz36PIaQ7D+er5snu93k0peR7FSvO0QteYbZ3GOkvfHKbGr/B1xDu9FA== + version "4.5.4" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.4.tgz#080d9d02289aa87fe1667a4f5136bc98a6aebaae" + integrity sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ== dependencies: regenerate "^1.4.0" - regenerate-unicode-properties "^8.0.1" + regenerate-unicode-properties "^8.0.2" regjsgen "^0.5.0" regjsparser "^0.6.0" unicode-match-property-ecmascript "^1.0.4" unicode-match-property-value-ecmascript "^1.1.0" -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= - regjsgen@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= - dependencies: - jsesc "~0.5.0" - regjsparser@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" @@ -8107,18 +7960,11 @@ repeat-element@^1.1.2: resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== -repeat-string@^1.5.2, repeat-string@^1.6.1: +repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= - dependencies: - is-finite "^1.0.0" - replace-ext@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" @@ -8181,6 +8027,11 @@ require-main-filename@^1.0.1: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= +requireindex@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" + integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww== + requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -8213,7 +8064,7 @@ resolve@1.1.7: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@1.10.0, resolve@^1.10.0, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.6.0, resolve@^1.8.1, resolve@^1.9.0: +resolve@1.10.0, resolve@^1.10.0, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1, resolve@^1.9.0: version "1.10.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba" integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg== @@ -8243,7 +8094,7 @@ rgba-regex@^1.0.0: resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= -rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@~2.6.2: +rimraf@2.6.3, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== @@ -8258,10 +8109,10 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -rsvp@^3.3.3: - version "3.6.2" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" - integrity sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw== +rsvp@^4.8.4: + version "4.8.4" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.4.tgz#b50e6b34583f3dd89329a2f23a8a2be072845911" + integrity sha512-6FomvYPfs+Jy9TfXmBpBuMWNH94SgCsZmJKcanySzgNNP6LjWxBvyLTa9KaMfDDM5oxRfrKDB0r/qeRsLwnBfA== run-async@^2.2.0: version "2.3.0" @@ -8301,21 +8152,20 @@ 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@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== dependencies: + "@cnakazawa/watch" "^1.0.3" anymatch "^2.0.0" - capture-exit "^1.2.0" - exec-sh "^0.2.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" fb-watchman "^2.0.0" micromatch "^3.1.4" minimist "^1.1.1" walker "~1.0.5" - watch "~0.18.0" - optionalDependencies: - fsevents "^1.2.3" sass-loader@7.1.0: version "7.1.0" @@ -8334,14 +8184,6 @@ sax@^1.2.4, sax@~1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -schema-utils@^0.4.4: - version "0.4.7" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" - integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== - dependencies: - ajv "^6.1.0" - ajv-keywords "^3.1.0" - schema-utils@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" @@ -8368,6 +8210,11 @@ selfsigned@^1.9.1: resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== +semver@5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== + send@0.16.2: version "0.16.2" resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" @@ -8516,10 +8363,10 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.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" @@ -8606,17 +8453,10 @@ source-map-resolve@^0.5.0: 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, source-map-support@~0.5.9: - version "0.5.10" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.10.tgz#2214080bc9d51832511ee2bab96e3c2f9353120c" - integrity sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ== +source-map-support@^0.5.6, source-map-support@~0.5.10: + version "0.5.11" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.11.tgz#efac2ce0800355d026326a0ca23e162aeac9a4e2" + integrity sha512-//sajEx/fGL3iw6fltKMdPvy8kL3kJ2O3iuYlRoT3k9Kb4BjOoZ+BZzaNHeuaruSt+Kf3Zk9tnfAQg9/AJqUVQ== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -8626,7 +8466,7 @@ source-map-url@^0.4.0: resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= -source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7: +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= @@ -8817,13 +8657,13 @@ string-width@^1.0.1: strip-ansi "^4.0.0" string-width@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.0.0.tgz#5a1690a57cc78211fffd9bf24bbe24d090604eb1" - integrity sha512-rr8CUxBbvOZDUvc5lNIJ+OC1nPVpz+Siw9VBtUjB9b6jZehZLFt0JMCZzShFHIsI8cbhm0EsNIfWJMFV3cu3Ew== + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== dependencies: emoji-regex "^7.0.1" is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.0.0" + strip-ansi "^5.1.0" string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.2.0" @@ -8848,7 +8688,7 @@ stringify-object@^3.2.2: is-obj "^1.0.1" is-regexp "^1.0.0" -strip-ansi@5.0.0, strip-ansi@^5.0.0: +strip-ansi@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.0.0.tgz#f78f68b5d0866c20b2c9b8c61b5298508dc8756f" integrity sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow== @@ -8869,18 +8709,18 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" -strip-bom@3.0.0, strip-bom@^3.0.0: +strip-ansi@^5.0.0, strip-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.1.0.tgz#55aaa54e33b4c0649a7338a43437b1887d153ec4" + integrity sha512-TjxrkPONqO2Z8QDCpeE2j6n0M6EwxzyDgzEeGp+FbdvaJAt//ClYi6W5my+3ROlC/hZX2KACUwDfK49Ka5eDvg== + dependencies: + ansi-regex "^4.1.0" + +strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= - dependencies: - is-utf8 "^0.2.0" - strip-comments@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-1.0.2.tgz#82b9c45e7f05873bee53f37168af930aa368679d" @@ -8921,21 +8761,14 @@ 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.1.0, supports-color@^5.3.0, supports-color@^5.4.0: +supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" -supports-color@^6.1.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== @@ -8967,7 +8800,7 @@ symbol-tree@^3.2.2: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" integrity sha1-rifbOPZgp64uHDt9G8KQgZuFGeY= -table@^5.0.2: +table@^5.2.3: version "5.2.3" resolved "https://registry.yarnpkg.com/table/-/table-5.2.3.tgz#cde0cc6eb06751c009efab27e8c820ca5b67b7f2" integrity sha512-N2RsDAMvDLvYwFcwbPyF3VmVSSkuF+G1e+8inhBLtHpvwXGw4QRPEZhihQNeEN0i1up6/f6ObCJXNdlRG3YVyQ== @@ -8995,21 +8828,7 @@ tar@^4: safe-buffer "^5.1.2" yallist "^3.0.2" -terser-webpack-plugin@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.2.2.tgz#9bff3a891ad614855a7dde0d707f7db5a927e3d9" - integrity sha512-1DMkTk286BzmfylAvLXwpJrI7dWa5BnFmscV/2dCr8+c56egFcbaeFAl7+sujAjdmpLam21XRdhA4oifLyiWWg== - dependencies: - cacache "^11.0.2" - find-cache-dir "^2.0.0" - schema-utils "^1.0.0" - serialize-javascript "^1.4.0" - source-map "^0.6.1" - terser "^3.16.1" - webpack-sources "^1.1.0" - worker-farm "^1.5.2" - -terser-webpack-plugin@^1.1.0: +terser-webpack-plugin@1.2.3, terser-webpack-plugin@^1.1.0: version "1.2.3" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.2.3.tgz#3f98bc902fac3e5d0de730869f50668561262ec8" integrity sha512-GOK7q85oAb/5kE12fMuLdn2btOS9OBZn4VsecpHDywoUC/jLhSAKOiYo0ezx7ss2EXPMzyEWFoE0s1WLE+4+oA== @@ -9024,23 +8843,22 @@ terser-webpack-plugin@^1.1.0: worker-farm "^1.5.2" terser@^3.16.1: - version "3.16.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-3.16.1.tgz#5b0dd4fa1ffd0b0b43c2493b2c364fd179160493" - integrity sha512-JDJjgleBROeek2iBcSNzOHLKsB/MdDf+E/BOAJ0Tk9r7p9/fVobfv7LMJ/g/k3v9SXdmjZnIlFd5nfn/Rt0Xow== + version "3.17.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-3.17.0.tgz#f88ffbeda0deb5637f9d24b0da66f4e15ab10cb2" + integrity sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ== dependencies: - commander "~2.17.1" + commander "^2.19.0" source-map "~0.6.1" - source-map-support "~0.5.9" + source-map-support "~0.5.10" -test-exclude@^4.2.1: - version "4.2.3" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.3.tgz#a9a5e64474e4398339245a0a769ad7c2f4a97c20" - integrity sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA== +test-exclude@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.1.0.tgz#6ba6b25179d2d38724824661323b73e03c0c1de1" + integrity sha512-gwf0S2fFsANC55fSeSqpb8BYk6w3FDvwZxfNjeF6FRgvFa43r+7wRiA/Q0IxoRU37wB/LE8IQ4221BsNucTaCA== dependencies: arrify "^1.0.1" - micromatch "^2.3.11" - object-assign "^4.1.0" - read-pkg-up "^1.0.1" + minimatch "^3.0.4" + read-pkg-up "^4.0.0" require-main-filename "^1.0.1" text-table@0.2.0, text-table@^0.2.0: @@ -9100,11 +8918,6 @@ to-arraybuffer@^1.0.0: resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -9190,11 +9003,18 @@ ts-pnp@^1.0.0: resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.0.1.tgz#fde74a6371676a167abaeda1ffc0fdb423520098" integrity sha512-Zzg9XH0anaqhNSlDRibNC8Kp+B9KNM0uRIpLpGkGyrgRIttA7zZBhotTSEoEyuDrz3QW2LGtu2dxuk34HzIGnQ== -tslib@^1.9.0: +tslib@^1.8.1, tslib@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== +tsutils@^3.7.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.9.1.tgz#2a40dc742943c71eca6d5c1994fcf999956be387" + integrity sha512-hrxVtLtPqQr//p8/msPT1X1UYXUjizqSit5d9AQ5k38TcV38NyecL5xODNxa73cLe/5sdiJ+w1FqzDhRBA/anA== + dependencies: + tslib "^1.8.1" + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -9340,9 +9160,9 @@ unset-value@^1.0.0: isobject "^3.0.0" upath@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" - integrity sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw== + version "1.1.2" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" + integrity sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q== upper-case@^1.1.1: version "1.1.3" @@ -9498,14 +9318,6 @@ walker@~1.0.5: dependencies: makeerror "1.0.x" -watch@~0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986" - integrity sha1-KAlUdsbffJDJYxOJkMClQj60uYY= - dependencies: - exec-sh "^0.2.0" - minimist "^1.2.0" - watchpack@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" @@ -9532,33 +9344,33 @@ webidl-conversions@^4.0.2: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== -webpack-dev-middleware@3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz#1132fecc9026fd90f0ecedac5cbff75d1fb45890" - integrity sha512-Q9Iyc0X9dP9bAsYskAVJ/hmIZZQwf/3Sy4xCAZgL5cUkjZmUZLt4l5HpbST/Pdgjn3u6pE7u5OdGd1apgzRujA== +webpack-dev-middleware@^3.5.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.6.1.tgz#91f2531218a633a99189f7de36045a331a4b9cd4" + integrity sha512-XQmemun8QJexMEvNFbD2BIg4eSKrmSIMrTfnl2nql2Sc6OGAYFyb8rwuYrCjl/IiEYYuyTEiimMscu7EXji/Dw== dependencies: - memory-fs "~0.4.1" + memory-fs "^0.4.1" mime "^2.3.1" range-parser "^1.0.3" webpack-log "^2.0.0" -webpack-dev-server@3.1.14: - version "3.1.14" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.14.tgz#60fb229b997fc5a0a1fc6237421030180959d469" - integrity sha512-mGXDgz5SlTxcF3hUpfC8hrQ11yhAttuUQWf1Wmb+6zo3x6rb7b9mIfuQvAPLdfDRCGRGvakBWHdHOa0I9p/EVQ== +webpack-dev-server@3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.2.1.tgz#1b45ce3ecfc55b6ebe5e36dab2777c02bc508c4e" + integrity sha512-sjuE4mnmx6JOh9kvSbPYw3u/6uxCLHNWfhWaIPwcXWsvWOPN+nc5baq4i9jui3oOBRXGonK9+OI0jVkaz6/rCw== dependencies: ansi-html "0.0.7" bonjour "^3.5.0" chokidar "^2.0.0" compression "^1.5.2" connect-history-api-fallback "^1.3.0" - debug "^3.1.0" + debug "^4.1.1" del "^3.0.0" express "^4.16.2" html-entities "^1.2.0" - http-proxy-middleware "~0.18.0" + http-proxy-middleware "^0.19.1" import-local "^2.0.0" - internal-ip "^3.0.1" + internal-ip "^4.2.0" ip "^1.1.5" killable "^1.0.0" loglevel "^1.4.1" @@ -9572,9 +9384,9 @@ webpack-dev-server@3.1.14: sockjs-client "1.3.0" spdy "^4.0.0" strip-ansi "^3.0.0" - supports-color "^5.1.0" + supports-color "^6.1.0" url "^0.11.0" - webpack-dev-middleware "3.4.0" + webpack-dev-middleware "^3.5.1" webpack-log "^2.0.0" yargs "12.0.2" @@ -9603,17 +9415,17 @@ webpack-sources@^1.1.0, webpack-sources@^1.3.0: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@4.28.3: - version "4.28.3" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.28.3.tgz#8acef6e77fad8a01bfd0c2b25aa3636d46511874" - integrity sha512-vLZN9k5I7Nr/XB1IDG9GbZB4yQd1sPuvufMFgJkx0b31fi2LD97KQIjwjxE7xytdruAYfu5S0FLBLjdxmwGJCg== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-module-context" "1.7.11" - "@webassemblyjs/wasm-edit" "1.7.11" - "@webassemblyjs/wasm-parser" "1.7.11" - acorn "^5.6.2" - acorn-dynamic-import "^3.0.0" +webpack@4.29.6: + version "4.29.6" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.29.6.tgz#66bf0ec8beee4d469f8b598d3988ff9d8d90e955" + integrity sha512-MwBwpiE1BQpMDkbnUUaW6K8RFZjljJHArC6tWQJoFm0oQtfoSebtg4Y7/QHnJ/SddtjYLHaKGX64CFjG5rehJw== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-module-context" "1.8.5" + "@webassemblyjs/wasm-edit" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + acorn "^6.0.5" + acorn-dynamic-import "^4.0.0" ajv "^6.1.0" ajv-keywords "^3.1.0" chrome-trace-event "^1.0.0" @@ -9627,7 +9439,7 @@ webpack@4.28.3: mkdirp "~0.5.0" neo-async "^2.5.0" node-libs-browser "^2.0.0" - schema-utils "^0.4.4" + schema-utils "^1.0.0" tapable "^1.1.0" terser-webpack-plugin "^1.1.0" watchpack "^1.5.0" @@ -9686,7 +9498,7 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which@^1.2.12, which@^1.2.9, which@^1.3.0, which@^1.3.1: +which@^1.2.9, which@^1.3.0, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -9857,19 +9669,19 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write-file-atomic@^2.1.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.2.tgz#a7181706dfba17855d221140a9c06e15fcdd87b9" - integrity sha512-s0b6vB3xIVRLWywa6X9TOMA7k9zio0TMOsl9ZnDkliA/cfJlpHXAscj0gbHVJiTdIuAYpIyqS5GW91fqm6gG5g== +write-file-atomic@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.1.tgz#d0b05463c188ae804396fd5ab2a370062af87529" + integrity sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg== 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" - integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== dependencies: mkdirp "^0.5.1" @@ -9900,21 +9712,11 @@ xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= - "y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - yallist@^3.0.0, yallist@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" @@ -9927,12 +9729,13 @@ yargs-parser@^10.1.0: dependencies: camelcase "^4.1.0" -yargs-parser@^9.0.2: - version "9.0.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" - integrity sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc= +yargs-parser@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" + integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== dependencies: - camelcase "^4.1.0" + camelcase "^5.0.0" + decamelize "^1.2.0" yargs@12.0.2: version "12.0.2" @@ -9952,20 +9755,20 @@ yargs@12.0.2: y18n "^3.2.1 || ^4.0.0" yargs-parser "^10.1.0" -yargs@^11.0.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" - integrity sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A== +yargs@^12.0.2: + version "12.0.5" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" + integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== dependencies: cliui "^4.0.0" - decamelize "^1.1.1" - find-up "^2.1.0" + decamelize "^1.2.0" + find-up "^3.0.0" get-caller-file "^1.0.1" - os-locale "^2.0.0" + os-locale "^3.0.0" require-directory "^2.1.1" require-main-filename "^1.0.1" set-blocking "^2.0.0" string-width "^2.0.0" which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^9.0.2" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^11.1.1" From 690273674712a4c26109d23a5b9fb11b71f8def9 Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Fri, 15 Mar 2019 13:46:12 -0600 Subject: [PATCH 0602/1249] Unpin eslint-config-react-hooks dependency (#6653) --- packages/eslint-config-react-app/package.json | 2 +- packages/react-scripts/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/eslint-config-react-app/package.json b/packages/eslint-config-react-app/package.json index aba589a7907..397afc075ae 100644 --- a/packages/eslint-config-react-app/package.json +++ b/packages/eslint-config-react-app/package.json @@ -19,7 +19,7 @@ "eslint-plugin-import": "2.x", "eslint-plugin-jsx-a11y": "6.x", "eslint-plugin-react": "7.x", - "eslint-plugin-react-hooks": "1.5.0" + "eslint-plugin-react-hooks": "1.x" }, "dependencies": { "confusing-browser-globals": "^1.0.6" diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 95c2b99bba1..cbee8cec84e 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -46,7 +46,7 @@ "eslint-plugin-import": "2.16.0", "eslint-plugin-jsx-a11y": "6.2.1", "eslint-plugin-react": "7.12.4", - "eslint-plugin-react-hooks": "1.5.0", + "eslint-plugin-react-hooks": "^1.5.0", "file-loader": "3.0.1", "fs-extra": "7.0.1", "html-webpack-plugin": "4.0.0-beta.5", From 7864ba3ce70892ebe43d56487b45d3267890df14 Mon Sep 17 00:00:00 2001 From: W1lkins Date: Fri, 15 Mar 2019 19:48:55 +0000 Subject: [PATCH 0603/1249] Add wait: false when opening app in browser (#5821) --- packages/react-dev-utils/openBrowser.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-dev-utils/openBrowser.js b/packages/react-dev-utils/openBrowser.js index 2147caac655..965d281b673 100644 --- a/packages/react-dev-utils/openBrowser.js +++ b/packages/react-dev-utils/openBrowser.js @@ -96,7 +96,7 @@ function startBrowserProcess(browser, url) { // Fallback to opn // (It will always open new tab) try { - var options = { app: browser }; + var options = { app: browser, wait: false }; opn(url, options).catch(() => {}); // Prevent `unhandledRejection` error. return true; } catch (err) { From 5861d6ea4612c5a6c825dd61e97201edeafb55b9 Mon Sep 17 00:00:00 2001 From: Dalci de Jesus Bagolin Date: Sat, 16 Mar 2019 21:47:13 +0530 Subject: [PATCH 0604/1249] Bump babel-eslint peerDependency in eslint-config-react-app (#6662) Sync the `babel-eslint` version between react-scripts and eslint-config-react-app --- packages/eslint-config-react-app/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/eslint-config-react-app/package.json b/packages/eslint-config-react-app/package.json index 397afc075ae..d9d9c2b3481 100644 --- a/packages/eslint-config-react-app/package.json +++ b/packages/eslint-config-react-app/package.json @@ -13,7 +13,7 @@ "peerDependencies": { "@typescript-eslint/eslint-plugin": "1.x", "@typescript-eslint/parser": "1.x", - "babel-eslint": "9.x", + "babel-eslint": "10.x", "eslint": "5.x", "eslint-plugin-flowtype": "2.x", "eslint-plugin-import": "2.x", From 8175f1e4189d6ec7e46a4ee8a2953ecefb81b9ff Mon Sep 17 00:00:00 2001 From: Mohit Singh Date: Mon, 18 Mar 2019 19:55:31 +0530 Subject: [PATCH 0605/1249] Remove unused eslint comment (#6674) --- packages/react-dev-utils/formatWebpackMessages.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/react-dev-utils/formatWebpackMessages.js b/packages/react-dev-utils/formatWebpackMessages.js index 799c92be2c4..db9b2cb1971 100644 --- a/packages/react-dev-utils/formatWebpackMessages.js +++ b/packages/react-dev-utils/formatWebpackMessages.js @@ -15,7 +15,6 @@ function isLikelyASyntaxError(message) { } // Cleans up webpack error messages. -// eslint-disable-next-line no-unused-vars function formatMessage(message) { let lines = message.split('\n'); From c5087e6cbe1bb58ec96507b08071748b08030c60 Mon Sep 17 00:00:00 2001 From: Abdelrahman Rifai Date: Mon, 18 Mar 2019 19:28:16 +0100 Subject: [PATCH 0606/1249] Remove shrink-to-fit=no from templates (#6669) --- packages/react-scripts/template-typescript/public/index.html | 5 +---- packages/react-scripts/template/public/index.html | 5 +---- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/packages/react-scripts/template-typescript/public/index.html b/packages/react-scripts/template-typescript/public/index.html index 75980d58e22..dd1ccfd4cd3 100644 --- a/packages/react-scripts/template-typescript/public/index.html +++ b/packages/react-scripts/template-typescript/public/index.html @@ -3,10 +3,7 @@ - + --- packages/react-dev-utils/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index a6412d7feea..b1495553456 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -55,7 +55,7 @@ "escape-string-regexp": "1.0.5", "filesize": "3.6.1", "find-up": "3.0.0", - "fork-ts-checker-webpack-plugin": "1.0.0-alpha.6", + "fork-ts-checker-webpack-plugin": "1.0.1", "global-modules": "2.0.0", "globby": "8.0.2", "gzip-size": "5.0.0", From 91ddd618be1d0f1868f9f2b04f69e9e3fe611c0f Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Sat, 6 Apr 2019 15:16:08 -0700 Subject: [PATCH 0628/1249] Update dependency versions (#6767) Includes only minor/patch version bumps. --- package.json | 2 +- packages/babel-preset-react-app/create.js | 3 +++ packages/babel-preset-react-app/package.json | 22 ++++++++++---------- packages/react-dev-utils/package.json | 4 ++-- packages/react-error-overlay/package.json | 6 +++--- packages/react-scripts/package.json | 8 +++---- 6 files changed, 24 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index 198855b6ca1..ac8d1c0e8db 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "compile:lockfile": "node tasks/compile-lockfile.js" }, "devDependencies": { - "eslint": "5.15.1", + "eslint": "5.16.0", "execa": "1.0.0", "fs-extra": "^7.0.1", "get-port": "^4.2.0", diff --git a/packages/babel-preset-react-app/create.js b/packages/babel-preset-react-app/create.js index 74514baa653..b645a22ede2 100644 --- a/packages/babel-preset-react-app/create.js +++ b/packages/babel-preset-react-app/create.js @@ -81,6 +81,9 @@ module.exports = function(api, opts, env) { { // Allow importing @babel/polyfill in entrypoint and use browserlist to select polyfills useBuiltIns: 'entry', + // Set the corejs version we are using to avoid warnings in console + // This will need to change once we upgrade to corejs@3 + corejs: 2, // Do not transform modules to CJS modules: false, // Exclude transforms that make all code slower diff --git a/packages/babel-preset-react-app/package.json b/packages/babel-preset-react-app/package.json index 90c8a7714e5..6591de25ef5 100644 --- a/packages/babel-preset-react-app/package.json +++ b/packages/babel-preset-react-app/package.json @@ -17,24 +17,24 @@ "test.js" ], "dependencies": { - "@babel/core": "7.3.4", - "@babel/plugin-proposal-class-properties": "7.3.4", - "@babel/plugin-proposal-decorators": "7.3.0", - "@babel/plugin-proposal-object-rest-spread": "7.3.4", + "@babel/core": "7.4.3", + "@babel/plugin-proposal-class-properties": "7.4.0", + "@babel/plugin-proposal-decorators": "7.4.0", + "@babel/plugin-proposal-object-rest-spread": "7.4.3", "@babel/plugin-syntax-dynamic-import": "7.2.0", - "@babel/plugin-transform-classes": "7.3.4", - "@babel/plugin-transform-destructuring": "7.3.2", - "@babel/plugin-transform-flow-strip-types": "7.3.4", + "@babel/plugin-transform-classes": "7.4.3", + "@babel/plugin-transform-destructuring": "7.4.3", + "@babel/plugin-transform-flow-strip-types": "7.4.0", "@babel/plugin-transform-react-constant-elements": "7.2.0", "@babel/plugin-transform-react-display-name": "7.2.0", - "@babel/plugin-transform-runtime": "7.3.4", - "@babel/preset-env": "7.3.4", + "@babel/plugin-transform-runtime": "7.4.3", + "@babel/preset-env": "7.4.3", "@babel/preset-react": "7.0.0", "@babel/preset-typescript": "7.3.3", - "@babel/runtime": "7.3.4", + "@babel/runtime": "7.4.3", "babel-loader": "8.0.5", "babel-plugin-dynamic-import-node": "2.2.0", - "babel-plugin-macros": "2.5.0", + "babel-plugin-macros": "2.5.1", "babel-plugin-transform-react-remove-prop-types": "0.4.24" } } diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index b1495553456..ed947d1148d 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -48,7 +48,7 @@ "dependencies": { "@babel/code-frame": "7.0.0", "address": "1.0.3", - "browserslist": "4.4.2", + "browserslist": "4.5.4", "chalk": "2.4.2", "cross-spawn": "6.0.5", "detect-port-alt": "1.1.6", @@ -69,7 +69,7 @@ "recursive-readdir": "2.2.2", "shell-quote": "1.6.1", "sockjs-client": "1.3.0", - "strip-ansi": "5.1.0", + "strip-ansi": "5.2.0", "text-table": "0.2.0" }, "devDependencies": { diff --git a/packages/react-error-overlay/package.json b/packages/react-error-overlay/package.json index 89dc73d2f2b..f24efd368d9 100644 --- a/packages/react-error-overlay/package.json +++ b/packages/react-error-overlay/package.json @@ -31,7 +31,7 @@ ], "devDependencies": { "@babel/code-frame": "7.0.0", - "@babel/core": "7.3.4", + "@babel/core": "7.4.3", "anser": "1.4.8", "babel-eslint": "10.0.1", "babel-jest": "24.7.1", @@ -40,7 +40,7 @@ "chalk": "^2.4.2", "chokidar": "^2.1.2", "cross-env": "5.2.0", - "eslint": "5.15.1", + "eslint": "5.16.0", "eslint-config-react-app": "^3.0.8", "eslint-plugin-flowtype": "2.50.1", "eslint-plugin-import": "2.16.0", @@ -49,7 +49,7 @@ "flow-bin": "^0.63.1", "html-entities": "1.2.1", "jest": "24.7.1", - "jest-fetch-mock": "2.1.1", + "jest-fetch-mock": "2.1.2", "object-assign": "4.1.1", "promise": "8.0.2", "raw-loader": "^1.0.0", diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index e8773271fef..380c09991c7 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -24,10 +24,10 @@ }, "types": "./lib/react-app.d.ts", "dependencies": { - "@babel/core": "7.3.4", + "@babel/core": "7.4.3", "@svgr/webpack": "4.1.0", - "@typescript-eslint/eslint-plugin": "1.4.1", - "@typescript-eslint/parser": "1.4.1", + "@typescript-eslint/eslint-plugin": "1.6.0", + "@typescript-eslint/parser": "1.6.0", "babel-eslint": "10.0.1", "babel-jest": "24.7.1", "babel-loader": "8.0.5", @@ -37,7 +37,7 @@ "css-loader": "2.1.1", "dotenv": "6.2.0", "dotenv-expand": "4.2.0", - "eslint": "5.15.1", + "eslint": "5.16.0", "eslint-config-react-app": "^3.0.8", "eslint-loader": "2.1.2", "eslint-plugin-flowtype": "2.50.1", From 71149650ec219853b27784edaea6a586e23d7eaa Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Sat, 6 Apr 2019 16:24:18 -0700 Subject: [PATCH 0629/1249] Update to core-js@3 --- packages/babel-preset-react-app/create.js | 2 +- packages/react-app-polyfill/README.md | 59 ++++++++++++++++++----- packages/react-app-polyfill/ie11.js | 4 +- packages/react-app-polyfill/ie9.js | 28 ++--------- packages/react-app-polyfill/package.json | 6 ++- packages/react-app-polyfill/stable.js | 13 +++++ 6 files changed, 69 insertions(+), 43 deletions(-) create mode 100644 packages/react-app-polyfill/stable.js diff --git a/packages/babel-preset-react-app/create.js b/packages/babel-preset-react-app/create.js index b645a22ede2..931892e6a9a 100644 --- a/packages/babel-preset-react-app/create.js +++ b/packages/babel-preset-react-app/create.js @@ -83,7 +83,7 @@ module.exports = function(api, opts, env) { useBuiltIns: 'entry', // Set the corejs version we are using to avoid warnings in console // This will need to change once we upgrade to corejs@3 - corejs: 2, + corejs: 3, // Do not transform modules to CJS modules: false, // Exclude transforms that make all code slower diff --git a/packages/react-app-polyfill/README.md b/packages/react-app-polyfill/README.md index 74972b2d338..cda82510469 100644 --- a/packages/react-app-polyfill/README.md +++ b/packages/react-app-polyfill/README.md @@ -3,18 +3,6 @@ This package includes polyfills for various browsers. It includes minimum requirements and commonly used language features used by [Create React App](https://github.com/facebook/create-react-app) projects. -### Features - -Each polyfill ensures the following language features are present: - -1. `Promise` (for `async` / `await` support) -1. `window.fetch` (a Promise-based way to make web requests in the browser) -1. `Object.assign` (a helper required for Object Spread, i.e. `{ ...a, ...b }`) -1. `Symbol` (a built-in object used by `for...of` syntax and friends) -1. `Array.from` (a built-in static method used by array spread, i.e. `[...arr]`) - -*If you need more features, you must include them manually.* - ### Usage First, install the package using Yarn or npm: @@ -29,7 +17,19 @@ or yarn add react-app-polyfill ``` -Now, you can import the entry point for the minimal version you intend to support. For example, if you import the IE9 entry point, this will include IE10 and IE11 support. +## Supporting Internet Explorer + +You can import the entry point for the minimal version you intend to support to ensure that the minimum langauge features are present that are required to use Create React App. For example, if you import the IE9 entry point, this will include IE10 and IE11 support. + +These modules ensures the following language features are present: + +1. `Promise` (for `async` / `await` support) +1. `window.fetch` (a Promise-based way to make web requests in the browser) +1. `Object.assign` (a helper required for Object Spread, i.e. `{ ...a, ...b }`) +1. `Symbol` (a built-in object used by `for...of` syntax and friends) +1. `Array.from` (a built-in static method used by array spread, i.e. `[...arr]`) + +_If you need more features, see the [Polyfilling other language features](#polyfilling-other-language-features) section below._ #### Internet Explorer 9 @@ -48,3 +48,36 @@ import 'react-app-polyfill/ie11'; // ... ``` + +## Polyfilling other language features + +You can also polyfill stable language features not available in your target browsers. If you're using this in Create React App, it will automatically use the `browserslist` you've defined to only include polyfills needed by your target browsers when importing the `stable` polyfill. **Make sure to follow the Internet Explorer steps above if you need to support Internet Explorer in your application**. + +```js +// This must be the first line in src/index.js +import 'react-app-polyfill/stable'; + +// ... +``` + +If you are supporting Internet Explorer 9/11 you should include both the `ie9`/`ie11` and `stable` modules: + +For IE9: + +```js +// These must be the first lines in src/index.js +import 'react-app-polyfill/ie9'; +import 'react-app-polyfill/stable'; + +// ... +``` + +For IE11: + +```js +// These must be the first lines in src/index.js +import 'react-app-polyfill/ie11'; +import 'react-app-polyfill/stable'; + +// ... +``` diff --git a/packages/react-app-polyfill/ie11.js b/packages/react-app-polyfill/ie11.js index e7e3d6b71a0..4a5bcd6bf38 100644 --- a/packages/react-app-polyfill/ie11.js +++ b/packages/react-app-polyfill/ie11.js @@ -26,6 +26,6 @@ if (typeof window !== 'undefined') { Object.assign = require('object-assign'); // Support for...of (a commonly used syntax feature that requires Symbols) -require('core-js/es6/symbol'); +require('core-js/features/symbol'); // Support iterable spread (...Set, ...Map) -require('core-js/fn/array/from'); +require('core-js/features/array/from'); diff --git a/packages/react-app-polyfill/ie9.js b/packages/react-app-polyfill/ie9.js index 9f355f28f21..42e31fdb1fb 100644 --- a/packages/react-app-polyfill/ie9.js +++ b/packages/react-app-polyfill/ie9.js @@ -6,31 +6,9 @@ */ 'use strict'; -if (typeof Promise === 'undefined') { - // Rejection tracking prevents a common issue where React gets into an - // inconsistent state due to an error, but it gets swallowed by a Promise, - // and the user has no idea what causes React's erratic future behavior. - require('promise/lib/rejection-tracking').enable(); - window.Promise = require('promise/lib/es6-extensions.js'); -} - -// Make sure we're in a Browser-like environment before importing polyfills -// This prevents `fetch()` from being imported in a Node test environment -if (typeof window !== 'undefined') { - // fetch() polyfill for making API calls. - require('whatwg-fetch'); -} - -// Object.assign() is commonly used with React. -// It will use the native implementation if it's present and isn't buggy. -Object.assign = require('object-assign'); - -// Support for...of (a commonly used syntax feature that requires Symbols) -require('core-js/es6/symbol'); -// Support iterable spread (...Set, ...Map) -require('core-js/fn/array/from'); +require('./ie11'); // React 16+ relies on Map, Set, and requestAnimationFrame -require('core-js/es6/map'); -require('core-js/es6/set'); +require('core-js/features/map'); +require('core-js/features/set'); require('raf').polyfill(window); diff --git a/packages/react-app-polyfill/package.json b/packages/react-app-polyfill/package.json index b9b55d3a1e0..ad5e231575f 100644 --- a/packages/react-app-polyfill/package.json +++ b/packages/react-app-polyfill/package.json @@ -13,13 +13,15 @@ "files": [ "ie9.js", "ie11.js", - "jsdom.js" + "jsdom.js", + "stable.js" ], "dependencies": { - "core-js": "2.6.5", + "core-js": "3.0.1", "object-assign": "4.1.1", "promise": "8.0.2", "raf": "3.4.1", + "regenerator-runtime": "0.13.2", "whatwg-fetch": "3.0.0" } } diff --git a/packages/react-app-polyfill/stable.js b/packages/react-app-polyfill/stable.js new file mode 100644 index 00000000000..6108630c7c0 --- /dev/null +++ b/packages/react-app-polyfill/stable.js @@ -0,0 +1,13 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +'use strict'; + +// Polyfill stable language features. +// It's recommended to use @babel/preset-env and browserslist +// to only include the polyfills necessary for the target browsers. +require('core-js/stable'); +require('regenerator-runtime/runtime'); From 278c62cf039dc27421ac29d94e007cf435c2fd97 Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Sat, 6 Apr 2019 16:32:19 -0700 Subject: [PATCH 0630/1249] Revert "Update to core-js@3" This reverts commit 71149650ec219853b27784edaea6a586e23d7eaa. --- packages/babel-preset-react-app/create.js | 2 +- packages/react-app-polyfill/README.md | 59 +++++------------------ packages/react-app-polyfill/ie11.js | 4 +- packages/react-app-polyfill/ie9.js | 28 +++++++++-- packages/react-app-polyfill/package.json | 6 +-- packages/react-app-polyfill/stable.js | 13 ----- 6 files changed, 43 insertions(+), 69 deletions(-) delete mode 100644 packages/react-app-polyfill/stable.js diff --git a/packages/babel-preset-react-app/create.js b/packages/babel-preset-react-app/create.js index 931892e6a9a..b645a22ede2 100644 --- a/packages/babel-preset-react-app/create.js +++ b/packages/babel-preset-react-app/create.js @@ -83,7 +83,7 @@ module.exports = function(api, opts, env) { useBuiltIns: 'entry', // Set the corejs version we are using to avoid warnings in console // This will need to change once we upgrade to corejs@3 - corejs: 3, + corejs: 2, // Do not transform modules to CJS modules: false, // Exclude transforms that make all code slower diff --git a/packages/react-app-polyfill/README.md b/packages/react-app-polyfill/README.md index cda82510469..75b066e3c37 100644 --- a/packages/react-app-polyfill/README.md +++ b/packages/react-app-polyfill/README.md @@ -3,6 +3,18 @@ This package includes polyfills for various browsers. It includes minimum requirements and commonly used language features used by [Create React App](https://github.com/facebook/create-react-app) projects. +### Features + +Each polyfill ensures the following language features are present: + +1. `Promise` (for `async` / `await` support) +1. `window.fetch` (a Promise-based way to make web requests in the browser) +1. `Object.assign` (a helper required for Object Spread, i.e. `{ ...a, ...b }`) +1. `Symbol` (a built-in object used by `for...of` syntax and friends) +1. `Array.from` (a built-in static method used by array spread, i.e. `[...arr]`) + +_If you need more features, you must include them manually._ + ### Usage First, install the package using Yarn or npm: @@ -17,19 +29,7 @@ or yarn add react-app-polyfill ``` -## Supporting Internet Explorer - -You can import the entry point for the minimal version you intend to support to ensure that the minimum langauge features are present that are required to use Create React App. For example, if you import the IE9 entry point, this will include IE10 and IE11 support. - -These modules ensures the following language features are present: - -1. `Promise` (for `async` / `await` support) -1. `window.fetch` (a Promise-based way to make web requests in the browser) -1. `Object.assign` (a helper required for Object Spread, i.e. `{ ...a, ...b }`) -1. `Symbol` (a built-in object used by `for...of` syntax and friends) -1. `Array.from` (a built-in static method used by array spread, i.e. `[...arr]`) - -_If you need more features, see the [Polyfilling other language features](#polyfilling-other-language-features) section below._ +Now, you can import the entry point for the minimal version you intend to support. For example, if you import the IE9 entry point, this will include IE10 and IE11 support. #### Internet Explorer 9 @@ -48,36 +48,3 @@ import 'react-app-polyfill/ie11'; // ... ``` - -## Polyfilling other language features - -You can also polyfill stable language features not available in your target browsers. If you're using this in Create React App, it will automatically use the `browserslist` you've defined to only include polyfills needed by your target browsers when importing the `stable` polyfill. **Make sure to follow the Internet Explorer steps above if you need to support Internet Explorer in your application**. - -```js -// This must be the first line in src/index.js -import 'react-app-polyfill/stable'; - -// ... -``` - -If you are supporting Internet Explorer 9/11 you should include both the `ie9`/`ie11` and `stable` modules: - -For IE9: - -```js -// These must be the first lines in src/index.js -import 'react-app-polyfill/ie9'; -import 'react-app-polyfill/stable'; - -// ... -``` - -For IE11: - -```js -// These must be the first lines in src/index.js -import 'react-app-polyfill/ie11'; -import 'react-app-polyfill/stable'; - -// ... -``` diff --git a/packages/react-app-polyfill/ie11.js b/packages/react-app-polyfill/ie11.js index 4a5bcd6bf38..e7e3d6b71a0 100644 --- a/packages/react-app-polyfill/ie11.js +++ b/packages/react-app-polyfill/ie11.js @@ -26,6 +26,6 @@ if (typeof window !== 'undefined') { Object.assign = require('object-assign'); // Support for...of (a commonly used syntax feature that requires Symbols) -require('core-js/features/symbol'); +require('core-js/es6/symbol'); // Support iterable spread (...Set, ...Map) -require('core-js/features/array/from'); +require('core-js/fn/array/from'); diff --git a/packages/react-app-polyfill/ie9.js b/packages/react-app-polyfill/ie9.js index 42e31fdb1fb..9f355f28f21 100644 --- a/packages/react-app-polyfill/ie9.js +++ b/packages/react-app-polyfill/ie9.js @@ -6,9 +6,31 @@ */ 'use strict'; -require('./ie11'); +if (typeof Promise === 'undefined') { + // Rejection tracking prevents a common issue where React gets into an + // inconsistent state due to an error, but it gets swallowed by a Promise, + // and the user has no idea what causes React's erratic future behavior. + require('promise/lib/rejection-tracking').enable(); + window.Promise = require('promise/lib/es6-extensions.js'); +} + +// Make sure we're in a Browser-like environment before importing polyfills +// This prevents `fetch()` from being imported in a Node test environment +if (typeof window !== 'undefined') { + // fetch() polyfill for making API calls. + require('whatwg-fetch'); +} + +// Object.assign() is commonly used with React. +// It will use the native implementation if it's present and isn't buggy. +Object.assign = require('object-assign'); + +// Support for...of (a commonly used syntax feature that requires Symbols) +require('core-js/es6/symbol'); +// Support iterable spread (...Set, ...Map) +require('core-js/fn/array/from'); // React 16+ relies on Map, Set, and requestAnimationFrame -require('core-js/features/map'); -require('core-js/features/set'); +require('core-js/es6/map'); +require('core-js/es6/set'); require('raf').polyfill(window); diff --git a/packages/react-app-polyfill/package.json b/packages/react-app-polyfill/package.json index ad5e231575f..b9b55d3a1e0 100644 --- a/packages/react-app-polyfill/package.json +++ b/packages/react-app-polyfill/package.json @@ -13,15 +13,13 @@ "files": [ "ie9.js", "ie11.js", - "jsdom.js", - "stable.js" + "jsdom.js" ], "dependencies": { - "core-js": "3.0.1", + "core-js": "2.6.5", "object-assign": "4.1.1", "promise": "8.0.2", "raf": "3.4.1", - "regenerator-runtime": "0.13.2", "whatwg-fetch": "3.0.0" } } diff --git a/packages/react-app-polyfill/stable.js b/packages/react-app-polyfill/stable.js deleted file mode 100644 index 6108630c7c0..00000000000 --- a/packages/react-app-polyfill/stable.js +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ -'use strict'; - -// Polyfill stable language features. -// It's recommended to use @babel/preset-env and browserslist -// to only include the polyfills necessary for the target browsers. -require('core-js/stable'); -require('regenerator-runtime/runtime'); From ebabd183335687ad23e4b3af1ebee1c6ea6dbea4 Mon Sep 17 00:00:00 2001 From: ZHAO Jinxiang Date: Mon, 8 Apr 2019 01:18:32 +0800 Subject: [PATCH 0631/1249] Change NODE_ENV and PUBLIC_URL to readonly (#6750) --- packages/react-scripts/lib/react-app.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-scripts/lib/react-app.d.ts b/packages/react-scripts/lib/react-app.d.ts index e384accba5b..8e1752555a7 100644 --- a/packages/react-scripts/lib/react-app.d.ts +++ b/packages/react-scripts/lib/react-app.d.ts @@ -4,8 +4,8 @@ declare namespace NodeJS { interface ProcessEnv { - NODE_ENV: 'development' | 'production' | 'test'; - PUBLIC_URL: string; + readonly NODE_ENV: 'development' | 'production' | 'test'; + readonly PUBLIC_URL: string; } } From a1d6aefc09359a67d767bb858b9e5c31d8db497c Mon Sep 17 00:00:00 2001 From: Anurag Goel <59905+anurag@users.noreply.github.com> Date: Sun, 7 Apr 2019 23:47:55 -0700 Subject: [PATCH 0632/1249] Add Render deployment section (#6695) --- docusaurus/docs/deployment.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docusaurus/docs/deployment.md b/docusaurus/docs/deployment.md index ceda7ebc8ab..f4b257e6003 100644 --- a/docusaurus/docs/deployment.md +++ b/docusaurus/docs/deployment.md @@ -454,10 +454,18 @@ To deploy your built project directly with Now CLI in your terminal, without any 3. Run `now --name your-project-name` from within the build directory. You will be given a **now.sh** URL as a response as your build is deployed, similar to the following: https://my-cra-project-4rx7b16z3.now.sh/ - Click or paste the deployment URL into your browser when the build is complete and you will see your deployed app. +Click or paste the deployment URL into your browser when the build is complete and you will see your deployed app. For more information on deploying React applications with Now, including automatically building your application fresh in the cloud, setting up routes to rewrite all paths to the index.html file, and setting up caching headers for speed, see [the ZEIT Guide for Deploying a React app with Create React App](https://zeit.co/guides/deploying-react-with-now-cra/). +## [Render](https://render.com) + +Render offers free [static site](https://render.com/docs/static-sites) hosting with fully managed SSL, a global CDN and continuous auto deploys from GitHub. + +Deploy your app in just a few minutes by following the [Create React App deployment guide](https://render.com/docs/deploy-create-react-app). + +Use invite code `cra` to sign up or use [this link](https://render.com/i/cra). + ## [S3](https://aws.amazon.com/s3) and [CloudFront](https://aws.amazon.com/cloudfront/) See this [blog post](https://medium.com/@omgwtfmarc/deploying-create-react-app-to-s3-or-cloudfront-48dae4ce0af) on how to deploy your React app to Amazon Web Services S3 and CloudFront. From a8a3ccfea552565c0fbf457a118e60584aceac27 Mon Sep 17 00:00:00 2001 From: Francisco Joshua Date: Mon, 8 Apr 2019 19:53:03 +0200 Subject: [PATCH 0633/1249] Update link to React Testing Library docs (#6772) --- docusaurus/docs/running-tests.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/docs/running-tests.md b/docusaurus/docs/running-tests.md index 5f93a391771..9a43590795e 100644 --- a/docusaurus/docs/running-tests.md +++ b/docusaurus/docs/running-tests.md @@ -212,7 +212,7 @@ it('renders welcome message', () => { }); ``` -Learn more about the utilities provided by `react-testing-library` to facilitate testing asynchronous interactions as well as selecting form elements from [the `react-testing-library` documentation](https://github.com/kentcdodds/react-testing-library) and [examples](https://codesandbox.io/s/github/kentcdodds/react-testing-library-examples). +Learn more about the utilities provided by `react-testing-library` to facilitate testing asynchronous interactions as well as selecting form elements from [the `react-testing-library` documentation](https://testing-library.com/react) and [examples](https://codesandbox.io/s/github/kentcdodds/react-testing-library-examples). ## Using Third Party Assertion Libraries From 80b69edb466937703b9ac38607ccf028beffacbd Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Mon, 8 Apr 2019 18:26:38 -0700 Subject: [PATCH 0634/1249] Warn when using react-scripts-ts (#6770) * Warn when using react-scripts-ts * Update node/npm min version references --- packages/create-react-app/createReactApp.js | 260 +++++++++++--------- packages/create-react-app/package.json | 1 + 2 files changed, 150 insertions(+), 111 deletions(-) diff --git a/packages/create-react-app/createReactApp.js b/packages/create-react-app/createReactApp.js index 50641ab7efa..2e69901b455 100755 --- a/packages/create-react-app/createReactApp.js +++ b/packages/create-react-app/createReactApp.js @@ -34,21 +34,22 @@ 'use strict'; -const validateProjectName = require('validate-npm-package-name'); const chalk = require('chalk'); const commander = require('commander'); +const dns = require('dns'); +const envinfo = require('envinfo'); +const execSync = require('child_process').execSync; const fs = require('fs-extra'); +const hyperquest = require('hyperquest'); +const inquirer = require('inquirer'); +const os = require('os'); const path = require('path'); -const execSync = require('child_process').execSync; -const spawn = require('cross-spawn'); const semver = require('semver'); -const dns = require('dns'); +const spawn = require('cross-spawn'); const tmp = require('tmp'); const unpack = require('tar-pack').unpack; const url = require('url'); -const hyperquest = require('hyperquest'); -const envinfo = require('envinfo'); -const os = require('os'); +const validateProjectName = require('validate-npm-package-name'); const packageJson = require('./package.json'); @@ -221,13 +222,13 @@ function createApp( process.exit(1); } - if (!semver.satisfies(process.version, '>=6.0.0')) { + if (!semver.satisfies(process.version, '>=8.10.0')) { console.log( chalk.yellow( `You are using Node ${ process.version } so the project will be bootstrapped with an old unsupported version of tools.\n\n` + - `Please update to Node 6 or higher for a better, fully supported experience.\n` + `Please update to Node 8.10 or higher for a better, fully supported experience.\n` ) ); // Fall back to latest supported react-scripts on Node 4 @@ -243,7 +244,7 @@ function createApp( `You are using npm ${ npmInfo.npmVersion } so the project will be bootstrapped with an old unsupported version of tools.\n\n` + - `Please update to npm 3 or higher for a better, fully supported experience.\n` + `Please update to npm 5 or higher for a better, fully supported experience.\n` ) ); } @@ -381,112 +382,120 @@ function run( usePnp, useTypescript ) { - const packageToInstall = getInstallPackage(version, originalDirectory); - const allDependencies = ['react', 'react-dom', packageToInstall]; - if (useTypescript) { - // TODO: get user's node version instead of installing latest - allDependencies.push( - '@types/node', - '@types/react', - '@types/react-dom', - '@types/jest', - 'typescript' - ); - } - - console.log('Installing packages. This might take a couple of minutes.'); - getPackageName(packageToInstall) - .then(packageName => - checkIfOnline(useYarn).then(isOnline => ({ - isOnline: isOnline, - packageName: packageName, - })) - ) - .then(info => { - const isOnline = info.isOnline; - const packageName = info.packageName; - console.log( - `Installing ${chalk.cyan('react')}, ${chalk.cyan( - 'react-dom' - )}, and ${chalk.cyan(packageName)}...` + getInstallPackage(version, originalDirectory).then(packageToInstall => { + const allDependencies = ['react', 'react-dom', packageToInstall]; + if (useTypescript) { + allDependencies.push( + // TODO: get user's node version instead of installing latest + '@types/node', + '@types/react', + '@types/react-dom', + // TODO: get version of Jest being used instead of installing latest + '@types/jest', + 'typescript' ); - console.log(); - - return install( - root, - useYarn, - usePnp, - allDependencies, - verbose, - isOnline - ).then(() => packageName); - }) - .then(async packageName => { - checkNodeVersion(packageName); - setCaretRangeForRuntimeDeps(packageName); - - const pnpPath = path.resolve(process.cwd(), '.pnp.js'); - - const nodeArgs = fs.existsSync(pnpPath) ? ['--require', pnpPath] : []; - - await executeNodeScript( - { - cwd: process.cwd(), - args: nodeArgs, - }, - [root, appName, verbose, originalDirectory, template], - ` + } + + console.log('Installing packages. This might take a couple of minutes.'); + getPackageName(packageToInstall) + .then(packageName => + checkIfOnline(useYarn).then(isOnline => ({ + isOnline: isOnline, + packageName: packageName, + })) + ) + .then(info => { + const isOnline = info.isOnline; + const packageName = info.packageName; + console.log( + `Installing ${chalk.cyan('react')}, ${chalk.cyan( + 'react-dom' + )}, and ${chalk.cyan(packageName)}...` + ); + console.log(); + + return install( + root, + useYarn, + usePnp, + allDependencies, + verbose, + isOnline + ).then(() => packageName); + }) + .then(async packageName => { + checkNodeVersion(packageName); + setCaretRangeForRuntimeDeps(packageName); + + const pnpPath = path.resolve(process.cwd(), '.pnp.js'); + + const nodeArgs = fs.existsSync(pnpPath) ? ['--require', pnpPath] : []; + + await executeNodeScript( + { + cwd: process.cwd(), + args: nodeArgs, + }, + [root, appName, verbose, originalDirectory, template], + ` var init = require('${packageName}/scripts/init.js'); init.apply(null, JSON.parse(process.argv[1])); ` - ); - - if (version === 'react-scripts@0.9.x') { - console.log( - chalk.yellow( - `\nNote: the project was bootstrapped with an old unsupported version of tools.\n` + - `Please update to Node >=6 and npm >=3 to get supported tools in new projects.\n` - ) ); - } - }) - .catch(reason => { - console.log(); - console.log('Aborting installation.'); - if (reason.command) { - console.log(` ${chalk.cyan(reason.command)} has failed.`); - } else { - console.log(chalk.red('Unexpected error. Please report it as a bug:')); - console.log(reason); - } - console.log(); - - // On 'exit' we will delete these files from target directory. - const knownGeneratedFiles = ['package.json', 'yarn.lock', 'node_modules']; - const currentFiles = fs.readdirSync(path.join(root)); - currentFiles.forEach(file => { - knownGeneratedFiles.forEach(fileToMatch => { - // This removes all knownGeneratedFiles. - if (file === fileToMatch) { - console.log(`Deleting generated file... ${chalk.cyan(file)}`); - fs.removeSync(path.join(root, file)); - } + + if (version === 'react-scripts@0.9.x') { + console.log( + chalk.yellow( + `\nNote: the project was bootstrapped with an old unsupported version of tools.\n` + + `Please update to Node >=8.10 and npm >=5 to get supported tools in new projects.\n` + ) + ); + } + }) + .catch(reason => { + console.log(); + console.log('Aborting installation.'); + if (reason.command) { + console.log(` ${chalk.cyan(reason.command)} has failed.`); + } else { + console.log( + chalk.red('Unexpected error. Please report it as a bug:') + ); + console.log(reason); + } + console.log(); + + // On 'exit' we will delete these files from target directory. + const knownGeneratedFiles = [ + 'package.json', + 'yarn.lock', + 'node_modules', + ]; + const currentFiles = fs.readdirSync(path.join(root)); + currentFiles.forEach(file => { + knownGeneratedFiles.forEach(fileToMatch => { + // This removes all knownGeneratedFiles. + if (file === fileToMatch) { + console.log(`Deleting generated file... ${chalk.cyan(file)}`); + fs.removeSync(path.join(root, file)); + } + }); }); + const remainingFiles = fs.readdirSync(path.join(root)); + if (!remainingFiles.length) { + // Delete target folder if empty + console.log( + `Deleting ${chalk.cyan(`${appName}/`)} from ${chalk.cyan( + path.resolve(root, '..') + )}` + ); + process.chdir(path.resolve(root, '..')); + fs.removeSync(path.join(root)); + } + console.log('Done.'); + process.exit(1); }); - const remainingFiles = fs.readdirSync(path.join(root)); - if (!remainingFiles.length) { - // Delete target folder if empty - console.log( - `Deleting ${chalk.cyan(`${appName}/`)} from ${chalk.cyan( - path.resolve(root, '..') - )}` - ); - process.chdir(path.resolve(root, '..')); - fs.removeSync(path.join(root)); - } - console.log('Done.'); - process.exit(1); - }); + }); } function getInstallPackage(version, originalDirectory) { @@ -507,7 +516,36 @@ function getInstallPackage(version, originalDirectory) { packageToInstall = version; } } - return packageToInstall; + + const scriptsToWarn = [ + { + name: 'react-scripts-ts', + message: chalk.yellow( + 'The react-scripts-ts package is deprecated. TypeScript is now supported natively in Create React App. You can use the --typescript option instead when generating your app to include TypeScript support. Would you like to continue using react-scripts-ts?' + ), + }, + ]; + + for (const script of scriptsToWarn) { + if (packageToInstall.startsWith(script.name)) { + return inquirer + .prompt({ + type: 'confirm', + name: 'useScript', + message: script.message, + default: false, + }) + .then(answer => { + if (!answer.useScript) { + process.exit(0); + } + + return packageToInstall; + }); + } + } + + return Promise.resolve(packageToInstall); } function getTemporaryDirectory() { @@ -610,7 +648,7 @@ function checkNpmVersion() { npmVersion = execSync('npm --version') .toString() .trim(); - hasMinNpm = semver.gte(npmVersion, '3.0.0'); + hasMinNpm = semver.gte(npmVersion, '5.0.0'); } catch (err) { // ignore } diff --git a/packages/create-react-app/package.json b/packages/create-react-app/package.json index 9e6f69ae508..c561b209aa2 100644 --- a/packages/create-react-app/package.json +++ b/packages/create-react-app/package.json @@ -28,6 +28,7 @@ "envinfo": "7.1.0", "fs-extra": "7.0.1", "hyperquest": "2.1.3", + "inquirer": "6.2.2", "semver": "5.6.0", "tar-pack": "3.4.1", "tmp": "0.0.33", From dac046df1fc87c39c91fd13c6f6174468be02514 Mon Sep 17 00:00:00 2001 From: "Raphael.dev" Date: Tue, 9 Apr 2019 11:57:02 +0900 Subject: [PATCH 0635/1249] Fix code comment typo (#6775) --- packages/react-scripts/scripts/start.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/scripts/start.js b/packages/react-scripts/scripts/start.js index 35bce798ed3..29d5033f251 100644 --- a/packages/react-scripts/scripts/start.js +++ b/packages/react-scripts/scripts/start.js @@ -77,7 +77,7 @@ if (process.env.HOST) { console.log(); } -// We require that you explictly set browsers and do not fall back to +// We require that you explicitly set browsers and do not fall back to // browserslist defaults. const { checkBrowsers } = require('react-dev-utils/browsersHelper'); checkBrowsers(paths.appPath, isInteractive) From b676bf3d4ccce96ce33a4b54b6236e0ae9b4526f Mon Sep 17 00:00:00 2001 From: Tom Robinson Date: Tue, 9 Apr 2019 14:34:28 -0700 Subject: [PATCH 0636/1249] Remove unused babel-loader from babel-preset-react-app (#6780) --- packages/babel-preset-react-app/package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/babel-preset-react-app/package.json b/packages/babel-preset-react-app/package.json index 6591de25ef5..6c13e73fcfb 100644 --- a/packages/babel-preset-react-app/package.json +++ b/packages/babel-preset-react-app/package.json @@ -32,7 +32,6 @@ "@babel/preset-react": "7.0.0", "@babel/preset-typescript": "7.3.3", "@babel/runtime": "7.4.3", - "babel-loader": "8.0.5", "babel-plugin-dynamic-import-node": "2.2.0", "babel-plugin-macros": "2.5.1", "babel-plugin-transform-react-remove-prop-types": "0.4.24" From e59e0920f3bef0c2ac47bbf6b4ff3092c8ff08fb Mon Sep 17 00:00:00 2001 From: Parth Narielwala Date: Wed, 10 Apr 2019 11:18:25 -0500 Subject: [PATCH 0637/1249] Add SVG support dependency note (#6783) --- docusaurus/docs/adding-images-fonts-and-files.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/docs/adding-images-fonts-and-files.md b/docusaurus/docs/adding-images-fonts-and-files.md index c481d96c75d..217a19775eb 100644 --- a/docusaurus/docs/adding-images-fonts-and-files.md +++ b/docusaurus/docs/adding-images-fonts-and-files.md @@ -44,7 +44,7 @@ An alternative way of handling static assets is described in the next section. ## Adding SVGs -> Note: this feature is available with `react-scripts@2.0.0` and higher. +> Note: this feature is available with `react-scripts@2.0.0` and higher, and `react@16.0.0` and higher. One way to add SVG files was described in the section above. You can also import SVGs directly as React components. You can use either of the two approaches. In your code it would look like this: From 431ccf9c43127cc1c874c768d3eb801341ad5811 Mon Sep 17 00:00:00 2001 From: bakuzan Date: Sat, 13 Apr 2019 22:47:33 +0100 Subject: [PATCH 0638/1249] Clarify production build output files documentation (#6786) --- docusaurus/docs/production-build.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docusaurus/docs/production-build.md b/docusaurus/docs/production-build.md index f57e5a9b959..7bafc5bf743 100644 --- a/docusaurus/docs/production-build.md +++ b/docusaurus/docs/production-build.md @@ -5,15 +5,15 @@ title: Creating a Production Build `npm run build` creates a `build` directory with a production build of your app. Inside the `build/static` directory will be your JavaScript and CSS files. Each filename inside of `build/static` will contain a unique hash of the file contents. This hash in the file name enables [long term caching techniques](#static-file-caching). -When running a production build of freshly created Create React App application, there are 3 `.js` files (called _chunks_) that are generated and placed in the `build/static/js` directory: +When running a production build of freshly created Create React App application, there are a number of `.js` files (called _chunks_) that are generated and placed in the `build/static/js` directory: `main.[hash].chunk.js` - This is your _application_ code. `App.js`, etc. -`1.[hash].chunk.js` +`[number].[hash].chunk.js` -- This is your _vendor_ code, which includes modules you've imported from within `node_modules`. One of the potential advantages with splitting your _vendor_ and _application_ code is to enable [long term caching techniques](#static-file-caching) to improve application loading performance. Since _vendor_ code tends to change less often than the actual _application_ code, the browser will be able to cache them separately, and won't re-download them each time the app code changes. +- These files can either be _vendor_ code, or [code splitting chunks](code-splitting.md). _Vendor_ code includes modules that you've imported from within `node_modules`. One of the potential advantages with splitting your _vendor_ and _application_ code is to enable [long term caching techniques](#static-file-caching) to improve application loading performance. Since _vendor_ code tends to change less often than the actual _application_ code, the browser will be able to cache them separately, and won't re-download them each time the app code changes. `runtime~main.[hash].js` From 715448783af90ad78a86ca8b4da36e464a1067d2 Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Sat, 13 Apr 2019 20:18:51 -0700 Subject: [PATCH 0639/1249] Add link to TypeScript page in Getting Started (#6817) This also updates our min version of Node that we ask for --- docusaurus/docs/getting-started.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docusaurus/docs/getting-started.md b/docusaurus/docs/getting-started.md index 6945b4e6f08..ecc99198e03 100644 --- a/docusaurus/docs/getting-started.md +++ b/docusaurus/docs/getting-started.md @@ -34,7 +34,7 @@ Just create a project, and you’re good to go. ## Creating an App -**You’ll need to have Node >= 6 on your local development machine** (but it’s not required on the server). You can use [nvm](https://github.com/creationix/nvm#installation) (macOS/Linux) or [nvm-windows](https://github.com/coreybutler/nvm-windows#node-version-manager-nvm-for-windows) to easily switch Node versions between different projects. +**You’ll need to have Node >= 8.10 on your local development machine** (but it’s not required on the server). You can use [nvm](https://github.com/creationix/nvm#installation) (macOS/Linux) or [nvm-windows](https://github.com/coreybutler/nvm-windows#node-version-manager-nvm-for-windows) to easily switch Node versions between different projects. To create a new app, you may choose one of the following methods: @@ -62,6 +62,11 @@ yarn create react-app my-app _`yarn create` is available in Yarn 0.25+_ + +### Creating a TypeScript app + +Follow our [Adding TypeScript](adding-typescript.md) documentation to create a TypeScript app. + ## Output Running any of these commands will create a directory called `my-app` inside the current folder. Inside that directory, it will generate the initial project structure and install the transitive dependencies: From 9600b1648fd2d5c38978d4e3d171808befe6f53b Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Sun, 14 Apr 2019 15:27:50 -0600 Subject: [PATCH 0640/1249] Fix minimum React version for SVG component support (#6820) --- docusaurus/docs/adding-images-fonts-and-files.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/docs/adding-images-fonts-and-files.md b/docusaurus/docs/adding-images-fonts-and-files.md index 217a19775eb..ef1d4d8697e 100644 --- a/docusaurus/docs/adding-images-fonts-and-files.md +++ b/docusaurus/docs/adding-images-fonts-and-files.md @@ -44,7 +44,7 @@ An alternative way of handling static assets is described in the next section. ## Adding SVGs -> Note: this feature is available with `react-scripts@2.0.0` and higher, and `react@16.0.0` and higher. +> Note: this feature is available with `react-scripts@2.0.0` and higher, and `react@16.3.0` and higher. One way to add SVG files was described in the section above. You can also import SVGs directly as React components. You can use either of the two approaches. In your code it would look like this: From b29a1635479b20c3daaa7aa3f3402c8f45231cc9 Mon Sep 17 00:00:00 2001 From: Dan Date: Sun, 14 Apr 2019 14:29:13 -0700 Subject: [PATCH 0641/1249] Copy fix (#6801) --- docusaurus/docs/adding-bootstrap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/docs/adding-bootstrap.md b/docusaurus/docs/adding-bootstrap.md index dc103f81a99..7a8167050aa 100644 --- a/docusaurus/docs/adding-bootstrap.md +++ b/docusaurus/docs/adding-bootstrap.md @@ -3,7 +3,7 @@ id: adding-bootstrap title: Adding Bootstrap --- -While you don’t have to use any specific library to integrate Bootstrap with React apps, it's often easier than trying to wrap the Bootstrap jQuery plugins. [React Bootstrap](https://react-bootstrap.netlify.com/) is the most popular option, that strives for complete parity with bootstrap. [reactstrap](https://reactstrap.github.io/) is also a good choice for projects looking for smaller builds at the expense of some features. +While you don’t have to use any specific library to integrate Bootstrap with React apps, it's often easier than trying to wrap the Bootstrap jQuery plugins. [React Bootstrap](https://react-bootstrap.netlify.com/) is the most popular option that strives for complete parity with Bootstrap. [reactstrap](https://reactstrap.github.io/) is also a good choice for projects looking for smaller builds at the expense of some features. Each project's respective documentation site has detailed instructions for installing and using them. Both depend on the Bootstrap css file so install that as well: From bffc296a2c8967d46bed40d3120d82f2752496dc Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Sun, 14 Apr 2019 16:53:11 -0700 Subject: [PATCH 0642/1249] Update to core-js@3 (#6769) * Update to core-js@3 * Remove references to @babel/polyfill --- .../docs/supported-browsers-features.md | 6 +- packages/babel-preset-react-app/create.js | 4 +- packages/react-app-polyfill/README.md | 59 +++++++++++++++---- packages/react-app-polyfill/ie11.js | 4 +- packages/react-app-polyfill/ie9.js | 28 +-------- packages/react-app-polyfill/package.json | 6 +- packages/react-app-polyfill/stable.js | 13 ++++ 7 files changed, 71 insertions(+), 49 deletions(-) create mode 100644 packages/react-app-polyfill/stable.js diff --git a/docusaurus/docs/supported-browsers-features.md b/docusaurus/docs/supported-browsers-features.md index d2add48197a..2826b123afa 100644 --- a/docusaurus/docs/supported-browsers-features.md +++ b/docusaurus/docs/supported-browsers-features.md @@ -6,7 +6,7 @@ sidebar_label: Supported Browsers and Features ## Supported Browsers -By default, the generated project supports all modern browsers. Support for Internet Explorer 9, 10, and 11 requires polyfills. For a minimum set of polyfills to support older browsers, use [react-app-polyfill](https://github.com/facebook/create-react-app/blob/master/packages/react-app-polyfill/README.md). To polyfill other language features, see the [Adding Polyfills](#adding-polyfills) section below +By default, the generated project supports all modern browsers. Support for Internet Explorer 9, 10, and 11 requires polyfills. For a set of polyfills to support older browsers, use [react-app-polyfill](https://github.com/facebook/create-react-app/blob/master/packages/react-app-polyfill/README.md). ## Supported Language Features @@ -27,10 +27,6 @@ Note that **this project includes no [polyfills](https://github.com/facebook/cre If you use any other ES6+ features that need **runtime support** (such as `Array.from()` or `Symbol`), make sure you are [including the appropriate polyfills manually](https://github.com/facebook/create-react-app/blob/master/packages/react-app-polyfill/README.md), or that the browsers you are targeting already support them. -## Adding Polyfills - -You can install [`@babel/polyfill`](https://babeljs.io/docs/en/babel-polyfill) as a dependency in your application, and import it at the very top of your app's entry point (`src/index.js` or `src/index.tsx`) to emulate a full ES2015+ environment. Your `browerslist` configuration will be used to only include the polyfills necessary by your target browsers. - ## Configuring Supported Browsers By default, the generated project includes a [`browerslist`](https://github.com/browserslist/browserslist) configuration in your `package.json` file to target a broad range of browsers based on global usage (`> 0.2%`) for production builds, and modern browsers for development. This gives a good development experience, especially when using language features such as async/await, but still provides high compatibility with many browsers in production. diff --git a/packages/babel-preset-react-app/create.js b/packages/babel-preset-react-app/create.js index b645a22ede2..7b7f1da6ed1 100644 --- a/packages/babel-preset-react-app/create.js +++ b/packages/babel-preset-react-app/create.js @@ -79,11 +79,11 @@ module.exports = function(api, opts, env) { // Latest stable ECMAScript features require('@babel/preset-env').default, { - // Allow importing @babel/polyfill in entrypoint and use browserlist to select polyfills + // Allow importing core-js in entrypoint and use browserlist to select polyfills useBuiltIns: 'entry', // Set the corejs version we are using to avoid warnings in console // This will need to change once we upgrade to corejs@3 - corejs: 2, + corejs: 3, // Do not transform modules to CJS modules: false, // Exclude transforms that make all code slower diff --git a/packages/react-app-polyfill/README.md b/packages/react-app-polyfill/README.md index 75b066e3c37..d5f68229617 100644 --- a/packages/react-app-polyfill/README.md +++ b/packages/react-app-polyfill/README.md @@ -3,18 +3,6 @@ This package includes polyfills for various browsers. It includes minimum requirements and commonly used language features used by [Create React App](https://github.com/facebook/create-react-app) projects. -### Features - -Each polyfill ensures the following language features are present: - -1. `Promise` (for `async` / `await` support) -1. `window.fetch` (a Promise-based way to make web requests in the browser) -1. `Object.assign` (a helper required for Object Spread, i.e. `{ ...a, ...b }`) -1. `Symbol` (a built-in object used by `for...of` syntax and friends) -1. `Array.from` (a built-in static method used by array spread, i.e. `[...arr]`) - -_If you need more features, you must include them manually._ - ### Usage First, install the package using Yarn or npm: @@ -29,7 +17,19 @@ or yarn add react-app-polyfill ``` -Now, you can import the entry point for the minimal version you intend to support. For example, if you import the IE9 entry point, this will include IE10 and IE11 support. +## Supporting Internet Explorer + +You can import the entry point for the minimal version you intend to support to ensure that the minimum langauge features are present that are required to use Create React App. For example, if you import the IE9 entry point, this will include IE10 and IE11 support. + +These modules ensure the following language features are present: + +1. `Promise` (for `async` / `await` support) +1. `window.fetch` (a Promise-based way to make web requests in the browser) +1. `Object.assign` (a helper required for Object Spread, i.e. `{ ...a, ...b }`) +1. `Symbol` (a built-in object used by `for...of` syntax and friends) +1. `Array.from` (a built-in static method used by array spread, i.e. `[...arr]`) + +_If you need more features, see the [Polyfilling other language features](#polyfilling-other-language-features) section below._ #### Internet Explorer 9 @@ -48,3 +48,36 @@ import 'react-app-polyfill/ie11'; // ... ``` + +## Polyfilling other language features + +You can also polyfill stable language features not available in your target browsers. If you're using this in Create React App, it will automatically use the `browserslist` you've defined to only include polyfills needed by your target browsers when importing the `stable` polyfill. **Make sure to follow the Internet Explorer steps above if you need to support Internet Explorer in your application**. + +```js +// This must be the first line in src/index.js +import 'react-app-polyfill/stable'; + +// ... +``` + +If you are supporting Internet Explorer 9 or Internet Explorer 11 you should include both the `ie9` or `ie11` and `stable` modules: + +For IE9: + +```js +// These must be the first lines in src/index.js +import 'react-app-polyfill/ie9'; +import 'react-app-polyfill/stable'; + +// ... +``` + +For IE11: + +```js +// These must be the first lines in src/index.js +import 'react-app-polyfill/ie11'; +import 'react-app-polyfill/stable'; + +// ... +``` diff --git a/packages/react-app-polyfill/ie11.js b/packages/react-app-polyfill/ie11.js index e7e3d6b71a0..4a5bcd6bf38 100644 --- a/packages/react-app-polyfill/ie11.js +++ b/packages/react-app-polyfill/ie11.js @@ -26,6 +26,6 @@ if (typeof window !== 'undefined') { Object.assign = require('object-assign'); // Support for...of (a commonly used syntax feature that requires Symbols) -require('core-js/es6/symbol'); +require('core-js/features/symbol'); // Support iterable spread (...Set, ...Map) -require('core-js/fn/array/from'); +require('core-js/features/array/from'); diff --git a/packages/react-app-polyfill/ie9.js b/packages/react-app-polyfill/ie9.js index 9f355f28f21..42e31fdb1fb 100644 --- a/packages/react-app-polyfill/ie9.js +++ b/packages/react-app-polyfill/ie9.js @@ -6,31 +6,9 @@ */ 'use strict'; -if (typeof Promise === 'undefined') { - // Rejection tracking prevents a common issue where React gets into an - // inconsistent state due to an error, but it gets swallowed by a Promise, - // and the user has no idea what causes React's erratic future behavior. - require('promise/lib/rejection-tracking').enable(); - window.Promise = require('promise/lib/es6-extensions.js'); -} - -// Make sure we're in a Browser-like environment before importing polyfills -// This prevents `fetch()` from being imported in a Node test environment -if (typeof window !== 'undefined') { - // fetch() polyfill for making API calls. - require('whatwg-fetch'); -} - -// Object.assign() is commonly used with React. -// It will use the native implementation if it's present and isn't buggy. -Object.assign = require('object-assign'); - -// Support for...of (a commonly used syntax feature that requires Symbols) -require('core-js/es6/symbol'); -// Support iterable spread (...Set, ...Map) -require('core-js/fn/array/from'); +require('./ie11'); // React 16+ relies on Map, Set, and requestAnimationFrame -require('core-js/es6/map'); -require('core-js/es6/set'); +require('core-js/features/map'); +require('core-js/features/set'); require('raf').polyfill(window); diff --git a/packages/react-app-polyfill/package.json b/packages/react-app-polyfill/package.json index b9b55d3a1e0..ad5e231575f 100644 --- a/packages/react-app-polyfill/package.json +++ b/packages/react-app-polyfill/package.json @@ -13,13 +13,15 @@ "files": [ "ie9.js", "ie11.js", - "jsdom.js" + "jsdom.js", + "stable.js" ], "dependencies": { - "core-js": "2.6.5", + "core-js": "3.0.1", "object-assign": "4.1.1", "promise": "8.0.2", "raf": "3.4.1", + "regenerator-runtime": "0.13.2", "whatwg-fetch": "3.0.0" } } diff --git a/packages/react-app-polyfill/stable.js b/packages/react-app-polyfill/stable.js new file mode 100644 index 00000000000..6108630c7c0 --- /dev/null +++ b/packages/react-app-polyfill/stable.js @@ -0,0 +1,13 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +'use strict'; + +// Polyfill stable language features. +// It's recommended to use @babel/preset-env and browserslist +// to only include the polyfills necessary for the target browsers. +require('core-js/stable'); +require('regenerator-runtime/runtime'); From fdbb55022cbf9f2552dc3adccaa80eec45172018 Mon Sep 17 00:00:00 2001 From: "Alessandro (Ale) Segala" <43508+ItalyPaleAle@users.noreply.github.com> Date: Mon, 15 Apr 2019 19:38:31 -0700 Subject: [PATCH 0643/1249] InlineChunkHtmlPlugin works with empty publicPath (#6735) * InlineChunkHtmlPlugin works with empty publicPath * Update as requested --- packages/react-dev-utils/InlineChunkHtmlPlugin.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/react-dev-utils/InlineChunkHtmlPlugin.js b/packages/react-dev-utils/InlineChunkHtmlPlugin.js index e38ed53d3fb..de47f464551 100644 --- a/packages/react-dev-utils/InlineChunkHtmlPlugin.js +++ b/packages/react-dev-utils/InlineChunkHtmlPlugin.js @@ -17,7 +17,7 @@ class InlineChunkHtmlPlugin { if (tag.tagName !== 'script' || !(tag.attributes && tag.attributes.src)) { return tag; } - const scriptName = tag.attributes.src.replace(publicPath, ''); + const scriptName = publicPath ? tag.attributes.src.replace(publicPath, '') : tag.attributes.src; if (!this.tests.some(test => scriptName.match(test))) { return tag; } @@ -29,8 +29,8 @@ class InlineChunkHtmlPlugin { } apply(compiler) { - let publicPath = compiler.options.output.publicPath; - if (!publicPath.endsWith('/')) { + let publicPath = compiler.options.output.publicPath || ''; + if (publicPath && !publicPath.endsWith('/')) { publicPath += '/'; } From 50c1884e628001ab3d78c63e9871568f2fbe5cc4 Mon Sep 17 00:00:00 2001 From: Travis Fischer Date: Mon, 15 Apr 2019 22:59:13 -0400 Subject: [PATCH 0644/1249] Fix react-scripts peer dependencies link local issue (#6579) (#6580) --- packages/react-scripts/config/webpack.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index a41d60e69bc..980bbb108ba 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -268,7 +268,7 @@ module.exports = function(webpackEnv) { // We placed these paths second because we want `node_modules` to "win" // if there are any conflicts. This matches Node resolution mechanism. // https://github.com/facebook/create-react-app/issues/253 - modules: ['node_modules'].concat( + modules: ['node_modules', paths.appNodeModules].concat( // It is guaranteed to exist because we tweak it in `env.js` process.env.NODE_PATH.split(path.delimiter).filter(Boolean) ), From 9048dd66a0a6f7ec4a877abe917b51287d66da75 Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Mon, 15 Apr 2019 21:35:25 -0600 Subject: [PATCH 0645/1249] Move list of files under `files` key in asset manifest (#6821) --- packages/react-scripts/config/webpack.config.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index 980bbb108ba..42004dc7f6c 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -598,6 +598,16 @@ module.exports = function(webpackEnv) { new ManifestPlugin({ fileName: 'asset-manifest.json', publicPath: publicPath, + generate: (seed, files) => { + const manifestFiles = files.reduce(function(manifest, file) { + manifest[file.name] = file.path; + return manifest; + }, seed); + + return { + files: manifestFiles, + }; + }, }), // Moment.js is an extremely popular library that bundles large locale files // by default due to how Webpack interprets its code. This is a practical From 207d9315b138fc6c830da5295342d0f034dbeab3 Mon Sep 17 00:00:00 2001 From: Nathan Brown Date: Mon, 15 Apr 2019 20:44:56 -0700 Subject: [PATCH 0646/1249] Update testMatch to also be compatible with Jest 24 (#6313) --- packages/react-scripts/scripts/utils/createJestConfig.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/scripts/utils/createJestConfig.js b/packages/react-scripts/scripts/utils/createJestConfig.js index 4300c7e480c..f57fc91b4d3 100644 --- a/packages/react-scripts/scripts/utils/createJestConfig.js +++ b/packages/react-scripts/scripts/utils/createJestConfig.js @@ -33,7 +33,7 @@ module.exports = (resolve, rootDir, isEjecting) => { setupFilesAfterEnv: setupTestsFile ? [setupTestsFile] : [], testMatch: [ '/src/**/__tests__/**/*.{js,jsx,ts,tsx}', - '/src/**/?(*.)(spec|test).{js,jsx,ts,tsx}', + '/src/**/*.{spec,test}.{js,jsx,ts,tsx}', ], testEnvironment: 'jest-environment-jsdom-fourteen', transform: { From ced3fd49ca1b224d9a5cb282acf7314e527b8a96 Mon Sep 17 00:00:00 2001 From: Philip Harrison Date: Tue, 16 Apr 2019 15:58:03 +0100 Subject: [PATCH 0647/1249] Add directory details to packages/* package.json (#6826) Specifying the directory as part of the repository field in a package.json allows third party tools to provide better support when working with monorepos. For example, it allows them to correctly construct a commit diff for a specific package. This format was accepted by npm in [npm/rfcs#19](https://github.com/npm/rfcs/pull/19). --- packages/babel-plugin-named-asset-import/package.json | 8 ++++++-- packages/babel-preset-react-app/package.json | 6 +++++- packages/confusing-browser-globals/package.json | 6 +++++- packages/create-react-app/package.json | 6 +++++- packages/eslint-config-react-app/package.json | 6 +++++- packages/react-app-polyfill/package.json | 6 +++++- packages/react-dev-utils/package.json | 6 +++++- packages/react-error-overlay/package.json | 6 +++++- packages/react-scripts/package.json | 8 ++++++-- 9 files changed, 47 insertions(+), 11 deletions(-) diff --git a/packages/babel-plugin-named-asset-import/package.json b/packages/babel-plugin-named-asset-import/package.json index e78d36b5ff4..165b49565d2 100644 --- a/packages/babel-plugin-named-asset-import/package.json +++ b/packages/babel-plugin-named-asset-import/package.json @@ -2,10 +2,14 @@ "name": "babel-plugin-named-asset-import", "version": "0.3.1", "description": "Babel plugin for named asset imports in Create React App", - "repository": "facebookincubator/create-react-app", + "repository": { + "type" : "git", + "url" : "https://github.com/facebook/create-react-app.git", + "directory": "packages/babel-plugin-named-asset-import" + }, "license": "MIT", "bugs": { - "url": "https://github.com/facebookincubator/create-react-app/issues" + "url": "https://github.com/facebook/create-react-app/issues" }, "main": "index.js", "files": [ diff --git a/packages/babel-preset-react-app/package.json b/packages/babel-preset-react-app/package.json index 6c13e73fcfb..af39b6d46c9 100644 --- a/packages/babel-preset-react-app/package.json +++ b/packages/babel-preset-react-app/package.json @@ -2,7 +2,11 @@ "name": "babel-preset-react-app", "version": "7.0.2", "description": "Babel preset used by Create React App", - "repository": "facebook/create-react-app", + "repository": { + "type" : "git", + "url" : "https://github.com/facebook/create-react-app.git", + "directory": "packages/babel-preset-react-app" + }, "license": "MIT", "bugs": { "url": "https://github.com/facebook/create-react-app/issues" diff --git a/packages/confusing-browser-globals/package.json b/packages/confusing-browser-globals/package.json index 8a01fe564e2..879c6f8d2d9 100644 --- a/packages/confusing-browser-globals/package.json +++ b/packages/confusing-browser-globals/package.json @@ -7,7 +7,11 @@ "scripts": { "test": "jest" }, - "repository": "facebook/create-react-app", + "repository": { + "type" : "git", + "url" : "https://github.com/facebook/create-react-app.git", + "directory": "packages/confusing-browser-globals" + }, "keywords": [ "eslint", "globals" diff --git a/packages/create-react-app/package.json b/packages/create-react-app/package.json index c561b209aa2..bf7ceb6ab2a 100644 --- a/packages/create-react-app/package.json +++ b/packages/create-react-app/package.json @@ -5,7 +5,11 @@ "react" ], "description": "Create React apps with no build configuration.", - "repository": "facebook/create-react-app", + "repository": { + "type" : "git", + "url" : "https://github.com/facebook/create-react-app.git", + "directory": "packages/create-react-app" + }, "license": "MIT", "engines": { "node": ">=8" diff --git a/packages/eslint-config-react-app/package.json b/packages/eslint-config-react-app/package.json index d9d9c2b3481..a47a07fd623 100644 --- a/packages/eslint-config-react-app/package.json +++ b/packages/eslint-config-react-app/package.json @@ -2,7 +2,11 @@ "name": "eslint-config-react-app", "version": "3.0.8", "description": "ESLint configuration used by Create React App", - "repository": "facebook/create-react-app", + "repository": { + "type" : "git", + "url" : "https://github.com/facebook/create-react-app.git", + "directory": "packages/eslint-config-react-app" + }, "license": "MIT", "bugs": { "url": "https://github.com/facebook/create-react-app/issues" diff --git a/packages/react-app-polyfill/package.json b/packages/react-app-polyfill/package.json index ad5e231575f..af264067f86 100644 --- a/packages/react-app-polyfill/package.json +++ b/packages/react-app-polyfill/package.json @@ -2,7 +2,11 @@ "name": "react-app-polyfill", "version": "0.2.2", "description": "Polyfills for various browsers including commonly used language features", - "repository": "facebook/create-react-app", + "repository": { + "type" : "git", + "url" : "https://github.com/facebook/create-react-app.git", + "directory": "packages/react-app-polyfill" + }, "license": "MIT", "bugs": { "url": "https://github.com/facebook/create-react-app/issues" diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index ed947d1148d..4c79e4299c4 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -2,7 +2,11 @@ "name": "react-dev-utils", "version": "8.0.0", "description": "Webpack utilities used by Create React App", - "repository": "facebook/create-react-app", + "repository": { + "type" : "git", + "url" : "https://github.com/facebook/create-react-app.git", + "directory": "packages/react-dev-utils" + }, "license": "MIT", "bugs": { "url": "https://github.com/facebook/create-react-app/issues" diff --git a/packages/react-error-overlay/package.json b/packages/react-error-overlay/package.json index f24efd368d9..ca951fff90d 100644 --- a/packages/react-error-overlay/package.json +++ b/packages/react-error-overlay/package.json @@ -10,7 +10,11 @@ "build": "cross-env NODE_ENV=development node build.js", "build:prod": "cross-env NODE_ENV=production node build.js" }, - "repository": "facebook/create-react-app", + "repository": { + "type" : "git", + "url" : "https://github.com/facebook/create-react-app.git", + "directory": "packages/react-error-overlay" + }, "license": "MIT", "bugs": { "url": "https://github.com/facebook/create-react-app/issues" diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 380c09991c7..8116b28a224 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -2,7 +2,11 @@ "name": "react-scripts", "version": "2.1.8", "description": "Configuration and scripts for Create React App.", - "repository": "facebook/create-react-app", + "repository": { + "type" : "git", + "url" : "https://github.com/facebook/create-react-app.git", + "directory": "packages/react-scripts" + }, "license": "MIT", "engines": { "node": ">=8.10" @@ -59,7 +63,7 @@ "pnp-webpack-plugin": "1.2.1", "postcss-flexbugs-fixes": "4.1.0", "postcss-loader": "3.0.0", - "postcss-normalize": "7.0.1", + "postcss-normalize": "7.0.1", "postcss-preset-env": "6.6.0", "postcss-safe-parser": "4.0.1", "react-app-polyfill": "^0.2.2", From e7a2d6168a3a93ea58bafdc851eb2bbda20d5ce6 Mon Sep 17 00:00:00 2001 From: Robert van Steen Date: Tue, 16 Apr 2019 23:08:24 +0200 Subject: [PATCH 0648/1249] Set baseUrl from jsconfig.json/tsconfig.json (#6656) * Set baseUrl from jsconfig.json/tsconfig.json * Resolve the path for loading modules * Add tests for jsconfig.json * Add jsconfig.json * Update packages/react-scripts/scripts/start.js * Move baseUrl test to config folder * Remove alias test * Use chalk from react-dev-utils * Add lost absolute file for typescript baseUrl test * Update packages/react-scripts/config/modules.js * Update other references of useTypeScript to hasTsConfig * Fix casing of TypeScript * Keep respecting NODE_PATH for now to support multiple module paths. * Add test for NODE_PATH * Add fallback if NODE_PATH is not set. * Fix node path behavior tests * Remove debugging code from behavior test suite * Remove more debugging code * Show NODE_PATH deprecation warning during build Co-authored-by: Ian Sutherland Co-authored-by: Brody McKee Co-authored-by: Jack Zhao --- docusaurus/docs/deployment.md | 4 +- docusaurus/docs/getting-started.md | 1 - packages/react-scripts/config/modules.js | 92 +++++++++++++++++++ packages/react-scripts/config/paths.js | 3 + .../react-scripts/config/webpack.config.js | 6 +- .../kitchensink/integration/config.test.js | 19 ++++ .../kitchensink/integration/env.test.js | 6 -- .../fixtures/kitchensink/jsconfig.json | 5 + .../fixtures/kitchensink/src/App.js | 8 +- .../{env/NodePath.js => config/BaseUrl.js} | 2 +- .../BaseUrl.test.js} | 4 +- packages/react-scripts/scripts/build.js | 12 +++ packages/react-scripts/scripts/start.js | 13 +++ .../scripts/utils/createJestConfig.js | 2 + .../scripts/utils/verifyTypeScriptSetup.js | 11 +-- tasks/e2e-kitchensink.sh | 2 - tasks/local-test.sh | 3 + test/fixtures/node_path/.disable-pnp | 0 test/fixtures/node_path/.env | 1 + test/fixtures/node_path/index.test.js | 14 +++ test/fixtures/node_path/package.json | 7 ++ test/fixtures/node_path/src/App.js | 41 +++++++++ test/fixtures/node_path/src/App.test.js | 17 ++++ test/fixtures/node_path/src/absoluteLoad.js | 13 +++ test/fixtures/node_path/src/index.js | 5 + test/fixtures/typescript/src/App.test.ts | 10 ++ test/fixtures/typescript/src/App.ts | 3 + test/fixtures/typescript/src/absoluteLoad.ts | 13 +++ test/fixtures/typescript/tsconfig.json | 1 + 29 files changed, 290 insertions(+), 28 deletions(-) create mode 100644 packages/react-scripts/config/modules.js create mode 100644 packages/react-scripts/fixtures/kitchensink/integration/config.test.js create mode 100644 packages/react-scripts/fixtures/kitchensink/jsconfig.json rename packages/react-scripts/fixtures/kitchensink/src/features/{env/NodePath.js => config/BaseUrl.js} (95%) rename packages/react-scripts/fixtures/kitchensink/src/features/{env/NodePath.test.js => config/BaseUrl.test.js} (87%) create mode 100644 test/fixtures/node_path/.disable-pnp create mode 100644 test/fixtures/node_path/.env create mode 100644 test/fixtures/node_path/index.test.js create mode 100644 test/fixtures/node_path/package.json create mode 100644 test/fixtures/node_path/src/App.js create mode 100644 test/fixtures/node_path/src/App.test.js create mode 100644 test/fixtures/node_path/src/absoluteLoad.js create mode 100644 test/fixtures/node_path/src/index.js create mode 100644 test/fixtures/typescript/src/absoluteLoad.ts diff --git a/docusaurus/docs/deployment.md b/docusaurus/docs/deployment.md index f4b257e6003..507628d9bc3 100644 --- a/docusaurus/docs/deployment.md +++ b/docusaurus/docs/deployment.md @@ -167,9 +167,9 @@ The AWS Amplify Console provides continuous deployment and hosting for modern we 1. Login to the Amplify Console [here](https://console.aws.amazon.com/amplify/home). 1. Connect your Create React App repo and pick a branch. If you're looking for a Create React App+Amplify starter, try the [create-react-app-auth-amplify starter](https://github.com/swaminator/create-react-app-auth-amplify) that demonstrates setting up auth in 10 minutes with Create React App. 1. The Amplify Console automatically detects the build settings. Choose Next. -1. Choose *Save and deploy*. +1. Choose _Save and deploy_. -If the build succeeds, the app is deployed and hosted on a global CDN with an amplifyapp.com domain. You can now continuously deploy changes to your frontend or backend. Continuous deployment allows developers to deploy updates to their frontend and backend on every code commit to their Git repository. +If the build succeeds, the app is deployed and hosted on a global CDN with an amplifyapp.com domain. You can now continuously deploy changes to your frontend or backend. Continuous deployment allows developers to deploy updates to their frontend and backend on every code commit to their Git repository. ## [Azure](https://azure.microsoft.com/) diff --git a/docusaurus/docs/getting-started.md b/docusaurus/docs/getting-started.md index ecc99198e03..ab52bc6c7b5 100644 --- a/docusaurus/docs/getting-started.md +++ b/docusaurus/docs/getting-started.md @@ -62,7 +62,6 @@ yarn create react-app my-app _`yarn create` is available in Yarn 0.25+_ - ### Creating a TypeScript app Follow our [Adding TypeScript](adding-typescript.md) documentation to create a TypeScript app. diff --git a/packages/react-scripts/config/modules.js b/packages/react-scripts/config/modules.js new file mode 100644 index 00000000000..b232fe37150 --- /dev/null +++ b/packages/react-scripts/config/modules.js @@ -0,0 +1,92 @@ +// @remove-on-eject-begin +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +// @remove-on-eject-end +'use strict'; + +const fs = require('fs'); +const path = require('path'); +const paths = require('./paths'); +const chalk = require('react-dev-utils/chalk'); + +/** + * Get the baseUrl of a compilerOptions object. + * + * @param {Object} options + */ +function getAdditionalModulePaths(options = {}) { + const baseUrl = options.baseUrl; + + // We need to explicitly check for null and undefined (and not a falsy value) because + // TypeScript treats an empty string as `.`. + if (baseUrl == null) { + // If there's no baseUrl set we respect NODE_PATH + // Note that NODE_PATH is deprecated and will be removed + // in the next major release of create-react-app. + + const nodePath = process.env.NODE_PATH || ''; + return nodePath.split(path.delimiter).filter(Boolean); + } + + const baseUrlResolved = path.resolve(paths.appPath, baseUrl); + + // We don't need to do anything if `baseUrl` is set to `node_modules`. This is + // the default behavior. + if (path.relative(paths.appNodeModules, baseUrlResolved) === '') { + return null; + } + + // Allow the user set the `baseUrl` to `appSrc`. + if (path.relative(paths.appSrc, baseUrlResolved) === '') { + return [paths.appSrc]; + } + + // Otherwise, throw an error. + throw new Error( + chalk.red.bold( + "Your project's `baseUrl` can only be set to `src` or `node_modules`." + + ' Create React App does not support other values at this time.' + ) + ); +} + +function getModules() { + // Check if TypeScript is setup + const hasTsConfig = fs.existsSync(paths.appTsConfig); + const hasJsConfig = fs.existsSync(paths.appJsConfig); + + if (hasTsConfig && hasJsConfig) { + throw new Error( + 'You have both a tsconfig.json and a jsconfig.json. If you are using TypeScript please remove your jsconfig.json file.' + ); + } + + let config; + + // If there's a tsconfig.json we assume it's a + // TypeScript project and set up the config + // based on tsconfig.json + if (hasTsConfig) { + config = require(paths.appTsConfig); + // Otherwise we'll check if there is jsconfig.json + // for non TS projects. + } else if (hasJsConfig) { + config = require(paths.appJsConfig); + } + + config = config || {}; + const options = config.compilerOptions || {}; + + const additionalModulePaths = getAdditionalModulePaths(options); + + return { + additionalModulePaths: additionalModulePaths, + hasTsConfig, + }; +} + +module.exports = getModules(); diff --git a/packages/react-scripts/config/paths.js b/packages/react-scripts/config/paths.js index b719054583b..e5a3e0b5374 100644 --- a/packages/react-scripts/config/paths.js +++ b/packages/react-scripts/config/paths.js @@ -84,6 +84,7 @@ module.exports = { appPackageJson: resolveApp('package.json'), appSrc: resolveApp('src'), appTsConfig: resolveApp('tsconfig.json'), + appJsConfig: resolveApp('jsconfig.json'), yarnLockFile: resolveApp('yarn.lock'), testsSetup: resolveModule(resolveApp, 'src/setupTests'), proxySetup: resolveApp('src/setupProxy.js'), @@ -106,6 +107,7 @@ module.exports = { appPackageJson: resolveApp('package.json'), appSrc: resolveApp('src'), appTsConfig: resolveApp('tsconfig.json'), + appJsConfig: resolveApp('jsconfig.json'), yarnLockFile: resolveApp('yarn.lock'), testsSetup: resolveModule(resolveApp, 'src/setupTests'), proxySetup: resolveApp('src/setupProxy.js'), @@ -140,6 +142,7 @@ if ( appPackageJson: resolveOwn('package.json'), appSrc: resolveOwn('template/src'), appTsConfig: resolveOwn('template/tsconfig.json'), + appJsConfig: resolveOwn('template/jsconfig.json'), yarnLockFile: resolveOwn('template/yarn.lock'), testsSetup: resolveModule(resolveOwn, 'template/src/setupTests'), proxySetup: resolveOwn('template/src/setupProxy.js'), diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index 42004dc7f6c..a0ba6c6306e 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -28,6 +28,7 @@ const WatchMissingNodeModulesPlugin = require('react-dev-utils/WatchMissingNodeM const ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin'); const getCSSModuleLocalIdent = require('react-dev-utils/getCSSModuleLocalIdent'); const paths = require('./paths'); +const modules = require('./modules'); const getClientEnvironment = require('./env'); const ModuleNotFoundPlugin = require('react-dev-utils/ModuleNotFoundPlugin'); const ForkTsCheckerWebpackPlugin = require('react-dev-utils/ForkTsCheckerWebpackPlugin'); @@ -268,10 +269,7 @@ module.exports = function(webpackEnv) { // We placed these paths second because we want `node_modules` to "win" // if there are any conflicts. This matches Node resolution mechanism. // https://github.com/facebook/create-react-app/issues/253 - modules: ['node_modules', paths.appNodeModules].concat( - // It is guaranteed to exist because we tweak it in `env.js` - process.env.NODE_PATH.split(path.delimiter).filter(Boolean) - ), + modules: ['node_modules', paths.appNodeModules].concat(modules.additionalModulePaths || []), // These are the reasonable defaults supported by the Node ecosystem. // We also include JSX as a common component filename extension to support // some tools, although we do not recommend using it, see: diff --git a/packages/react-scripts/fixtures/kitchensink/integration/config.test.js b/packages/react-scripts/fixtures/kitchensink/integration/config.test.js new file mode 100644 index 00000000000..6d09b56c481 --- /dev/null +++ b/packages/react-scripts/fixtures/kitchensink/integration/config.test.js @@ -0,0 +1,19 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import initDOM from './initDOM'; + +describe('Integration', () => { + describe('jsconfig.json/tsconfig.json', () => { + it('Supports setting baseUrl to src', async () => { + const doc = await initDOM('base-url'); + + expect(doc.getElementById('feature-base-url').childElementCount).toBe(4); + doc.defaultView.close(); + }); + }); +}); diff --git a/packages/react-scripts/fixtures/kitchensink/integration/env.test.js b/packages/react-scripts/fixtures/kitchensink/integration/env.test.js index f86a09d52f6..7181c2fa78d 100644 --- a/packages/react-scripts/fixtures/kitchensink/integration/env.test.js +++ b/packages/react-scripts/fixtures/kitchensink/integration/env.test.js @@ -43,12 +43,6 @@ describe('Integration', () => { } }); - it('NODE_PATH', async () => { - doc = await initDOM('node-path'); - - expect(doc.getElementById('feature-node-path').childElementCount).toBe(4); - }); - it('PUBLIC_URL', async () => { doc = await initDOM('public-url'); diff --git a/packages/react-scripts/fixtures/kitchensink/jsconfig.json b/packages/react-scripts/fixtures/kitchensink/jsconfig.json new file mode 100644 index 00000000000..ec2332eb49c --- /dev/null +++ b/packages/react-scripts/fixtures/kitchensink/jsconfig.json @@ -0,0 +1,5 @@ +{ + "compilerOptions": { + "baseUrl": "src" + } +} diff --git a/packages/react-scripts/fixtures/kitchensink/src/App.js b/packages/react-scripts/fixtures/kitchensink/src/App.js index 547138832f3..457b552601d 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/App.js +++ b/packages/react-scripts/fixtures/kitchensink/src/App.js @@ -166,9 +166,6 @@ class App extends Component { this.setFeature(f.default) ); break; - case 'node-path': - import('./features/env/NodePath').then(f => this.setFeature(f.default)); - break; case 'no-ext-inclusion': import('./features/webpack/NoExtInclusion').then(f => this.setFeature(f.default) @@ -239,6 +236,11 @@ class App extends Component { this.setFeature(f.default) ); break; + case 'base-url': + import('./features/config/BaseUrl').then(f => + this.setFeature(f.default) + ); + break; default: this.setState({ error: `Missing feature "${feature}"` }); } diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/env/NodePath.js b/packages/react-scripts/fixtures/kitchensink/src/features/config/BaseUrl.js similarity index 95% rename from packages/react-scripts/fixtures/kitchensink/src/features/env/NodePath.js rename to packages/react-scripts/fixtures/kitchensink/src/features/config/BaseUrl.js index e89228e20b0..818d4db271b 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/env/NodePath.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/config/BaseUrl.js @@ -30,7 +30,7 @@ export default class extends Component { render() { return ( -
+
{this.state.users.map(user => (
{user.name}
))} diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/env/NodePath.test.js b/packages/react-scripts/fixtures/kitchensink/src/features/config/BaseUrl.test.js similarity index 87% rename from packages/react-scripts/fixtures/kitchensink/src/features/env/NodePath.test.js rename to packages/react-scripts/fixtures/kitchensink/src/features/config/BaseUrl.test.js index 1de025d2f2f..aa8ddc396f7 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/env/NodePath.test.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/config/BaseUrl.test.js @@ -7,9 +7,9 @@ import React from 'react'; import ReactDOM from 'react-dom'; -import NodePath from './NodePath'; +import NodePath from './BaseUrl'; -describe('NODE_PATH', () => { +describe('BASE_URL', () => { it('renders without crashing', () => { const div = document.createElement('div'); return new Promise(resolve => { diff --git a/packages/react-scripts/scripts/build.js b/packages/react-scripts/scripts/build.js index ab9cdee8ba1..edbc6d11557 100644 --- a/packages/react-scripts/scripts/build.js +++ b/packages/react-scripts/scripts/build.js @@ -136,6 +136,18 @@ checkBrowsers(paths.appPath, isInteractive) // Create the production build and print the deployment instructions. function build(previousFileSizes) { + // We used to support resolving modules according to `NODE_PATH`. + // This now has been deprecated in favor of jsconfig/tsconfig.json + // This lets you use absolute paths in imports inside large monorepos: + if (process.env.NODE_PATH) { + console.log( + chalk.yellow( + 'Setting NODE_PATH to resolve modules absolutely has been deprecated in favor of setting baseUrl in jsconfig.json (or tsconfig.json if you are using TypeScript) and will be removed in a future major release of create-react-app.' + ) + ); + console.log(); + } + console.log('Creating an optimized production build...'); const compiler = webpack(config); diff --git a/packages/react-scripts/scripts/start.js b/packages/react-scripts/scripts/start.js index 29d5033f251..d4726f5f67e 100644 --- a/packages/react-scripts/scripts/start.js +++ b/packages/react-scripts/scripts/start.js @@ -129,6 +129,19 @@ checkBrowsers(paths.appPath, isInteractive) if (isInteractive) { clearConsole(); } + + // We used to support resolving modules according to `NODE_PATH`. + // This now has been deprecated in favor of jsconfig/tsconfig.json + // This lets you use absolute paths in imports inside large monorepos: + if (process.env.NODE_PATH) { + console.log( + chalk.yellow( + 'Setting NODE_PATH to resolve modules absolutely has been deprecated in favor of setting baseUrl in jsconfig.json (or tsconfig.json if you are using TypeScript) and will be removed in a future major release of create-react-app.' + ) + ); + console.log(); + } + console.log(chalk.cyan('Starting the development server...\n')); openBrowser(urls.localUrlForBrowser); }); diff --git a/packages/react-scripts/scripts/utils/createJestConfig.js b/packages/react-scripts/scripts/utils/createJestConfig.js index f57fc91b4d3..d2c788268b8 100644 --- a/packages/react-scripts/scripts/utils/createJestConfig.js +++ b/packages/react-scripts/scripts/utils/createJestConfig.js @@ -10,6 +10,7 @@ const fs = require('fs'); const chalk = require('react-dev-utils/chalk'); const paths = require('../../config/paths'); +const modules = require('../../config/modules'); module.exports = (resolve, rootDir, isEjecting) => { // Use this instead of `paths.testsSetup` to avoid putting @@ -49,6 +50,7 @@ module.exports = (resolve, rootDir, isEjecting) => { '[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$', '^.+\\.module\\.(css|sass|scss)$', ], + modulePaths: modules.additionalModulePaths || [], moduleNameMapper: { '^react-native$': 'react-native-web', '^.+\\.module\\.(css|sass|scss)$': 'identity-obj-proxy', diff --git a/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js b/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js index 4e6e8c96beb..7972c4e1012 100644 --- a/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js +++ b/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js @@ -18,7 +18,10 @@ const immer = require('react-dev-utils/immer').produce; const globby = require('react-dev-utils/globby').sync; function writeJson(fileName, object) { - fs.writeFileSync(fileName, JSON.stringify(object, null, 2).replace(/\n/g, os.EOL) + os.EOL); + fs.writeFileSync( + fileName, + JSON.stringify(object, null, 2).replace(/\n/g, os.EOL) + os.EOL + ); } function verifyNoTypeScript() { @@ -124,12 +127,6 @@ function verifyTypeScriptSetup() { value: 'preserve', reason: 'JSX is compiled by Babel', }, - // We do not support absolute imports, though this may come as a future - // enhancement - baseUrl: { - value: undefined, - reason: 'absolute imports are not supported (yet)', - }, paths: { value: undefined, reason: 'aliased imports are not supported' }, }; diff --git a/tasks/e2e-kitchensink.sh b/tasks/e2e-kitchensink.sh index d9810d67941..556712d3ec6 100755 --- a/tasks/e2e-kitchensink.sh +++ b/tasks/e2e-kitchensink.sh @@ -123,7 +123,6 @@ npm link "$temp_module_path/node_modules/test-integrity" # Test the build REACT_APP_SHELL_ENV_MESSAGE=fromtheshell \ - NODE_PATH=src \ PUBLIC_URL=http://www.example.org/spa/ \ yarn build @@ -135,7 +134,6 @@ exists build/static/js/main.*.js # https://facebook.github.io/jest/docs/en/troubleshooting.html#tests-are-extremely-slow-on-docker-and-or-continuous-integration-ci-server REACT_APP_SHELL_ENV_MESSAGE=fromtheshell \ CI=true \ - NODE_PATH=src \ NODE_ENV=test \ yarn test --no-cache --runInBand --testPathPattern=src diff --git a/tasks/local-test.sh b/tasks/local-test.sh index d1c01946c2f..ed4fcbe50ff 100755 --- a/tasks/local-test.sh +++ b/tasks/local-test.sh @@ -65,6 +65,9 @@ case ${test_suite} in "installs") test_command="./tasks/e2e-installs.sh" ;; + "behavior") + test_command="./tasks/e2e-behavior.sh" + ;; *) ;; esac diff --git a/test/fixtures/node_path/.disable-pnp b/test/fixtures/node_path/.disable-pnp new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/fixtures/node_path/.env b/test/fixtures/node_path/.env new file mode 100644 index 00000000000..f5fe60280fd --- /dev/null +++ b/test/fixtures/node_path/.env @@ -0,0 +1 @@ +NODE_PATH=src diff --git a/test/fixtures/node_path/index.test.js b/test/fixtures/node_path/index.test.js new file mode 100644 index 00000000000..eeba70a7420 --- /dev/null +++ b/test/fixtures/node_path/index.test.js @@ -0,0 +1,14 @@ +const testSetup = require('../__shared__/test-setup'); + +test('builds in development', async () => { + const { fulfilled } = await testSetup.scripts.start({ smoke: true }); + expect(fulfilled).toBe(true); +}); +test('builds in production', async () => { + const { fulfilled } = await testSetup.scripts.build(); + expect(fulfilled).toBe(true); +}); +test('passes tests', async () => { + const { fulfilled } = await testSetup.scripts.test(); + expect(fulfilled).toBe(true); +}); diff --git a/test/fixtures/node_path/package.json b/test/fixtures/node_path/package.json new file mode 100644 index 00000000000..fb6d17fe77d --- /dev/null +++ b/test/fixtures/node_path/package.json @@ -0,0 +1,7 @@ +{ + "dependencies": { + "prop-types": "^15.7.2", + "react": "latest", + "react-dom": "latest" + } +} diff --git a/test/fixtures/node_path/src/App.js b/test/fixtures/node_path/src/App.js new file mode 100644 index 00000000000..ba7136fc0aa --- /dev/null +++ b/test/fixtures/node_path/src/App.js @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React, { Component } from 'react'; + +import PropTypes from 'prop-types'; +import load from 'absoluteLoad'; + +export default class extends Component { + static propTypes = { + onReady: PropTypes.func.isRequired, + }; + + constructor(props) { + super(props); + this.state = { users: [] }; + } + + async componentDidMount() { + const users = load(); + this.setState({ users }); + } + + componentDidUpdate() { + this.props.onReady(); + } + + render() { + return ( +
+ {this.state.users.map(user => ( +
{user.name}
+ ))} +
+ ); + } +} diff --git a/test/fixtures/node_path/src/App.test.js b/test/fixtures/node_path/src/App.test.js new file mode 100644 index 00000000000..bacc39efcfe --- /dev/null +++ b/test/fixtures/node_path/src/App.test.js @@ -0,0 +1,17 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from 'react'; +import ReactDOM from 'react-dom'; +import App from './App'; + +test('loads modules absolutely with NODE_PATH', () => { + const div = document.createElement('div'); + return new Promise(resolve => { + ReactDOM.render(, div); + }); +}); diff --git a/test/fixtures/node_path/src/absoluteLoad.js b/test/fixtures/node_path/src/absoluteLoad.js new file mode 100644 index 00000000000..5c4f7842e28 --- /dev/null +++ b/test/fixtures/node_path/src/absoluteLoad.js @@ -0,0 +1,13 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +export default () => [ + { id: 1, name: '1' }, + { id: 2, name: '2' }, + { id: 3, name: '3' }, + { id: 4, name: '4' }, +]; diff --git a/test/fixtures/node_path/src/index.js b/test/fixtures/node_path/src/index.js new file mode 100644 index 00000000000..b597a44232c --- /dev/null +++ b/test/fixtures/node_path/src/index.js @@ -0,0 +1,5 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import App from './App'; + +ReactDOM.render(, document.getElementById('root')); diff --git a/test/fixtures/typescript/src/App.test.ts b/test/fixtures/typescript/src/App.test.ts index f02c462b553..636c014031b 100644 --- a/test/fixtures/typescript/src/App.test.ts +++ b/test/fixtures/typescript/src/App.test.ts @@ -13,3 +13,13 @@ it('supports decorators', () => { const app = new App(); expect(app.decorated).toBe(42); }); + +it('supports loading modules with baseUrl', () => { + const app = new App(); + expect(app.users).toEqual([ + { id: 1, name: '1' }, + { id: 2, name: '2' }, + { id: 3, name: '3' }, + { id: 4, name: '4' }, + ]); +}); diff --git a/test/fixtures/typescript/src/App.ts b/test/fixtures/typescript/src/App.ts index d803c92d199..665f8b49f1f 100644 --- a/test/fixtures/typescript/src/App.ts +++ b/test/fixtures/typescript/src/App.ts @@ -1,3 +1,5 @@ +import absoluteLoad from 'absoluteLoad'; + interface MyType { foo: number; bar: boolean; @@ -12,6 +14,7 @@ class App { n = App.foo.baz!.n; @propertyDecorator decorated = 5; + users = absoluteLoad(); } function annotation(target: any) { diff --git a/test/fixtures/typescript/src/absoluteLoad.ts b/test/fixtures/typescript/src/absoluteLoad.ts new file mode 100644 index 00000000000..5c4f7842e28 --- /dev/null +++ b/test/fixtures/typescript/src/absoluteLoad.ts @@ -0,0 +1,13 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +export default () => [ + { id: 1, name: '1' }, + { id: 2, name: '2' }, + { id: 3, name: '3' }, + { id: 4, name: '4' }, +]; diff --git a/test/fixtures/typescript/tsconfig.json b/test/fixtures/typescript/tsconfig.json index 504cd646e14..7bda36e19bf 100644 --- a/test/fixtures/typescript/tsconfig.json +++ b/test/fixtures/typescript/tsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { + "baseUrl": "src", "experimentalDecorators": true } } From 2add1288358f5d8ed6c162af32530255087153ce Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Tue, 16 Apr 2019 15:13:42 -0600 Subject: [PATCH 0649/1249] Prepare 3.0.0 alpha release --- packages/create-react-app/yarn.lock.cached | 2346 +++++++++++--------- 1 file changed, 1261 insertions(+), 1085 deletions(-) diff --git a/packages/create-react-app/yarn.lock.cached b/packages/create-react-app/yarn.lock.cached index 012d367410d..3dc831e4c27 100644 --- a/packages/create-react-app/yarn.lock.cached +++ b/packages/create-react-app/yarn.lock.cached @@ -29,18 +29,18 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@7.3.4", "@babel/core@^7.1.0", "@babel/core@^7.1.6": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.3.4.tgz#921a5a13746c21e32445bf0798680e9d11a6530b" - integrity sha512-jRsuseXBo9pN197KnDwhhaaBzyZr2oIcLHHTt2oDdQrej5Qp57dCCJafWx5ivU8/alEYDpssYqv1MUqcxwQlrA== +"@babel/core@7.4.3", "@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.3.tgz#198d6d3af4567be3989550d97e068de94503074f" + integrity sha512-oDpASqKFlbspQfzAE7yaeTmdljSH2ADIvBlb0RwbStltTuWa0+7CCI1fYVINNv9saHPa1W7oaKeuNuKj+RQCvA== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.3.4" - "@babel/helpers" "^7.2.0" - "@babel/parser" "^7.3.4" - "@babel/template" "^7.2.2" - "@babel/traverse" "^7.3.4" - "@babel/types" "^7.3.4" + "@babel/generator" "^7.4.0" + "@babel/helpers" "^7.4.3" + "@babel/parser" "^7.4.3" + "@babel/template" "^7.4.0" + "@babel/traverse" "^7.4.3" + "@babel/types" "^7.4.0" convert-source-map "^1.1.0" debug "^4.1.0" json5 "^2.1.0" @@ -49,12 +49,12 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.0.0", "@babel/generator@^7.2.2", "@babel/generator@^7.3.4": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.3.4.tgz#9aa48c1989257877a9d971296e5b73bfe72e446e" - integrity sha512-8EXhHRFqlVVWXPezBW5keTiQi/rJMQTg/Y9uVCEZ0CAF3PKtCCaVRnp64Ii1ujhkoDhhF1fVsImoN4yJ2uz4Wg== +"@babel/generator@^7.0.0", "@babel/generator@^7.2.2", "@babel/generator@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.0.tgz#c230e79589ae7a729fd4631b9ded4dc220418196" + integrity sha512-/v5I+a1jhGSKLgZDcmAUZ4K/VePi43eRkUs3yePW1HB1iANOD5tqJXwGSG4BZhSksP8J9ejSlwGeTiiOFZOrXQ== dependencies: - "@babel/types" "^7.3.4" + "@babel/types" "^7.4.0" jsesc "^2.5.1" lodash "^4.17.11" source-map "^0.5.0" @@ -83,35 +83,35 @@ "@babel/types" "^7.3.0" esutils "^2.0.0" -"@babel/helper-call-delegate@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz#6a957f105f37755e8645343d3038a22e1449cc4a" - integrity sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ== +"@babel/helper-call-delegate@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.0.tgz#f308eabe0d44f451217853aedf4dea5f6fe3294f" + integrity sha512-SdqDfbVdNQCBp3WhK2mNdDvHd3BD6qbmIc43CAyjnsfCmgHMeqgDcM3BzY2lchi7HBJGJ2CVdynLWbezaE4mmQ== dependencies: - "@babel/helper-hoist-variables" "^7.0.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/helper-hoist-variables" "^7.4.0" + "@babel/traverse" "^7.4.0" + "@babel/types" "^7.4.0" "@babel/helper-create-class-features-plugin@^7.3.0": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.3.4.tgz#092711a7a3ad8ea34de3e541644c2ce6af1f6f0c" - integrity sha512-uFpzw6L2omjibjxa8VGZsJUPL5wJH0zzGKpoz0ccBkzIa6C8kWNUbiBmQ0rgOKWlHJ6qzmfa6lTiGchiV8SC+g== + version "7.4.3" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.4.3.tgz#5bbd279c6c3ac6a60266b89bbfe7f8021080a1ef" + integrity sha512-UMl3TSpX11PuODYdWGrUeW6zFkdYhDn7wRLrOuNVM6f9L+S9CzmDXYyrp3MTHcwWjnzur1f/Op8A7iYZWya2Yg== dependencies: "@babel/helper-function-name" "^7.1.0" "@babel/helper-member-expression-to-functions" "^7.0.0" "@babel/helper-optimise-call-expression" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.3.4" - "@babel/helper-split-export-declaration" "^7.0.0" + "@babel/helper-replace-supers" "^7.4.0" + "@babel/helper-split-export-declaration" "^7.4.0" -"@babel/helper-define-map@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz#3b74caec329b3c80c116290887c0dd9ae468c20c" - integrity sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg== +"@babel/helper-define-map@^7.1.0", "@babel/helper-define-map@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.4.0.tgz#cbfd8c1b2f12708e262c26f600cd16ed6a3bc6c9" + integrity sha512-wAhQ9HdnLIywERVcSvX40CEJwKdAa1ID4neI9NXQPDOHwwA+57DqwLiPEVy2AIyWzAk0CQ8qx4awO0VUURwLtA== dependencies: "@babel/helper-function-name" "^7.1.0" - "@babel/types" "^7.0.0" - lodash "^4.17.10" + "@babel/types" "^7.4.0" + lodash "^4.17.11" "@babel/helper-explode-assignable-expression@^7.1.0": version "7.1.0" @@ -137,12 +137,12 @@ dependencies: "@babel/types" "^7.0.0" -"@babel/helper-hoist-variables@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz#46adc4c5e758645ae7a45deb92bab0918c23bb88" - integrity sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w== +"@babel/helper-hoist-variables@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.0.tgz#25b621399ae229869329730a62015bbeb0a6fbd6" + integrity sha512-/NErCuoe/et17IlAQFKWM24qtyYYie7sFIrW/tIQXpck6vAu2hhtYYsKLBWQV+BQZMbcIYPU/QMYuTufrY4aQw== dependencies: - "@babel/types" "^7.0.0" + "@babel/types" "^7.4.0" "@babel/helper-member-expression-to-functions@^7.0.0": version "7.0.0" @@ -158,17 +158,17 @@ dependencies: "@babel/types" "^7.0.0" -"@babel/helper-module-transforms@^7.1.0": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz#ab2f8e8d231409f8370c883d20c335190284b963" - integrity sha512-YRD7I6Wsv+IHuTPkAmAS4HhY0dkPobgLftHp0cRGZSdrRvmZY8rFvae/GVu3bD00qscuvK3WPHB3YdNpBXUqrA== +"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.4.3.tgz#b1e357a1c49e58a47211a6853abb8e2aaefeb064" + integrity sha512-H88T9IySZW25anu5uqyaC1DaQre7ofM+joZtAaO2F8NBdFfupH0SZ4gKjgSFVcvtx/aAirqA9L9Clio2heYbZA== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-simple-access" "^7.1.0" "@babel/helper-split-export-declaration" "^7.0.0" "@babel/template" "^7.2.2" "@babel/types" "^7.2.2" - lodash "^4.17.10" + lodash "^4.17.11" "@babel/helper-optimise-call-expression@^7.0.0": version "7.0.0" @@ -182,12 +182,12 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== -"@babel/helper-regex@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0.tgz#2c1718923b57f9bbe64705ffe5640ac64d9bdb27" - integrity sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg== +"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.4.3.tgz#9d6e5428bfd638ab53b37ae4ec8caf0477495147" + integrity sha512-hnoq5u96pLCfgjXuj8ZLX3QQ+6nAulS+zSgi6HulUwFbEruRAKwbGLU5OvXkE14L8XW6XsQEKsIDfgthKLRAyA== dependencies: - lodash "^4.17.10" + lodash "^4.17.11" "@babel/helper-remap-async-to-generator@^7.1.0": version "7.1.0" @@ -200,15 +200,15 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helper-replace-supers@^7.1.0", "@babel/helper-replace-supers@^7.3.4": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.3.4.tgz#a795208e9b911a6eeb08e5891faacf06e7013e13" - integrity sha512-pvObL9WVf2ADs+ePg0jrqlhHoxRXlOa+SHRHzAXIz2xkYuOHfGl+fKxPMaS4Fq+uje8JQPobnertBBvyrWnQ1A== +"@babel/helper-replace-supers@^7.1.0", "@babel/helper-replace-supers@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.4.0.tgz#4f56adb6aedcd449d2da9399c2dcf0545463b64c" + integrity sha512-PVwCVnWWAgnal+kJ+ZSAphzyl58XrFeSKSAJRiqg5QToTsjL+Xu1f9+RJ+d+Q0aPhPfBGaYfkox66k86thxNSg== dependencies: "@babel/helper-member-expression-to-functions" "^7.0.0" "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/traverse" "^7.3.4" - "@babel/types" "^7.3.4" + "@babel/traverse" "^7.4.0" + "@babel/types" "^7.4.0" "@babel/helper-simple-access@^7.1.0": version "7.1.0" @@ -218,12 +218,12 @@ "@babel/template" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helper-split-export-declaration@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813" - integrity sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag== +"@babel/helper-split-export-declaration@^7.0.0", "@babel/helper-split-export-declaration@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.0.tgz#571bfd52701f492920d63b7f735030e9a3e10b55" + integrity sha512-7Cuc6JZiYShaZnybDmfwhY4UYHzI6rlqhWjaIqbsJGsIqPimEYy5uh3akSRLMg65LSdSEnJ8a8/bWQN6u2oMGw== dependencies: - "@babel/types" "^7.0.0" + "@babel/types" "^7.4.0" "@babel/helper-wrap-function@^7.1.0": version "7.2.0" @@ -235,14 +235,14 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.2.0" -"@babel/helpers@^7.2.0": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.3.1.tgz#949eec9ea4b45d3210feb7dc1c22db664c9e44b9" - integrity sha512-Q82R3jKsVpUV99mgX50gOPCWwco9Ec5Iln/8Vyu4osNIOQgSrd9RFrQeUvmvddFNoLwMyOUWU+5ckioEKpDoGA== +"@babel/helpers@^7.2.0", "@babel/helpers@^7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.4.3.tgz#7b1d354363494b31cb9a2417ae86af32b7853a3b" + integrity sha512-BMh7X0oZqb36CfyhvtbSmcWc3GXocfxv3yNsAEuM0l+fAqSO22rQrUpijr3oE/10jCTrB6/0b9kzmG4VetCj8Q== dependencies: - "@babel/template" "^7.1.2" - "@babel/traverse" "^7.1.5" - "@babel/types" "^7.3.0" + "@babel/template" "^7.4.0" + "@babel/traverse" "^7.4.3" + "@babel/types" "^7.4.0" "@babel/highlight@^7.0.0": version "7.0.0" @@ -253,10 +253,10 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.2.2", "@babel/parser@^7.3.4": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.3.4.tgz#a43357e4bbf4b92a437fb9e465c192848287f27c" - integrity sha512-tXZCqWtlOOP4wgCp6RjRvLmfuhnqTLy9VHwRochJBCP2nDm27JnnuFEnXFASVyQNHk36jD1tAammsCEEqgscIQ== +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.2.2", "@babel/parser@^7.4.0", "@babel/parser@^7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.3.tgz#eb3ac80f64aa101c907d4ce5406360fe75b7895b" + integrity sha512-gxpEUhTS1sGA63EGQGuA+WESPR/6tz6ng7tSHFCmaTJK/cGK8y37cBTspX+U2xCAue2IQVvF6Z0oigmjwD8YGQ== "@babel/plugin-proposal-async-generator-functions@^7.2.0": version "7.2.0" @@ -300,10 +300,10 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" -"@babel/plugin-proposal-object-rest-spread@^7.3.1", "@babel/plugin-proposal-object-rest-spread@^7.3.4": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.4.tgz#47f73cf7f2a721aad5c0261205405c642e424654" - integrity sha512-j7VQmbbkA+qrzNqbKHrBsW3ddFnOeva6wzSe/zB7T+xaxGc+RCpwo44wCmRixAIGRoIpmVgvzFzNJqQcO3/9RA== +"@babel/plugin-proposal-object-rest-spread@^7.3.1", "@babel/plugin-proposal-object-rest-spread@^7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.3.tgz#be27cd416eceeba84141305b93c282f5de23bbb4" + integrity sha512-xC//6DNSSHVjq8O2ge0dyYlhshsH4T7XdCVoxbi5HzLYWfsC5ooFlJjrXk8RcAT+hjHAK9UjBXdylzSoDK3t4g== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" @@ -316,14 +316,14 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" -"@babel/plugin-proposal-unicode-property-regex@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz#abe7281fe46c95ddc143a65e5358647792039520" - integrity sha512-LvRVYb7kikuOtIoUeWTkOxQEV1kYvL5B6U3iWEGCzPNRus1MzJweFqORTj+0jkxozkTSYNJozPOddxmqdqsRpw== +"@babel/plugin-proposal-unicode-property-regex@^7.2.0", "@babel/plugin-proposal-unicode-property-regex@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.0.tgz#202d91ee977d760ef83f4f416b280d568be84623" + integrity sha512-h/KjEZ3nK9wv1P1FSNb9G079jXrNYR0Ko+7XkOx85+gM24iZbPn0rh4vCftk+5QKY7y1uByFataBTmX7irEF1w== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-regex" "^7.0.0" - regexpu-core "^4.2.0" + regexpu-core "^4.5.4" "@babel/plugin-syntax-async-generators@^7.2.0": version "7.2.0" @@ -395,10 +395,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-async-to-generator@^7.2.0", "@babel/plugin-transform-async-to-generator@^7.3.4": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.3.4.tgz#4e45408d3c3da231c0e7b823f407a53a7eb3048c" - integrity sha512-Y7nCzv2fw/jEZ9f678MuKdMo99MFDJMT/PvD9LisrR5JDFcJH6vYeH6RnjVt3p5tceyGRvTtEN0VOlU+rgHZjA== +"@babel/plugin-transform-async-to-generator@^7.2.0", "@babel/plugin-transform-async-to-generator@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.0.tgz#234fe3e458dce95865c0d152d256119b237834b0" + integrity sha512-EeaFdCeUULM+GPFEsf7pFcNSxM7hYjoj5fiYbyuiXobW4JhFnjAv9OWzNwHyHcKoPNpAfeRDuW6VyaXEDUBa7g== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -411,10 +411,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-block-scoping@^7.2.0", "@babel/plugin-transform-block-scoping@^7.3.4": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.3.4.tgz#5c22c339de234076eee96c8783b2fed61202c5c4" - integrity sha512-blRr2O8IOZLAOJklXLV4WhcEzpYafYQKSGT3+R26lWG41u/FODJuBggehtOwilVAcFu393v3OFj+HmaE6tVjhA== +"@babel/plugin-transform-block-scoping@^7.2.0", "@babel/plugin-transform-block-scoping@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.0.tgz#164df3bb41e3deb954c4ca32ffa9fcaa56d30bcb" + integrity sha512-AWyt3k+fBXQqt2qb9r97tn3iBwFpiv9xdAiG+Gr2HpAZpuayvbL55yWrsV3MyHvXk/4vmSiedhDRl1YI2Iy5nQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" lodash "^4.17.11" @@ -433,18 +433,18 @@ "@babel/helper-split-export-declaration" "^7.0.0" globals "^11.1.0" -"@babel/plugin-transform-classes@^7.2.0", "@babel/plugin-transform-classes@^7.3.4": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.3.4.tgz#dc173cb999c6c5297e0b5f2277fdaaec3739d0cc" - integrity sha512-J9fAvCFBkXEvBimgYxCjvaVDzL6thk0j0dBvCeZmIUDBwyt+nv6HfbImsSrWsYXfDNDivyANgJlFXDUWRTZBuA== +"@babel/plugin-transform-classes@^7.2.0", "@babel/plugin-transform-classes@^7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.3.tgz#adc7a1137ab4287a555d429cc56ecde8f40c062c" + integrity sha512-PUaIKyFUDtG6jF5DUJOfkBdwAS/kFFV3XFk7Nn0a6vR7ZT8jYw5cGtIlat77wcnd0C6ViGqo/wyNf4ZHytF/nQ== dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-define-map" "^7.1.0" + "@babel/helper-define-map" "^7.4.0" "@babel/helper-function-name" "^7.1.0" "@babel/helper-optimise-call-expression" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.3.4" - "@babel/helper-split-export-declaration" "^7.0.0" + "@babel/helper-replace-supers" "^7.4.0" + "@babel/helper-split-export-declaration" "^7.4.0" globals "^11.1.0" "@babel/plugin-transform-computed-properties@^7.2.0": @@ -454,21 +454,28 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-destructuring@7.3.2", "@babel/plugin-transform-destructuring@^7.2.0": +"@babel/plugin-transform-destructuring@7.3.2": version "7.3.2" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.3.2.tgz#f2f5520be055ba1c38c41c0e094d8a461dd78f2d" integrity sha512-Lrj/u53Ufqxl/sGxyjsJ2XNtNuEjDyjpqdhMNh5aZ+XFOdThL46KBj27Uem4ggoezSYBxKWAil6Hu8HtwqesYw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-dotall-regex@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz#f0aabb93d120a8ac61e925ea0ba440812dbe0e49" - integrity sha512-sKxnyHfizweTgKZf7XsXu/CNupKhzijptfTM+bozonIuyVrLWVUvYjE2bhuSBML8VQeMxq4Mm63Q9qvcvUcciQ== +"@babel/plugin-transform-destructuring@^7.2.0", "@babel/plugin-transform-destructuring@^7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.4.3.tgz#1a95f5ca2bf2f91ef0648d5de38a8d472da4350f" + integrity sha512-rVTLLZpydDFDyN4qnXdzwoVpk1oaXHIvPEOkOLyr88o7oHxVc/LyrnDx+amuBWGOwUb7D1s/uLsKBNTx08htZg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - regexpu-core "^4.1.3" + +"@babel/plugin-transform-dotall-regex@^7.2.0", "@babel/plugin-transform-dotall-regex@^7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.3.tgz#fceff1c16d00c53d32d980448606f812cd6d02bf" + integrity sha512-9Arc2I0AGynzXRR/oPdSALv3k0rM38IMFyto7kOCwb5F9sLUt2Ykdo3V9yUPR+Bgr4kb6bVEyLkPEiBhzcTeoA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.3" + regexpu-core "^4.5.4" "@babel/plugin-transform-duplicate-keys@^7.2.0": version "7.2.0" @@ -493,17 +500,17 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-flow" "^7.2.0" -"@babel/plugin-transform-for-of@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz#ab7468befa80f764bb03d3cb5eef8cc998e1cad9" - integrity sha512-Kz7Mt0SsV2tQk6jG5bBv5phVbkd0gd27SgYD4hH1aLMJRchM0dzHaXvrWhVZ+WxAlDoAKZ7Uy3jVTW2mKXQ1WQ== +"@babel/plugin-transform-for-of@^7.2.0", "@babel/plugin-transform-for-of@^7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.3.tgz#c36ff40d893f2b8352202a2558824f70cd75e9fe" + integrity sha512-UselcZPwVWNSURnqcfpnxtMehrb8wjXYOimlYQPBnup/Zld426YzIhNEvuRsEWVHfESIECGrxoI6L5QqzuLH5Q== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-function-name@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz#f7930362829ff99a3174c39f0afcc024ef59731a" - integrity sha512-kWgksow9lHdvBC2Z4mxTsvc7YdY7w/V6B2vy9cTIPtLEE9NhwoWivaxdNM/S37elu5bqlLP/qOY906LukO9lkQ== +"@babel/plugin-transform-function-name@^7.2.0", "@babel/plugin-transform-function-name@^7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.3.tgz#130c27ec7fb4f0cba30e958989449e5ec8d22bbd" + integrity sha512-uT5J/3qI/8vACBR9I1GlAuU/JqBtWdfCrynuOkrWG6nCDieZd5przB1vfP59FRHBZQ9DC2IUfqr/xKqzOD5x0A== dependencies: "@babel/helper-function-name" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -515,6 +522,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-transform-member-expression-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz#fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d" + integrity sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-modules-amd@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz#82a9bce45b95441f617a24011dc89d12da7f4ee6" @@ -523,21 +537,21 @@ "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-modules-commonjs@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz#c4f1933f5991d5145e9cfad1dfd848ea1727f404" - integrity sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ== +"@babel/plugin-transform-modules-commonjs@^7.2.0", "@babel/plugin-transform-modules-commonjs@^7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.4.3.tgz#3917f260463ac08f8896aa5bd54403f6e1fed165" + integrity sha512-sMP4JqOTbMJMimqsSZwYWsMjppD+KRyDIUVW91pd7td0dZKAvPmhCaxhOzkzLParKwgQc7bdL9UNv+rpJB0HfA== dependencies: - "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-module-transforms" "^7.4.3" "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-simple-access" "^7.1.0" -"@babel/plugin-transform-modules-systemjs@^7.2.0", "@babel/plugin-transform-modules-systemjs@^7.3.4": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.3.4.tgz#813b34cd9acb6ba70a84939f3680be0eb2e58861" - integrity sha512-VZ4+jlGOF36S7TjKs8g4ojp4MEI+ebCQZdswWb/T9I4X84j8OtFAyjXjt/M16iIm5RIZn0UMQgg/VgIwo/87vw== +"@babel/plugin-transform-modules-systemjs@^7.2.0", "@babel/plugin-transform-modules-systemjs@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.4.0.tgz#c2495e55528135797bc816f5d50f851698c586a1" + integrity sha512-gjPdHmqiNhVoBqus5qK60mWPp1CmYWp/tkh11mvb0rrys01HycEGD7NvvSoKXlWEfSM9TcL36CpsK8ElsADptQ== dependencies: - "@babel/helper-hoist-variables" "^7.0.0" + "@babel/helper-hoist-variables" "^7.4.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-modules-umd@^7.2.0": @@ -548,17 +562,17 @@ "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-named-capturing-groups-regex@^7.3.0": - version "7.3.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.3.0.tgz#140b52985b2d6ef0cb092ef3b29502b990f9cd50" - integrity sha512-NxIoNVhk9ZxS+9lSoAQ/LM0V2UEvARLttEHUrRDGKFaAxOYQcrkN/nLRE+BbbicCAvZPl7wMP0X60HsHE5DtQw== +"@babel/plugin-transform-named-capturing-groups-regex@^7.3.0", "@babel/plugin-transform-named-capturing-groups-regex@^7.4.2": + version "7.4.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.2.tgz#800391136d6cbcc80728dbdba3c1c6e46f86c12e" + integrity sha512-NsAuliSwkL3WO2dzWTOL1oZJHm0TM8ZY8ZSxk2ANyKkt5SQlToGA4pzctmq1BEjoacurdwZ3xp2dCQWJkME0gQ== dependencies: regexp-tree "^0.1.0" -"@babel/plugin-transform-new-target@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz#ae8fbd89517fa7892d20e6564e641e8770c3aa4a" - integrity sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw== +"@babel/plugin-transform-new-target@^7.0.0", "@babel/plugin-transform-new-target@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.0.tgz#67658a1d944edb53c8d4fa3004473a0dd7838150" + integrity sha512-6ZKNgMQmQmrEX/ncuCwnnw1yVGoaOW5KpxNhoWI7pCQdA0uZ0HqHGqenCUIENAnxRjy2WwNQ30gfGdIgqJXXqw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -570,15 +584,22 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-replace-supers" "^7.1.0" -"@babel/plugin-transform-parameters@^7.2.0": - version "7.3.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.3.3.tgz#3a873e07114e1a5bee17d04815662c8317f10e30" - integrity sha512-IrIP25VvXWu/VlBWTpsjGptpomtIkYrN/3aDp4UKm7xK6UxZY88kcJ1UwETbzHAlwN21MnNfwlar0u8y3KpiXw== +"@babel/plugin-transform-parameters@^7.2.0", "@babel/plugin-transform-parameters@^7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.3.tgz#e5ff62929fdf4cf93e58badb5e2430303003800d" + integrity sha512-ULJYC2Vnw96/zdotCZkMGr2QVfKpIT/4/K+xWWY0MbOJyMZuk660BGkr3bEKWQrrciwz6xpmft39nA4BF7hJuA== dependencies: - "@babel/helper-call-delegate" "^7.1.0" + "@babel/helper-call-delegate" "^7.4.0" "@babel/helper-get-function-arity" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-transform-property-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz#03e33f653f5b25c4eb572c98b9485055b389e905" + integrity sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-react-constant-elements@7.2.0", "@babel/plugin-transform-react-constant-elements@^7.0.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.2.0.tgz#ed602dc2d8bff2f0cb1a5ce29263dbdec40779f7" @@ -619,13 +640,20 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-jsx" "^7.2.0" -"@babel/plugin-transform-regenerator@^7.0.0", "@babel/plugin-transform-regenerator@^7.3.4": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.3.4.tgz#1601655c362f5b38eead6a52631f5106b29fa46a" - integrity sha512-hvJg8EReQvXT6G9H2MvNPXkv9zK36Vxa1+csAVTpE1J3j0zlHplw76uudEbJxgvqZzAq9Yh45FLD4pk5mKRFQA== +"@babel/plugin-transform-regenerator@^7.0.0", "@babel/plugin-transform-regenerator@^7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.3.tgz#2a697af96887e2bbf5d303ab0221d139de5e739c" + integrity sha512-kEzotPuOpv6/iSlHroCDydPkKYw7tiJGKlmYp6iJn4a6C/+b2FdttlJsLKYxolYHgotTJ5G5UY5h0qey5ka3+A== dependencies: regenerator-transform "^0.13.4" +"@babel/plugin-transform-reserved-words@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz#4792af87c998a49367597d07fedf02636d2e1634" + integrity sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-runtime@7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.2.0.tgz#566bc43f7d0aedc880eaddbd29168d0f248966ea" @@ -674,21 +702,21 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-typescript@^7.1.0": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.3.2.tgz#59a7227163e55738842f043d9e5bd7c040447d96" - integrity sha512-Pvco0x0ZSCnexJnshMfaibQ5hnK8aUHSvjCQhC1JR8eeg+iBwt0AtCO7gWxJ358zZevuf9wPSO5rv+WJcbHPXQ== + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.4.0.tgz#0389ec53a34e80f99f708c4ca311181449a68eb1" + integrity sha512-U7/+zKnRZg04ggM/Bm+xmu2B/PrwyDQTT/V89FXWYWNMxBDwSx56u6jtk9SEbfLFbZaEI72L+5LPvQjeZgFCrQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-typescript" "^7.2.0" -"@babel/plugin-transform-unicode-regex@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz#4eb8db16f972f8abb5062c161b8b115546ade08b" - integrity sha512-m48Y0lMhrbXEJnVUaYly29jRXbQ3ksxPrS1Tg8t+MHqzXhtBYAvI51euOBaoAlZLPHsieY9XPVMf80a5x0cPcA== +"@babel/plugin-transform-unicode-regex@^7.2.0", "@babel/plugin-transform-unicode-regex@^7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.3.tgz#3868703fc0e8f443dda65654b298df576f7b863b" + integrity sha512-lnSNgkVjL8EMtnE8eSS7t2ku8qvKH3eqNf/IwIfnSPUqzgqYmRwzdsQWv4mNQAN9Nuo6Gz1Y0a4CSmdpu1Pp6g== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - regexpu-core "^4.1.3" + "@babel/helper-regex" "^7.4.3" + regexpu-core "^4.5.4" "@babel/preset-env@7.3.1": version "7.3.1" @@ -740,53 +768,58 @@ semver "^5.3.0" "@babel/preset-env@^7.1.6": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.3.4.tgz#887cf38b6d23c82f19b5135298bdb160062e33e1" - integrity sha512-2mwqfYMK8weA0g0uBKOt4FE3iEodiHy9/CW0b+nWXcbL+pGzLx8ESYc+j9IIxr6LTDHWKgPm71i9smo02bw+gA== + version "7.4.3" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.4.3.tgz#e71e16e123dc0fbf65a52cbcbcefd072fbd02880" + integrity sha512-FYbZdV12yHdJU5Z70cEg0f6lvtpZ8jFSDakTm7WXeJbLXh4R0ztGEu/SW7G1nJ2ZvKwDhz8YrbA84eYyprmGqw== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-async-generator-functions" "^7.2.0" "@babel/plugin-proposal-json-strings" "^7.2.0" - "@babel/plugin-proposal-object-rest-spread" "^7.3.4" + "@babel/plugin-proposal-object-rest-spread" "^7.4.3" "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.2.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.0" "@babel/plugin-syntax-async-generators" "^7.2.0" "@babel/plugin-syntax-json-strings" "^7.2.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" "@babel/plugin-transform-arrow-functions" "^7.2.0" - "@babel/plugin-transform-async-to-generator" "^7.3.4" + "@babel/plugin-transform-async-to-generator" "^7.4.0" "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.3.4" - "@babel/plugin-transform-classes" "^7.3.4" + "@babel/plugin-transform-block-scoping" "^7.4.0" + "@babel/plugin-transform-classes" "^7.4.3" "@babel/plugin-transform-computed-properties" "^7.2.0" - "@babel/plugin-transform-destructuring" "^7.2.0" - "@babel/plugin-transform-dotall-regex" "^7.2.0" + "@babel/plugin-transform-destructuring" "^7.4.3" + "@babel/plugin-transform-dotall-regex" "^7.4.3" "@babel/plugin-transform-duplicate-keys" "^7.2.0" "@babel/plugin-transform-exponentiation-operator" "^7.2.0" - "@babel/plugin-transform-for-of" "^7.2.0" - "@babel/plugin-transform-function-name" "^7.2.0" + "@babel/plugin-transform-for-of" "^7.4.3" + "@babel/plugin-transform-function-name" "^7.4.3" "@babel/plugin-transform-literals" "^7.2.0" + "@babel/plugin-transform-member-expression-literals" "^7.2.0" "@babel/plugin-transform-modules-amd" "^7.2.0" - "@babel/plugin-transform-modules-commonjs" "^7.2.0" - "@babel/plugin-transform-modules-systemjs" "^7.3.4" + "@babel/plugin-transform-modules-commonjs" "^7.4.3" + "@babel/plugin-transform-modules-systemjs" "^7.4.0" "@babel/plugin-transform-modules-umd" "^7.2.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.3.0" - "@babel/plugin-transform-new-target" "^7.0.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.2" + "@babel/plugin-transform-new-target" "^7.4.0" "@babel/plugin-transform-object-super" "^7.2.0" - "@babel/plugin-transform-parameters" "^7.2.0" - "@babel/plugin-transform-regenerator" "^7.3.4" + "@babel/plugin-transform-parameters" "^7.4.3" + "@babel/plugin-transform-property-literals" "^7.2.0" + "@babel/plugin-transform-regenerator" "^7.4.3" + "@babel/plugin-transform-reserved-words" "^7.2.0" "@babel/plugin-transform-shorthand-properties" "^7.2.0" "@babel/plugin-transform-spread" "^7.2.0" "@babel/plugin-transform-sticky-regex" "^7.2.0" "@babel/plugin-transform-template-literals" "^7.2.0" "@babel/plugin-transform-typeof-symbol" "^7.2.0" - "@babel/plugin-transform-unicode-regex" "^7.2.0" - browserslist "^4.3.4" + "@babel/plugin-transform-unicode-regex" "^7.4.3" + "@babel/types" "^7.4.0" + browserslist "^4.5.2" + core-js-compat "^3.0.0" invariant "^2.2.2" js-levenshtein "^1.1.3" - semver "^5.3.0" + semver "^5.5.0" "@babel/preset-react@7.0.0", "@babel/preset-react@^7.0.0": version "7.0.0" @@ -814,34 +847,41 @@ dependencies: regenerator-runtime "^0.12.0" -"@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== +"@babel/runtime@^7.0.0", "@babel/runtime@^7.3.4": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.4.3.tgz#79888e452034223ad9609187a0ad1fe0d2ad4bdc" + integrity sha512-9lsJwJLxDh/T3Q3SZszfWOTkk3pHbkmH+3KY+zwIDmsNlxsumuhS2TH3NIpktU4kNvfzy+k3eLT7aTJSPTo0OA== + dependencies: + regenerator-runtime "^0.13.2" + +"@babel/template@^7.0.0", "@babel/template@^7.1.0", "@babel/template@^7.2.2", "@babel/template@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.0.tgz#12474e9c077bae585c5d835a95c0b0b790c25c8b" + integrity sha512-SOWwxxClTTh5NdbbYZ0BmaBVzxzTh2tO/TeLTbF6MO6EzVhHTnff8CdBXx3mEtazFBoysmEM6GU/wF+SuSx4Fw== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.2.2" - "@babel/types" "^7.2.2" + "@babel/parser" "^7.4.0" + "@babel/types" "^7.4.0" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.1.5", "@babel/traverse@^7.2.2", "@babel/traverse@^7.3.4": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.3.4.tgz#1330aab72234f8dea091b08c4f8b9d05c7119e06" - integrity sha512-TvTHKp6471OYEcE/91uWmhR6PrrYywQntCHSaZ8CM8Vmp+pjAusal4nGB2WCCQd0rvI7nOMKn9GnbcvTUz3/ZQ== +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.2.2", "@babel/traverse@^7.4.0", "@babel/traverse@^7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.3.tgz#1a01f078fc575d589ff30c0f71bf3c3d9ccbad84" + integrity sha512-HmA01qrtaCwwJWpSKpA948cBvU5BrmviAief/b3AVw936DtcdsTexlbyzNuDnthwhOQ37xshn7hvQaEQk7ISYQ== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.3.4" + "@babel/generator" "^7.4.0" "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.0.0" - "@babel/parser" "^7.3.4" - "@babel/types" "^7.3.4" + "@babel/helper-split-export-declaration" "^7.4.0" + "@babel/parser" "^7.4.3" + "@babel/types" "^7.4.0" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.11" -"@babel/types@^7.0.0", "@babel/types@^7.1.6", "@babel/types@^7.2.0", "@babel/types@^7.2.2", "@babel/types@^7.3.0", "@babel/types@^7.3.4": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.3.4.tgz#bf482eaeaffb367a28abbf9357a94963235d90ed" - integrity sha512-WEkp8MsLftM7O/ty580wAmZzN1nDmCACc5+jFzUt+GUFNNIi3LdRlueYz0YIlmJhlZx1QYDMZL5vdWCL0fNjFQ== +"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.2.2", "@babel/types@^7.3.0", "@babel/types@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.0.tgz#670724f77d24cce6cc7d8cf64599d511d164894c" + integrity sha512-aPvkXyU2SPOnztlgo8n9cEiXW755mgyvueUPcpStqdzoSPm0fjO0vQBjLkt3JKJW7ufikfcnMTTPsN1xaTsBPA== dependencies: esutils "^2.0.2" lodash "^4.17.11" @@ -860,42 +900,46 @@ resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== -"@jest/console@^24.3.0": - version "24.3.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.3.0.tgz#7bd920d250988ba0bf1352c4493a48e1cb97671e" - integrity sha512-NaCty/OOei6rSDcbPdMiCbYCI0KGFGPgGO6B09lwWt5QTxnkuhKYET9El5u5z1GAcSxkQmSMtM63e24YabCWqA== +"@csstools/normalize.css@^9.0.1": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-9.0.1.tgz#c27b391d8457d1e893f1eddeaf5e5412d12ffbb5" + integrity sha512-6It2EVfGskxZCQhuykrfnALg7oVeiI6KclWSmGDqB0AiInVrTGB9Jp9i4/Ad21u9Jde/voVQz6eFX/eSg/UsPA== + +"@jest/console@^24.7.1": + version "24.7.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.7.1.tgz#32a9e42535a97aedfe037e725bd67e954b459545" + integrity sha512-iNhtIy2M8bXlAOULWVTUxmnelTLFneTNEkHCgPmgd+zNwy9zVddJ6oS5rZ9iwoscNdT5mMwUd0C51v/fSlzItg== dependencies: "@jest/source-map" "^24.3.0" - "@types/node" "*" chalk "^2.0.1" slash "^2.0.0" -"@jest/core@^24.5.0": - version "24.5.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.5.0.tgz#2cefc6a69e9ebcae1da8f7c75f8a257152ba1ec0" - integrity sha512-RDZArRzAs51YS7dXG1pbXbWGxK53rvUu8mCDYsgqqqQ6uSOaTjcVyBl2Jce0exT2rSLk38ca7az7t2f3b0/oYQ== +"@jest/core@^24.7.1": + version "24.7.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.7.1.tgz#6707f50db238d0c5988860680e2e414df0032024" + integrity sha512-ivlZ8HX/FOASfHcb5DJpSPFps8ydfUYzLZfgFFqjkLijYysnIEOieg72YRhO4ZUB32xu40hsSMmaw+IGYeKONA== dependencies: - "@jest/console" "^24.3.0" - "@jest/reporters" "^24.5.0" - "@jest/test-result" "^24.5.0" - "@jest/transform" "^24.5.0" - "@jest/types" "^24.5.0" + "@jest/console" "^24.7.1" + "@jest/reporters" "^24.7.1" + "@jest/test-result" "^24.7.1" + "@jest/transform" "^24.7.1" + "@jest/types" "^24.7.0" ansi-escapes "^3.0.0" chalk "^2.0.1" exit "^0.1.2" graceful-fs "^4.1.15" - jest-changed-files "^24.5.0" - jest-config "^24.5.0" - jest-haste-map "^24.5.0" - jest-message-util "^24.5.0" + jest-changed-files "^24.7.0" + jest-config "^24.7.1" + jest-haste-map "^24.7.1" + jest-message-util "^24.7.1" jest-regex-util "^24.3.0" - jest-resolve-dependencies "^24.5.0" - jest-runner "^24.5.0" - jest-runtime "^24.5.0" - jest-snapshot "^24.5.0" - jest-util "^24.5.0" - jest-validate "^24.5.0" - jest-watcher "^24.5.0" + jest-resolve-dependencies "^24.7.1" + jest-runner "^24.7.1" + jest-runtime "^24.7.1" + jest-snapshot "^24.7.1" + jest-util "^24.7.1" + jest-validate "^24.7.0" + jest-watcher "^24.7.1" micromatch "^3.1.10" p-each-series "^1.0.0" pirates "^4.0.1" @@ -903,36 +947,34 @@ rimraf "^2.5.4" strip-ansi "^5.0.0" -"@jest/environment@^24.5.0": - version "24.5.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.5.0.tgz#a2557f7808767abea3f9e4cc43a172122a63aca8" - integrity sha512-tzUHR9SHjMXwM8QmfHb/EJNbF0fjbH4ieefJBvtwO8YErLTrecc1ROj0uo2VnIT6SlpEGZnvdCK6VgKYBo8LsA== - dependencies: - "@jest/fake-timers" "^24.5.0" - "@jest/transform" "^24.5.0" - "@jest/types" "^24.5.0" - "@types/node" "*" - jest-mock "^24.5.0" - -"@jest/fake-timers@^24.5.0": - version "24.5.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.5.0.tgz#4a29678b91fd0876144a58f8d46e6c62de0266f0" - integrity sha512-i59KVt3QBz9d+4Qr4QxsKgsIg+NjfuCjSOWj3RQhjF5JNy+eVJDhANQ4WzulzNCHd72srMAykwtRn5NYDGVraw== - dependencies: - "@jest/types" "^24.5.0" - "@types/node" "*" - jest-message-util "^24.5.0" - jest-mock "^24.5.0" - -"@jest/reporters@^24.5.0": - version "24.5.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.5.0.tgz#9363a210d0daa74696886d9cb294eb8b3ad9b4d9" - integrity sha512-vfpceiaKtGgnuC3ss5czWOihKOUSyjJA4M4udm6nH8xgqsuQYcyDCi4nMMcBKsHXWgz9/V5G7iisnZGfOh1w6Q== - dependencies: - "@jest/environment" "^24.5.0" - "@jest/test-result" "^24.5.0" - "@jest/transform" "^24.5.0" - "@jest/types" "^24.5.0" +"@jest/environment@^24.7.1": + version "24.7.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.7.1.tgz#9b9196bc737561f67ac07817d4c5ece772e33135" + integrity sha512-wmcTTYc4/KqA+U5h1zQd5FXXynfa7VGP2NfF+c6QeGJ7c+2nStgh65RQWNX62SC716dTtqheTRrZl0j+54oGHw== + dependencies: + "@jest/fake-timers" "^24.7.1" + "@jest/transform" "^24.7.1" + "@jest/types" "^24.7.0" + jest-mock "^24.7.0" + +"@jest/fake-timers@^24.7.1": + version "24.7.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.7.1.tgz#56e5d09bdec09ee81050eaff2794b26c71d19db2" + integrity sha512-4vSQJDKfR2jScOe12L9282uiwuwQv9Lk7mgrCSZHA9evB9efB/qx8i0KJxsAKtp8fgJYBJdYY7ZU6u3F4/pyjA== + dependencies: + "@jest/types" "^24.7.0" + jest-message-util "^24.7.1" + jest-mock "^24.7.0" + +"@jest/reporters@^24.7.1": + version "24.7.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.7.1.tgz#38ac0b096cd691bbbe3051ddc25988d42e37773a" + integrity sha512-bO+WYNwHLNhrjB9EbPL4kX/mCCG4ZhhfWmO3m4FSpbgr7N83MFejayz30kKjgqr7smLyeaRFCBQMbXpUgnhAJw== + dependencies: + "@jest/environment" "^24.7.1" + "@jest/test-result" "^24.7.1" + "@jest/transform" "^24.7.1" + "@jest/types" "^24.7.0" chalk "^2.0.1" exit "^0.1.2" glob "^7.1.2" @@ -940,11 +982,11 @@ istanbul-lib-coverage "^2.0.2" istanbul-lib-instrument "^3.0.1" istanbul-lib-source-maps "^3.0.1" - jest-haste-map "^24.5.0" - jest-resolve "^24.5.0" - jest-runtime "^24.5.0" - jest-util "^24.5.0" - jest-worker "^24.4.0" + jest-haste-map "^24.7.1" + jest-resolve "^24.7.1" + jest-runtime "^24.7.1" + jest-util "^24.7.1" + jest-worker "^24.6.0" node-notifier "^5.2.1" slash "^2.0.0" source-map "^0.6.0" @@ -959,42 +1001,52 @@ graceful-fs "^4.1.15" source-map "^0.6.0" -"@jest/test-result@^24.5.0": - version "24.5.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.5.0.tgz#ab66fb7741a04af3363443084e72ea84861a53f2" - integrity sha512-u66j2vBfa8Bli1+o3rCaVnVYa9O8CAFZeqiqLVhnarXtreSXG33YQ6vNYBogT7+nYiFNOohTU21BKiHlgmxD5A== +"@jest/test-result@^24.7.1": + version "24.7.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.7.1.tgz#19eacdb29a114300aed24db651e5d975f08b6bbe" + integrity sha512-3U7wITxstdEc2HMfBX7Yx3JZgiNBubwDqQMh+BXmZXHa3G13YWF3p6cK+5g0hGkN3iufg/vGPl3hLxQXD74Npg== + dependencies: + "@jest/console" "^24.7.1" + "@jest/types" "^24.7.0" + "@types/istanbul-lib-coverage" "^2.0.0" + +"@jest/test-sequencer@^24.7.1": + version "24.7.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.7.1.tgz#9c18e428e1ad945fa74f6233a9d35745ca0e63e0" + integrity sha512-84HQkCpVZI/G1zq53gHJvSmhUer4aMYp9tTaffW28Ih5OxfCg8hGr3nTSbL1OhVDRrFZwvF+/R9gY6JRkDUpUA== dependencies: - "@jest/console" "^24.3.0" - "@jest/types" "^24.5.0" - "@types/istanbul-lib-coverage" "^1.1.0" + "@jest/test-result" "^24.7.1" + jest-haste-map "^24.7.1" + jest-runner "^24.7.1" + jest-runtime "^24.7.1" -"@jest/transform@^24.5.0": - version "24.5.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.5.0.tgz#6709fc26db918e6af63a985f2cc3c464b4cf99d9" - integrity sha512-XSsDz1gdR/QMmB8UCKlweAReQsZrD/DK7FuDlNo/pE8EcKMrfi2kqLRk8h8Gy/PDzgqJj64jNEzOce9pR8oj1w== +"@jest/transform@^24.7.1": + version "24.7.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.7.1.tgz#872318f125bcfab2de11f53b465ab1aa780789c2" + integrity sha512-EsOUqP9ULuJ66IkZQhI5LufCHlTbi7hrcllRMUEV/tOgqBVQi93+9qEvkX0n8mYpVXQ8VjwmICeRgg58mrtIEw== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^24.5.0" + "@jest/types" "^24.7.0" babel-plugin-istanbul "^5.1.0" chalk "^2.0.1" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.1.15" - jest-haste-map "^24.5.0" + jest-haste-map "^24.7.1" jest-regex-util "^24.3.0" - jest-util "^24.5.0" + jest-util "^24.7.1" micromatch "^3.1.10" realpath-native "^1.1.0" slash "^2.0.0" source-map "^0.6.1" write-file-atomic "2.4.1" -"@jest/types@^24.5.0": - version "24.5.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.5.0.tgz#feee214a4d0167b0ca447284e95a57aa10b3ee95" - integrity sha512-kN7RFzNMf2R8UDadPOl6ReyI+MT8xfqRuAnuVL+i4gwjv/zubdDK+EDeLHYwq1j0CSSR2W/MmgaRlMZJzXdmVA== +"@jest/types@^24.7.0": + version "24.7.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.7.0.tgz#c4ec8d1828cdf23234d9b4ee31f5482a3f04f48b" + integrity sha512-ipJUa2rFWiKoBqMKP63Myb6h9+iT3FHRTF2M8OR6irxWzItisa8i4dcSg14IbvmXUnBlHBlUQPYUHWyX3UPpYA== dependencies: - "@types/istanbul-lib-coverage" "^1.1.0" + "@types/istanbul-lib-coverage" "^2.0.0" "@types/yargs" "^12.0.9" "@mrmlnc/readdir-enhanced@^2.2.1": @@ -1010,96 +1062,96 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== -"@svgr/babel-plugin-add-jsx-attribute@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.0.0.tgz#5acf239cd2747b1a36ec7e708de05d914cb9b948" - integrity sha512-PDvHV2WhSGCSExp+eIMEKxYd1Q0SBvXLb4gAOXbdh0dswHFFgXWzxGjCmx5aln4qGrhkuN81khzYzR/44DYaMA== +"@svgr/babel-plugin-add-jsx-attribute@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz#dadcb6218503532d6884b210e7f3c502caaa44b1" + integrity sha512-j7KnilGyZzYr/jhcrSYS3FGWMZVaqyCG0vzMCwzvei0coIkczuYMcniK07nI0aHJINciujjH11T72ICW5eL5Ig== -"@svgr/babel-plugin-remove-jsx-attribute@^4.0.3": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-4.0.3.tgz#32564b5c4d761b51e34492b6a4894196c0f75803" - integrity sha512-fpG7AzzJxz1tc8ITYS1jCAt1cq4ydK2R+sx//BMTJgvOjfk91M5GiqFolP8aYTzLcum92IGNAVFS3zEcucOQEA== +"@svgr/babel-plugin-remove-jsx-attribute@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-4.2.0.tgz#297550b9a8c0c7337bea12bdfc8a80bb66f85abc" + integrity sha512-3XHLtJ+HbRCH4n28S7y/yZoEQnRpl0tvTZQsHqvaeNXPra+6vE5tbRliH3ox1yZYPCxrlqaJT/Mg+75GpDKlvQ== -"@svgr/babel-plugin-remove-jsx-empty-expression@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-4.0.0.tgz#0b59338c00671cf8137eb823bd84a3efac686502" - integrity sha512-nBGVl6LzXTdk1c6w3rMWcjq3mYGz+syWc5b3CdqAiEeY/nswYDoW/cnGUKKC8ofD6/LaG+G/IUnfv3jKoHz43A== +"@svgr/babel-plugin-remove-jsx-empty-expression@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-4.2.0.tgz#c196302f3e68eab6a05e98af9ca8570bc13131c7" + integrity sha512-yTr2iLdf6oEuUE9MsRdvt0NmdpMBAkgK8Bjhl6epb+eQWk6abBaX3d65UZ3E3FWaOwePyUgNyNCMVG61gGCQ7w== -"@svgr/babel-plugin-replace-jsx-attribute-value@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-4.0.0.tgz#91785643540c2300f3d89e515b37af9b5ce4e695" - integrity sha512-ejQqpTfORy6TT5w1x/2IQkscgfbtNFjitcFDu63GRz7qfhVTYhMdiJvJ1+Aw9hmv9bO4tXThGQDr1IF5lIvgew== +"@svgr/babel-plugin-replace-jsx-attribute-value@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-4.2.0.tgz#310ec0775de808a6a2e4fd4268c245fd734c1165" + integrity sha512-U9m870Kqm0ko8beHawRXLGLvSi/ZMrl89gJ5BNcT452fAjtF2p4uRzXkdzvGJJJYBgx7BmqlDjBN/eCp5AAX2w== -"@svgr/babel-plugin-svg-dynamic-title@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-4.0.0.tgz#eb8d50b80ba0a26f9b27c7268e2a803d90f1bc9e" - integrity sha512-OE6GT9WRKWqd0Dk6NJ5TYXTF5OxAyn74+c/D+gTLbCXnK2A0luEXuwMbe5zR5Px4A/jow2OeEBboTENl4vtuQg== +"@svgr/babel-plugin-svg-dynamic-title@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-4.2.0.tgz#43f0f689a5347a894160eb51b39a109889a4df20" + integrity sha512-gH2qItapwCUp6CCqbxvzBbc4dh4OyxdYKsW3EOkYexr0XUmQL0ScbdNh6DexkZ01T+sdClniIbnCObsXcnx3sQ== -"@svgr/babel-plugin-svg-em-dimensions@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-4.0.0.tgz#0de3972c46ff1960bed765646037a3a7f9e1da3d" - integrity sha512-QeDRGHXfjYEBTXxV0TsjWmepsL9Up5BOOlMFD557x2JrSiVGUn2myNxHIrHiVW0+nnWnaDcrkjg/jUvbJ5nKCg== +"@svgr/babel-plugin-svg-em-dimensions@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-4.2.0.tgz#9a94791c9a288108d20a9d2cc64cac820f141391" + integrity sha512-C0Uy+BHolCHGOZ8Dnr1zXy/KgpBOkEUYY9kI/HseHVPeMbluaX3CijJr7D4C5uR8zrc1T64nnq/k63ydQuGt4w== -"@svgr/babel-plugin-transform-react-native-svg@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-4.0.0.tgz#5e8ecc2a9870ae05fb1e553b1fe9c6b5853a1c66" - integrity sha512-c6eE6ovs14k6dmHKoy26h7iRFhjWNnwYVrDWIPfouVm/gcLIeMw/ME4i91O5LEfaDHs6kTRCcVpbAVbNULZOtw== +"@svgr/babel-plugin-transform-react-native-svg@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-4.2.0.tgz#151487322843359a1ca86b21a3815fd21a88b717" + integrity sha512-7YvynOpZDpCOUoIVlaaOUU87J4Z6RdD6spYN4eUb5tfPoKGSF9OG2NuhgYnq4jSkAxcpMaXWPf1cePkzmqTPNw== -"@svgr/babel-plugin-transform-svg-component@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-4.1.0.tgz#257159e28a21ac20988b1eaa5f59d4724f37fdaa" - integrity sha512-uulxdx2p3nrM2BkrtADQHK8IhEzCxdUILfC/ddvFC8tlFWuKiA3ych8C6q0ulyQHq34/3hzz+3rmUbhWF9redg== +"@svgr/babel-plugin-transform-svg-component@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-4.2.0.tgz#5f1e2f886b2c85c67e76da42f0f6be1b1767b697" + integrity sha512-hYfYuZhQPCBVotABsXKSCfel2slf/yvJY8heTVX1PCTaq/IgASq1IyxPPKJ0chWREEKewIU/JMSsIGBtK1KKxw== -"@svgr/babel-preset@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-4.1.0.tgz#f6fa8ad90064b85dd7a3566a70b7006e789e8385" - integrity sha512-Nat5aJ3VO3LE8KfMyIbd3sGWnaWPiFCeWIdEV+lalga0To/tpmzsnPDdnrR9fNYhvSSLJbwhU/lrLYt9wXY0ZQ== - dependencies: - "@svgr/babel-plugin-add-jsx-attribute" "^4.0.0" - "@svgr/babel-plugin-remove-jsx-attribute" "^4.0.3" - "@svgr/babel-plugin-remove-jsx-empty-expression" "^4.0.0" - "@svgr/babel-plugin-replace-jsx-attribute-value" "^4.0.0" - "@svgr/babel-plugin-svg-dynamic-title" "^4.0.0" - "@svgr/babel-plugin-svg-em-dimensions" "^4.0.0" - "@svgr/babel-plugin-transform-react-native-svg" "^4.0.0" - "@svgr/babel-plugin-transform-svg-component" "^4.1.0" +"@svgr/babel-preset@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-4.2.0.tgz#c9fc236445a02a8cd4e750085e51c181de00d6c5" + integrity sha512-iLetHpRCQXfK47voAs5/uxd736cCyocEdorisjAveZo8ShxJ/ivSZgstBmucI1c8HyMF5tOrilJLoFbhpkPiKw== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "^4.2.0" + "@svgr/babel-plugin-remove-jsx-attribute" "^4.2.0" + "@svgr/babel-plugin-remove-jsx-empty-expression" "^4.2.0" + "@svgr/babel-plugin-replace-jsx-attribute-value" "^4.2.0" + "@svgr/babel-plugin-svg-dynamic-title" "^4.2.0" + "@svgr/babel-plugin-svg-em-dimensions" "^4.2.0" + "@svgr/babel-plugin-transform-react-native-svg" "^4.2.0" + "@svgr/babel-plugin-transform-svg-component" "^4.2.0" "@svgr/core@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@svgr/core/-/core-4.1.0.tgz#4f8ad24fb4ab25c787c12a6bbb511c6430558f83" - integrity sha512-ahv3lvOKuUAcs0KbQ4Jr5fT5pGHhye4ew8jZVS4lw8IQdWrbG/o3rkpgxCPREBk7PShmEoGQpteeXVwp2yExuQ== + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-4.2.0.tgz#f32ef8b9d05312aaa775896ec30ae46a6521e248" + integrity sha512-nvzXaf2VavqjMCTTfsZfjL4o9035KedALkMzk82qOlHOwBb8JT+9+zYDgBl0oOunbVF94WTLnvGunEg0csNP3Q== dependencies: - "@svgr/plugin-jsx" "^4.1.0" - camelcase "^5.0.0" - cosmiconfig "^5.0.7" + "@svgr/plugin-jsx" "^4.2.0" + camelcase "^5.3.1" + cosmiconfig "^5.2.0" -"@svgr/hast-util-to-babel-ast@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-4.1.0.tgz#a1eb0f47059769896f759f47995b636fce5d9fa4" - integrity sha512-tdkEZHmigYYiVhIEzycAMKN5aUSpddUnjr6v7bPwaNTFuSyqGUrpCg1JlIGi7PUaaJVHbn6whGQMGUpKOwT5nw== +"@svgr/hast-util-to-babel-ast@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-4.2.0.tgz#dd743435a5f3a8e84a1da067f27b5fae3d7b6b63" + integrity sha512-IvAeb7gqrGB5TH9EGyBsPrMRH/QCzIuAkLySKvH2TLfLb2uqk98qtJamordRQTpHH3e6TORfBXoTo7L7Opo/Ow== dependencies: - "@babel/types" "^7.1.6" + "@babel/types" "^7.4.0" -"@svgr/plugin-jsx@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-4.1.0.tgz#4045e9cc0589374a6c182a1217c80e6734b5cbec" - integrity sha512-xwu+9TGziuN7cu7p+vhCw2EJIfv8iDNMzn2dR0C7fBYc8q+SRtYTcg4Uyn8ZWh6DM+IZOlVrS02VEMT0FQzXSA== +"@svgr/plugin-jsx@^4.1.0", "@svgr/plugin-jsx@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-4.2.0.tgz#15a91562c9b5f90640ea0bdcb2ad59d692ee7ae9" + integrity sha512-AM1YokmZITgveY9bulLVquqNmwiFo2Px2HL+IlnTCR01YvWDfRL5QKdnF7VjRaS5MNP938mmqvL0/8oz3zQMkg== dependencies: - "@babel/core" "^7.1.6" - "@svgr/babel-preset" "^4.1.0" - "@svgr/hast-util-to-babel-ast" "^4.1.0" + "@babel/core" "^7.4.3" + "@svgr/babel-preset" "^4.2.0" + "@svgr/hast-util-to-babel-ast" "^4.2.0" rehype-parse "^6.0.0" - unified "^7.0.2" - vfile "^3.0.1" + unified "^7.1.0" + vfile "^4.0.0" "@svgr/plugin-svgo@^4.0.3": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-4.0.3.tgz#a07ea0a736c26fa3a5440fe8e222e2e887764cab" - integrity sha512-MgL1CrlxvNe+1tQjPUc2bIJtsdJOIE5arbHlPgW+XVWGjMZTUcyNNP8R7/IjM2Iyrc98UJY+WYiiWHrinnY9ZQ== + version "4.2.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-4.2.0.tgz#2a594a2d3312955e75fd87dc77ae51f377c809f3" + integrity sha512-zUEKgkT172YzHh3mb2B2q92xCnOAMVjRx+o0waZ1U50XqKLrVQ/8dDqTAtnmapdLsGurv8PSwenjLCUpj6hcvw== dependencies: - cosmiconfig "^5.0.7" + cosmiconfig "^5.2.0" merge-deep "^3.0.2" - svgo "^1.1.1" + svgo "^1.2.1" "@svgr/webpack@4.1.0": version "4.1.0" @@ -1116,9 +1168,9 @@ loader-utils "^1.1.0" "@types/babel__core@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.0.tgz#710f2487dda4dcfd010ca6abb2b4dc7394365c51" - integrity sha512-wJTeJRt7BToFx3USrCDs2BhEi4ijBInTQjOIukj6a/5tEkwpFMVZ+1ppgmE+Q/FQyc5P/VWUbx7I9NELrKruHA== + version "7.1.1" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.1.tgz#ce9a9e5d92b7031421e1d0d74ae59f572ba48be6" + integrity sha512-+hjBtgcFPYyCTo0A15+nxrCVJL7aC6Acg87TXd5OW3QhHswdrOLoles+ldL2Uk8q++7yIfl4tURtztccdeeyOw== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -1148,15 +1200,15 @@ dependencies: "@babel/types" "^7.3.0" -"@types/istanbul-lib-coverage@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.0.tgz#2cc2ca41051498382b43157c8227fea60363f94a" - integrity sha512-ohkhb9LehJy+PA40rDtGAji61NCgdtKLAlFoYp4cnuuQEswwdK3vz9SOIkkyc3wrk8dzjphQApNs56yyXLStaQ== +"@types/istanbul-lib-coverage@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.0.tgz#1eb8c033e98cf4e1a4cedcaf8bcafe8cb7591e85" + integrity sha512-eAtOAFZefEnfJiRFQBGw1eYqa5GTLCZ1y86N0XSI/D6EB+E8z6VPV/UL7Gi5UEclFqoQk+6NRqEDsfmDLXn8sg== "@types/node@*": - version "11.11.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.3.tgz#7c6b0f8eaf16ae530795de2ad1b85d34bf2f5c58" - integrity sha512-wp6IOGu1lxsfnrD+5mX6qwSwWuqsdkKKxTN4aQc4wByHAKZJf9/D4KXPQ1POUjEbnCP5LMggB0OEFNY9OTsMqg== + version "11.13.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-11.13.4.tgz#f83ec3c3e05b174b7241fadeb6688267fe5b22ca" + integrity sha512-+rabAZZ3Yn7tF/XPGHupKIL5EcAbrLxnTr/hgQICxbeuAfWtT0UZSfULE+ndusckBItcv4o6ZeOJplQikVcLvQ== "@types/q@^1.5.1": version "1.5.2" @@ -1168,7 +1220,7 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== -"@types/unist@*", "@types/unist@^2.0.0": +"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== @@ -1191,33 +1243,33 @@ "@types/vfile-message" "*" "@types/yargs@^12.0.2", "@types/yargs@^12.0.9": - version "12.0.9" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.9.tgz#693e76a52f61a2f1e7fb48c0eef167b95ea4ffd0" - integrity sha512-sCZy4SxP9rN2w30Hlmg5dtdRwgYQfYRiLo9usw8X9cxlf+H4FqM1xX7+sNH7NNKVdbXMJWqva7iyy+fxh/V7fA== + version "12.0.12" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.12.tgz#45dd1d0638e8c8f153e87d296907659296873916" + integrity sha512-SOhuU4wNBxhhTHxYaiG5NY4HBhDIDnJF60GU+2LqHAdKKer86//e4yg69aENCtQ04n0ovz+tq2YPME5t5yp4pw== -"@typescript-eslint/eslint-plugin@1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-1.4.1.tgz#f752a6888a957fd411c7bcada11884c4257d374a" - integrity sha512-+7wRNSKK+flJR0pOcGuTP2QwoJYJ91jdZV8Hm0IwVAWTqww8Jt5sN7r/Mlf2oFmDcO8jpM3ajsZCHJ4MmBMRjA== +"@typescript-eslint/eslint-plugin@1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-1.6.0.tgz#a5ff3128c692393fb16efa403ec7c8a5593dab0f" + integrity sha512-U224c29E2lo861TQZs6GSmyC0OYeRNg6bE9UVIiFBxN2MlA0nq2dCrgIVyyRbC05UOcrgf2Wk/CF2gGOPQKUSQ== dependencies: - "@typescript-eslint/parser" "1.4.1" - "@typescript-eslint/typescript-estree" "1.4.1" + "@typescript-eslint/parser" "1.6.0" + "@typescript-eslint/typescript-estree" "1.6.0" requireindex "^1.2.0" tsutils "^3.7.0" -"@typescript-eslint/parser@1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-1.4.1.tgz#a7cd1a41722da6a37088ea90c0009ea56a27a372" - integrity sha512-W+9qep7F4Rn5Eq8F2vkOGbxiy639quYBGvDO6c4p4kIYnKdWj1rBGh3PoyOlaA1v1Dttj23yCRl9Ca9NmdgWCQ== +"@typescript-eslint/parser@1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-1.6.0.tgz#f01189c8b90848e3b8e45a6cdad27870529d1804" + integrity sha512-VB9xmSbfafI+/kI4gUK3PfrkGmrJQfh0N4EScT1gZXSZyUxpsBirPL99EWZg9MmPG0pzq/gMtgkk7/rAHj4aQw== dependencies: - "@typescript-eslint/typescript-estree" "1.4.1" + "@typescript-eslint/typescript-estree" "1.6.0" eslint-scope "^4.0.0" eslint-visitor-keys "^1.0.0" -"@typescript-eslint/typescript-estree@1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-1.4.1.tgz#6ca30b1770db0aee62b92a1c4ac5eaabc332c116" - integrity sha512-23nw1CtVklWvkN9RotPjYqpVSzAoXtF9rdqGwyjJ4Bzd6q82CSXOQ+KBRnKePAcwJ2YtOlQQRi9lDX+DIdpCOA== +"@typescript-eslint/typescript-estree@1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-1.6.0.tgz#6cf43a07fee08b8eb52e4513b428c8cdc9751ef0" + integrity sha512-A4CanUwfaG4oXobD5y7EXbsOHjCwn8tj1RDd820etpPAjH+Icjc2K9e/DQM1Hac5zH2BSy+u6bjvvF2wwREvYA== dependencies: lodash.unescape "4.0.1" semver "5.5.0" @@ -1401,10 +1453,10 @@ acorn-dynamic-import@^4.0.0: resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== -acorn-globals@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.0.tgz#e3b6f8da3c1552a95ae627571f7dd6923bb54103" - integrity sha512-hMtHj3s5RnuhvHPowpBYvJVj3rAar82JiDQHvGs1zO0l10ocX/xEdBShNHTJaboucJUsScghp74pH3s7EnHHQw== +acorn-globals@^4.1.0, acorn-globals@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.1.tgz#deb149c59276657ebd40ba2ba849ddd529763ccf" + integrity sha512-gJSiKY8dBIjV/0jagZIFBdVMtfQyA5QHCvAT48H2q8REQoW8Fs5AOjqBql1LgSXgrMWdevcE+8cdZ33NtVbIBA== dependencies: acorn "^6.0.1" acorn-walk "^6.0.1" @@ -1424,7 +1476,7 @@ acorn@^5.5.3: resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== -acorn@^6.0.1, acorn@^6.0.5, acorn@^6.0.7: +acorn@^6.0.1, acorn@^6.0.4, acorn@^6.0.5, acorn@^6.0.7: version "6.1.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA== @@ -1668,9 +1720,9 @@ astral-regex@^1.0.0: integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== async-each@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.2.tgz#8b8a7ca2a658f927e9f307d6d1a42f4199f0f735" - integrity sha512-6xrbvN0MOBKSJDdonmSSz2OwFSgxRaVtBDes26mj9KIGtDo+g9xosFRSC+i1gQh2oAN/tQ62AI/pGZGQjVOiRg== + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== async-limiter@~1.0.0: version "1.0.0" @@ -1682,7 +1734,7 @@ async@^1.5.2: resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= -async@^2.5.0, async@^2.6.1: +async@^2.6.1: version "2.6.2" resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg== @@ -1700,12 +1752,12 @@ atob@^2.1.1: integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== autoprefixer@^9.4.9: - version "9.5.0" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.5.0.tgz#7e51d0355c11596e6cf9a0afc9a44e86d1596c70" - integrity sha512-hMKcyHsZn5+qL6AUeP3c8OyuteZ4VaUlg+fWbyl8z7PqsKHF/Bf8/px3K6AT8aMzDkBo8Bc11245MM+itDBOxQ== + version "9.5.1" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.5.1.tgz#243b1267b67e7e947f28919d786b50d3bb0fb357" + integrity sha512-KJSzkStUl3wP0D5sdMlP82Q52JLy5+atf2MHAre48+ckWkXgixmfHyWmA77wFDy6jTHU6mIgXv6hAQ2mf1PjJQ== dependencies: - browserslist "^4.4.2" - caniuse-lite "^1.0.30000947" + browserslist "^4.5.4" + caniuse-lite "^1.0.30000957" normalize-range "^0.1.2" num2fraction "^1.2.2" postcss "^7.0.14" @@ -1737,11 +1789,6 @@ babel-code-frame@^6.22.0: esutils "^2.0.2" js-tokens "^3.0.2" -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-eslint@10.0.1: version "10.0.1" resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.1.tgz#919681dc099614cd7d31d45c8908695092a1faed" @@ -1761,16 +1808,16 @@ babel-extract-comments@^1.0.0: dependencies: babylon "^6.18.0" -babel-jest@24.5.0, babel-jest@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.5.0.tgz#0ea042789810c2bec9065f7c8ab4dc18e1d28559" - integrity sha512-0fKCXyRwxFTJL0UXDJiT2xYxO9Lu2vBd9n+cC+eDjESzcVG3s2DRGAxbzJX21fceB1WYoBjAh8pQ83dKcl003g== +babel-jest@24.7.1, babel-jest@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.7.1.tgz#73902c9ff15a7dfbdc9994b0b17fcefd96042178" + integrity sha512-GPnLqfk8Mtt0i4OemjWkChi73A3ALs4w2/QbG64uAj8b5mmwzxc7jbJVRZt8NJkxi6FopVHog9S3xX6UJKb2qg== dependencies: - "@jest/transform" "^24.5.0" - "@jest/types" "^24.5.0" + "@jest/transform" "^24.7.1" + "@jest/types" "^24.7.0" "@types/babel__core" "^7.1.0" babel-plugin-istanbul "^5.1.0" - babel-preset-jest "^24.3.0" + babel-preset-jest "^24.6.0" chalk "^2.4.2" slash "^2.0.0" @@ -1792,18 +1839,18 @@ babel-plugin-dynamic-import-node@2.2.0: object.assign "^4.1.0" babel-plugin-istanbul@^5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.1.tgz#7981590f1956d75d67630ba46f0c22493588c893" - integrity sha512-RNNVv2lsHAXJQsEJ5jonQwrJVWK8AcZpG1oxhnjCUaAjL7xahYLANhPUZbzEQHjKy1NMYUwn+0NPKQc8iSY4xQ== + version "5.1.2" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.2.tgz#d8c2e2e83f72695d6bfdcd297719c66161d5f0f9" + integrity sha512-U3ZVajC+Z69Gim7ZzmD4Wcsq76i/1hqDamBfowc1tWzWjybRy70iWfngP2ME+1CrgcgZ/+muIbPY/Yi0dxdIkQ== dependencies: find-up "^3.0.0" - istanbul-lib-instrument "^3.0.0" - test-exclude "^5.0.0" + istanbul-lib-instrument "^3.2.0" + test-exclude "^5.2.2" -babel-plugin-jest-hoist@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.3.0.tgz#f2e82952946f6e40bb0a75d266a3790d854c8b5b" - integrity sha512-nWh4N1mVH55Tzhx2isvUN5ebM5CDUvIpXPZYMRazQughie/EqGnbR+czzoQlhUmJG9pPJmYDRhvocotb2THl1w== +babel-plugin-jest-hoist@^24.6.0: + version "24.6.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.6.0.tgz#f7f7f7ad150ee96d7a5e8e2c5da8319579e78019" + integrity sha512-3pKNH6hMt9SbOv0F3WVmy5CWQ4uogS3k0GY5XLyQHJ9EGpAT9XWkFd2ZiXXtkwFHdAHa5j7w7kfxSP5lAIwu7w== dependencies: "@types/babel__traverse" "^7.0.6" @@ -1838,13 +1885,13 @@ babel-plugin-transform-react-remove-prop-types@0.4.24: resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== -babel-preset-jest@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.3.0.tgz#db88497e18869f15b24d9c0e547d8e0ab950796d" - integrity sha512-VGTV2QYBa/Kn3WCOKdfS31j9qomaXSgJqi65B6o05/1GsJyj9LVhSljM9ro4S+IBGj/ENhNBuH9bpqzztKAQSw== +babel-preset-jest@^24.6.0: + version "24.6.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.6.0.tgz#66f06136eefce87797539c0d63f1769cc3915984" + integrity sha512-pdZqLEdmy1ZK5kyRUfvBb2IfTPb2BUvIJczlPspS8fWmBQslNNDBqVfh7BW5leOVJMDZKzjD8XEyABTk6gQ5yw== dependencies: "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - babel-plugin-jest-hoist "^24.3.0" + babel-plugin-jest-hoist "^24.6.0" babel-preset-react-app@^7.0.2: version "7.0.2" @@ -1930,14 +1977,14 @@ big.js@^5.2.2: integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== binary-extensions@^1.0.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.0.tgz#9523e001306a32444b907423f1de2164222f6ab1" - integrity sha512-EgmjVLMn22z7eGGv3kcnHwSnJXmFHjISTY9E/S5lIcTD3Oxw05QTcBLNkJFzcb3cNueUdF/IN4U+d78V0zO8Hw== + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== bluebird@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7" - integrity sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw== + version "3.5.4" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.4.tgz#d6cc661595de30d5b3af5fcedd3c0b3ef6ec5714" + integrity sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw== bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" @@ -2086,14 +2133,14 @@ browserslist@4.4.1: electron-to-chromium "^1.3.103" node-releases "^1.1.3" -browserslist@^4.0.0, browserslist@^4.3.4, browserslist@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.4.2.tgz#6ea8a74d6464bb0bd549105f659b41197d8f0ba2" - integrity sha512-ISS/AIAiHERJ3d45Fz0AVYKkgcy+F/eJHzKEvv1j0wwKGKD9T3BrwKr/5g45L+Y4XIK5PlTqefHciRFcfE1Jxg== +browserslist@^4.0.0, browserslist@^4.1.1, browserslist@^4.3.4, browserslist@^4.4.2, browserslist@^4.5.2, browserslist@^4.5.4: + version "4.5.5" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.5.5.tgz#fe1a352330d2490d5735574c149a85bc18ef9b82" + integrity sha512-0QFO1r/2c792Ohkit5XI8Cm8pDtZxgNl2H6HU4mHrpYz7314pEYcsAVVatM0l/YmxPnEzh9VygXouj4gkFUTKA== dependencies: - caniuse-lite "^1.0.30000939" - electron-to-chromium "^1.3.113" - node-releases "^1.1.8" + caniuse-lite "^1.0.30000960" + electron-to-chromium "^1.3.124" + node-releases "^1.1.14" bser@^2.0.0: version "2.0.0" @@ -2196,9 +2243,9 @@ callsites@^2.0.0: integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= callsites@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz#fb7eb569b72ad7a45812f93fd9430a3e410b3dd3" - integrity sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw== + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camel-case@3.0.x: version "3.0.0" @@ -2213,10 +2260,10 @@ camelcase@^4.1.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= -camelcase@^5.0.0, camelcase@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.2.0.tgz#e7522abda5ed94cc0489e1b8466610e88404cf45" - integrity sha512-IXFsBS2pC+X0j0N/GE7Dm7j3bsEBp+oTpb7F50dwEVX7rf3IgwO9XatnegTsDtniKCUtEJH4fSU6Asw7uoVLfQ== +camelcase@^5.0.0, camelcase@^5.2.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== caniuse-api@^3.0.0: version "3.0.0" @@ -2228,10 +2275,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000929, caniuse-lite@^1.0.30000939, caniuse-lite@^1.0.30000947: - version "1.0.30000948" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000948.tgz#793ed7c28fe664856beb92b43fc013fc22b81633" - integrity sha512-Lw4y7oz1X5MOMZm+2IFaSISqVVQvUuD+ZUSfeYK/SlYiMjkHN/eJ2PDfJehW5NA6JjrxYSSnIWfwjeObQMEjFQ== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000929, caniuse-lite@^1.0.30000939, caniuse-lite@^1.0.30000957, caniuse-lite@^1.0.30000960: + version "1.0.30000960" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000960.tgz#ec48297037e5607f582f246ae7b12bee66a78999" + integrity sha512-7nK5qs17icQaX6V3/RYrJkOsZyRNnroA4+ZwxaKJzIKy+crIy0Mz5CBlLySd2SNV+4nbUZeqeNfiaEieUBu3aA== capture-exit@^2.0.0: version "2.0.0" @@ -2280,15 +2327,10 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -check-types@^7.3.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/check-types/-/check-types-7.4.0.tgz#0378ec1b9616ec71f774931a3c6516fad8c152f4" - integrity sha512-YbulWHdfP99UfZ73NcUDlNJhEIDgm9Doq9GhpyXbF+7Aegi3CVV7qqMCKTTqJxlvEvnQBp9IA+dxsGN6xK/nSg== - chokidar@^2.0.0, chokidar@^2.0.2, chokidar@^2.0.4: - version "2.1.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.2.tgz#9c23ea40b01638439e0513864d362aeacc5ad058" - integrity sha512-IwXUx0FXc5ibYmPC2XeEj5mpXoV66sR+t3jqu2NS2GYwCktt3KF1/Qqjws/NkegajBA4RbZ5+DDwlOiJsxDHEg== + version "2.1.5" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.5.tgz#0ae8434d962281a5f56c72869e79cb6d9d86ad4d" + integrity sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A== dependencies: anymatch "^2.0.0" async-each "^1.0.1" @@ -2300,7 +2342,7 @@ chokidar@^2.0.0, chokidar@^2.0.2, chokidar@^2.0.4: normalize-path "^3.0.0" path-is-absolute "^1.0.0" readdirp "^2.2.1" - upath "^1.1.0" + upath "^1.1.1" optionalDependencies: fsevents "^1.2.7" @@ -2456,23 +2498,26 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: delayed-stream "~1.0.0" comma-separated-tokens@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.5.tgz#b13793131d9ea2d2431cf5b507ddec258f0ce0db" - integrity sha512-Cg90/fcK93n0ecgYTAz1jaA3zvnQ0ExlmKY1rdbyHqAx6BHxwoJc+J7HDu0iuQ7ixEs1qaa+WyQ6oeuBpYP1iA== - dependencies: - trim "0.0.1" + version "1.0.6" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.6.tgz#3cd3d8adc725ab473843db338bcdfd4a7bb087bf" + integrity sha512-f20oA7jsrrmERTS70r3tmRSxR8IJV2MTN7qe6hzgX+3ARfXrdMJFvGWvWQK0xpcBurg9j9eO2MiqzZ8Y+/UPCA== -commander@2.17.x, commander@~2.17.1: +commander@2.17.x: version "2.17.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== -commander@^2.11.0, commander@^2.19.0: +commander@^2.11.0, commander@^2.19.0, commander@~2.20.0: + version "2.20.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" + integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== + +commander@~2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== -common-tags@^1.4.0: +common-tags@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== @@ -2488,11 +2533,11 @@ compare-versions@^3.2.1: 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" - integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== -compressible@~2.0.14: +compressible@~2.0.16: version "2.0.16" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.16.tgz#a49bf9858f3821b64ce1be0296afc7380466a77f" integrity sha512-JQfEOdnI7dASwCuSPWIeVYwc/zMsu/+tRhoUvEfXz2gxOA2DNjmG5vhtFdBlhWPPGo+RdT9S3tgc/uH5qgDiiA== @@ -2500,15 +2545,15 @@ compressible@~2.0.14: mime-db ">= 1.38.0 < 2" compression@^1.5.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.3.tgz#27e0e176aaf260f7f2c2813c3e440adb9f1993db" - integrity sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg== + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== dependencies: accepts "~1.3.5" bytes "3.0.0" - compressible "~2.0.14" + compressible "~2.0.16" debug "2.6.9" - on-headers "~1.0.1" + on-headers "~1.0.2" safe-buffer "5.1.2" vary "~1.1.2" @@ -2603,11 +2648,31 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= +core-js-compat@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.0.1.tgz#bff73ba31ca8687431b9c88f78d3362646fb76f0" + integrity sha512-2pC3e+Ht/1/gD7Sim/sqzvRplMiRnFQVlPpDVaHtY9l7zZP7knamr3VRD6NyGfHd84MrDC0tAM9ulNxYMW0T3g== + dependencies: + browserslist "^4.5.4" + core-js "3.0.1" + core-js-pure "3.0.1" + semver "^6.0.0" + +core-js-pure@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.0.1.tgz#37358fb0d024e6b86d443d794f4e37e949098cbe" + integrity sha512-mSxeQ6IghKW3MoyF4cz19GJ1cMm7761ON+WObSyLfTu/Jn3x7w4NwNFnrZxgl4MTSvYYepVLNuRtlB4loMwJ5g== + core-js@2.6.4: version "2.6.4" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.4.tgz#b8897c062c4d769dd30a0ac5c73976c47f92ea0d" integrity sha512-05qQ5hXShcqGkPZpXEFLIpxayZscVD2kuMBZewxiIPPEagukO4mqgPA9CWhUvFBJfy3ODdK2p9xyHh7FTU9/7A== +core-js@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.0.1.tgz#1343182634298f7f38622f95e73f54e48ddf4738" + integrity sha512-sco40rF+2KlE0ROMvydjkrVMMG1vYilP2ALoRXcYR4obqbYIuV3Bg+51GEDW+HF8n7NRA+iaA4qD0nD9lo9mew== + core-js@^2.4.0: version "2.6.5" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz#44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895" @@ -2628,15 +2693,14 @@ cosmiconfig@^4.0.0: parse-json "^4.0.0" require-from-string "^2.0.1" -cosmiconfig@^5.0.0, cosmiconfig@^5.0.5, cosmiconfig@^5.0.7: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.1.0.tgz#6c5c35e97f37f985061cdf653f114784231185cf" - integrity sha512-kCNPvthka8gvLtzAxQXvWo4FxqRB+ftRZyPZNuab5ngvM9Y7yw7hbEysglptLgpkGX9nAOKTBVkHUAe8xtYR6Q== +cosmiconfig@^5.0.0, cosmiconfig@^5.0.5, cosmiconfig@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.0.tgz#45038e4d28a7fe787203aede9c25bca4a08b12c8" + integrity sha512-nxt+Nfc3JAqf4WIWd0jXLjTJZmsPLrA9DDc4nRw2KFJQJK7DNooqSXrNI7tzLG50CF8axczly5UV929tBmh/7g== dependencies: import-fresh "^2.0.0" is-directory "^0.3.1" - js-yaml "^3.9.0" - lodash.get "^4.4.2" + js-yaml "^3.13.0" parse-json "^4.0.0" create-ecdh@^4.0.0: @@ -2896,15 +2960,15 @@ csso@^3.5.1: dependencies: css-tree "1.0.0-alpha.29" -cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0", cssom@^0.3.4: version "0.3.6" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.6.tgz#f85206cee04efa841f3c5982a74ba96ab20d65ad" integrity sha512-DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A== -cssstyle@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.2.1.tgz#3aceb2759eaf514ac1a21628d723d6043a819495" - integrity sha512-7DYm8qe+gPx/h77QlCyFmX80+fGaE/6A/Ekl0zaszYOubvySO2saYFdQ78P29D0UsULxFKCetDGNaNRUdSF+2A== +cssstyle@^1.0.0, cssstyle@^1.1.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.2.2.tgz#427ea4d585b18624f6fdbf9de7a2a1a3ba713077" + integrity sha512-43wY3kl1CVQSvL7wUY1qXkxVGkStjpkDmVjiIKX8R97uhajy8Bybay78uOtqvh7Q5GK75dNPfW0geWjE6qQQow== dependencies: cssom "0.3.x" @@ -2925,7 +2989,7 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -data-urls@^1.0.0: +data-urls@^1.0.0, data-urls@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== @@ -2939,7 +3003,7 @@ date-now@^0.1.4: resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= -debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8, debug@^2.6.9: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -2992,7 +3056,7 @@ deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= -default-gateway@^4.0.1: +default-gateway@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== @@ -3263,10 +3327,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.103, electron-to-chromium@^1.3.113: - version "1.3.116" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.116.tgz#1dbfee6a592a0c14ade77dbdfe54fef86387d702" - integrity sha512-NKwKAXzur5vFCZYBHpdWjTMO8QptNLNP80nItkSIgUOapPAo9Uia+RvkCaZJtO7fhQaVElSvBPWEc2ku6cKsPA== +electron-to-chromium@^1.3.103, electron-to-chromium@^1.3.124: + version "1.3.124" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.124.tgz#861fc0148748a11b3e5ccebdf8b795ff513fa11f" + integrity sha512-glecGr/kFdfeXUHOHAWvGcXrxNU+1wSO/t5B23tT1dtlvYB26GY8aHzZSWD7HqhqC800Lr+w/hQul6C5AF542w== elliptic@^6.0.0: version "6.4.1" @@ -3362,7 +3426,7 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1 resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -escodegen@^1.9.1: +escodegen@^1.11.0, escodegen@^1.9.1: version "1.11.1" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.1.tgz#c485ff8d6b4cdb89e27f4a856e91f118401ca510" integrity sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw== @@ -3401,9 +3465,9 @@ eslint-loader@2.1.2: rimraf "^2.6.1" eslint-module-utils@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.3.0.tgz#546178dab5e046c8b562bbb50705e2456d7bda49" - integrity sha512-lmDJgeOOjk8hObTysjqH7wyMi+nsHwwvfBykwfhjR1LNdd7C2uFJBvx4OpWYpXOw4df1yE1cDEVd1yLHitk34w== + version "2.4.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz#8b93499e9b00eab80ccb6614e69f03678e84e09a" + integrity sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw== dependencies: debug "^2.6.8" pkg-dir "^2.0.0" @@ -3445,10 +3509,10 @@ eslint-plugin-jsx-a11y@6.2.1: has "^1.0.3" jsx-ast-utils "^2.0.1" -eslint-plugin-react-hooks@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.5.0.tgz#cdd958cfff55bd5fa4f84db90d1490fb5ca4ae2b" - integrity sha512-iwDuWR2ReRgvJsNm8fXPtTKdg78IVQF8I4+am3ntztPf/+nPnWZfArFu6aXpaC75/iCYRrkqI8nPCYkxJstmpA== +eslint-plugin-react-hooks@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.6.0.tgz#348efcda8fb426399ac7b8609607c7b4025a6f5f" + integrity sha512-lHBVRIaz5ibnIgNG07JNiAuBUeKhEf8l4etNx5vfAEwqQ5tcuK3jV9yjmopPgQDagQb7HwIuQVsE3IVcGrRnag== eslint-plugin-react@7.12.4: version "7.12.4" @@ -3471,7 +3535,7 @@ eslint-scope@3.7.1: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-scope@^4.0.0, eslint-scope@^4.0.2: +eslint-scope@^4.0.0, eslint-scope@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== @@ -3489,10 +3553,10 @@ eslint-visitor-keys@^1.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== -eslint@5.15.1: - version "5.15.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.15.1.tgz#8266b089fd5391e0009a047050795b1d73664524" - integrity sha512-NTcm6vQ+PTgN3UBsALw5BMhgO6i5EpIjQF/Xb5tIh3sk9QhrFafujUOczGz4J24JBlzWclSB9Vmx8d+9Z6bFCg== +eslint@5.16.0: + version "5.16.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" + integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== dependencies: "@babel/code-frame" "^7.0.0" ajv "^6.9.1" @@ -3500,7 +3564,7 @@ eslint@5.15.1: cross-spawn "^6.0.5" debug "^4.0.1" doctrine "^3.0.0" - eslint-scope "^4.0.2" + eslint-scope "^4.0.3" eslint-utils "^1.3.1" eslint-visitor-keys "^1.0.0" espree "^5.0.1" @@ -3514,7 +3578,7 @@ eslint@5.15.1: import-fresh "^3.0.0" imurmurhash "^0.1.4" inquirer "^6.2.2" - js-yaml "^3.12.0" + js-yaml "^3.13.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.3.0" lodash "^4.17.11" @@ -3640,16 +3704,16 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expect@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-24.5.0.tgz#492fb0df8378d8474cc84b827776b069f46294ed" - integrity sha512-p2Gmc0CLxOgkyA93ySWmHFYHUPFIHG6XZ06l7WArWAsrqYVaVEkOU5NtT5i68KUyGKbkQgDCkiT65bWmdoL6Bw== +expect@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-24.7.1.tgz#d91defbab4e627470a152feaf35b3c31aa1c7c14" + integrity sha512-mGfvMTPduksV3xoI0xur56pQsg2vJjNf5+a+bXOjqCkiCBbmCayrBbHS/75y9K430cfqyocPr2ZjiNiRx4SRKw== dependencies: - "@jest/types" "^24.5.0" + "@jest/types" "^24.7.0" ansi-styles "^3.2.0" jest-get-type "^24.3.0" - jest-matcher-utils "^24.5.0" - jest-message-util "^24.5.0" + jest-matcher-utils "^24.7.0" + jest-message-util "^24.7.1" jest-regex-util "^24.3.0" express@^4.16.2: @@ -3968,7 +4032,6 @@ fork-ts-checker-webpack-plugin@1.0.0-alpha.6: semver "^5.6.0" tapable "^1.0.0" - form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" @@ -4044,12 +4107,12 @@ fs.realpath@^1.0.0: integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.7.tgz#4851b664a3783e52003b3c66eb0eee1074933aa4" - integrity sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw== + version "1.2.8" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.8.tgz#57ea5320f762cd4696e5e8e87120eccc8b11cacf" + integrity sha512-tPvHgPGB7m40CZ68xqFGkKuzN+RnpGmSV+hgeKxhRpbxdqKXUFJGC3yonBOLzQBcJyGpdZFDfCsdOC2KFsXzeA== dependencies: - nan "^2.9.2" - node-pre-gyp "^0.10.0" + nan "^2.12.1" + node-pre-gyp "^0.12.0" function-bind@^1.1.1: version "1.1.1" @@ -4198,11 +4261,11 @@ handle-thing@^2.0.0: integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== handlebars@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.0.tgz#0d6a6f34ff1f63cecec8423aa4169827bf787c3a" - integrity sha512-l2jRuU1NAWK6AW5qqcTATWQJvNPEwkM7NEKSiv/gqOsoSQbVoWyqVEY5GS+XPQ88zLNmqASRpzfdm8d79hJS+w== + version "4.1.2" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" + integrity sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw== dependencies: - async "^2.5.0" + neo-async "^2.6.0" optimist "^0.6.1" source-map "^0.6.1" optionalDependencies: @@ -4347,15 +4410,10 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoek@4.x.x: - version "4.2.1" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" - integrity sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA== - -hoopy@^0.1.2: - version "0.1.4" - resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" - integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== +hoek@6.x.x: + version "6.1.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-6.1.3.tgz#73b7d33952e01fe27a38b0457294b79dd8da242c" + integrity sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ== hosted-git-info@^2.1.4: version "2.7.1" @@ -4523,9 +4581,9 @@ identity-obj-proxy@3.0.0: harmony-reflect "^1.4.6" ieee754@^1.1.4: - version "1.1.12" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" - integrity sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA== + version "1.1.13" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== iferr@^0.1.5: version "0.1.5" @@ -4650,9 +4708,9 @@ inquirer@6.2.1: through "^2.3.6" inquirer@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.2.tgz#46941176f65c9eb20804627149b743a218f25406" - integrity sha512-Z2rREiXA6cHRR9KBOarR3WuLlFzlIfAEIiB45ll5SSadMg7WqOh1MKEjjndfuH5ewXdixWCxqnVfGOQzPeiztA== + version "6.3.1" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.3.1.tgz#7a413b5e7950811013a3db491c61d1f3b776e8e7" + integrity sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA== dependencies: ansi-escapes "^3.2.0" chalk "^2.4.2" @@ -4665,15 +4723,15 @@ inquirer@^6.2.2: run-async "^2.2.0" rxjs "^6.4.0" string-width "^2.1.0" - strip-ansi "^5.0.0" + strip-ansi "^5.1.0" through "^2.3.6" internal-ip@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.2.0.tgz#46e81b638d84c338e5c67e42b1a17db67d0814fa" - integrity sha512-ZY8Rk+hlvFeuMmG5uH1MXhhdeMntmIaxaInvAmzMq/SHV8rv4Kh+6GiQNNDQd0wZFrcO+FiTBo8lui/osKOyJw== + version "4.3.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== dependencies: - default-gateway "^4.0.1" + default-gateway "^4.2.0" ipaddr.js "^1.9.0" invariant@^2.2.2, invariant@^2.2.4: @@ -4698,12 +4756,7 @@ ip@^1.1.0, ip@^1.1.5: resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= -ipaddr.js@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" - integrity sha1-6qM9bd16zo9/b+DJygRA5wZzix4= - -ipaddr.js@^1.9.0: +ipaddr.js@1.9.0, ipaddr.js@^1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== @@ -4850,9 +4903,9 @@ is-fullwidth-code-point@^2.0.0: integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 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== + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== is-glob@^3.1.0: version "3.1.0" @@ -4862,9 +4915,9 @@ is-glob@^3.1.0: is-extglob "^2.1.0" is-glob@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" - integrity sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A= + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== dependencies: is-extglob "^2.1.1" @@ -5007,135 +5060,136 @@ isstream@~0.1.2: integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= istanbul-api@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-2.1.1.tgz#194b773f6d9cbc99a9258446848b0f988951c4d0" - integrity sha512-kVmYrehiwyeBAk/wE71tW6emzLiHGjYIiDrc8sfyty4F8M02/lrgXSm+R1kXysmF20zArvmZXjlE/mg24TVPJw== + version "2.1.4" + resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-2.1.4.tgz#5c7fe1d1c9b96ba3184ac4bbff7fc04eaccbdd8b" + integrity sha512-aAFQL0HA2BLUl18XmTQ7H7CGKI58DtZFvvfmg6e+rA3iNFergvpi16czLV4CpI7HOImMeZ5mqI62dvSNVtUQVA== 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.1" - js-yaml "^3.12.0" - make-dir "^1.3.0" + istanbul-lib-coverage "^2.0.4" + istanbul-lib-hook "^2.0.6" + istanbul-lib-instrument "^3.2.0" + istanbul-lib-report "^2.0.7" + istanbul-lib-source-maps "^3.0.5" + istanbul-reports "^2.2.2" + js-yaml "^3.13.0" + make-dir "^2.1.0" minimatch "^3.0.4" once "^1.4.0" -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-coverage@^2.0.2, istanbul-lib-coverage@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#927a354005d99dd43a24607bb8b33fd4e9aca1ad" + integrity sha512-LXTBICkMARVgo579kWDm8SqfB6nvSDKNqIOBEjmJRnL04JvoMHCYGWaMddQnseJYtkEuEvO/sIcOxPLk9gERug== -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== +istanbul-lib-hook@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.6.tgz#5baa6067860a38290aef038b389068b225b01b7d" + integrity sha512-829DKONApZ7UCiPXcOYWSgkFXa4+vNYoNOt3F+4uDJLKL1OotAoVwvThoEj1i8jmOj7odbYcR3rnaHu+QroaXg== dependencies: append-transform "^1.0.0" -istanbul-lib-instrument@^3.0.0, 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== +istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.2.0.tgz#c549208da8a793f6622257a2da83e0ea96ae6a93" + integrity sha512-06IM3xShbNW4NgZv5AP4QH0oHqf1/ivFo8eFys0ZjPXHGldHJQWb3riYOKXqmOqfxXBfxu4B+g/iuhOPZH0RJg== dependencies: "@babel/generator" "^7.0.0" "@babel/parser" "^7.0.0" "@babel/template" "^7.0.0" "@babel/traverse" "^7.0.0" "@babel/types" "^7.0.0" - istanbul-lib-coverage "^2.0.3" - semver "^5.5.0" + istanbul-lib-coverage "^2.0.4" + semver "^6.0.0" -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== +istanbul-lib-report@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.7.tgz#370d80d433c4dbc7f58de63618f49599c74bd954" + integrity sha512-wLH6beJBFbRBLiTlMOBxmb85cnVM1Vyl36N48e4e/aTKSM3WbOx7zbVIH1SQ537fhhsPbX0/C5JB4qsmyRXXyA== dependencies: - istanbul-lib-coverage "^2.0.3" - make-dir "^1.3.0" + istanbul-lib-coverage "^2.0.4" + make-dir "^2.1.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== +istanbul-lib-source-maps@^3.0.1, istanbul-lib-source-maps@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.5.tgz#1d9ee9d94d2633f15611ee7aae28f9cac6d1aeb9" + integrity sha512-eDhZ7r6r1d1zQPVZehLc3D0K14vRba/eBYkz3rw16DLOrrTzve9RmnkcwrrkWVgO1FL3EK5knujVe5S8QHE9xw== dependencies: debug "^4.1.1" - istanbul-lib-coverage "^2.0.3" - make-dir "^1.3.0" + istanbul-lib-coverage "^2.0.4" + make-dir "^2.1.0" rimraf "^2.6.2" source-map "^0.6.1" -istanbul-reports@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.1.1.tgz#72ef16b4ecb9a4a7bd0e2001e00f95d1eec8afa9" - integrity sha512-FzNahnidyEPBCI0HcufJoSEoKykesRlFcSzQqjH9x0+LC8tnnE/p/90PBLu8iZTxr8yYZNyTtiAujUqyN+CIxw== +istanbul-reports@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.2.tgz#b84303c46fc0541c3c3b69abae687c42a6907d44" + integrity sha512-ZFuTdBQ3PSaPnm02aEA4R6mzQ2AF9w03CYiXADzWbbE48v/EFOWF4MaX4FT0NRdqIk48I7o0RPi+S8TMswaCbQ== dependencies: handlebars "^4.1.0" -jest-changed-files@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.5.0.tgz#4075269ee115d87194fd5822e642af22133cf705" - integrity sha512-Ikl29dosYnTsH9pYa1Tv9POkILBhN/TLZ37xbzgNsZ1D2+2n+8oEZS2yP1BrHn/T4Rs4Ggwwbp/x8CKOS5YJOg== +jest-changed-files@^24.7.0: + version "24.7.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.7.0.tgz#39d723a11b16ed7b373ac83adc76a69464b0c4fa" + integrity sha512-33BgewurnwSfJrW7T5/ZAXGE44o7swLslwh8aUckzq2e17/2Os1V0QU506ZNik3hjs8MgnEMKNkcud442NCDTw== dependencies: - "@jest/types" "^24.5.0" + "@jest/types" "^24.7.0" execa "^1.0.0" throat "^4.0.0" -jest-cli@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.5.0.tgz#598139d3446d1942fb7dc93944b9ba766d756d4b" - integrity sha512-P+Jp0SLO4KWN0cGlNtC7JV0dW1eSFR7eRpoOucP2UM0sqlzp/bVHeo71Omonvigrj9AvCKy7NtQANtqJ7FXz8g== +jest-cli@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.7.1.tgz#6093a539073b6f4953145abeeb9709cd621044f1" + integrity sha512-32OBoSCVPzcTslGFl6yVCMzB2SqX3IrWwZCY5mZYkb0D2WsogmU3eV2o8z7+gRQa4o4sZPX/k7GU+II7CxM6WQ== dependencies: - "@jest/core" "^24.5.0" - "@jest/test-result" "^24.5.0" - "@jest/types" "^24.5.0" + "@jest/core" "^24.7.1" + "@jest/test-result" "^24.7.1" + "@jest/types" "^24.7.0" chalk "^2.0.1" exit "^0.1.2" import-local "^2.0.0" is-ci "^2.0.0" - jest-config "^24.5.0" - jest-util "^24.5.0" - jest-validate "^24.5.0" + jest-config "^24.7.1" + jest-util "^24.7.1" + jest-validate "^24.7.0" prompts "^2.0.1" realpath-native "^1.1.0" yargs "^12.0.2" -jest-config@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.5.0.tgz#404d1bc6bb81aed6bd1890d07e2dca9fbba2e121" - integrity sha512-t2UTh0Z2uZhGBNVseF8wA2DS2SuBiLOL6qpLq18+OZGfFUxTM7BzUVKyHFN/vuN+s/aslY1COW95j1Rw81huOQ== +jest-config@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.7.1.tgz#6c1dd4db82a89710a3cf66bdba97827c9a1cf052" + integrity sha512-8FlJNLI+X+MU37j7j8RE4DnJkvAghXmBWdArVzypW6WxfGuxiL/CCkzBg0gHtXhD2rxla3IMOSUAHylSKYJ83g== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^24.5.0" - babel-jest "^24.5.0" + "@jest/test-sequencer" "^24.7.1" + "@jest/types" "^24.7.0" + babel-jest "^24.7.1" chalk "^2.0.1" glob "^7.1.1" - jest-environment-jsdom "^24.5.0" - jest-environment-node "^24.5.0" + jest-environment-jsdom "^24.7.1" + jest-environment-node "^24.7.1" jest-get-type "^24.3.0" - jest-jasmine2 "^24.5.0" + jest-jasmine2 "^24.7.1" jest-regex-util "^24.3.0" - jest-resolve "^24.5.0" - jest-util "^24.5.0" - jest-validate "^24.5.0" + jest-resolve "^24.7.1" + jest-util "^24.7.1" + jest-validate "^24.7.0" micromatch "^3.1.10" - pretty-format "^24.5.0" + pretty-format "^24.7.0" realpath-native "^1.1.0" -jest-diff@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.5.0.tgz#a2d8627964bb06a91893c0fbcb28ab228c257652" - integrity sha512-mCILZd9r7zqL9Uh6yNoXjwGQx0/J43OD2vvWVKwOEOLZliQOsojXwqboubAQ+Tszrb6DHGmNU7m4whGeB9YOqw== +jest-diff@^24.7.0: + version "24.7.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.7.0.tgz#5d862899be46249754806f66e5729c07fcb3580f" + integrity sha512-ULQZ5B1lWpH70O4xsANC4tf4Ko6RrpwhE3PtG6ERjMg1TiYTC2Wp4IntJVGro6a8HG9luYHhhmF4grF0Pltckg== dependencies: chalk "^2.0.1" diff-sequences "^24.3.0" jest-get-type "^24.3.0" - pretty-format "^24.5.0" + pretty-format "^24.7.0" jest-docblock@^24.3.0: version "24.3.0" @@ -5144,119 +5198,132 @@ jest-docblock@^24.3.0: dependencies: detect-newline "^2.1.0" -jest-each@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.5.0.tgz#da14d017a1b7d0f01fb458d338314cafe7f72318" - integrity sha512-6gy3Kh37PwIT5sNvNY2VchtIFOOBh8UCYnBlxXMb5sr5wpJUDPTUATX2Axq1Vfk+HWTMpsYPeVYp4TXx5uqUBw== +jest-each@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.7.1.tgz#fcc7dda4147c28430ad9fb6dc7211cd17ab54e74" + integrity sha512-4fsS8fEfLa3lfnI1Jw6NxjhyRTgfpuOVTeUZZFyVYqeTa4hPhr2YkToUhouuLTrL2eMGOfpbdMyRx0GQ/VooKA== dependencies: - "@jest/types" "^24.5.0" + "@jest/types" "^24.7.0" chalk "^2.0.1" jest-get-type "^24.3.0" - jest-util "^24.5.0" - pretty-format "^24.5.0" + jest-util "^24.7.1" + pretty-format "^24.7.0" -jest-environment-jsdom@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.5.0.tgz#1c3143063e1374100f8c2723a8b6aad23b6db7eb" - integrity sha512-62Ih5HbdAWcsqBx2ktUnor/mABBo1U111AvZWcLKeWN/n/gc5ZvDBKe4Og44fQdHKiXClrNGC6G0mBo6wrPeGQ== +jest-environment-jsdom-fourteen@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom-fourteen/-/jest-environment-jsdom-fourteen-0.1.0.tgz#aad6393a9d4b565b69a609109bf469f62bf18ccc" + integrity sha512-4vtoRMg7jAstitRzL4nbw83VmGH8Rs13wrND3Ud2o1fczDhMUF32iIrNKwYGgeOPUdfvZU4oy8Bbv+ni1fgVCA== dependencies: - "@jest/environment" "^24.5.0" - "@jest/fake-timers" "^24.5.0" - "@jest/types" "^24.5.0" jest-mock "^24.5.0" jest-util "^24.5.0" + jsdom "^14.0.0" + +jest-environment-jsdom@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.7.1.tgz#a40e004b4458ebeb8a98082df135fd501b9fbbd6" + integrity sha512-Gnhb+RqE2JuQGb3kJsLF8vfqjt3PHKSstq4Xc8ic+ax7QKo4Z0RWGucU3YV+DwKR3T9SYc+3YCUQEJs8r7+Jxg== + dependencies: + "@jest/environment" "^24.7.1" + "@jest/fake-timers" "^24.7.1" + "@jest/types" "^24.7.0" + jest-mock "^24.7.0" + jest-util "^24.7.1" jsdom "^11.5.1" -jest-environment-node@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.5.0.tgz#763eebdf529f75b60aa600c6cf8cb09873caa6ab" - integrity sha512-du6FuyWr/GbKLsmAbzNF9mpr2Iu2zWSaq/BNHzX+vgOcts9f2ayXBweS7RAhr+6bLp6qRpMB6utAMF5Ygktxnw== +jest-environment-node@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.7.1.tgz#fa2c047a31522a48038d26ee4f7c8fd9c1ecfe12" + integrity sha512-GJJQt1p9/C6aj6yNZMvovZuxTUd+BEJprETdvTKSb4kHcw4mFj8777USQV0FJoJ4V3djpOwA5eWyPwfq//PFBA== dependencies: - "@jest/environment" "^24.5.0" - "@jest/fake-timers" "^24.5.0" - "@jest/types" "^24.5.0" - jest-mock "^24.5.0" - jest-util "^24.5.0" + "@jest/environment" "^24.7.1" + "@jest/fake-timers" "^24.7.1" + "@jest/types" "^24.7.0" + jest-mock "^24.7.0" + jest-util "^24.7.1" jest-get-type@^24.3.0: version "24.3.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.3.0.tgz#582cfd1a4f91b5cdad1d43d2932f816d543c65da" integrity sha512-HYF6pry72YUlVcvUx3sEpMRwXEWGEPlJ0bSPVnB3b3n++j4phUEoSPcS6GC0pPJ9rpyPSe4cb5muFo6D39cXow== -jest-haste-map@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.5.0.tgz#3f17d0c548b99c0c96ed2893f9c0ccecb2eb9066" - integrity sha512-mb4Yrcjw9vBgSvobDwH8QUovxApdimGcOkp+V1ucGGw4Uvr3VzZQBJhNm1UY3dXYm4XXyTW2G7IBEZ9pM2ggRQ== +jest-haste-map@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.7.1.tgz#772e215cd84080d4bbcb759cfb668ad649a21471" + integrity sha512-g0tWkzjpHD2qa03mTKhlydbmmYiA2KdcJe762SbfFo/7NIMgBWAA0XqQlApPwkWOF7Cxoi/gUqL0i6DIoLpMBw== dependencies: - "@jest/types" "^24.5.0" + "@jest/types" "^24.7.0" + anymatch "^2.0.0" fb-watchman "^2.0.0" graceful-fs "^4.1.15" invariant "^2.2.4" jest-serializer "^24.4.0" - jest-util "^24.5.0" - jest-worker "^24.4.0" + jest-util "^24.7.1" + jest-worker "^24.6.0" micromatch "^3.1.10" sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^1.2.7" -jest-jasmine2@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.5.0.tgz#e6af4d7f73dc527d007cca5a5b177c0bcc29d111" - integrity sha512-sfVrxVcx1rNUbBeyIyhkqZ4q+seNKyAG6iM0S2TYBdQsXjoFDdqWFfsUxb6uXSsbimbXX/NMkJIwUZ1uT9+/Aw== +jest-jasmine2@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.7.1.tgz#01398686dabe46553716303993f3be62e5d9d818" + integrity sha512-Y/9AOJDV1XS44wNwCaThq4Pw3gBPiOv/s6NcbOAkVRRUEPu+36L2xoPsqQXsDrxoBerqeyslpn2TpCI8Zr6J2w== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^24.5.0" - "@jest/test-result" "^24.5.0" - "@jest/types" "^24.5.0" + "@jest/environment" "^24.7.1" + "@jest/test-result" "^24.7.1" + "@jest/types" "^24.7.0" chalk "^2.0.1" co "^4.6.0" - expect "^24.5.0" + expect "^24.7.1" is-generator-fn "^2.0.0" - jest-each "^24.5.0" - jest-matcher-utils "^24.5.0" - jest-message-util "^24.5.0" - jest-runtime "^24.5.0" - jest-snapshot "^24.5.0" - jest-util "^24.5.0" - pretty-format "^24.5.0" + jest-each "^24.7.1" + jest-matcher-utils "^24.7.0" + jest-message-util "^24.7.1" + jest-runtime "^24.7.1" + jest-snapshot "^24.7.1" + jest-util "^24.7.1" + pretty-format "^24.7.0" throat "^4.0.0" -jest-leak-detector@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.5.0.tgz#21ae2b3b0da252c1171cd494f75696d65fb6fa89" - integrity sha512-LZKBjGovFRx3cRBkqmIg+BZnxbrLqhQl09IziMk3oeh1OV81Hg30RUIx885mq8qBv1PA0comB9bjKcuyNO1bCQ== +jest-leak-detector@^24.7.0: + version "24.7.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.7.0.tgz#323ff93ed69be12e898f5b040952f08a94288ff9" + integrity sha512-zV0qHKZGXtmPVVzT99CVEcHE9XDf+8LwiE0Ob7jjezERiGVljmqKFWpV2IkG+rkFIEUHFEkMiICu7wnoPM/RoQ== dependencies: - pretty-format "^24.5.0" + pretty-format "^24.7.0" -jest-matcher-utils@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.5.0.tgz#5995549dcf09fa94406e89526e877b094dad8770" - integrity sha512-QM1nmLROjLj8GMGzg5VBra3I9hLpjMPtF1YqzQS3rvWn2ltGZLrGAO1KQ9zUCVi5aCvrkbS5Ndm2evIP9yZg1Q== +jest-matcher-utils@^24.7.0: + version "24.7.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.7.0.tgz#bbee1ff37bc8b2e4afcaabc91617c1526af4bcd4" + integrity sha512-158ieSgk3LNXeUhbVJYRXyTPSCqNgVXOp/GT7O94mYd3pk/8+odKTyR1JLtNOQSPzNi8NFYVONtvSWA/e1RDXg== dependencies: chalk "^2.0.1" - jest-diff "^24.5.0" + jest-diff "^24.7.0" jest-get-type "^24.3.0" - pretty-format "^24.5.0" + pretty-format "^24.7.0" -jest-message-util@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.5.0.tgz#181420a65a7ef2e8b5c2f8e14882c453c6d41d07" - integrity sha512-6ZYgdOojowCGiV0D8WdgctZEAe+EcFU+KrVds+0ZjvpZurUW2/oKJGltJ6FWY2joZwYXN5VL36GPV6pNVRqRnQ== +jest-message-util@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.7.1.tgz#f1dc3a6c195647096a99d0f1dadbc447ae547018" + integrity sha512-dk0gqVtyqezCHbcbk60CdIf+8UHgD+lmRHifeH3JRcnAqh4nEyPytSc9/L1+cQyxC+ceaeP696N4ATe7L+omcg== dependencies: "@babel/code-frame" "^7.0.0" - "@jest/test-result" "^24.5.0" - "@jest/types" "^24.5.0" + "@jest/test-result" "^24.7.1" + "@jest/types" "^24.7.0" "@types/stack-utils" "^1.0.1" chalk "^2.0.1" micromatch "^3.1.10" slash "^2.0.0" stack-utils "^1.0.1" -jest-mock@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.5.0.tgz#976912c99a93f2a1c67497a9414aa4d9da4c7b76" - integrity sha512-ZnAtkWrKf48eERgAOiUxVoFavVBziO2pAi2MfZ1+bGXVkDfxWLxU0//oJBkgwbsv6OAmuLBz4XFFqvCFMqnGUw== +jest-mock@^24.5.0, jest-mock@^24.7.0: + version "24.7.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.7.0.tgz#e49ce7262c12d7f5897b0d8af77f6db8e538023b" + integrity sha512-6taW4B4WUcEiT2V9BbOmwyGuwuAFT2G8yghF7nyNW1/2gq5+6aTqSPcS9lS6ArvEkX55vbPAS/Jarx5LSm4Fng== dependencies: - "@jest/types" "^24.5.0" + "@jest/types" "^24.7.0" jest-pnp-resolver@^1.2.1: version "1.2.1" @@ -5268,75 +5335,75 @@ jest-regex-util@^24.3.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.3.0.tgz#d5a65f60be1ae3e310d5214a0307581995227b36" integrity sha512-tXQR1NEOyGlfylyEjg1ImtScwMq8Oh3iJbGTjN7p0J23EuVX1MA8rwU69K4sLbCmwzgCUbVkm0FkSF9TdzOhtg== -jest-resolve-dependencies@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.5.0.tgz#1a0dae9cdd41349ca4a84148b3e78da2ba33fd4b" - integrity sha512-dRVM1D+gWrFfrq2vlL5P9P/i8kB4BOYqYf3S7xczZ+A6PC3SgXYSErX/ScW/469pWMboM1uAhgLF+39nXlirCQ== +jest-resolve-dependencies@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.7.1.tgz#cf93bbef26999488a96a2b2012f9fe7375aa378f" + integrity sha512-2Eyh5LJB2liNzfk4eo7bD1ZyBbqEJIyyrFtZG555cSWW9xVHxII2NuOkSl1yUYTAYCAmM2f2aIT5A7HzNmubyg== dependencies: - "@jest/types" "^24.5.0" + "@jest/types" "^24.7.0" jest-regex-util "^24.3.0" - jest-snapshot "^24.5.0" + jest-snapshot "^24.7.1" -jest-resolve@24.5.0, jest-resolve@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.5.0.tgz#8c16ba08f60a1616c3b1cd7afb24574f50a24d04" - integrity sha512-ZIfGqLX1Rg8xJpQqNjdoO8MuxHV1q/i2OO1hLXjgCWFWs5bsedS8UrOdgjUqqNae6DXA+pCyRmdcB7lQEEbXew== +jest-resolve@24.7.1, jest-resolve@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.7.1.tgz#e4150198299298380a75a9fd55043fa3b9b17fde" + integrity sha512-Bgrc+/UUZpGJ4323sQyj85hV9d+ANyPNu6XfRDUcyFNX1QrZpSoM0kE4Mb2vZMAYTJZsBFzYe8X1UaOkOELSbw== dependencies: - "@jest/types" "^24.5.0" + "@jest/types" "^24.7.0" browser-resolve "^1.11.3" chalk "^2.0.1" jest-pnp-resolver "^1.2.1" realpath-native "^1.1.0" -jest-runner@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.5.0.tgz#9be26ece4fd4ab3dfb528b887523144b7c5ffca8" - integrity sha512-oqsiS9TkIZV5dVkD+GmbNfWBRPIvxqmlTQ+AQUJUQ07n+4xTSDc40r+aKBynHw9/tLzafC00DIbJjB2cOZdvMA== +jest-runner@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.7.1.tgz#41c8a02a06aa23ea82d8bffd69d7fa98d32f85bf" + integrity sha512-aNFc9liWU/xt+G9pobdKZ4qTeG/wnJrJna3VqunziDNsWT3EBpmxXZRBMKCsNMyfy+A/XHiV+tsMLufdsNdgCw== dependencies: - "@jest/console" "^24.3.0" - "@jest/environment" "^24.5.0" - "@jest/test-result" "^24.5.0" - "@jest/types" "^24.5.0" + "@jest/console" "^24.7.1" + "@jest/environment" "^24.7.1" + "@jest/test-result" "^24.7.1" + "@jest/types" "^24.7.0" chalk "^2.4.2" exit "^0.1.2" graceful-fs "^4.1.15" - jest-config "^24.5.0" + jest-config "^24.7.1" jest-docblock "^24.3.0" - jest-haste-map "^24.5.0" - jest-jasmine2 "^24.5.0" - jest-leak-detector "^24.5.0" - jest-message-util "^24.5.0" - jest-resolve "^24.5.0" - jest-runtime "^24.5.0" - jest-util "^24.5.0" - jest-worker "^24.4.0" + jest-haste-map "^24.7.1" + jest-jasmine2 "^24.7.1" + jest-leak-detector "^24.7.0" + jest-message-util "^24.7.1" + jest-resolve "^24.7.1" + jest-runtime "^24.7.1" + jest-util "^24.7.1" + jest-worker "^24.6.0" source-map-support "^0.5.6" throat "^4.0.0" -jest-runtime@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.5.0.tgz#3a76e0bfef4db3896d5116e9e518be47ba771aa2" - integrity sha512-GTFHzfLdwpaeoDPilNpBrorlPoNZuZrwKKzKJs09vWwHo+9TOsIIuszK8cWOuKC7ss07aN1922Ge8fsGdsqCuw== +jest-runtime@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.7.1.tgz#2ffd70b22dd03a5988c0ab9465c85cdf5d25c597" + integrity sha512-0VAbyBy7tll3R+82IPJpf6QZkokzXPIS71aDeqh+WzPRXRCNz6StQ45otFariPdJ4FmXpDiArdhZrzNAC3sj6A== dependencies: - "@jest/console" "^24.3.0" - "@jest/environment" "^24.5.0" + "@jest/console" "^24.7.1" + "@jest/environment" "^24.7.1" "@jest/source-map" "^24.3.0" - "@jest/transform" "^24.5.0" - "@jest/types" "^24.5.0" + "@jest/transform" "^24.7.1" + "@jest/types" "^24.7.0" "@types/yargs" "^12.0.2" chalk "^2.0.1" exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.1.15" - jest-config "^24.5.0" - jest-haste-map "^24.5.0" - jest-message-util "^24.5.0" - jest-mock "^24.5.0" + jest-config "^24.7.1" + jest-haste-map "^24.7.1" + jest-message-util "^24.7.1" + jest-mock "^24.7.0" jest-regex-util "^24.3.0" - jest-resolve "^24.5.0" - jest-snapshot "^24.5.0" - jest-util "^24.5.0" - jest-validate "^24.5.0" + jest-resolve "^24.7.1" + jest-snapshot "^24.7.1" + jest-util "^24.7.1" + jest-validate "^24.7.0" realpath-native "^1.1.0" slash "^2.0.0" strip-bom "^3.0.0" @@ -5347,35 +5414,34 @@ jest-serializer@^24.4.0: resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.4.0.tgz#f70c5918c8ea9235ccb1276d232e459080588db3" integrity sha512-k//0DtglVstc1fv+GY/VHDIjrtNjdYvYjMlbLUed4kxrE92sIUewOi5Hj3vrpB8CXfkJntRPDRjCrCvUhBdL8Q== -jest-snapshot@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.5.0.tgz#e5d224468a759fd19e36f01217aac912f500f779" - integrity sha512-eBEeJb5ROk0NcpodmSKnCVgMOo+Qsu5z9EDl3tGffwPzK1yV37mjGWF2YeIz1NkntgTzP+fUL4s09a0+0dpVWA== +jest-snapshot@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.7.1.tgz#bd5a35f74aedff070975e9e9c90024f082099568" + integrity sha512-8Xk5O4p+JsZZn4RCNUS3pxA+ORKpEKepE+a5ejIKrId9CwrVN0NY+vkqEkXqlstA5NMBkNahXkR/4qEBy0t5yA== dependencies: "@babel/types" "^7.0.0" - "@jest/types" "^24.5.0" + "@jest/types" "^24.7.0" chalk "^2.0.1" - expect "^24.5.0" - jest-diff "^24.5.0" - jest-matcher-utils "^24.5.0" - jest-message-util "^24.5.0" - jest-resolve "^24.5.0" + expect "^24.7.1" + jest-diff "^24.7.0" + jest-matcher-utils "^24.7.0" + jest-message-util "^24.7.1" + jest-resolve "^24.7.1" mkdirp "^0.5.1" natural-compare "^1.4.0" - pretty-format "^24.5.0" + pretty-format "^24.7.0" semver "^5.5.0" -jest-util@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.5.0.tgz#9d9cb06d9dcccc8e7cc76df91b1635025d7baa84" - integrity sha512-Xy8JsD0jvBz85K7VsTIQDuY44s+hYJyppAhcsHsOsGisVtdhar6fajf2UOf2mEVEgh15ZSdA0zkCuheN8cbr1Q== +jest-util@^24.5.0, jest-util@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.7.1.tgz#b4043df57b32a23be27c75a2763d8faf242038ff" + integrity sha512-/KilOue2n2rZ5AnEBYoxOXkeTu6vi7cjgQ8MXEkih0oeAXT6JkS3fr7/j8+engCjciOU1Nq5loMSKe0A1oeX0A== dependencies: - "@jest/console" "^24.3.0" - "@jest/fake-timers" "^24.5.0" + "@jest/console" "^24.7.1" + "@jest/fake-timers" "^24.7.1" "@jest/source-map" "^24.3.0" - "@jest/test-result" "^24.5.0" - "@jest/types" "^24.5.0" - "@types/node" "*" + "@jest/test-result" "^24.7.1" + "@jest/types" "^24.7.0" callsites "^3.0.0" chalk "^2.0.1" graceful-fs "^4.1.15" @@ -5384,78 +5450,67 @@ jest-util@^24.5.0: slash "^2.0.0" source-map "^0.6.0" -jest-validate@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.5.0.tgz#62fd93d81214c070bb2d7a55f329a79d8057c7de" - integrity sha512-gg0dYszxjgK2o11unSIJhkOFZqNRQbWOAB2/LOUdsd2LfD9oXiMeuee8XsT0iRy5EvSccBgB4h/9HRbIo3MHgQ== +jest-validate@^24.7.0: + version "24.7.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.7.0.tgz#70007076f338528ee1b1c8a8258b1b0bb982508d" + integrity sha512-cgai/gts9B2chz1rqVdmLhzYxQbgQurh1PEQSvSgPZ8KGa1AqXsqC45W5wKEwzxKrWqypuQrQxnF4+G9VejJJA== dependencies: - "@jest/types" "^24.5.0" + "@jest/types" "^24.7.0" camelcase "^5.0.0" chalk "^2.0.1" jest-get-type "^24.3.0" leven "^2.1.0" - pretty-format "^24.5.0" + pretty-format "^24.7.0" -jest-watch-typeahead@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-0.2.1.tgz#6c40f232996ca6c39977e929e9f79b189e7d87e4" - integrity sha512-xdhEtKSj0gmnkDQbPTIHvcMmXNUDzYpHLEJ5TFqlaI+schi2NI96xhWiZk9QoesAS7oBmKwWWsHazTrYl2ORgg== +jest-watch-typeahead@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-0.3.0.tgz#f56d9ee17ea71ecbf8253fed213df3185a1584c9" + integrity sha512-+uOtlppt9ysST6k6ZTqsPI0WNz2HLa8bowiZylZoQCQaAVn7XsVmHhZREkz73FhKelrFrpne4hQQjdq42nFEmA== dependencies: ansi-escapes "^3.0.0" chalk "^2.4.1" - jest-watcher "^23.1.0" + jest-watcher "^24.3.0" slash "^2.0.0" string-length "^2.0.0" strip-ansi "^5.0.0" -jest-watcher@^23.1.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= - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.1" - string-length "^2.0.0" - -jest-watcher@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.5.0.tgz#da7bd9cb5967e274889b42078c8f501ae1c47761" - integrity sha512-/hCpgR6bg0nKvD3nv4KasdTxuhwfViVMHUATJlnGCD0r1QrmIssimPbmc5KfAQblAVxkD8xrzuij9vfPUk1/rA== +jest-watcher@^24.3.0, jest-watcher@^24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.7.1.tgz#e161363d7f3f4e1ef3d389b7b3a0aad247b673f5" + integrity sha512-Wd6TepHLRHVKLNPacEsBwlp9raeBIO+01xrN24Dek4ggTS8HHnOzYSFnvp+6MtkkJ3KfMzy220KTi95e2rRkrw== dependencies: - "@jest/test-result" "^24.5.0" - "@jest/types" "^24.5.0" - "@types/node" "*" + "@jest/test-result" "^24.7.1" + "@jest/types" "^24.7.0" "@types/yargs" "^12.0.9" ansi-escapes "^3.0.0" chalk "^2.0.1" - jest-util "^24.5.0" + jest-util "^24.7.1" string-length "^2.0.0" -jest-worker@^24.4.0: - version "24.4.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.4.0.tgz#fbc452b0120bb5c2a70cdc88fa132b48eeb11dd0" - integrity sha512-BH9X/klG9vxwoO99ZBUbZFfV8qO0XNZ5SIiCyYK2zOuJBl6YJVAeNIQjcoOVNu4HGEHeYEKsUWws8kSlSbZ9YQ== +jest-worker@^24.6.0: + version "24.6.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.6.0.tgz#7f81ceae34b7cde0c9827a6980c35b7cdc0161b3" + integrity sha512-jDwgW5W9qGNvpI1tNnvajh0a5IE/PuGLFmHk6aR/BZFz8tSgGw17GsDPXAJ6p91IvYDjOw8GpFbvvZGAK+DPQQ== dependencies: - "@types/node" "*" merge-stream "^1.0.1" supports-color "^6.1.0" -jest@24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-24.5.0.tgz#38f11ae2c2baa2f86c2bc4d8a91d2b51612cd19a" - integrity sha512-lxL+Fq5/RH7inxxmfS2aZLCf8MsS+YCUBfeiNO6BWz/MmjhDGaIEA/2bzEf9q4Q0X+mtFHiinHFvQ0u+RvW/qQ== +jest@24.7.1: + version "24.7.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-24.7.1.tgz#0d94331cf510c75893ee32f87d7321d5bf8f2501" + integrity sha512-AbvRar5r++izmqo5gdbAjTeA6uNRGoNRuj5vHB0OnDXo2DXWZJVuaObiGgtlvhKb+cWy2oYbQSfxv7Q7GjnAtA== dependencies: import-local "^2.0.0" - jest-cli "^24.5.0" + jest-cli "^24.7.1" -joi@^11.1.1: - version "11.4.0" - resolved "https://registry.yarnpkg.com/joi/-/joi-11.4.0.tgz#f674897537b625e9ac3d0b7e1604c828ad913ccb" - integrity sha512-O7Uw+w/zEWgbL6OcHbyACKSj0PkQeUgmehdoXVSxt92QFCq4+1390Rwh5moI2K/OgC7D8RHRZqHZxT2husMJHA== +joi@^14.3.1: + version "14.3.1" + resolved "https://registry.yarnpkg.com/joi/-/joi-14.3.1.tgz#164a262ec0b855466e0c35eea2a885ae8b6c703c" + integrity sha512-LQDdM+pkOrpAn4Lp+neNIFV3axv1Vna3j38bisbQhETPMANYRbFJFUyOZcOClYvM/hppMhGWuKSFEK9vjrB+bQ== dependencies: - hoek "4.x.x" + hoek "6.x.x" isemail "3.x.x" - topo "2.x.x" + topo "3.x.x" js-levenshtein@^1.1.3: version "1.1.6" @@ -5472,10 +5527,10 @@ 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.9.0: - version "3.12.2" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.2.tgz#ef1d067c5a9d9cb65bd72f285b5d8105c77f14fc" - integrity sha512-QHn/Lh/7HhZ/Twc7vJYQTkjuCa0kaCcDcjK5Zlk2rvnUpy7DxMJ23+Jc2dcyvltwQVg1nygAVlB2oRDFHoRS5Q== +js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.9.0: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -5517,6 +5572,38 @@ jsdom@^11.5.1: ws "^5.2.0" xml-name-validator "^3.0.0" +jsdom@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-14.0.0.tgz#c7f1441ebcc57902d08d5fb2f6ba2baf746da7c6" + integrity sha512-/VkyPmdtbwqpJSkwDx3YyJ3U1oawYNB/h5z8vTUZGAzjtu2OHTeFRfnJqyMHsJ5Cyes23trOmvUpM1GfHH1leA== + dependencies: + abab "^2.0.0" + acorn "^6.0.4" + acorn-globals "^4.3.0" + array-equal "^1.0.0" + cssom "^0.3.4" + cssstyle "^1.1.1" + data-urls "^1.1.0" + domexception "^1.0.1" + escodegen "^1.11.0" + html-encoding-sniffer "^1.0.2" + nwsapi "^2.0.9" + parse5 "5.1.0" + pn "^1.1.0" + request "^2.88.0" + request-promise-native "^1.0.5" + saxes "^3.1.5" + symbol-tree "^3.2.2" + tough-cookie "^2.5.0" + w3c-hr-time "^1.0.1" + w3c-xmlserializer "^1.0.1" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^7.0.0" + ws "^6.1.2" + xml-name-validator "^3.0.0" + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -5644,9 +5731,9 @@ kind-of@^6.0.0, kind-of@^6.0.2: integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== kleur@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.2.tgz#83c7ec858a41098b613d5998a7b653962b504f68" - integrity sha512-3h7B2WRT5LNXOtQiAaWonilegHcPSf9nLVXlSTci8lu1dZUuui61+EsPEZqSVxY7rXYmB2DVKMQILxaO5WL61Q== + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== last-call-webpack-plugin@^3.0.0: version "3.0.0" @@ -5712,9 +5799,9 @@ load-json-file@^4.0.0: strip-bom "^3.0.0" loader-fs-cache@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz#56e0bf08bd9708b26a765b68509840c8dec9fdbc" - integrity sha1-VuC/CL2XCLJqdltoUJhAyN7J/bw= + version "1.0.2" + resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.2.tgz#54cedf6b727e1779fd8f01205f05f6e88706f086" + integrity sha512-70IzT/0/L+M20jUlEqZhZyArTU6VKLRTYRDAYN26g4jfzpJqjipLL3/hgYpySqI9PwsVRHHFja0LfEmsx9X2Cw== dependencies: find-cache-dir "^0.1.1" mkdirp "0.5.1" @@ -5754,16 +5841,6 @@ lodash._reinterpolate@~3.0.0: resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= -lodash.get@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= - -lodash.get@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= - lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" @@ -5833,14 +5910,7 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -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== - dependencies: - pify "^3.0.0" - -make-dir@^2.0.0: +make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== @@ -5899,9 +5969,9 @@ media-typer@0.3.0: integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= mem@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.2.0.tgz#5ee057680ed9cb8dad8a78d820f9a8897a102025" - integrity sha512-5fJxa68urlY0Ir8ijatKa3eRz5lwXnRCTvo9+TbTGAuTFJOwpGcY0X05moBd0nW45965Njt4CDI2GFQoG8DvqA== + version "4.3.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== dependencies: map-age-cleaner "^0.1.1" mimic-fn "^2.0.0" @@ -5973,7 +6043,12 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -"mime-db@>= 1.38.0 < 2", mime-db@~1.38.0: +"mime-db@>= 1.38.0 < 2": + version "1.39.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.39.0.tgz#f95a20275742f7d2ad0429acfe40f4233543780e" + integrity sha512-DTsrw/iWVvwHH+9Otxccdyy0Tgiil6TWK/xhfARJZF/QFhwOgZgOIvA2/VIGpM8U7Q8z5nDmdDWC6tuVMJNibw== + +mime-db@~1.38.0: version "1.38.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.38.0.tgz#1a2aab16da9eb167b49c6e4df2d9c68d63d8e2ad" integrity sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg== @@ -5991,9 +6066,9 @@ mime@1.4.1: integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== mime@^2.0.3, mime@^2.3.1: - version "2.4.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.0.tgz#e051fd881358585f3279df333fe694da0bcffdd6" - integrity sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w== + version "2.4.2" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.2.tgz#ce5229a5e99ffc313abac806b482c10e7ba6ac78" + integrity sha512-zJBfZDkwRu+j3Pdd2aHsR5GfH2jIWhmL1ZzBoc+X+3JEti2hbArWcyJ+1laC1D2/U/W1a/+Cegj0/OnEU2ybjg== mimic-fn@^1.0.0: version "1.2.0" @@ -6001,9 +6076,9 @@ mimic-fn@^1.0.0: integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== mimic-fn@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.0.0.tgz#0913ff0b121db44ef5848242c38bbb35d44cabde" - integrity sha512-jbex9Yd/3lmICXwYT6gA/j2mNQGU48wCh/VzRd+/Y/PjYQtlg1gLMdZqvu9s/xH7qKvngxRObl56XZR609IMbA== + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== mini-css-extract-plugin@0.5.0: version "0.5.0" @@ -6140,10 +6215,10 @@ mute-stream@0.0.7: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= -nan@^2.9.2: - version "2.13.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.1.tgz#a15bee3790bde247e8f38f1d446edcdaeb05f2dd" - integrity sha512-I6YB/YEuDeUZMmhscXKxGgZlFnhsn5y0hgOZBadkzfTRrZBtJDZeg6eQf7PYMIEclwmorTKK8GztsyOUSVBREA== +nan@^2.12.1: + version "2.13.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7" + integrity sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw== nanomatch@^1.2.9: version "1.2.13" @@ -6168,11 +6243,11 @@ natural-compare@^1.4.0: integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= needle@^2.2.1: - version "2.2.4" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e" - integrity sha512-HyoqEb4wr/rsoaIDfTH2aVL9nWtQqba2/HvMv+++m8u0dz808MaagKILxtfeSN7QU7nvbQ79zk3vYOJp9zsNEA== + version "2.3.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.0.tgz#ce3fea21197267bacb310705a7bbe24f2a3a3492" + integrity sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg== dependencies: - debug "^2.1.2" + debug "^4.1.0" iconv-lite "^0.4.4" sax "^1.2.4" @@ -6181,7 +6256,7 @@ negotiator@0.6.1: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" integrity sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk= -neo-async@^2.5.0: +neo-async@^2.5.0, neo-async@^2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" integrity sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA== @@ -6253,10 +6328,10 @@ node-notifier@^5.2.1: shellwords "^0.1.1" which "^1.3.0" -node-pre-gyp@^0.10.0: - version "0.10.3" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" - integrity sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A== +node-pre-gyp@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" + integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== dependencies: detect-libc "^1.0.2" mkdirp "^0.5.1" @@ -6269,10 +6344,10 @@ node-pre-gyp@^0.10.0: semver "^5.3.0" tar "^4" -node-releases@^1.1.3, node-releases@^1.1.8: - version "1.1.10" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.10.tgz#5dbeb6bc7f4e9c85b899e2e7adcc0635c9b2adf7" - integrity sha512-KbUPCpfoBvb3oBkej9+nrU0/7xPlVhmhhUJ1PZqwIP5/1dJkRWKWD3OONjo6M2J7tSCBtDCumLwwqeI+DWWaLQ== +node-releases@^1.1.14, node-releases@^1.1.3: + version "1.1.15" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.15.tgz#9e76a73b0eca3bf7801addaa0e6ce90c795f2b9a" + integrity sha512-cKV097BQaZr8LTSRUa2+oc/aX5L8UkZtPQrMSTgiJEeaW7ymTDCoRaGCoaTqk0lqnalcoSHu4wjSl0Cmj2+bMw== dependencies: semver "^5.3.0" @@ -6363,10 +6438,10 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= -nwsapi@^2.0.7: - version "2.1.1" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.1.1.tgz#08d6d75e69fd791bdea31507ffafe8c843b67e9c" - integrity sha512-T5GaA1J/d34AC8mkrFD2O0DR17kwJ702ZOtJOsS8RpbsQZVOC2/xYFb1i/cw+xdM54JIlMuojjDOYct8GIWtwg== +nwsapi@^2.0.7, nwsapi@^2.0.9: + version "2.1.3" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.1.3.tgz#25f3a5cec26c654f7376df6659cdf84b99df9558" + integrity sha512-RowAaJGEgYXEZfQ7tvvdtAQUKPyTR6T6wNu0fwlNsGQYr/h3yQc6oI8WnVZh3Y/Sylwc+dtAlvPqfFZjhTyk3A== oauth-sign@~0.9.0: version "0.9.0" @@ -6393,9 +6468,9 @@ object-hash@^1.1.4: integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== object-keys@^1.0.11, object-keys@^1.0.12: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.0.tgz#11bd22348dd2e096a045ab06f6c85bcc340fa032" - integrity sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg== + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object-visit@^1.0.0: version "1.0.1" @@ -6461,7 +6536,7 @@ on-finished@~2.3.0: dependencies: ee-first "1.1.1" -on-headers@~1.0.1: +on-headers@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== @@ -6480,13 +6555,20 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" -opn@5.4.0, opn@^5.1.0: +opn@5.4.0: version "5.4.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.4.0.tgz#cb545e7aab78562beb11aa3bfabc7042e1761035" integrity sha512-YF9MNdVy/0qvJvDtunAOzFw9iasOQHpVthTCvGzxt61Il64AYSGdK+rYwld7NAfk9qJ7dt+hymBNSc9LNYS+Sw== dependencies: is-wsl "^1.1.0" +opn@^5.1.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== + dependencies: + is-wsl "^1.1.0" + optimist@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" @@ -6572,9 +6654,9 @@ p-finally@^1.0.0: integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= p-is-promise@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.0.0.tgz#7554e3d572109a87e1f3f53f6a7d85d1b194f4c5" - integrity sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg== + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== p-limit@^1.1.0: version "1.3.0" @@ -6620,9 +6702,9 @@ p-try@^1.0.0: integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= p-try@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" - integrity sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ== + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== pako@~1.0.5: version "1.0.10" @@ -6646,9 +6728,9 @@ param-case@2.1.x: no-case "^2.2.0" parent-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.0.tgz#df250bdc5391f4a085fb589dad761f5ad6b865b5" - integrity sha512-8Mf5juOMmiE4FcmzYc4IaiS9L3+9paz2KOiXzkRviCP6aDmN49Hz6EMWz0lGNp9pX80GvvAuLADtyGfW/Em3TA== + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" @@ -6684,15 +6766,15 @@ parse5@4.0.0: resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== -parse5@^5.0.0: +parse5@5.1.0, parse5@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== parseurl@~1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" - integrity sha1-/CidTtiZMRlGDBViUyYs3I3mW/M= + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== pascalcase@^0.1.1: version "0.1.1" @@ -6872,6 +6954,13 @@ postcss-attribute-case-insensitive@^4.0.1: postcss "^7.0.2" postcss-selector-parser "^5.0.0" +postcss-browser-comments@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-browser-comments/-/postcss-browser-comments-2.0.0.tgz#dc48d6a8ddbff188a80a000b7393436cb18aed88" + integrity sha512-xGG0UvoxwBc4Yx4JX3gc0RuDl1kc4bVihCzzk6UC72YPfq5fu3c717Nu8Un3nvnq1BJ31gBnFXIG/OaUTnpHgA== + dependencies: + postcss "^7.0.2" + postcss-calc@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436" @@ -6900,12 +6989,12 @@ postcss-color-gray@^5.0.0: postcss-values-parser "^2.0.0" postcss-color-hex-alpha@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.2.tgz#e9b1886bb038daed33f6394168c210b40bb4fdb6" - integrity sha512-8bIOzQMGdZVifoBQUJdw+yIY00omBd2EwkJXepQo9cjp1UOHHHoeRDeSzTP6vakEpaRc6GAIOfvcQR7jBYaG5Q== + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz#a8d9ca4c39d497c9661e374b9c51899ef0f87388" + integrity sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw== dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" + postcss "^7.0.14" + postcss-values-parser "^2.0.1" postcss-color-mod-function@^3.0.3: version "3.0.3" @@ -6944,19 +7033,19 @@ postcss-convert-values@^4.0.1: postcss-value-parser "^3.0.0" postcss-custom-media@^7.0.7: - version "7.0.7" - resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.7.tgz#bbc698ed3089ded61aad0f5bfb1fb48bf6969e73" - integrity sha512-bWPCdZKdH60wKOTG4HKEgxWnZVjAIVNOJDvi3lkuTa90xo/K0YHa2ZnlKLC5e2qF8qCcMQXt0yzQITBp8d0OFA== + version "7.0.8" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz#fffd13ffeffad73621be5f387076a28b00294e0c" + integrity sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg== dependencies: - postcss "^7.0.5" + postcss "^7.0.14" postcss-custom-properties@^8.0.9: - version "8.0.9" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.9.tgz#8943870528a6eae4c8e8d285b6ccc9fd1f97e69c" - integrity sha512-/Lbn5GP2JkKhgUO2elMs4NnbUJcvHX4AaF5nuJDaNkd2chYW1KA5qtOGGgdkBEWcXtKSQfHXzT7C6grEVyb13w== + version "8.0.10" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.10.tgz#e8dc969e1e15c555f0b836b7f278ef47e3cdeaff" + integrity sha512-GDL0dyd7++goDR4SSasYdRNNvp4Gqy1XMzcCnTijiph7VB27XXpJ8bW/AI0i2VSBZ55TpdGhMr37kMSpRfYD0Q== dependencies: - postcss "^7.0.5" - postcss-values-parser "^2.0.0" + postcss "^7.0.14" + postcss-values-parser "^2.0.1" postcss-custom-selectors@^5.1.2: version "5.1.2" @@ -7292,6 +7381,16 @@ postcss-normalize-whitespace@^4.0.2: postcss "^7.0.0" postcss-value-parser "^3.0.0" +postcss-normalize@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize/-/postcss-normalize-7.0.1.tgz#eb51568d962b8aa61a8318383c8bb7e54332282e" + integrity sha512-NOp1fwrG+6kVXWo7P9SizCHX6QvioxFD/hZcI2MLxPmVnFJFC0j0DDpIuNw2tUDeCFMni59gCVgeJ1/hYhj2OQ== + dependencies: + "@csstools/normalize.css" "^9.0.1" + browserslist "^4.1.1" + postcss "^7.0.2" + postcss-browser-comments "^2.0.0" + postcss-ordered-values@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" @@ -7475,7 +7574,7 @@ postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0, postcss-value-parser@^ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== -postcss-values-parser@^2.0.0: +postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== @@ -7498,10 +7597,10 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -pretty-bytes@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9" - integrity sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk= +pretty-bytes@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.1.0.tgz#6237ecfbdc6525beaef4de722cc60a58ae0e6c6d" + integrity sha512-wa5+qGVg9Yt7PB6rYm3kXlKzgzgivYTLRandezh43jjRqgyDyP+9YxfJpJiLs9yKD1WeU8/OvtToWpW7255FtA== pretty-error@^2.1.1: version "2.1.1" @@ -7511,12 +7610,12 @@ pretty-error@^2.1.1: renderkid "^2.0.1" utila "~0.4" -pretty-format@^24.5.0: - version "24.5.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.5.0.tgz#cc69a0281a62cd7242633fc135d6930cd889822d" - integrity sha512-/3RuSghukCf8Riu5Ncve0iI+BzVkbRU5EeUoArKARZobREycuH5O4waxvaNIloEXdb0qwgmEAed5vTpX1HNROQ== +pretty-format@^24.7.0: + version "24.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.7.0.tgz#d23106bc2edcd776079c2daa5da02bcb12ed0c10" + integrity sha512-apen5cjf/U4dj7tHetpC7UEFCvtAgnNZnBDkfPv3fokzIqyOJckAG9OlAPC1BlFALnqT/lGB2tl9EJjlK6eCsA== dependencies: - "@jest/types" "^24.5.0" + "@jest/types" "^24.7.0" ansi-regex "^4.0.0" ansi-styles "^3.2.0" react-is "^16.8.4" @@ -7554,9 +7653,9 @@ promise@8.0.2: asap "~2.0.6" prompts@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.0.3.tgz#c5ccb324010b2e8f74752aadceeb57134c1d2522" - integrity sha512-H8oWEoRZpybm6NV4to9/1limhttEo13xK62pNvn2JzY0MA03p7s0OjtmhXyon3uJmxiJJVSuUwEJFFssI3eBiQ== + version "2.0.4" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.0.4.tgz#179f9d4db3128b9933aa35f93a800d8fce76a682" + integrity sha512-HTzM3UWp/99A0gk51gAegwo1QRYA7xjcZufMNe33rCclFszUYAuHe1fIN/3ZmiHeGPkUsNaRyQm1hHOfM0PKxA== dependencies: kleur "^3.0.2" sisteransi "^1.0.0" @@ -7578,12 +7677,12 @@ property-information@^5.0.0, property-information@^5.0.1: xtend "^4.0.1" proxy-addr@~2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93" - integrity sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA== + version "2.0.5" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" + integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== dependencies: forwarded "~0.1.2" - ipaddr.js "1.8.0" + ipaddr.js "1.9.0" prr@~1.0.1: version "1.0.1" @@ -7668,9 +7767,9 @@ querystring@0.2.0: integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= querystringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.0.tgz#7ded8dfbf7879dcc60d0a644ac6754b283ad17ef" - integrity sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg== + version "2.1.1" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" + integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== raf@3.4.1: version "3.4.1" @@ -7767,9 +7866,9 @@ react-error-overlay@^5.1.4: integrity sha512-fp+U98OMZcnduQ+NSEiQa4s/XMsbp+5KlydmkbESOw4P69iWZ68ZMFM5a2BuE0FgqPBKApJyRuYHR95jM8lAmg== react-is@^16.8.1, react-is@^16.8.4: - version "16.8.4" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.4.tgz#90f336a68c3a29a096a3d648ab80e87ec61482a2" - integrity sha512-PVadd+WaUDOAciICm/J1waJaSvgq+4rHE/K70j0PFqKhkTBsPv/82UGQJNXAngz1fOQLLxI6z1sEDmJDQhCTAA== + version "16.8.6" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" + integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA== read-pkg-up@^2.0.0: version "2.0.0" @@ -7819,9 +7918,9 @@ read-pkg@^3.0.0: util-deprecate "~1.0.1" readable-stream@^3.0.6, readable-stream@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.2.0.tgz#de17f229864c120a9f56945756e4f32c4045245d" - integrity sha512-RV20kLjdmpZuTF1INEb9IA3L68Nmi+Ri7ppZqo78wj//Pn62fCoJyV9zalccNzDD/OuJpMG4f+pfMl8+L6QdGw== + version "3.3.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.3.0.tgz#cb8011aad002eb717bf040291feba8569c986fb9" + integrity sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" @@ -7872,6 +7971,11 @@ regenerator-runtime@^0.12.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== +regenerator-runtime@^0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz#32e59c9a6fb9b1a4aff09b4930ca2d4477343447" + integrity sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA== + regenerator-transform@^0.13.4: version "0.13.4" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.4.tgz#18f6763cf1382c69c36df76c6ce122cc694284fb" @@ -7897,7 +8001,7 @@ regexpp@^2.0.1: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== -regexpu-core@^4.1.3, regexpu-core@^4.2.0: +regexpu-core@^4.5.4: version "4.5.4" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.4.tgz#080d9d02289aa87fe1667a4f5136bc98a6aebaae" integrity sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ== @@ -7982,7 +8086,7 @@ request-promise-native@^1.0.5: stealthy-require "^1.1.1" tough-cookie "^2.3.3" -request@^2.87.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== @@ -8023,6 +8127,11 @@ require-main-filename@^1.0.1: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + requireindex@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" @@ -8180,6 +8289,13 @@ sax@^1.2.4, sax@~1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== +saxes@^3.1.5: + version "3.1.9" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.9.tgz#c1c197cd54956d88c09f960254b999e192d7058b" + integrity sha512-FZeKhJglhJHk7eWG5YM0z46VHmI3KJpMBAQm3xa9meDvd+wevB5GuBB0wc0exPInZiBBHqi00DbS8AcvCGCFMw== + dependencies: + xmlchars "^1.3.1" + schema-utils@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" @@ -8202,15 +8318,20 @@ selfsigned@^1.9.1: node-forge "0.7.5" "semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" - integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== + version "5.7.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" + integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== semver@5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== +semver@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.0.0.tgz#05e359ee571e5ad7ed641a6eec1e547ba52dea65" + integrity sha512-0UewU+9rFapKFnlbirLi3byoOuhrSsli/z/ihNnvM24vgF+8sNBiI1LZPBSH9wJKUwaUbw+s3hToDLCXkrghrQ== + send@0.16.2: version "0.16.2" resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" @@ -8231,9 +8352,9 @@ send@0.16.2: statuses "~1.4.0" serialize-javascript@^1.4.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.6.1.tgz#4d1f697ec49429a847ca6f442a2a755126c4d879" - integrity sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw== + version "1.7.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.7.0.tgz#d6e0dfb2a3832a8c94468e6eb1db97e55a192a65" + integrity sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA== serve-index@^1.7.2: version "1.9.1" @@ -8450,9 +8571,9 @@ source-map-resolve@^0.5.0: urix "^0.1.0" source-map-support@^0.5.6, source-map-support@~0.5.10: - version "0.5.11" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.11.tgz#efac2ce0800355d026326a0ca23e162aeac9a4e2" - integrity sha512-//sajEx/fGL3iw6fltKMdPvy8kL3kJ2O3iuYlRoT3k9Kb4BjOoZ+BZzaNHeuaruSt+Kf3Zk9tnfAQg9/AJqUVQ== + version "0.5.12" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" + integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -8473,11 +8594,9 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== space-separated-tokens@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.2.tgz#e95ab9d19ae841e200808cd96bc7bd0adbbb3412" - integrity sha512-G3jprCEw+xFEs0ORweLmblJ3XLymGGr6hxZYTYZjIlvDti9vOBUjRQa1Rzjt012aRrocKstHwdNi+F7HguPsEA== - dependencies: - trim "0.0.1" + version "1.1.3" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.3.tgz#bc6500e116d13285a94b59b58c44c7f045fe6124" + integrity sha512-/M5RAdBuQlSDPNfA5ube+fkHbHyY08pMuADLmsAQURzo56w90r681oiOoz3o3ZQyWdSeNucpTFjL+Ggd5qui3w== spdx-correct@^3.0.0: version "3.1.0" @@ -8501,9 +8620,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz#81c0ce8f21474756148bbb5f3bfc0f36bf15d76e" - integrity sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g== + version "3.0.4" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz#75ecd1a88de8c184ef015eafb51b5b48bfd11bb1" + integrity sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA== spdy-transport@^3.0.0: version "3.0.0" @@ -8675,7 +8794,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -stringify-object@^3.2.2: +stringify-object@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== @@ -8706,9 +8825,9 @@ strip-ansi@^4.0.0: ansi-regex "^3.0.0" strip-ansi@^5.0.0, strip-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.1.0.tgz#55aaa54e33b4c0649a7338a43437b1887d153ec4" - integrity sha512-TjxrkPONqO2Z8QDCpeE2j6n0M6EwxzyDgzEeGp+FbdvaJAt//ClYi6W5my+3ROlC/hZX2KACUwDfK49Ka5eDvg== + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== dependencies: ansi-regex "^4.1.0" @@ -8771,10 +8890,10 @@ supports-color@^6.0.0, supports-color@^6.1.0: dependencies: has-flag "^3.0.0" -svgo@^1.0.0, svgo@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.2.0.tgz#305a8fc0f4f9710828c65039bb93d5793225ffc3" - integrity sha512-xBfxJxfk4UeVN8asec9jNxHiv3UAMv/ujwBWGYvQhhMb2u3YTGKkiybPcLFDLq7GLLWE9wa73e0/m8L5nTzQbw== +svgo@^1.0.0, svgo@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.2.2.tgz#0253d34eccf2aed4ad4f283e11ee75198f9d7316" + integrity sha512-rAfulcwp2D9jjdGu+0CuqlrAUin6bBWrpoqXWwKDZZZJfXcUXQSxLJOFJCQCSA0x0pP2U0TxSlJu2ROq5Bq6qA== dependencies: chalk "^2.4.1" coa "^2.0.2" @@ -8783,7 +8902,7 @@ svgo@^1.0.0, svgo@^1.1.1: css-tree "1.0.0-alpha.28" css-url-regex "^1.1.0" csso "^3.5.1" - js-yaml "^3.12.0" + js-yaml "^3.13.1" mkdirp "~0.5.1" object.values "^1.1.0" sax "~1.2.4" @@ -8807,9 +8926,9 @@ table@^5.2.3: string-width "^3.0.0" tapable@^1.0.0, tapable@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.1.tgz#4d297923c5a72a42360de2ab52dadfaaec00018e" - integrity sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA== + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== tar@^4: version "4.4.8" @@ -8847,15 +8966,15 @@ terser@^3.16.1: source-map "~0.6.1" source-map-support "~0.5.10" -test-exclude@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.1.0.tgz#6ba6b25179d2d38724824661323b73e03c0c1de1" - integrity sha512-gwf0S2fFsANC55fSeSqpb8BYk6w3FDvwZxfNjeF6FRgvFa43r+7wRiA/Q0IxoRU37wB/LE8IQ4221BsNucTaCA== +test-exclude@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.2.tgz#7322f8ab037b0b93ad2aab35fe9068baf997a4c4" + integrity sha512-N2pvaLpT8guUpb5Fe1GJlmvmzH3x+DAKmmyEQmFP792QcLYoGE1syxztSvPD1V8yPe6VrcCt6YGQVjSRjCASsA== dependencies: - arrify "^1.0.1" + glob "^7.1.3" minimatch "^3.0.4" read-pkg-up "^4.0.0" - require-main-filename "^1.0.1" + require-main-filename "^2.0.0" text-table@0.2.0, text-table@^0.2.0: version "0.2.0" @@ -8944,14 +9063,14 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -topo@2.x.x: - version "2.0.2" - resolved "https://registry.yarnpkg.com/topo/-/topo-2.0.2.tgz#cd5615752539057c0dc0491a621c3bc6fbe1d182" - integrity sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI= +topo@3.x.x: + version "3.0.3" + resolved "https://registry.yarnpkg.com/topo/-/topo-3.0.3.tgz#d5a67fb2e69307ebeeb08402ec2a2a6f5f7ad95c" + integrity sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ== dependencies: - hoek "4.x.x" + hoek "6.x.x" -tough-cookie@^2.3.3, tough-cookie@^2.3.4: +tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== @@ -8979,11 +9098,6 @@ trim-right@^1.0.1: resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= -trim@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" - integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= - trough@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.3.tgz#e29bd1614c6458d44869fc28b255ab7857ef7c24" @@ -9000,9 +9114,9 @@ tslib@^1.8.1, tslib@^1.9.0: integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== tsutils@^3.7.0: - version "3.9.1" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.9.1.tgz#2a40dc742943c71eca6d5c1994fcf999956be387" - integrity sha512-hrxVtLtPqQr//p8/msPT1X1UYXUjizqSit5d9AQ5k38TcV38NyecL5xODNxa73cLe/5sdiJ+w1FqzDhRBA/anA== + version "3.10.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.10.0.tgz#6f1c95c94606e098592b0dff06590cf9659227d6" + integrity sha512-q20XSMq7jutbGB8luhKKsQldRKWvyBO2BGqni3p4yq8Ys9bEP/xQw3KepKmMRt9gJ4lvQSScrihJrcKdKoSU7Q== dependencies: tslib "^1.8.1" @@ -9043,12 +9157,20 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -uglify-js@3.4.x, uglify-js@^3.1.4: - version "3.4.9" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3" - integrity sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q== +uglify-js@3.4.x: + version "3.4.10" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" + integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== dependencies: - commander "~2.17.1" + commander "~2.19.0" + source-map "~0.6.1" + +uglify-js@^3.1.4: + version "3.5.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.5.4.tgz#4a64d57f590e20a898ba057f838dcdfb67a939b9" + integrity sha512-GpKo28q/7Bm5BcX9vOu4S46FwisbPbAmkkqPnGIpKvKTM96I85N6XHQV+k4I6FA2wxgLhcsSyHoNhzucwCflvA== + dependencies: + commander "~2.20.0" source-map "~0.6.1" unicode-canonical-property-names-ecmascript@^1.0.4: @@ -9074,7 +9196,7 @@ unicode-property-aliases-ecmascript@^1.0.4: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== -unified@^7.0.2: +unified@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/unified/-/unified-7.1.0.tgz#5032f1c1ee3364bd09da12e27fdd4a7553c7be13" integrity sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw== @@ -9127,6 +9249,13 @@ unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ== +unist-util-stringify-position@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.0.tgz#4c452c0dbcbc509f7bcd366e9a8afd646f9d51ae" + integrity sha512-Uz5negUTrf9zm2ZT2Z9kdOL7Mr7FJLyq3ByqagUi7QZRVK1HnspVazvSqwHt73jj7APHtpuJ4K110Jm8O6/elw== + dependencies: + "@types/unist" "^2.0.2" + universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -9150,7 +9279,7 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -upath@^1.1.0: +upath@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" integrity sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q== @@ -9182,9 +9311,9 @@ url-loader@1.1.2: schema-utils "^1.0.0" url-parse@^1.4.3: - version "1.4.4" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.4.tgz#cac1556e95faa0303691fec5cf9d5a1bc34648f8" - integrity sha512-/92DTTorg4JjktLNLe6GPS2/RvAd/RGr6LuktmWSMLEOa6rjnlrFXNgSbSmkNvCoL2T028A0a1JaJLzRMlFoHg== + version "1.4.6" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.6.tgz#baf91d6e6783c8a795eb476892ffef2737fc0456" + integrity sha512-/B8AD9iQ01seoXmXf9z/MjLZQIdOoYl/+gvsQF6+mpnxaTfG9P7srYaiqaDMyKkR36XMXfhqSHss5MyFAO8lew== dependencies: querystringify "^2.0.0" requires-port "^1.0.0" @@ -9278,7 +9407,15 @@ vfile-message@^1.0.0: dependencies: unist-util-stringify-position "^1.1.1" -vfile@^3.0.0, vfile@^3.0.1: +vfile-message@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.0.tgz#750bbb86fe545988a67e899b329bbcabb73edef6" + integrity sha512-YS6qg6UpBfIeiO+6XlhPOuJaoLvt1Y9g2cmlwqhBOOU0XRV8j5RLeoz72t6PWLvNXq3EBG1fQ05wNPrUoz0deQ== + dependencies: + "@types/unist" "^2.0.2" + unist-util-stringify-position "^1.1.1" + +vfile@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/vfile/-/vfile-3.0.1.tgz#47331d2abe3282424f4a4bb6acd20a44c4121803" integrity sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ== @@ -9288,6 +9425,17 @@ vfile@^3.0.0, vfile@^3.0.1: unist-util-stringify-position "^1.0.0" vfile-message "^1.0.0" +vfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.0.0.tgz#ebf3b48af9fcde524d5e08d5f75812058a5f78ad" + integrity sha512-WMNeHy5djSl895BqE86D7WqA0Ie5fAIeGCa7V1EqiXyJg5LaGch2SUaZueok5abYQGH6mXEAsZ45jkoILIOlyA== + dependencies: + "@types/unist" "^2.0.2" + is-buffer "^2.0.0" + replace-ext "1.0.0" + unist-util-stringify-position "^2.0.0" + vfile-message "^2.0.0" + vm-browserify@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" @@ -9302,7 +9450,16 @@ w3c-hr-time@^1.0.1: dependencies: browser-process-hrtime "^0.1.2" -walker@~1.0.5: +w3c-xmlserializer@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" + integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg== + dependencies: + domexception "^1.0.1" + webidl-conversions "^4.0.2" + xml-name-validator "^3.0.0" + +walker@^1.0.7, walker@~1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= @@ -9336,9 +9493,9 @@ webidl-conversions@^4.0.2: integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== webpack-dev-middleware@^3.5.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.6.1.tgz#91f2531218a633a99189f7de36045a331a4b9cd4" - integrity sha512-XQmemun8QJexMEvNFbD2BIg4eSKrmSIMrTfnl2nql2Sc6OGAYFyb8rwuYrCjl/IiEYYuyTEiimMscu7EXji/Dw== + version "3.6.2" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.6.2.tgz#f37a27ad7c09cd7dc67cd97655413abaa1f55942" + integrity sha512-A47I5SX60IkHrMmZUlB0ZKSWi29TZTcPz7cha1Z75yYOsgWh/1AcPmQEbC8ZIbU3A1ytSv1PMU0PyPz2Lmz2jg== dependencies: memory-fs "^0.4.1" mime "^2.3.1" @@ -9449,7 +9606,7 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== -whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== @@ -9461,7 +9618,7 @@ whatwg-fetch@3.0.0: resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== -whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: +whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== @@ -9513,132 +9670,140 @@ wordwrap@~1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= -workbox-background-sync@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-3.6.3.tgz#6609a0fac9eda336a7c52e6aa227ba2ae532ad94" - integrity sha512-ypLo0B6dces4gSpaslmDg5wuoUWrHHVJfFWwl1udvSylLdXvnrfhFfriCS42SNEe5lsZtcNZF27W/SMzBlva7Q== +workbox-background-sync@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-4.3.0.tgz#56d6da78c6813fcf5671327cf732265c02c8677e" + integrity sha512-rmDqz1k2mnG8wj68rBapoFP3iCKmdPeTdD0/GLtErDcaQsKnGlsFmjjJ7OuQbuBa+W0FfVWCE+s3VwqL0D/+DA== dependencies: - workbox-core "^3.6.3" + workbox-core "^4.3.0" -workbox-broadcast-cache-update@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-broadcast-cache-update/-/workbox-broadcast-cache-update-3.6.3.tgz#3f5dff22ada8c93e397fb38c1dc100606a7b92da" - integrity sha512-pJl4lbClQcvp0SyTiEw0zLSsVYE1RDlCPtpKnpMjxFtu8lCFTAEuVyzxp9w7GF4/b3P4h5nyQ+q7V9mIR7YzGg== +workbox-broadcast-update@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-4.3.0.tgz#67d4e0fbafbc79a9707d72dda0f99769e9e545bb" + integrity sha512-YYdz+8FAVdy1ZTsXpapWyd5t2nH7KdBIQ9rFlsRMSGFS7LzcKfZy8Tka1W8byMNM1II5cxlFr7f6+3vLahzrCg== dependencies: - workbox-core "^3.6.3" + workbox-core "^4.3.0" -workbox-build@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-3.6.3.tgz#77110f9f52dc5d82fa6c1c384c6f5e2225adcbd8" - integrity sha512-w0clZ/pVjL8VXy6GfthefxpEXs0T8uiRuopZSFVQ8ovfbH6c6kUpEh6DcYwm/Y6dyWPiCucdyAZotgjz+nRz8g== +workbox-build@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-4.3.0.tgz#281fead712ecd2dce3a4c293b107e8ec46c21b98" + integrity sha512-D2fQa2Isp/BboJ8edYmvsTCrBrPWwVCYa7zMDysLViIaGVQTFMgazRXx8wZ2gZKud13M0maUR5Ln4wS5UiqAIA== dependencies: - babel-runtime "^6.26.0" - common-tags "^1.4.0" + "@babel/runtime" "^7.3.4" + common-tags "^1.8.0" fs-extra "^4.0.2" - glob "^7.1.2" - joi "^11.1.1" + glob "^7.1.3" + joi "^14.3.1" lodash.template "^4.4.0" - pretty-bytes "^4.0.2" - stringify-object "^3.2.2" + pretty-bytes "^5.1.0" + stringify-object "^3.3.0" strip-comments "^1.0.2" - workbox-background-sync "^3.6.3" - workbox-broadcast-cache-update "^3.6.3" - workbox-cache-expiration "^3.6.3" - workbox-cacheable-response "^3.6.3" - workbox-core "^3.6.3" - workbox-google-analytics "^3.6.3" - workbox-navigation-preload "^3.6.3" - workbox-precaching "^3.6.3" - workbox-range-requests "^3.6.3" - workbox-routing "^3.6.3" - workbox-strategies "^3.6.3" - workbox-streams "^3.6.3" - workbox-sw "^3.6.3" - -workbox-cache-expiration@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-cache-expiration/-/workbox-cache-expiration-3.6.3.tgz#4819697254a72098a13f94b594325a28a1e90372" - integrity sha512-+ECNph/6doYx89oopO/UolYdDmQtGUgo8KCgluwBF/RieyA1ZOFKfrSiNjztxOrGJoyBB7raTIOlEEwZ1LaHoA== - dependencies: - workbox-core "^3.6.3" - -workbox-cacheable-response@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-3.6.3.tgz#869f1a68fce9063f6869ddbf7fa0a2e0a868b3aa" - integrity sha512-QpmbGA9SLcA7fklBLm06C4zFg577Dt8u3QgLM0eMnnbaVv3rhm4vbmDpBkyTqvgK/Ly8MBDQzlXDtUCswQwqqg== - dependencies: - workbox-core "^3.6.3" - -workbox-core@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-3.6.3.tgz#69abba70a4f3f2a5c059295a6f3b7c62bd00e15c" - integrity sha512-cx9cx0nscPkIWs8Pt98HGrS9/aORuUcSkWjG25GqNWdvD/pSe7/5Oh3BKs0fC+rUshCiyLbxW54q0hA+GqZeSQ== - -workbox-google-analytics@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-3.6.3.tgz#99df2a3d70d6e91961e18a6752bac12e91fbf727" - integrity sha512-RQBUo/6SXtIaQTRFj4RQZ9e1gAl7D8oS5S+Hi173Kk70/BgJjzPwXpC5A249Jv5YfkCOLMQCeF9A27BiD0b0ig== - dependencies: - workbox-background-sync "^3.6.3" - workbox-core "^3.6.3" - workbox-routing "^3.6.3" - workbox-strategies "^3.6.3" - -workbox-navigation-preload@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-3.6.3.tgz#a2c34eb7c17e7485b795125091215f757b3c4964" - integrity sha512-dd26xTX16DUu0i+MhqZK/jQXgfIitu0yATM4jhRXEmpMqQ4MxEeNvl2CgjDMOHBnCVMax+CFZQWwxMx/X/PqCw== - dependencies: - workbox-core "^3.6.3" - -workbox-precaching@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-3.6.3.tgz#5341515e9d5872c58ede026a31e19bafafa4e1c1" - integrity sha512-aBqT66BuMFviPTW6IpccZZHzpA8xzvZU2OM1AdhmSlYDXOJyb1+Z6blVD7z2Q8VNtV1UVwQIdImIX+hH3C3PIw== - dependencies: - workbox-core "^3.6.3" - -workbox-range-requests@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-3.6.3.tgz#3cc21cba31f2dd8c43c52a196bcc8f6cdbcde803" - integrity sha512-R+yLWQy7D9aRF9yJ3QzwYnGFnGDhMUij4jVBUVtkl67oaVoP1ymZ81AfCmfZro2kpPRI+vmNMfxxW531cqdx8A== - dependencies: - workbox-core "^3.6.3" - -workbox-routing@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-3.6.3.tgz#659cd8f9274986cfa98fda0d050de6422075acf7" - integrity sha512-bX20i95OKXXQovXhFOViOK63HYmXvsIwZXKWbSpVeKToxMrp0G/6LZXnhg82ijj/S5yhKNRf9LeGDzaqxzAwMQ== - dependencies: - workbox-core "^3.6.3" - -workbox-strategies@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-3.6.3.tgz#11a0dc249a7bc23d3465ec1322d28fa6643d64a0" - integrity sha512-Pg5eulqeKet2y8j73Yw6xTgLdElktcWExGkzDVCGqfV9JCvnGuEpz5eVsCIK70+k4oJcBCin9qEg3g3CwEIH3g== - dependencies: - workbox-core "^3.6.3" - -workbox-streams@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-3.6.3.tgz#beaea5d5b230239836cc327b07d471aa6101955a" - integrity sha512-rqDuS4duj+3aZUYI1LsrD2t9hHOjwPqnUIfrXSOxSVjVn83W2MisDF2Bj+dFUZv4GalL9xqErcFW++9gH+Z27w== - dependencies: - workbox-core "^3.6.3" - -workbox-sw@^3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-3.6.3.tgz#278ea4c1831b92bbe2d420da8399176c4b2789ff" - integrity sha512-IQOUi+RLhvYCiv80RP23KBW/NTtIvzvjex28B8NW1jOm+iV4VIu3VXKXTA6er5/wjjuhmtB28qEAUqADLAyOSg== - -workbox-webpack-plugin@3.6.3: - version "3.6.3" - resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-3.6.3.tgz#a807bb891b4e4e3c808df07e58f17de2d5ba6182" - integrity sha512-RwmKjc7HFHUFHoOlKoZUq9349u0QN3F8W5tZZU0vc1qsBZDINWXRiIBCAKvo/Njgay5sWz7z4I2adnyTo97qIQ== + workbox-background-sync "^4.3.0" + workbox-broadcast-update "^4.3.0" + workbox-cacheable-response "^4.3.0" + workbox-core "^4.3.0" + workbox-expiration "^4.3.0" + workbox-google-analytics "^4.3.0" + workbox-navigation-preload "^4.3.0" + workbox-precaching "^4.3.0" + workbox-range-requests "^4.3.0" + workbox-routing "^4.3.0" + workbox-strategies "^4.3.0" + workbox-streams "^4.3.0" + workbox-sw "^4.3.0" + workbox-window "^4.3.0" + +workbox-cacheable-response@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-4.3.0.tgz#132c1cbb15c36d24d502b1c768558e46c912e7f3" + integrity sha512-GlnPS1WtEoPNFVPVW1Ss0CrNPlhB7FpMTh2XwpqdJKq7K/aDI8LKdFpRcZBZ2pfRpOf8b6AjAiDZr0hrJ9EFtQ== dependencies: - babel-runtime "^6.26.0" + workbox-core "^4.3.0" + +workbox-core@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-4.3.0.tgz#1981c98af8e7da6d16dc8837c4f736f8167cc75d" + integrity sha512-k5j6yfyznkK7zHiYLbCsrJfYWUcJ9ZnFFzI4KSbr7D43rWwQkusHsPmOG3OT1YZseACtLRSnUUzb+Cg2arVXtw== + +workbox-expiration@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-4.3.0.tgz#aaa1cc8ab21134f2f46eeb447b0532b56e86330d" + integrity sha512-mcTWxsBHVkDBlIXOZ9uT3m0bAc7OJ3NTj1pTjWzwVZ6sqvT1I88ewIyppv44GO9JqnwE87lODpdEUIKp9V4lNA== + dependencies: + workbox-core "^4.3.0" + +workbox-google-analytics@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-4.3.0.tgz#ef47cb9fe959bfbc16bd123210ff88891c4afeeb" + integrity sha512-itAfcN/rVNf5WqAMW5/OA/pMkFxZjYuk2ZmOCIuy0fFJeQ4F0PfD3Y1DzX1JrKHPMIPeXvvZiAGY8+HRuJjy7w== + dependencies: + workbox-background-sync "^4.3.0" + workbox-core "^4.3.0" + workbox-routing "^4.3.0" + workbox-strategies "^4.3.0" + +workbox-navigation-preload@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-4.3.0.tgz#b4d32404921b10cb4a916a90e660ffc76877b09f" + integrity sha512-1RoaOZD8mMTPjvTNG/FWSQZmfTlTP5FC7c6ZwKWWGoULcxPCmiqI8uWOnMg1/S+eAjYTtNfToW2pfvK4zi5ihA== + dependencies: + workbox-core "^4.3.0" + +workbox-precaching@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-4.3.0.tgz#1aa386fb81bbb7cc1e0c484f659e5ac9f6820005" + integrity sha512-wEsF7+I1opRbyJysYWtn8c1liHqA3bvtaTk4FohE3ViZfn2MIEzORuk7G1kEBZEdJnGf7QcfVJ2tNFYv72yQZQ== + dependencies: + workbox-core "^4.3.0" + +workbox-range-requests@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-4.3.0.tgz#ae25e33918701ffa2c5dd2d86bdfa1cf779527e8" + integrity sha512-2NskkW6Qmkm9YQPh7swODfB6u3yALqdUqxb0i/3tYp4OKEux50ju9B1OK/u3V/INJ6q2s/CwYmxwxJHhXi9Nfg== + dependencies: + workbox-core "^4.3.0" + +workbox-routing@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-4.3.0.tgz#6bf838d0dc5be43cb5bcba9010874971ab642067" + integrity sha512-/lqWiZRjtyKi3If3J8jWHXJQIjaSLv8WKbGnriOcTxFEG7t+AJ79QYIxWXv0UQo4KFpjQRQUag+38T9spbV0IA== + dependencies: + workbox-core "^4.3.0" + +workbox-strategies@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-4.3.0.tgz#96eeb2d39e99d549d914e017cbe2bfd0a0d1a8b4" + integrity sha512-yzhs07UZg7CR0thFFsUDI5hp+I0WoKd9IHSj4ckHoUAslyKLpmwGnOInsPeq2WQfXn7CkyinRjwUrwv3FMw1Gw== + dependencies: + workbox-core "^4.3.0" + +workbox-streams@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-4.3.0.tgz#836e27e302b90167da2ca47cd261eeb3369fb9ff" + integrity sha512-CIA9inxuFELQOO+/7+JpE50cBhpTWOYcLK7tQpriQ6PJod2tAMgo9X89vt9vLk1pN0PMd749MqurAz8FgLHHEg== + dependencies: + workbox-core "^4.3.0" + +workbox-sw@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-4.3.0.tgz#07a8b0df4e3a4ad05bb56f5d5686723923738e56" + integrity sha512-d4INzCxFrHixUrhYV5z+6+zX1AKO3T77JY7l1ZKh15blW3Mz9u0FpJATzz3NWaI9X/cxgRyOsR8J7deu3XjlEg== + +workbox-webpack-plugin@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-4.2.0.tgz#c94c3f69ff39c8a5b0c7e6bebc382cb53410a63d" + integrity sha512-YZsiA+y/ns/GdWRaBsfYv8dln1ebWtGnJcTOg1ppO0pO1tScAHX0yGtHIjndxz3L/UUhE8b0NQE9KeLNwJwA5A== + dependencies: + "@babel/runtime" "^7.0.0" json-stable-stringify "^1.0.1" - workbox-build "^3.6.3" + workbox-build "^4.2.0" + +workbox-window@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-4.3.0.tgz#22636919ec408292e2a68b7da818f3fe81932d18" + integrity sha512-Lf5Da+4VdmUZSVhBFEcZSBWNHm9x7Zr2FUp1mgUZhrIwnkfL4qmjpG7TyAzaPm7QLc/O+yxDDC5cgEvMtE1fjQ== + dependencies: + workbox-core "^4.3.0" worker-farm@^1.5.2: version "1.6.0" @@ -9683,6 +9848,13 @@ ws@^5.2.0: dependencies: async-limiter "~1.0.0" +ws@^6.1.2: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + dependencies: + async-limiter "~1.0.0" + x-is-string@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" @@ -9693,6 +9865,11 @@ xml-name-validator@^3.0.0: resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== +xmlchars@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-1.3.1.tgz#1dda035f833dbb4f86a0c28eaa6ca769214793cf" + integrity sha512-tGkGJkN8XqCod7OT+EvGYK5Z4SfDQGD30zAa58OcnAa0RRWgzUEK72tkXhsX1FZd+rgnhRxFtmO+ihkp8LHSkw== + xregexp@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020" @@ -9763,4 +9940,3 @@ yargs@^12.0.2: which-module "^2.0.0" y18n "^3.2.1 || ^4.0.0" yargs-parser "^11.1.1" - From 657ae2f7bef98b9afb0ffdbfcb35ebd8634f3483 Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Wed, 17 Apr 2019 09:59:06 -0600 Subject: [PATCH 0650/1249] Upgrade to Lerna v3 (#6829) * Upgrade Lerna to 3.13.2 * Remove independent argument to Lerna * Update publish command --- CONTRIBUTING.md | 2 +- package.json | 2 +- tasks/publish.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8a8f8f85028..76e704dacb1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -152,7 +152,7 @@ By default git would use `CRLF` line endings which would cause the scripts to fa 9. Wait for a long time, and it will get published. Don’t worry that it’s stuck. In the end the publish script will prompt for versions before publishing the packages. 10. After publishing, create a GitHub Release with the same text as the changelog entry. See previous Releases for inspiration. -Make sure to test the released version! If you want to be extra careful, you can publish a prerelease by running `npm run publish -- --canary=next --exact --cd-version patch --npm-tag=next` instead of `npm run publish`. +Make sure to test the released version! If you want to be extra careful, you can publish a prerelease by running `npm run publish -- prepatch --canary --preid next --dist-tag next --npm-client npm --force-publish` instead of `npm run publish`. --- diff --git a/package.json b/package.json index ac8d1c0e8db..9763ceec6a6 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "globby": "^9.1.0", "husky": "^1.3.1", "jest": "24.7.1", - "lerna": "2.9.1", + "lerna": "3.13.2", "lerna-changelog": "~0.8.2", "lint-staged": "^8.0.4", "meow": "^5.0.0", diff --git a/tasks/publish.sh b/tasks/publish.sh index 56f2de6fb82..802d10cf518 100755 --- a/tasks/publish.sh +++ b/tasks/publish.sh @@ -48,4 +48,4 @@ if [ -z $CI ]; then fi # Go! -NPM_CONFIG_OTP="$otp" ./node_modules/.bin/lerna publish --independent --npm-client=npm "$@" +NPM_CONFIG_OTP="$otp" ./node_modules/.bin/lerna publish --npm-client=npm "$@" From 4b5b76b79ffabcafc5fde02f583baceae6bd0446 Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Wed, 17 Apr 2019 10:01:32 -0600 Subject: [PATCH 0651/1249] Prepare 3.0.0 alpha release --- packages/create-react-app/yarn.lock.cached | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/create-react-app/yarn.lock.cached b/packages/create-react-app/yarn.lock.cached index 3dc831e4c27..cd6a9e24582 100644 --- a/packages/create-react-app/yarn.lock.cached +++ b/packages/create-react-app/yarn.lock.cached @@ -5060,9 +5060,9 @@ isstream@~0.1.2: integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= istanbul-api@^2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-2.1.4.tgz#5c7fe1d1c9b96ba3184ac4bbff7fc04eaccbdd8b" - integrity sha512-aAFQL0HA2BLUl18XmTQ7H7CGKI58DtZFvvfmg6e+rA3iNFergvpi16czLV4CpI7HOImMeZ5mqI62dvSNVtUQVA== + version "2.1.5" + resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-2.1.5.tgz#697b95ec69856c278aacafc0f86ee7392338d5b5" + integrity sha512-meYk1BwDp59Pfse1TvPrkKYgVqAufbdBLEVoqvu/hLLKSaQ054ZTksbNepyc223tMnWdm6AdK2URIJJRqdP87g== dependencies: async "^2.6.1" compare-versions "^3.2.1" @@ -5072,7 +5072,7 @@ istanbul-api@^2.1.1: istanbul-lib-instrument "^3.2.0" istanbul-lib-report "^2.0.7" istanbul-lib-source-maps "^3.0.5" - istanbul-reports "^2.2.2" + istanbul-reports "^2.2.3" js-yaml "^3.13.0" make-dir "^2.1.0" minimatch "^3.0.4" @@ -5123,10 +5123,10 @@ istanbul-lib-source-maps@^3.0.1, istanbul-lib-source-maps@^3.0.5: rimraf "^2.6.2" source-map "^0.6.1" -istanbul-reports@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.2.tgz#b84303c46fc0541c3c3b69abae687c42a6907d44" - integrity sha512-ZFuTdBQ3PSaPnm02aEA4R6mzQ2AF9w03CYiXADzWbbE48v/EFOWF4MaX4FT0NRdqIk48I7o0RPi+S8TMswaCbQ== +istanbul-reports@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.3.tgz#14e0d00ecbfa9387757999cf36599b88e9f2176e" + integrity sha512-T6EbPuc8Cb620LWAYyZ4D8SSn06dY9i1+IgUX2lTH8gbwflMc9Obd33zHTyNX653ybjpamAHS9toKS3E6cGhTw== dependencies: handlebars "^4.1.0" From f5b0aac4116fe58694db7c8996c4fd7da4821b9a Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Wed, 17 Apr 2019 19:46:47 -0700 Subject: [PATCH 0652/1249] Relax ESLint version range (#6840) * Relax eslint version range * Use semver package to compare versions during preflight check * Cleanup package.json files whitespace --- packages/babel-plugin-named-asset-import/package.json | 4 ++-- packages/babel-preset-react-app/package.json | 4 ++-- packages/confusing-browser-globals/package.json | 4 ++-- packages/create-react-app/package.json | 6 +++--- packages/eslint-config-react-app/package.json | 4 ++-- packages/react-app-polyfill/package.json | 4 ++-- packages/react-dev-utils/package.json | 4 ++-- packages/react-error-overlay/package.json | 6 +++--- packages/react-scripts/package.json | 7 ++++--- packages/react-scripts/scripts/utils/verifyPackageTree.js | 3 ++- 10 files changed, 24 insertions(+), 22 deletions(-) diff --git a/packages/babel-plugin-named-asset-import/package.json b/packages/babel-plugin-named-asset-import/package.json index 165b49565d2..73d06ee0ce8 100644 --- a/packages/babel-plugin-named-asset-import/package.json +++ b/packages/babel-plugin-named-asset-import/package.json @@ -3,8 +3,8 @@ "version": "0.3.1", "description": "Babel plugin for named asset imports in Create React App", "repository": { - "type" : "git", - "url" : "https://github.com/facebook/create-react-app.git", + "type": "git", + "url": "https://github.com/facebook/create-react-app.git", "directory": "packages/babel-plugin-named-asset-import" }, "license": "MIT", diff --git a/packages/babel-preset-react-app/package.json b/packages/babel-preset-react-app/package.json index af39b6d46c9..ef16d126e44 100644 --- a/packages/babel-preset-react-app/package.json +++ b/packages/babel-preset-react-app/package.json @@ -3,8 +3,8 @@ "version": "7.0.2", "description": "Babel preset used by Create React App", "repository": { - "type" : "git", - "url" : "https://github.com/facebook/create-react-app.git", + "type": "git", + "url": "https://github.com/facebook/create-react-app.git", "directory": "packages/babel-preset-react-app" }, "license": "MIT", diff --git a/packages/confusing-browser-globals/package.json b/packages/confusing-browser-globals/package.json index 879c6f8d2d9..672a1699e2e 100644 --- a/packages/confusing-browser-globals/package.json +++ b/packages/confusing-browser-globals/package.json @@ -8,8 +8,8 @@ "test": "jest" }, "repository": { - "type" : "git", - "url" : "https://github.com/facebook/create-react-app.git", + "type": "git", + "url": "https://github.com/facebook/create-react-app.git", "directory": "packages/confusing-browser-globals" }, "keywords": [ diff --git a/packages/create-react-app/package.json b/packages/create-react-app/package.json index bf7ceb6ab2a..8d4ae65d9b1 100644 --- a/packages/create-react-app/package.json +++ b/packages/create-react-app/package.json @@ -6,8 +6,8 @@ ], "description": "Create React apps with no build configuration.", "repository": { - "type" : "git", - "url" : "https://github.com/facebook/create-react-app.git", + "type": "git", + "url": "https://github.com/facebook/create-react-app.git", "directory": "packages/create-react-app" }, "license": "MIT", @@ -33,7 +33,7 @@ "fs-extra": "7.0.1", "hyperquest": "2.1.3", "inquirer": "6.2.2", - "semver": "5.6.0", + "semver": "6.0.0", "tar-pack": "3.4.1", "tmp": "0.0.33", "validate-npm-package-name": "3.0.0" diff --git a/packages/eslint-config-react-app/package.json b/packages/eslint-config-react-app/package.json index a47a07fd623..896cf4bc806 100644 --- a/packages/eslint-config-react-app/package.json +++ b/packages/eslint-config-react-app/package.json @@ -3,8 +3,8 @@ "version": "3.0.8", "description": "ESLint configuration used by Create React App", "repository": { - "type" : "git", - "url" : "https://github.com/facebook/create-react-app.git", + "type": "git", + "url": "https://github.com/facebook/create-react-app.git", "directory": "packages/eslint-config-react-app" }, "license": "MIT", diff --git a/packages/react-app-polyfill/package.json b/packages/react-app-polyfill/package.json index af264067f86..71e67d38be7 100644 --- a/packages/react-app-polyfill/package.json +++ b/packages/react-app-polyfill/package.json @@ -3,8 +3,8 @@ "version": "0.2.2", "description": "Polyfills for various browsers including commonly used language features", "repository": { - "type" : "git", - "url" : "https://github.com/facebook/create-react-app.git", + "type": "git", + "url": "https://github.com/facebook/create-react-app.git", "directory": "packages/react-app-polyfill" }, "license": "MIT", diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index 4c79e4299c4..adafd95c042 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -3,8 +3,8 @@ "version": "8.0.0", "description": "Webpack utilities used by Create React App", "repository": { - "type" : "git", - "url" : "https://github.com/facebook/create-react-app.git", + "type": "git", + "url": "https://github.com/facebook/create-react-app.git", "directory": "packages/react-dev-utils" }, "license": "MIT", diff --git a/packages/react-error-overlay/package.json b/packages/react-error-overlay/package.json index ca951fff90d..27f78244a0f 100644 --- a/packages/react-error-overlay/package.json +++ b/packages/react-error-overlay/package.json @@ -11,8 +11,8 @@ "build:prod": "cross-env NODE_ENV=production node build.js" }, "repository": { - "type" : "git", - "url" : "https://github.com/facebook/create-react-app.git", + "type": "git", + "url": "https://github.com/facebook/create-react-app.git", "directory": "packages/react-error-overlay" }, "license": "MIT", @@ -44,7 +44,7 @@ "chalk": "^2.4.2", "chokidar": "^2.1.2", "cross-env": "5.2.0", - "eslint": "5.16.0", + "eslint": "^5.16.0", "eslint-config-react-app": "^3.0.8", "eslint-plugin-flowtype": "2.50.1", "eslint-plugin-import": "2.16.0", diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 8116b28a224..00e4ae8c46e 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -3,8 +3,8 @@ "version": "2.1.8", "description": "Configuration and scripts for Create React App.", "repository": { - "type" : "git", - "url" : "https://github.com/facebook/create-react-app.git", + "type": "git", + "url": "https://github.com/facebook/create-react-app.git", "directory": "packages/react-scripts" }, "license": "MIT", @@ -41,7 +41,7 @@ "css-loader": "2.1.1", "dotenv": "6.2.0", "dotenv-expand": "4.2.0", - "eslint": "5.16.0", + "eslint": "^5.16.0", "eslint-config-react-app": "^3.0.8", "eslint-loader": "2.1.2", "eslint-plugin-flowtype": "2.50.1", @@ -70,6 +70,7 @@ "react-dev-utils": "^8.0.0", "resolve": "1.10.0", "sass-loader": "7.1.0", + "semver": "6.0.0", "style-loader": "0.23.1", "terser-webpack-plugin": "1.2.3", "url-loader": "1.1.2", diff --git a/packages/react-scripts/scripts/utils/verifyPackageTree.js b/packages/react-scripts/scripts/utils/verifyPackageTree.js index 075860eac5b..210043ff7c4 100644 --- a/packages/react-scripts/scripts/utils/verifyPackageTree.js +++ b/packages/react-scripts/scripts/utils/verifyPackageTree.js @@ -10,6 +10,7 @@ const chalk = require('react-dev-utils/chalk'); const fs = require('fs'); +const semver = require('semver'); const path = require('path'); // We assume that having wrong versions of these @@ -74,7 +75,7 @@ function verifyPackageTree() { fs.readFileSync(maybeDepPackageJson, 'utf8') ); const expectedVersion = expectedVersionsByDep[dep]; - if (depPackageJson.version !== expectedVersion) { + if (!semver.satisfies(depPackageJson.version, expectedVersion)) { console.error( chalk.red( `\nThere might be a problem with the project dependency tree.\n` + From 022b98418ebc03bd157b6056ce919ae72872fb7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luiz=20Felipe=20Gon=C3=A7alves?= <23662020+lffg@users.noreply.github.com> Date: Fri, 19 Apr 2019 00:30:41 -0300 Subject: [PATCH 0653/1249] Change Create React App version in `react-scripts` eject warning (#6845) * fix: change CRA version in eject warning * Update eject.js --- packages/react-scripts/scripts/eject.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/scripts/eject.js b/packages/react-scripts/scripts/eject.js index 9a26232ed72..746451e25e6 100644 --- a/packages/react-scripts/scripts/eject.js +++ b/packages/react-scripts/scripts/eject.js @@ -56,7 +56,7 @@ function tryGitAdd(appPath) { console.log( chalk.cyan.bold( - 'NOTE: Create React App 2 supports TypeScript, Sass, CSS Modules and more without ejecting: ' + + 'NOTE: Create React App 2+ supports TypeScript, Sass, CSS Modules and more without ejecting: ' + 'https://reactjs.org/blog/2018/10/01/create-react-app-v2.html' ) ); From 200b98b81a00671ac99d093c9978df8662344c57 Mon Sep 17 00:00:00 2001 From: Jack Zhao Date: Thu, 18 Apr 2019 23:35:46 -0700 Subject: [PATCH 0654/1249] Remove no-watch flag in favor of watchAll=false (#6848) --- docusaurus/docs/debugging-tests.md | 2 +- docusaurus/docs/running-tests.md | 4 ++-- packages/react-scripts/scripts/test.js | 9 +-------- 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/docusaurus/docs/debugging-tests.md b/docusaurus/docs/debugging-tests.md index b7342adace1..d3d1aa4cb38 100644 --- a/docusaurus/docs/debugging-tests.md +++ b/docusaurus/docs/debugging-tests.md @@ -55,7 +55,7 @@ Use the following [`launch.json`](https://code.visualstudio.com/docs/editor/debu "test", "--runInBand", "--no-cache", - "--no-watch" + "--watchAll=false" ], "cwd": "${workspaceRoot}", "protocol": "inspector", diff --git a/docusaurus/docs/running-tests.md b/docusaurus/docs/running-tests.md index 9a43590795e..f43dd43b1a7 100644 --- a/docusaurus/docs/running-tests.md +++ b/docusaurus/docs/running-tests.md @@ -35,7 +35,7 @@ The watcher includes an interactive command-line interface with the ability to r ![Jest watch mode](https://jestjs.io/img/blog/15-watch.gif) -> \*Although we recommend running your tests in watch mode during development, you can disable this behavior by passing in the `--no-watch` flag. In most CI environments, this is handled for you (see [On CI servers](#on-ci-servers)). +> \*Although we recommend running your tests in watch mode during development, you can disable this behavior by passing in the `--watchAll=false` flag. In most CI environments, this is handled for you (see [On CI servers](#on-ci-servers)). ## Version Control Integration @@ -376,7 +376,7 @@ CI=true npm run build The test command will force Jest to run in CI-mode, and tests will only run once instead of launching the watcher. -For non-CI environments, you can simply pass the `--no-watch` flag to disable test-watching. +For non-CI environments, you can simply pass the `--watchAll=false` flag to disable test-watching. The build command will check for linter warnings and fail if any are found. diff --git a/packages/react-scripts/scripts/test.js b/packages/react-scripts/scripts/test.js index 73598a6d9c9..32c93da5ae3 100644 --- a/packages/react-scripts/scripts/test.js +++ b/packages/react-scripts/scripts/test.js @@ -54,11 +54,9 @@ function isInMercurialRepository() { } } -// Watch unless on CI, explicitly adding `--no-watch`, -// or explicitly running all tests +// Watch unless on CI or explicitly running all tests if ( !process.env.CI && - argv.indexOf('--no-watch') === -1 && argv.indexOf('--watchAll') === -1 ) { // https://github.com/facebook/create-react-app/issues/5210 @@ -66,11 +64,6 @@ if ( argv.push(hasSourceControl ? '--watch' : '--watchAll'); } -// Jest doesn't have this option so we'll remove it -if (argv.indexOf('--no-watch') !== -1) { - argv = argv.filter(arg => arg !== '--no-watch'); -} - // @remove-on-eject-begin // This is not necessary after eject because we embed config into package.json. const createJestConfig = require('./utils/createJestConfig'); From 2303b49c4102ab97b640579a29bf5ed37a83e61f Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Fri, 19 Apr 2019 07:27:05 -0700 Subject: [PATCH 0655/1249] Add baseUrl documentation (#6847) * Add baseUrl documentation * Update docusaurus/docs/importing-a-component.md Co-Authored-By: ianschmitz * Update docusaurus/docs/importing-a-component.md Co-Authored-By: ianschmitz * Simplify include to match default tsconfig.json --- docusaurus/docs/importing-a-component.md | 25 ++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/docusaurus/docs/importing-a-component.md b/docusaurus/docs/importing-a-component.md index 82ca5487a9c..a04670a9a0a 100644 --- a/docusaurus/docs/importing-a-component.md +++ b/docusaurus/docs/importing-a-component.md @@ -48,3 +48,28 @@ Learn more about ES6 modules: - [When to use the curly braces?](https://stackoverflow.com/questions/36795819/react-native-es-6-when-should-i-use-curly-braces-for-import/36796281#36796281) - [Exploring ES6: Modules](http://exploringjs.com/es6/ch_modules.html) - [Understanding ES6: Modules](https://leanpub.com/understandinges6/read#leanpub-auto-encapsulating-code-with-modules) + +## Absolute Imports + +You can configure your application to support importing modules using absolute paths. This can be done by configuring a `jsconfig.json` or `tsconfig.json` file in the root of your project. If you're using TypeScript in your project, you will already have a `tsconfig.json` file. + +Below is an example `jsconfig.json` file for a JavaScript project. You can create the file if it doesn't already exist: + +```json +{ + "compilerOptions": { + "baseUrl": "src" + }, + "include": ["src"] +} +``` + +If you're using TypeScript, you can configure the `baseUrl` setting inside the `compilerOptions` of your project's `tsconfig.json` file. + +Now that you've configured your project to support absolute imports, if you want to import a module located at `src/components/Button.js`, you can import the module like so: + +```js +import Button from 'components/Button'; +``` + +For more information on these configuration files, see the [jsconfig.json reference](https://code.visualstudio.com/docs/languages/jsconfig) and [tsconfig.json reference](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html) documentation. From e11ebfa0e871e591b1e7d668face325d35532044 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Romain=20Fran=C3=A7ois?= <36729637+FrancoisRmn@users.noreply.github.com> Date: Sun, 21 Apr 2019 03:14:46 +0200 Subject: [PATCH 0656/1249] Update fsevents dependency version (#6843) Fixes #6852. I update the dependency version of fsevents because old versions was vulnerable (CWE-59). Vulnerability found with snyk.io report --- packages/react-scripts/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 00e4ae8c46e..c56d4a07937 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -84,7 +84,7 @@ "react-dom": "^16.8.4" }, "optionalDependencies": { - "fsevents": "1.2.7" + "fsevents": "2.0.6" }, "browserslist": { "production": [ From fa005d870d45235ba13862661801f2a75e102ef1 Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Sat, 20 Apr 2019 20:19:19 -0600 Subject: [PATCH 0657/1249] Update stale.yml --- .github/stale.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/stale.yml b/.github/stale.yml index a87891011fd..9dafb647ef1 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -16,8 +16,13 @@ exemptLabels: - "issue: bug" - "issue: needs investigation" - "issue: proposal" - - "tag: bug fix" - "tag: breaking change" + - "tag: bug fix" + - "tag: documentation" + - "tag: enhancement" + - "tag: internal" + - "tag: new feature" + - "tag: underlying tools" # Set to true to ignore issues in a project (defaults to false) exemptProjects: true From 6cddf9cc09a16cfd40fb3a3e33c9f01f3ed89c02 Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Mon, 22 Apr 2019 11:43:33 -0600 Subject: [PATCH 0658/1249] Prepare 3.0.0 release --- CHANGELOG-2.x.md | 1390 ++++++++++++++++++ CHANGELOG.md | 1509 +++----------------- packages/create-react-app/yarn.lock.cached | 85 +- 3 files changed, 1623 insertions(+), 1361 deletions(-) create mode 100644 CHANGELOG-2.x.md diff --git a/CHANGELOG-2.x.md b/CHANGELOG-2.x.md new file mode 100644 index 00000000000..27d74fd97dc --- /dev/null +++ b/CHANGELOG-2.x.md @@ -0,0 +1,1390 @@ +## 2.1.8 (March 7, 2019) + +v2.1.8 is a maintenance release that reapplies the TypeScript speed improvements ([#6406](https://github.com/facebook/create-react-app/pull/6406)) in a new major version of `react-dev-utils`. + +### Migrating from 2.1.7 to 2.1.8 + +Inside any created project that has not been ejected, run: + +```sh +npm install --save --save-exact react-scripts@2.1.8 +``` + +or + +```sh +yarn add --exact react-scripts@2.1.8 +``` + +## 2.1.7 (March 7, 2019) + +v2.1.7 is a maintenance release that temporarily reverts the TypeScript speed improvements ([#6406](https://github.com/facebook/create-react-app/pull/6406)) to fix a dependency issue in `react-dev-utils`. + +### Migrating from 2.1.6 to 2.1.7 + +Inside any created project that has not been ejected, run: + +```sh +npm install --save --save-exact react-scripts@2.1.7 +``` + +or + +```sh +yarn add --exact react-scripts@2.1.7 +``` + +## 2.1.6 (March 6, 2019) + +v2.1.6 is a maintenance release that brings a few new improvements, most notably: + +- :rocket: Reduced TypeScript rebuild times while running the development server. This was previously introduced in v2.1.4 but had to be reverted. Thanks to [@ianschmitz](https://github.com/ianschmitz) for getting this ready. + +#### :bug: Bug Fix + +- `react-dev-utils` + - [#6511](https://github.com/facebook/create-react-app/pull/6511) Fix deploy instructions to make link clickable. ([@sbimochan](https://github.com/sbimochan)) +- `react-scripts` + - [#6472](https://github.com/facebook/create-react-app/pull/6472) Revert CSS sourcemaps in development. ([@bugzpodder](https://github.com/bugzpodder)) + - [#6444](https://github.com/facebook/create-react-app/pull/6444) Revert "Switch to eval-source-map (#5060)". ([@ianschmitz](https://github.com/ianschmitz)) + +#### :nail_care: Enhancement + +- `react-dev-utils`, `react-scripts` + - [#6406](https://github.com/facebook/create-react-app/pull/6406) Speed up TypeScript rebuild times in development. ([@ianschmitz](https://github.com/ianschmitz)) +- `create-react-app` + - [#6253](https://github.com/facebook/create-react-app/pull/6253) Only use `yarn.lock.cached` if using the default Yarn registry. ([@hangryCat](https://github.com/hangryCat)) +- `react-scripts` + - [#5457](https://github.com/facebook/create-react-app/pull/5457) Add forward ref to React SVG Component. ([@GasimGasimzada](https://github.com/GasimGasimzada)) + +#### :memo: Documentation + +- `babel-preset-react-app` + - [#6254](https://github.com/facebook/create-react-app/pull/6254) Improve Flow and TypeScript usage docs. ([@saranshkataria](https://github.com/saranshkataria)) +- `babel-preset-react-app`, `confusing-browser-globals`, `react-app-polyfill` + - [#6419](https://github.com/facebook/create-react-app/pull/6419) Improve language used in markdown code blocks. ([@cherouvim](https://github.com/cherouvim)) +- `create-react-app` + - [#6481](https://github.com/facebook/create-react-app/pull/6481) Fix typo. ([@adyouri](https://github.com/adyouri)) +- `react-dev-utils` + - [#6482](https://github.com/facebook/create-react-app/pull/6482) Fix typo. ([@mattfwood](https://github.com/mattfwood)) +- Other + - [#6438](https://github.com/facebook/create-react-app/pull/6438) Update `source-map-explorer` docs to analyze all chunks. ([@Kamahl19](https://github.com/Kamahl19)) + - [#6454](https://github.com/facebook/create-react-app/pull/6454) Fix typo. ([@DenrizSusam](https://github.com/DenrizSusam)) + - [#5767](https://github.com/facebook/create-react-app/pull/5767) Add information about using custom registries in e2e testing #4488. ([@juanpicado](https://github.com/juanpicado)) +- `react-dev-utils`, `react-scripts` + - [#6239](https://github.com/facebook/create-react-app/pull/6239) Convert all bit.ly links from http to https. ([@leighhalliday](https://github.com/leighhalliday)) + +#### :house: Internal + +- [#6493](https://github.com/facebook/create-react-app/pull/6493) Remove AppVeyor config files. ([@iansu](https://github.com/iansu)) +- [#6474](https://github.com/facebook/create-react-app/pull/6474) Remove latest Node version from Travis config. ([@iansu](https://github.com/iansu)) + +#### :hammer: Underlying Tools + +- `react-scripts` + - [#6387](https://github.com/facebook/create-react-app/pull/6387) Use contenthash instead of chunkhash for better long-term caching. ([@ianschmitz](https://github.com/ianschmitz)) +- Other + - [#6365](https://github.com/facebook/create-react-app/pull/6365) Upgrade Docusaurus and enable new features. ([@yangshun](https://github.com/yangshun)) + +#### Committers: 15 + +- Abdelhadi Dyouri ([adyouri](https://github.com/adyouri)) +- Bimochan Shrestha ([sbimochan](https://github.com/sbimochan)) +- Deniz Susman ([DenrizSusam](https://github.com/DenrizSusam)) +- Gasim Gasimzada ([GasimGasimzada](https://github.com/GasimGasimzada)) +- Ian Schmitz ([ianschmitz](https://github.com/ianschmitz)) +- Ian Sutherland ([iansu](https://github.com/iansu)) +- Ioannis Cherouvim ([cherouvim](https://github.com/cherouvim)) +- Jack Zhao ([bugzpodder](https://github.com/bugzpodder)) +- Juan Picado @jotadeveloper ([juanpicado](https://github.com/juanpicado)) +- Leigh Halliday ([leighhalliday](https://github.com/leighhalliday)) +- Martin Litvaj ([Kamahl19](https://github.com/Kamahl19)) +- Matt Wood ([mattfwood](https://github.com/mattfwood)) +- Meo H. ([hangryCat](https://github.com/hangryCat)) +- Saransh Kataria ([saranshkataria](https://github.com/saranshkataria)) +- Yangshun Tay ([yangshun](https://github.com/yangshun)) + +### Migrating from 2.1.5 to 2.1.6 + +Inside any created project that has not been ejected, run: + +```sh +npm install --save --save-exact react-scripts@2.1.6 +``` + +or + +```sh +yarn add --exact react-scripts@2.1.6 +``` + +## 2.1.5 (February 11, 2019) + +v2.1.5 is a maintenance release that reverts the TypeScript speed improvements ([#5903](https://github.com/facebook/create-react-app/pull/5903)) to fix a dependency issue in `react-dev-utils`. + +### Migrating from 2.1.4 to 2.1.5 + +Inside any created project that has not been ejected, run: + +```sh +npm install --save --save-exact react-scripts@2.1.5 +``` + +or + +```sh +yarn add --exact react-scripts@2.1.5 +``` + +## 2.1.4 (February 10, 2019) + +v2.1.4 is a maintenance release that brings a number of awesome improvements. A few notable ones include: + +- :rocket: Reduced TypeScript rebuild times while running the development server. TypeScript is now blazing fast! Special thanks to [@deftomat](https://github.com/deftomat) and [@johnnyreilly](https://github.com/johnnyreilly) and the other contributors for their hard work on this. ([#5903](https://github.com/facebook/create-react-app/pull/5903)) +- Jest [type ahead support](https://github.com/jest-community/jest-watch-typeahead) which provides a much nicer experience when filtering your tests using the Jest CLI ([#5213](https://github.com/facebook/create-react-app/pull/5213)) +- And many more improvements! + +#### :bug: Bug Fix + +- `react-scripts` + - [#6364](https://github.com/facebook/create-react-app/pull/6364) Use semicolons in the ProcessEnv interface. ([@DominikPalo](https://github.com/DominikPalo)) + - [#6276](https://github.com/facebook/create-react-app/pull/6276) Prevent cursor events on app-logo svg. ([@kostadriano](https://github.com/kostadriano)) + +#### :nail_care: Enhancement + +- `react-scripts` + - [#5213](https://github.com/facebook/create-react-app/pull/5213) Add Jest typeahead plugin. ([@gaearon](https://github.com/gaearon)) + - [#5713](https://github.com/facebook/create-react-app/pull/5713) Sass source map for dev. ([@zhuoli99](https://github.com/zhuoli99)) + - [#6285](https://github.com/facebook/create-react-app/pull/6285) Allow react-scripts test --no-watch. ([@ricokahler](https://github.com/ricokahler)) + - [#5060](https://github.com/facebook/create-react-app/pull/5060) Enable eval-source-map for firefox. ([@jasonLaster](https://github.com/jasonLaster)) +- `react-dev-utils`, `react-scripts` + - [#5903](https://github.com/facebook/create-react-app/pull/5903) Speed up TypeScript projects. ([@deftomat](https://github.com/deftomat)) + +#### :memo: Documentation + +- Other + - [#6383](https://github.com/facebook/create-react-app/pull/6383) Update docs links to prefer HTTPS for supported domains. ([@ianschmitz](https://github.com/ianschmitz)) + - [#6062](https://github.com/facebook/create-react-app/pull/6062) [docs] Warn/clarify that env vars are NOT "SECRET". ([@JBallin](https://github.com/JBallin)) + - [#6359](https://github.com/facebook/create-react-app/pull/6359) Update ZEIT Now deployment instructions. ([@timothyis](https://github.com/timothyis)) + - [#6346](https://github.com/facebook/create-react-app/pull/6346) Minor issue in README.md. ([@nathanlschneider](https://github.com/nathanlschneider)) + - [#6331](https://github.com/facebook/create-react-app/pull/6331) Update docs to document `--no-watch`. ([@ricokahler](https://github.com/ricokahler)) + - [#6229](https://github.com/facebook/create-react-app/pull/6229) Update `serve` port flag and add example. ([@lyzhovnik](https://github.com/lyzhovnik)) + - [#6190](https://github.com/facebook/create-react-app/pull/6190) Updating updating-to-new-releases.md for users who installed CRA globally. ([@carpben](https://github.com/carpben)) + - [#6095](https://github.com/facebook/create-react-app/pull/6095) Changes to steps for publishing GitHub User Page. ([@StevenTan](https://github.com/StevenTan)) + - [#6157](https://github.com/facebook/create-react-app/pull/6157) Add note for global install of CLI. ([@ianschmitz](https://github.com/ianschmitz)) + - [#6149](https://github.com/facebook/create-react-app/pull/6149) update link for difference between proposal stages. ([@loveky](https://github.com/loveky)) + - [#6141](https://github.com/facebook/create-react-app/pull/6141) Remove extra table cell. ([@yangshun](https://github.com/yangshun)) +- `react-scripts` + - [#6355](https://github.com/facebook/create-react-app/pull/6355) Make manifest.json description more generic. ([@chrisself](https://github.com/chrisself)) + +#### :house: Internal + +- Other + - [#6050](https://github.com/facebook/create-react-app/pull/6050) Fix e2e:docker failure with "access denied". ([@jamesknelson](https://github.com/jamesknelson)) + - [#6179](https://github.com/facebook/create-react-app/pull/6179) Update local-test.sh to return test exit code. ([@dallonf](https://github.com/dallonf)) + - [#6165](https://github.com/facebook/create-react-app/pull/6165) Fix CI builds. ([@ianschmitz](https://github.com/ianschmitz)) +- `react-scripts` + - [#5798](https://github.com/facebook/create-react-app/pull/5798) Added `module` to ignored node modules list. ([@dotansimha](https://github.com/dotansimha)) + - [#6022](https://github.com/facebook/create-react-app/pull/6022) TypeScript detection filtering 'node_modules'.. ([@holloway](https://github.com/holloway)) +- `react-dev-utils`, `react-scripts` + - [#6150](https://github.com/facebook/create-react-app/pull/6150) dependencies: move chalk to react-dev-utils. ([@otaviopace](https://github.com/otaviopace)) +- `babel-plugin-named-asset-import`, `react-scripts` + - [#5816](https://github.com/facebook/create-react-app/pull/5816) Upgrade @svgr/webpack to 4.1.0. ([@alaycock](https://github.com/alaycock)) +- `react-dev-utils` + - [#6162](https://github.com/facebook/create-react-app/pull/6162) Update react-dev-util globby dependency to v8.0.2. ([@davidlukerice](https://github.com/davidlukerice)) +- `babel-preset-react-app`, `react-app-polyfill`, `react-dev-utils`, `react-error-overlay`, `react-scripts` + - [#6137](https://github.com/facebook/create-react-app/pull/6137) Fix CI and upgrade dependencies. ([@Timer](https://github.com/Timer)) + +#### :hammer: Underlying Tools + +- `babel-preset-react-app`, `react-app-polyfill`, `react-dev-utils`, `react-scripts` + - [#6393](https://github.com/facebook/create-react-app/pull/6393) Upgrade dependencies. ([@ianschmitz](https://github.com/ianschmitz)) +- `babel-preset-react-app` + - [#6307](https://github.com/facebook/create-react-app/pull/6307) Update babel-plugin-macros 2.4.4 -> 2.4.5. ([@maniax89](https://github.com/maniax89)) +- `eslint-config-react-app`, `react-scripts` + - [#6132](https://github.com/facebook/create-react-app/pull/6132) Bump eslint-plugin-react version and update webpack config. ([@ianschmitz](https://github.com/ianschmitz)) + +#### Committers: 29 + +- Adam Laycock ([alaycock](https://github.com/alaycock)) +- Adriano Costa ([kostadriano](https://github.com/kostadriano)) +- Andrew Turgeon ([maniax89](https://github.com/maniax89)) +- Ben Carp ([carpben](https://github.com/carpben)) +- Charles Pritchard ([Downchuck](https://github.com/Downchuck)) +- Chris Self ([chrisself](https://github.com/chrisself)) +- Dallon Feldner ([dallonf](https://github.com/dallonf)) +- Dan Abramov ([gaearon](https://github.com/gaearon)) +- David Rice ([davidlukerice](https://github.com/davidlukerice)) +- Dominik Palo ([DominikPalo](https://github.com/DominikPalo)) +- Dotan Simha ([dotansimha](https://github.com/dotansimha)) +- Ian Schmitz ([ianschmitz](https://github.com/ianschmitz)) +- JBallin ([JBallin](https://github.com/JBallin)) +- James George ([jamesgeorge007](https://github.com/jamesgeorge007)) +- James K Nelson ([jamesknelson](https://github.com/jamesknelson)) +- Jason Laster ([jasonLaster](https://github.com/jasonLaster)) +- Joe Haddad ([Timer](https://github.com/Timer)) +- Matthew Holloway ([holloway](https://github.com/holloway)) +- Nathan Schneider ([nathanlschneider](https://github.com/nathanlschneider)) +- Nikita Lyzhov ([lyzhovnik](https://github.com/lyzhovnik)) +- Otávio Pace ([otaviopace](https://github.com/otaviopace)) +- Rico Kahler ([ricokahler](https://github.com/ricokahler)) +- Steven Tan ([StevenTan](https://github.com/StevenTan)) +- Timothy ([timothyis](https://github.com/timothyis)) +- Tomáš Szabo ([deftomat](https://github.com/deftomat)) +- Yangshun Tay ([yangshun](https://github.com/yangshun)) +- [gottfired](https://github.com/gottfired) +- [zhuoli99](https://github.com/zhuoli99) +- loveky ([loveky](https://github.com/loveky)) + +### Migrating from 2.1.3 to 2.1.4 + +Inside any created project that has not been ejected, run: + +```sh +npm install --save --save-exact react-scripts@2.1.4 +``` + +or + +```sh +yarn add --exact react-scripts@2.1.4 +``` + +## 2.1.3 (January 4, 2019) + +v2.1.3 is a maintenance release to fix a [vulnerability in webpack-dev-server](https://www.npmjs.com/advisories/725). + +#### :memo: Documentation + +- Other + - [#6067](https://github.com/facebook/create-react-app/pull/6067) Correct an error for documentation. ([@hardo](https://github.com/hardo)) + - [#6110](https://github.com/facebook/create-react-app/pull/6110) Replace deprecated VSCode launch.json variable. ([@raiskila](https://github.com/raiskila)) + - [#5631](https://github.com/facebook/create-react-app/pull/5631) Generalize the adding bootstrap documentation. ([@jquense](https://github.com/jquense)) + - [#6084](https://github.com/facebook/create-react-app/pull/6084) Remove outdated docs for setting up eslint in editor. ([@LukasWerfel](https://github.com/LukasWerfel)) + - [#6061](https://github.com/facebook/create-react-app/pull/6061) Fix control comment of CSS Grid prefixing. ([@denexapp](https://github.com/denexapp)) +- `react-scripts` + - [#6036](https://github.com/facebook/create-react-app/pull/6036) Fix comment typo. ([@shawtung](https://github.com/shawtung)) + +#### :house: Internal + +- `create-react-app`, `react-error-overlay` + - [#6104](https://github.com/facebook/create-react-app/pull/6104) Typo fixes. ([@prashant-andani](https://github.com/prashant-andani)) + +#### :hammer: Underlying Tools + +- `react-scripts` + - [#6064](https://github.com/facebook/create-react-app/pull/6064) Update webpack-dev-server 3.1.9 -> 3.1.14. ([@Friss](https://github.com/Friss)) + +#### Committers: 8 + +- Denis Mukhametov ([denexapp](https://github.com/denexapp)) +- Hardo ([hardo](https://github.com/hardo)) +- Janne Raiskila ([raiskila](https://github.com/raiskila)) +- Jason Quense ([jquense](https://github.com/jquense)) +- Lukas Werfel ([LukasWerfel](https://github.com/LukasWerfel)) +- Prashant Andani ([prashant-andani](https://github.com/prashant-andani)) +- Zachary Friss ([Friss](https://github.com/Friss)) +- [shawtung](https://github.com/shawtung) + +### Migrating from 2.1.2 to 2.1.3 + +Inside any created project that has not been ejected, run: + +```sh +npm install --save --save-exact react-scripts@2.1.3 +``` + +or + +```sh +yarn add --exact react-scripts@2.1.3 +``` + +## 2.1.2 (December 23, 2018) + +v2.1.2 is a maintenance release including various bug fixes. + +#### :rocket: New Feature + +- `babel-preset-react-app` + - [#5487](https://github.com/facebook/create-react-app/pull/5487) Add `allowESModules` option to `babel-preset-react-app` ([@Pajn](https://github.com/Pajn)) + +#### :bug: Bug Fix + +- `create-react-app` + - [#5905](https://github.com/facebook/create-react-app/pull/5905) Disable copy to clipboard in `create-react-app --info` ([@heyimalex](https://github.com/heyimalex)) + - [#5685](https://github.com/facebook/create-react-app/pull/5685) Update envinfo to `5.11.1` ([@tabrindle](https://github.com/tabrindle)) +- `babel-preset-react-app` + - [#5783](https://github.com/facebook/create-react-app/pull/5783) Fix TypeScript decorator support ([@ianschmitz](https://github.com/ianschmitz)) +- `babel-plugin-named-asset-import` + - [#5573](https://github.com/facebook/create-react-app/pull/5573) Fix named-asset-import plugin to work with export-as syntax ([@NShahri](https://github.com/NShahri)) +- `react-app-polyfill` + - [#5789](https://github.com/facebook/create-react-app/pull/5789) Don't polyfill fetch for Node ([@gshilin](https://github.com/gshilin)) +- `react-scripts` + - [#5721](https://github.com/facebook/create-react-app/pull/5721) Version bump `postcss-preset-env` to latest ([@BPScott](https://github.com/BPScott)) + - [#5701](https://github.com/facebook/create-react-app/pull/5701) Fix `tsconfig.json` lib suggested value ([@ianschmitz](https://github.com/ianschmitz)) + +#### :nail_care: Enhancement + +- `react-scripts` + - [#5698](https://github.com/facebook/create-react-app/pull/5698) Add support for `setupTests.ts` ([@ianschmitz](https://github.com/ianschmitz)) + +#### :memo: Documentation + +- Other + - [#6009](https://github.com/facebook/create-react-app/pull/6009) Correct markdown to avoid comment. ([@souzasmatheus](https://github.com/souzasmatheus)) + - [#6015](https://github.com/facebook/create-react-app/pull/6015) Add example command to create typed project. ([@mbelsky](https://github.com/mbelsky)) + - [#6000](https://github.com/facebook/create-react-app/pull/6000) Make links to docs consistent in README. ([@iansu](https://github.com/iansu)) + - [#5900](https://github.com/facebook/create-react-app/pull/5900) Add production build section to docs. ([@ianschmitz](https://github.com/ianschmitz)) + - [#5985](https://github.com/facebook/create-react-app/pull/5985) Use https for linked images to fix mixed content warnings. ([@iansu](https://github.com/iansu)) + - [#5919](https://github.com/facebook/create-react-app/pull/5919) Docs: update localStorage mock in “Running Tests”. ([@phacks](https://github.com/phacks)) + - [#5917](https://github.com/facebook/create-react-app/pull/5917) Add SASS_PATH instructions to Sass stylesheet docs. ([@jayantbh](https://github.com/jayantbh)) + - [#5823](https://github.com/facebook/create-react-app/pull/5823) Add default values to `file_ext` note. ([@alaycock](https://github.com/alaycock)) + - [#5907](https://github.com/facebook/create-react-app/pull/5907) Update README.md with updated link about PWAs. ([@wuweiweiwu](https://github.com/wuweiweiwu)) + - [#5858](https://github.com/facebook/create-react-app/pull/5858) Some Grammar fixes. ([@nikhilknoldus](https://github.com/nikhilknoldus)) + - [#5883](https://github.com/facebook/create-react-app/pull/5883) Fix link to page about running tests. ([@wsmoak](https://github.com/wsmoak)) + - [#5849](https://github.com/facebook/create-react-app/pull/5849) React native repository updated in `README.md`. ([@pavinthan](https://github.com/pavinthan)) + - [#5806](https://github.com/facebook/create-react-app/pull/5806) Rename 'getting started' link to 'docs'. ([@kulek1](https://github.com/kulek1)) + - [#5788](https://github.com/facebook/create-react-app/pull/5788) docs: Simplify installing Storybook with `npx` ([@sagirk](https://github.com/sagirk)) + - [#5779](https://github.com/facebook/create-react-app/pull/5779) docs: Change story book command to `sb init` ([@andys8](https://github.com/andys8)) + - [#5759](https://github.com/facebook/create-react-app/pull/5759) Add PR welcoming badge ([@open-source-explorer](https://github.com/open-source-explorer)) + - [#5730](https://github.com/facebook/create-react-app/pull/5730) Suggest Encore when not building a SPA with Symfony ([@dunglas](https://github.com/dunglas)) + - [#5710](https://github.com/facebook/create-react-app/pull/5710) Updated the link to firebase hosting ([@githubsaturn](https://github.com/githubsaturn)) + - [#5704](https://github.com/facebook/create-react-app/pull/5704) Fixed link to manifest.json file ([@m4jing](https://github.com/m4jing)) + - [#5670](https://github.com/facebook/create-react-app/pull/5670) Fix public folder documentation link ([@makovkastar](https://github.com/makovkastar)) +- `eslint-config-react-app` + - [#5990](https://github.com/facebook/create-react-app/pull/5990) Updated docs for `.eslintrc` ([@ManoelLobo](https://github.com/ManoelLobo)) +- `babel-preset-react-app`, `create-react-app`, `eslint-config-react-app`, `react-dev-utils`, `react-scripts` + - [#5912](https://github.com/facebook/create-react-app/pull/5912) Update links to docs in all package README files ([@iansu](https://github.com/iansu)) +- `react-scripts` + - [#5974](https://github.com/facebook/create-react-app/pull/5974) Improve advice in `verifyPackageTree.js` ([@sjalgeo](https://github.com/sjalgeo)) + - [#5954](https://github.com/facebook/create-react-app/pull/5954) Add pre-eject message about new features in v2 ([@iansu](https://github.com/iansu)) + - [#5808](https://github.com/facebook/create-react-app/pull/5808) Add placeholders to template README for bit.ly links ([@iansu](https://github.com/iansu)) +- `react-app-polyfill` + - [#5814](https://github.com/facebook/create-react-app/pull/5814) Note that extra polyfills must be included manually ([@ajwann](https://github.com/ajwann)) +- `babel-preset-react-app`, `eslint-config-react-app`, `react-error-overlay`, `react-scripts` + - [#5727](https://github.com/facebook/create-react-app/pull/5727) Fix typo ([@noelyoo](https://github.com/noelyoo)) + +#### :house: Internal + +- `react-scripts` + - [#5978](https://github.com/facebook/create-react-app/pull/5978) Add `webp` support for TypeScript. ([@dugagjin](https://github.com/dugagjin)) + - [#5959](https://github.com/facebook/create-react-app/pull/5959) Suggest a different default for speed reasons. ([@Timer](https://github.com/Timer)) + - [#5839](https://github.com/facebook/create-react-app/pull/5839) Run prettier on HTML files. ([@sibiraj-s](https://github.com/sibiraj-s)) + - [#5722](https://github.com/facebook/create-react-app/pull/5722) Merge webpack configuration. ([@Timer](https://github.com/Timer)) + - [#5694](https://github.com/facebook/create-react-app/pull/5694) Add permissive TS lib defaults. ([@Timer](https://github.com/Timer)) +- Other + - [#5988](https://github.com/facebook/create-react-app/pull/5988) Added extension to `.eslintrc` ([@ManoelLobo](https://github.com/ManoelLobo)) + - [#5546](https://github.com/facebook/create-react-app/pull/5546) Add the latest stable node version. ([@noelyoo](https://github.com/noelyoo)) +- `react-dev-utils` + - [#5927](https://github.com/facebook/create-react-app/pull/5927) Correct some comments. ([@mjackson](https://github.com/mjackson)) + - [#5879](https://github.com/facebook/create-react-app/pull/5879) fix: make typescriptformatter support 0.5 of fork checker. ([@SimenB](https://github.com/SimenB)) +- `react-error-overlay` + - [#5451](https://github.com/facebook/create-react-app/pull/5451) fix: add `sideEffects: false` to react-error-overlay. ([@SimenB](https://github.com/SimenB)) +- `babel-preset-react-app` + - [#5487](https://github.com/facebook/create-react-app/pull/5487) Add allowESModules option to babel-preset-react-app. ([@Pajn](https://github.com/Pajn)) +- `create-react-app` + - [#4605](https://github.com/facebook/create-react-app/pull/4605) ignore intellij module files when generating an app. ([@denofevil](https://github.com/denofevil)) + +#### Committers: 36 + +- \ ([open-source-explorer](https://github.com/open-source-explorer)) +- Adam Laycock ([alaycock](https://github.com/alaycock)) +- Adam Wanninger ([ajwann](https://github.com/ajwann)) +- Alex Guerra ([heyimalex](https://github.com/heyimalex)) +- Andy ([andys8](https://github.com/andys8)) +- Ben Scott ([BPScott](https://github.com/BPScott)) +- Dennis Ushakov ([denofevil](https://github.com/denofevil)) +- Dugagjin Lashi ([dugagjin](https://github.com/dugagjin)) +- Gregory Shilin ([gshilin](https://github.com/gshilin)) +- Ian Schmitz ([ianschmitz](https://github.com/ianschmitz)) +- Ian Sutherland ([iansu](https://github.com/iansu)) +- Jayant Bhawal ([jayantbh](https://github.com/jayantbh)) +- Jing Ma ([m4jing](https://github.com/m4jing)) +- Joe Haddad ([Timer](https://github.com/Timer)) +- Kasra Bigdeli ([githubsaturn](https://github.com/githubsaturn)) +- Kévin Dunglas ([dunglas](https://github.com/dunglas)) +- Manoel ([ManoelLobo](https://github.com/ManoelLobo)) +- Matheus Souza ([souzasmatheus](https://github.com/souzasmatheus)) +- Max Belsky ([mbelsky](https://github.com/mbelsky)) +- Michael Jackson ([mjackson](https://github.com/mjackson)) +- Nicolas Goutay ([phacks](https://github.com/phacks)) +- Nikhil ([nikhilknoldus](https://github.com/nikhilknoldus)) +- Nima Shahri ([NShahri](https://github.com/NShahri)) +- Noel Yoo ([noelyoo](https://github.com/noelyoo)) +- Oleksandr Melnykov ([makovkastar](https://github.com/makovkastar)) +- Pavinthan ([pavinthan](https://github.com/pavinthan)) +- Rasmus Eneman ([Pajn](https://github.com/Pajn)) +- Sagir Khan ([sagirk](https://github.com/sagirk)) +- Sibiraj ([sibiraj-s](https://github.com/sibiraj-s)) +- Simen Bekkhus ([SimenB](https://github.com/SimenB)) +- Stephen Algeo ([sjalgeo](https://github.com/sjalgeo)) +- Trevor Brindle ([tabrindle](https://github.com/tabrindle)) +- Wei-Wei Wu ([wuweiweiwu](https://github.com/wuweiweiwu)) +- Wendy Smoak ([wsmoak](https://github.com/wsmoak)) +- [kulek1](https://github.com/kulek1) +- swyx ([sw-yx](https://github.com/sw-yx)) + +### Migrating from 2.1.1 to 2.1.2 + +Inside any created project that has not been ejected, run: + +```sh +npm install --save --save-exact react-scripts@2.1.2 +``` + +or + +```sh +yarn add --exact react-scripts@2.1.2 +``` + +## 2.1.1 (October 31, 2018) + +Happy Halloween 🎃 👻! This spooky release brings a treat: decorator support in TypeScript files! + +#### :bug: Bug Fix + +- `babel-preset-react-app` + - [#5659](https://github.com/facebook/create-react-app/pull/5659) Add support for decorators. ([@Timer](https://github.com/Timer)) +- `react-scripts` + - [#5621](https://github.com/facebook/create-react-app/pull/5621) fix 'Duplicate string index signature' in ProcessEnv. ([@xiaoxiangmoe](https://github.com/xiaoxiangmoe)) + +#### :nail_care: Enhancement + +- `babel-preset-react-app` + - [#5659](https://github.com/facebook/create-react-app/pull/5659) Add support for decorators. ([@Timer](https://github.com/Timer)) + +#### :memo: Documentation + +- [#5658](https://github.com/facebook/create-react-app/pull/5658) Update making-a-progressive-web-app.md. ([@jakeboone02](https://github.com/jakeboone02)) +- [#5635](https://github.com/facebook/create-react-app/pull/5635) Update minimum node version to 8.10 in README. ([@iansu](https://github.com/iansu)) +- [#5629](https://github.com/facebook/create-react-app/pull/5629) Add link to cra-ts migration guide. ([@Vinnl](https://github.com/Vinnl)) + +#### :house: Internal + +- `react-error-overlay` + - [#4709](https://github.com/facebook/create-react-app/pull/4709) Expose `reportRuntimeError`. ([@hipstersmoothie](https://github.com/hipstersmoothie)) +- `babel-plugin-named-asset-import` + - [#5575](https://github.com/facebook/create-react-app/pull/5575) add tests for named-asset-imports plugin. ([@NShahri](https://github.com/NShahri)) +- `react-scripts` + - [#5651](https://github.com/facebook/create-react-app/pull/5651) Make serviceWorker config argument optional in typescript. ([@eddedd88](https://github.com/eddedd88)) + +#### Committers: 8 + +- Andrew Lisowski ([hipstersmoothie](https://github.com/hipstersmoothie)) +- Eduardo Duran ([eddedd88](https://github.com/eddedd88)) +- Ian Sutherland ([iansu](https://github.com/iansu)) +- Jake Boone ([jakeboone02](https://github.com/jakeboone02)) +- Joe Haddad ([Timer](https://github.com/Timer)) +- Nima Shahri ([NShahri](https://github.com/NShahri)) +- Vincent ([Vinnl](https://github.com/Vinnl)) +- ZHAO Jinxiang ([xiaoxiangmoe](https://github.com/xiaoxiangmoe)) + +### Migrating from 2.1.0 to 2.1.1 + +Inside any created project that has not been ejected, run: + +```sh +npm install --save --save-exact react-scripts@2.1.1 +``` + +or + +```sh +yarn add --exact react-scripts@2.1.1 +``` + +## 2.1.0 (October 29, 2018) + +Create React App 2.1 adds support for TypeScript! Read [the documentation](https://facebook.github.io/create-react-app/docs/adding-typescript) to get started. + +New applications can be created using TypeScript by running: + +```sh +$ npx create-react-app my-app --typescript +``` + +#### :rocket: New Feature + +- `create-react-app`, `react-scripts` + - [#5550](https://github.com/facebook/create-react-app/pull/5550) Add TypeScript app creation ([@Timer](https://github.com/Timer)) +- `babel-preset-react-app`, `react-scripts` + - [#4837](https://github.com/facebook/create-react-app/pull/4837) TypeScript support using Babel 7 ([@brunolemos](https://github.com/brunolemos)) + +#### :bug: Bug Fix + +- `react-scripts` + - [#5611](https://github.com/facebook/create-react-app/pull/5611) Remove react-scripts type reference on eject. ([@Timer](https://github.com/Timer)) + - [#5614](https://github.com/facebook/create-react-app/pull/5614) Ignore json files from TypeScript type checking. ([@brunolemos](https://github.com/brunolemos)) + - [#5609](https://github.com/facebook/create-react-app/pull/5609) Remove unsupported options. ([@Timer](https://github.com/Timer)) + - [#5608](https://github.com/facebook/create-react-app/pull/5608) Ignore test files from reported type errors. ([@Timer](https://github.com/Timer)) + - [#5589](https://github.com/facebook/create-react-app/pull/5589) Update react-app.d.ts. ([@brunolemos](https://github.com/brunolemos)) + - [#5557](https://github.com/facebook/create-react-app/pull/5557) Add typings for process.env. ([@brunolemos](https://github.com/brunolemos)) + - [#5532](https://github.com/facebook/create-react-app/pull/5532) Use TypeScript parser to read tsconfig.json. ([@brunolemos](https://github.com/brunolemos)) + - [#5527](https://github.com/facebook/create-react-app/pull/5527) Update Workbox dependency. ([@jeffposnick](https://github.com/jeffposnick)) +- `react-dev-utils`, `react-scripts` + - [#5549](https://github.com/facebook/create-react-app/pull/5549) Automatically setup TypeScript when detected. ([@Timer](https://github.com/Timer)) + - [#5537](https://github.com/facebook/create-react-app/pull/5537) Respect tsconfig.json extends when validating config. ([@ianschmitz](https://github.com/ianschmitz)) + +#### :nail_care: Enhancement + +- `create-react-app`, `react-scripts` + - [#5593](https://github.com/facebook/create-react-app/pull/5593) Refine how TypeScript types are handled. ([@Timer](https://github.com/Timer)) +- `react-scripts` + - [#5531](https://github.com/facebook/create-react-app/pull/5531) Enable TypeScript json module resolver. ([@brunolemos](https://github.com/brunolemos)) + - [#5524](https://github.com/facebook/create-react-app/pull/5524) Validate tsconfig when using TypeScript. ([@Timer](https://github.com/Timer)) + - [#5516](https://github.com/facebook/create-react-app/pull/5516) Check for TypeScript install in preflight. ([@Timer](https://github.com/Timer)) + - [#5515](https://github.com/facebook/create-react-app/pull/5515) Always type check TypeScript when being used. ([@Timer](https://github.com/Timer)) +- `react-dev-utils`, `react-scripts` + - [#5529](https://github.com/facebook/create-react-app/pull/5529) Add TypeScript error formatting. ([@Timer](https://github.com/Timer)) + +#### :memo: Documentation + +- Other + - [#5552](https://github.com/facebook/create-react-app/pull/5552) Fixing Internal Links. ([@ehfeng](https://github.com/ehfeng)) + - [#5551](https://github.com/facebook/create-react-app/pull/5551) Add Algolia search bar to Docusaurus. ([@amyrlam](https://github.com/amyrlam)) + - [#5533](https://github.com/facebook/create-react-app/pull/5533) Simplified TypeScript steps. ([@brunolemos](https://github.com/brunolemos)) + - [#5492](https://github.com/facebook/create-react-app/pull/5492) Add "edit" feature to Docusaurus pages. ([@amyrlam](https://github.com/amyrlam)) + - [#5499](https://github.com/facebook/create-react-app/pull/5499) Fix title on Safari. ([@yuyokk](https://github.com/yuyokk)) + - [#5494](https://github.com/facebook/create-react-app/pull/5494) Fix typo. ([@noelyoo](https://github.com/noelyoo)) + - [#5493](https://github.com/facebook/create-react-app/pull/5493) Fixed typo in getting-started. ([@jessepeterman](https://github.com/jessepeterman)) + - [#5344](https://github.com/facebook/create-react-app/pull/5344) Add some headings to the getting started section. ([@selbekk](https://github.com/selbekk)) + - [#5251](https://github.com/facebook/create-react-app/pull/5251) Add SoMe links to documentation. ([@selbekk](https://github.com/selbekk)) +- `react-scripts` + - [#5512](https://github.com/facebook/create-react-app/pull/5512) Update doc links in template README. ([@iansu](https://github.com/iansu)) + - [#5475](https://github.com/facebook/create-react-app/pull/5475) Fix typo. ([@thompk2](https://github.com/thompk2)) + - [#5449](https://github.com/facebook/create-react-app/pull/5449) Remove dot from the end of the link to fix it when using from GitHub. ([@ranyitz](https://github.com/ranyitz)) + +#### :house: Internal + +- `react-scripts` + - [#5607](https://github.com/facebook/create-react-app/pull/5607) Turn on certain TypeScript options. ([@Timer](https://github.com/Timer)) + - [#5559](https://github.com/facebook/create-react-app/pull/5559) Change import syntax from typescript declaration. ([@brunolemos](https://github.com/brunolemos)) + - [#5469](https://github.com/facebook/create-react-app/pull/5469) Avoid pushing .pnp folder to git. ([@NShahri](https://github.com/NShahri)) + - [#5527](https://github.com/facebook/create-react-app/pull/5527) Update Workbox dependency. ([@jeffposnick](https://github.com/jeffposnick)) +- `eslint-config-react-app` + - [#5586](https://github.com/facebook/create-react-app/pull/5586) Fixing the code splitting links in the ESLint output. ([@jheijmans](https://github.com/jheijmans)) + +#### Committers: 15 + +- Amy Lam ([amyrlam](https://github.com/amyrlam)) +- Bruno Lemos ([brunolemos](https://github.com/brunolemos)) +- Eric Feng ([ehfeng](https://github.com/ehfeng)) +- Ian Schmitz ([ianschmitz](https://github.com/ianschmitz)) +- Ian Sutherland ([iansu](https://github.com/iansu)) +- Iurii Kucherov ([yuyokk](https://github.com/yuyokk)) +- Jeffrey Posnick ([jeffposnick](https://github.com/jeffposnick)) +- Jeroen Heijmans ([jheijmans](https://github.com/jheijmans)) +- Jesse Peterman ([jessepeterman](https://github.com/jessepeterman)) +- Joe Haddad ([Timer](https://github.com/Timer)) +- Kit Thompson ([thompk2](https://github.com/thompk2)) +- Kristofer Selbekk ([selbekk](https://github.com/selbekk)) +- Nima Shahri ([NShahri](https://github.com/NShahri)) +- Noel Yoo ([noelyoo](https://github.com/noelyoo)) +- Ran Yitzhaki ([ranyitz](https://github.com/ranyitz)) + +### Migrating from 2.0.5 to 2.1.0 + +Inside any created project that has not been ejected, run: + +```sh +npm install --save --save-exact react-scripts@2.1.0 +``` + +or + +```sh +yarn add --exact react-scripts@2.1.0 +``` + +## 2.0.5 (October 14, 2018) + +#### :bug: Bug Fix + +- `react-dev-utils` + + - [#5431](https://github.com/facebook/create-react-app/pull/5431) Fix click-to-open on Windows. ([@gaearon](https://github.com/gaearon)) + - [#5335](https://github.com/facebook/create-react-app/pull/5335) Fix file size report after build. ([@OskarPersson](https://github.com/OskarPersson)) + +- `create-react-app` + + - [#5362](https://github.com/facebook/create-react-app/pull/5362) Fix CI: non-semver compliant Yarn versions. ([@Timer](https://github.com/Timer)) + +- `react-scripts` + - [#5301](https://github.com/facebook/create-react-app/pull/5301) Fix TypeError when registering service workers without config. ([@peterbe](https://github.com/peterbe)) + +#### :nail_care: Enhancement + +- `babel-preset-react-app` + + - [#4984](https://github.com/facebook/create-react-app/pull/4984) Use the correct dependency for `babel-plugin-dynamic-import-node`. ([@vikr01](https://github.com/vikr01)) + +- `react-scripts` + - [#5354](https://github.com/facebook/create-react-app/pull/5354) Add environment variable to optionaly disable inlining of chunks. ([@0xdeafcafe](https://github.com/0xdeafcafe)) + - [#5330](https://github.com/facebook/create-react-app/pull/5330) Update `eslint-plugin-jsx-a11y` version. ([@AlmeroSteyn](https://github.com/AlmeroSteyn)) + +#### :memo: Documentation + +- `react-scripts` + - [#5321](https://github.com/facebook/create-react-app/pull/5321) Added note on update to `.flowconfig` for .scss imports. ([@rlueder](https://github.com/rlueder)) + - [#5394](https://github.com/facebook/create-react-app/pull/5394) Correct instructions for HTTPS and PowerShell. ([@gavinbarron](https://github.com/gavinbarron)) + - [#5410](https://github.com/facebook/create-react-app/pull/5410) Updates to clarify the "waiting" SW behavior. ([@jeffposnick](https://github.com/jeffposnick)) + - [#5302](https://github.com/facebook/create-react-app/pull/5302) Update README.md. ([@simonCordovaByte9](https://github.com/simonCordovaByte9)) + - [#5334](https://github.com/facebook/create-react-app/pull/5334) Update README due to deprecation of react-testing-library's toBeInTheDOM. ([@rrebase](https://github.com/rrebase)) + - [#5326](https://github.com/facebook/create-react-app/pull/5326) README link fixes. ([@davidgilbertson](https://github.com/davidgilbertson)) + - [#5327](https://github.com/facebook/create-react-app/pull/5327) Updated the URL in index.html. ([@behzod](https://github.com/behzod)) + - [#5296](https://github.com/facebook/create-react-app/pull/5296) Adding documentation about git init. ([@ryancogswell](https://github.com/ryancogswell)) + - [#5290](https://github.com/facebook/create-react-app/pull/5290) Add react-testing-library documentation/examples (#4679). ([@gnapse](https://github.com/gnapse)) + - [#5286](https://github.com/facebook/create-react-app/pull/5286) Fix broken links to src/serviceWorker.js. ([@adambowles](https://github.com/adambowles)) +- Other + + - [#5374](https://github.com/facebook/create-react-app/pull/5374) Add the new SVGs feature from the template README to the root README. ([@neo](https://github.com/neo)) + - [#5371](https://github.com/facebook/create-react-app/pull/5371) Update path to serviceWorker.js in graphical folder structure. ([@jonscottclark](https://github.com/jonscottclark)) + - [#5337](https://github.com/facebook/create-react-app/pull/5337) Fix typo. ([@mvasin](https://github.com/mvasin)) + +- `eslint-config-react-app` + - [#5416](https://github.com/facebook/create-react-app/pull/5416) Fix eslint config docs. ([@ludovicofischer](https://github.com/ludovicofischer)) + +#### :house: Internal + +- Other + + - [#5365](https://github.com/facebook/create-react-app/pull/5365) Clean up the behavior tests. ([@Timer](https://github.com/Timer)) + +- `create-react-app` + - [#5362](https://github.com/facebook/create-react-app/pull/5362) Fix CI: non-semver compliant Yarn versions. ([@Timer](https://github.com/Timer)) +- `react-scripts` + - [#5317](https://github.com/facebook/create-react-app/pull/5317) Remove unused require for getCacheIdentifier after ejecting. ([@benbrandt](https://github.com/benbrandt)) + +#### Committers: 23 + +- Adam Bowles ([adambowles](https://github.com/adambowles)) +- Alex Forbes-Reed ([0xdeafcafe](https://github.com/0xdeafcafe)) +- Almero Steyn ([AlmeroSteyn](https://github.com/AlmeroSteyn)) +- Behzod Saidov ([behzod](https://github.com/behzod)) +- Ben Brandt ([benbrandt](https://github.com/benbrandt)) +- Dan Abramov ([gaearon](https://github.com/gaearon)) +- David Gilbertson ([davidgilbertson](https://github.com/davidgilbertson)) +- Ernesto García ([gnapse](https://github.com/gnapse)) +- Gavin Barron ([gavinbarron](https://github.com/gavinbarron)) +- Jeffrey Posnick ([jeffposnick](https://github.com/jeffposnick)) +- Joe Haddad ([Timer](https://github.com/Timer)) +- Jon Clark ([jonscottclark](https://github.com/jonscottclark)) +- Kristofer Selbekk ([selbekk](https://github.com/selbekk)) +- Ludovico Fischer ([ludovicofischer](https://github.com/ludovicofischer)) +- Mikhail Vasin ([mvasin](https://github.com/mvasin)) +- Oskar Persson ([OskarPersson](https://github.com/OskarPersson)) +- Peter Bengtsson ([peterbe](https://github.com/peterbe)) +- Rafael Lüder ([rlueder](https://github.com/rlueder)) +- Ragnar Rebase ([rrebase](https://github.com/rrebase)) +- Ryan Cogswell ([ryancogswell](https://github.com/ryancogswell)) +- Vikram Rangaraj ([vikr01](https://github.com/vikr01)) +- Wenchen Li ([neo](https://github.com/neo)) +- [simonCordovaByte9](https://github.com/simonCordovaByte9) + +### Migrating from 2.0.4 to 2.0.5 + +Inside any created project that has not been ejected, run: + +```sh +npm install --save --save-exact react-scripts@2.0.5 +``` + +or + +```sh +yarn add --exact react-scripts@2.0.5 +``` + +## 2.0.4 (October 3, 2018) + +#### :bug: Bug Fix + +- `react-scripts` + - [#5281](https://github.com/facebook/create-react-app/pull/5281) Fix code minifying ([@Timer](https://github.com/Timer)) + - [#5246](https://github.com/facebook/create-react-app/pull/5246) Fix `GENERATE_SOURCEMAP` env not working for css sourcemap ([@crux153](https://github.com/crux153)) +- `babel-preset-react-app` + - [#5278](https://github.com/facebook/create-react-app/pull/5278) Disable Symbol typeof transform ([@gaearon](https://github.com/gaearon)) + +#### :nail_care: Enhancement + +- `create-react-app` + - [#5270](https://github.com/facebook/create-react-app/pull/5270) Caches the Yarn resolution for faster installs ([@arcanis](https://github.com/arcanis)) + - [#5269](https://github.com/facebook/create-react-app/pull/5269) Adds a version check when using --use-pnp ([@arcanis](https://github.com/arcanis)) +- `react-scripts` + - [#5258](https://github.com/facebook/create-react-app/pull/5258) Add `.mjs` support back to webpack ([@Timer](https://github.com/Timer)) + +#### :memo: Documentation + +- Other + - [#5228](https://github.com/facebook/create-react-app/pull/5228) removed create-react-app-parcel link ([@lockround](https://github.com/lockround)) + - [#5254](https://github.com/facebook/create-react-app/pull/5254) Update README links for CSS modules and SASS ([@yuyokk](https://github.com/yuyokk)) + - [#5249](https://github.com/facebook/create-react-app/pull/5249) Set the color palette to something a bit more React-y ([@selbekk](https://github.com/selbekk)) + - [#5244](https://github.com/facebook/create-react-app/pull/5244) Update favicon and OpenGraph images ([@selbekk](https://github.com/selbekk)) + - [#5242](https://github.com/facebook/create-react-app/pull/5242) 5238 Removing sample pages ([@selbekk](https://github.com/selbekk)) + - [#5243](https://github.com/facebook/create-react-app/pull/5243) Set the project name and owner correctly ([@selbekk](https://github.com/selbekk)) + - [#5239](https://github.com/facebook/create-react-app/pull/5239) 5238 removing blog from Docusaurus ([@selbekk](https://github.com/selbekk)) + - [#5227](https://github.com/facebook/create-react-app/pull/5227) Initial setup of Docusaurus ([@amyrlam](https://github.com/amyrlam)) +- `react-scripts` + - [#5252](https://github.com/facebook/create-react-app/pull/5252) Revert change to http-proxy-middleware docs ([@iansu](https://github.com/iansu)) + - [#5226](https://github.com/facebook/create-react-app/pull/5226) Fix usage of http-proxy-middleware ([@banyan](https://github.com/banyan)) + - [#5233](https://github.com/facebook/create-react-app/pull/5233) DOCS: Add Relay example ([@zachasme](https://github.com/zachasme)) + +#### :house: Internal + +- [#5263](https://github.com/facebook/create-react-app/pull/5263) Add browser test for graphql ([@Timer](https://github.com/Timer)) + +#### Committers: 11 + +- Amy Lam ([@amyrlam](https://github.com/amyrlam)) +- Crux ([@crux153](https://github.com/crux153)) +- Dan Abramov ([@gaearon](https://github.com/gaearon)) +- Ian Sutherland ([@iansu](https://github.com/iansu)) +- Iurii Kucherov ([@yuyokk](https://github.com/yuyokk)) +- Joe Haddad ([@Timer](https://github.com/Timer)) +- Kohei Hasegawa ([@banyan](https://github.com/banyan)) +- Kristofer Selbekk ([@selbekk](https://github.com/selbekk)) +- Maël Nison ([@arcanis](https://github.com/arcanis)) +- Shubham Tiwari ([@lockround](https://github.com/lockround)) +- Zacharias Knudsen ([@zachasme](https://github.com/zachasme)) + +### Migrating from 2.0.3 to 2.0.4 + +Inside any created project that has not been ejected, run: + +```sh +npm install --save --save-exact react-scripts@2.0.4 +``` + +or + +```sh +yarn add --exact react-scripts@2.0.4 +``` + +## 2.0.3 (October 1, 2018) + +Create React App 2.0 brings a year’s worth of improvements in a single dependency update. +We summarized all of the changes in a blog post!
+ +Check it out: **[Create React App 2.0: Babel 7, Sass, and More](https://reactjs.org/blog/2018/10/01/create-react-app-v2.html)**. + +It provides a high-level overview of new features and improvements. Now let's see how to update your app to the latest version in detail. + +# Migrating from 1.x to 2.0.3 + +Inside any created project that has not been ejected, run: + +```sh +npm install --save --save-exact react-scripts@2.0.3 +``` + +or + +```sh +yarn add --exact react-scripts@2.0.3 +``` + +If you previously ejected but now want to upgrade, one common solution is to find the commits where you ejected (and any subsequent commits changing the configuration), revert them, upgrade, and later optionally eject again. It’s also possible that the feature you ejected for (maybe Sass or CSS Modules?) is now supported out of the box. You can find a list of notable new features in the **[Create React App 2.0 blog post](https://reactjs.org/blog/2018/10/01/create-react-app-v2.html)**. + +## Breaking Changes + +Like any major release, `react-scripts@2.0` contains a few breaking changes. We expect that they won't affect every user, but we recommend to scan over these sections to see if something is relevant to you. If we missed something, please file a new issue. + +### Node 6 is no longer supported + +Please upgrade to Node 8 (LTS) or later. + +### Polyfills for IE 9, IE 10, and IE 11 are no longer included by default (but you can opt in!) + +We have dropped default support for Internet Explorer 9, 10, and 11. If you still need to support these browsers, follow the instructions below. + +First, install `react-app-polyfill`: + +```sh +npm install react-app-polyfill +``` + +or + +```sh +yarn add react-app-polyfill +``` + +Next, place one of the following lines at the very top of `src/index.js`: + +```js +import 'react-app-polyfill/ie9'; // For IE 9-11 support +import 'react-app-polyfill/ie11'; // For IE 11 support +``` + +You can read more about [these polyfills here](https://github.com/facebook/create-react-app/tree/master/packages/react-app-polyfill). + +### Dynamic `import()` of a CommonJS module now has a `.default` property + +[Webpack 4 changed the behavior of `import()`](https://medium.com/webpack/webpack-4-import-and-commonjs-d619d626b655) to be closer in line with the specification. + +Previously, importing a CommonJS module did not require you specify the default export. In most cases, this is now required. +If you see errors in your application about `... is not a function`, you likely need to update your dynamic import, e.g.: + +```js +const throttle = await import('lodash/throttle'); +// replace with +const throttle = await import('lodash/throttle').then(m => m.default); +``` + +### `require.ensure()` is superseded by dynamic `import()` + +We previously allowed code splitting with a webpack-specific directive, `require.ensure()`. It is now disabled in favor of `import()`. To switch to `import()`, follow the examples below: + +**Single Module** + +```js +require.ensure(['module-a'], function() { + var a = require('module-a'); + // ... +}); + +// Replace with: +import('module-a').then(a => { + // ... +}); +``` + +**Multiple Module** + +```js +require.ensure(['module-a', 'module-b'], function() { + var a = require('module-a'); + var b = require('module-b'); + // ... +}); + +// Replace with: +Promise.all([import('module-a'), import('module-b')]).then(([a, b]) => { + // ... +}); +``` + +### The default Jest environment was changed to `jsdom` + +Look at the `test` entry in the `scripts` section of your `package.json`. +Here's a table how to change it from "before" and "after", depending on what you have there: + +| 1.x (if you have this...) | 2.x (...change it to this!) | +| -------------------------------- | ------------------------------- | +| `react-scripts test --env=jsdom` | `react-scripts test` | +| `react-scripts test` | `react-scripts test --env=node` | + +### Object `proxy` configuration is superseded by `src/setupProxy.js` + +To check if action is required, look for the `proxy` key in `package.json` and follow this table: + +1. I couldn't find a `proxy` key in `package.json` + - No action is required! +2. The value of `proxy` is a string (e.g. `http://localhost:5000`) + - No action is required! +3. The value of `proxy` is an object + - Follow the migration instructions below. + +**It's worth highlighting: if your `proxy` field is a `string`, e.g. `http://localhost:5000`, or you don't have it, skip this section. This feature is still supported and has the same behavior.** + +If your `proxy` is an object, that means you are using the advanced proxy configuration. It has become fully customizable so we removed the limited support for the object-style configuration. Here's how to recreate it. + +First, install `http-proxy-middleware` using npm or Yarn: + +```sh +npm install http-proxy-middleware +``` + +or + +```sh +yarn add http-proxy-middleware +``` + +Next, create `src/setupProxy.js` and place the following contents in it: + +```js +const proxy = require('http-proxy-middleware'); + +module.exports = function(app) { + // ... +}; +``` + +Now, migrate each entry in your `proxy` object one by one, e.g.: + +```json +"proxy": { + "/api": { + "target": "http://localhost:5000/" + }, + "/*.svg": { + "target": "http://localhost:5000/" + } +} +``` + +Place entries into `src/setupProxy.js` like so: + +```js +const proxy = require('http-proxy-middleware'); + +module.exports = function(app) { + app.use(proxy('/api', { target: 'http://localhost:5000/' })); + app.use(proxy('/*.svg', { target: 'http://localhost:5000/' })); +}; +``` + +You can also use completely custom logic there now! This wasn't possible before. + +### `.mjs` file extension support is removed + +Change the extension of any files in your project using `.mjs` to just `.js`. + +It was removed because of inconsistent support from underlying tools. We will add it back after it stops being experimental, and Jest gets built-in support for it. + +### `PropTypes` definitions are now removed in production + +Normally, this shouldn't affect your logic and should make the resulting bundle smaller. However, you may be relying on PropTypes definition for production logic. This is not recommended, and will break now. If a library does it, one possible solution is to file an issue in it with a proposal to use a different field (not `propTypes`) to signal that the declaration needs to be retained. + +### Anything missing? + +This was a large release, and we might have missed something. + +Please [file an issue](https://github.com/facebook/create-react-app/issues/new) and we will try to help. + +# Migrating from 2.0.0-next.xyz + +If you used 2.x alphas, please [follow these instructions](https://gist.github.com/gaearon/8650d1c70e436e5eff01f396dffc4114). + +# Detailed Changelog + +**For a readable summary of the changes, [check out our blog post](https://reactjs.org/blog/2018/10/01/create-react-app-v2.html).** + +#### :rocket: New Feature + +- `react-scripts` + - [#5218](https://github.com/facebook/create-react-app/pull/5218) Support globalSetup and globalTeardown Jest options ([@gaearon](https://github.com/gaearon)) + - [#5073](https://github.com/facebook/create-react-app/pull/5073) Add user defined proxy via middleware ([@Timer](https://github.com/Timer)) + - [#3945](https://github.com/facebook/create-react-app/pull/3945) Allow bundles to be analyzed with Webpack-specific tools ([@joshwcomeau](https://github.com/joshwcomeau)) + - [#4195](https://github.com/facebook/create-react-app/pull/4195) Sass loader ([@Fabianopb](https://github.com/Fabianopb)) + - [#3909](https://github.com/facebook/create-react-app/pull/3909) Add loader for .graphql files ([@petetnt](https://github.com/petetnt)) + - [#1288](https://github.com/facebook/create-react-app/pull/1288) Create git repository with initial commit ([@mauricedb](https://github.com/mauricedb)) + - [#3718](https://github.com/facebook/create-react-app/pull/3718) Import SVGs as React components (#1388) ([@iansu](https://github.com/iansu)) + - [#2285](https://github.com/facebook/create-react-app/pull/2285) Add support for CSS Modules with explicit filename - [name].module.css ([@ro-savage](https://github.com/ro-savage)) + - [#3804](https://github.com/facebook/create-react-app/pull/3804) Support Jest --watchAll flag ([@gaearon](https://github.com/gaearon)) + - [#3802](https://github.com/facebook/create-react-app/pull/3802) Add feature #3116 extended Jest config ([@garmeeh](https://github.com/garmeeh)) +- `react-dev-utils`, `react-scripts` + - [#5058](https://github.com/facebook/create-react-app/pull/5058) Inline the webpack runtime chunk ([@Timer](https://github.com/Timer)) +- `babel-preset-react-app` + - [#5047](https://github.com/facebook/create-react-app/pull/5047) Allow dynamic import proposal in node_modules ([@Timer](https://github.com/Timer)) + - [#3865](https://github.com/facebook/create-react-app/pull/3865) Add opt-out for preset-flow to work with @babel/preset-typescript ([@oieduardorabelo](https://github.com/oieduardorabelo)) + - [#3675](https://github.com/facebook/create-react-app/pull/3675) add experimental babel-plugin-macros support ([@kentcdodds](https://github.com/kentcdodds)) +- `babel-preset-react-app`, `confusing-browser-globals`, `eslint-config-react-app`, `react-dev-utils`, `react-error-overlay`, `react-scripts` + - [#4077](https://github.com/facebook/create-react-app/pull/4077) Webpack 4 ([@andriijas](https://github.com/andriijas)) +- `create-react-app` + - [#4350](https://github.com/facebook/create-react-app/pull/4350) Support package distribution tags ([@miraage](https://github.com/miraage)) +- `babel-preset-react-app`, `react-scripts` + - [#3776](https://github.com/facebook/create-react-app/pull/3776) Compile dependencies with babel-preset-env ([@gaearon](https://github.com/gaearon)) + +#### :boom: Breaking Change + +- `react-app-polyfill`, `react-scripts` + - [#5090](https://github.com/facebook/create-react-app/pull/5090) Drop IE 11 support by default ([@Timer](https://github.com/Timer)) +- `react-scripts` + - [#5074](https://github.com/facebook/create-react-app/pull/5074) Change default test environment to jsdom ([@Timer](https://github.com/Timer)) + - [#5027](https://github.com/facebook/create-react-app/pull/5027) Remove `mjs` support ([@Timer](https://github.com/Timer)) + - [#4009](https://github.com/facebook/create-react-app/pull/4009) Update dotenv to 5.0.0 ([@iansu](https://github.com/iansu)) + - [#2544](https://github.com/facebook/create-react-app/pull/2544) Set the public path to the asset manifest entries ([@robinvdvleuten](https://github.com/robinvdvleuten)) + - [#3884](https://github.com/facebook/create-react-app/pull/3884) Don't use app node_modules folder as a resolve fallback ([@gaearon](https://github.com/gaearon)) + - [#3817](https://github.com/facebook/create-react-app/pull/3817) Disable service worker by default ([@iansu](https://github.com/iansu)) + - [#2285](https://github.com/facebook/create-react-app/pull/2285) Add support for CSS Modules with explicit filename - [name].module.css ([@ro-savage](https://github.com/ro-savage)) + - [#3771](https://github.com/facebook/create-react-app/pull/3771) Add preflight check to guard against wrong versions of webpack/eslint/jest higher up the tree ([@gaearon](https://github.com/gaearon)) + - [#3346](https://github.com/facebook/create-react-app/pull/3346) Change the default `start_url` to `.` ([@evilchuck](https://github.com/evilchuck)) + - [#3419](https://github.com/facebook/create-react-app/pull/3419) Remove the navigateFallback behavior from the generated service worker ([@jeffposnick](https://github.com/jeffposnick)) + - [#3644](https://github.com/facebook/create-react-app/pull/3644) Move browsers to cross-tool config ([@ai](https://github.com/ai)) +- `react-dev-utils` + - [#5072](https://github.com/facebook/create-react-app/pull/5072) Drop support for advanced proxy ([@Timer](https://github.com/Timer)) +- `babel-preset-react-app` + - [#3818](https://github.com/facebook/create-react-app/pull/3818) Remove PropTypes from production build (#209) ([@iansu](https://github.com/iansu)) +- `eslint-config-react-app` + - [#2319](https://github.com/facebook/create-react-app/pull/2319) Changes no-unused-expressions lint from warning to error ([@amupitan](https://github.com/amupitan)) +- `eslint-config-react-app`, `react-error-overlay`, `react-scripts` + - [#2690](https://github.com/facebook/create-react-app/pull/2690) Bump eslint-plugin-jsx-a11y version ([@gaearon](https://github.com/gaearon)) +- `eslint-config-react-app`, `react-scripts` + - [#3121](https://github.com/facebook/create-react-app/pull/3121) Redisable require.ensure() ([@everdimension](https://github.com/everdimension)) + +#### :bug: Bug Fix + +- `react-scripts` + - [#5217](https://github.com/facebook/create-react-app/pull/5217) Verify more package versions ([@Timer](https://github.com/Timer)) + - [#5214](https://github.com/facebook/create-react-app/pull/5214) Fix absolute paths on eject ([@gaearon](https://github.com/gaearon)) + - [#5212](https://github.com/facebook/create-react-app/pull/5212) Don't crash npm test when hg/git are missing ([@gaearon](https://github.com/gaearon)) + - [#5197](https://github.com/facebook/create-react-app/pull/5197) Treat .css and .sass/.scss as side effectful ([@gaearon](https://github.com/gaearon)) + - [#5196](https://github.com/facebook/create-react-app/pull/5196) Format SVG React snapshots as tag with props ([@gaearon](https://github.com/gaearon)) + - [#5163](https://github.com/facebook/create-react-app/pull/5163) Correctly lookup assets when using a relative build directory ([@Timer](https://github.com/Timer)) + - [#5151](https://github.com/facebook/create-react-app/pull/5151) Toggle `mjs` files to `javascript/auto` type ([@Timer](https://github.com/Timer)) + - [#5131](https://github.com/facebook/create-react-app/pull/5131) Output CSS sourcemaps in separate file ([@Timer](https://github.com/Timer)) + - [#5043](https://github.com/facebook/create-react-app/pull/5043) Always lint with latest React version ([@Timer](https://github.com/Timer)) + - [#5030](https://github.com/facebook/create-react-app/pull/5030) Disable webpack chunk coalescing ([@Timer](https://github.com/Timer)) + - [#5027](https://github.com/facebook/create-react-app/pull/5027) Remove `mjs` support ([@Timer](https://github.com/Timer)) + - [#4706](https://github.com/facebook/create-react-app/pull/4706) Only use safe options when packing CSS assets ([@bugzpodder](https://github.com/bugzpodder)) + - [#4562](https://github.com/facebook/create-react-app/pull/4562) Configured the thread-loader to keeping workers alive in development mode ([@sadkovoy](https://github.com/sadkovoy)) + - [#4318](https://github.com/facebook/create-react-app/pull/4318) `.mjs` should not resolve before .js files (#4085) (#4317) ([@hobochild](https://github.com/hobochild)) + - [#4419](https://github.com/facebook/create-react-app/pull/4419) Map (s?css|sass) modules to identity-obj-proxy in jest ([@kusold](https://github.com/kusold)) + - [#4424](https://github.com/facebook/create-react-app/pull/4424) ensureSlash: Fix accidental string-to-NaN coercion ([@wchargin](https://github.com/wchargin)) + - [#4376](https://github.com/facebook/create-react-app/pull/4376) Update sass-loader (#4363) ([@miraage](https://github.com/miraage)) + - [#4247](https://github.com/facebook/create-react-app/pull/4247) Work around Jest environment resolving bug ([@gaearon](https://github.com/gaearon)) + - [#4234](https://github.com/facebook/create-react-app/pull/4234) [next] Revert to use ecma 5 in uglifyOptions ([@danielberndt](https://github.com/danielberndt)) + - [#2544](https://github.com/facebook/create-react-app/pull/2544) Set the public path to the asset manifest entries ([@robinvdvleuten](https://github.com/robinvdvleuten)) + - [#3992](https://github.com/facebook/create-react-app/pull/3992) Upgrade dotenv-expand to 4.2.0 (#3961) ([@iansu](https://github.com/iansu)) + - [#3989](https://github.com/facebook/create-react-app/pull/3989) add default value for globPatterns ([@viankakrisna](https://github.com/viankakrisna)) +- `react-error-overlay` + - [#5203](https://github.com/facebook/create-react-app/pull/5203) Fix IE 11 compatibility ([@Timer](https://github.com/Timer)) + - [#5198](https://github.com/facebook/create-react-app/pull/5198) Polyfill error overlay for IE9 support ([@Timer](https://github.com/Timer)) + - [#4024](https://github.com/facebook/create-react-app/pull/4024) Fix floating caret position incorrect while scrolling overlay ([@jihchi](https://github.com/jihchi)) +- `react-dev-utils` + - [#5184](https://github.com/facebook/create-react-app/pull/5184) Still emit runtime chunk ([@Timer](https://github.com/Timer)) + - [#5137](https://github.com/facebook/create-react-app/pull/5137) Fix displaying third party webpack plugins errors ([@Fer0x](https://github.com/Fer0x)) + - [#5134](https://github.com/facebook/create-react-app/pull/5134) Lists loader-utils in the dependencies ([@arcanis](https://github.com/arcanis)) + - [#5025](https://github.com/facebook/create-react-app/pull/5025) Fix/file size reporter ([@fiddep](https://github.com/fiddep)) + - [#4420](https://github.com/facebook/create-react-app/pull/4420) Update the thread loader test in formatWebpackMessages ([@marcofugaro](https://github.com/marcofugaro)) +- `babel-preset-react-app` + - [#5182](https://github.com/facebook/create-react-app/pull/5182) Strip flow syntax before any other transform ([@Timer](https://github.com/Timer)) + - [#4630](https://github.com/facebook/create-react-app/pull/4630) Eliminate regenerator from preset-react-app plugins ([@conartist6](https://github.com/conartist6)) + - [#5110](https://github.com/facebook/create-react-app/pull/5110) Add dynamic import transformer for dependencies in test env ([@lixiaoyan](https://github.com/lixiaoyan)) + - [#5052](https://github.com/facebook/create-react-app/pull/5052) Add Babel config sourceType: 'unambiguous' for dependencies ([@lixiaoyan](https://github.com/lixiaoyan)) + - [#5046](https://github.com/facebook/create-react-app/pull/5046) Correct Babel dependency behavior ([@Timer](https://github.com/Timer)) + - [#4248](https://github.com/facebook/create-react-app/pull/4248) Enable loose mode for `class-properties` ([@rgrochowicz](https://github.com/rgrochowicz)) +- `babel-preset-react-app`, `react-error-overlay`, `react-scripts` + - [#5142](https://github.com/facebook/create-react-app/pull/5142) Remove runtime alias hack ([@Timer](https://github.com/Timer)) +- `react-app-polyfill` + - [#5132](https://github.com/facebook/create-react-app/pull/5132) Don't polyfill fetch for Node ([@Timer](https://github.com/Timer)) +- `react-error-overlay`, `react-scripts` + - [#5109](https://github.com/facebook/create-react-app/pull/5109) Prevent Babel config overridden ([@lixiaoyan](https://github.com/lixiaoyan)) +- `babel-preset-react-app`, `react-scripts` + - [#5078](https://github.com/facebook/create-react-app/pull/5078) Prevent the cache of files using Babel Macros ([@Timer](https://github.com/Timer)) +- `react-dev-utils`, `react-error-overlay`, `react-scripts` + - [#5026](https://github.com/facebook/create-react-app/pull/5026) Switch from uglifyjs to terser ([@Timer](https://github.com/Timer)) +- `create-react-app` + - [#4677](https://github.com/facebook/create-react-app/pull/4677) Support scoped package names for scripts-version option in create-react-app cli ([@bugzpodder](https://github.com/bugzpodder)) + - [#2705](https://github.com/facebook/create-react-app/pull/2705) Don't delete error logs when install fails ([@mg](https://github.com/mg)) +- `react-dev-utils`, `react-scripts` + - [#4391](https://github.com/facebook/create-react-app/pull/4391) Update getCSSModuleLocalIdent to support Sass ([@arianon](https://github.com/arianon)) +- `babel-plugin-named-asset-import`, `babel-preset-react-app`, `eslint-config-react-app`, `react-dev-utils`, `react-error-overlay`, `react-scripts` + - [#4159](https://github.com/facebook/create-react-app/pull/4159) Bump babel-related deps ([@existentialism](https://github.com/existentialism)) +- `create-react-app`, `react-dev-utils`, `react-scripts` + - [#3997](https://github.com/facebook/create-react-app/pull/3997) Use yarn when running inside yarn workspace. ([@bradfordlemley](https://github.com/bradfordlemley)) + +#### :nail_care: Enhancement + +- `create-react-app`, `react-scripts` + - [#5136](https://github.com/facebook/create-react-app/pull/5136) Plug'n'Play support ([@arcanis](https://github.com/arcanis)) +- `react-dev-utils`, `react-scripts` + - [#5174](https://github.com/facebook/create-react-app/pull/5174) 💅 Polish webpack message output ([@Timer](https://github.com/Timer)) + - [#5065](https://github.com/facebook/create-react-app/pull/5065) (Micro) Optimize webpack rebuild speed ([@Timer](https://github.com/Timer)) + - [#5058](https://github.com/facebook/create-react-app/pull/5058) Inline the webpack runtime chunk ([@Timer](https://github.com/Timer)) + - [#4192](https://github.com/facebook/create-react-app/pull/4192) Update CSS Modules localIndetName ([@ro-savage](https://github.com/ro-savage)) + - [#3782](https://github.com/facebook/create-react-app/pull/3782) Tell user what browser support their application was built with ([@Timer](https://github.com/Timer)) +- `react-dev-utils` + - [#5150](https://github.com/facebook/create-react-app/pull/5150) Run behavioral smoke tests with Jest, add output tests ([@Timer](https://github.com/Timer)) + - [#4623](https://github.com/facebook/create-react-app/pull/4623) Use yarn build command in predeploy script if using yarn ([@alexbrazier](https://github.com/alexbrazier)) + - [#4470](https://github.com/facebook/create-react-app/pull/4470) Adjust browser defaults ([@Timer](https://github.com/Timer)) + - [#4001](https://github.com/facebook/create-react-app/pull/4001) Add support for new yarn workspaces config format ([@detrohutt](https://github.com/detrohutt)) + - [#3980](https://github.com/facebook/create-react-app/pull/3980) Autodetect GoLand editor ([@ifedyukin](https://github.com/ifedyukin)) + - [#3808](https://github.com/facebook/create-react-app/pull/3808) Use wmic to get process list on Windows ([@levrik](https://github.com/levrik)) +- `react-scripts` + - [#4169](https://github.com/facebook/create-react-app/pull/4169) Workbox service worker ([@davejm](https://github.com/davejm)) + - [#5096](https://github.com/facebook/create-react-app/pull/5096) Disable source maps for node_modules ([@Timer](https://github.com/Timer)) + - [#4716](https://github.com/facebook/create-react-app/pull/4716) add postcss-preset-env, remove autoprefixer ([@heygrady](https://github.com/heygrady)) + - [#1457](https://github.com/facebook/create-react-app/pull/1457) Add eslintConfig to new projects automatically ([@lifeiscontent](https://github.com/lifeiscontent)) + - [#5030](https://github.com/facebook/create-react-app/pull/5030) Disable webpack chunk coalescing ([@Timer](https://github.com/Timer)) + - [#4582](https://github.com/facebook/create-react-app/pull/4582) Added thread-loader tweak for application code entry-point ([@sadkovoy](https://github.com/sadkovoy)) + - [#4562](https://github.com/facebook/create-react-app/pull/4562) Configured the thread-loader to keeping workers alive in development mode ([@sadkovoy](https://github.com/sadkovoy)) + - [#4504](https://github.com/facebook/create-react-app/pull/4504) webpack 4 scope hoisting ([@bugzpodder](https://github.com/bugzpodder)) + - [#4461](https://github.com/facebook/create-react-app/pull/4461) Update svgr ([@iansu](https://github.com/iansu)) + - [#3867](https://github.com/facebook/create-react-app/pull/3867) Provide callbacks in serviceWorker (next) ([@piotr-cz](https://github.com/piotr-cz)) + - [#3235](https://github.com/facebook/create-react-app/pull/3235) Applies new theme and adds docs link to template ([@lukejacksonn](https://github.com/lukejacksonn)) + - [#3512](https://github.com/facebook/create-react-app/pull/3512) Enhance Jest config error for `setupTestFrameworkScriptFile` ([@jackfranklin](https://github.com/jackfranklin)) + - [#3778](https://github.com/facebook/create-react-app/pull/3778) Compile code in parallel ([@Timer](https://github.com/Timer)) + - [#3771](https://github.com/facebook/create-react-app/pull/3771) Add preflight check to guard against wrong versions of webpack/eslint/jest higher up the tree ([@gaearon](https://github.com/gaearon)) + - [#3618](https://github.com/facebook/create-react-app/pull/3618) use uglifyjs-webpack-plugin v1 ([@viankakrisna](https://github.com/viankakrisna)) +- `babel-preset-react-app`, `react-error-overlay`, `react-scripts` + - [#5093](https://github.com/facebook/create-react-app/pull/5093) Turn on Babel `helpers` ([@Timer](https://github.com/Timer)) +- `react-dev-utils`, `react-error-overlay`, `react-scripts` + - [#4930](https://github.com/facebook/create-react-app/pull/4930) Switch from cheap-module-source-map eval-source-map ([@jasonLaster](https://github.com/jasonLaster)) + - [#3124](https://github.com/facebook/create-react-app/pull/3124) update jest to 22 and support watchPathIgnorePatterns configuration ([@aisensiy](https://github.com/aisensiy)) +- `confusing-browser-globals`, `react-dev-utils`, `react-error-overlay`, `react-scripts` + - [#4846](https://github.com/facebook/create-react-app/pull/4846) Update jest version ([@skoging](https://github.com/skoging)) + - [#4362](https://github.com/facebook/create-react-app/pull/4362) Bumped jest version to 22.4.1 ([@CGreenburg](https://github.com/CGreenburg)) +- `babel-preset-react-app`, `confusing-browser-globals`, `eslint-config-react-app`, `react-dev-utils`, `react-error-overlay`, `react-scripts` + - [#4077](https://github.com/facebook/create-react-app/pull/4077) Webpack 4 ([@andriijas](https://github.com/andriijas)) +- `babel-preset-react-app` + - [#4432](https://github.com/facebook/create-react-app/pull/4432) Update babel-plugin-macros to fix a bug ([@stereobooster](https://github.com/stereobooster)) + - [#3818](https://github.com/facebook/create-react-app/pull/3818) Remove PropTypes from production build (#209) ([@iansu](https://github.com/iansu)) +- `create-react-app` + - [#4375](https://github.com/facebook/create-react-app/pull/4375) fix: update envinfo + implementation, update issue_template ([@tabrindle](https://github.com/tabrindle)) +- `eslint-config-react-app`, `react-error-overlay`, `react-scripts` + - [#4048](https://github.com/facebook/create-react-app/pull/4048) Add ESLint check for incorrect propTypes usage (#3840) ([@iansu](https://github.com/iansu)) + - [#2690](https://github.com/facebook/create-react-app/pull/2690) Bump eslint-plugin-jsx-a11y version ([@gaearon](https://github.com/gaearon)) +- `eslint-config-react-app` + - [#3844](https://github.com/facebook/create-react-app/pull/3844) remove radix eslint rule ([@sendilkumarn](https://github.com/sendilkumarn)) +- `create-react-app`, `react-dev-utils`, `react-scripts` + - [#3792](https://github.com/facebook/create-react-app/pull/3792) Offer to set default browsers ([@Timer](https://github.com/Timer)) +- `babel-preset-react-app`, `create-react-app`, `react-dev-utils`, `react-error-overlay`, `react-scripts` + - [#3785](https://github.com/facebook/create-react-app/pull/3785) Bump dependencies ([@gaearon](https://github.com/gaearon)) +- `babel-preset-react-app`, `react-scripts` + - [#3770](https://github.com/facebook/create-react-app/pull/3770) Loosen Babel preset to use browserslist ([@Timer](https://github.com/Timer)) +- `babel-preset-react-app`, `eslint-config-react-app`, `react-dev-utils`, `react-error-overlay`, `react-scripts` + - [#3522](https://github.com/facebook/create-react-app/pull/3522) Switch to Babel 7 ([@clemmy](https://github.com/clemmy)) + +#### :memo: Documentation + +- `react-scripts` + - [#5211](https://github.com/facebook/create-react-app/pull/5211) Adds instructions to README on how to customize Bootstrap with Sass ([@mslooten](https://github.com/mslooten)) + - [#5147](https://github.com/facebook/create-react-app/pull/5147) Document adding SVGs as React components ([@mareksuscak](https://github.com/mareksuscak)) + - [#5193](https://github.com/facebook/create-react-app/pull/5193) Fix typo in 'Configuring the Proxy Manually' ([@fabriziocucci](https://github.com/fabriziocucci)) + - [#5111](https://github.com/facebook/create-react-app/pull/5111) Updates to README to reflect Workbox usage. ([@jeffposnick](https://github.com/jeffposnick)) + - [#5169](https://github.com/facebook/create-react-app/pull/5169) Add additional troubleshooting for Github Pages ([@dwang](https://github.com/dwang)) + - [#5145](https://github.com/facebook/create-react-app/pull/5145) Mention .module.scss/sass convention ([@mareksuscak](https://github.com/mareksuscak)) + - [#5105](https://github.com/facebook/create-react-app/pull/5105) as per #5104 ([@sag1v](https://github.com/sag1v)) + - [#5071](https://github.com/facebook/create-react-app/pull/5071) Update usage advice of husky to 1.0 ([@martinlechner1](https://github.com/martinlechner1)) + - [#5077](https://github.com/facebook/create-react-app/pull/5077) small typo fix ([@tteltrab](https://github.com/tteltrab)) + - [#5070](https://github.com/facebook/create-react-app/pull/5070) Integrating with an API Backend: add API Platform ([@dunglas](https://github.com/dunglas)) + - [#5064](https://github.com/facebook/create-react-app/pull/5064) fix minor typo in troubleshooting github pages ([@kaznovac](https://github.com/kaznovac)) + - [#5035](https://github.com/facebook/create-react-app/pull/5035) Remove paywalled tutorial link for Storybook ([@imgntn](https://github.com/imgntn)) + - [#3924](https://github.com/facebook/create-react-app/pull/3924) Updates to reflect service worker registration being opt-in. ([@jeffposnick](https://github.com/jeffposnick)) + - [#4881](https://github.com/facebook/create-react-app/pull/4881) flowtype.org -> flow.org ([@web2033](https://github.com/web2033)) + - [#4825](https://github.com/facebook/create-react-app/pull/4825) Update support info for service workers ([@j-f1](https://github.com/j-f1)) + - [#4738](https://github.com/facebook/create-react-app/pull/4738) Fix typo ([@mjw56](https://github.com/mjw56)) + - [#4741](https://github.com/facebook/create-react-app/pull/4741) remove extra dot on devtool link comment ([@shelldandy](https://github.com/shelldandy)) + - [#4703](https://github.com/facebook/create-react-app/pull/4703) Suggest `reactstrap` instead of `react-bootstrap` ([@zx6658](https://github.com/zx6658)) + - [#4566](https://github.com/facebook/create-react-app/pull/4566) Move whitespace comment closer to where it applies ([@mgedmin](https://github.com/mgedmin)) + - [#4497](https://github.com/facebook/create-react-app/pull/4497) [Read Me template patch] Warn about #871 until it's actually fixed. ([@saimonmoore](https://github.com/saimonmoore)) + - [#4205](https://github.com/facebook/create-react-app/pull/4205) Chokidar Updates ([@originell](https://github.com/originell)) + - [#4286](https://github.com/facebook/create-react-app/pull/4286) Fix some typos in README.md ([@apaatsio](https://github.com/apaatsio)) + - [#4298](https://github.com/facebook/create-react-app/pull/4298) Added learnstorybook.com to Storybook links ([@tmeasday](https://github.com/tmeasday)) + - [#4117](https://github.com/facebook/create-react-app/pull/4117) Document multiple build environments via `env-cmd` #4071 ([@jMuzsik](https://github.com/jMuzsik)) + - [#4197](https://github.com/facebook/create-react-app/pull/4197) Add troubleshooting for Github Pages ([@xnt](https://github.com/xnt)) + - [#4236](https://github.com/facebook/create-react-app/pull/4236) use the lastest url of gitignore file ([@Plortinus](https://github.com/Plortinus)) + - [#4239](https://github.com/facebook/create-react-app/pull/4239) Fix typo in comment and be clearer about `ecma` settings in uglifyjs options ([@danielberndt](https://github.com/danielberndt)) + - [#4164](https://github.com/facebook/create-react-app/pull/4164) Fix typos in example monorepo documentation. ([@bradfordlemley](https://github.com/bradfordlemley)) + - [#4089](https://github.com/facebook/create-react-app/pull/4089) Fix a typo in packages/react-scripts/template/README.md ([@nott](https://github.com/nott)) + - [#4101](https://github.com/facebook/create-react-app/pull/4101) Docs: Update status of Object Rest/Spread proposal ([@jpaquim](https://github.com/jpaquim)) + - [#4107](https://github.com/facebook/create-react-app/pull/4107) docs: use node_js 8 in example travis.yml ([@nikolas2](https://github.com/nikolas2)) + - [#3821](https://github.com/facebook/create-react-app/pull/3821) Updated react-scripts Readme.md to better document GitHub Pages ([@EdwaRen](https://github.com/EdwaRen)) +- Other + - [#5102](https://github.com/facebook/create-react-app/pull/5102) Fix Troubleshooting link ([@gdi2290](https://github.com/gdi2290)) + - [#4551](https://github.com/facebook/create-react-app/pull/4551) Update targeted IE version in documentation ([@antzshrek](https://github.com/antzshrek)) + - [#4814](https://github.com/facebook/create-react-app/pull/4814) Update CODE_OF_CONDUCT.md ([@Ashleyotero](https://github.com/Ashleyotero)) + - [#4638](https://github.com/facebook/create-react-app/pull/4638) Add instructions on alternative methods of app creation ([@RusinovAnton](https://github.com/RusinovAnton)) + - [#4546](https://github.com/facebook/create-react-app/pull/4546) Update file tree view ([@antzshrek](https://github.com/antzshrek)) + - [#4449](https://github.com/facebook/create-react-app/pull/4449) add create-react-app-parcel to Alternatives section in README ([@sw-yx](https://github.com/sw-yx)) + - [#4294](https://github.com/facebook/create-react-app/pull/4294) documentation: added License to the README.md ([@thiagopaiva99](https://github.com/thiagopaiva99)) + - [#4323](https://github.com/facebook/create-react-app/pull/4323) Fix typo in e2e-simple.sh comment ([@bmuenzenmeyer](https://github.com/bmuenzenmeyer)) + - [#4134](https://github.com/facebook/create-react-app/pull/4134) fix: Minor typos ([@fejes713](https://github.com/fejes713)) + - [#4114](https://github.com/facebook/create-react-app/pull/4114) Update CONTRIBUTING.md ([@jkzing](https://github.com/jkzing)) + - [#3825](https://github.com/facebook/create-react-app/pull/3825) Add svg rendering for error example ([@marionebl](https://github.com/marionebl)) + - [#3810](https://github.com/facebook/create-react-app/pull/3810) Update screencast to use npx ([@marionebl](https://github.com/marionebl)) +- `create-react-app` + - [#4309](https://github.com/facebook/create-react-app/pull/4309) Fix typo to word bootstrapped in condition to check for old version o… ([@jamesvsshark](https://github.com/jamesvsshark)) + - [#4015](https://github.com/facebook/create-react-app/pull/4015) add `create-react-app --help` info for local file path `--scripts-version` support ([@albertstill](https://github.com/albertstill)) +- `react-dev-utils`, `react-scripts` + - [#3836](https://github.com/facebook/create-react-app/pull/3836) Use custom bit.ly links ([@bondz](https://github.com/bondz)) + +#### :house: Internal + +- `eslint-config-react-app` + - [#5205](https://github.com/facebook/create-react-app/pull/5205) Disable react/no-deprecated rule ([@Timer](https://github.com/Timer)) + - [#5051](https://github.com/facebook/create-react-app/pull/5051) Adjust ESLint configuration for v5 ([@Timer](https://github.com/Timer)) + - [#4187](https://github.com/facebook/create-react-app/pull/4187) Change no-unused-vars 'args' from none to all to show warning on dest… ([@goncy](https://github.com/goncy)) +- `babel-plugin-named-asset-import`, `babel-preset-react-app`, `confusing-browser-globals`, `create-react-app`, `eslint-config-react-app`, `react-app-polyfill`, `react-dev-utils`, `react-error-overlay`, `react-scripts` + - [#5192](https://github.com/facebook/create-react-app/pull/5192) Add license file to all packages ([@Timer](https://github.com/Timer)) +- Other + - [#5183](https://github.com/facebook/create-react-app/pull/5183) Test class properties ([@Timer](https://github.com/Timer)) + - [#5146](https://github.com/facebook/create-react-app/pull/5146) Add behavior e2e tests ([@Timer](https://github.com/Timer)) + - [#4774](https://github.com/facebook/create-react-app/pull/4774) [internal] Use Yarn cache for travis ([@bugzpodder](https://github.com/bugzpodder)) + - [#4626](https://github.com/facebook/create-react-app/pull/4626) [internal] Fix node 10 test issue ([@bugzpodder](https://github.com/bugzpodder)) + - [#3816](https://github.com/facebook/create-react-app/pull/3816) Automate screencast recordings ([@marionebl](https://github.com/marionebl)) +- `react-scripts` + - [#5180](https://github.com/facebook/create-react-app/pull/5180) Fetch Workbox from CDN ([@Timer](https://github.com/Timer)) + - [#5170](https://github.com/facebook/create-react-app/pull/5170) Remove thread-loader ([@Timer](https://github.com/Timer)) + - [#5157](https://github.com/facebook/create-react-app/pull/5157) Forwards args through thread-loader ([@arcanis](https://github.com/arcanis)) + - [#5085](https://github.com/facebook/create-react-app/pull/5085) Remove highlightCode:true because it's now the default ([@marcofugaro](https://github.com/marcofugaro)) + - [#5098](https://github.com/facebook/create-react-app/pull/5098) [internal] remove babelrc dependency for kitchensink test ([@bugzpodder](https://github.com/bugzpodder)) + - [#5076](https://github.com/facebook/create-react-app/pull/5076) Revert "Add loader for .graphql files (#3909)" ([@Timer](https://github.com/Timer)) + - [#5062](https://github.com/facebook/create-react-app/pull/5062) Upgrade svgr to v2 and disable Prettier & SVGO ([@Timer](https://github.com/Timer)) + - [#5059](https://github.com/facebook/create-react-app/pull/5059) Switch back to cheap-module-source-map ([@jasonLaster](https://github.com/jasonLaster)) + - [#4891](https://github.com/facebook/create-react-app/pull/4891) Move favicon.ico to accommodate Chrome ([@thejohnfreeman](https://github.com/thejohnfreeman)) + - [#5053](https://github.com/facebook/create-react-app/pull/5053) Normalize babel caching across the board ([@Timer](https://github.com/Timer)) + - [#4550](https://github.com/facebook/create-react-app/pull/4550) Jest 23 and tests ([@bugzpodder](https://github.com/bugzpodder)) + - [#5043](https://github.com/facebook/create-react-app/pull/5043) Always lint with latest React version ([@Timer](https://github.com/Timer)) + - [#4955](https://github.com/facebook/create-react-app/pull/4955) Update webpack-dev-server 3.1.5 → 3.1.7 ([@addaleax](https://github.com/addaleax)) + - [#4776](https://github.com/facebook/create-react-app/pull/4776) Bump babel-loader to fix npm warning ([@frenzzy](https://github.com/frenzzy)) + - [#4767](https://github.com/facebook/create-react-app/pull/4767) [internal] Separate out kitchensink test into two ([@bugzpodder](https://github.com/bugzpodder)) + - [#4014](https://github.com/facebook/create-react-app/pull/4014) enable manifest plugin on dev ([@viankakrisna](https://github.com/viankakrisna)) + - [#4435](https://github.com/facebook/create-react-app/pull/4435) Update paths.js, rename shadow path variable ([@graemecode](https://github.com/graemecode)) + - [#4331](https://github.com/facebook/create-react-app/pull/4331) Bump `fsevents`. ([@wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg)) + - [#4174](https://github.com/facebook/create-react-app/pull/4174) Yarn workspace transpilation verification. ([@bradfordlemley](https://github.com/bradfordlemley)) + - [#3842](https://github.com/facebook/create-react-app/pull/3842) fix small grammatical typo in webpack config documentation ([@andrewerrico](https://github.com/andrewerrico)) +- `react-dev-utils` + - [#5150](https://github.com/facebook/create-react-app/pull/5150) Run behavioral smoke tests with Jest, add output tests ([@Timer](https://github.com/Timer)) + - [#4514](https://github.com/facebook/create-react-app/pull/4514) Make Sass missing message friendlier ([@Timer](https://github.com/Timer)) + - [#4138](https://github.com/facebook/create-react-app/pull/4138) Allow ModuleScopePlugin accecpts an array as its appSrc ([@froyog](https://github.com/froyog)) + - [#4016](https://github.com/facebook/create-react-app/pull/4016) (chore): Alphabetize and clean files-array in react-dev-utils package.json ([@petetnt](https://github.com/petetnt)) +- `babel-preset-react-app`, `react-error-overlay`, `react-scripts` + - [#5143](https://github.com/facebook/create-react-app/pull/5143) Switch back to babel-loader ([@iansu](https://github.com/iansu)) +- `babel-preset-react-app` + - [#5119](https://github.com/facebook/create-react-app/pull/5119) Clean up @babel/plugin-transform-regenerator ([@lixiaoyan](https://github.com/lixiaoyan)) + - [#5033](https://github.com/facebook/create-react-app/pull/5033) Lock babel configuration back to IE 9 support (ES5) ([@Timer](https://github.com/Timer)) +- `react-dev-utils`, `react-scripts` + - [#5091](https://github.com/facebook/create-react-app/pull/5091) Allow stage 3 css transforms ([@Timer](https://github.com/Timer)) + - [#5054](https://github.com/facebook/create-react-app/pull/5054) Ensure Babel files get purged on upgrades ([@Timer](https://github.com/Timer)) + - [#5031](https://github.com/facebook/create-react-app/pull/5031) Upgrade `html-webpack-plugin` to fix tests ([@Timer](https://github.com/Timer)) +- `babel-preset-react-app`, `create-react-app`, `react-dev-utils`, `react-error-overlay`, `react-scripts` + - [#5080](https://github.com/facebook/create-react-app/pull/5080) Update tons of packages ([@Timer](https://github.com/Timer)) +- `react-error-overlay`, `react-scripts` + - [#5050](https://github.com/facebook/create-react-app/pull/5050) Eslint 5.6 ([@bugzpodder](https://github.com/bugzpodder)) +- `babel-plugin-named-asset-import`, `babel-preset-react-app`, `react-dev-utils`, `react-error-overlay`, `react-scripts` + - [#5042](https://github.com/facebook/create-react-app/pull/5042) Upgrade to Babel 7 stable ([@Timer](https://github.com/Timer)) + - [#4253](https://github.com/facebook/create-react-app/pull/4253) Upgrade Babel to `beta.44` ([@andriijas](https://github.com/andriijas)) +- `confusing-browser-globals`, `react-dev-utils`, `react-error-overlay`, `react-scripts` + - [#5032](https://github.com/facebook/create-react-app/pull/5032) Upgrade `react-scripts` dependencies ([@Timer](https://github.com/Timer)) +- `react-dev-utils`, `react-error-overlay`, `react-scripts` + - [#5026](https://github.com/facebook/create-react-app/pull/5026) Switch from uglifyjs to terser ([@Timer](https://github.com/Timer)) +- `create-react-app` + - [#4383](https://github.com/facebook/create-react-app/pull/4383) Add Node 10 to Travis config and remove Node 6 ([@iansu](https://github.com/iansu)) + - [#3853](https://github.com/facebook/create-react-app/pull/3853) pin envinfo version to 3.4.2 ([@bondz](https://github.com/bondz)) +- `react-error-overlay` + - [#4211](https://github.com/facebook/create-react-app/pull/4211) Revert lint-related changes made in #4193 ([@NMinhNguyen](https://github.com/NMinhNguyen)) + - [#4193](https://github.com/facebook/create-react-app/pull/4193) Minor fixes to CI ([@ro-savage](https://github.com/ro-savage)) +- `confusing-browser-globals`, `eslint-config-react-app` + - [#2286](https://github.com/facebook/create-react-app/pull/2286) Add restricted globals package ([@sidoshi](https://github.com/sidoshi)) +- `eslint-config-react-app`, `react-scripts` + - [#3723](https://github.com/facebook/create-react-app/pull/3723) Updating ESlint to ^4.15.0 and adding new rules to config ([@chrislaughlin](https://github.com/chrislaughlin)) + +#### Committers: 116 + +- A.J. Roberts ([@detrohutt](https://github.com/detrohutt)) +- Aaron Reisman ([@lifeiscontent](https://github.com/lifeiscontent)) +- Ade Viankakrisna Fadlil ([@viankakrisna](https://github.com/viankakrisna)) +- Albert Still ([@albertstill](https://github.com/albertstill)) +- Alex Brazier ([@alexbrazier](https://github.com/alexbrazier)) +- Andreas Cederström ([@andriijas](https://github.com/andriijas)) +- Andrew ([@andrewerrico](https://github.com/andrewerrico)) +- Andrew Clark ([@acdlite](https://github.com/acdlite)) +- Andrew Ho ([@andrwh](https://github.com/andrwh)) +- Andrey Sitnik ([@ai](https://github.com/ai)) +- Anna Henningsen ([@addaleax](https://github.com/addaleax)) +- Anton Rusinov ([@RusinovAnton](https://github.com/RusinovAnton)) +- Antti Ahti ([@apaatsio](https://github.com/apaatsio)) +- Ashley Otero ([@Ashleyotero](https://github.com/Ashleyotero)) +- Bond ([@bondz](https://github.com/bondz)) +- Bradford Lemley ([@bradfordlemley](https://github.com/bradfordlemley)) +- Brian Muenzenmeyer ([@bmuenzenmeyer](https://github.com/bmuenzenmeyer)) +- Brian Ng ([@existentialism](https://github.com/existentialism)) +- Chad Greenburg ([@CGreenburg](https://github.com/CGreenburg)) +- Chris Laughlin ([@chrislaughlin](https://github.com/chrislaughlin)) +- Clement Hoang ([@clemmy](https://github.com/clemmy)) +- Conrad Buck ([@conartist6](https://github.com/conartist6)) +- Craig Mulligan ([@hobochild](https://github.com/hobochild)) +- Dan Abramov ([@gaearon](https://github.com/gaearon)) +- Daniel ([@danielberndt](https://github.com/danielberndt)) +- Daniel Wang ([@dwang](https://github.com/dwang)) +- David Moodie ([@davejm](https://github.com/davejm)) +- Dmitriy Sadkovoy ([@sadkovoy](https://github.com/sadkovoy)) +- Eduardo Rabelo ([@oieduardorabelo](https://github.com/oieduardorabelo)) +- Edward Ren (Eddie) ([@EdwaRen](https://github.com/EdwaRen)) +- Ernesto García ([@gnapse](https://github.com/gnapse)) +- Eugene Kopich ([@web2033](https://github.com/web2033)) +- Fabiano Brito ([@Fabianopb](https://github.com/Fabianopb)) +- Fabrizio Cucci ([@fabriziocucci](https://github.com/fabriziocucci)) +- Fredrik Palmquist ([@fiddep](https://github.com/fiddep)) +- Futa Ogawa ([@ogawa0071](https://github.com/ogawa0071)) +- Gary Meehan ([@garmeeh](https://github.com/garmeeh)) +- Gonzalo Pozzo ([@goncy](https://github.com/goncy)) +- Grady Kuhnline ([@heygrady](https://github.com/heygrady)) +- Graeme ([@graemecode](https://github.com/graemecode)) +- Harry Moreno ([@morenoh149](https://github.com/morenoh149)) +- Ian Sutherland ([@iansu](https://github.com/iansu)) +- Ideveloper ([@zx6658](https://github.com/zx6658)) +- Igor Fedyukin ([@ifedyukin](https://github.com/ifedyukin)) +- Irvin Denzel Torcuato ([@identor](https://github.com/identor)) +- JK ([@jkzing](https://github.com/jkzing)) +- Jack Franklin ([@jackfranklin](https://github.com/jackfranklin)) +- Jack Zhao ([@bugzpodder](https://github.com/bugzpodder)) +- James B. Pollack ([@imgntn](https://github.com/imgntn)) +- James Simoes ([@jamesvsshark](https://github.com/jamesvsshark)) +- Jason Laster ([@jasonLaster](https://github.com/jasonLaster)) +- Jed Fox ([@j-f1](https://github.com/j-f1)) +- Jeffrey Posnick ([@jeffposnick](https://github.com/jeffposnick)) +- Jerry ([@jMuzsik](https://github.com/jMuzsik)) +- Jih-Chi Lee ([@jihchi](https://github.com/jihchi)) +- Joe Haddad ([@Timer](https://github.com/Timer)) +- Joel George V ([@joelgeorgev](https://github.com/joelgeorgev)) +- John Freeman ([@thejohnfreeman](https://github.com/thejohnfreeman)) +- Joshua Comeau ([@joshwcomeau](https://github.com/joshwcomeau)) +- João Paquim ([@jpaquim](https://github.com/jpaquim)) +- Kent C. Dodds ([@kentcdodds](https://github.com/kentcdodds)) +- Kévin Dunglas ([@dunglas](https://github.com/dunglas)) +- Levin Rickert ([@levrik](https://github.com/levrik)) +- Luis Nell ([@originell](https://github.com/originell)) +- Luke Jackson ([@lukejacksonn](https://github.com/lukejacksonn)) +- Maciej Kasprzyk ([@maciej-ka](https://github.com/maciej-ka)) +- Magnús Örn Gylfason ([@mg](https://github.com/mg)) +- Marco Fugaro ([@marcofugaro](https://github.com/marcofugaro)) +- Marco Slooten ([@mslooten](https://github.com/mslooten)) +- Marek Suscak ([@mareksuscak](https://github.com/mareksuscak)) +- Mario Nebl ([@marionebl](https://github.com/marionebl)) +- Marius Gedminas ([@mgedmin](https://github.com/mgedmin)) +- Marko Kaznovac ([@kaznovac](https://github.com/kaznovac)) +- Martin Lechner ([@martinlechner1](https://github.com/martinlechner1)) +- Maurice de Beijer ([@mauricedb](https://github.com/mauricedb)) +- Maël Nison ([@arcanis](https://github.com/arcanis)) +- Michaël De Boey ([@MichaelDeBoey](https://github.com/MichaelDeBoey)) +- Miguel Palau ([@shelldandy](https://github.com/shelldandy)) +- Mike Kusold ([@kusold](https://github.com/kusold)) +- Mike Wilcox ([@mjw56](https://github.com/mjw56)) +- Mikhail Osher ([@miraage](https://github.com/miraage)) +- Minh Nguyen ([@NMinhNguyen](https://github.com/NMinhNguyen)) +- Nick Bartlett ([@tteltrab](https://github.com/tteltrab)) +- PatrickJS ([@gdi2290](https://github.com/gdi2290)) +- Pete Nykänen ([@petetnt](https://github.com/petetnt)) +- Piotr ([@piotr-cz](https://github.com/piotr-cz)) +- Rami ([@evilchuck](https://github.com/evilchuck)) +- Reuben Antz ([@antzshrek](https://github.com/antzshrek)) +- Ro Savage ([@ro-savage](https://github.com/ro-savage)) +- Rob Grochowicz ([@rgrochowicz](https://github.com/rgrochowicz)) +- Robin van der Vleuten ([@robinvdvleuten](https://github.com/robinvdvleuten)) +- Sagiv ben giat ([@sag1v](https://github.com/sag1v)) +- Saimon Moore ([@saimonmoore](https://github.com/saimonmoore)) +- Sendil Kumar N ([@sendilkumarn](https://github.com/sendilkumarn)) +- Siddharth Doshi ([@sidoshi](https://github.com/sidoshi)) +- Stas Rudakou ([@nott](https://github.com/nott)) +- Stefan Feješ ([@fejes713](https://github.com/fejes713)) +- Thiago Galvani ([@thiagopaiva99](https://github.com/thiagopaiva99)) +- Tom Coleman ([@tmeasday](https://github.com/tmeasday)) +- Tore Hammervoll ([@skoging](https://github.com/skoging)) +- Trevor Brindle ([@tabrindle](https://github.com/tabrindle)) +- Vicente Plata ([@xnt](https://github.com/xnt)) +- Victor Amupitan ([@amupitan](https://github.com/amupitan)) +- Viktor Havrylin ([@Fer0x](https://github.com/Fer0x)) +- Vladimir Kutepov ([@frenzzy](https://github.com/frenzzy)) +- William Chargin ([@wchargin](https://github.com/wchargin)) +- XiaoYan Li ([@lixiaoyan](https://github.com/lixiaoyan)) +- [@Plortinus](https://github.com/Plortinus) +- [@arianon](https://github.com/arianon) +- [@everdimension](https://github.com/everdimension) +- [@nikolas2](https://github.com/nikolas2) +- [@stereobooster](https://github.com/stereobooster) +- [@wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) +- aisensiy ([@aisensiy](https://github.com/aisensiy)) +- froyog ([@froyog](https://github.com/froyog)) +- shawn wang ([@sw-yx](https://github.com/sw-yx)) + +## Releases Before 2.x + +Please refer to [CHANGELOG-1.x.md](./CHANGELOG-1.x.md) for earlier versions. diff --git a/CHANGELOG.md b/CHANGELOG.md index 27d74fd97dc..c07a0a87455 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,1390 +1,267 @@ -## 2.1.8 (March 7, 2019) +## 3.0.0 (April 22, 2019) -v2.1.8 is a maintenance release that reapplies the TypeScript speed improvements ([#6406](https://github.com/facebook/create-react-app/pull/6406)) in a new major version of `react-dev-utils`. +Create React App 3.0 brings some exciting new features including support for [Hooks](https://reactjs.org/docs/hooks-intro.html)! -### Migrating from 2.1.7 to 2.1.8 +Thanks to all the maintainers and contributors who worked so hard on this release! :tada: -Inside any created project that has not been ejected, run: - -```sh -npm install --save --save-exact react-scripts@2.1.8 -``` - -or - -```sh -yarn add --exact react-scripts@2.1.8 -``` - -## 2.1.7 (March 7, 2019) - -v2.1.7 is a maintenance release that temporarily reverts the TypeScript speed improvements ([#6406](https://github.com/facebook/create-react-app/pull/6406)) to fix a dependency issue in `react-dev-utils`. - -### Migrating from 2.1.6 to 2.1.7 - -Inside any created project that has not been ejected, run: - -```sh -npm install --save --save-exact react-scripts@2.1.7 -``` - -or - -```sh -yarn add --exact react-scripts@2.1.7 -``` - -## 2.1.6 (March 6, 2019) - -v2.1.6 is a maintenance release that brings a few new improvements, most notably: - -- :rocket: Reduced TypeScript rebuild times while running the development server. This was previously introduced in v2.1.4 but had to be reverted. Thanks to [@ianschmitz](https://github.com/ianschmitz) for getting this ready. - -#### :bug: Bug Fix - -- `react-dev-utils` - - [#6511](https://github.com/facebook/create-react-app/pull/6511) Fix deploy instructions to make link clickable. ([@sbimochan](https://github.com/sbimochan)) -- `react-scripts` - - [#6472](https://github.com/facebook/create-react-app/pull/6472) Revert CSS sourcemaps in development. ([@bugzpodder](https://github.com/bugzpodder)) - - [#6444](https://github.com/facebook/create-react-app/pull/6444) Revert "Switch to eval-source-map (#5060)". ([@ianschmitz](https://github.com/ianschmitz)) - -#### :nail_care: Enhancement - -- `react-dev-utils`, `react-scripts` - - [#6406](https://github.com/facebook/create-react-app/pull/6406) Speed up TypeScript rebuild times in development. ([@ianschmitz](https://github.com/ianschmitz)) -- `create-react-app` - - [#6253](https://github.com/facebook/create-react-app/pull/6253) Only use `yarn.lock.cached` if using the default Yarn registry. ([@hangryCat](https://github.com/hangryCat)) -- `react-scripts` - - [#5457](https://github.com/facebook/create-react-app/pull/5457) Add forward ref to React SVG Component. ([@GasimGasimzada](https://github.com/GasimGasimzada)) - -#### :memo: Documentation - -- `babel-preset-react-app` - - [#6254](https://github.com/facebook/create-react-app/pull/6254) Improve Flow and TypeScript usage docs. ([@saranshkataria](https://github.com/saranshkataria)) -- `babel-preset-react-app`, `confusing-browser-globals`, `react-app-polyfill` - - [#6419](https://github.com/facebook/create-react-app/pull/6419) Improve language used in markdown code blocks. ([@cherouvim](https://github.com/cherouvim)) -- `create-react-app` - - [#6481](https://github.com/facebook/create-react-app/pull/6481) Fix typo. ([@adyouri](https://github.com/adyouri)) -- `react-dev-utils` - - [#6482](https://github.com/facebook/create-react-app/pull/6482) Fix typo. ([@mattfwood](https://github.com/mattfwood)) -- Other - - [#6438](https://github.com/facebook/create-react-app/pull/6438) Update `source-map-explorer` docs to analyze all chunks. ([@Kamahl19](https://github.com/Kamahl19)) - - [#6454](https://github.com/facebook/create-react-app/pull/6454) Fix typo. ([@DenrizSusam](https://github.com/DenrizSusam)) - - [#5767](https://github.com/facebook/create-react-app/pull/5767) Add information about using custom registries in e2e testing #4488. ([@juanpicado](https://github.com/juanpicado)) -- `react-dev-utils`, `react-scripts` - - [#6239](https://github.com/facebook/create-react-app/pull/6239) Convert all bit.ly links from http to https. ([@leighhalliday](https://github.com/leighhalliday)) - -#### :house: Internal - -- [#6493](https://github.com/facebook/create-react-app/pull/6493) Remove AppVeyor config files. ([@iansu](https://github.com/iansu)) -- [#6474](https://github.com/facebook/create-react-app/pull/6474) Remove latest Node version from Travis config. ([@iansu](https://github.com/iansu)) - -#### :hammer: Underlying Tools - -- `react-scripts` - - [#6387](https://github.com/facebook/create-react-app/pull/6387) Use contenthash instead of chunkhash for better long-term caching. ([@ianschmitz](https://github.com/ianschmitz)) -- Other - - [#6365](https://github.com/facebook/create-react-app/pull/6365) Upgrade Docusaurus and enable new features. ([@yangshun](https://github.com/yangshun)) - -#### Committers: 15 - -- Abdelhadi Dyouri ([adyouri](https://github.com/adyouri)) -- Bimochan Shrestha ([sbimochan](https://github.com/sbimochan)) -- Deniz Susman ([DenrizSusam](https://github.com/DenrizSusam)) -- Gasim Gasimzada ([GasimGasimzada](https://github.com/GasimGasimzada)) -- Ian Schmitz ([ianschmitz](https://github.com/ianschmitz)) -- Ian Sutherland ([iansu](https://github.com/iansu)) -- Ioannis Cherouvim ([cherouvim](https://github.com/cherouvim)) -- Jack Zhao ([bugzpodder](https://github.com/bugzpodder)) -- Juan Picado @jotadeveloper ([juanpicado](https://github.com/juanpicado)) -- Leigh Halliday ([leighhalliday](https://github.com/leighhalliday)) -- Martin Litvaj ([Kamahl19](https://github.com/Kamahl19)) -- Matt Wood ([mattfwood](https://github.com/mattfwood)) -- Meo H. ([hangryCat](https://github.com/hangryCat)) -- Saransh Kataria ([saranshkataria](https://github.com/saranshkataria)) -- Yangshun Tay ([yangshun](https://github.com/yangshun)) - -### Migrating from 2.1.5 to 2.1.6 - -Inside any created project that has not been ejected, run: - -```sh -npm install --save --save-exact react-scripts@2.1.6 -``` - -or - -```sh -yarn add --exact react-scripts@2.1.6 -``` +# Highlights -## 2.1.5 (February 11, 2019) +- Jest 24: #6278 +- Hooks support: #5997 +- TypeScript linting: #6513 +- `browserslist` support in @babel/preset-env: #6608 +- Absolute imports using `jsconfig.json`/`tsconfig.json`: #6656 -v2.1.5 is a maintenance release that reverts the TypeScript speed improvements ([#5903](https://github.com/facebook/create-react-app/pull/5903)) to fix a dependency issue in `react-dev-utils`. - -### Migrating from 2.1.4 to 2.1.5 +# Migrating from 2.1.x to 3.0.0 Inside any created project that has not been ejected, run: -```sh -npm install --save --save-exact react-scripts@2.1.5 +```bash +npm install --save --save-exact react-scripts@3.0.0 ``` or -```sh -yarn add --exact react-scripts@2.1.5 -``` - -## 2.1.4 (February 10, 2019) - -v2.1.4 is a maintenance release that brings a number of awesome improvements. A few notable ones include: - -- :rocket: Reduced TypeScript rebuild times while running the development server. TypeScript is now blazing fast! Special thanks to [@deftomat](https://github.com/deftomat) and [@johnnyreilly](https://github.com/johnnyreilly) and the other contributors for their hard work on this. ([#5903](https://github.com/facebook/create-react-app/pull/5903)) -- Jest [type ahead support](https://github.com/jest-community/jest-watch-typeahead) which provides a much nicer experience when filtering your tests using the Jest CLI ([#5213](https://github.com/facebook/create-react-app/pull/5213)) -- And many more improvements! - -#### :bug: Bug Fix - -- `react-scripts` - - [#6364](https://github.com/facebook/create-react-app/pull/6364) Use semicolons in the ProcessEnv interface. ([@DominikPalo](https://github.com/DominikPalo)) - - [#6276](https://github.com/facebook/create-react-app/pull/6276) Prevent cursor events on app-logo svg. ([@kostadriano](https://github.com/kostadriano)) - -#### :nail_care: Enhancement - -- `react-scripts` - - [#5213](https://github.com/facebook/create-react-app/pull/5213) Add Jest typeahead plugin. ([@gaearon](https://github.com/gaearon)) - - [#5713](https://github.com/facebook/create-react-app/pull/5713) Sass source map for dev. ([@zhuoli99](https://github.com/zhuoli99)) - - [#6285](https://github.com/facebook/create-react-app/pull/6285) Allow react-scripts test --no-watch. ([@ricokahler](https://github.com/ricokahler)) - - [#5060](https://github.com/facebook/create-react-app/pull/5060) Enable eval-source-map for firefox. ([@jasonLaster](https://github.com/jasonLaster)) -- `react-dev-utils`, `react-scripts` - - [#5903](https://github.com/facebook/create-react-app/pull/5903) Speed up TypeScript projects. ([@deftomat](https://github.com/deftomat)) - -#### :memo: Documentation - -- Other - - [#6383](https://github.com/facebook/create-react-app/pull/6383) Update docs links to prefer HTTPS for supported domains. ([@ianschmitz](https://github.com/ianschmitz)) - - [#6062](https://github.com/facebook/create-react-app/pull/6062) [docs] Warn/clarify that env vars are NOT "SECRET". ([@JBallin](https://github.com/JBallin)) - - [#6359](https://github.com/facebook/create-react-app/pull/6359) Update ZEIT Now deployment instructions. ([@timothyis](https://github.com/timothyis)) - - [#6346](https://github.com/facebook/create-react-app/pull/6346) Minor issue in README.md. ([@nathanlschneider](https://github.com/nathanlschneider)) - - [#6331](https://github.com/facebook/create-react-app/pull/6331) Update docs to document `--no-watch`. ([@ricokahler](https://github.com/ricokahler)) - - [#6229](https://github.com/facebook/create-react-app/pull/6229) Update `serve` port flag and add example. ([@lyzhovnik](https://github.com/lyzhovnik)) - - [#6190](https://github.com/facebook/create-react-app/pull/6190) Updating updating-to-new-releases.md for users who installed CRA globally. ([@carpben](https://github.com/carpben)) - - [#6095](https://github.com/facebook/create-react-app/pull/6095) Changes to steps for publishing GitHub User Page. ([@StevenTan](https://github.com/StevenTan)) - - [#6157](https://github.com/facebook/create-react-app/pull/6157) Add note for global install of CLI. ([@ianschmitz](https://github.com/ianschmitz)) - - [#6149](https://github.com/facebook/create-react-app/pull/6149) update link for difference between proposal stages. ([@loveky](https://github.com/loveky)) - - [#6141](https://github.com/facebook/create-react-app/pull/6141) Remove extra table cell. ([@yangshun](https://github.com/yangshun)) -- `react-scripts` - - [#6355](https://github.com/facebook/create-react-app/pull/6355) Make manifest.json description more generic. ([@chrisself](https://github.com/chrisself)) - -#### :house: Internal - -- Other - - [#6050](https://github.com/facebook/create-react-app/pull/6050) Fix e2e:docker failure with "access denied". ([@jamesknelson](https://github.com/jamesknelson)) - - [#6179](https://github.com/facebook/create-react-app/pull/6179) Update local-test.sh to return test exit code. ([@dallonf](https://github.com/dallonf)) - - [#6165](https://github.com/facebook/create-react-app/pull/6165) Fix CI builds. ([@ianschmitz](https://github.com/ianschmitz)) -- `react-scripts` - - [#5798](https://github.com/facebook/create-react-app/pull/5798) Added `module` to ignored node modules list. ([@dotansimha](https://github.com/dotansimha)) - - [#6022](https://github.com/facebook/create-react-app/pull/6022) TypeScript detection filtering 'node_modules'.. ([@holloway](https://github.com/holloway)) -- `react-dev-utils`, `react-scripts` - - [#6150](https://github.com/facebook/create-react-app/pull/6150) dependencies: move chalk to react-dev-utils. ([@otaviopace](https://github.com/otaviopace)) -- `babel-plugin-named-asset-import`, `react-scripts` - - [#5816](https://github.com/facebook/create-react-app/pull/5816) Upgrade @svgr/webpack to 4.1.0. ([@alaycock](https://github.com/alaycock)) -- `react-dev-utils` - - [#6162](https://github.com/facebook/create-react-app/pull/6162) Update react-dev-util globby dependency to v8.0.2. ([@davidlukerice](https://github.com/davidlukerice)) -- `babel-preset-react-app`, `react-app-polyfill`, `react-dev-utils`, `react-error-overlay`, `react-scripts` - - [#6137](https://github.com/facebook/create-react-app/pull/6137) Fix CI and upgrade dependencies. ([@Timer](https://github.com/Timer)) - -#### :hammer: Underlying Tools - -- `babel-preset-react-app`, `react-app-polyfill`, `react-dev-utils`, `react-scripts` - - [#6393](https://github.com/facebook/create-react-app/pull/6393) Upgrade dependencies. ([@ianschmitz](https://github.com/ianschmitz)) -- `babel-preset-react-app` - - [#6307](https://github.com/facebook/create-react-app/pull/6307) Update babel-plugin-macros 2.4.4 -> 2.4.5. ([@maniax89](https://github.com/maniax89)) -- `eslint-config-react-app`, `react-scripts` - - [#6132](https://github.com/facebook/create-react-app/pull/6132) Bump eslint-plugin-react version and update webpack config. ([@ianschmitz](https://github.com/ianschmitz)) - -#### Committers: 29 - -- Adam Laycock ([alaycock](https://github.com/alaycock)) -- Adriano Costa ([kostadriano](https://github.com/kostadriano)) -- Andrew Turgeon ([maniax89](https://github.com/maniax89)) -- Ben Carp ([carpben](https://github.com/carpben)) -- Charles Pritchard ([Downchuck](https://github.com/Downchuck)) -- Chris Self ([chrisself](https://github.com/chrisself)) -- Dallon Feldner ([dallonf](https://github.com/dallonf)) -- Dan Abramov ([gaearon](https://github.com/gaearon)) -- David Rice ([davidlukerice](https://github.com/davidlukerice)) -- Dominik Palo ([DominikPalo](https://github.com/DominikPalo)) -- Dotan Simha ([dotansimha](https://github.com/dotansimha)) -- Ian Schmitz ([ianschmitz](https://github.com/ianschmitz)) -- JBallin ([JBallin](https://github.com/JBallin)) -- James George ([jamesgeorge007](https://github.com/jamesgeorge007)) -- James K Nelson ([jamesknelson](https://github.com/jamesknelson)) -- Jason Laster ([jasonLaster](https://github.com/jasonLaster)) -- Joe Haddad ([Timer](https://github.com/Timer)) -- Matthew Holloway ([holloway](https://github.com/holloway)) -- Nathan Schneider ([nathanlschneider](https://github.com/nathanlschneider)) -- Nikita Lyzhov ([lyzhovnik](https://github.com/lyzhovnik)) -- Otávio Pace ([otaviopace](https://github.com/otaviopace)) -- Rico Kahler ([ricokahler](https://github.com/ricokahler)) -- Steven Tan ([StevenTan](https://github.com/StevenTan)) -- Timothy ([timothyis](https://github.com/timothyis)) -- Tomáš Szabo ([deftomat](https://github.com/deftomat)) -- Yangshun Tay ([yangshun](https://github.com/yangshun)) -- [gottfired](https://github.com/gottfired) -- [zhuoli99](https://github.com/zhuoli99) -- loveky ([loveky](https://github.com/loveky)) - -### Migrating from 2.1.3 to 2.1.4 - -Inside any created project that has not been ejected, run: - -```sh -npm install --save --save-exact react-scripts@2.1.4 ``` - -or - -```sh -yarn add --exact react-scripts@2.1.4 +yarn add --exact react-scripts@3.0.0 ``` -## 2.1.3 (January 4, 2019) - -v2.1.3 is a maintenance release to fix a [vulnerability in webpack-dev-server](https://www.npmjs.com/advisories/725). - -#### :memo: Documentation - -- Other - - [#6067](https://github.com/facebook/create-react-app/pull/6067) Correct an error for documentation. ([@hardo](https://github.com/hardo)) - - [#6110](https://github.com/facebook/create-react-app/pull/6110) Replace deprecated VSCode launch.json variable. ([@raiskila](https://github.com/raiskila)) - - [#5631](https://github.com/facebook/create-react-app/pull/5631) Generalize the adding bootstrap documentation. ([@jquense](https://github.com/jquense)) - - [#6084](https://github.com/facebook/create-react-app/pull/6084) Remove outdated docs for setting up eslint in editor. ([@LukasWerfel](https://github.com/LukasWerfel)) - - [#6061](https://github.com/facebook/create-react-app/pull/6061) Fix control comment of CSS Grid prefixing. ([@denexapp](https://github.com/denexapp)) -- `react-scripts` - - [#6036](https://github.com/facebook/create-react-app/pull/6036) Fix comment typo. ([@shawtung](https://github.com/shawtung)) - -#### :house: Internal - -- `create-react-app`, `react-error-overlay` - - [#6104](https://github.com/facebook/create-react-app/pull/6104) Typo fixes. ([@prashant-andani](https://github.com/prashant-andani)) - -#### :hammer: Underlying Tools - -- `react-scripts` - - [#6064](https://github.com/facebook/create-react-app/pull/6064) Update webpack-dev-server 3.1.9 -> 3.1.14. ([@Friss](https://github.com/Friss)) - -#### Committers: 8 - -- Denis Mukhametov ([denexapp](https://github.com/denexapp)) -- Hardo ([hardo](https://github.com/hardo)) -- Janne Raiskila ([raiskila](https://github.com/raiskila)) -- Jason Quense ([jquense](https://github.com/jquense)) -- Lukas Werfel ([LukasWerfel](https://github.com/LukasWerfel)) -- Prashant Andani ([prashant-andani](https://github.com/prashant-andani)) -- Zachary Friss ([Friss](https://github.com/Friss)) -- [shawtung](https://github.com/shawtung) - -### Migrating from 2.1.2 to 2.1.3 - -Inside any created project that has not been ejected, run: - -```sh -npm install --save --save-exact react-scripts@2.1.3 -``` - -or - -```sh -yarn add --exact react-scripts@2.1.3 -``` - -## 2.1.2 (December 23, 2018) - -v2.1.2 is a maintenance release including various bug fixes. - -#### :rocket: New Feature - -- `babel-preset-react-app` - - [#5487](https://github.com/facebook/create-react-app/pull/5487) Add `allowESModules` option to `babel-preset-react-app` ([@Pajn](https://github.com/Pajn)) - -#### :bug: Bug Fix - -- `create-react-app` - - [#5905](https://github.com/facebook/create-react-app/pull/5905) Disable copy to clipboard in `create-react-app --info` ([@heyimalex](https://github.com/heyimalex)) - - [#5685](https://github.com/facebook/create-react-app/pull/5685) Update envinfo to `5.11.1` ([@tabrindle](https://github.com/tabrindle)) -- `babel-preset-react-app` - - [#5783](https://github.com/facebook/create-react-app/pull/5783) Fix TypeScript decorator support ([@ianschmitz](https://github.com/ianschmitz)) -- `babel-plugin-named-asset-import` - - [#5573](https://github.com/facebook/create-react-app/pull/5573) Fix named-asset-import plugin to work with export-as syntax ([@NShahri](https://github.com/NShahri)) -- `react-app-polyfill` - - [#5789](https://github.com/facebook/create-react-app/pull/5789) Don't polyfill fetch for Node ([@gshilin](https://github.com/gshilin)) -- `react-scripts` - - [#5721](https://github.com/facebook/create-react-app/pull/5721) Version bump `postcss-preset-env` to latest ([@BPScott](https://github.com/BPScott)) - - [#5701](https://github.com/facebook/create-react-app/pull/5701) Fix `tsconfig.json` lib suggested value ([@ianschmitz](https://github.com/ianschmitz)) - -#### :nail_care: Enhancement - -- `react-scripts` - - [#5698](https://github.com/facebook/create-react-app/pull/5698) Add support for `setupTests.ts` ([@ianschmitz](https://github.com/ianschmitz)) - -#### :memo: Documentation - -- Other - - [#6009](https://github.com/facebook/create-react-app/pull/6009) Correct markdown to avoid comment. ([@souzasmatheus](https://github.com/souzasmatheus)) - - [#6015](https://github.com/facebook/create-react-app/pull/6015) Add example command to create typed project. ([@mbelsky](https://github.com/mbelsky)) - - [#6000](https://github.com/facebook/create-react-app/pull/6000) Make links to docs consistent in README. ([@iansu](https://github.com/iansu)) - - [#5900](https://github.com/facebook/create-react-app/pull/5900) Add production build section to docs. ([@ianschmitz](https://github.com/ianschmitz)) - - [#5985](https://github.com/facebook/create-react-app/pull/5985) Use https for linked images to fix mixed content warnings. ([@iansu](https://github.com/iansu)) - - [#5919](https://github.com/facebook/create-react-app/pull/5919) Docs: update localStorage mock in “Running Tests”. ([@phacks](https://github.com/phacks)) - - [#5917](https://github.com/facebook/create-react-app/pull/5917) Add SASS_PATH instructions to Sass stylesheet docs. ([@jayantbh](https://github.com/jayantbh)) - - [#5823](https://github.com/facebook/create-react-app/pull/5823) Add default values to `file_ext` note. ([@alaycock](https://github.com/alaycock)) - - [#5907](https://github.com/facebook/create-react-app/pull/5907) Update README.md with updated link about PWAs. ([@wuweiweiwu](https://github.com/wuweiweiwu)) - - [#5858](https://github.com/facebook/create-react-app/pull/5858) Some Grammar fixes. ([@nikhilknoldus](https://github.com/nikhilknoldus)) - - [#5883](https://github.com/facebook/create-react-app/pull/5883) Fix link to page about running tests. ([@wsmoak](https://github.com/wsmoak)) - - [#5849](https://github.com/facebook/create-react-app/pull/5849) React native repository updated in `README.md`. ([@pavinthan](https://github.com/pavinthan)) - - [#5806](https://github.com/facebook/create-react-app/pull/5806) Rename 'getting started' link to 'docs'. ([@kulek1](https://github.com/kulek1)) - - [#5788](https://github.com/facebook/create-react-app/pull/5788) docs: Simplify installing Storybook with `npx` ([@sagirk](https://github.com/sagirk)) - - [#5779](https://github.com/facebook/create-react-app/pull/5779) docs: Change story book command to `sb init` ([@andys8](https://github.com/andys8)) - - [#5759](https://github.com/facebook/create-react-app/pull/5759) Add PR welcoming badge ([@open-source-explorer](https://github.com/open-source-explorer)) - - [#5730](https://github.com/facebook/create-react-app/pull/5730) Suggest Encore when not building a SPA with Symfony ([@dunglas](https://github.com/dunglas)) - - [#5710](https://github.com/facebook/create-react-app/pull/5710) Updated the link to firebase hosting ([@githubsaturn](https://github.com/githubsaturn)) - - [#5704](https://github.com/facebook/create-react-app/pull/5704) Fixed link to manifest.json file ([@m4jing](https://github.com/m4jing)) - - [#5670](https://github.com/facebook/create-react-app/pull/5670) Fix public folder documentation link ([@makovkastar](https://github.com/makovkastar)) -- `eslint-config-react-app` - - [#5990](https://github.com/facebook/create-react-app/pull/5990) Updated docs for `.eslintrc` ([@ManoelLobo](https://github.com/ManoelLobo)) -- `babel-preset-react-app`, `create-react-app`, `eslint-config-react-app`, `react-dev-utils`, `react-scripts` - - [#5912](https://github.com/facebook/create-react-app/pull/5912) Update links to docs in all package README files ([@iansu](https://github.com/iansu)) -- `react-scripts` - - [#5974](https://github.com/facebook/create-react-app/pull/5974) Improve advice in `verifyPackageTree.js` ([@sjalgeo](https://github.com/sjalgeo)) - - [#5954](https://github.com/facebook/create-react-app/pull/5954) Add pre-eject message about new features in v2 ([@iansu](https://github.com/iansu)) - - [#5808](https://github.com/facebook/create-react-app/pull/5808) Add placeholders to template README for bit.ly links ([@iansu](https://github.com/iansu)) -- `react-app-polyfill` - - [#5814](https://github.com/facebook/create-react-app/pull/5814) Note that extra polyfills must be included manually ([@ajwann](https://github.com/ajwann)) -- `babel-preset-react-app`, `eslint-config-react-app`, `react-error-overlay`, `react-scripts` - - [#5727](https://github.com/facebook/create-react-app/pull/5727) Fix typo ([@noelyoo](https://github.com/noelyoo)) - -#### :house: Internal - -- `react-scripts` - - [#5978](https://github.com/facebook/create-react-app/pull/5978) Add `webp` support for TypeScript. ([@dugagjin](https://github.com/dugagjin)) - - [#5959](https://github.com/facebook/create-react-app/pull/5959) Suggest a different default for speed reasons. ([@Timer](https://github.com/Timer)) - - [#5839](https://github.com/facebook/create-react-app/pull/5839) Run prettier on HTML files. ([@sibiraj-s](https://github.com/sibiraj-s)) - - [#5722](https://github.com/facebook/create-react-app/pull/5722) Merge webpack configuration. ([@Timer](https://github.com/Timer)) - - [#5694](https://github.com/facebook/create-react-app/pull/5694) Add permissive TS lib defaults. ([@Timer](https://github.com/Timer)) -- Other - - [#5988](https://github.com/facebook/create-react-app/pull/5988) Added extension to `.eslintrc` ([@ManoelLobo](https://github.com/ManoelLobo)) - - [#5546](https://github.com/facebook/create-react-app/pull/5546) Add the latest stable node version. ([@noelyoo](https://github.com/noelyoo)) -- `react-dev-utils` - - [#5927](https://github.com/facebook/create-react-app/pull/5927) Correct some comments. ([@mjackson](https://github.com/mjackson)) - - [#5879](https://github.com/facebook/create-react-app/pull/5879) fix: make typescriptformatter support 0.5 of fork checker. ([@SimenB](https://github.com/SimenB)) -- `react-error-overlay` - - [#5451](https://github.com/facebook/create-react-app/pull/5451) fix: add `sideEffects: false` to react-error-overlay. ([@SimenB](https://github.com/SimenB)) -- `babel-preset-react-app` - - [#5487](https://github.com/facebook/create-react-app/pull/5487) Add allowESModules option to babel-preset-react-app. ([@Pajn](https://github.com/Pajn)) -- `create-react-app` - - [#4605](https://github.com/facebook/create-react-app/pull/4605) ignore intellij module files when generating an app. ([@denofevil](https://github.com/denofevil)) - -#### Committers: 36 - -- \ ([open-source-explorer](https://github.com/open-source-explorer)) -- Adam Laycock ([alaycock](https://github.com/alaycock)) -- Adam Wanninger ([ajwann](https://github.com/ajwann)) -- Alex Guerra ([heyimalex](https://github.com/heyimalex)) -- Andy ([andys8](https://github.com/andys8)) -- Ben Scott ([BPScott](https://github.com/BPScott)) -- Dennis Ushakov ([denofevil](https://github.com/denofevil)) -- Dugagjin Lashi ([dugagjin](https://github.com/dugagjin)) -- Gregory Shilin ([gshilin](https://github.com/gshilin)) -- Ian Schmitz ([ianschmitz](https://github.com/ianschmitz)) -- Ian Sutherland ([iansu](https://github.com/iansu)) -- Jayant Bhawal ([jayantbh](https://github.com/jayantbh)) -- Jing Ma ([m4jing](https://github.com/m4jing)) -- Joe Haddad ([Timer](https://github.com/Timer)) -- Kasra Bigdeli ([githubsaturn](https://github.com/githubsaturn)) -- Kévin Dunglas ([dunglas](https://github.com/dunglas)) -- Manoel ([ManoelLobo](https://github.com/ManoelLobo)) -- Matheus Souza ([souzasmatheus](https://github.com/souzasmatheus)) -- Max Belsky ([mbelsky](https://github.com/mbelsky)) -- Michael Jackson ([mjackson](https://github.com/mjackson)) -- Nicolas Goutay ([phacks](https://github.com/phacks)) -- Nikhil ([nikhilknoldus](https://github.com/nikhilknoldus)) -- Nima Shahri ([NShahri](https://github.com/NShahri)) -- Noel Yoo ([noelyoo](https://github.com/noelyoo)) -- Oleksandr Melnykov ([makovkastar](https://github.com/makovkastar)) -- Pavinthan ([pavinthan](https://github.com/pavinthan)) -- Rasmus Eneman ([Pajn](https://github.com/Pajn)) -- Sagir Khan ([sagirk](https://github.com/sagirk)) -- Sibiraj ([sibiraj-s](https://github.com/sibiraj-s)) -- Simen Bekkhus ([SimenB](https://github.com/SimenB)) -- Stephen Algeo ([sjalgeo](https://github.com/sjalgeo)) -- Trevor Brindle ([tabrindle](https://github.com/tabrindle)) -- Wei-Wei Wu ([wuweiweiwu](https://github.com/wuweiweiwu)) -- Wendy Smoak ([wsmoak](https://github.com/wsmoak)) -- [kulek1](https://github.com/kulek1) -- swyx ([sw-yx](https://github.com/sw-yx)) - -### Migrating from 2.1.1 to 2.1.2 - -Inside any created project that has not been ejected, run: - -```sh -npm install --save --save-exact react-scripts@2.1.2 -``` - -or - -```sh -yarn add --exact react-scripts@2.1.2 -``` - -## 2.1.1 (October 31, 2018) - -Happy Halloween 🎃 👻! This spooky release brings a treat: decorator support in TypeScript files! - -#### :bug: Bug Fix - -- `babel-preset-react-app` - - [#5659](https://github.com/facebook/create-react-app/pull/5659) Add support for decorators. ([@Timer](https://github.com/Timer)) -- `react-scripts` - - [#5621](https://github.com/facebook/create-react-app/pull/5621) fix 'Duplicate string index signature' in ProcessEnv. ([@xiaoxiangmoe](https://github.com/xiaoxiangmoe)) - -#### :nail_care: Enhancement - -- `babel-preset-react-app` - - [#5659](https://github.com/facebook/create-react-app/pull/5659) Add support for decorators. ([@Timer](https://github.com/Timer)) - -#### :memo: Documentation - -- [#5658](https://github.com/facebook/create-react-app/pull/5658) Update making-a-progressive-web-app.md. ([@jakeboone02](https://github.com/jakeboone02)) -- [#5635](https://github.com/facebook/create-react-app/pull/5635) Update minimum node version to 8.10 in README. ([@iansu](https://github.com/iansu)) -- [#5629](https://github.com/facebook/create-react-app/pull/5629) Add link to cra-ts migration guide. ([@Vinnl](https://github.com/Vinnl)) - -#### :house: Internal - -- `react-error-overlay` - - [#4709](https://github.com/facebook/create-react-app/pull/4709) Expose `reportRuntimeError`. ([@hipstersmoothie](https://github.com/hipstersmoothie)) -- `babel-plugin-named-asset-import` - - [#5575](https://github.com/facebook/create-react-app/pull/5575) add tests for named-asset-imports plugin. ([@NShahri](https://github.com/NShahri)) -- `react-scripts` - - [#5651](https://github.com/facebook/create-react-app/pull/5651) Make serviceWorker config argument optional in typescript. ([@eddedd88](https://github.com/eddedd88)) - -#### Committers: 8 - -- Andrew Lisowski ([hipstersmoothie](https://github.com/hipstersmoothie)) -- Eduardo Duran ([eddedd88](https://github.com/eddedd88)) -- Ian Sutherland ([iansu](https://github.com/iansu)) -- Jake Boone ([jakeboone02](https://github.com/jakeboone02)) -- Joe Haddad ([Timer](https://github.com/Timer)) -- Nima Shahri ([NShahri](https://github.com/NShahri)) -- Vincent ([Vinnl](https://github.com/Vinnl)) -- ZHAO Jinxiang ([xiaoxiangmoe](https://github.com/xiaoxiangmoe)) - -### Migrating from 2.1.0 to 2.1.1 - -Inside any created project that has not been ejected, run: - -```sh -npm install --save --save-exact react-scripts@2.1.1 -``` - -or - -```sh -yarn add --exact react-scripts@2.1.1 -``` - -## 2.1.0 (October 29, 2018) - -Create React App 2.1 adds support for TypeScript! Read [the documentation](https://facebook.github.io/create-react-app/docs/adding-typescript) to get started. - -New applications can be created using TypeScript by running: - -```sh -$ npx create-react-app my-app --typescript -``` - -#### :rocket: New Feature - -- `create-react-app`, `react-scripts` - - [#5550](https://github.com/facebook/create-react-app/pull/5550) Add TypeScript app creation ([@Timer](https://github.com/Timer)) -- `babel-preset-react-app`, `react-scripts` - - [#4837](https://github.com/facebook/create-react-app/pull/4837) TypeScript support using Babel 7 ([@brunolemos](https://github.com/brunolemos)) - -#### :bug: Bug Fix - -- `react-scripts` - - [#5611](https://github.com/facebook/create-react-app/pull/5611) Remove react-scripts type reference on eject. ([@Timer](https://github.com/Timer)) - - [#5614](https://github.com/facebook/create-react-app/pull/5614) Ignore json files from TypeScript type checking. ([@brunolemos](https://github.com/brunolemos)) - - [#5609](https://github.com/facebook/create-react-app/pull/5609) Remove unsupported options. ([@Timer](https://github.com/Timer)) - - [#5608](https://github.com/facebook/create-react-app/pull/5608) Ignore test files from reported type errors. ([@Timer](https://github.com/Timer)) - - [#5589](https://github.com/facebook/create-react-app/pull/5589) Update react-app.d.ts. ([@brunolemos](https://github.com/brunolemos)) - - [#5557](https://github.com/facebook/create-react-app/pull/5557) Add typings for process.env. ([@brunolemos](https://github.com/brunolemos)) - - [#5532](https://github.com/facebook/create-react-app/pull/5532) Use TypeScript parser to read tsconfig.json. ([@brunolemos](https://github.com/brunolemos)) - - [#5527](https://github.com/facebook/create-react-app/pull/5527) Update Workbox dependency. ([@jeffposnick](https://github.com/jeffposnick)) -- `react-dev-utils`, `react-scripts` - - [#5549](https://github.com/facebook/create-react-app/pull/5549) Automatically setup TypeScript when detected. ([@Timer](https://github.com/Timer)) - - [#5537](https://github.com/facebook/create-react-app/pull/5537) Respect tsconfig.json extends when validating config. ([@ianschmitz](https://github.com/ianschmitz)) - -#### :nail_care: Enhancement - -- `create-react-app`, `react-scripts` - - [#5593](https://github.com/facebook/create-react-app/pull/5593) Refine how TypeScript types are handled. ([@Timer](https://github.com/Timer)) -- `react-scripts` - - [#5531](https://github.com/facebook/create-react-app/pull/5531) Enable TypeScript json module resolver. ([@brunolemos](https://github.com/brunolemos)) - - [#5524](https://github.com/facebook/create-react-app/pull/5524) Validate tsconfig when using TypeScript. ([@Timer](https://github.com/Timer)) - - [#5516](https://github.com/facebook/create-react-app/pull/5516) Check for TypeScript install in preflight. ([@Timer](https://github.com/Timer)) - - [#5515](https://github.com/facebook/create-react-app/pull/5515) Always type check TypeScript when being used. ([@Timer](https://github.com/Timer)) -- `react-dev-utils`, `react-scripts` - - [#5529](https://github.com/facebook/create-react-app/pull/5529) Add TypeScript error formatting. ([@Timer](https://github.com/Timer)) - -#### :memo: Documentation - -- Other - - [#5552](https://github.com/facebook/create-react-app/pull/5552) Fixing Internal Links. ([@ehfeng](https://github.com/ehfeng)) - - [#5551](https://github.com/facebook/create-react-app/pull/5551) Add Algolia search bar to Docusaurus. ([@amyrlam](https://github.com/amyrlam)) - - [#5533](https://github.com/facebook/create-react-app/pull/5533) Simplified TypeScript steps. ([@brunolemos](https://github.com/brunolemos)) - - [#5492](https://github.com/facebook/create-react-app/pull/5492) Add "edit" feature to Docusaurus pages. ([@amyrlam](https://github.com/amyrlam)) - - [#5499](https://github.com/facebook/create-react-app/pull/5499) Fix title on Safari. ([@yuyokk](https://github.com/yuyokk)) - - [#5494](https://github.com/facebook/create-react-app/pull/5494) Fix typo. ([@noelyoo](https://github.com/noelyoo)) - - [#5493](https://github.com/facebook/create-react-app/pull/5493) Fixed typo in getting-started. ([@jessepeterman](https://github.com/jessepeterman)) - - [#5344](https://github.com/facebook/create-react-app/pull/5344) Add some headings to the getting started section. ([@selbekk](https://github.com/selbekk)) - - [#5251](https://github.com/facebook/create-react-app/pull/5251) Add SoMe links to documentation. ([@selbekk](https://github.com/selbekk)) -- `react-scripts` - - [#5512](https://github.com/facebook/create-react-app/pull/5512) Update doc links in template README. ([@iansu](https://github.com/iansu)) - - [#5475](https://github.com/facebook/create-react-app/pull/5475) Fix typo. ([@thompk2](https://github.com/thompk2)) - - [#5449](https://github.com/facebook/create-react-app/pull/5449) Remove dot from the end of the link to fix it when using from GitHub. ([@ranyitz](https://github.com/ranyitz)) - -#### :house: Internal - -- `react-scripts` - - [#5607](https://github.com/facebook/create-react-app/pull/5607) Turn on certain TypeScript options. ([@Timer](https://github.com/Timer)) - - [#5559](https://github.com/facebook/create-react-app/pull/5559) Change import syntax from typescript declaration. ([@brunolemos](https://github.com/brunolemos)) - - [#5469](https://github.com/facebook/create-react-app/pull/5469) Avoid pushing .pnp folder to git. ([@NShahri](https://github.com/NShahri)) - - [#5527](https://github.com/facebook/create-react-app/pull/5527) Update Workbox dependency. ([@jeffposnick](https://github.com/jeffposnick)) -- `eslint-config-react-app` - - [#5586](https://github.com/facebook/create-react-app/pull/5586) Fixing the code splitting links in the ESLint output. ([@jheijmans](https://github.com/jheijmans)) - -#### Committers: 15 - -- Amy Lam ([amyrlam](https://github.com/amyrlam)) -- Bruno Lemos ([brunolemos](https://github.com/brunolemos)) -- Eric Feng ([ehfeng](https://github.com/ehfeng)) -- Ian Schmitz ([ianschmitz](https://github.com/ianschmitz)) -- Ian Sutherland ([iansu](https://github.com/iansu)) -- Iurii Kucherov ([yuyokk](https://github.com/yuyokk)) -- Jeffrey Posnick ([jeffposnick](https://github.com/jeffposnick)) -- Jeroen Heijmans ([jheijmans](https://github.com/jheijmans)) -- Jesse Peterman ([jessepeterman](https://github.com/jessepeterman)) -- Joe Haddad ([Timer](https://github.com/Timer)) -- Kit Thompson ([thompk2](https://github.com/thompk2)) -- Kristofer Selbekk ([selbekk](https://github.com/selbekk)) -- Nima Shahri ([NShahri](https://github.com/NShahri)) -- Noel Yoo ([noelyoo](https://github.com/noelyoo)) -- Ran Yitzhaki ([ranyitz](https://github.com/ranyitz)) - -### Migrating from 2.0.5 to 2.1.0 - -Inside any created project that has not been ejected, run: - -```sh -npm install --save --save-exact react-scripts@2.1.0 -``` - -or - -```sh -yarn add --exact react-scripts@2.1.0 -``` - -## 2.0.5 (October 14, 2018) - -#### :bug: Bug Fix - -- `react-dev-utils` - - - [#5431](https://github.com/facebook/create-react-app/pull/5431) Fix click-to-open on Windows. ([@gaearon](https://github.com/gaearon)) - - [#5335](https://github.com/facebook/create-react-app/pull/5335) Fix file size report after build. ([@OskarPersson](https://github.com/OskarPersson)) - -- `create-react-app` - - - [#5362](https://github.com/facebook/create-react-app/pull/5362) Fix CI: non-semver compliant Yarn versions. ([@Timer](https://github.com/Timer)) - -- `react-scripts` - - [#5301](https://github.com/facebook/create-react-app/pull/5301) Fix TypeError when registering service workers without config. ([@peterbe](https://github.com/peterbe)) - -#### :nail_care: Enhancement - -- `babel-preset-react-app` - - - [#4984](https://github.com/facebook/create-react-app/pull/4984) Use the correct dependency for `babel-plugin-dynamic-import-node`. ([@vikr01](https://github.com/vikr01)) - -- `react-scripts` - - [#5354](https://github.com/facebook/create-react-app/pull/5354) Add environment variable to optionaly disable inlining of chunks. ([@0xdeafcafe](https://github.com/0xdeafcafe)) - - [#5330](https://github.com/facebook/create-react-app/pull/5330) Update `eslint-plugin-jsx-a11y` version. ([@AlmeroSteyn](https://github.com/AlmeroSteyn)) - -#### :memo: Documentation - -- `react-scripts` - - [#5321](https://github.com/facebook/create-react-app/pull/5321) Added note on update to `.flowconfig` for .scss imports. ([@rlueder](https://github.com/rlueder)) - - [#5394](https://github.com/facebook/create-react-app/pull/5394) Correct instructions for HTTPS and PowerShell. ([@gavinbarron](https://github.com/gavinbarron)) - - [#5410](https://github.com/facebook/create-react-app/pull/5410) Updates to clarify the "waiting" SW behavior. ([@jeffposnick](https://github.com/jeffposnick)) - - [#5302](https://github.com/facebook/create-react-app/pull/5302) Update README.md. ([@simonCordovaByte9](https://github.com/simonCordovaByte9)) - - [#5334](https://github.com/facebook/create-react-app/pull/5334) Update README due to deprecation of react-testing-library's toBeInTheDOM. ([@rrebase](https://github.com/rrebase)) - - [#5326](https://github.com/facebook/create-react-app/pull/5326) README link fixes. ([@davidgilbertson](https://github.com/davidgilbertson)) - - [#5327](https://github.com/facebook/create-react-app/pull/5327) Updated the URL in index.html. ([@behzod](https://github.com/behzod)) - - [#5296](https://github.com/facebook/create-react-app/pull/5296) Adding documentation about git init. ([@ryancogswell](https://github.com/ryancogswell)) - - [#5290](https://github.com/facebook/create-react-app/pull/5290) Add react-testing-library documentation/examples (#4679). ([@gnapse](https://github.com/gnapse)) - - [#5286](https://github.com/facebook/create-react-app/pull/5286) Fix broken links to src/serviceWorker.js. ([@adambowles](https://github.com/adambowles)) -- Other - - - [#5374](https://github.com/facebook/create-react-app/pull/5374) Add the new SVGs feature from the template README to the root README. ([@neo](https://github.com/neo)) - - [#5371](https://github.com/facebook/create-react-app/pull/5371) Update path to serviceWorker.js in graphical folder structure. ([@jonscottclark](https://github.com/jonscottclark)) - - [#5337](https://github.com/facebook/create-react-app/pull/5337) Fix typo. ([@mvasin](https://github.com/mvasin)) - -- `eslint-config-react-app` - - [#5416](https://github.com/facebook/create-react-app/pull/5416) Fix eslint config docs. ([@ludovicofischer](https://github.com/ludovicofischer)) - -#### :house: Internal - -- Other - - - [#5365](https://github.com/facebook/create-react-app/pull/5365) Clean up the behavior tests. ([@Timer](https://github.com/Timer)) - -- `create-react-app` - - [#5362](https://github.com/facebook/create-react-app/pull/5362) Fix CI: non-semver compliant Yarn versions. ([@Timer](https://github.com/Timer)) -- `react-scripts` - - [#5317](https://github.com/facebook/create-react-app/pull/5317) Remove unused require for getCacheIdentifier after ejecting. ([@benbrandt](https://github.com/benbrandt)) - -#### Committers: 23 - -- Adam Bowles ([adambowles](https://github.com/adambowles)) -- Alex Forbes-Reed ([0xdeafcafe](https://github.com/0xdeafcafe)) -- Almero Steyn ([AlmeroSteyn](https://github.com/AlmeroSteyn)) -- Behzod Saidov ([behzod](https://github.com/behzod)) -- Ben Brandt ([benbrandt](https://github.com/benbrandt)) -- Dan Abramov ([gaearon](https://github.com/gaearon)) -- David Gilbertson ([davidgilbertson](https://github.com/davidgilbertson)) -- Ernesto García ([gnapse](https://github.com/gnapse)) -- Gavin Barron ([gavinbarron](https://github.com/gavinbarron)) -- Jeffrey Posnick ([jeffposnick](https://github.com/jeffposnick)) -- Joe Haddad ([Timer](https://github.com/Timer)) -- Jon Clark ([jonscottclark](https://github.com/jonscottclark)) -- Kristofer Selbekk ([selbekk](https://github.com/selbekk)) -- Ludovico Fischer ([ludovicofischer](https://github.com/ludovicofischer)) -- Mikhail Vasin ([mvasin](https://github.com/mvasin)) -- Oskar Persson ([OskarPersson](https://github.com/OskarPersson)) -- Peter Bengtsson ([peterbe](https://github.com/peterbe)) -- Rafael Lüder ([rlueder](https://github.com/rlueder)) -- Ragnar Rebase ([rrebase](https://github.com/rrebase)) -- Ryan Cogswell ([ryancogswell](https://github.com/ryancogswell)) -- Vikram Rangaraj ([vikr01](https://github.com/vikr01)) -- Wenchen Li ([neo](https://github.com/neo)) -- [simonCordovaByte9](https://github.com/simonCordovaByte9) - -### Migrating from 2.0.4 to 2.0.5 - -Inside any created project that has not been ejected, run: - -```sh -npm install --save --save-exact react-scripts@2.0.5 -``` - -or - -```sh -yarn add --exact react-scripts@2.0.5 -``` - -## 2.0.4 (October 3, 2018) - -#### :bug: Bug Fix - -- `react-scripts` - - [#5281](https://github.com/facebook/create-react-app/pull/5281) Fix code minifying ([@Timer](https://github.com/Timer)) - - [#5246](https://github.com/facebook/create-react-app/pull/5246) Fix `GENERATE_SOURCEMAP` env not working for css sourcemap ([@crux153](https://github.com/crux153)) -- `babel-preset-react-app` - - [#5278](https://github.com/facebook/create-react-app/pull/5278) Disable Symbol typeof transform ([@gaearon](https://github.com/gaearon)) - -#### :nail_care: Enhancement - -- `create-react-app` - - [#5270](https://github.com/facebook/create-react-app/pull/5270) Caches the Yarn resolution for faster installs ([@arcanis](https://github.com/arcanis)) - - [#5269](https://github.com/facebook/create-react-app/pull/5269) Adds a version check when using --use-pnp ([@arcanis](https://github.com/arcanis)) -- `react-scripts` - - [#5258](https://github.com/facebook/create-react-app/pull/5258) Add `.mjs` support back to webpack ([@Timer](https://github.com/Timer)) - -#### :memo: Documentation - -- Other - - [#5228](https://github.com/facebook/create-react-app/pull/5228) removed create-react-app-parcel link ([@lockround](https://github.com/lockround)) - - [#5254](https://github.com/facebook/create-react-app/pull/5254) Update README links for CSS modules and SASS ([@yuyokk](https://github.com/yuyokk)) - - [#5249](https://github.com/facebook/create-react-app/pull/5249) Set the color palette to something a bit more React-y ([@selbekk](https://github.com/selbekk)) - - [#5244](https://github.com/facebook/create-react-app/pull/5244) Update favicon and OpenGraph images ([@selbekk](https://github.com/selbekk)) - - [#5242](https://github.com/facebook/create-react-app/pull/5242) 5238 Removing sample pages ([@selbekk](https://github.com/selbekk)) - - [#5243](https://github.com/facebook/create-react-app/pull/5243) Set the project name and owner correctly ([@selbekk](https://github.com/selbekk)) - - [#5239](https://github.com/facebook/create-react-app/pull/5239) 5238 removing blog from Docusaurus ([@selbekk](https://github.com/selbekk)) - - [#5227](https://github.com/facebook/create-react-app/pull/5227) Initial setup of Docusaurus ([@amyrlam](https://github.com/amyrlam)) -- `react-scripts` - - [#5252](https://github.com/facebook/create-react-app/pull/5252) Revert change to http-proxy-middleware docs ([@iansu](https://github.com/iansu)) - - [#5226](https://github.com/facebook/create-react-app/pull/5226) Fix usage of http-proxy-middleware ([@banyan](https://github.com/banyan)) - - [#5233](https://github.com/facebook/create-react-app/pull/5233) DOCS: Add Relay example ([@zachasme](https://github.com/zachasme)) - -#### :house: Internal - -- [#5263](https://github.com/facebook/create-react-app/pull/5263) Add browser test for graphql ([@Timer](https://github.com/Timer)) - -#### Committers: 11 - -- Amy Lam ([@amyrlam](https://github.com/amyrlam)) -- Crux ([@crux153](https://github.com/crux153)) -- Dan Abramov ([@gaearon](https://github.com/gaearon)) -- Ian Sutherland ([@iansu](https://github.com/iansu)) -- Iurii Kucherov ([@yuyokk](https://github.com/yuyokk)) -- Joe Haddad ([@Timer](https://github.com/Timer)) -- Kohei Hasegawa ([@banyan](https://github.com/banyan)) -- Kristofer Selbekk ([@selbekk](https://github.com/selbekk)) -- Maël Nison ([@arcanis](https://github.com/arcanis)) -- Shubham Tiwari ([@lockround](https://github.com/lockround)) -- Zacharias Knudsen ([@zachasme](https://github.com/zachasme)) - -### Migrating from 2.0.3 to 2.0.4 - -Inside any created project that has not been ejected, run: - -```sh -npm install --save --save-exact react-scripts@2.0.4 -``` - -or - -```sh -yarn add --exact react-scripts@2.0.4 -``` - -## 2.0.3 (October 1, 2018) - -Create React App 2.0 brings a year’s worth of improvements in a single dependency update. -We summarized all of the changes in a blog post!
- -Check it out: **[Create React App 2.0: Babel 7, Sass, and More](https://reactjs.org/blog/2018/10/01/create-react-app-v2.html)**. - -It provides a high-level overview of new features and improvements. Now let's see how to update your app to the latest version in detail. - -# Migrating from 1.x to 2.0.3 - -Inside any created project that has not been ejected, run: - -```sh -npm install --save --save-exact react-scripts@2.0.3 -``` - -or - -```sh -yarn add --exact react-scripts@2.0.3 -``` - -If you previously ejected but now want to upgrade, one common solution is to find the commits where you ejected (and any subsequent commits changing the configuration), revert them, upgrade, and later optionally eject again. It’s also possible that the feature you ejected for (maybe Sass or CSS Modules?) is now supported out of the box. You can find a list of notable new features in the **[Create React App 2.0 blog post](https://reactjs.org/blog/2018/10/01/create-react-app-v2.html)**. +If you previously ejected but now want to upgrade, one common solution is to find the commits where you ejected (and any subsequent commits changing the configuration), revert them, upgrade, and later optionally eject again. It’s also possible that the feature you ejected for is now supported out of the box. ## Breaking Changes -Like any major release, `react-scripts@2.0` contains a few breaking changes. We expect that they won't affect every user, but we recommend to scan over these sections to see if something is relevant to you. If we missed something, please file a new issue. - -### Node 6 is no longer supported - -Please upgrade to Node 8 (LTS) or later. - -### Polyfills for IE 9, IE 10, and IE 11 are no longer included by default (but you can opt in!) - -We have dropped default support for Internet Explorer 9, 10, and 11. If you still need to support these browsers, follow the instructions below. - -First, install `react-app-polyfill`: - -```sh -npm install react-app-polyfill -``` - -or +Like any major release, `react-scripts@3.0.0` contains a few breaking changes. We expect that they won't affect every user, but we recommend you look over this section to see if something is relevant to you. If we missed something, please file a new issue. -```sh -yarn add react-app-polyfill -``` +### Jest 24 -Next, place one of the following lines at the very top of `src/index.js`: +We've updated from Jest 23 to get the latest improvements in Jest 24. We've noticed some differences in snapshot serialization in Jest 24, so you may need to adjust your tests slightly once you update. You can read more about what's changed in the [Jest 24 blog post](https://jestjs.io/blog/2019/01/25/jest-24-refreshing-polished-typescript-friendly). -```js -import 'react-app-polyfill/ie9'; // For IE 9-11 support -import 'react-app-polyfill/ie11'; // For IE 11 support -``` +### Hooks support -You can read more about [these polyfills here](https://github.com/facebook/create-react-app/tree/master/packages/react-app-polyfill). +We now enforce [Rules of Hooks](https://reactjs.org/docs/hooks-rules.html) with `eslint-plugin-react-hooks`. If you are breaking any of the rules of Hooks this will cause your build to fail. -### Dynamic `import()` of a CommonJS module now has a `.default` property +### TypeScript linting -[Webpack 4 changed the behavior of `import()`](https://medium.com/webpack/webpack-4-import-and-commonjs-d619d626b655) to be closer in line with the specification. - -Previously, importing a CommonJS module did not require you specify the default export. In most cases, this is now required. -If you see errors in your application about `... is not a function`, you likely need to update your dynamic import, e.g.: - -```js -const throttle = await import('lodash/throttle'); -// replace with -const throttle = await import('lodash/throttle').then(m => m.default); -``` +We now lint TypeScript files. You can see the list of [rules we enforce](https://github.com/facebook/create-react-app/blob/eee8491d57d67dd76f0806a7512eaba2ce9c36f0/packages/eslint-config-react-app/index.js#L89:L98) to check if your project is compatible. If you're using Visual Studio Code you can follow our guide to [setup up your editor to display lint warnings](https://facebook.github.io/create-react-app/docs/setting-up-your-editor#displaying-lint-output-in-the-editor). -### `require.ensure()` is superseded by dynamic `import()` +### `browserslist` support in @babel/preset-env -We previously allowed code splitting with a webpack-specific directive, `require.ensure()`. It is now disabled in favor of `import()`. To switch to `import()`, follow the examples below: +The `browserslist` config in your `package.json` is now used to control the output of your JavaScript files. You can use separate configuration for `development` and `production`. See [here](https://github.com/facebook/create-react-app/blob/b0cbf2caa18ee8267855b14578ebc3dee826f552/packages/react-scripts/package.json#L83-L94) for a good starting point which gives a good development experience, especially when using language features such as async/await, but still provides high compatibility with many browsers in production -**Single Module** +### Remove --no-watch flag -```js -require.ensure(['module-a'], function() { - var a = require('module-a'); - // ... -}); - -// Replace with: -import('module-a').then(a => { - // ... -}); -``` - -**Multiple Module** - -```js -require.ensure(['module-a', 'module-b'], function() { - var a = require('module-a'); - var b = require('module-b'); - // ... -}); - -// Replace with: -Promise.all([import('module-a'), import('module-b')]).then(([a, b]) => { - // ... -}); -``` +We've removed the `--no-watch` flag from the `start` script in favor of Jest's own `--watchAll=false`. -### The default Jest environment was changed to `jsdom` +## New Features -Look at the `test` entry in the `scripts` section of your `package.json`. -Here's a table how to change it from "before" and "after", depending on what you have there: +### using `jsconfig.json`/`tsconfig.json` -| 1.x (if you have this...) | 2.x (...change it to this!) | -| -------------------------------- | ------------------------------- | -| `react-scripts test --env=jsdom` | `react-scripts test` | -| `react-scripts test` | `react-scripts test --env=node` | - -### Object `proxy` configuration is superseded by `src/setupProxy.js` - -To check if action is required, look for the `proxy` key in `package.json` and follow this table: - -1. I couldn't find a `proxy` key in `package.json` - - No action is required! -2. The value of `proxy` is a string (e.g. `http://localhost:5000`) - - No action is required! -3. The value of `proxy` is an object - - Follow the migration instructions below. - -**It's worth highlighting: if your `proxy` field is a `string`, e.g. `http://localhost:5000`, or you don't have it, skip this section. This feature is still supported and has the same behavior.** - -If your `proxy` is an object, that means you are using the advanced proxy configuration. It has become fully customizable so we removed the limited support for the object-style configuration. Here's how to recreate it. - -First, install `http-proxy-middleware` using npm or Yarn: - -```sh -npm install http-proxy-middleware -``` - -or - -```sh -yarn add http-proxy-middleware -``` - -Next, create `src/setupProxy.js` and place the following contents in it: - -```js -const proxy = require('http-proxy-middleware'); - -module.exports = function(app) { - // ... -}; -``` - -Now, migrate each entry in your `proxy` object one by one, e.g.: +We now support setting `baseUrl` in `jsconfig.json` and `tsconfig.json`. To configure `baseUrl` to point to the `src` directory in your JavaScript project, create a `jsconfig.json` file in your project root: ```json -"proxy": { - "/api": { - "target": "http://localhost:5000/" - }, - "/*.svg": { - "target": "http://localhost:5000/" - } +{ + "compilerOptions": { + "baseUrl": "src" + }, + "include": ["src"] } ``` -Place entries into `src/setupProxy.js` like so: - -```js -const proxy = require('http-proxy-middleware'); - -module.exports = function(app) { - app.use(proxy('/api', { target: 'http://localhost:5000/' })); - app.use(proxy('/*.svg', { target: 'http://localhost:5000/' })); -}; -``` - -You can also use completely custom logic there now! This wasn't possible before. - -### `.mjs` file extension support is removed - -Change the extension of any files in your project using `.mjs` to just `.js`. - -It was removed because of inconsistent support from underlying tools. We will add it back after it stops being experimental, and Jest gets built-in support for it. - -### `PropTypes` definitions are now removed in production +If you have a TypeScript project you can configure `baseUrl` the same way in your `tsconfig.json`. -Normally, this shouldn't affect your logic and should make the resulting bundle smaller. However, you may be relying on PropTypes definition for production logic. This is not recommended, and will break now. If a library does it, one possible solution is to file an issue in it with a proposal to use a different field (not `propTypes`) to signal that the declaration needs to be retained. +Currently the only supported options for `baseUrl` are `node_modules` (the default) and `src`. -### Anything missing? +### PostCSS Normalize -This was a large release, and we might have missed something. - -Please [file an issue](https://github.com/facebook/create-react-app/issues/new) and we will try to help. - -# Migrating from 2.0.0-next.xyz - -If you used 2.x alphas, please [follow these instructions](https://gist.github.com/gaearon/8650d1c70e436e5eff01f396dffc4114). +You can now include a version of Normalize.css in your project that will use your `browserslist` setting to generate the appropriate styles for your target browsers. To include it simply add `@import-normalize` at the top of one of your CSS files. # Detailed Changelog -**For a readable summary of the changes, [check out our blog post](https://reactjs.org/blog/2018/10/01/create-react-app-v2.html).** - #### :rocket: New Feature - `react-scripts` - - [#5218](https://github.com/facebook/create-react-app/pull/5218) Support globalSetup and globalTeardown Jest options ([@gaearon](https://github.com/gaearon)) - - [#5073](https://github.com/facebook/create-react-app/pull/5073) Add user defined proxy via middleware ([@Timer](https://github.com/Timer)) - - [#3945](https://github.com/facebook/create-react-app/pull/3945) Allow bundles to be analyzed with Webpack-specific tools ([@joshwcomeau](https://github.com/joshwcomeau)) - - [#4195](https://github.com/facebook/create-react-app/pull/4195) Sass loader ([@Fabianopb](https://github.com/Fabianopb)) - - [#3909](https://github.com/facebook/create-react-app/pull/3909) Add loader for .graphql files ([@petetnt](https://github.com/petetnt)) - - [#1288](https://github.com/facebook/create-react-app/pull/1288) Create git repository with initial commit ([@mauricedb](https://github.com/mauricedb)) - - [#3718](https://github.com/facebook/create-react-app/pull/3718) Import SVGs as React components (#1388) ([@iansu](https://github.com/iansu)) - - [#2285](https://github.com/facebook/create-react-app/pull/2285) Add support for CSS Modules with explicit filename - [name].module.css ([@ro-savage](https://github.com/ro-savage)) - - [#3804](https://github.com/facebook/create-react-app/pull/3804) Support Jest --watchAll flag ([@gaearon](https://github.com/gaearon)) - - [#3802](https://github.com/facebook/create-react-app/pull/3802) Add feature #3116 extended Jest config ([@garmeeh](https://github.com/garmeeh)) -- `react-dev-utils`, `react-scripts` - - [#5058](https://github.com/facebook/create-react-app/pull/5058) Inline the webpack runtime chunk ([@Timer](https://github.com/Timer)) -- `babel-preset-react-app` - - [#5047](https://github.com/facebook/create-react-app/pull/5047) Allow dynamic import proposal in node_modules ([@Timer](https://github.com/Timer)) - - [#3865](https://github.com/facebook/create-react-app/pull/3865) Add opt-out for preset-flow to work with @babel/preset-typescript ([@oieduardorabelo](https://github.com/oieduardorabelo)) - - [#3675](https://github.com/facebook/create-react-app/pull/3675) add experimental babel-plugin-macros support ([@kentcdodds](https://github.com/kentcdodds)) -- `babel-preset-react-app`, `confusing-browser-globals`, `eslint-config-react-app`, `react-dev-utils`, `react-error-overlay`, `react-scripts` - - [#4077](https://github.com/facebook/create-react-app/pull/4077) Webpack 4 ([@andriijas](https://github.com/andriijas)) -- `create-react-app` - - [#4350](https://github.com/facebook/create-react-app/pull/4350) Support package distribution tags ([@miraage](https://github.com/miraage)) -- `babel-preset-react-app`, `react-scripts` - - [#3776](https://github.com/facebook/create-react-app/pull/3776) Compile dependencies with babel-preset-env ([@gaearon](https://github.com/gaearon)) + - [#6656](https://github.com/facebook/create-react-app/pull/6656) Set baseUrl from jsconfig.json/tsconfig.json ([@rovansteen](https://github.com/rovansteen)) + - [#5810](https://github.com/facebook/create-react-app/pull/5810) Adds PostCSS Normalize ([@mrchief](https://github.com/mrchief)) +- `babel-plugin-named-asset-import`, `confusing-browser-globals`, `react-dev-utils`, `react-error-overlay`, `react-scripts` + - [#6278](https://github.com/facebook/create-react-app/pull/6278) Update to Jest 24 ([@loryman](https://github.com/loryman)) +- `eslint-config-react-app`, `react-scripts` + - [#6513](https://github.com/facebook/create-react-app/pull/6513) Add TypeScript linting support ([@ianschmitz](https://github.com/ianschmitz)) +- `babel-preset-react-app`, `eslint-config-react-app`, `react-scripts` + - [#5997](https://github.com/facebook/create-react-app/pull/5997) Support React Hooks (#5602) ([@eivind88](https://github.com/eivind88)) +- `babel-preset-react-app`, `react-dev-utils`, `react-scripts` + - [#6608](https://github.com/facebook/create-react-app/pull/6608) Support browserslist in @babel/preset-env ([@ianschmitz](https://github.com/ianschmitz)) #### :boom: Breaking Change -- `react-app-polyfill`, `react-scripts` - - [#5090](https://github.com/facebook/create-react-app/pull/5090) Drop IE 11 support by default ([@Timer](https://github.com/Timer)) - `react-scripts` - - [#5074](https://github.com/facebook/create-react-app/pull/5074) Change default test environment to jsdom ([@Timer](https://github.com/Timer)) - - [#5027](https://github.com/facebook/create-react-app/pull/5027) Remove `mjs` support ([@Timer](https://github.com/Timer)) - - [#4009](https://github.com/facebook/create-react-app/pull/4009) Update dotenv to 5.0.0 ([@iansu](https://github.com/iansu)) - - [#2544](https://github.com/facebook/create-react-app/pull/2544) Set the public path to the asset manifest entries ([@robinvdvleuten](https://github.com/robinvdvleuten)) - - [#3884](https://github.com/facebook/create-react-app/pull/3884) Don't use app node_modules folder as a resolve fallback ([@gaearon](https://github.com/gaearon)) - - [#3817](https://github.com/facebook/create-react-app/pull/3817) Disable service worker by default ([@iansu](https://github.com/iansu)) - - [#2285](https://github.com/facebook/create-react-app/pull/2285) Add support for CSS Modules with explicit filename - [name].module.css ([@ro-savage](https://github.com/ro-savage)) - - [#3771](https://github.com/facebook/create-react-app/pull/3771) Add preflight check to guard against wrong versions of webpack/eslint/jest higher up the tree ([@gaearon](https://github.com/gaearon)) - - [#3346](https://github.com/facebook/create-react-app/pull/3346) Change the default `start_url` to `.` ([@evilchuck](https://github.com/evilchuck)) - - [#3419](https://github.com/facebook/create-react-app/pull/3419) Remove the navigateFallback behavior from the generated service worker ([@jeffposnick](https://github.com/jeffposnick)) - - [#3644](https://github.com/facebook/create-react-app/pull/3644) Move browsers to cross-tool config ([@ai](https://github.com/ai)) -- `react-dev-utils` - - [#5072](https://github.com/facebook/create-react-app/pull/5072) Drop support for advanced proxy ([@Timer](https://github.com/Timer)) -- `babel-preset-react-app` - - [#3818](https://github.com/facebook/create-react-app/pull/3818) Remove PropTypes from production build (#209) ([@iansu](https://github.com/iansu)) -- `eslint-config-react-app` - - [#2319](https://github.com/facebook/create-react-app/pull/2319) Changes no-unused-expressions lint from warning to error ([@amupitan](https://github.com/amupitan)) -- `eslint-config-react-app`, `react-error-overlay`, `react-scripts` - - [#2690](https://github.com/facebook/create-react-app/pull/2690) Bump eslint-plugin-jsx-a11y version ([@gaearon](https://github.com/gaearon)) + - [#6848](https://github.com/facebook/create-react-app/pull/6848) Remove no-watch flag in favor of watchAll=false ([@bugzpodder](https://github.com/bugzpodder)) + - [#6821](https://github.com/facebook/create-react-app/pull/6821) Add custom function to generate asset manifest ([@iansu](https://github.com/iansu)) + - [#6750](https://github.com/facebook/create-react-app/pull/6750) change NODE_ENV and PUBLIC_URL into readonly ([@xiaoxiangmoe](https://github.com/xiaoxiangmoe)) + - [#4176](https://github.com/facebook/create-react-app/pull/4176) Remove --coverage + --watch workaround for the test command ([@stipsan](https://github.com/stipsan)) + - [#6615](https://github.com/facebook/create-react-app/pull/6615) Allow .json type checking ([@ianschmitz](https://github.com/ianschmitz)) +- `babel-preset-react-app`, `react-app-polyfill` + - [#6769](https://github.com/facebook/create-react-app/pull/6769) Update to core-js@3 ([@ianschmitz](https://github.com/ianschmitz)) +- `babel-plugin-named-asset-import`, `confusing-browser-globals`, `react-dev-utils`, `react-error-overlay`, `react-scripts` + - [#6278](https://github.com/facebook/create-react-app/pull/6278) Update to Jest 24 ([@loryman](https://github.com/loryman)) - `eslint-config-react-app`, `react-scripts` - - [#3121](https://github.com/facebook/create-react-app/pull/3121) Redisable require.ensure() ([@everdimension](https://github.com/everdimension)) + - [#6513](https://github.com/facebook/create-react-app/pull/6513) Add TypeScript linting support ([@ianschmitz](https://github.com/ianschmitz)) +- `babel-preset-react-app`, `eslint-config-react-app`, `react-scripts` + - [#5997](https://github.com/facebook/create-react-app/pull/5997) Support React Hooks (#5602) ([@eivind88](https://github.com/eivind88)) +- `babel-preset-react-app`, `react-dev-utils`, `react-scripts` + - [#6608](https://github.com/facebook/create-react-app/pull/6608) Support browserslist in @babel/preset-env ([@ianschmitz](https://github.com/ianschmitz)) #### :bug: Bug Fix -- `react-scripts` - - [#5217](https://github.com/facebook/create-react-app/pull/5217) Verify more package versions ([@Timer](https://github.com/Timer)) - - [#5214](https://github.com/facebook/create-react-app/pull/5214) Fix absolute paths on eject ([@gaearon](https://github.com/gaearon)) - - [#5212](https://github.com/facebook/create-react-app/pull/5212) Don't crash npm test when hg/git are missing ([@gaearon](https://github.com/gaearon)) - - [#5197](https://github.com/facebook/create-react-app/pull/5197) Treat .css and .sass/.scss as side effectful ([@gaearon](https://github.com/gaearon)) - - [#5196](https://github.com/facebook/create-react-app/pull/5196) Format SVG React snapshots as tag with props ([@gaearon](https://github.com/gaearon)) - - [#5163](https://github.com/facebook/create-react-app/pull/5163) Correctly lookup assets when using a relative build directory ([@Timer](https://github.com/Timer)) - - [#5151](https://github.com/facebook/create-react-app/pull/5151) Toggle `mjs` files to `javascript/auto` type ([@Timer](https://github.com/Timer)) - - [#5131](https://github.com/facebook/create-react-app/pull/5131) Output CSS sourcemaps in separate file ([@Timer](https://github.com/Timer)) - - [#5043](https://github.com/facebook/create-react-app/pull/5043) Always lint with latest React version ([@Timer](https://github.com/Timer)) - - [#5030](https://github.com/facebook/create-react-app/pull/5030) Disable webpack chunk coalescing ([@Timer](https://github.com/Timer)) - - [#5027](https://github.com/facebook/create-react-app/pull/5027) Remove `mjs` support ([@Timer](https://github.com/Timer)) - - [#4706](https://github.com/facebook/create-react-app/pull/4706) Only use safe options when packing CSS assets ([@bugzpodder](https://github.com/bugzpodder)) - - [#4562](https://github.com/facebook/create-react-app/pull/4562) Configured the thread-loader to keeping workers alive in development mode ([@sadkovoy](https://github.com/sadkovoy)) - - [#4318](https://github.com/facebook/create-react-app/pull/4318) `.mjs` should not resolve before .js files (#4085) (#4317) ([@hobochild](https://github.com/hobochild)) - - [#4419](https://github.com/facebook/create-react-app/pull/4419) Map (s?css|sass) modules to identity-obj-proxy in jest ([@kusold](https://github.com/kusold)) - - [#4424](https://github.com/facebook/create-react-app/pull/4424) ensureSlash: Fix accidental string-to-NaN coercion ([@wchargin](https://github.com/wchargin)) - - [#4376](https://github.com/facebook/create-react-app/pull/4376) Update sass-loader (#4363) ([@miraage](https://github.com/miraage)) - - [#4247](https://github.com/facebook/create-react-app/pull/4247) Work around Jest environment resolving bug ([@gaearon](https://github.com/gaearon)) - - [#4234](https://github.com/facebook/create-react-app/pull/4234) [next] Revert to use ecma 5 in uglifyOptions ([@danielberndt](https://github.com/danielberndt)) - - [#2544](https://github.com/facebook/create-react-app/pull/2544) Set the public path to the asset manifest entries ([@robinvdvleuten](https://github.com/robinvdvleuten)) - - [#3992](https://github.com/facebook/create-react-app/pull/3992) Upgrade dotenv-expand to 4.2.0 (#3961) ([@iansu](https://github.com/iansu)) - - [#3989](https://github.com/facebook/create-react-app/pull/3989) add default value for globPatterns ([@viankakrisna](https://github.com/viankakrisna)) -- `react-error-overlay` - - [#5203](https://github.com/facebook/create-react-app/pull/5203) Fix IE 11 compatibility ([@Timer](https://github.com/Timer)) - - [#5198](https://github.com/facebook/create-react-app/pull/5198) Polyfill error overlay for IE9 support ([@Timer](https://github.com/Timer)) - - [#4024](https://github.com/facebook/create-react-app/pull/4024) Fix floating caret position incorrect while scrolling overlay ([@jihchi](https://github.com/jihchi)) - `react-dev-utils` - - [#5184](https://github.com/facebook/create-react-app/pull/5184) Still emit runtime chunk ([@Timer](https://github.com/Timer)) - - [#5137](https://github.com/facebook/create-react-app/pull/5137) Fix displaying third party webpack plugins errors ([@Fer0x](https://github.com/Fer0x)) - - [#5134](https://github.com/facebook/create-react-app/pull/5134) Lists loader-utils in the dependencies ([@arcanis](https://github.com/arcanis)) - - [#5025](https://github.com/facebook/create-react-app/pull/5025) Fix/file size reporter ([@fiddep](https://github.com/fiddep)) - - [#4420](https://github.com/facebook/create-react-app/pull/4420) Update the thread loader test in formatWebpackMessages ([@marcofugaro](https://github.com/marcofugaro)) -- `babel-preset-react-app` - - [#5182](https://github.com/facebook/create-react-app/pull/5182) Strip flow syntax before any other transform ([@Timer](https://github.com/Timer)) - - [#4630](https://github.com/facebook/create-react-app/pull/4630) Eliminate regenerator from preset-react-app plugins ([@conartist6](https://github.com/conartist6)) - - [#5110](https://github.com/facebook/create-react-app/pull/5110) Add dynamic import transformer for dependencies in test env ([@lixiaoyan](https://github.com/lixiaoyan)) - - [#5052](https://github.com/facebook/create-react-app/pull/5052) Add Babel config sourceType: 'unambiguous' for dependencies ([@lixiaoyan](https://github.com/lixiaoyan)) - - [#5046](https://github.com/facebook/create-react-app/pull/5046) Correct Babel dependency behavior ([@Timer](https://github.com/Timer)) - - [#4248](https://github.com/facebook/create-react-app/pull/4248) Enable loose mode for `class-properties` ([@rgrochowicz](https://github.com/rgrochowicz)) -- `babel-preset-react-app`, `react-error-overlay`, `react-scripts` - - [#5142](https://github.com/facebook/create-react-app/pull/5142) Remove runtime alias hack ([@Timer](https://github.com/Timer)) -- `react-app-polyfill` - - [#5132](https://github.com/facebook/create-react-app/pull/5132) Don't polyfill fetch for Node ([@Timer](https://github.com/Timer)) -- `react-error-overlay`, `react-scripts` - - [#5109](https://github.com/facebook/create-react-app/pull/5109) Prevent Babel config overridden ([@lixiaoyan](https://github.com/lixiaoyan)) -- `babel-preset-react-app`, `react-scripts` - - [#5078](https://github.com/facebook/create-react-app/pull/5078) Prevent the cache of files using Babel Macros ([@Timer](https://github.com/Timer)) -- `react-dev-utils`, `react-error-overlay`, `react-scripts` - - [#5026](https://github.com/facebook/create-react-app/pull/5026) Switch from uglifyjs to terser ([@Timer](https://github.com/Timer)) + - [#6735](https://github.com/facebook/create-react-app/pull/6735) InlineChunkHtmlPlugin works with empty publicPath ([@ItalyPaleAle](https://github.com/ItalyPaleAle)) +- `react-scripts` + - [#6732](https://github.com/facebook/create-react-app/pull/6732) fix: terser-webpack-plugin hanging on WSL ([@endiliey](https://github.com/endiliey)) + - [#6610](https://github.com/facebook/create-react-app/pull/6610) Convert JSON.stringify \n to os.EOL ([@MikeBeaton](https://github.com/MikeBeaton)) - `create-react-app` - - [#4677](https://github.com/facebook/create-react-app/pull/4677) Support scoped package names for scripts-version option in create-react-app cli ([@bugzpodder](https://github.com/bugzpodder)) - - [#2705](https://github.com/facebook/create-react-app/pull/2705) Don't delete error logs when install fails ([@mg](https://github.com/mg)) -- `react-dev-utils`, `react-scripts` - - [#4391](https://github.com/facebook/create-react-app/pull/4391) Update getCSSModuleLocalIdent to support Sass ([@arianon](https://github.com/arianon)) -- `babel-plugin-named-asset-import`, `babel-preset-react-app`, `eslint-config-react-app`, `react-dev-utils`, `react-error-overlay`, `react-scripts` - - [#4159](https://github.com/facebook/create-react-app/pull/4159) Bump babel-related deps ([@existentialism](https://github.com/existentialism)) -- `create-react-app`, `react-dev-utils`, `react-scripts` - - [#3997](https://github.com/facebook/create-react-app/pull/3997) Use yarn when running inside yarn workspace. ([@bradfordlemley](https://github.com/bradfordlemley)) + - [#6759](https://github.com/facebook/create-react-app/pull/6759) Fix unlogged yarn pnp message ([@heyimalex](https://github.com/heyimalex)) #### :nail_care: Enhancement -- `create-react-app`, `react-scripts` - - [#5136](https://github.com/facebook/create-react-app/pull/5136) Plug'n'Play support ([@arcanis](https://github.com/arcanis)) -- `react-dev-utils`, `react-scripts` - - [#5174](https://github.com/facebook/create-react-app/pull/5174) 💅 Polish webpack message output ([@Timer](https://github.com/Timer)) - - [#5065](https://github.com/facebook/create-react-app/pull/5065) (Micro) Optimize webpack rebuild speed ([@Timer](https://github.com/Timer)) - - [#5058](https://github.com/facebook/create-react-app/pull/5058) Inline the webpack runtime chunk ([@Timer](https://github.com/Timer)) - - [#4192](https://github.com/facebook/create-react-app/pull/4192) Update CSS Modules localIndetName ([@ro-savage](https://github.com/ro-savage)) - - [#3782](https://github.com/facebook/create-react-app/pull/3782) Tell user what browser support their application was built with ([@Timer](https://github.com/Timer)) -- `react-dev-utils` - - [#5150](https://github.com/facebook/create-react-app/pull/5150) Run behavioral smoke tests with Jest, add output tests ([@Timer](https://github.com/Timer)) - - [#4623](https://github.com/facebook/create-react-app/pull/4623) Use yarn build command in predeploy script if using yarn ([@alexbrazier](https://github.com/alexbrazier)) - - [#4470](https://github.com/facebook/create-react-app/pull/4470) Adjust browser defaults ([@Timer](https://github.com/Timer)) - - [#4001](https://github.com/facebook/create-react-app/pull/4001) Add support for new yarn workspaces config format ([@detrohutt](https://github.com/detrohutt)) - - [#3980](https://github.com/facebook/create-react-app/pull/3980) Autodetect GoLand editor ([@ifedyukin](https://github.com/ifedyukin)) - - [#3808](https://github.com/facebook/create-react-app/pull/3808) Use wmic to get process list on Windows ([@levrik](https://github.com/levrik)) - `react-scripts` - - [#4169](https://github.com/facebook/create-react-app/pull/4169) Workbox service worker ([@davejm](https://github.com/davejm)) - - [#5096](https://github.com/facebook/create-react-app/pull/5096) Disable source maps for node_modules ([@Timer](https://github.com/Timer)) - - [#4716](https://github.com/facebook/create-react-app/pull/4716) add postcss-preset-env, remove autoprefixer ([@heygrady](https://github.com/heygrady)) - - [#1457](https://github.com/facebook/create-react-app/pull/1457) Add eslintConfig to new projects automatically ([@lifeiscontent](https://github.com/lifeiscontent)) - - [#5030](https://github.com/facebook/create-react-app/pull/5030) Disable webpack chunk coalescing ([@Timer](https://github.com/Timer)) - - [#4582](https://github.com/facebook/create-react-app/pull/4582) Added thread-loader tweak for application code entry-point ([@sadkovoy](https://github.com/sadkovoy)) - - [#4562](https://github.com/facebook/create-react-app/pull/4562) Configured the thread-loader to keeping workers alive in development mode ([@sadkovoy](https://github.com/sadkovoy)) - - [#4504](https://github.com/facebook/create-react-app/pull/4504) webpack 4 scope hoisting ([@bugzpodder](https://github.com/bugzpodder)) - - [#4461](https://github.com/facebook/create-react-app/pull/4461) Update svgr ([@iansu](https://github.com/iansu)) - - [#3867](https://github.com/facebook/create-react-app/pull/3867) Provide callbacks in serviceWorker (next) ([@piotr-cz](https://github.com/piotr-cz)) - - [#3235](https://github.com/facebook/create-react-app/pull/3235) Applies new theme and adds docs link to template ([@lukejacksonn](https://github.com/lukejacksonn)) - - [#3512](https://github.com/facebook/create-react-app/pull/3512) Enhance Jest config error for `setupTestFrameworkScriptFile` ([@jackfranklin](https://github.com/jackfranklin)) - - [#3778](https://github.com/facebook/create-react-app/pull/3778) Compile code in parallel ([@Timer](https://github.com/Timer)) - - [#3771](https://github.com/facebook/create-react-app/pull/3771) Add preflight check to guard against wrong versions of webpack/eslint/jest higher up the tree ([@gaearon](https://github.com/gaearon)) - - [#3618](https://github.com/facebook/create-react-app/pull/3618) use uglifyjs-webpack-plugin v1 ([@viankakrisna](https://github.com/viankakrisna)) -- `babel-preset-react-app`, `react-error-overlay`, `react-scripts` - - [#5093](https://github.com/facebook/create-react-app/pull/5093) Turn on Babel `helpers` ([@Timer](https://github.com/Timer)) -- `react-dev-utils`, `react-error-overlay`, `react-scripts` - - [#4930](https://github.com/facebook/create-react-app/pull/4930) Switch from cheap-module-source-map eval-source-map ([@jasonLaster](https://github.com/jasonLaster)) - - [#3124](https://github.com/facebook/create-react-app/pull/3124) update jest to 22 and support watchPathIgnorePatterns configuration ([@aisensiy](https://github.com/aisensiy)) -- `confusing-browser-globals`, `react-dev-utils`, `react-error-overlay`, `react-scripts` - - [#4846](https://github.com/facebook/create-react-app/pull/4846) Update jest version ([@skoging](https://github.com/skoging)) - - [#4362](https://github.com/facebook/create-react-app/pull/4362) Bumped jest version to 22.4.1 ([@CGreenburg](https://github.com/CGreenburg)) -- `babel-preset-react-app`, `confusing-browser-globals`, `eslint-config-react-app`, `react-dev-utils`, `react-error-overlay`, `react-scripts` - - [#4077](https://github.com/facebook/create-react-app/pull/4077) Webpack 4 ([@andriijas](https://github.com/andriijas)) -- `babel-preset-react-app` - - [#4432](https://github.com/facebook/create-react-app/pull/4432) Update babel-plugin-macros to fix a bug ([@stereobooster](https://github.com/stereobooster)) - - [#3818](https://github.com/facebook/create-react-app/pull/3818) Remove PropTypes from production build (#209) ([@iansu](https://github.com/iansu)) + - [#6845](https://github.com/facebook/create-react-app/pull/6845) Change CRA version in `react-scripts` eject warning. ([@lffg](https://github.com/lffg)) + - [#6821](https://github.com/facebook/create-react-app/pull/6821) Add custom function to generate asset manifest ([@iansu](https://github.com/iansu)) + - [#6580](https://github.com/facebook/create-react-app/pull/6580) Fix react-scripts peer-deps link local issue ([@transitive-bullshit](https://github.com/transitive-bullshit)) + - [#6746](https://github.com/facebook/create-react-app/pull/6746) Replace deprecated SFC with FunctionComponent in react-app.d.ts ([@iamandrewluca](https://github.com/iamandrewluca)) + - [#6160](https://github.com/facebook/create-react-app/pull/6160) Suggests that tsconfig.json is incorrect only when SyntaxError is caught ([@Andarist](https://github.com/Andarist)) + - [#6696](https://github.com/facebook/create-react-app/pull/6696) Enable futureEmitAssets in webpack config ([@iansu](https://github.com/iansu)) + - [#6669](https://github.com/facebook/create-react-app/pull/6669) Remove unnecessary shrink-to-fit=no meta data ([@abdelrahmanrifai](https://github.com/abdelrahmanrifai)) + - [#5686](https://github.com/facebook/create-react-app/pull/5686) Add empty mock for http2 ([@kjin](https://github.com/kjin)) + - [#5960](https://github.com/facebook/create-react-app/pull/5960) add command to add files to staging after eject ([@clickclickonsal](https://github.com/clickclickonsal)) + - [#6615](https://github.com/facebook/create-react-app/pull/6615) Allow .json type checking ([@ianschmitz](https://github.com/ianschmitz)) + - [#6451](https://github.com/facebook/create-react-app/pull/6451) change class component to function component ([@xiaoxiangmoe](https://github.com/xiaoxiangmoe)) +- `babel-plugin-named-asset-import`, `babel-preset-react-app`, `confusing-browser-globals`, `create-react-app`, `eslint-config-react-app`, `react-app-polyfill`, `react-dev-utils`, `react-error-overlay`, `react-scripts` + - [#6826](https://github.com/facebook/create-react-app/pull/6826) Add directory details to packages/\* package.json ([@feelepxyz](https://github.com/feelepxyz)) +- `babel-preset-react-app`, `react-app-polyfill` + - [#6769](https://github.com/facebook/create-react-app/pull/6769) Update to core-js@3 ([@ianschmitz](https://github.com/ianschmitz)) - `create-react-app` - - [#4375](https://github.com/facebook/create-react-app/pull/4375) fix: update envinfo + implementation, update issue_template ([@tabrindle](https://github.com/tabrindle)) -- `eslint-config-react-app`, `react-error-overlay`, `react-scripts` - - [#4048](https://github.com/facebook/create-react-app/pull/4048) Add ESLint check for incorrect propTypes usage (#3840) ([@iansu](https://github.com/iansu)) - - [#2690](https://github.com/facebook/create-react-app/pull/2690) Bump eslint-plugin-jsx-a11y version ([@gaearon](https://github.com/gaearon)) -- `eslint-config-react-app` - - [#3844](https://github.com/facebook/create-react-app/pull/3844) remove radix eslint rule ([@sendilkumarn](https://github.com/sendilkumarn)) -- `create-react-app`, `react-dev-utils`, `react-scripts` - - [#3792](https://github.com/facebook/create-react-app/pull/3792) Offer to set default browsers ([@Timer](https://github.com/Timer)) -- `babel-preset-react-app`, `create-react-app`, `react-dev-utils`, `react-error-overlay`, `react-scripts` - - [#3785](https://github.com/facebook/create-react-app/pull/3785) Bump dependencies ([@gaearon](https://github.com/gaearon)) -- `babel-preset-react-app`, `react-scripts` - - [#3770](https://github.com/facebook/create-react-app/pull/3770) Loosen Babel preset to use browserslist ([@Timer](https://github.com/Timer)) -- `babel-preset-react-app`, `eslint-config-react-app`, `react-dev-utils`, `react-error-overlay`, `react-scripts` - - [#3522](https://github.com/facebook/create-react-app/pull/3522) Switch to Babel 7 ([@clemmy](https://github.com/clemmy)) + - [#6770](https://github.com/facebook/create-react-app/pull/6770) Warn when using react-scripts-ts ([@ianschmitz](https://github.com/ianschmitz)) +- `react-dev-utils` + - [#5821](https://github.com/facebook/create-react-app/pull/5821) Add wait: false to options object for opn ([@evalexpr](https://github.com/evalexpr)) + - [#6502](https://github.com/facebook/create-react-app/pull/6502) Enable click to go to error in console part 2! ([@johnnyreilly](https://github.com/johnnyreilly)) #### :memo: Documentation -- `react-scripts` - - [#5211](https://github.com/facebook/create-react-app/pull/5211) Adds instructions to README on how to customize Bootstrap with Sass ([@mslooten](https://github.com/mslooten)) - - [#5147](https://github.com/facebook/create-react-app/pull/5147) Document adding SVGs as React components ([@mareksuscak](https://github.com/mareksuscak)) - - [#5193](https://github.com/facebook/create-react-app/pull/5193) Fix typo in 'Configuring the Proxy Manually' ([@fabriziocucci](https://github.com/fabriziocucci)) - - [#5111](https://github.com/facebook/create-react-app/pull/5111) Updates to README to reflect Workbox usage. ([@jeffposnick](https://github.com/jeffposnick)) - - [#5169](https://github.com/facebook/create-react-app/pull/5169) Add additional troubleshooting for Github Pages ([@dwang](https://github.com/dwang)) - - [#5145](https://github.com/facebook/create-react-app/pull/5145) Mention .module.scss/sass convention ([@mareksuscak](https://github.com/mareksuscak)) - - [#5105](https://github.com/facebook/create-react-app/pull/5105) as per #5104 ([@sag1v](https://github.com/sag1v)) - - [#5071](https://github.com/facebook/create-react-app/pull/5071) Update usage advice of husky to 1.0 ([@martinlechner1](https://github.com/martinlechner1)) - - [#5077](https://github.com/facebook/create-react-app/pull/5077) small typo fix ([@tteltrab](https://github.com/tteltrab)) - - [#5070](https://github.com/facebook/create-react-app/pull/5070) Integrating with an API Backend: add API Platform ([@dunglas](https://github.com/dunglas)) - - [#5064](https://github.com/facebook/create-react-app/pull/5064) fix minor typo in troubleshooting github pages ([@kaznovac](https://github.com/kaznovac)) - - [#5035](https://github.com/facebook/create-react-app/pull/5035) Remove paywalled tutorial link for Storybook ([@imgntn](https://github.com/imgntn)) - - [#3924](https://github.com/facebook/create-react-app/pull/3924) Updates to reflect service worker registration being opt-in. ([@jeffposnick](https://github.com/jeffposnick)) - - [#4881](https://github.com/facebook/create-react-app/pull/4881) flowtype.org -> flow.org ([@web2033](https://github.com/web2033)) - - [#4825](https://github.com/facebook/create-react-app/pull/4825) Update support info for service workers ([@j-f1](https://github.com/j-f1)) - - [#4738](https://github.com/facebook/create-react-app/pull/4738) Fix typo ([@mjw56](https://github.com/mjw56)) - - [#4741](https://github.com/facebook/create-react-app/pull/4741) remove extra dot on devtool link comment ([@shelldandy](https://github.com/shelldandy)) - - [#4703](https://github.com/facebook/create-react-app/pull/4703) Suggest `reactstrap` instead of `react-bootstrap` ([@zx6658](https://github.com/zx6658)) - - [#4566](https://github.com/facebook/create-react-app/pull/4566) Move whitespace comment closer to where it applies ([@mgedmin](https://github.com/mgedmin)) - - [#4497](https://github.com/facebook/create-react-app/pull/4497) [Read Me template patch] Warn about #871 until it's actually fixed. ([@saimonmoore](https://github.com/saimonmoore)) - - [#4205](https://github.com/facebook/create-react-app/pull/4205) Chokidar Updates ([@originell](https://github.com/originell)) - - [#4286](https://github.com/facebook/create-react-app/pull/4286) Fix some typos in README.md ([@apaatsio](https://github.com/apaatsio)) - - [#4298](https://github.com/facebook/create-react-app/pull/4298) Added learnstorybook.com to Storybook links ([@tmeasday](https://github.com/tmeasday)) - - [#4117](https://github.com/facebook/create-react-app/pull/4117) Document multiple build environments via `env-cmd` #4071 ([@jMuzsik](https://github.com/jMuzsik)) - - [#4197](https://github.com/facebook/create-react-app/pull/4197) Add troubleshooting for Github Pages ([@xnt](https://github.com/xnt)) - - [#4236](https://github.com/facebook/create-react-app/pull/4236) use the lastest url of gitignore file ([@Plortinus](https://github.com/Plortinus)) - - [#4239](https://github.com/facebook/create-react-app/pull/4239) Fix typo in comment and be clearer about `ecma` settings in uglifyjs options ([@danielberndt](https://github.com/danielberndt)) - - [#4164](https://github.com/facebook/create-react-app/pull/4164) Fix typos in example monorepo documentation. ([@bradfordlemley](https://github.com/bradfordlemley)) - - [#4089](https://github.com/facebook/create-react-app/pull/4089) Fix a typo in packages/react-scripts/template/README.md ([@nott](https://github.com/nott)) - - [#4101](https://github.com/facebook/create-react-app/pull/4101) Docs: Update status of Object Rest/Spread proposal ([@jpaquim](https://github.com/jpaquim)) - - [#4107](https://github.com/facebook/create-react-app/pull/4107) docs: use node_js 8 in example travis.yml ([@nikolas2](https://github.com/nikolas2)) - - [#3821](https://github.com/facebook/create-react-app/pull/3821) Updated react-scripts Readme.md to better document GitHub Pages ([@EdwaRen](https://github.com/EdwaRen)) - Other - - [#5102](https://github.com/facebook/create-react-app/pull/5102) Fix Troubleshooting link ([@gdi2290](https://github.com/gdi2290)) - - [#4551](https://github.com/facebook/create-react-app/pull/4551) Update targeted IE version in documentation ([@antzshrek](https://github.com/antzshrek)) - - [#4814](https://github.com/facebook/create-react-app/pull/4814) Update CODE_OF_CONDUCT.md ([@Ashleyotero](https://github.com/Ashleyotero)) - - [#4638](https://github.com/facebook/create-react-app/pull/4638) Add instructions on alternative methods of app creation ([@RusinovAnton](https://github.com/RusinovAnton)) - - [#4546](https://github.com/facebook/create-react-app/pull/4546) Update file tree view ([@antzshrek](https://github.com/antzshrek)) - - [#4449](https://github.com/facebook/create-react-app/pull/4449) add create-react-app-parcel to Alternatives section in README ([@sw-yx](https://github.com/sw-yx)) - - [#4294](https://github.com/facebook/create-react-app/pull/4294) documentation: added License to the README.md ([@thiagopaiva99](https://github.com/thiagopaiva99)) - - [#4323](https://github.com/facebook/create-react-app/pull/4323) Fix typo in e2e-simple.sh comment ([@bmuenzenmeyer](https://github.com/bmuenzenmeyer)) - - [#4134](https://github.com/facebook/create-react-app/pull/4134) fix: Minor typos ([@fejes713](https://github.com/fejes713)) - - [#4114](https://github.com/facebook/create-react-app/pull/4114) Update CONTRIBUTING.md ([@jkzing](https://github.com/jkzing)) - - [#3825](https://github.com/facebook/create-react-app/pull/3825) Add svg rendering for error example ([@marionebl](https://github.com/marionebl)) - - [#3810](https://github.com/facebook/create-react-app/pull/3810) Update screencast to use npx ([@marionebl](https://github.com/marionebl)) -- `create-react-app` - - [#4309](https://github.com/facebook/create-react-app/pull/4309) Fix typo to word bootstrapped in condition to check for old version o… ([@jamesvsshark](https://github.com/jamesvsshark)) - - [#4015](https://github.com/facebook/create-react-app/pull/4015) add `create-react-app --help` info for local file path `--scripts-version` support ([@albertstill](https://github.com/albertstill)) -- `react-dev-utils`, `react-scripts` - - [#3836](https://github.com/facebook/create-react-app/pull/3836) Use custom bit.ly links ([@bondz](https://github.com/bondz)) + - [#6847](https://github.com/facebook/create-react-app/pull/6847) Add baseUrl documentation ([@ianschmitz](https://github.com/ianschmitz)) + - [#6801](https://github.com/facebook/create-react-app/pull/6801) Copy fixes in adding Bootstrap docs ([@panckreous](https://github.com/panckreous)) + - [#6820](https://github.com/facebook/create-react-app/pull/6820) Fix docs about minimum React version for SVG component support ([@iansu](https://github.com/iansu)) + - [#6817](https://github.com/facebook/create-react-app/pull/6817) Add link to TypeScript page in Getting Started ([@ianschmitz](https://github.com/ianschmitz)) + - [#6786](https://github.com/facebook/create-react-app/pull/6786) Clarify production build output files documentation ([@bakuzan](https://github.com/bakuzan)) + - [#6783](https://github.com/facebook/create-react-app/pull/6783) Add SVG support dependency note ([@pnarielwala](https://github.com/pnarielwala)) + - [#6772](https://github.com/facebook/create-react-app/pull/6772) Update link to React Testing Library docs ([@fjoshuajr](https://github.com/fjoshuajr)) + - [#6695](https://github.com/facebook/create-react-app/pull/6695) Add Render deployment section ([@anurag](https://github.com/anurag)) + - [#6082](https://github.com/facebook/create-react-app/pull/6082) Add explanation for adding everything as dependencies to docs ([@mikeattara](https://github.com/mikeattara)) + - [#5481](https://github.com/facebook/create-react-app/pull/5481) Document .graphql and .gql file loading with graphql.macro ([@petetnt](https://github.com/petetnt)) + - [#6491](https://github.com/facebook/create-react-app/pull/6491) Update advanced-configuration.md ([@stephengodderidge](https://github.com/stephengodderidge)) + - [#6208](https://github.com/facebook/create-react-app/pull/6208) Add deployment instructions with AWS Amplify ([@swaminator](https://github.com/swaminator)) + - [#6374](https://github.com/facebook/create-react-app/pull/6374) Add note about npx caching and link to #6119 ([@TaylorBriggs](https://github.com/TaylorBriggs)) + - [#6386](https://github.com/facebook/create-react-app/pull/6386) Revert removal of newlines from html in docs ([@JBallin](https://github.com/JBallin)) +- `react-scripts` + - [#6848](https://github.com/facebook/create-react-app/pull/6848) Remove no-watch flag in favor of watchAll=false ([@bugzpodder](https://github.com/bugzpodder)) + - [#6775](https://github.com/facebook/create-react-app/pull/6775) Fix code comment typo ([@bestseob93](https://github.com/bestseob93)) #### :house: Internal -- `eslint-config-react-app` - - [#5205](https://github.com/facebook/create-react-app/pull/5205) Disable react/no-deprecated rule ([@Timer](https://github.com/Timer)) - - [#5051](https://github.com/facebook/create-react-app/pull/5051) Adjust ESLint configuration for v5 ([@Timer](https://github.com/Timer)) - - [#4187](https://github.com/facebook/create-react-app/pull/4187) Change no-unused-vars 'args' from none to all to show warning on dest… ([@goncy](https://github.com/goncy)) -- `babel-plugin-named-asset-import`, `babel-preset-react-app`, `confusing-browser-globals`, `create-react-app`, `eslint-config-react-app`, `react-app-polyfill`, `react-dev-utils`, `react-error-overlay`, `react-scripts` - - [#5192](https://github.com/facebook/create-react-app/pull/5192) Add license file to all packages ([@Timer](https://github.com/Timer)) - Other - - [#5183](https://github.com/facebook/create-react-app/pull/5183) Test class properties ([@Timer](https://github.com/Timer)) - - [#5146](https://github.com/facebook/create-react-app/pull/5146) Add behavior e2e tests ([@Timer](https://github.com/Timer)) - - [#4774](https://github.com/facebook/create-react-app/pull/4774) [internal] Use Yarn cache for travis ([@bugzpodder](https://github.com/bugzpodder)) - - [#4626](https://github.com/facebook/create-react-app/pull/4626) [internal] Fix node 10 test issue ([@bugzpodder](https://github.com/bugzpodder)) - - [#3816](https://github.com/facebook/create-react-app/pull/3816) Automate screencast recordings ([@marionebl](https://github.com/marionebl)) -- `react-scripts` - - [#5180](https://github.com/facebook/create-react-app/pull/5180) Fetch Workbox from CDN ([@Timer](https://github.com/Timer)) - - [#5170](https://github.com/facebook/create-react-app/pull/5170) Remove thread-loader ([@Timer](https://github.com/Timer)) - - [#5157](https://github.com/facebook/create-react-app/pull/5157) Forwards args through thread-loader ([@arcanis](https://github.com/arcanis)) - - [#5085](https://github.com/facebook/create-react-app/pull/5085) Remove highlightCode:true because it's now the default ([@marcofugaro](https://github.com/marcofugaro)) - - [#5098](https://github.com/facebook/create-react-app/pull/5098) [internal] remove babelrc dependency for kitchensink test ([@bugzpodder](https://github.com/bugzpodder)) - - [#5076](https://github.com/facebook/create-react-app/pull/5076) Revert "Add loader for .graphql files (#3909)" ([@Timer](https://github.com/Timer)) - - [#5062](https://github.com/facebook/create-react-app/pull/5062) Upgrade svgr to v2 and disable Prettier & SVGO ([@Timer](https://github.com/Timer)) - - [#5059](https://github.com/facebook/create-react-app/pull/5059) Switch back to cheap-module-source-map ([@jasonLaster](https://github.com/jasonLaster)) - - [#4891](https://github.com/facebook/create-react-app/pull/4891) Move favicon.ico to accommodate Chrome ([@thejohnfreeman](https://github.com/thejohnfreeman)) - - [#5053](https://github.com/facebook/create-react-app/pull/5053) Normalize babel caching across the board ([@Timer](https://github.com/Timer)) - - [#4550](https://github.com/facebook/create-react-app/pull/4550) Jest 23 and tests ([@bugzpodder](https://github.com/bugzpodder)) - - [#5043](https://github.com/facebook/create-react-app/pull/5043) Always lint with latest React version ([@Timer](https://github.com/Timer)) - - [#4955](https://github.com/facebook/create-react-app/pull/4955) Update webpack-dev-server 3.1.5 → 3.1.7 ([@addaleax](https://github.com/addaleax)) - - [#4776](https://github.com/facebook/create-react-app/pull/4776) Bump babel-loader to fix npm warning ([@frenzzy](https://github.com/frenzzy)) - - [#4767](https://github.com/facebook/create-react-app/pull/4767) [internal] Separate out kitchensink test into two ([@bugzpodder](https://github.com/bugzpodder)) - - [#4014](https://github.com/facebook/create-react-app/pull/4014) enable manifest plugin on dev ([@viankakrisna](https://github.com/viankakrisna)) - - [#4435](https://github.com/facebook/create-react-app/pull/4435) Update paths.js, rename shadow path variable ([@graemecode](https://github.com/graemecode)) - - [#4331](https://github.com/facebook/create-react-app/pull/4331) Bump `fsevents`. ([@wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg)) - - [#4174](https://github.com/facebook/create-react-app/pull/4174) Yarn workspace transpilation verification. ([@bradfordlemley](https://github.com/bradfordlemley)) - - [#3842](https://github.com/facebook/create-react-app/pull/3842) fix small grammatical typo in webpack config documentation ([@andrewerrico](https://github.com/andrewerrico)) + - [#6829](https://github.com/facebook/create-react-app/pull/6829) Upgrade to Lerna v3 ([@iansu](https://github.com/iansu)) + - [#6762](https://github.com/facebook/create-react-app/pull/6762) Add temporary workaround for Babel dependency issues in kitchensink-eject test suite ([@iansu](https://github.com/iansu)) + - [#6757](https://github.com/facebook/create-react-app/pull/6757) Add temporary workaround for Babel dependency issues in installs test suite ([@iansu](https://github.com/iansu)) + - [#6700](https://github.com/facebook/create-react-app/pull/6700) Kill verdaccio in CI tasks cleanup ([@santoshyadav198613](https://github.com/santoshyadav198613)) + - [#6690](https://github.com/facebook/create-react-app/pull/6690) Remove duplicate url key in siteConfig ([@charpeni](https://github.com/charpeni)) +- `react-scripts` + - [#6313](https://github.com/facebook/create-react-app/pull/6313) Update testMatch to also be compatible with Jest 24 ([@ngbrown](https://github.com/ngbrown)) + - [#4176](https://github.com/facebook/create-react-app/pull/4176) Remove --coverage + --watch workaround for the test command ([@stipsan](https://github.com/stipsan)) + - [#6655](https://github.com/facebook/create-react-app/pull/6655) Change app component declaration from arrow function to regular function ([@iansu](https://github.com/iansu)) + - [#6625](https://github.com/facebook/create-react-app/pull/6625) change named import into default import ([@xiaoxiangmoe](https://github.com/xiaoxiangmoe)) + - [#6621](https://github.com/facebook/create-react-app/pull/6621) make compiler a const not a let ([@Primajin](https://github.com/Primajin)) +- `babel-plugin-named-asset-import`, `confusing-browser-globals`, `react-dev-utils`, `react-error-overlay`, `react-scripts` + - [#6654](https://github.com/facebook/create-react-app/pull/6654) Cleanup Jest config ([@ianschmitz](https://github.com/ianschmitz)) - `react-dev-utils` - - [#5150](https://github.com/facebook/create-react-app/pull/5150) Run behavioral smoke tests with Jest, add output tests ([@Timer](https://github.com/Timer)) - - [#4514](https://github.com/facebook/create-react-app/pull/4514) Make Sass missing message friendlier ([@Timer](https://github.com/Timer)) - - [#4138](https://github.com/facebook/create-react-app/pull/4138) Allow ModuleScopePlugin accecpts an array as its appSrc ([@froyog](https://github.com/froyog)) - - [#4016](https://github.com/facebook/create-react-app/pull/4016) (chore): Alphabetize and clean files-array in react-dev-utils package.json ([@petetnt](https://github.com/petetnt)) -- `babel-preset-react-app`, `react-error-overlay`, `react-scripts` - - [#5143](https://github.com/facebook/create-react-app/pull/5143) Switch back to babel-loader ([@iansu](https://github.com/iansu)) -- `babel-preset-react-app` - - [#5119](https://github.com/facebook/create-react-app/pull/5119) Clean up @babel/plugin-transform-regenerator ([@lixiaoyan](https://github.com/lixiaoyan)) - - [#5033](https://github.com/facebook/create-react-app/pull/5033) Lock babel configuration back to IE 9 support (ES5) ([@Timer](https://github.com/Timer)) -- `react-dev-utils`, `react-scripts` - - [#5091](https://github.com/facebook/create-react-app/pull/5091) Allow stage 3 css transforms ([@Timer](https://github.com/Timer)) - - [#5054](https://github.com/facebook/create-react-app/pull/5054) Ensure Babel files get purged on upgrades ([@Timer](https://github.com/Timer)) - - [#5031](https://github.com/facebook/create-react-app/pull/5031) Upgrade `html-webpack-plugin` to fix tests ([@Timer](https://github.com/Timer)) -- `babel-preset-react-app`, `create-react-app`, `react-dev-utils`, `react-error-overlay`, `react-scripts` - - [#5080](https://github.com/facebook/create-react-app/pull/5080) Update tons of packages ([@Timer](https://github.com/Timer)) -- `react-error-overlay`, `react-scripts` - - [#5050](https://github.com/facebook/create-react-app/pull/5050) Eslint 5.6 ([@bugzpodder](https://github.com/bugzpodder)) -- `babel-plugin-named-asset-import`, `babel-preset-react-app`, `react-dev-utils`, `react-error-overlay`, `react-scripts` - - [#5042](https://github.com/facebook/create-react-app/pull/5042) Upgrade to Babel 7 stable ([@Timer](https://github.com/Timer)) - - [#4253](https://github.com/facebook/create-react-app/pull/4253) Upgrade Babel to `beta.44` ([@andriijas](https://github.com/andriijas)) -- `confusing-browser-globals`, `react-dev-utils`, `react-error-overlay`, `react-scripts` - - [#5032](https://github.com/facebook/create-react-app/pull/5032) Upgrade `react-scripts` dependencies ([@Timer](https://github.com/Timer)) -- `react-dev-utils`, `react-error-overlay`, `react-scripts` - - [#5026](https://github.com/facebook/create-react-app/pull/5026) Switch from uglifyjs to terser ([@Timer](https://github.com/Timer)) -- `create-react-app` - - [#4383](https://github.com/facebook/create-react-app/pull/4383) Add Node 10 to Travis config and remove Node 6 ([@iansu](https://github.com/iansu)) - - [#3853](https://github.com/facebook/create-react-app/pull/3853) pin envinfo version to 3.4.2 ([@bondz](https://github.com/bondz)) -- `react-error-overlay` - - [#4211](https://github.com/facebook/create-react-app/pull/4211) Revert lint-related changes made in #4193 ([@NMinhNguyen](https://github.com/NMinhNguyen)) - - [#4193](https://github.com/facebook/create-react-app/pull/4193) Minor fixes to CI ([@ro-savage](https://github.com/ro-savage)) -- `confusing-browser-globals`, `eslint-config-react-app` - - [#2286](https://github.com/facebook/create-react-app/pull/2286) Add restricted globals package ([@sidoshi](https://github.com/sidoshi)) -- `eslint-config-react-app`, `react-scripts` - - [#3723](https://github.com/facebook/create-react-app/pull/3723) Updating ESlint to ^4.15.0 and adding new rules to config ([@chrislaughlin](https://github.com/chrislaughlin)) + - [#6674](https://github.com/facebook/create-react-app/pull/6674) Remove unused eslint comment ([@mohitsinghs](https://github.com/mohitsinghs)) +- `eslint-config-react-app` + - [#6662](https://github.com/facebook/create-react-app/pull/6662) Sync version of babel-eslint in eslint-config-react-app for react-scripts V3 ([@dalcib](https://github.com/dalcib)) -#### Committers: 116 +#### :hammer: Underlying Tools -- A.J. Roberts ([@detrohutt](https://github.com/detrohutt)) -- Aaron Reisman ([@lifeiscontent](https://github.com/lifeiscontent)) -- Ade Viankakrisna Fadlil ([@viankakrisna](https://github.com/viankakrisna)) -- Albert Still ([@albertstill](https://github.com/albertstill)) -- Alex Brazier ([@alexbrazier](https://github.com/alexbrazier)) -- Andreas Cederström ([@andriijas](https://github.com/andriijas)) -- Andrew ([@andrewerrico](https://github.com/andrewerrico)) -- Andrew Clark ([@acdlite](https://github.com/acdlite)) -- Andrew Ho ([@andrwh](https://github.com/andrwh)) -- Andrey Sitnik ([@ai](https://github.com/ai)) -- Anna Henningsen ([@addaleax](https://github.com/addaleax)) -- Anton Rusinov ([@RusinovAnton](https://github.com/RusinovAnton)) -- Antti Ahti ([@apaatsio](https://github.com/apaatsio)) -- Ashley Otero ([@Ashleyotero](https://github.com/Ashleyotero)) -- Bond ([@bondz](https://github.com/bondz)) -- Bradford Lemley ([@bradfordlemley](https://github.com/bradfordlemley)) -- Brian Muenzenmeyer ([@bmuenzenmeyer](https://github.com/bmuenzenmeyer)) -- Brian Ng ([@existentialism](https://github.com/existentialism)) -- Chad Greenburg ([@CGreenburg](https://github.com/CGreenburg)) -- Chris Laughlin ([@chrislaughlin](https://github.com/chrislaughlin)) -- Clement Hoang ([@clemmy](https://github.com/clemmy)) -- Conrad Buck ([@conartist6](https://github.com/conartist6)) -- Craig Mulligan ([@hobochild](https://github.com/hobochild)) -- Dan Abramov ([@gaearon](https://github.com/gaearon)) -- Daniel ([@danielberndt](https://github.com/danielberndt)) -- Daniel Wang ([@dwang](https://github.com/dwang)) -- David Moodie ([@davejm](https://github.com/davejm)) -- Dmitriy Sadkovoy ([@sadkovoy](https://github.com/sadkovoy)) -- Eduardo Rabelo ([@oieduardorabelo](https://github.com/oieduardorabelo)) -- Edward Ren (Eddie) ([@EdwaRen](https://github.com/EdwaRen)) -- Ernesto García ([@gnapse](https://github.com/gnapse)) -- Eugene Kopich ([@web2033](https://github.com/web2033)) -- Fabiano Brito ([@Fabianopb](https://github.com/Fabianopb)) -- Fabrizio Cucci ([@fabriziocucci](https://github.com/fabriziocucci)) -- Fredrik Palmquist ([@fiddep](https://github.com/fiddep)) -- Futa Ogawa ([@ogawa0071](https://github.com/ogawa0071)) -- Gary Meehan ([@garmeeh](https://github.com/garmeeh)) -- Gonzalo Pozzo ([@goncy](https://github.com/goncy)) -- Grady Kuhnline ([@heygrady](https://github.com/heygrady)) -- Graeme ([@graemecode](https://github.com/graemecode)) -- Harry Moreno ([@morenoh149](https://github.com/morenoh149)) +- `react-scripts` + - [#6843](https://github.com/facebook/create-react-app/pull/6843) Update fsevents dependency version ([@FrancoisRmn](https://github.com/FrancoisRmn)) + - [#6725](https://github.com/facebook/create-react-app/pull/6725) Update to workbox-webpack-plugin v4 ([@r0ughnex](https://github.com/r0ughnex)) + - [#6361](https://github.com/facebook/create-react-app/pull/6361) Updating html-webpack-plugin dep ([@Aftabnack](https://github.com/Aftabnack)) + - [#6483](https://github.com/facebook/create-react-app/pull/6483) Update webpack-dev-server to 3.2.1 ([@ThePrez](https://github.com/ThePrez)) +- `babel-plugin-named-asset-import`, `babel-preset-react-app`, `confusing-browser-globals`, `create-react-app`, `eslint-config-react-app`, `react-app-polyfill`, `react-dev-utils`, `react-error-overlay`, `react-scripts` + - [#6840](https://github.com/facebook/create-react-app/pull/6840) Relax ESLint version range ([@ianschmitz](https://github.com/ianschmitz)) +- `babel-preset-react-app` + - [#6780](https://github.com/facebook/create-react-app/pull/6780) Remove unused babel-loader from babel-preset-react-app ([@tlrobinson](https://github.com/tlrobinson)) +- `babel-preset-react-app`, `react-dev-utils`, `react-error-overlay`, `react-scripts` + - [#6767](https://github.com/facebook/create-react-app/pull/6767) Update dependency versions ([@ianschmitz](https://github.com/ianschmitz)) +- `react-dev-utils` + - [#6739](https://github.com/facebook/create-react-app/pull/6739) Update fork-ts-checker-webpack-plugin out of alpha ([@pelotom](https://github.com/pelotom)) +- `eslint-config-react-app` + - [#6701](https://github.com/facebook/create-react-app/pull/6701) Remove project property from @typescript-eslint/parser options ([@jackwilsdon](https://github.com/jackwilsdon)) +- `eslint-config-react-app`, `react-scripts` + - [#6653](https://github.com/facebook/create-react-app/pull/6653) Unpin eslint-config-react-hooks dependency ([@iansu](https://github.com/iansu)) +- `babel-preset-react-app`, `eslint-config-react-app`, `react-scripts` + - [#5997](https://github.com/facebook/create-react-app/pull/5997) Support React Hooks (#5602) ([@eivind88](https://github.com/eivind88)) +- `babel-preset-react-app`, `create-react-app`, `react-app-polyfill`, `react-dev-utils`, `react-error-overlay`, `react-scripts` + - [#6614](https://github.com/facebook/create-react-app/pull/6614) Upgrade dependencies ([@ianschmitz](https://github.com/ianschmitz)) + +#### Committers: 49 + +- Abdelrahman Rifai ([@abdelrahmanrifai](https://github.com/abdelrahmanrifai)) +- Aftab Khan ([@Aftabnack](https://github.com/Aftabnack)) +- Alessandro (Ale) Segala ([@ItalyPaleAle](https://github.com/ItalyPaleAle)) +- Alex Guerra ([@heyimalex](https://github.com/heyimalex)) +- Andrew Luca ([@iamandrewluca](https://github.com/iamandrewluca)) +- Anurag Goel ([@anurag](https://github.com/anurag)) +- Cody Olsen ([@stipsan](https://github.com/stipsan)) +- Dalci de Jesus Bagolin ([@dalcib](https://github.com/dalcib)) +- Dan ([@panckreous](https://github.com/panckreous)) +- Eivind Arvesen ([@eivind88](https://github.com/eivind88)) +- Endilie Yacop Sucipto ([@endiliey](https://github.com/endiliey)) +- Francisco Joshua ([@fjoshuajr](https://github.com/fjoshuajr)) +- Hrusikesh Panda ([@mrchief](https://github.com/mrchief)) +- Ian Schmitz ([@ianschmitz](https://github.com/ianschmitz)) - Ian Sutherland ([@iansu](https://github.com/iansu)) -- Ideveloper ([@zx6658](https://github.com/zx6658)) -- Igor Fedyukin ([@ifedyukin](https://github.com/ifedyukin)) -- Irvin Denzel Torcuato ([@identor](https://github.com/identor)) -- JK ([@jkzing](https://github.com/jkzing)) -- Jack Franklin ([@jackfranklin](https://github.com/jackfranklin)) +- JBallin ([@JBallin](https://github.com/JBallin)) +- Jack Wilsdon ([@jackwilsdon](https://github.com/jackwilsdon)) - Jack Zhao ([@bugzpodder](https://github.com/bugzpodder)) -- James B. Pollack ([@imgntn](https://github.com/imgntn)) -- James Simoes ([@jamesvsshark](https://github.com/jamesvsshark)) -- Jason Laster ([@jasonLaster](https://github.com/jasonLaster)) -- Jed Fox ([@j-f1](https://github.com/j-f1)) -- Jeffrey Posnick ([@jeffposnick](https://github.com/jeffposnick)) -- Jerry ([@jMuzsik](https://github.com/jMuzsik)) -- Jih-Chi Lee ([@jihchi](https://github.com/jihchi)) -- Joe Haddad ([@Timer](https://github.com/Timer)) -- Joel George V ([@joelgeorgev](https://github.com/joelgeorgev)) -- John Freeman ([@thejohnfreeman](https://github.com/thejohnfreeman)) -- Joshua Comeau ([@joshwcomeau](https://github.com/joshwcomeau)) -- João Paquim ([@jpaquim](https://github.com/jpaquim)) -- Kent C. Dodds ([@kentcdodds](https://github.com/kentcdodds)) -- Kévin Dunglas ([@dunglas](https://github.com/dunglas)) -- Levin Rickert ([@levrik](https://github.com/levrik)) -- Luis Nell ([@originell](https://github.com/originell)) -- Luke Jackson ([@lukejacksonn](https://github.com/lukejacksonn)) -- Maciej Kasprzyk ([@maciej-ka](https://github.com/maciej-ka)) -- Magnús Örn Gylfason ([@mg](https://github.com/mg)) -- Marco Fugaro ([@marcofugaro](https://github.com/marcofugaro)) -- Marco Slooten ([@mslooten](https://github.com/mslooten)) -- Marek Suscak ([@mareksuscak](https://github.com/mareksuscak)) -- Mario Nebl ([@marionebl](https://github.com/marionebl)) -- Marius Gedminas ([@mgedmin](https://github.com/mgedmin)) -- Marko Kaznovac ([@kaznovac](https://github.com/kaznovac)) -- Martin Lechner ([@martinlechner1](https://github.com/martinlechner1)) -- Maurice de Beijer ([@mauricedb](https://github.com/mauricedb)) -- Maël Nison ([@arcanis](https://github.com/arcanis)) -- Michaël De Boey ([@MichaelDeBoey](https://github.com/MichaelDeBoey)) -- Miguel Palau ([@shelldandy](https://github.com/shelldandy)) -- Mike Kusold ([@kusold](https://github.com/kusold)) -- Mike Wilcox ([@mjw56](https://github.com/mjw56)) -- Mikhail Osher ([@miraage](https://github.com/miraage)) -- Minh Nguyen ([@NMinhNguyen](https://github.com/NMinhNguyen)) -- Nick Bartlett ([@tteltrab](https://github.com/tteltrab)) -- PatrickJS ([@gdi2290](https://github.com/gdi2290)) +- Jannis Hell ([@Primajin](https://github.com/Primajin)) +- John Reilly ([@johnnyreilly](https://github.com/johnnyreilly)) +- Kelvin Jin ([@kjin](https://github.com/kjin)) +- Lorenzo Rapetti ([@loryman](https://github.com/loryman)) +- Luiz Felipe Gonçalves ([@lffg](https://github.com/lffg)) +- Mateusz Burzyński ([@Andarist](https://github.com/Andarist)) +- Mike Beaton ([@MikeBeaton](https://github.com/MikeBeaton)) +- Mike Perry Y Attara ([@mikeattara](https://github.com/mikeattara)) +- Mohit Singh ([@mohitsinghs](https://github.com/mohitsinghs)) +- Nathan Brown ([@ngbrown](https://github.com/ngbrown)) +- Nicolas Charpentier ([@charpeni](https://github.com/charpeni)) +- Nikhil Swaminathan ([@swaminator](https://github.com/swaminator)) +- Parth Narielwala ([@pnarielwala](https://github.com/pnarielwala)) - Pete Nykänen ([@petetnt](https://github.com/petetnt)) -- Piotr ([@piotr-cz](https://github.com/piotr-cz)) -- Rami ([@evilchuck](https://github.com/evilchuck)) -- Reuben Antz ([@antzshrek](https://github.com/antzshrek)) -- Ro Savage ([@ro-savage](https://github.com/ro-savage)) -- Rob Grochowicz ([@rgrochowicz](https://github.com/rgrochowicz)) -- Robin van der Vleuten ([@robinvdvleuten](https://github.com/robinvdvleuten)) -- Sagiv ben giat ([@sag1v](https://github.com/sag1v)) -- Saimon Moore ([@saimonmoore](https://github.com/saimonmoore)) -- Sendil Kumar N ([@sendilkumarn](https://github.com/sendilkumarn)) -- Siddharth Doshi ([@sidoshi](https://github.com/sidoshi)) -- Stas Rudakou ([@nott](https://github.com/nott)) -- Stefan Feješ ([@fejes713](https://github.com/fejes713)) -- Thiago Galvani ([@thiagopaiva99](https://github.com/thiagopaiva99)) -- Tom Coleman ([@tmeasday](https://github.com/tmeasday)) -- Tore Hammervoll ([@skoging](https://github.com/skoging)) -- Trevor Brindle ([@tabrindle](https://github.com/tabrindle)) -- Vicente Plata ([@xnt](https://github.com/xnt)) -- Victor Amupitan ([@amupitan](https://github.com/amupitan)) -- Viktor Havrylin ([@Fer0x](https://github.com/Fer0x)) -- Vladimir Kutepov ([@frenzzy](https://github.com/frenzzy)) -- William Chargin ([@wchargin](https://github.com/wchargin)) -- XiaoYan Li ([@lixiaoyan](https://github.com/lixiaoyan)) -- [@Plortinus](https://github.com/Plortinus) -- [@arianon](https://github.com/arianon) -- [@everdimension](https://github.com/everdimension) -- [@nikolas2](https://github.com/nikolas2) -- [@stereobooster](https://github.com/stereobooster) -- [@wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) -- aisensiy ([@aisensiy](https://github.com/aisensiy)) -- froyog ([@froyog](https://github.com/froyog)) -- shawn wang ([@sw-yx](https://github.com/sw-yx)) - -## Releases Before 2.x - -Please refer to [CHANGELOG-1.x.md](./CHANGELOG-1.x.md) for earlier versions. +- Philip Harrison ([@feelepxyz](https://github.com/feelepxyz)) +- Pradeep Sekar ([@r0ughnex](https://github.com/r0ughnex)) +- Raphael.dev ([@bestseob93](https://github.com/bestseob93)) +- Robert van Steen ([@rovansteen](https://github.com/rovansteen)) +- Romain François ([@FrancoisRmn](https://github.com/FrancoisRmn)) +- Salvador Hernandez ([@clickclickonsal](https://github.com/clickclickonsal)) +- Santosh Yadav ([@santoshyadav198613](https://github.com/santoshyadav198613)) +- Stephen Godderidge ([@stephengodderidge](https://github.com/stephengodderidge)) +- Taylor Briggs ([@TaylorBriggs](https://github.com/TaylorBriggs)) +- Tom Crockett ([@pelotom](https://github.com/pelotom)) +- Tom Robinson ([@tlrobinson](https://github.com/tlrobinson)) +- Travis Fischer ([@transitive-bullshit](https://github.com/transitive-bullshit)) +- Wilkins ([@evalexpr](https://github.com/evalexpr)) +- ZHAO Jinxiang ([@xiaoxiangmoe](https://github.com/xiaoxiangmoe)) +- [@ThePrez](https://github.com/ThePrez) +- [@bakuzan](https://github.com/bakuzan) +- [@frederikhors](https://github.com/frederikhors) + +## Releases Before 3.x + +Please refer to [CHANGELOG-2.x.md](./CHANGELOG-2.x.md) for earlier versions. diff --git a/packages/create-react-app/yarn.lock.cached b/packages/create-react-app/yarn.lock.cached index cd6a9e24582..ccea4df8f41 100644 --- a/packages/create-react-app/yarn.lock.cached +++ b/packages/create-react-app/yarn.lock.cached @@ -1206,9 +1206,9 @@ integrity sha512-eAtOAFZefEnfJiRFQBGw1eYqa5GTLCZ1y86N0XSI/D6EB+E8z6VPV/UL7Gi5UEclFqoQk+6NRqEDsfmDLXn8sg== "@types/node@*": - version "11.13.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-11.13.4.tgz#f83ec3c3e05b174b7241fadeb6688267fe5b22ca" - integrity sha512-+rabAZZ3Yn7tF/XPGHupKIL5EcAbrLxnTr/hgQICxbeuAfWtT0UZSfULE+ndusckBItcv4o6ZeOJplQikVcLvQ== + version "11.13.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-11.13.6.tgz#37ec75690830acb0d74ce3c6c43caab787081e85" + integrity sha512-Xoo/EBzEe8HxTSwaZNLZjaW6M6tA/+GmD3/DZ6uo8qSaolE/9Oarko0oV1fVfrLqOz0tx0nXJB4rdD5c+vixLw== "@types/q@^1.5.1": version "1.5.2" @@ -1454,9 +1454,9 @@ acorn-dynamic-import@^4.0.0: integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== acorn-globals@^4.1.0, acorn-globals@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.1.tgz#deb149c59276657ebd40ba2ba849ddd529763ccf" - integrity sha512-gJSiKY8dBIjV/0jagZIFBdVMtfQyA5QHCvAT48H2q8REQoW8Fs5AOjqBql1LgSXgrMWdevcE+8cdZ33NtVbIBA== + version "4.3.2" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.2.tgz#4e2c2313a597fd589720395f6354b41cd5ec8006" + integrity sha512-BbzvZhVtZP+Bs1J1HcwrQe8ycfO0wStkSGxuul3He3GkHOIZ6eTqOkPuw9IP1X3+IkOo4wiJmwkobzXYz4wewQ== dependencies: acorn "^6.0.1" acorn-walk "^6.0.1" @@ -2276,9 +2276,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000929, caniuse-lite@^1.0.30000939, caniuse-lite@^1.0.30000957, caniuse-lite@^1.0.30000960: - version "1.0.30000960" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000960.tgz#ec48297037e5607f582f246ae7b12bee66a78999" - integrity sha512-7nK5qs17icQaX6V3/RYrJkOsZyRNnroA4+ZwxaKJzIKy+crIy0Mz5CBlLySd2SNV+4nbUZeqeNfiaEieUBu3aA== + version "1.0.30000962" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000962.tgz#6c10c3ab304b89bea905e66adf98c0905088ee44" + integrity sha512-WXYsW38HK+6eaj5IZR16Rn91TGhU3OhbwjKZvJ4HN/XBIABLKfbij9Mnd3pM0VEwZSlltWjoWg3I8FQ0DGgNOA== capture-exit@^2.0.0: version "2.0.0" @@ -3328,9 +3328,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.103, electron-to-chromium@^1.3.124: - version "1.3.124" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.124.tgz#861fc0148748a11b3e5ccebdf8b795ff513fa11f" - integrity sha512-glecGr/kFdfeXUHOHAWvGcXrxNU+1wSO/t5B23tT1dtlvYB26GY8aHzZSWD7HqhqC800Lr+w/hQul6C5AF542w== + version "1.3.125" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.125.tgz#dbde0e95e64ebe322db0eca764d951f885a5aff2" + integrity sha512-XxowpqQxJ4nDwUXHtVtmEhRqBpm2OnjBomZmZtHD0d2Eo0244+Ojezhk3sD/MBSSe2nxCdGQFRXHIsf/LUTL9A== elliptic@^6.0.0: version "6.4.1" @@ -3553,7 +3553,7 @@ eslint-visitor-keys@^1.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== -eslint@5.16.0: +eslint@^5.16.0: version "5.16.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== @@ -5573,9 +5573,9 @@ jsdom@^11.5.1: xml-name-validator "^3.0.0" jsdom@^14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-14.0.0.tgz#c7f1441ebcc57902d08d5fb2f6ba2baf746da7c6" - integrity sha512-/VkyPmdtbwqpJSkwDx3YyJ3U1oawYNB/h5z8vTUZGAzjtu2OHTeFRfnJqyMHsJ5Cyes23trOmvUpM1GfHH1leA== + version "14.1.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-14.1.0.tgz#916463b6094956b0a6c1782c94e380cd30e1981b" + integrity sha512-O901mfJSuTdwU2w3Sn+74T+RnDVP+FuV5fH8tcPWyqrseRAb0s5xOtPgCFiPOtLcyK7CLIJwPyD83ZqQWvA5ng== dependencies: abab "^2.0.0" acorn "^6.0.4" @@ -5587,16 +5587,16 @@ jsdom@^14.0.0: domexception "^1.0.1" escodegen "^1.11.0" html-encoding-sniffer "^1.0.2" - nwsapi "^2.0.9" + nwsapi "^2.1.3" parse5 "5.1.0" pn "^1.1.0" request "^2.88.0" request-promise-native "^1.0.5" - saxes "^3.1.5" + saxes "^3.1.9" symbol-tree "^3.2.2" tough-cookie "^2.5.0" w3c-hr-time "^1.0.1" - w3c-xmlserializer "^1.0.1" + w3c-xmlserializer "^1.1.2" webidl-conversions "^4.0.2" whatwg-encoding "^1.0.5" whatwg-mimetype "^2.3.0" @@ -5688,9 +5688,9 @@ jsprim@^1.2.2: verror "1.10.0" jsx-ast-utils@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f" - integrity sha1-6AGxs5mF4g//yHtA43SAgOLcrH8= + version "2.1.0" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.1.0.tgz#0ee4e2c971fb9601c67b5641b71be80faecf0b36" + integrity sha512-yDGDG2DS4JcqhA6blsuYbtsT09xL8AoLuUR2Gb5exrw7UEM19sBcOTq+YBBhrNbl0PUC4R4LnFu+dHg2HKeVvA== dependencies: array-includes "^3.0.3" @@ -6043,22 +6043,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -"mime-db@>= 1.38.0 < 2": - version "1.39.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.39.0.tgz#f95a20275742f7d2ad0429acfe40f4233543780e" - integrity sha512-DTsrw/iWVvwHH+9Otxccdyy0Tgiil6TWK/xhfARJZF/QFhwOgZgOIvA2/VIGpM8U7Q8z5nDmdDWC6tuVMJNibw== - -mime-db@~1.38.0: - version "1.38.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.38.0.tgz#1a2aab16da9eb167b49c6e4df2d9c68d63d8e2ad" - integrity sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg== +mime-db@1.40.0, "mime-db@>= 1.38.0 < 2": + version "1.40.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" + integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.19: - version "2.1.22" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.22.tgz#fe6b355a190926ab7698c9a0556a11199b2199bd" - integrity sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog== + version "2.1.24" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== dependencies: - mime-db "~1.38.0" + mime-db "1.40.0" mime@1.4.1: version "1.4.1" @@ -6438,7 +6433,7 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= -nwsapi@^2.0.7, nwsapi@^2.0.9: +nwsapi@^2.0.7, nwsapi@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.1.3.tgz#25f3a5cec26c654f7376df6659cdf84b99df9558" integrity sha512-RowAaJGEgYXEZfQ7tvvdtAQUKPyTR6T6wNu0fwlNsGQYr/h3yQc6oI8WnVZh3Y/Sylwc+dtAlvPqfFZjhTyk3A== @@ -8289,7 +8284,7 @@ sax@^1.2.4, sax@~1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -saxes@^3.1.5: +saxes@^3.1.9: version "3.1.9" resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.9.tgz#c1c197cd54956d88c09f960254b999e192d7058b" integrity sha512-FZeKhJglhJHk7eWG5YM0z46VHmI3KJpMBAQm3xa9meDvd+wevB5GuBB0wc0exPInZiBBHqi00DbS8AcvCGCFMw== @@ -8327,7 +8322,7 @@ semver@5.5.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== -semver@^6.0.0: +semver@6.0.0, semver@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.0.0.tgz#05e359ee571e5ad7ed641a6eec1e547ba52dea65" integrity sha512-0UewU+9rFapKFnlbirLi3byoOuhrSsli/z/ihNnvM24vgF+8sNBiI1LZPBSH9wJKUwaUbw+s3hToDLCXkrghrQ== @@ -9104,9 +9099,9 @@ trough@^1.0.0: integrity sha512-fwkLWH+DimvA4YCy+/nvJd61nWQQ2liO/nF/RjkTpiOGi+zxZzVkhb1mvbHIIW4b/8nDsYI8uTmAlc0nNkRMOw== ts-pnp@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.0.1.tgz#fde74a6371676a167abaeda1ffc0fdb423520098" - integrity sha512-Zzg9XH0anaqhNSlDRibNC8Kp+B9KNM0uRIpLpGkGyrgRIttA7zZBhotTSEoEyuDrz3QW2LGtu2dxuk34HzIGnQ== + version "1.1.2" + resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.1.2.tgz#be8e4bfce5d00f0f58e0666a82260c34a57af552" + integrity sha512-f5Knjh7XCyRIzoC/z1Su1yLLRrPrFCgtUAh/9fCSP6NKbATwpOL1+idQVXQokK9GRFURn/jYPGPfegIctwunoA== tslib@^1.8.1, tslib@^1.9.0: version "1.9.3" @@ -9166,9 +9161,9 @@ uglify-js@3.4.x: source-map "~0.6.1" uglify-js@^3.1.4: - version "3.5.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.5.4.tgz#4a64d57f590e20a898ba057f838dcdfb67a939b9" - integrity sha512-GpKo28q/7Bm5BcX9vOu4S46FwisbPbAmkkqPnGIpKvKTM96I85N6XHQV+k4I6FA2wxgLhcsSyHoNhzucwCflvA== + version "3.5.6" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.5.6.tgz#8a5f8a06ee7415ac1fa302f4623bc7344b553da4" + integrity sha512-YDKRX8F0Y+Jr7LhoVk0n4G7ltR3Y7qFAj+DtVBthlOgCcIj1hyMigCfousVfn9HKmvJ+qiFlLDwaHx44/e5ZKw== dependencies: commander "~2.20.0" source-map "~0.6.1" @@ -9450,7 +9445,7 @@ w3c-hr-time@^1.0.1: dependencies: browser-process-hrtime "^0.1.2" -w3c-xmlserializer@^1.0.1: +w3c-xmlserializer@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg== From 265c1592dcf3853122dcdd50e1bfc1e43f697fbe Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Mon, 22 Apr 2019 12:50:29 -0600 Subject: [PATCH 0659/1249] Publish - babel-plugin-named-asset-import@0.3.2 - babel-preset-react-app@8.0.0 - confusing-browser-globals@1.0.7 - create-react-app@3.0.0 - eslint-config-react-app@4.0.0 - react-app-polyfill@1.0.0 - react-dev-utils@9.0.0 - react-error-overlay@5.1.5 - react-scripts@3.0.0 --- .../babel-plugin-named-asset-import/package.json | 2 +- packages/babel-preset-react-app/package.json | 2 +- packages/confusing-browser-globals/package.json | 2 +- packages/create-react-app/package.json | 2 +- packages/eslint-config-react-app/package.json | 4 ++-- packages/react-app-polyfill/package.json | 2 +- packages/react-dev-utils/package.json | 4 ++-- packages/react-error-overlay/package.json | 8 ++++---- packages/react-scripts/package.json | 12 ++++++------ 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/packages/babel-plugin-named-asset-import/package.json b/packages/babel-plugin-named-asset-import/package.json index 73d06ee0ce8..f58812bf83d 100644 --- a/packages/babel-plugin-named-asset-import/package.json +++ b/packages/babel-plugin-named-asset-import/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-named-asset-import", - "version": "0.3.1", + "version": "0.3.2", "description": "Babel plugin for named asset imports in Create React App", "repository": { "type": "git", diff --git a/packages/babel-preset-react-app/package.json b/packages/babel-preset-react-app/package.json index ef16d126e44..9f8aab641c5 100644 --- a/packages/babel-preset-react-app/package.json +++ b/packages/babel-preset-react-app/package.json @@ -1,6 +1,6 @@ { "name": "babel-preset-react-app", - "version": "7.0.2", + "version": "8.0.0", "description": "Babel preset used by Create React App", "repository": { "type": "git", diff --git a/packages/confusing-browser-globals/package.json b/packages/confusing-browser-globals/package.json index 672a1699e2e..b5b8b7aba0f 100644 --- a/packages/confusing-browser-globals/package.json +++ b/packages/confusing-browser-globals/package.json @@ -1,6 +1,6 @@ { "name": "confusing-browser-globals", - "version": "1.0.6", + "version": "1.0.7", "description": "A list of browser globals that are often used by mistake instead of local variables", "license": "MIT", "main": "index.js", diff --git a/packages/create-react-app/package.json b/packages/create-react-app/package.json index 8d4ae65d9b1..502bc8247ba 100644 --- a/packages/create-react-app/package.json +++ b/packages/create-react-app/package.json @@ -1,6 +1,6 @@ { "name": "create-react-app", - "version": "2.1.8", + "version": "3.0.0", "keywords": [ "react" ], diff --git a/packages/eslint-config-react-app/package.json b/packages/eslint-config-react-app/package.json index 896cf4bc806..66db82f5195 100644 --- a/packages/eslint-config-react-app/package.json +++ b/packages/eslint-config-react-app/package.json @@ -1,6 +1,6 @@ { "name": "eslint-config-react-app", - "version": "3.0.8", + "version": "4.0.0", "description": "ESLint configuration used by Create React App", "repository": { "type": "git", @@ -26,6 +26,6 @@ "eslint-plugin-react-hooks": "1.x" }, "dependencies": { - "confusing-browser-globals": "^1.0.6" + "confusing-browser-globals": "^1.0.7" } } diff --git a/packages/react-app-polyfill/package.json b/packages/react-app-polyfill/package.json index 71e67d38be7..f927eaea583 100644 --- a/packages/react-app-polyfill/package.json +++ b/packages/react-app-polyfill/package.json @@ -1,6 +1,6 @@ { "name": "react-app-polyfill", - "version": "0.2.2", + "version": "1.0.0", "description": "Polyfills for various browsers including commonly used language features", "repository": { "type": "git", diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index adafd95c042..7e20cdee4c9 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -1,6 +1,6 @@ { "name": "react-dev-utils", - "version": "8.0.0", + "version": "9.0.0", "description": "Webpack utilities used by Create React App", "repository": { "type": "git", @@ -69,7 +69,7 @@ "loader-utils": "1.2.3", "opn": "5.4.0", "pkg-up": "2.0.0", - "react-error-overlay": "^5.1.4", + "react-error-overlay": "^5.1.5", "recursive-readdir": "2.2.2", "shell-quote": "1.6.1", "sockjs-client": "1.3.0", diff --git a/packages/react-error-overlay/package.json b/packages/react-error-overlay/package.json index 27f78244a0f..370062d38d9 100644 --- a/packages/react-error-overlay/package.json +++ b/packages/react-error-overlay/package.json @@ -1,6 +1,6 @@ { "name": "react-error-overlay", - "version": "5.1.4", + "version": "5.1.5", "description": "An overlay for displaying stack frames.", "main": "lib/index.js", "sideEffects": false, @@ -40,12 +40,12 @@ "babel-eslint": "10.0.1", "babel-jest": "24.7.1", "babel-loader": "8.0.5", - "babel-preset-react-app": "^7.0.2", + "babel-preset-react-app": "^8.0.0", "chalk": "^2.4.2", "chokidar": "^2.1.2", "cross-env": "5.2.0", "eslint": "^5.16.0", - "eslint-config-react-app": "^3.0.8", + "eslint-config-react-app": "^4.0.0", "eslint-plugin-flowtype": "2.50.1", "eslint-plugin-import": "2.16.0", "eslint-plugin-jsx-a11y": "6.2.1", @@ -58,7 +58,7 @@ "promise": "8.0.2", "raw-loader": "^1.0.0", "react": "^16.8.4", - "react-app-polyfill": "^0.2.2", + "react-app-polyfill": "^1.0.0", "react-dom": "^16.8.4", "rimraf": "^2.6.3", "settle-promise": "1.0.0", diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index c56d4a07937..df111a4611a 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -1,6 +1,6 @@ { "name": "react-scripts", - "version": "2.1.8", + "version": "3.0.0", "description": "Configuration and scripts for Create React App.", "repository": { "type": "git", @@ -35,14 +35,14 @@ "babel-eslint": "10.0.1", "babel-jest": "24.7.1", "babel-loader": "8.0.5", - "babel-plugin-named-asset-import": "^0.3.1", - "babel-preset-react-app": "^7.0.2", + "babel-plugin-named-asset-import": "^0.3.2", + "babel-preset-react-app": "^8.0.0", "case-sensitive-paths-webpack-plugin": "2.2.0", "css-loader": "2.1.1", "dotenv": "6.2.0", "dotenv-expand": "4.2.0", "eslint": "^5.16.0", - "eslint-config-react-app": "^3.0.8", + "eslint-config-react-app": "^4.0.0", "eslint-loader": "2.1.2", "eslint-plugin-flowtype": "2.50.1", "eslint-plugin-import": "2.16.0", @@ -66,8 +66,8 @@ "postcss-normalize": "7.0.1", "postcss-preset-env": "6.6.0", "postcss-safe-parser": "4.0.1", - "react-app-polyfill": "^0.2.2", - "react-dev-utils": "^8.0.0", + "react-app-polyfill": "^1.0.0", + "react-dev-utils": "^9.0.0", "resolve": "1.10.0", "sass-loader": "7.1.0", "semver": "6.0.0", From c38aecf73f8581db4a61288268be3a56b12e8af6 Mon Sep 17 00:00:00 2001 From: David Cho-Lerat Date: Wed, 24 Apr 2019 10:45:45 +0200 Subject: [PATCH 0660/1249] Fix typo in README.md (#6879) --- packages/react-app-polyfill/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-app-polyfill/README.md b/packages/react-app-polyfill/README.md index d5f68229617..252e941179b 100644 --- a/packages/react-app-polyfill/README.md +++ b/packages/react-app-polyfill/README.md @@ -19,7 +19,7 @@ yarn add react-app-polyfill ## Supporting Internet Explorer -You can import the entry point for the minimal version you intend to support to ensure that the minimum langauge features are present that are required to use Create React App. For example, if you import the IE9 entry point, this will include IE10 and IE11 support. +You can import the entry point for the minimal version you intend to support to ensure that the minimum language features are present that are required to use Create React App. For example, if you import the IE9 entry point, this will include IE10 and IE11 support. These modules ensure the following language features are present: From 002260708fc8ce7702f6289cd0c63c3dcabb877f Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Wed, 24 Apr 2019 07:35:51 -0700 Subject: [PATCH 0661/1249] Fix no-useless-constructor rule in TypeScript (#6862) --- packages/eslint-config-react-app/index.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/packages/eslint-config-react-app/index.js b/packages/eslint-config-react-app/index.js index 4026a82f427..01b99e65351 100644 --- a/packages/eslint-config-react-app/index.js +++ b/packages/eslint-config-react-app/index.js @@ -66,17 +66,14 @@ module.exports = { warnOnUnsupportedTypeScriptVersion: true, }, plugins: ['@typescript-eslint'], + // If adding a typescript-eslint version of an existing ESLint rule, + // make sure to disable the ESLint rule here. rules: { - // These ESLint rules are known to cause issues with typescript-eslint - // See https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/src/configs/recommended.json - camelcase: 'off', - indent: 'off', - 'no-array-constructor': 'off', - 'no-unused-vars': 'off', - '@typescript-eslint/no-angle-bracket-type-assertion': 'warn', + 'no-array-constructor': 'off', '@typescript-eslint/no-array-constructor': 'warn', '@typescript-eslint/no-namespace': 'error', + 'no-unused-vars': 'off', '@typescript-eslint/no-unused-vars': [ 'warn', { @@ -84,6 +81,8 @@ module.exports = { ignoreRestSiblings: true, }, ], + 'no-useless-constructor': 'off', + '@typescript-eslint/no-useless-constructor': 'warn', }, }, From 73d5579e0180cff81d56204da5c01e7c1f82fcfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Hu=C5=99=C5=A5=C3=A1k?= Date: Wed, 24 Apr 2019 19:32:05 +0200 Subject: [PATCH 0662/1249] Remove body padding reset from templates (#6300) * remove padding 0 on body from default styles * Update index.css --- packages/react-scripts/template-typescript/src/index.css | 1 - packages/react-scripts/template/src/index.css | 1 - 2 files changed, 2 deletions(-) diff --git a/packages/react-scripts/template-typescript/src/index.css b/packages/react-scripts/template-typescript/src/index.css index e2bd8f36a01..ec2585e8c0b 100644 --- a/packages/react-scripts/template-typescript/src/index.css +++ b/packages/react-scripts/template-typescript/src/index.css @@ -1,6 +1,5 @@ body { margin: 0; - padding: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; diff --git a/packages/react-scripts/template/src/index.css b/packages/react-scripts/template/src/index.css index cee5f348fb9..4a1df4db71c 100644 --- a/packages/react-scripts/template/src/index.css +++ b/packages/react-scripts/template/src/index.css @@ -1,6 +1,5 @@ body { margin: 0; - padding: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; From 126bded81edc724e9a1148e28ac24907fb5182b7 Mon Sep 17 00:00:00 2001 From: David Cho-Lerat Date: Wed, 24 Apr 2019 20:12:48 +0200 Subject: [PATCH 0663/1249] Fix typo in deployment docs (#6881) Typo : preache => precache --- docusaurus/docs/deployment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/docs/deployment.md b/docusaurus/docs/deployment.md index 507628d9bc3..78e4ee254a3 100644 --- a/docusaurus/docs/deployment.md +++ b/docusaurus/docs/deployment.md @@ -90,7 +90,7 @@ service worker navigation routing can be configured or disabled by [`eject`ing](available-scripts.md#npm-run-eject) and then modifying the [`navigateFallback`](https://github.com/GoogleChrome/sw-precache#navigatefallback-string) and [`navigateFallbackWhitelist`](https://github.com/GoogleChrome/sw-precache#navigatefallbackwhitelist-arrayregexp) -options of the `SWPreachePlugin` [configuration](../config/webpack.config.prod.js). +options of the `SWPrecachePlugin` [configuration](../config/webpack.config.prod.js). When users install your app to the homescreen of their device the default configuration will make a shortcut to `/index.html`. This may not work for client-side routers which expect the app to be served from `/`. Edit the web app manifest at [`public/manifest.json`](public/manifest.json) and change `start_url` to match the required URL scheme, for example: From 18b399be505a1c8d0a7498c6a2f1ab20843be020 Mon Sep 17 00:00:00 2001 From: Joe Rezendes Date: Thu, 25 Apr 2019 09:18:08 -0700 Subject: [PATCH 0664/1249] Improve styling of "get started" button (#6810) --- docusaurus/website/static/css/custom.css | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docusaurus/website/static/css/custom.css b/docusaurus/website/static/css/custom.css index 9adea322e58..ab70cb4ab79 100644 --- a/docusaurus/website/static/css/custom.css +++ b/docusaurus/website/static/css/custom.css @@ -9,6 +9,12 @@ .homeContainer .button { background: #24292e; border-color: white; + transition: background 0.3s, color 0.3s; +} + +.homeContainer .button:hover { + background: white; + color: #282c34; } .homeContainer * { From 785dd47937cba9892079275b690e6798303b5246 Mon Sep 17 00:00:00 2001 From: Dallon Feldner Date: Thu, 25 Apr 2019 16:35:03 -0500 Subject: [PATCH 0665/1249] Generate SVG component name in Jest fileTransform (#6706) --- .../config/jest/fileTransform.js | 27 ++++++++++++------- packages/react-scripts/package.json | 1 + 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/packages/react-scripts/config/jest/fileTransform.js b/packages/react-scripts/config/jest/fileTransform.js index 4ed6bdb005d..74dc1aa947e 100644 --- a/packages/react-scripts/config/jest/fileTransform.js +++ b/packages/react-scripts/config/jest/fileTransform.js @@ -1,6 +1,7 @@ 'use strict'; const path = require('path'); +const camelcase = require('camelcase'); // This is a custom Jest transformer turning file imports into filenames. // http://facebook.github.io/jest/docs/en/webpack.html @@ -10,19 +11,27 @@ module.exports = { const assetFilename = JSON.stringify(path.basename(filename)); if (filename.match(/\.svg$/)) { + // Based on how SVGR generates a component name: + // https://github.com/smooth-code/svgr/blob/01b194cf967347d43d4cbe6b434404731b87cf27/packages/core/src/state.js#L6 + const pascalCaseFileName = camelcase(path.parse(filename).name, { + pascalCase: true, + }); + const componentName = `Svg${pascalCaseFileName}`; return `const React = require('react'); module.exports = { __esModule: true, default: ${assetFilename}, - ReactComponent: React.forwardRef((props, ref) => ({ - $$typeof: Symbol.for('react.element'), - type: 'svg', - ref: ref, - key: null, - props: Object.assign({}, props, { - children: ${assetFilename} - }) - })), + ReactComponent: React.forwardRef(function ${componentName}(props, ref) { + return { + $$typeof: Symbol.for('react.element'), + type: 'svg', + ref: ref, + key: null, + props: Object.assign({}, props, { + children: ${assetFilename} + }) + }; + }), };`; } diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index df111a4611a..c068f4bdd16 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -37,6 +37,7 @@ "babel-loader": "8.0.5", "babel-plugin-named-asset-import": "^0.3.2", "babel-preset-react-app": "^8.0.0", + "camelcase": "^5.2.0", "case-sensitive-paths-webpack-plugin": "2.2.0", "css-loader": "2.1.1", "dotenv": "6.2.0", From e5f69b573b5ab28df2d684096de97eb68b5a0a17 Mon Sep 17 00:00:00 2001 From: Willian Barros <49801397+wbr2y@users.noreply.github.com> Date: Sat, 27 Apr 2019 21:27:11 -0400 Subject: [PATCH 0666/1249] Grammar! (#6935) Fix copy --- docusaurus/docs/supported-browsers-features.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docusaurus/docs/supported-browsers-features.md b/docusaurus/docs/supported-browsers-features.md index 2826b123afa..32b205a23e9 100644 --- a/docusaurus/docs/supported-browsers-features.md +++ b/docusaurus/docs/supported-browsers-features.md @@ -29,7 +29,7 @@ If you use any other ES6+ features that need **runtime support** (such as `Array ## Configuring Supported Browsers -By default, the generated project includes a [`browerslist`](https://github.com/browserslist/browserslist) configuration in your `package.json` file to target a broad range of browsers based on global usage (`> 0.2%`) for production builds, and modern browsers for development. This gives a good development experience, especially when using language features such as async/await, but still provides high compatibility with many browsers in production. +By default, the generated project includes a [`browserslist`](https://github.com/browserslist/browserslist) configuration in your `package.json` file to target a broad range of browsers based on global usage (`> 0.2%`) for production builds, and modern browsers for development. This gives a good development experience, especially when using language features such as async/await, but still provides high compatibility with many browsers in production. The `browserslist` configuration controls the outputted JavaScript so that the emitted code will be compatible with the browsers specified. The `production` list will be used when creating a production build by running the `build` script, and the `development` list will be used when running the `start` script. You can use [https://browserl.ist](https://browserl.ist/?q=%3E+0.2%25%2C+not+dead%2C+not+op_mini+all) to see the browsers supported by your configured `browserslist`. @@ -52,4 +52,4 @@ Here is an example `browserslist` that is specified in `package.json`: > Note that this does not include polyfills automatically for you. You will still need to polyfill language features (see above) as needed based on the browsers your are supporting. -> When editing the `browerslist` config, you may notice that your changes don't get picked up right away. This is due to an [issue in babel-loader](https://github.com/babel/babel-loader/issues/690) not detecting the change in your `package.json`. An easy solution is to delete the `node_modules/.cache` folder and try again. +> When editing the `browserslist` config, you may notice that your changes don't get picked up right away. This is due to an [issue in babel-loader](https://github.com/babel/babel-loader/issues/690) not detecting the change in your `package.json`. An easy solution is to delete the `node_modules/.cache` folder and try again. From c80e3feda775a50129add201302ad33dcb6ac8bc Mon Sep 17 00:00:00 2001 From: vg-stan Date: Sat, 27 Apr 2019 21:48:44 -0400 Subject: [PATCH 0667/1249] Change cssmodule classname hash to use repo relative paths (#6876) * Change cssmodule classname hash to use repo relative paths instead of system absolute paths --- packages/react-dev-utils/getCSSModuleLocalIdent.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/react-dev-utils/getCSSModuleLocalIdent.js b/packages/react-dev-utils/getCSSModuleLocalIdent.js index 504bb1581e1..1b1ecf7695b 100644 --- a/packages/react-dev-utils/getCSSModuleLocalIdent.js +++ b/packages/react-dev-utils/getCSSModuleLocalIdent.js @@ -8,6 +8,7 @@ 'use strict'; const loaderUtils = require('loader-utils'); +const path = require('path'); module.exports = function getLocalIdent( context, @@ -23,7 +24,7 @@ module.exports = function getLocalIdent( : '[name]'; // Create a hash based on a the file location and class name. Will be unique across a project, and close to globally unique. const hash = loaderUtils.getHashDigest( - context.resourcePath + localName, + path.posix.relative(context.rootContext, context.resourcePath) + localName, 'md5', 'base64', 5 From c34c7436de63ddabf8e18df47bb28bef0701a005 Mon Sep 17 00:00:00 2001 From: Tore Hammervoll Date: Mon, 29 Apr 2019 07:15:29 +0200 Subject: [PATCH 0668/1249] Update dependencies babel preset with recent changes (#6887) * Update dependencies preset to support browserslist * Loose mode array destructuring for hooks in dependencies --- .../babel-preset-react-app/dependencies.js | 39 +++++++++++++------ 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/packages/babel-preset-react-app/dependencies.js b/packages/babel-preset-react-app/dependencies.js index 60c76fb5b3a..86902d36bee 100644 --- a/packages/babel-preset-react-app/dependencies.js +++ b/packages/babel-preset-react-app/dependencies.js @@ -84,17 +84,11 @@ module.exports = function(api, opts) { // Latest stable ECMAScript features require('@babel/preset-env').default, { - // We want Create React App to be IE 9 compatible until React itself - // no longer works with IE 9 - targets: { - ie: 9, - }, - // Users cannot override this behavior because this Babel - // configuration is highly tuned for ES5 support - ignoreBrowserslistConfig: true, - // If users import all core-js they're probably not concerned with - // bundle size. We shouldn't rely on magic to try and shrink it. - useBuiltIns: false, + // Allow importing core-js in entrypoint and use browserlist to select polyfills + useBuiltIns: 'entry', + // Set the corejs version we are using to avoid warnings in console + // This will need to change once we upgrade to corejs@3 + corejs: 3, // Do not transform modules to CJS modules: false, // Exclude transforms that make all code slower @@ -103,6 +97,29 @@ module.exports = function(api, opts) { ], ].filter(Boolean), plugins: [ + // Necessary to include regardless of the environment because + // in practice some other transforms (such as object-rest-spread) + // don't work without it: https://github.com/babel/babel/issues/7215 + [ + require('@babel/plugin-transform-destructuring').default, + { + // Use loose mode for performance: + // https://github.com/facebook/create-react-app/issues/5602 + loose: false, + selectiveLoose: [ + 'useState', + 'useEffect', + 'useContext', + 'useReducer', + 'useCallback', + 'useMemo', + 'useRef', + 'useImperativeHandle', + 'useLayoutEffect', + 'useDebugValue', + ], + }, + ], // Polyfills the runtime needed for async/await, generators, and friends // https://babeljs.io/docs/en/babel-plugin-transform-runtime [ From a2ae8a79c0f6c0d07c6c2f1155d63f10efce9089 Mon Sep 17 00:00:00 2001 From: Cory Reed Date: Mon, 29 Apr 2019 08:31:50 -0700 Subject: [PATCH 0669/1249] Remove `Object.assign` from `MiniCssExtractPlugin` options (#6854) --- packages/react-scripts/config/webpack.config.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index a0ba6c6306e..c327f5164a3 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -84,10 +84,7 @@ module.exports = function(webpackEnv) { isEnvDevelopment && require.resolve('style-loader'), isEnvProduction && { loader: MiniCssExtractPlugin.loader, - options: Object.assign( - {}, - shouldUseRelativeAssetPaths ? { publicPath: '../../' } : undefined - ), + options: shouldUseRelativeAssetPaths ? { publicPath: '../../' } : {}, }, { loader: require.resolve('css-loader'), @@ -269,7 +266,9 @@ module.exports = function(webpackEnv) { // We placed these paths second because we want `node_modules` to "win" // if there are any conflicts. This matches Node resolution mechanism. // https://github.com/facebook/create-react-app/issues/253 - modules: ['node_modules', paths.appNodeModules].concat(modules.additionalModulePaths || []), + modules: ['node_modules', paths.appNodeModules].concat( + modules.additionalModulePaths || [] + ), // These are the reasonable defaults supported by the Node ecosystem. // We also include JSX as a common component filename extension to support // some tools, although we do not recommend using it, see: From 4b8b38bf7c55326f8d51ea9deeea76d7feee307d Mon Sep 17 00:00:00 2001 From: nagman Date: Tue, 30 Apr 2019 07:26:44 +0200 Subject: [PATCH 0670/1249] Update GraphQL doc (#6898) * Need to install graphql package * Need to provide real graphql in the .graphql file, not gql wrapped graphql --- docusaurus/docs/loading-graphql-files.md | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/docusaurus/docs/loading-graphql-files.md b/docusaurus/docs/loading-graphql-files.md index 423cbff3d3e..1d50dcc9875 100644 --- a/docusaurus/docs/loading-graphql-files.md +++ b/docusaurus/docs/loading-graphql-files.md @@ -4,16 +4,16 @@ title: Loading .graphql Files sidebar_label: Loading .graphql Files --- -To load `.gql` and `.graphql` files, first install the [`graphql.macro`](https://www.npmjs.com/package/graphql.macro) package by running: +To load `.gql` and `.graphql` files, first install the [`graphql`](https://www.npmjs.com/package/graphql) and [`graphql.macro`](https://www.npmjs.com/package/graphql.macro) packages by running: ```sh -npm install --save graphql.macro +npm install --save graphql graphql.macro ``` Alternatively you may use `yarn`: ```sh -yarn add graphql.macro +yarn add graphql graphql.macro ``` Then, whenever you want to load `.gql` or `.graphql` files, import the `loader` from the macro package: @@ -27,13 +27,11 @@ const query = loader('./foo.graphql'); And your results get automatically inlined! This means that if the file above, `foo.graphql`, contains the following: ```graphql -gql` - query { - hello { - world - } +query { + hello { + world } -`; +} ``` The previous example turns into: From 6710f521109caf5b889872a3028319262c8bb6d8 Mon Sep 17 00:00:00 2001 From: Chris Shaffer Date: Tue, 30 Apr 2019 19:35:18 -0500 Subject: [PATCH 0671/1249] Add clarifying note to TypeScript docs warning about global install of CRA (#6945) Added block quote with warning about issues when CRA is installed globally. --- docusaurus/docs/adding-typescript.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docusaurus/docs/adding-typescript.md b/docusaurus/docs/adding-typescript.md index 25380216431..1fb14a82ba1 100644 --- a/docusaurus/docs/adding-typescript.md +++ b/docusaurus/docs/adding-typescript.md @@ -17,6 +17,8 @@ npx create-react-app my-app --typescript yarn create react-app my-app --typescript ``` +> If you've previously installed `create-react-app` globally via `npm install -g create-react-app`, we recommend you uninstall the package using `npm uninstall -g create-react-app` to ensure that `npx` always uses the latest version. + To add [TypeScript](https://www.typescriptlang.org/) to a Create React App project, first install it: ```sh From b36d1ea1aa1458907839da9dd5028a372f9d48d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABl=20Nison?= Date: Wed, 1 May 2019 23:04:44 +0200 Subject: [PATCH 0672/1249] Adds the configuration for PnP/Typescript (#6856) * Adds the configuration for PnP/Typescript * Adds the header * Bumps ts-pnp * Bumps fork-ts-checker-webpack-plugin --- packages/react-dev-utils/package.json | 2 +- packages/react-scripts/config/pnpTs.js | 43 +++++++++++++++++++ .../react-scripts/config/webpack.config.js | 6 +++ packages/react-scripts/package.json | 1 + 4 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 packages/react-scripts/config/pnpTs.js diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index 7e20cdee4c9..f94efb81419 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -59,7 +59,7 @@ "escape-string-regexp": "1.0.5", "filesize": "3.6.1", "find-up": "3.0.0", - "fork-ts-checker-webpack-plugin": "1.0.1", + "fork-ts-checker-webpack-plugin": "1.1.1", "global-modules": "2.0.0", "globby": "8.0.2", "gzip-size": "5.0.0", diff --git a/packages/react-scripts/config/pnpTs.js b/packages/react-scripts/config/pnpTs.js new file mode 100644 index 00000000000..ed810df6307 --- /dev/null +++ b/packages/react-scripts/config/pnpTs.js @@ -0,0 +1,43 @@ +// @remove-on-eject-begin +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +// @remove-on-eject-end +'use strict'; + +const { resolveModuleName } = require('ts-pnp'); + +exports.resolveModuleName = ( + typescript, + moduleName, + containingFile, + compilerOptions, + resolutionHost +) => { + return resolveModuleName( + moduleName, + containingFile, + compilerOptions, + resolutionHost, + typescript.resolveModuleName + ); +}; + +exports.resolveTypeReferenceDirective = ( + typescript, + moduleName, + containingFile, + compilerOptions, + resolutionHost +) => { + return resolveModuleName( + moduleName, + containingFile, + compilerOptions, + resolutionHost, + typescript.resolveTypeReferenceDirective + ); +}; diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index c327f5164a3..8f70442d584 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -637,6 +637,12 @@ module.exports = function(webpackEnv) { async: isEnvDevelopment, useTypescriptIncrementalApi: true, checkSyntacticErrors: true, + resolveModuleNameModule: process.versions.pnp + ? `${__dirname}/pnpTs.js` + : undefined, + resolveTypeReferenceDirectiveModule: process.versions.pnp + ? `${__dirname}/pnpTs.js` + : undefined, tsconfig: paths.appTsConfig, reportFiles: [ '**', diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index c068f4bdd16..08a3b46aa9f 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -74,6 +74,7 @@ "semver": "6.0.0", "style-loader": "0.23.1", "terser-webpack-plugin": "1.2.3", + "ts-pnp": "1.1.2", "url-loader": "1.1.2", "webpack": "4.29.6", "webpack-dev-server": "3.2.1", From 4397d069d903c29927526d6fe4e7ba1b5edb136d Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Fri, 3 May 2019 13:22:09 -0700 Subject: [PATCH 0673/1249] Disable default-case lint rule for TypeScript (#6937) --- packages/eslint-config-react-app/index.js | 4 ++++ packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/eslint-config-react-app/index.js b/packages/eslint-config-react-app/index.js index 01b99e65351..c3782bb21be 100644 --- a/packages/eslint-config-react-app/index.js +++ b/packages/eslint-config-react-app/index.js @@ -69,6 +69,10 @@ module.exports = { // If adding a typescript-eslint version of an existing ESLint rule, // make sure to disable the ESLint rule here. rules: { + // TypeScript's `noFallthroughCasesInSwitch` option is more robust (#6906) + 'default-case': 'off', + + // Add TypeScript specific rules (and turn off ESLint equivalents) '@typescript-eslint/no-angle-bracket-type-assertion': 'warn', 'no-array-constructor': 'off', '@typescript-eslint/no-array-constructor': 'warn', diff --git a/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js b/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js index 7972c4e1012..a73b8c0db3b 100644 --- a/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js +++ b/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js @@ -106,6 +106,8 @@ function verifyTypeScriptSetup() { allowSyntheticDefaultImports: { suggested: true }, strict: { suggested: true }, forceConsistentCasingInFileNames: { suggested: true }, + // TODO: Enable for v4.0 (#6936) + // noFallthroughCasesInSwitch: { suggested: true }, // These values are required and cannot be changed by the user // Keep this in sync with the webpack config @@ -181,7 +183,7 @@ function verifyTypeScriptSetup() { ) ); } - + console.log(e && e.message ? `${e.message}` : ''); process.exit(1); } From 8a9e01cf9e17b22ea407813896837f57929ab4ba Mon Sep 17 00:00:00 2001 From: Mostafa Nawara Date: Sun, 5 May 2019 18:28:08 +0200 Subject: [PATCH 0674/1249] Add note to restart the dev server after changing .env file (#6979) * Add note to restart the dev server after change .env file * Update copy Co-authored-by: Ian Sutherland --- docusaurus/docs/adding-custom-environment-variables.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docusaurus/docs/adding-custom-environment-variables.md b/docusaurus/docs/adding-custom-environment-variables.md index 0e635f6a3c0..97fc21fd11d 100644 --- a/docusaurus/docs/adding-custom-environment-variables.md +++ b/docusaurus/docs/adding-custom-environment-variables.md @@ -117,6 +117,8 @@ REACT_APP_NOT_SECRET_CODE=abcdef > Note: You must create custom environment variables beginning with `REACT_APP_`. Any other variables except `NODE_ENV` will be ignored to avoid [accidentally exposing a private key on the machine that could have the same name](https://github.com/facebook/create-react-app/issues/865#issuecomment-252199527). Changing any environment variables will require you to restart the development server if it is running. +> Note: You need to restart the development server after changing `.env` files. + `.env` files **should be** checked into source control (with the exclusion of `.env*.local`). ### What other `.env` files can be used? From bf886bc49f34a6b7a9824bebe1e8bf659bf671ca Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Tue, 7 May 2019 06:51:47 -0700 Subject: [PATCH 0675/1249] Temporary fix for babel-jest preflight error (#7002) * Temporary fix for babel-jest preflight error * Update babel-jest in react-error-overlay --- packages/react-error-overlay/package.json | 2 +- packages/react-scripts/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-error-overlay/package.json b/packages/react-error-overlay/package.json index 370062d38d9..3b7c27943da 100644 --- a/packages/react-error-overlay/package.json +++ b/packages/react-error-overlay/package.json @@ -38,7 +38,7 @@ "@babel/core": "7.4.3", "anser": "1.4.8", "babel-eslint": "10.0.1", - "babel-jest": "24.7.1", + "babel-jest": "24.8.0", "babel-loader": "8.0.5", "babel-preset-react-app": "^8.0.0", "chalk": "^2.4.2", diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 08a3b46aa9f..3be87d94ee3 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -33,7 +33,7 @@ "@typescript-eslint/eslint-plugin": "1.6.0", "@typescript-eslint/parser": "1.6.0", "babel-eslint": "10.0.1", - "babel-jest": "24.7.1", + "babel-jest": "24.8.0", "babel-loader": "8.0.5", "babel-plugin-named-asset-import": "^0.3.2", "babel-preset-react-app": "^8.0.0", From 6ff2bfaf55b92e340c61ae799262b0ff05746bfb Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Tue, 7 May 2019 09:17:06 -0700 Subject: [PATCH 0676/1249] Disable no-dupe-class-members for TypeScript (#6987) --- packages/eslint-config-react-app/index.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/eslint-config-react-app/index.js b/packages/eslint-config-react-app/index.js index c3782bb21be..bc6d0a14c4b 100644 --- a/packages/eslint-config-react-app/index.js +++ b/packages/eslint-config-react-app/index.js @@ -71,6 +71,8 @@ module.exports = { rules: { // TypeScript's `noFallthroughCasesInSwitch` option is more robust (#6906) 'default-case': 'off', + // 'tsc' already handles this (https://github.com/typescript-eslint/typescript-eslint/issues/291) + 'no-dupe-class-members': 'off', // Add TypeScript specific rules (and turn off ESLint equivalents) '@typescript-eslint/no-angle-bracket-type-assertion': 'warn', From 4542185dea2f086aac7b3babb2d281822a11e581 Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Tue, 7 May 2019 10:37:12 -0700 Subject: [PATCH 0677/1249] Unpin babel-jest (#7007) --- packages/react-error-overlay/package.json | 2 +- packages/react-scripts/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-error-overlay/package.json b/packages/react-error-overlay/package.json index 3b7c27943da..c7b925de7ef 100644 --- a/packages/react-error-overlay/package.json +++ b/packages/react-error-overlay/package.json @@ -38,7 +38,7 @@ "@babel/core": "7.4.3", "anser": "1.4.8", "babel-eslint": "10.0.1", - "babel-jest": "24.8.0", + "babel-jest": "^24.8.0", "babel-loader": "8.0.5", "babel-preset-react-app": "^8.0.0", "chalk": "^2.4.2", diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 3be87d94ee3..5cd6f587c4b 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -33,7 +33,7 @@ "@typescript-eslint/eslint-plugin": "1.6.0", "@typescript-eslint/parser": "1.6.0", "babel-eslint": "10.0.1", - "babel-jest": "24.8.0", + "babel-jest": "^24.8.0", "babel-loader": "8.0.5", "babel-plugin-named-asset-import": "^0.3.2", "babel-preset-react-app": "^8.0.0", From 4ca368707c855fa2146c55efb5a405edaa1ab3f3 Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Wed, 8 May 2019 09:11:59 -0600 Subject: [PATCH 0678/1249] Revert PR #6935 because CLA was not signed (#7016) This reverts commit e5f69b573b5ab28df2d684096de97eb68b5a0a17. --- docusaurus/docs/supported-browsers-features.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docusaurus/docs/supported-browsers-features.md b/docusaurus/docs/supported-browsers-features.md index 32b205a23e9..2826b123afa 100644 --- a/docusaurus/docs/supported-browsers-features.md +++ b/docusaurus/docs/supported-browsers-features.md @@ -29,7 +29,7 @@ If you use any other ES6+ features that need **runtime support** (such as `Array ## Configuring Supported Browsers -By default, the generated project includes a [`browserslist`](https://github.com/browserslist/browserslist) configuration in your `package.json` file to target a broad range of browsers based on global usage (`> 0.2%`) for production builds, and modern browsers for development. This gives a good development experience, especially when using language features such as async/await, but still provides high compatibility with many browsers in production. +By default, the generated project includes a [`browerslist`](https://github.com/browserslist/browserslist) configuration in your `package.json` file to target a broad range of browsers based on global usage (`> 0.2%`) for production builds, and modern browsers for development. This gives a good development experience, especially when using language features such as async/await, but still provides high compatibility with many browsers in production. The `browserslist` configuration controls the outputted JavaScript so that the emitted code will be compatible with the browsers specified. The `production` list will be used when creating a production build by running the `build` script, and the `development` list will be used when running the `start` script. You can use [https://browserl.ist](https://browserl.ist/?q=%3E+0.2%25%2C+not+dead%2C+not+op_mini+all) to see the browsers supported by your configured `browserslist`. @@ -52,4 +52,4 @@ Here is an example `browserslist` that is specified in `package.json`: > Note that this does not include polyfills automatically for you. You will still need to polyfill language features (see above) as needed based on the browsers your are supporting. -> When editing the `browserslist` config, you may notice that your changes don't get picked up right away. This is due to an [issue in babel-loader](https://github.com/babel/babel-loader/issues/690) not detecting the change in your `package.json`. An easy solution is to delete the `node_modules/.cache` folder and try again. +> When editing the `browerslist` config, you may notice that your changes don't get picked up right away. This is due to an [issue in babel-loader](https://github.com/babel/babel-loader/issues/690) not detecting the change in your `package.json`. An easy solution is to delete the `node_modules/.cache` folder and try again. From 0905b51525c4ef6154cfe579d51ff4f090e883ca Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Wed, 8 May 2019 09:33:52 -0600 Subject: [PATCH 0679/1249] Prepare 3.0.1 release --- CHANGELOG.md | 77 + packages/create-react-app/yarn.lock.cached | 1962 ++++++++++---------- 2 files changed, 1042 insertions(+), 997 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c07a0a87455..8d33a7bc6a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,80 @@ +## 3.0.1 (2019-05-08) + +v3.0.1 is a maintenance release that adjusts some ESLint rules for TypeScript along with other minor bug fixes and documentation updates. + +#### :boom: Breaking Change + +- `babel-preset-react-app` + - [#6887](https://github.com/facebook/create-react-app/pull/6887) Update dependencies of Babel preset with recent changes ([@skoging](https://github.com/skoging)) + +#### :bug: Bug Fix + +- `react-error-overlay`, `react-scripts` + - [#7007](https://github.com/facebook/create-react-app/pull/7007) Unpin `babel-jest` ([@ianschmitz](https://github.com/ianschmitz)) + - [#7002](https://github.com/facebook/create-react-app/pull/7002) Temporary fix for `babel-jest` preflight error ([@ianschmitz](https://github.com/ianschmitz)) +- `eslint-config-react-app` + - [#6987](https://github.com/facebook/create-react-app/pull/6987) Disable `no-dupe-class-members` rule for TypeScript ([@ianschmitz](https://github.com/ianschmitz)) + - [#6862](https://github.com/facebook/create-react-app/pull/6862) Fix `no-useless-constructor` rule in TypeScript ([@ianschmitz](https://github.com/ianschmitz)) +- `eslint-config-react-app`, `react-scripts` + - [#6937](https://github.com/facebook/create-react-app/pull/6937) Disable `default-case` lint rule for TypeScript ([@ianschmitz](https://github.com/ianschmitz)) +- `react-dev-utils` + - [#6876](https://github.com/facebook/create-react-app/pull/6876) Change cssmodule classname hash to use relative paths ([@vg-stan](https://github.com/vg-stan)) + +#### :nail_care: Enhancement + +- `react-dev-utils`, `react-scripts` + - [#6856](https://github.com/facebook/create-react-app/pull/6856) Adds the configuration for PnP/Typescript ([@arcanis](https://github.com/arcanis)) +- `babel-preset-react-app` + - [#6887](https://github.com/facebook/create-react-app/pull/6887) Update dependencies of Babel preset with recent changes ([@skoging](https://github.com/skoging)) +- `react-scripts` + - [#6706](https://github.com/facebook/create-react-app/pull/6706) Generate SVG component name in Jest fileTransform ([@dallonf](https://github.com/dallonf)) + - [#6300](https://github.com/facebook/create-react-app/pull/6300) Remove body padding reset from templates ([@Hurtak](https://github.com/Hurtak)) + +#### :memo: Documentation + +- Other + - [#6979](https://github.com/facebook/create-react-app/pull/6979) Add note to restart the dev server after changing .env file ([@MostafaNawara](https://github.com/MostafaNawara)) + - [#6945](https://github.com/facebook/create-react-app/pull/6945) Add clarifying note to TypeScript docs warning about global install of CRA ([@methodbox](https://github.com/methodbox)) + - [#6898](https://github.com/facebook/create-react-app/pull/6898) Update GraphQL docs ([@nagman](https://github.com/nagman)) + - [#6810](https://github.com/facebook/create-react-app/pull/6810) Call to action button now reacts to being hovered ([@joerez](https://github.com/joerez)) + - [#6881](https://github.com/facebook/create-react-app/pull/6881) Fix typo in deployment docs ([@david-cho-lerat-HL2](https://github.com/david-cho-lerat-HL2)) +- `react-app-polyfill` + - [#6879](https://github.com/facebook/create-react-app/pull/6879) Update README.md ([@david-cho-lerat-HL2](https://github.com/david-cho-lerat-HL2)) + +#### :house: Internal + +- `react-scripts` + - [#6854](https://github.com/facebook/create-react-app/pull/6854) Remove `Object.assign` from `MiniCssExtractPlugin` options ([@swashcap](https://github.com/swashcap)) + +#### Committers: 12 + +- Chris Shaffer ([@methodbox](https://github.com/methodbox)) +- Cory Reed ([@swashcap](https://github.com/swashcap)) +- Dallon Feldner ([@dallonf](https://github.com/dallonf)) +- David Cho-Lerat ([@david-cho-lerat-HL2](https://github.com/david-cho-lerat-HL2)) +- Ian Schmitz ([@ianschmitz](https://github.com/ianschmitz)) +- Joe Rezendes ([@joerez](https://github.com/joerez)) +- Maël Nison ([@arcanis](https://github.com/arcanis)) +- Mostafa Nawara ([@MostafaNawara](https://github.com/MostafaNawara)) +- Petr Huřťák ([@Hurtak](https://github.com/Hurtak)) +- Tore Hammervoll ([@skoging](https://github.com/skoging)) +- [@nagman](https://github.com/nagman) +- [@vg-stan](https://github.com/vg-stan) + +### Migrating from 3.0.0 to 3.0.1 + +Inside any created project that has not been ejected, run: + +```sh +npm install --save --save-exact react-scripts@3.0.1 +``` + +or + +```sh +yarn add --exact react-scripts@3.0.1 +``` + ## 3.0.0 (April 22, 2019) Create React App 3.0 brings some exciting new features including support for [Hooks](https://reactjs.org/docs/hooks-intro.html)! diff --git a/packages/create-react-app/yarn.lock.cached b/packages/create-react-app/yarn.lock.cached index ccea4df8f41..652a0e514ff 100644 --- a/packages/create-react-app/yarn.lock.cached +++ b/packages/create-react-app/yarn.lock.cached @@ -9,27 +9,7 @@ dependencies: "@babel/highlight" "^7.0.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== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.2.2" - "@babel/helpers" "^7.2.0" - "@babel/parser" "^7.2.2" - "@babel/template" "^7.2.2" - "@babel/traverse" "^7.2.2" - "@babel/types" "^7.2.2" - convert-source-map "^1.1.0" - debug "^4.1.0" - json5 "^2.1.0" - lodash "^4.17.10" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/core@7.4.3", "@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.4.3": +"@babel/core@7.4.3": version "7.4.3" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.3.tgz#198d6d3af4567be3989550d97e068de94503074f" integrity sha512-oDpASqKFlbspQfzAE7yaeTmdljSH2ADIvBlb0RwbStltTuWa0+7CCI1fYVINNv9saHPa1W7oaKeuNuKj+RQCvA== @@ -49,12 +29,32 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.0.0", "@babel/generator@^7.2.2", "@babel/generator@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.0.tgz#c230e79589ae7a729fd4631b9ded4dc220418196" - integrity sha512-/v5I+a1jhGSKLgZDcmAUZ4K/VePi43eRkUs3yePW1HB1iANOD5tqJXwGSG4BZhSksP8J9ejSlwGeTiiOFZOrXQ== +"@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.4.3": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.4.tgz#84055750b05fcd50f9915a826b44fa347a825250" + integrity sha512-lQgGX3FPRgbz2SKmhMtYgJvVzGZrmjaF4apZ2bLwofAKiSjxU0drPh4S/VasyYXwaTs+A1gvQ45BN8SQJzHsQQ== dependencies: - "@babel/types" "^7.4.0" + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.4.4" + "@babel/helpers" "^7.4.4" + "@babel/parser" "^7.4.4" + "@babel/template" "^7.4.4" + "@babel/traverse" "^7.4.4" + "@babel/types" "^7.4.4" + convert-source-map "^1.1.0" + debug "^4.1.0" + json5 "^2.1.0" + lodash "^4.17.11" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.4.0", "@babel/generator@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.4.tgz#174a215eb843fc392c7edcaabeaa873de6e8f041" + integrity sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ== + dependencies: + "@babel/types" "^7.4.4" jsesc "^2.5.1" lodash "^4.17.11" source-map "^0.5.0" @@ -83,34 +83,34 @@ "@babel/types" "^7.3.0" esutils "^2.0.0" -"@babel/helper-call-delegate@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.0.tgz#f308eabe0d44f451217853aedf4dea5f6fe3294f" - integrity sha512-SdqDfbVdNQCBp3WhK2mNdDvHd3BD6qbmIc43CAyjnsfCmgHMeqgDcM3BzY2lchi7HBJGJ2CVdynLWbezaE4mmQ== +"@babel/helper-call-delegate@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43" + integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ== dependencies: - "@babel/helper-hoist-variables" "^7.4.0" - "@babel/traverse" "^7.4.0" - "@babel/types" "^7.4.0" + "@babel/helper-hoist-variables" "^7.4.4" + "@babel/traverse" "^7.4.4" + "@babel/types" "^7.4.4" -"@babel/helper-create-class-features-plugin@^7.3.0": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.4.3.tgz#5bbd279c6c3ac6a60266b89bbfe7f8021080a1ef" - integrity sha512-UMl3TSpX11PuODYdWGrUeW6zFkdYhDn7wRLrOuNVM6f9L+S9CzmDXYyrp3MTHcwWjnzur1f/Op8A7iYZWya2Yg== +"@babel/helper-create-class-features-plugin@^7.4.0": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.4.4.tgz#fc3d690af6554cc9efc607364a82d48f58736dba" + integrity sha512-UbBHIa2qeAGgyiNR9RszVF7bUHEdgS4JAUNT8SiqrAN6YJVxlOxeLr5pBzb5kan302dejJ9nla4RyKcR1XT6XA== dependencies: "@babel/helper-function-name" "^7.1.0" "@babel/helper-member-expression-to-functions" "^7.0.0" "@babel/helper-optimise-call-expression" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.4.0" - "@babel/helper-split-export-declaration" "^7.4.0" + "@babel/helper-replace-supers" "^7.4.4" + "@babel/helper-split-export-declaration" "^7.4.4" -"@babel/helper-define-map@^7.1.0", "@babel/helper-define-map@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.4.0.tgz#cbfd8c1b2f12708e262c26f600cd16ed6a3bc6c9" - integrity sha512-wAhQ9HdnLIywERVcSvX40CEJwKdAa1ID4neI9NXQPDOHwwA+57DqwLiPEVy2AIyWzAk0CQ8qx4awO0VUURwLtA== +"@babel/helper-define-map@^7.4.0", "@babel/helper-define-map@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.4.4.tgz#6969d1f570b46bdc900d1eba8e5d59c48ba2c12a" + integrity sha512-IX3Ln8gLhZpSuqHJSnTNBWGDE9kdkTEWl21A/K7PQ00tseBwbqCHTvNLHSBd9M0R5rER4h5Rsvj9vw0R5SieBg== dependencies: "@babel/helper-function-name" "^7.1.0" - "@babel/types" "^7.4.0" + "@babel/types" "^7.4.4" lodash "^4.17.11" "@babel/helper-explode-assignable-expression@^7.1.0": @@ -137,12 +137,12 @@ dependencies: "@babel/types" "^7.0.0" -"@babel/helper-hoist-variables@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.0.tgz#25b621399ae229869329730a62015bbeb0a6fbd6" - integrity sha512-/NErCuoe/et17IlAQFKWM24qtyYYie7sFIrW/tIQXpck6vAu2hhtYYsKLBWQV+BQZMbcIYPU/QMYuTufrY4aQw== +"@babel/helper-hoist-variables@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a" + integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w== dependencies: - "@babel/types" "^7.4.0" + "@babel/types" "^7.4.4" "@babel/helper-member-expression-to-functions@^7.0.0": version "7.0.0" @@ -158,16 +158,16 @@ dependencies: "@babel/types" "^7.0.0" -"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.3": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.4.3.tgz#b1e357a1c49e58a47211a6853abb8e2aaefeb064" - integrity sha512-H88T9IySZW25anu5uqyaC1DaQre7ofM+joZtAaO2F8NBdFfupH0SZ4gKjgSFVcvtx/aAirqA9L9Clio2heYbZA== +"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.4.4.tgz#96115ea42a2f139e619e98ed46df6019b94414b8" + integrity sha512-3Z1yp8TVQf+B4ynN7WoHPKS8EkdTbgAEy0nU0rs/1Kw4pDgmvYH3rz3aI11KgxKCba2cn7N+tqzV1mY2HMN96w== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-simple-access" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.0.0" - "@babel/template" "^7.2.2" - "@babel/types" "^7.2.2" + "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/template" "^7.4.4" + "@babel/types" "^7.4.4" lodash "^4.17.11" "@babel/helper-optimise-call-expression@^7.0.0": @@ -182,10 +182,10 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== -"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.3": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.4.3.tgz#9d6e5428bfd638ab53b37ae4ec8caf0477495147" - integrity sha512-hnoq5u96pLCfgjXuj8ZLX3QQ+6nAulS+zSgi6HulUwFbEruRAKwbGLU5OvXkE14L8XW6XsQEKsIDfgthKLRAyA== +"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.4.4.tgz#a47e02bc91fb259d2e6727c2a30013e3ac13c4a2" + integrity sha512-Y5nuB/kESmR3tKjU8Nkn1wMGEx1tjJX076HBMeL3XLQCu6vA/YRzuTW0bbb+qRnXvQGn+d6Rx953yffl8vEy7Q== dependencies: lodash "^4.17.11" @@ -200,15 +200,15 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helper-replace-supers@^7.1.0", "@babel/helper-replace-supers@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.4.0.tgz#4f56adb6aedcd449d2da9399c2dcf0545463b64c" - integrity sha512-PVwCVnWWAgnal+kJ+ZSAphzyl58XrFeSKSAJRiqg5QToTsjL+Xu1f9+RJ+d+Q0aPhPfBGaYfkox66k86thxNSg== +"@babel/helper-replace-supers@^7.1.0", "@babel/helper-replace-supers@^7.4.0", "@babel/helper-replace-supers@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.4.4.tgz#aee41783ebe4f2d3ab3ae775e1cc6f1a90cefa27" + integrity sha512-04xGEnd+s01nY1l15EuMS1rfKktNF+1CkKmHoErDppjAAZL+IUBZpzT748x262HF7fibaQPhbvWUl5HeSt1EXg== dependencies: "@babel/helper-member-expression-to-functions" "^7.0.0" "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/traverse" "^7.4.0" - "@babel/types" "^7.4.0" + "@babel/traverse" "^7.4.4" + "@babel/types" "^7.4.4" "@babel/helper-simple-access@^7.1.0": version "7.1.0" @@ -218,12 +218,12 @@ "@babel/template" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helper-split-export-declaration@^7.0.0", "@babel/helper-split-export-declaration@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.0.tgz#571bfd52701f492920d63b7f735030e9a3e10b55" - integrity sha512-7Cuc6JZiYShaZnybDmfwhY4UYHzI6rlqhWjaIqbsJGsIqPimEYy5uh3akSRLMg65LSdSEnJ8a8/bWQN6u2oMGw== +"@babel/helper-split-export-declaration@^7.4.0", "@babel/helper-split-export-declaration@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" + integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q== dependencies: - "@babel/types" "^7.4.0" + "@babel/types" "^7.4.4" "@babel/helper-wrap-function@^7.1.0": version "7.2.0" @@ -235,14 +235,14 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.2.0" -"@babel/helpers@^7.2.0", "@babel/helpers@^7.4.3": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.4.3.tgz#7b1d354363494b31cb9a2417ae86af32b7853a3b" - integrity sha512-BMh7X0oZqb36CfyhvtbSmcWc3GXocfxv3yNsAEuM0l+fAqSO22rQrUpijr3oE/10jCTrB6/0b9kzmG4VetCj8Q== +"@babel/helpers@^7.4.3", "@babel/helpers@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.4.4.tgz#868b0ef59c1dd4e78744562d5ce1b59c89f2f2a5" + integrity sha512-igczbR/0SeuPR8RFfC7tGrbdTbFL3QTvH6D+Z6zNxnTe//GyqmtHmDkzrqDmyZ3eSwPqB/LhyKoU5DXsp+Vp2A== dependencies: - "@babel/template" "^7.4.0" - "@babel/traverse" "^7.4.3" - "@babel/types" "^7.4.0" + "@babel/template" "^7.4.4" + "@babel/traverse" "^7.4.4" + "@babel/types" "^7.4.4" "@babel/highlight@^7.0.0": version "7.0.0" @@ -253,10 +253,10 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.2.2", "@babel/parser@^7.4.0", "@babel/parser@^7.4.3": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.3.tgz#eb3ac80f64aa101c907d4ce5406360fe75b7895b" - integrity sha512-gxpEUhTS1sGA63EGQGuA+WESPR/6tz6ng7tSHFCmaTJK/cGK8y37cBTspX+U2xCAue2IQVvF6Z0oigmjwD8YGQ== +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.4.tgz#5977129431b8fe33471730d255ce8654ae1250b6" + integrity sha512-5pCS4mOsL+ANsFZGdvNLybx4wtqAZJ0MJjMHxvzI3bvIsz6sQvzW8XX92EYIkiPtIvcfG3Aj+Ir5VNyjnZhP7w== "@babel/plugin-proposal-async-generator-functions@^7.2.0": version "7.2.0" @@ -267,20 +267,20 @@ "@babel/helper-remap-async-to-generator" "^7.1.0" "@babel/plugin-syntax-async-generators" "^7.2.0" -"@babel/plugin-proposal-class-properties@7.3.0": - version "7.3.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.3.0.tgz#272636bc0fa19a0bc46e601ec78136a173ea36cd" - integrity sha512-wNHxLkEKTQ2ay0tnsam2z7fGZUi+05ziDJflEt3AZTP3oXLKHJp9HqhfroB/vdMvt3sda9fAbq7FsG8QPDrZBg== +"@babel/plugin-proposal-class-properties@7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.4.0.tgz#d70db61a2f1fd79de927eea91f6411c964e084b8" + integrity sha512-t2ECPNOXsIeK1JxJNKmgbzQtoG27KIlVE61vTqX0DKR9E9sZlVVxWUtEW9D5FlZ8b8j7SBNCHY47GgPKCKlpPg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.3.0" + "@babel/helper-create-class-features-plugin" "^7.4.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-proposal-decorators@7.3.0": - version "7.3.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.3.0.tgz#637ba075fa780b1f75d08186e8fb4357d03a72a7" - integrity sha512-3W/oCUmsO43FmZIqermmq6TKaRSYhmh/vybPfVFwQWdSb8xwki38uAIvknCRzuyHRuYfCYmJzL9or1v0AffPjg== +"@babel/plugin-proposal-decorators@7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.4.0.tgz#8e1bfd83efa54a5f662033afcc2b8e701f4bb3a9" + integrity sha512-d08TLmXeK/XbgCo7ZeZ+JaeZDtDai/2ctapTRsWWkkmy7G/cqz8DQN/HlWG7RR4YmfXxmExsbU3SuCjlM7AtUg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.3.0" + "@babel/helper-create-class-features-plugin" "^7.4.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-decorators" "^7.2.0" @@ -292,18 +292,18 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-json-strings" "^7.2.0" -"@babel/plugin-proposal-object-rest-spread@7.3.2": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.2.tgz#6d1859882d4d778578e41f82cc5d7bf3d5daf6c1" - integrity sha512-DjeMS+J2+lpANkYLLO+m6GjoTMygYglKmRe6cDTbFv3L9i6mmiE8fe6B8MtCSLZpVXscD5kn7s6SgtHrDoBWoA== +"@babel/plugin-proposal-object-rest-spread@7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.3.tgz#be27cd416eceeba84141305b93c282f5de23bbb4" + integrity sha512-xC//6DNSSHVjq8O2ge0dyYlhshsH4T7XdCVoxbi5HzLYWfsC5ooFlJjrXk8RcAT+hjHAK9UjBXdylzSoDK3t4g== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" -"@babel/plugin-proposal-object-rest-spread@^7.3.1", "@babel/plugin-proposal-object-rest-spread@^7.4.3": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.3.tgz#be27cd416eceeba84141305b93c282f5de23bbb4" - integrity sha512-xC//6DNSSHVjq8O2ge0dyYlhshsH4T7XdCVoxbi5HzLYWfsC5ooFlJjrXk8RcAT+hjHAK9UjBXdylzSoDK3t4g== +"@babel/plugin-proposal-object-rest-spread@^7.4.3", "@babel/plugin-proposal-object-rest-spread@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.4.tgz#1ef173fcf24b3e2df92a678f027673b55e7e3005" + integrity sha512-dMBG6cSPBbHeEBdFXeQ2QLc5gUpg4Vkaz8octD4aoW/ISO+jBOcsuxYL7bsb5WSu8RLP6boxrBIALEHgoHtO9g== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" @@ -316,13 +316,13 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" -"@babel/plugin-proposal-unicode-property-regex@^7.2.0", "@babel/plugin-proposal-unicode-property-regex@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.0.tgz#202d91ee977d760ef83f4f416b280d568be84623" - integrity sha512-h/KjEZ3nK9wv1P1FSNb9G079jXrNYR0Ko+7XkOx85+gM24iZbPn0rh4vCftk+5QKY7y1uByFataBTmX7irEF1w== +"@babel/plugin-proposal-unicode-property-regex@^7.4.0", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz#501ffd9826c0b91da22690720722ac7cb1ca9c78" + integrity sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" + "@babel/helper-regex" "^7.4.4" regexpu-core "^4.5.4" "@babel/plugin-syntax-async-generators@^7.2.0": @@ -395,10 +395,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-async-to-generator@^7.2.0", "@babel/plugin-transform-async-to-generator@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.0.tgz#234fe3e458dce95865c0d152d256119b237834b0" - integrity sha512-EeaFdCeUULM+GPFEsf7pFcNSxM7hYjoj5fiYbyuiXobW4JhFnjAv9OWzNwHyHcKoPNpAfeRDuW6VyaXEDUBa7g== +"@babel/plugin-transform-async-to-generator@^7.4.0", "@babel/plugin-transform-async-to-generator@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.4.tgz#a3f1d01f2f21cadab20b33a82133116f14fb5894" + integrity sha512-YiqW2Li8TXmzgbXw+STsSqPBPFnGviiaSp6CYOq55X8GQ2SGVLrXB6pNid8HkqkZAzOH6knbai3snhP7v0fNwA== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -411,40 +411,40 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-block-scoping@^7.2.0", "@babel/plugin-transform-block-scoping@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.0.tgz#164df3bb41e3deb954c4ca32ffa9fcaa56d30bcb" - integrity sha512-AWyt3k+fBXQqt2qb9r97tn3iBwFpiv9xdAiG+Gr2HpAZpuayvbL55yWrsV3MyHvXk/4vmSiedhDRl1YI2Iy5nQ== +"@babel/plugin-transform-block-scoping@^7.4.0", "@babel/plugin-transform-block-scoping@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.4.tgz#c13279fabf6b916661531841a23c4b7dae29646d" + integrity sha512-jkTUyWZcTrwxu5DD4rWz6rDB5Cjdmgz6z7M7RLXOJyCUkFBawssDGcGh8M/0FTSB87avyJI1HsTwUXp9nKA1PA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" lodash "^4.17.11" -"@babel/plugin-transform-classes@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.2.tgz#6c90542f210ee975aa2aa8c8b5af7fa73a126953" - integrity sha512-gEZvgTy1VtcDOaQty1l10T3jQmJKlNVxLDCs+3rCVPr6nMkODLELxViq5X9l+rfxbie3XrfrMCYYY6eX3aOcOQ== +"@babel/plugin-transform-classes@7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.3.tgz#adc7a1137ab4287a555d429cc56ecde8f40c062c" + integrity sha512-PUaIKyFUDtG6jF5DUJOfkBdwAS/kFFV3XFk7Nn0a6vR7ZT8jYw5cGtIlat77wcnd0C6ViGqo/wyNf4ZHytF/nQ== dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-define-map" "^7.1.0" + "@babel/helper-define-map" "^7.4.0" "@babel/helper-function-name" "^7.1.0" "@babel/helper-optimise-call-expression" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.0.0" + "@babel/helper-replace-supers" "^7.4.0" + "@babel/helper-split-export-declaration" "^7.4.0" globals "^11.1.0" -"@babel/plugin-transform-classes@^7.2.0", "@babel/plugin-transform-classes@^7.4.3": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.3.tgz#adc7a1137ab4287a555d429cc56ecde8f40c062c" - integrity sha512-PUaIKyFUDtG6jF5DUJOfkBdwAS/kFFV3XFk7Nn0a6vR7ZT8jYw5cGtIlat77wcnd0C6ViGqo/wyNf4ZHytF/nQ== +"@babel/plugin-transform-classes@^7.4.3", "@babel/plugin-transform-classes@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.4.tgz#0ce4094cdafd709721076d3b9c38ad31ca715eb6" + integrity sha512-/e44eFLImEGIpL9qPxSRat13I5QNRgBLu2hOQJCF7VLy/otSM/sypV1+XaIw5+502RX/+6YaSAPmldk+nhHDPw== dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-define-map" "^7.4.0" + "@babel/helper-define-map" "^7.4.4" "@babel/helper-function-name" "^7.1.0" "@babel/helper-optimise-call-expression" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.4.0" - "@babel/helper-split-export-declaration" "^7.4.0" + "@babel/helper-replace-supers" "^7.4.4" + "@babel/helper-split-export-declaration" "^7.4.4" globals "^11.1.0" "@babel/plugin-transform-computed-properties@^7.2.0": @@ -454,27 +454,27 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-destructuring@7.3.2": - version "7.3.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.3.2.tgz#f2f5520be055ba1c38c41c0e094d8a461dd78f2d" - integrity sha512-Lrj/u53Ufqxl/sGxyjsJ2XNtNuEjDyjpqdhMNh5aZ+XFOdThL46KBj27Uem4ggoezSYBxKWAil6Hu8HtwqesYw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-destructuring@^7.2.0", "@babel/plugin-transform-destructuring@^7.4.3": +"@babel/plugin-transform-destructuring@7.4.3": version "7.4.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.4.3.tgz#1a95f5ca2bf2f91ef0648d5de38a8d472da4350f" integrity sha512-rVTLLZpydDFDyN4qnXdzwoVpk1oaXHIvPEOkOLyr88o7oHxVc/LyrnDx+amuBWGOwUb7D1s/uLsKBNTx08htZg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-dotall-regex@^7.2.0", "@babel/plugin-transform-dotall-regex@^7.4.3": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.3.tgz#fceff1c16d00c53d32d980448606f812cd6d02bf" - integrity sha512-9Arc2I0AGynzXRR/oPdSALv3k0rM38IMFyto7kOCwb5F9sLUt2Ykdo3V9yUPR+Bgr4kb6bVEyLkPEiBhzcTeoA== +"@babel/plugin-transform-destructuring@^7.4.3", "@babel/plugin-transform-destructuring@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.4.4.tgz#9d964717829cc9e4b601fc82a26a71a4d8faf20f" + integrity sha512-/aOx+nW0w8eHiEHm+BTERB2oJn5D127iye/SUQl7NjHy0lf+j7h4MKMMSOwdazGq9OxgiNADncE+SRJkCxjZpQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.4.3" + +"@babel/plugin-transform-dotall-regex@^7.4.3", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz#361a148bc951444312c69446d76ed1ea8e4450c3" + integrity sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.4" regexpu-core "^4.5.4" "@babel/plugin-transform-duplicate-keys@^7.2.0": @@ -492,25 +492,25 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-flow-strip-types@7.2.3": - version "7.2.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.2.3.tgz#e3ac2a594948454e7431c7db33e1d02d51b5cd69" - integrity sha512-xnt7UIk9GYZRitqCnsVMjQK1O2eKZwFB3CvvHjf5SGx6K6vr/MScCKQDnf1DxRaj501e3pXjti+inbSXX2ZUoQ== +"@babel/plugin-transform-flow-strip-types@7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.4.0.tgz#f3c59eecff68c99b9c96eaafe4fe9d1fa8947138" + integrity sha512-C4ZVNejHnfB22vI2TYN4RUp2oCmq6cSEAg4RygSvYZUECRqUu9O4PMEMNJ4wsemaRGg27BbgYctG4BZh+AgIHw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-flow" "^7.2.0" -"@babel/plugin-transform-for-of@^7.2.0", "@babel/plugin-transform-for-of@^7.4.3": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.3.tgz#c36ff40d893f2b8352202a2558824f70cd75e9fe" - integrity sha512-UselcZPwVWNSURnqcfpnxtMehrb8wjXYOimlYQPBnup/Zld426YzIhNEvuRsEWVHfESIECGrxoI6L5QqzuLH5Q== +"@babel/plugin-transform-for-of@^7.4.3", "@babel/plugin-transform-for-of@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556" + integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-function-name@^7.2.0", "@babel/plugin-transform-function-name@^7.4.3": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.3.tgz#130c27ec7fb4f0cba30e958989449e5ec8d22bbd" - integrity sha512-uT5J/3qI/8vACBR9I1GlAuU/JqBtWdfCrynuOkrWG6nCDieZd5przB1vfP59FRHBZQ9DC2IUfqr/xKqzOD5x0A== +"@babel/plugin-transform-function-name@^7.4.3", "@babel/plugin-transform-function-name@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad" + integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA== dependencies: "@babel/helper-function-name" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -537,21 +537,21 @@ "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-modules-commonjs@^7.2.0", "@babel/plugin-transform-modules-commonjs@^7.4.3": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.4.3.tgz#3917f260463ac08f8896aa5bd54403f6e1fed165" - integrity sha512-sMP4JqOTbMJMimqsSZwYWsMjppD+KRyDIUVW91pd7td0dZKAvPmhCaxhOzkzLParKwgQc7bdL9UNv+rpJB0HfA== +"@babel/plugin-transform-modules-commonjs@^7.4.3", "@babel/plugin-transform-modules-commonjs@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.4.4.tgz#0bef4713d30f1d78c2e59b3d6db40e60192cac1e" + integrity sha512-4sfBOJt58sEo9a2BQXnZq+Q3ZTSAUXyK3E30o36BOGnJ+tvJ6YSxF0PG6kERvbeISgProodWuI9UVG3/FMY6iw== dependencies: - "@babel/helper-module-transforms" "^7.4.3" + "@babel/helper-module-transforms" "^7.4.4" "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-simple-access" "^7.1.0" -"@babel/plugin-transform-modules-systemjs@^7.2.0", "@babel/plugin-transform-modules-systemjs@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.4.0.tgz#c2495e55528135797bc816f5d50f851698c586a1" - integrity sha512-gjPdHmqiNhVoBqus5qK60mWPp1CmYWp/tkh11mvb0rrys01HycEGD7NvvSoKXlWEfSM9TcL36CpsK8ElsADptQ== +"@babel/plugin-transform-modules-systemjs@^7.4.0", "@babel/plugin-transform-modules-systemjs@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.4.4.tgz#dc83c5665b07d6c2a7b224c00ac63659ea36a405" + integrity sha512-MSiModfILQc3/oqnG7NrP1jHaSPryO6tA2kOMmAQApz5dayPxWiHqmq4sWH2xF5LcQK56LlbKByCd8Aah/OIkQ== dependencies: - "@babel/helper-hoist-variables" "^7.4.0" + "@babel/helper-hoist-variables" "^7.4.4" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-modules-umd@^7.2.0": @@ -562,17 +562,17 @@ "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-named-capturing-groups-regex@^7.3.0", "@babel/plugin-transform-named-capturing-groups-regex@^7.4.2": - version "7.4.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.2.tgz#800391136d6cbcc80728dbdba3c1c6e46f86c12e" - integrity sha512-NsAuliSwkL3WO2dzWTOL1oZJHm0TM8ZY8ZSxk2ANyKkt5SQlToGA4pzctmq1BEjoacurdwZ3xp2dCQWJkME0gQ== +"@babel/plugin-transform-named-capturing-groups-regex@^7.4.2", "@babel/plugin-transform-named-capturing-groups-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.4.tgz#5611d96d987dfc4a3a81c4383bb173361037d68d" + integrity sha512-Ki+Y9nXBlKfhD+LXaRS7v95TtTGYRAf9Y1rTDiE75zf8YQz4GDaWRXosMfJBXxnk88mGFjWdCRIeqDbon7spYA== dependencies: regexp-tree "^0.1.0" -"@babel/plugin-transform-new-target@^7.0.0", "@babel/plugin-transform-new-target@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.0.tgz#67658a1d944edb53c8d4fa3004473a0dd7838150" - integrity sha512-6ZKNgMQmQmrEX/ncuCwnnw1yVGoaOW5KpxNhoWI7pCQdA0uZ0HqHGqenCUIENAnxRjy2WwNQ30gfGdIgqJXXqw== +"@babel/plugin-transform-new-target@^7.4.0", "@babel/plugin-transform-new-target@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5" + integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -584,12 +584,12 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-replace-supers" "^7.1.0" -"@babel/plugin-transform-parameters@^7.2.0", "@babel/plugin-transform-parameters@^7.4.3": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.3.tgz#e5ff62929fdf4cf93e58badb5e2430303003800d" - integrity sha512-ULJYC2Vnw96/zdotCZkMGr2QVfKpIT/4/K+xWWY0MbOJyMZuk660BGkr3bEKWQrrciwz6xpmft39nA4BF7hJuA== +"@babel/plugin-transform-parameters@^7.4.3", "@babel/plugin-transform-parameters@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16" + integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw== dependencies: - "@babel/helper-call-delegate" "^7.4.0" + "@babel/helper-call-delegate" "^7.4.4" "@babel/helper-get-function-arity" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -640,10 +640,10 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-jsx" "^7.2.0" -"@babel/plugin-transform-regenerator@^7.0.0", "@babel/plugin-transform-regenerator@^7.4.3": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.3.tgz#2a697af96887e2bbf5d303ab0221d139de5e739c" - integrity sha512-kEzotPuOpv6/iSlHroCDydPkKYw7tiJGKlmYp6iJn4a6C/+b2FdttlJsLKYxolYHgotTJ5G5UY5h0qey5ka3+A== +"@babel/plugin-transform-regenerator@^7.4.3", "@babel/plugin-transform-regenerator@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.4.tgz#5b4da4df79391895fca9e28f99e87e22cfc02072" + integrity sha512-Zz3w+pX1SI0KMIiqshFZkwnVGUhDZzpX2vtPzfJBKQQq8WsP/Xy9DNdELWivxcKOCX/Pywge4SiEaPaLtoDT4g== dependencies: regenerator-transform "^0.13.4" @@ -654,10 +654,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-runtime@7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.2.0.tgz#566bc43f7d0aedc880eaddbd29168d0f248966ea" - integrity sha512-jIgkljDdq4RYDnJyQsiWbdvGeei/0MOTtSHKO/rfbd/mXBxNpdlulMx49L0HQ4pug1fXannxoqCI+fYSle9eSw== +"@babel/plugin-transform-runtime@7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.4.3.tgz#4d6691690ecdc9f5cb8c3ab170a1576c1f556371" + integrity sha512-7Q61bU+uEI7bCUFReT1NKn7/X6sDQsZ7wL1sJ9IYMAO7cI+eg6x9re1cEw2fCRMbbTVyoeUKWSV1M6azEfKCfg== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -686,10 +686,10 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-regex" "^7.0.0" -"@babel/plugin-transform-template-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz#d87ed01b8eaac7a92473f608c97c089de2ba1e5b" - integrity sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg== +"@babel/plugin-transform-template-literals@^7.2.0", "@babel/plugin-transform-template-literals@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0" + integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g== dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -701,120 +701,125 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-typescript@^7.1.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.4.0.tgz#0389ec53a34e80f99f708c4ca311181449a68eb1" - integrity sha512-U7/+zKnRZg04ggM/Bm+xmu2B/PrwyDQTT/V89FXWYWNMxBDwSx56u6jtk9SEbfLFbZaEI72L+5LPvQjeZgFCrQ== +"@babel/plugin-transform-typescript@^7.3.2": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.4.4.tgz#93e9c3f2a546e6d3da1e9cc990e30791b807aa9f" + integrity sha512-rwDvjaMTx09WC0rXGBRlYSSkEHOKRrecY6hEr3SVIPKII8DVWXtapNAfAyMC0dovuO+zYArcAuKeu3q9DNRfzA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-typescript" "^7.2.0" -"@babel/plugin-transform-unicode-regex@^7.2.0", "@babel/plugin-transform-unicode-regex@^7.4.3": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.3.tgz#3868703fc0e8f443dda65654b298df576f7b863b" - integrity sha512-lnSNgkVjL8EMtnE8eSS7t2ku8qvKH3eqNf/IwIfnSPUqzgqYmRwzdsQWv4mNQAN9Nuo6Gz1Y0a4CSmdpu1Pp6g== +"@babel/plugin-transform-unicode-regex@^7.4.3", "@babel/plugin-transform-unicode-regex@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz#ab4634bb4f14d36728bf5978322b35587787970f" + integrity sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.4.3" + "@babel/helper-regex" "^7.4.4" regexpu-core "^4.5.4" -"@babel/preset-env@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.3.1.tgz#389e8ca6b17ae67aaf9a2111665030be923515db" - integrity sha512-FHKrD6Dxf30e8xgHQO0zJZpUPfVZg+Xwgz5/RdSWCbza9QLNk4Qbp40ctRoqDxml3O8RMzB1DU55SXeDG6PqHQ== +"@babel/preset-env@7.4.3": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.4.3.tgz#e71e16e123dc0fbf65a52cbcbcefd072fbd02880" + integrity sha512-FYbZdV12yHdJU5Z70cEg0f6lvtpZ8jFSDakTm7WXeJbLXh4R0ztGEu/SW7G1nJ2ZvKwDhz8YrbA84eYyprmGqw== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-async-generator-functions" "^7.2.0" "@babel/plugin-proposal-json-strings" "^7.2.0" - "@babel/plugin-proposal-object-rest-spread" "^7.3.1" + "@babel/plugin-proposal-object-rest-spread" "^7.4.3" "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.2.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.0" "@babel/plugin-syntax-async-generators" "^7.2.0" "@babel/plugin-syntax-json-strings" "^7.2.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" "@babel/plugin-transform-arrow-functions" "^7.2.0" - "@babel/plugin-transform-async-to-generator" "^7.2.0" + "@babel/plugin-transform-async-to-generator" "^7.4.0" "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.2.0" - "@babel/plugin-transform-classes" "^7.2.0" + "@babel/plugin-transform-block-scoping" "^7.4.0" + "@babel/plugin-transform-classes" "^7.4.3" "@babel/plugin-transform-computed-properties" "^7.2.0" - "@babel/plugin-transform-destructuring" "^7.2.0" - "@babel/plugin-transform-dotall-regex" "^7.2.0" + "@babel/plugin-transform-destructuring" "^7.4.3" + "@babel/plugin-transform-dotall-regex" "^7.4.3" "@babel/plugin-transform-duplicate-keys" "^7.2.0" "@babel/plugin-transform-exponentiation-operator" "^7.2.0" - "@babel/plugin-transform-for-of" "^7.2.0" - "@babel/plugin-transform-function-name" "^7.2.0" + "@babel/plugin-transform-for-of" "^7.4.3" + "@babel/plugin-transform-function-name" "^7.4.3" "@babel/plugin-transform-literals" "^7.2.0" + "@babel/plugin-transform-member-expression-literals" "^7.2.0" "@babel/plugin-transform-modules-amd" "^7.2.0" - "@babel/plugin-transform-modules-commonjs" "^7.2.0" - "@babel/plugin-transform-modules-systemjs" "^7.2.0" + "@babel/plugin-transform-modules-commonjs" "^7.4.3" + "@babel/plugin-transform-modules-systemjs" "^7.4.0" "@babel/plugin-transform-modules-umd" "^7.2.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.3.0" - "@babel/plugin-transform-new-target" "^7.0.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.2" + "@babel/plugin-transform-new-target" "^7.4.0" "@babel/plugin-transform-object-super" "^7.2.0" - "@babel/plugin-transform-parameters" "^7.2.0" - "@babel/plugin-transform-regenerator" "^7.0.0" + "@babel/plugin-transform-parameters" "^7.4.3" + "@babel/plugin-transform-property-literals" "^7.2.0" + "@babel/plugin-transform-regenerator" "^7.4.3" + "@babel/plugin-transform-reserved-words" "^7.2.0" "@babel/plugin-transform-shorthand-properties" "^7.2.0" "@babel/plugin-transform-spread" "^7.2.0" "@babel/plugin-transform-sticky-regex" "^7.2.0" "@babel/plugin-transform-template-literals" "^7.2.0" "@babel/plugin-transform-typeof-symbol" "^7.2.0" - "@babel/plugin-transform-unicode-regex" "^7.2.0" - browserslist "^4.3.4" + "@babel/plugin-transform-unicode-regex" "^7.4.3" + "@babel/types" "^7.4.0" + browserslist "^4.5.2" + core-js-compat "^3.0.0" invariant "^2.2.2" js-levenshtein "^1.1.3" - semver "^5.3.0" + semver "^5.5.0" "@babel/preset-env@^7.1.6": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.4.3.tgz#e71e16e123dc0fbf65a52cbcbcefd072fbd02880" - integrity sha512-FYbZdV12yHdJU5Z70cEg0f6lvtpZ8jFSDakTm7WXeJbLXh4R0ztGEu/SW7G1nJ2ZvKwDhz8YrbA84eYyprmGqw== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.4.4.tgz#b6f6825bfb27b3e1394ca3de4f926482722c1d6f" + integrity sha512-FU1H+ACWqZZqfw1x2G1tgtSSYSfxJLkpaUQL37CenULFARDo+h4xJoVHzRoHbK+85ViLciuI7ME4WTIhFRBBlw== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-async-generator-functions" "^7.2.0" "@babel/plugin-proposal-json-strings" "^7.2.0" - "@babel/plugin-proposal-object-rest-spread" "^7.4.3" + "@babel/plugin-proposal-object-rest-spread" "^7.4.4" "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" "@babel/plugin-syntax-async-generators" "^7.2.0" "@babel/plugin-syntax-json-strings" "^7.2.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" "@babel/plugin-transform-arrow-functions" "^7.2.0" - "@babel/plugin-transform-async-to-generator" "^7.4.0" + "@babel/plugin-transform-async-to-generator" "^7.4.4" "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.4.0" - "@babel/plugin-transform-classes" "^7.4.3" + "@babel/plugin-transform-block-scoping" "^7.4.4" + "@babel/plugin-transform-classes" "^7.4.4" "@babel/plugin-transform-computed-properties" "^7.2.0" - "@babel/plugin-transform-destructuring" "^7.4.3" - "@babel/plugin-transform-dotall-regex" "^7.4.3" + "@babel/plugin-transform-destructuring" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" "@babel/plugin-transform-duplicate-keys" "^7.2.0" "@babel/plugin-transform-exponentiation-operator" "^7.2.0" - "@babel/plugin-transform-for-of" "^7.4.3" - "@babel/plugin-transform-function-name" "^7.4.3" + "@babel/plugin-transform-for-of" "^7.4.4" + "@babel/plugin-transform-function-name" "^7.4.4" "@babel/plugin-transform-literals" "^7.2.0" "@babel/plugin-transform-member-expression-literals" "^7.2.0" "@babel/plugin-transform-modules-amd" "^7.2.0" - "@babel/plugin-transform-modules-commonjs" "^7.4.3" - "@babel/plugin-transform-modules-systemjs" "^7.4.0" + "@babel/plugin-transform-modules-commonjs" "^7.4.4" + "@babel/plugin-transform-modules-systemjs" "^7.4.4" "@babel/plugin-transform-modules-umd" "^7.2.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.2" - "@babel/plugin-transform-new-target" "^7.4.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.4" + "@babel/plugin-transform-new-target" "^7.4.4" "@babel/plugin-transform-object-super" "^7.2.0" - "@babel/plugin-transform-parameters" "^7.4.3" + "@babel/plugin-transform-parameters" "^7.4.4" "@babel/plugin-transform-property-literals" "^7.2.0" - "@babel/plugin-transform-regenerator" "^7.4.3" + "@babel/plugin-transform-regenerator" "^7.4.4" "@babel/plugin-transform-reserved-words" "^7.2.0" "@babel/plugin-transform-shorthand-properties" "^7.2.0" "@babel/plugin-transform-spread" "^7.2.0" "@babel/plugin-transform-sticky-regex" "^7.2.0" - "@babel/plugin-transform-template-literals" "^7.2.0" + "@babel/plugin-transform-template-literals" "^7.4.4" "@babel/plugin-transform-typeof-symbol" "^7.2.0" - "@babel/plugin-transform-unicode-regex" "^7.4.3" - "@babel/types" "^7.4.0" + "@babel/plugin-transform-unicode-regex" "^7.4.4" + "@babel/types" "^7.4.4" browserslist "^4.5.2" core-js-compat "^3.0.0" invariant "^2.2.2" @@ -832,56 +837,56 @@ "@babel/plugin-transform-react-jsx-self" "^7.0.0" "@babel/plugin-transform-react-jsx-source" "^7.0.0" -"@babel/preset-typescript@7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.1.0.tgz#49ad6e2084ff0bfb5f1f7fb3b5e76c434d442c7f" - integrity sha512-LYveByuF9AOM8WrsNne5+N79k1YxjNB6gmpCQsnuSBAcV8QUeB+ZUxQzL7Rz7HksPbahymKkq2qBR+o36ggFZA== +"@babel/preset-typescript@7.3.3": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.3.3.tgz#88669911053fa16b2b276ea2ede2ca603b3f307a" + integrity sha512-mzMVuIP4lqtn4du2ynEfdO0+RYcslwrZiJHXu4MGaC1ctJiW2fyaeDrtjJGs7R/KebZ1sgowcIoWf4uRpEfKEg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-transform-typescript" "^7.1.0" + "@babel/plugin-transform-typescript" "^7.3.2" -"@babel/runtime@7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.3.1.tgz#574b03e8e8a9898eaf4a872a92ea20b7846f6f2a" - integrity sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA== - dependencies: - regenerator-runtime "^0.12.0" - -"@babel/runtime@^7.0.0", "@babel/runtime@^7.3.4": +"@babel/runtime@7.4.3": version "7.4.3" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.4.3.tgz#79888e452034223ad9609187a0ad1fe0d2ad4bdc" integrity sha512-9lsJwJLxDh/T3Q3SZszfWOTkk3pHbkmH+3KY+zwIDmsNlxsumuhS2TH3NIpktU4kNvfzy+k3eLT7aTJSPTo0OA== dependencies: regenerator-runtime "^0.13.2" -"@babel/template@^7.0.0", "@babel/template@^7.1.0", "@babel/template@^7.2.2", "@babel/template@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.0.tgz#12474e9c077bae585c5d835a95c0b0b790c25c8b" - integrity sha512-SOWwxxClTTh5NdbbYZ0BmaBVzxzTh2tO/TeLTbF6MO6EzVhHTnff8CdBXx3mEtazFBoysmEM6GU/wF+SuSx4Fw== +"@babel/runtime@^7.0.0", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.2": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.4.4.tgz#dc2e34982eb236803aa27a07fea6857af1b9171d" + integrity sha512-w0+uT71b6Yi7i5SE0co4NioIpSYS6lLiXvCzWzGSKvpK5vdQtCbICHMj+gbAKAOtxiV6HsVh/MBdaF9EQ6faSg== + dependencies: + regenerator-runtime "^0.13.2" + +"@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" + integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.4.0" - "@babel/types" "^7.4.0" + "@babel/parser" "^7.4.4" + "@babel/types" "^7.4.4" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.2.2", "@babel/traverse@^7.4.0", "@babel/traverse@^7.4.3": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.3.tgz#1a01f078fc575d589ff30c0f71bf3c3d9ccbad84" - integrity sha512-HmA01qrtaCwwJWpSKpA948cBvU5BrmviAief/b3AVw936DtcdsTexlbyzNuDnthwhOQ37xshn7hvQaEQk7ISYQ== +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.4.tgz#0776f038f6d78361860b6823887d4f3937133fe8" + integrity sha512-Gw6qqkw/e6AGzlyj9KnkabJX7VcubqPtkUQVAwkc0wUMldr3A/hezNB3Rc5eIvId95iSGkGIOe5hh1kMKf951A== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.4.0" + "@babel/generator" "^7.4.4" "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.4.0" - "@babel/parser" "^7.4.3" - "@babel/types" "^7.4.0" + "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/parser" "^7.4.4" + "@babel/types" "^7.4.4" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.11" -"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.2.2", "@babel/types@^7.3.0", "@babel/types@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.0.tgz#670724f77d24cce6cc7d8cf64599d511d164894c" - integrity sha512-aPvkXyU2SPOnztlgo8n9cEiXW755mgyvueUPcpStqdzoSPm0fjO0vQBjLkt3JKJW7ufikfcnMTTPsN1xaTsBPA== +"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.4.tgz#8db9e9a629bb7c29370009b4b779ed93fe57d5f0" + integrity sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ== dependencies: esutils "^2.0.2" lodash "^4.17.11" @@ -905,6 +910,32 @@ resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-9.0.1.tgz#c27b391d8457d1e893f1eddeaf5e5412d12ffbb5" integrity sha512-6It2EVfGskxZCQhuykrfnALg7oVeiI6KclWSmGDqB0AiInVrTGB9Jp9i4/Ad21u9Jde/voVQz6eFX/eSg/UsPA== +"@hapi/address@2.x.x": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.0.0.tgz#9f05469c88cb2fd3dcd624776b54ee95c312126a" + integrity sha512-mV6T0IYqb0xL1UALPFplXYQmR0twnXG0M6jUswpquqT2sD12BOiCiLy3EvMp/Fy7s3DZElC4/aPjEjo2jeZpvw== + +"@hapi/hoek@6.x.x": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-6.2.1.tgz#d3a66329159af879bfdf0b0cff2229c43c5a3451" + integrity sha512-+ryw4GU9pjr1uT6lBuErHJg3NYqzwJTvZ75nKuJijEzpd00Uqi6oiawTGDDf5Hl0zWmI7qHfOtaqB0kpQZJQzA== + +"@hapi/joi@^15.0.0": + version "15.0.2" + resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.0.2.tgz#2989041a06ee2941cf6dd247ffff8032640d16bb" + integrity sha512-c3NwWBHzUnEavcaCpGaepOcygS17pSnOh5ZYUBz+sfqCP7kC9haLcRnd3U8KFC4TbLFmRwKnmYglsc47m9yapg== + dependencies: + "@hapi/address" "2.x.x" + "@hapi/hoek" "6.x.x" + "@hapi/topo" "3.x.x" + +"@hapi/topo@3.x.x": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.0.tgz#5c47cd9637c2953db185aa957a27bcb2a8b7a6f8" + integrity sha512-gZDI/eXOIk8kP2PkUKjWu9RW8GGVd2Hkgjxyr/S7Z+JF+0mr7bAlbw+DkTRxnD580o8Kqxlnba9wvqp5aOHBww== + dependencies: + "@hapi/hoek" "6.x.x" + "@jest/console@^24.7.1": version "24.7.1" resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.7.1.tgz#32a9e42535a97aedfe037e725bd67e954b459545" @@ -914,32 +945,32 @@ chalk "^2.0.1" slash "^2.0.0" -"@jest/core@^24.7.1": - version "24.7.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.7.1.tgz#6707f50db238d0c5988860680e2e414df0032024" - integrity sha512-ivlZ8HX/FOASfHcb5DJpSPFps8ydfUYzLZfgFFqjkLijYysnIEOieg72YRhO4ZUB32xu40hsSMmaw+IGYeKONA== +"@jest/core@^24.8.0": + version "24.8.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.8.0.tgz#fbbdcd42a41d0d39cddbc9f520c8bab0c33eed5b" + integrity sha512-R9rhAJwCBQzaRnrRgAdVfnglUuATXdwTRsYqs6NMdVcAl5euG8LtWDe+fVkN27YfKVBW61IojVsXKaOmSnqd/A== dependencies: "@jest/console" "^24.7.1" - "@jest/reporters" "^24.7.1" - "@jest/test-result" "^24.7.1" - "@jest/transform" "^24.7.1" - "@jest/types" "^24.7.0" + "@jest/reporters" "^24.8.0" + "@jest/test-result" "^24.8.0" + "@jest/transform" "^24.8.0" + "@jest/types" "^24.8.0" ansi-escapes "^3.0.0" chalk "^2.0.1" exit "^0.1.2" graceful-fs "^4.1.15" - jest-changed-files "^24.7.0" - jest-config "^24.7.1" - jest-haste-map "^24.7.1" - jest-message-util "^24.7.1" + jest-changed-files "^24.8.0" + jest-config "^24.8.0" + jest-haste-map "^24.8.0" + jest-message-util "^24.8.0" jest-regex-util "^24.3.0" - jest-resolve-dependencies "^24.7.1" - jest-runner "^24.7.1" - jest-runtime "^24.7.1" - jest-snapshot "^24.7.1" - jest-util "^24.7.1" - jest-validate "^24.7.0" - jest-watcher "^24.7.1" + jest-resolve-dependencies "^24.8.0" + jest-runner "^24.8.0" + jest-runtime "^24.8.0" + jest-snapshot "^24.8.0" + jest-util "^24.8.0" + jest-validate "^24.8.0" + jest-watcher "^24.8.0" micromatch "^3.1.10" p-each-series "^1.0.0" pirates "^4.0.1" @@ -947,45 +978,46 @@ rimraf "^2.5.4" strip-ansi "^5.0.0" -"@jest/environment@^24.7.1": - version "24.7.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.7.1.tgz#9b9196bc737561f67ac07817d4c5ece772e33135" - integrity sha512-wmcTTYc4/KqA+U5h1zQd5FXXynfa7VGP2NfF+c6QeGJ7c+2nStgh65RQWNX62SC716dTtqheTRrZl0j+54oGHw== - dependencies: - "@jest/fake-timers" "^24.7.1" - "@jest/transform" "^24.7.1" - "@jest/types" "^24.7.0" - jest-mock "^24.7.0" - -"@jest/fake-timers@^24.7.1": - version "24.7.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.7.1.tgz#56e5d09bdec09ee81050eaff2794b26c71d19db2" - integrity sha512-4vSQJDKfR2jScOe12L9282uiwuwQv9Lk7mgrCSZHA9evB9efB/qx8i0KJxsAKtp8fgJYBJdYY7ZU6u3F4/pyjA== - dependencies: - "@jest/types" "^24.7.0" - jest-message-util "^24.7.1" - jest-mock "^24.7.0" - -"@jest/reporters@^24.7.1": - version "24.7.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.7.1.tgz#38ac0b096cd691bbbe3051ddc25988d42e37773a" - integrity sha512-bO+WYNwHLNhrjB9EbPL4kX/mCCG4ZhhfWmO3m4FSpbgr7N83MFejayz30kKjgqr7smLyeaRFCBQMbXpUgnhAJw== - dependencies: - "@jest/environment" "^24.7.1" - "@jest/test-result" "^24.7.1" - "@jest/transform" "^24.7.1" - "@jest/types" "^24.7.0" +"@jest/environment@^24.8.0": + version "24.8.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.8.0.tgz#0342261383c776bdd652168f68065ef144af0eac" + integrity sha512-vlGt2HLg7qM+vtBrSkjDxk9K0YtRBi7HfRFaDxoRtyi+DyVChzhF20duvpdAnKVBV6W5tym8jm0U9EfXbDk1tw== + dependencies: + "@jest/fake-timers" "^24.8.0" + "@jest/transform" "^24.8.0" + "@jest/types" "^24.8.0" + jest-mock "^24.8.0" + +"@jest/fake-timers@^24.8.0": + version "24.8.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.8.0.tgz#2e5b80a4f78f284bcb4bd5714b8e10dd36a8d3d1" + integrity sha512-2M4d5MufVXwi6VzZhJ9f5S/wU4ud2ck0kxPof1Iz3zWx6Y+V2eJrES9jEktB6O3o/oEyk+il/uNu9PvASjWXQw== + dependencies: + "@jest/types" "^24.8.0" + jest-message-util "^24.8.0" + jest-mock "^24.8.0" + +"@jest/reporters@^24.8.0": + version "24.8.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.8.0.tgz#075169cd029bddec54b8f2c0fc489fd0b9e05729" + integrity sha512-eZ9TyUYpyIIXfYCrw0UHUWUvE35vx5I92HGMgS93Pv7du+GHIzl+/vh8Qj9MCWFK/4TqyttVBPakWMOfZRIfxw== + dependencies: + "@jest/environment" "^24.8.0" + "@jest/test-result" "^24.8.0" + "@jest/transform" "^24.8.0" + "@jest/types" "^24.8.0" chalk "^2.0.1" exit "^0.1.2" glob "^7.1.2" - istanbul-api "^2.1.1" istanbul-lib-coverage "^2.0.2" istanbul-lib-instrument "^3.0.1" + istanbul-lib-report "^2.0.4" istanbul-lib-source-maps "^3.0.1" - jest-haste-map "^24.7.1" - jest-resolve "^24.7.1" - jest-runtime "^24.7.1" - jest-util "^24.7.1" + istanbul-reports "^2.1.1" + jest-haste-map "^24.8.0" + jest-resolve "^24.8.0" + jest-runtime "^24.8.0" + jest-util "^24.8.0" jest-worker "^24.6.0" node-notifier "^5.2.1" slash "^2.0.0" @@ -1001,52 +1033,53 @@ graceful-fs "^4.1.15" source-map "^0.6.0" -"@jest/test-result@^24.7.1": - version "24.7.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.7.1.tgz#19eacdb29a114300aed24db651e5d975f08b6bbe" - integrity sha512-3U7wITxstdEc2HMfBX7Yx3JZgiNBubwDqQMh+BXmZXHa3G13YWF3p6cK+5g0hGkN3iufg/vGPl3hLxQXD74Npg== +"@jest/test-result@^24.8.0": + version "24.8.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.8.0.tgz#7675d0aaf9d2484caa65e048d9b467d160f8e9d3" + integrity sha512-+YdLlxwizlfqkFDh7Mc7ONPQAhA4YylU1s529vVM1rsf67vGZH/2GGm5uO8QzPeVyaVMobCQ7FTxl38QrKRlng== dependencies: "@jest/console" "^24.7.1" - "@jest/types" "^24.7.0" + "@jest/types" "^24.8.0" "@types/istanbul-lib-coverage" "^2.0.0" -"@jest/test-sequencer@^24.7.1": - version "24.7.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.7.1.tgz#9c18e428e1ad945fa74f6233a9d35745ca0e63e0" - integrity sha512-84HQkCpVZI/G1zq53gHJvSmhUer4aMYp9tTaffW28Ih5OxfCg8hGr3nTSbL1OhVDRrFZwvF+/R9gY6JRkDUpUA== +"@jest/test-sequencer@^24.8.0": + version "24.8.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.8.0.tgz#2f993bcf6ef5eb4e65e8233a95a3320248cf994b" + integrity sha512-OzL/2yHyPdCHXEzhoBuq37CE99nkme15eHkAzXRVqthreWZamEMA0WoetwstsQBCXABhczpK03JNbc4L01vvLg== dependencies: - "@jest/test-result" "^24.7.1" - jest-haste-map "^24.7.1" - jest-runner "^24.7.1" - jest-runtime "^24.7.1" + "@jest/test-result" "^24.8.0" + jest-haste-map "^24.8.0" + jest-runner "^24.8.0" + jest-runtime "^24.8.0" -"@jest/transform@^24.7.1": - version "24.7.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.7.1.tgz#872318f125bcfab2de11f53b465ab1aa780789c2" - integrity sha512-EsOUqP9ULuJ66IkZQhI5LufCHlTbi7hrcllRMUEV/tOgqBVQi93+9qEvkX0n8mYpVXQ8VjwmICeRgg58mrtIEw== +"@jest/transform@^24.8.0": + version "24.8.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.8.0.tgz#628fb99dce4f9d254c6fd9341e3eea262e06fef5" + integrity sha512-xBMfFUP7TortCs0O+Xtez2W7Zu1PLH9bvJgtraN1CDST6LBM/eTOZ9SfwS/lvV8yOfcDpFmwf9bq5cYbXvqsvA== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^24.7.0" + "@jest/types" "^24.8.0" babel-plugin-istanbul "^5.1.0" chalk "^2.0.1" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.1.15" - jest-haste-map "^24.7.1" + jest-haste-map "^24.8.0" jest-regex-util "^24.3.0" - jest-util "^24.7.1" + jest-util "^24.8.0" micromatch "^3.1.10" realpath-native "^1.1.0" slash "^2.0.0" source-map "^0.6.1" write-file-atomic "2.4.1" -"@jest/types@^24.7.0": - version "24.7.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.7.0.tgz#c4ec8d1828cdf23234d9b4ee31f5482a3f04f48b" - integrity sha512-ipJUa2rFWiKoBqMKP63Myb6h9+iT3FHRTF2M8OR6irxWzItisa8i4dcSg14IbvmXUnBlHBlUQPYUHWyX3UPpYA== +"@jest/types@^24.7.0", "@jest/types@^24.8.0": + version "24.8.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.8.0.tgz#f31e25948c58f0abd8c845ae26fcea1491dea7ad" + integrity sha512-g17UxVr2YfBtaMUxn9u/4+siG1ptg9IGYAYwvpwn61nBg779RXnjE/m7CxYcIzEt0AbHZZAHSEZNhkE2WxURVg== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" "@types/yargs" "^12.0.9" "@mrmlnc/readdir-enhanced@^2.2.1": @@ -1200,15 +1233,30 @@ dependencies: "@babel/types" "^7.3.0" -"@types/istanbul-lib-coverage@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.0.tgz#1eb8c033e98cf4e1a4cedcaf8bcafe8cb7591e85" - integrity sha512-eAtOAFZefEnfJiRFQBGw1eYqa5GTLCZ1y86N0XSI/D6EB+E8z6VPV/UL7Gi5UEclFqoQk+6NRqEDsfmDLXn8sg== +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" + integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg== + +"@types/istanbul-lib-report@*": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#e5471e7fa33c61358dd38426189c037a58433b8c" + integrity sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz#7a8cbf6a406f36c8add871625b278eaf0b0d255a" + integrity sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA== + dependencies: + "@types/istanbul-lib-coverage" "*" + "@types/istanbul-lib-report" "*" "@types/node@*": - version "11.13.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-11.13.6.tgz#37ec75690830acb0d74ce3c6c43caab787081e85" - integrity sha512-Xoo/EBzEe8HxTSwaZNLZjaW6M6tA/+GmD3/DZ6uo8qSaolE/9Oarko0oV1fVfrLqOz0tx0nXJB4rdD5c+vixLw== + version "12.0.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.0.tgz#d11813b9c0ff8aaca29f04cbc12817f4c7d656e5" + integrity sha512-Jrb/x3HT4PTJp6a4avhmJCDEVrPdqLfl3e8GGMbpkGGdwAV5UGlIs4vVEfsHHfylZVOKZWpOqmqFH8CbfOZ6kg== "@types/q@^1.5.1": version "1.5.2" @@ -1441,12 +1489,12 @@ abbrev@1: integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== accepts@~1.3.4, accepts@~1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" - integrity sha1-63d99gEXI6OxTopywIBcjoZ0a9I= + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== dependencies: - mime-types "~2.1.18" - negotiator "0.6.1" + mime-types "~2.1.24" + negotiator "0.6.2" acorn-dynamic-import@^4.0.0: version "4.0.0" @@ -1481,11 +1529,16 @@ acorn@^6.0.1, acorn@^6.0.4, acorn@^6.0.5, acorn@^6.0.7: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA== -address@1.0.3, address@^1.0.1: +address@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9" integrity sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg== +address@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/address/-/address-1.1.0.tgz#ef8e047847fcd2c5b6f50c16965f924fd99fe709" + integrity sha512-4diPfzWbLEIElVG4AnqP+00SULlPzNuyJFNnmMrLgyaxG6tZXJ1sn7mjBu4fHrJE+Yp/jgylOweJn2xsLMFggQ== + ajv-errors@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" @@ -1561,13 +1614,6 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -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 "^2.0.0" - aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -1698,10 +1744,11 @@ assert-plus@1.0.0, assert-plus@^1.0.0: integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= assert@^1.1.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" - integrity sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE= + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== dependencies: + object-assign "^4.1.1" util "0.10.3" assign-symbols@^1.0.0: @@ -1734,13 +1781,6 @@ async@^1.5.2: resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= -async@^2.6.1: - version "2.6.2" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" - integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg== - dependencies: - lodash "^4.17.11" - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -1808,13 +1848,13 @@ babel-extract-comments@^1.0.0: dependencies: babylon "^6.18.0" -babel-jest@24.7.1, babel-jest@^24.7.1: - version "24.7.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.7.1.tgz#73902c9ff15a7dfbdc9994b0b17fcefd96042178" - integrity sha512-GPnLqfk8Mtt0i4OemjWkChi73A3ALs4w2/QbG64uAj8b5mmwzxc7jbJVRZt8NJkxi6FopVHog9S3xX6UJKb2qg== +babel-jest@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.8.0.tgz#5c15ff2b28e20b0f45df43fe6b7f2aae93dba589" + integrity sha512-+5/kaZt4I9efoXzPlZASyK/lN9qdRKmmUav9smVc0ruPQD7IsfucQ87gpOE8mn2jbDuS6M/YOW6n3v9ZoIfgnw== dependencies: - "@jest/transform" "^24.7.1" - "@jest/types" "^24.7.0" + "@jest/transform" "^24.8.0" + "@jest/types" "^24.8.0" "@types/babel__core" "^7.1.0" babel-plugin-istanbul "^5.1.0" babel-preset-jest "^24.6.0" @@ -1839,13 +1879,13 @@ babel-plugin-dynamic-import-node@2.2.0: object.assign "^4.1.0" babel-plugin-istanbul@^5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.2.tgz#d8c2e2e83f72695d6bfdcd297719c66161d5f0f9" - integrity sha512-U3ZVajC+Z69Gim7ZzmD4Wcsq76i/1hqDamBfowc1tWzWjybRy70iWfngP2ME+1CrgcgZ/+muIbPY/Yi0dxdIkQ== + version "5.1.4" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.4.tgz#841d16b9a58eeb407a0ddce622ba02fe87a752ba" + integrity sha512-dySz4VJMH+dpndj0wjJ8JPs/7i1TdSPb1nRrn56/92pKOF9VKC1FMFJmMXjzlGGusnCAqujP6PBCiKq0sVA+YQ== dependencies: find-up "^3.0.0" - istanbul-lib-instrument "^3.2.0" - test-exclude "^5.2.2" + istanbul-lib-instrument "^3.3.0" + test-exclude "^5.2.3" babel-plugin-jest-hoist@^24.6.0: version "24.6.0" @@ -1854,18 +1894,19 @@ babel-plugin-jest-hoist@^24.6.0: dependencies: "@types/babel__traverse" "^7.0.6" -babel-plugin-macros@2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.5.0.tgz#01f4d3b50ed567a67b80a30b9da066e94f4097b6" - integrity sha512-BWw0lD0kVZAXRD3Od1kMrdmfudqzDzYv2qrN3l2ISR1HVp1EgLKfbOrYV9xmY5k3qx3RIu5uPAUZZZHpo0o5Iw== +babel-plugin-macros@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.5.1.tgz#4a119ac2c2e19b458c259b9accd7ee34fd57ec6f" + integrity sha512-xN3KhAxPzsJ6OQTktCanNpIFnnMsCV+t8OloKxIL72D6+SUZYFn9qfklPgef5HyyDtzYZqqb+fs1S12+gQY82Q== dependencies: - cosmiconfig "^5.0.5" - resolve "^1.8.1" + "@babel/runtime" "^7.4.2" + cosmiconfig "^5.2.0" + resolve "^1.10.0" -babel-plugin-named-asset-import@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.1.tgz#5ec13ec446d0a1e5bb6c57a1f94c9cdedb0c50d6" - integrity sha512-vzZlo+yEB5YHqI6CRRTDojeT43J3Wf3C/MVkZW5UlbSeIIVUYRKtxaFT2L/VTv9mbIyatCW39+9g/SZolvwRUQ== +babel-plugin-named-asset-import@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.2.tgz#20978ed446b8e1bf4a2f42d0a94c0ece85f75f4f" + integrity sha512-CxwvxrZ9OirpXQ201Ec57OmGhmI8/ui/GwTDy0hSp6CmRvgRC0pSair6Z04Ck+JStA0sMPZzSJ3uE4n17EXpPQ== babel-plugin-syntax-object-rest-spread@^6.8.0: version "6.13.0" @@ -1893,29 +1934,28 @@ babel-preset-jest@^24.6.0: "@babel/plugin-syntax-object-rest-spread" "^7.0.0" babel-plugin-jest-hoist "^24.6.0" -babel-preset-react-app@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-7.0.2.tgz#d01ae973edc93b9f1015cb0236dd55889a584308" - integrity sha512-mwCk/u2wuiO8qQqblN5PlDa44taY0acq7hw6W+a70W522P7a9mIcdggL1fe5/LgAT7tqCq46q9wwhqaMoYKslQ== +babel-preset-react-app@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-8.0.0.tgz#930b6e28cdcfdff97ddb8bef9226d504f244d326" + integrity sha512-6Dmj7e8l7eWE+R6sKKLRrGEQXMfcBqBYlphaAgT1ml8qT1NEP+CyTZyfjmgKGqHZfwH3RQCUOuP6y4mpGc7tgg== dependencies: - "@babel/core" "7.2.2" - "@babel/plugin-proposal-class-properties" "7.3.0" - "@babel/plugin-proposal-decorators" "7.3.0" - "@babel/plugin-proposal-object-rest-spread" "7.3.2" + "@babel/core" "7.4.3" + "@babel/plugin-proposal-class-properties" "7.4.0" + "@babel/plugin-proposal-decorators" "7.4.0" + "@babel/plugin-proposal-object-rest-spread" "7.4.3" "@babel/plugin-syntax-dynamic-import" "7.2.0" - "@babel/plugin-transform-classes" "7.2.2" - "@babel/plugin-transform-destructuring" "7.3.2" - "@babel/plugin-transform-flow-strip-types" "7.2.3" + "@babel/plugin-transform-classes" "7.4.3" + "@babel/plugin-transform-destructuring" "7.4.3" + "@babel/plugin-transform-flow-strip-types" "7.4.0" "@babel/plugin-transform-react-constant-elements" "7.2.0" "@babel/plugin-transform-react-display-name" "7.2.0" - "@babel/plugin-transform-runtime" "7.2.0" - "@babel/preset-env" "7.3.1" + "@babel/plugin-transform-runtime" "7.4.3" + "@babel/preset-env" "7.4.3" "@babel/preset-react" "7.0.0" - "@babel/preset-typescript" "7.1.0" - "@babel/runtime" "7.3.1" - babel-loader "8.0.5" + "@babel/preset-typescript" "7.3.3" + "@babel/runtime" "7.4.3" babel-plugin-dynamic-import-node "2.2.0" - babel-plugin-macros "2.5.0" + babel-plugin-macros "2.5.1" babel-plugin-transform-react-remove-prop-types "0.4.24" babel-runtime@^6.26.0: @@ -1932,9 +1972,9 @@ babylon@^6.18.0: integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== bail@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.3.tgz#63cfb9ddbac829b02a3128cd53224be78e6c21a3" - integrity sha512-1X8CnjFVQ+a+KW36uBNMTU5s8+v5FzeqrP7hTG5aTb4aPreSbZJlhwPon9VKMuEVgV++JM+SQrALY3kr7eswdg== + version "1.0.4" + resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.4.tgz#7181b66d508aa3055d3f6c13f0a0c720641dde9b" + integrity sha512-S8vuDB4w6YpRhICUDET3guPlQpaJl7od94tpZ0Fvnyp+MKW/HyDTcRDck+29C9g+d/qQHnddRH3+94kZdrW0Ww== balanced-match@^1.0.0: version "1.0.0" @@ -2124,23 +2164,23 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@4.4.1: - version "4.4.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.4.1.tgz#42e828954b6b29a7a53e352277be429478a69062" - integrity sha512-pEBxEXg7JwaakBXjATYw/D1YZh4QUSCX/Mnd/wnqSRPPSi1U39iDhDoKGoBUcraKdxDlrYqJxSI5nNvD+dWP2A== +browserslist@4.5.4: + version "4.5.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.5.4.tgz#166c4ecef3b51737a42436ea8002aeea466ea2c7" + integrity sha512-rAjx494LMjqKnMPhFkuLmLp8JWEX0o8ADTGeAbOqaF+XCvYLreZrG5uVjnPBlAQ8REZK4pzXGvp0bWgrFtKaag== dependencies: - caniuse-lite "^1.0.30000929" - electron-to-chromium "^1.3.103" - node-releases "^1.1.3" + caniuse-lite "^1.0.30000955" + electron-to-chromium "^1.3.122" + node-releases "^1.1.13" -browserslist@^4.0.0, browserslist@^4.1.1, browserslist@^4.3.4, browserslist@^4.4.2, browserslist@^4.5.2, browserslist@^4.5.4: - version "4.5.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.5.5.tgz#fe1a352330d2490d5735574c149a85bc18ef9b82" - integrity sha512-0QFO1r/2c792Ohkit5XI8Cm8pDtZxgNl2H6HU4mHrpYz7314pEYcsAVVatM0l/YmxPnEzh9VygXouj4gkFUTKA== +browserslist@^4.0.0, browserslist@^4.1.1, browserslist@^4.4.2, browserslist@^4.5.2, browserslist@^4.5.4: + version "4.5.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.5.6.tgz#ea42e8581ca2513fa7f371d4dd66da763938163d" + integrity sha512-o/hPOtbU9oX507lIqon+UvPYqpx3mHc8cV3QemSBTXwkG8gSQSK6UKvXcE/DcleU3+A59XTUHyCvZ5qGy8xVAg== dependencies: - caniuse-lite "^1.0.30000960" - electron-to-chromium "^1.3.124" - node-releases "^1.1.14" + caniuse-lite "^1.0.30000963" + electron-to-chromium "^1.3.127" + node-releases "^1.1.17" bser@^2.0.0: version "2.0.0" @@ -2275,10 +2315,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000929, caniuse-lite@^1.0.30000939, caniuse-lite@^1.0.30000957, caniuse-lite@^1.0.30000960: - version "1.0.30000962" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000962.tgz#6c10c3ab304b89bea905e66adf98c0905088ee44" - integrity sha512-WXYsW38HK+6eaj5IZR16Rn91TGhU3OhbwjKZvJ4HN/XBIABLKfbij9Mnd3pM0VEwZSlltWjoWg3I8FQ0DGgNOA== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000939, caniuse-lite@^1.0.30000955, caniuse-lite@^1.0.30000957, caniuse-lite@^1.0.30000963: + version "1.0.30000967" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000967.tgz#a5039577806fccee80a04aaafb2c0890b1ee2f73" + integrity sha512-rUBIbap+VJfxTzrM4akJ00lkvVb5/n5v3EGXfWzSH5zT8aJmGzjA8HWhJ4U6kCpzxozUSnB+yvAYDRPY6mRpgQ== capture-exit@^2.0.0: version "2.0.0" @@ -2298,9 +2338,9 @@ caseless@~0.12.0: integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= ccount@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.3.tgz#f1cec43f332e2ea5a569fd46f9f5bde4e6102aff" - integrity sha512-Jt9tIBkRc9POUof7QA/VwWd+58fKkEEfI+/t1/eOlxKM7ZhrczNzMFefge7Ai+39y1pR/pP6cI19guHy3FSLmw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.4.tgz#9cf2de494ca84060a2a8d2854edd6dfb0445f386" + integrity sha512-fpZ81yYfzentuieinmGnphk0pLkOTMm6MZdVqwd77ROvhko6iujLNGrHH5E7utq3ygWklwfmwuG+A7P+NpqT6w== chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" @@ -2483,9 +2523,9 @@ color-string@^1.5.2: simple-swizzle "^0.2.2" color@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/color/-/color-3.1.0.tgz#d8e9fb096732875774c84bf922815df0308d0ffc" - integrity sha512-CwyopLkuRYO5ei2EpzpIh6LqJMt6Mt+jZhO5VI5f/wJLZriXQE32/SSqzmrh+QB+AZT81Cj8yv+7zwToW8ahZg== + version "3.1.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.1.tgz#7abf5c0d38e89378284e873c207ae2172dcc8a61" + integrity sha512-PvUltIXRjehRKPSy89VnDWFKY58xyhTLyxIg21vwQBI6qLwZNPmC8k3C1uytIgFKEpOIzN4y32iPm8231zFHIg== dependencies: color-convert "^1.9.1" color-string "^1.5.2" @@ -2527,22 +2567,17 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= -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.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== compressible@~2.0.16: - version "2.0.16" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.16.tgz#a49bf9858f3821b64ce1be0296afc7380466a77f" - integrity sha512-JQfEOdnI7dASwCuSPWIeVYwc/zMsu/+tRhoUvEfXz2gxOA2DNjmG5vhtFdBlhWPPGo+RdT9S3tgc/uH5qgDiiA== + version "2.0.17" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1" + integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw== dependencies: - mime-db ">= 1.38.0 < 2" + mime-db ">= 1.40.0 < 2" compression@^1.5.2: version "1.7.4" @@ -2572,10 +2607,10 @@ concat-stream@^1.5.0: readable-stream "^2.2.2" typedarray "^0.0.6" -confusing-browser-globals@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.6.tgz#5918188e8244492cdd46d6be1cab60edef3063ce" - integrity sha512-GzyX86c2TvaagAOR+lHL2Yq4T4EnoBcnojZBcNbxVKSunxmGTnioXHR5Mo2ha/XnCoQw8eurvj6Ta+SwPEPkKg== +confusing-browser-globals@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.7.tgz#5ae852bd541a910e7ffb2dbb864a2d21a36ad29b" + integrity sha512-cgHI1azax5ATrZ8rJ+ODDML9Fvu67PimB6aNxBrc/QwSaDaM9eTfIEUHx3bBLJJ82ioSb+/5zfsMCCEJax3ByQ== connect-history-api-fallback@^1.3.0: version "1.6.0" @@ -2663,11 +2698,6 @@ core-js-pure@3.0.1: resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.0.1.tgz#37358fb0d024e6b86d443d794f4e37e949098cbe" integrity sha512-mSxeQ6IghKW3MoyF4cz19GJ1cMm7761ON+WObSyLfTu/Jn3x7w4NwNFnrZxgl4MTSvYYepVLNuRtlB4loMwJ5g== -core-js@2.6.4: - version "2.6.4" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.4.tgz#b8897c062c4d769dd30a0ac5c73976c47f92ea0d" - integrity sha512-05qQ5hXShcqGkPZpXEFLIpxayZscVD2kuMBZewxiIPPEagukO4mqgPA9CWhUvFBJfy3ODdK2p9xyHh7FTU9/7A== - core-js@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.0.1.tgz#1343182634298f7f38622f95e73f54e48ddf4738" @@ -2693,7 +2723,7 @@ cosmiconfig@^4.0.0: parse-json "^4.0.0" require-from-string "^2.0.1" -cosmiconfig@^5.0.0, cosmiconfig@^5.0.5, cosmiconfig@^5.2.0: +cosmiconfig@^5.0.0, cosmiconfig@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.0.tgz#45038e4d28a7fe787203aede9c25bca4a08b12c8" integrity sha512-nxt+Nfc3JAqf4WIWd0jXLjTJZmsPLrA9DDc4nRw2KFJQJK7DNooqSXrNI7tzLG50CF8axczly5UV929tBmh/7g== @@ -3064,13 +3094,6 @@ default-gateway@^4.2.0: execa "^1.0.0" ip-regex "^2.1.0" -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 "^3.0.0" - define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -3327,10 +3350,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.103, electron-to-chromium@^1.3.124: - version "1.3.125" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.125.tgz#dbde0e95e64ebe322db0eca764d951f885a5aff2" - integrity sha512-XxowpqQxJ4nDwUXHtVtmEhRqBpm2OnjBomZmZtHD0d2Eo0244+Ojezhk3sD/MBSSe2nxCdGQFRXHIsf/LUTL9A== +electron-to-chromium@^1.3.122, electron-to-chromium@^1.3.127: + version "1.3.133" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.133.tgz#c47639c19b91feee3e22fad69f5556142007008c" + integrity sha512-lyoC8aoqbbDqsprb6aPdt9n3DpOZZzdz/T4IZKsR0/dkZIxnJVUjjcpOSwA66jPRIOyDAamCTAUqweU05kKNSg== elliptic@^6.0.0: version "6.4.1" @@ -3438,12 +3461,12 @@ escodegen@^1.11.0, escodegen@^1.9.1: optionalDependencies: source-map "~0.6.1" -eslint-config-react-app@^3.0.8: - version "3.0.8" - resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-3.0.8.tgz#6f606828ba30bafee7d744c41cd07a3fea8f3035" - integrity sha512-Ovi6Bva67OjXrom9Y/SLJRkrGqKhMAL0XCH8BizPhjEVEhYczl2ZKiNZI2CuqO5/CJwAfMwRXAVGY0KToWr1aA== +eslint-config-react-app@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-4.0.0.tgz#1651f44b3830d863817af6ebed0916193aa870c3" + integrity sha512-SeFxaI+0NAzWPFAI9AT+Vp9Xe2u5RCnn0JVEXkE338HgoPujc38Bc0upCJw4BWmavvIN/ODmE6EuzHoAEn3ozw== dependencies: - confusing-browser-globals "^1.0.6" + confusing-browser-globals "^1.0.7" eslint-import-resolver-node@^0.3.2: version "0.3.2" @@ -3644,9 +3667,9 @@ etag@~1.8.1: integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= eventemitter3@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" - integrity sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA== + version "3.1.2" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== events@^3.0.0: version "3.0.0" @@ -3704,16 +3727,16 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expect@^24.7.1: - version "24.7.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-24.7.1.tgz#d91defbab4e627470a152feaf35b3c31aa1c7c14" - integrity sha512-mGfvMTPduksV3xoI0xur56pQsg2vJjNf5+a+bXOjqCkiCBbmCayrBbHS/75y9K430cfqyocPr2ZjiNiRx4SRKw== +expect@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-24.8.0.tgz#471f8ec256b7b6129ca2524b2a62f030df38718d" + integrity sha512-/zYvP8iMDrzaaxHVa724eJBCKqSHmO0FA7EDkBiRHxg6OipmMn1fN+C8T9L9K8yr7UONkOifu6+LLH+z76CnaA== dependencies: - "@jest/types" "^24.7.0" + "@jest/types" "^24.8.0" ansi-styles "^3.2.0" - jest-get-type "^24.3.0" - jest-matcher-utils "^24.7.0" - jest-message-util "^24.7.1" + jest-get-type "^24.8.0" + jest-matcher-utils "^24.8.0" + jest-message-util "^24.8.0" jest-regex-util "^24.3.0" express@^4.16.2: @@ -3772,7 +3795,7 @@ extend@^3.0.0, extend@~3.0.2: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -external-editor@^3.0.0, external-editor@^3.0.3: +external-editor@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA== @@ -3880,14 +3903,6 @@ file-loader@3.0.1: loader-utils "^1.0.2" schema-utils "^1.0.0" -fileset@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" - integrity sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA= - dependencies: - glob "^7.0.3" - minimatch "^3.0.3" - filesize@3.6.1: version "3.6.1" resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" @@ -4019,10 +4034,10 @@ forever-agent@~0.6.1: resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= -fork-ts-checker-webpack-plugin@1.0.0-alpha.6: - version "1.0.0-alpha.6" - resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.0.0-alpha.6.tgz#826c57048addf8a3253853615c84f3ff7beeaf45" - integrity sha512-s/V+58nLrUjuXyzYk8AL11XG8bxIirTbafDLMn26sL59HQx8QvvsRTqOkhq4MV0coIkog1jZuH/E9Abm8zFZ2g== +fork-ts-checker-webpack-plugin@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.0.1.tgz#140453c4dc3dc35937034b7416b66a3bacfbc3a8" + integrity sha512-RrVxSiNtngsFDLQpP2QlrVaJK1zqRdwhtwslmDUWQTg3t3GW8QN7D3EpW/EAI+oqTqL0dGvLyluyYQ/eIrIHvQ== dependencies: babel-code-frame "^6.22.0" chalk "^2.4.1" @@ -4107,9 +4122,9 @@ fs.realpath@^1.0.0: integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.8.tgz#57ea5320f762cd4696e5e8e87120eccc8b11cacf" - integrity sha512-tPvHgPGB7m40CZ68xqFGkKuzN+RnpGmSV+hgeKxhRpbxdqKXUFJGC3yonBOLzQBcJyGpdZFDfCsdOC2KFsXzeA== + version "1.2.9" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" + integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== dependencies: nan "^2.12.1" node-pre-gyp "^0.12.0" @@ -4181,9 +4196,9 @@ glob-to-regexp@^0.3.0: integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" - integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== + version "7.1.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -4209,9 +4224,9 @@ global-prefix@^3.0.0: which "^1.3.1" globals@^11.1.0, globals@^11.7.0: - version "11.11.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.11.0.tgz#dcf93757fa2de5486fbeed7118538adf789e9c2e" - integrity sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw== + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globby@8.0.2: version "8.0.2" @@ -4260,7 +4275,7 @@ handle-thing@^2.0.0: resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== -handlebars@^4.1.0: +handlebars@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" integrity sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw== @@ -4410,11 +4425,6 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoek@6.x.x: - version "6.1.3" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-6.1.3.tgz#73b7d33952e01fe27a38b0457294b79dd8da242c" - integrity sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ== - hosted-git-info@^2.1.4: version "2.7.1" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" @@ -4688,21 +4698,21 @@ ini@^1.3.5, ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== -inquirer@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.1.tgz#9943fc4882161bdb0b0c9276769c75b32dbfcd52" - integrity sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg== +inquirer@6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.2.tgz#46941176f65c9eb20804627149b743a218f25406" + integrity sha512-Z2rREiXA6cHRR9KBOarR3WuLlFzlIfAEIiB45ll5SSadMg7WqOh1MKEjjndfuH5ewXdixWCxqnVfGOQzPeiztA== dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" + ansi-escapes "^3.2.0" + chalk "^2.4.2" cli-cursor "^2.1.0" cli-width "^2.0.0" - external-editor "^3.0.0" + external-editor "^3.0.3" figures "^2.0.0" - lodash "^4.17.10" + lodash "^4.17.11" mute-stream "0.0.7" run-async "^2.2.0" - rxjs "^6.1.0" + rxjs "^6.4.0" string-width "^2.1.0" strip-ansi "^5.0.0" through "^2.3.6" @@ -5030,13 +5040,6 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= -isemail@3.x.x: - version "3.2.0" - resolved "https://registry.yarnpkg.com/isemail/-/isemail-3.2.0.tgz#59310a021931a9fb06bbb51e155ce0b3f236832c" - integrity sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg== - dependencies: - punycode "2.x.x" - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -5059,137 +5062,111 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -istanbul-api@^2.1.1: - version "2.1.5" - resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-2.1.5.tgz#697b95ec69856c278aacafc0f86ee7392338d5b5" - integrity sha512-meYk1BwDp59Pfse1TvPrkKYgVqAufbdBLEVoqvu/hLLKSaQ054ZTksbNepyc223tMnWdm6AdK2URIJJRqdP87g== - dependencies: - async "^2.6.1" - compare-versions "^3.2.1" - fileset "^2.0.3" - istanbul-lib-coverage "^2.0.4" - istanbul-lib-hook "^2.0.6" - istanbul-lib-instrument "^3.2.0" - istanbul-lib-report "^2.0.7" - istanbul-lib-source-maps "^3.0.5" - istanbul-reports "^2.2.3" - js-yaml "^3.13.0" - make-dir "^2.1.0" - minimatch "^3.0.4" - once "^1.4.0" - -istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#927a354005d99dd43a24607bb8b33fd4e9aca1ad" - integrity sha512-LXTBICkMARVgo579kWDm8SqfB6nvSDKNqIOBEjmJRnL04JvoMHCYGWaMddQnseJYtkEuEvO/sIcOxPLk9gERug== - -istanbul-lib-hook@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.6.tgz#5baa6067860a38290aef038b389068b225b01b7d" - integrity sha512-829DKONApZ7UCiPXcOYWSgkFXa4+vNYoNOt3F+4uDJLKL1OotAoVwvThoEj1i8jmOj7odbYcR3rnaHu+QroaXg== - dependencies: - append-transform "^1.0.0" +istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" + integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== -istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.2.0.tgz#c549208da8a793f6622257a2da83e0ea96ae6a93" - integrity sha512-06IM3xShbNW4NgZv5AP4QH0oHqf1/ivFo8eFys0ZjPXHGldHJQWb3riYOKXqmOqfxXBfxu4B+g/iuhOPZH0RJg== +istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" + integrity sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA== dependencies: - "@babel/generator" "^7.0.0" - "@babel/parser" "^7.0.0" - "@babel/template" "^7.0.0" - "@babel/traverse" "^7.0.0" - "@babel/types" "^7.0.0" - istanbul-lib-coverage "^2.0.4" + "@babel/generator" "^7.4.0" + "@babel/parser" "^7.4.3" + "@babel/template" "^7.4.0" + "@babel/traverse" "^7.4.3" + "@babel/types" "^7.4.0" + istanbul-lib-coverage "^2.0.5" semver "^6.0.0" -istanbul-lib-report@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.7.tgz#370d80d433c4dbc7f58de63618f49599c74bd954" - integrity sha512-wLH6beJBFbRBLiTlMOBxmb85cnVM1Vyl36N48e4e/aTKSM3WbOx7zbVIH1SQ537fhhsPbX0/C5JB4qsmyRXXyA== +istanbul-lib-report@^2.0.4: + version "2.0.8" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" + integrity sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ== dependencies: - istanbul-lib-coverage "^2.0.4" + istanbul-lib-coverage "^2.0.5" make-dir "^2.1.0" - supports-color "^6.0.0" + supports-color "^6.1.0" -istanbul-lib-source-maps@^3.0.1, istanbul-lib-source-maps@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.5.tgz#1d9ee9d94d2633f15611ee7aae28f9cac6d1aeb9" - integrity sha512-eDhZ7r6r1d1zQPVZehLc3D0K14vRba/eBYkz3rw16DLOrrTzve9RmnkcwrrkWVgO1FL3EK5knujVe5S8QHE9xw== +istanbul-lib-source-maps@^3.0.1: + version "3.0.6" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" + integrity sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw== dependencies: debug "^4.1.1" - istanbul-lib-coverage "^2.0.4" + istanbul-lib-coverage "^2.0.5" make-dir "^2.1.0" - rimraf "^2.6.2" + rimraf "^2.6.3" source-map "^0.6.1" -istanbul-reports@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.3.tgz#14e0d00ecbfa9387757999cf36599b88e9f2176e" - integrity sha512-T6EbPuc8Cb620LWAYyZ4D8SSn06dY9i1+IgUX2lTH8gbwflMc9Obd33zHTyNX653ybjpamAHS9toKS3E6cGhTw== +istanbul-reports@^2.1.1: + version "2.2.4" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.4.tgz#4e0d0ddf0f0ad5b49a314069d31b4f06afe49ad3" + integrity sha512-QCHGyZEK0bfi9GR215QSm+NJwFKEShbtc7tfbUdLAEzn3kKhLDDZqvljn8rPZM9v8CEOhzL1nlYoO4r1ryl67w== dependencies: - handlebars "^4.1.0" + handlebars "^4.1.2" -jest-changed-files@^24.7.0: - version "24.7.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.7.0.tgz#39d723a11b16ed7b373ac83adc76a69464b0c4fa" - integrity sha512-33BgewurnwSfJrW7T5/ZAXGE44o7swLslwh8aUckzq2e17/2Os1V0QU506ZNik3hjs8MgnEMKNkcud442NCDTw== +jest-changed-files@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.8.0.tgz#7e7eb21cf687587a85e50f3d249d1327e15b157b" + integrity sha512-qgANC1Yrivsq+UrLXsvJefBKVoCsKB0Hv+mBb6NMjjZ90wwxCDmU3hsCXBya30cH+LnPYjwgcU65i6yJ5Nfuug== dependencies: - "@jest/types" "^24.7.0" + "@jest/types" "^24.8.0" execa "^1.0.0" throat "^4.0.0" jest-cli@^24.7.1: - version "24.7.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.7.1.tgz#6093a539073b6f4953145abeeb9709cd621044f1" - integrity sha512-32OBoSCVPzcTslGFl6yVCMzB2SqX3IrWwZCY5mZYkb0D2WsogmU3eV2o8z7+gRQa4o4sZPX/k7GU+II7CxM6WQ== + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.8.0.tgz#b075ac914492ed114fa338ade7362a301693e989" + integrity sha512-+p6J00jSMPQ116ZLlHJJvdf8wbjNbZdeSX9ptfHX06/MSNaXmKihQzx5vQcw0q2G6JsdVkUIdWbOWtSnaYs3yA== dependencies: - "@jest/core" "^24.7.1" - "@jest/test-result" "^24.7.1" - "@jest/types" "^24.7.0" + "@jest/core" "^24.8.0" + "@jest/test-result" "^24.8.0" + "@jest/types" "^24.8.0" chalk "^2.0.1" exit "^0.1.2" import-local "^2.0.0" is-ci "^2.0.0" - jest-config "^24.7.1" - jest-util "^24.7.1" - jest-validate "^24.7.0" + jest-config "^24.8.0" + jest-util "^24.8.0" + jest-validate "^24.8.0" prompts "^2.0.1" realpath-native "^1.1.0" yargs "^12.0.2" -jest-config@^24.7.1: - version "24.7.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.7.1.tgz#6c1dd4db82a89710a3cf66bdba97827c9a1cf052" - integrity sha512-8FlJNLI+X+MU37j7j8RE4DnJkvAghXmBWdArVzypW6WxfGuxiL/CCkzBg0gHtXhD2rxla3IMOSUAHylSKYJ83g== +jest-config@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.8.0.tgz#77db3d265a6f726294687cbbccc36f8a76ee0f4f" + integrity sha512-Czl3Nn2uEzVGsOeaewGWoDPD8GStxCpAe0zOYs2x2l0fZAgPbCr3uwUkgNKV3LwE13VXythM946cd5rdGkkBZw== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^24.7.1" - "@jest/types" "^24.7.0" - babel-jest "^24.7.1" + "@jest/test-sequencer" "^24.8.0" + "@jest/types" "^24.8.0" + babel-jest "^24.8.0" chalk "^2.0.1" glob "^7.1.1" - jest-environment-jsdom "^24.7.1" - jest-environment-node "^24.7.1" - jest-get-type "^24.3.0" - jest-jasmine2 "^24.7.1" + jest-environment-jsdom "^24.8.0" + jest-environment-node "^24.8.0" + jest-get-type "^24.8.0" + jest-jasmine2 "^24.8.0" jest-regex-util "^24.3.0" - jest-resolve "^24.7.1" - jest-util "^24.7.1" - jest-validate "^24.7.0" + jest-resolve "^24.8.0" + jest-util "^24.8.0" + jest-validate "^24.8.0" micromatch "^3.1.10" - pretty-format "^24.7.0" + pretty-format "^24.8.0" realpath-native "^1.1.0" -jest-diff@^24.7.0: - version "24.7.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.7.0.tgz#5d862899be46249754806f66e5729c07fcb3580f" - integrity sha512-ULQZ5B1lWpH70O4xsANC4tf4Ko6RrpwhE3PtG6ERjMg1TiYTC2Wp4IntJVGro6a8HG9luYHhhmF4grF0Pltckg== +jest-diff@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.8.0.tgz#146435e7d1e3ffdf293d53ff97e193f1d1546172" + integrity sha512-wxetCEl49zUpJ/bvUmIFjd/o52J+yWcoc5ZyPq4/W1LUKGEhRYDIbP1KcF6t+PvqNrGAFk4/JhtxDq/Nnzs66g== dependencies: chalk "^2.0.1" diff-sequences "^24.3.0" - jest-get-type "^24.3.0" - pretty-format "^24.7.0" + jest-get-type "^24.8.0" + pretty-format "^24.8.0" jest-docblock@^24.3.0: version "24.3.0" @@ -5198,16 +5175,16 @@ jest-docblock@^24.3.0: dependencies: detect-newline "^2.1.0" -jest-each@^24.7.1: - version "24.7.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.7.1.tgz#fcc7dda4147c28430ad9fb6dc7211cd17ab54e74" - integrity sha512-4fsS8fEfLa3lfnI1Jw6NxjhyRTgfpuOVTeUZZFyVYqeTa4hPhr2YkToUhouuLTrL2eMGOfpbdMyRx0GQ/VooKA== +jest-each@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.8.0.tgz#a05fd2bf94ddc0b1da66c6d13ec2457f35e52775" + integrity sha512-NrwK9gaL5+XgrgoCsd9svsoWdVkK4gnvyhcpzd6m487tXHqIdYeykgq3MKI1u4I+5Zf0tofr70at9dWJDeb+BA== dependencies: - "@jest/types" "^24.7.0" + "@jest/types" "^24.8.0" chalk "^2.0.1" - jest-get-type "^24.3.0" - jest-util "^24.7.1" - pretty-format "^24.7.0" + jest-get-type "^24.8.0" + jest-util "^24.8.0" + pretty-format "^24.8.0" jest-environment-jsdom-fourteen@0.1.0: version "0.1.0" @@ -5218,46 +5195,46 @@ jest-environment-jsdom-fourteen@0.1.0: jest-util "^24.5.0" jsdom "^14.0.0" -jest-environment-jsdom@^24.7.1: - version "24.7.1" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.7.1.tgz#a40e004b4458ebeb8a98082df135fd501b9fbbd6" - integrity sha512-Gnhb+RqE2JuQGb3kJsLF8vfqjt3PHKSstq4Xc8ic+ax7QKo4Z0RWGucU3YV+DwKR3T9SYc+3YCUQEJs8r7+Jxg== +jest-environment-jsdom@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.8.0.tgz#300f6949a146cabe1c9357ad9e9ecf9f43f38857" + integrity sha512-qbvgLmR7PpwjoFjM/sbuqHJt/NCkviuq9vus9NBn/76hhSidO+Z6Bn9tU8friecegbJL8gzZQEMZBQlFWDCwAQ== dependencies: - "@jest/environment" "^24.7.1" - "@jest/fake-timers" "^24.7.1" - "@jest/types" "^24.7.0" - jest-mock "^24.7.0" - jest-util "^24.7.1" + "@jest/environment" "^24.8.0" + "@jest/fake-timers" "^24.8.0" + "@jest/types" "^24.8.0" + jest-mock "^24.8.0" + jest-util "^24.8.0" jsdom "^11.5.1" -jest-environment-node@^24.7.1: - version "24.7.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.7.1.tgz#fa2c047a31522a48038d26ee4f7c8fd9c1ecfe12" - integrity sha512-GJJQt1p9/C6aj6yNZMvovZuxTUd+BEJprETdvTKSb4kHcw4mFj8777USQV0FJoJ4V3djpOwA5eWyPwfq//PFBA== +jest-environment-node@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.8.0.tgz#d3f726ba8bc53087a60e7a84ca08883a4c892231" + integrity sha512-vIGUEScd1cdDgR6sqn2M08sJTRLQp6Dk/eIkCeO4PFHxZMOgy+uYLPMC4ix3PEfM5Au/x3uQ/5Tl0DpXXZsJ/Q== dependencies: - "@jest/environment" "^24.7.1" - "@jest/fake-timers" "^24.7.1" - "@jest/types" "^24.7.0" - jest-mock "^24.7.0" - jest-util "^24.7.1" + "@jest/environment" "^24.8.0" + "@jest/fake-timers" "^24.8.0" + "@jest/types" "^24.8.0" + jest-mock "^24.8.0" + jest-util "^24.8.0" -jest-get-type@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.3.0.tgz#582cfd1a4f91b5cdad1d43d2932f816d543c65da" - integrity sha512-HYF6pry72YUlVcvUx3sEpMRwXEWGEPlJ0bSPVnB3b3n++j4phUEoSPcS6GC0pPJ9rpyPSe4cb5muFo6D39cXow== +jest-get-type@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.8.0.tgz#a7440de30b651f5a70ea3ed7ff073a32dfe646fc" + integrity sha512-RR4fo8jEmMD9zSz2nLbs2j0zvPpk/KCEz3a62jJWbd2ayNo0cb+KFRxPHVhE4ZmgGJEQp0fosmNz84IfqM8cMQ== -jest-haste-map@^24.7.1: - version "24.7.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.7.1.tgz#772e215cd84080d4bbcb759cfb668ad649a21471" - integrity sha512-g0tWkzjpHD2qa03mTKhlydbmmYiA2KdcJe762SbfFo/7NIMgBWAA0XqQlApPwkWOF7Cxoi/gUqL0i6DIoLpMBw== +jest-haste-map@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.8.0.tgz#51794182d877b3ddfd6e6d23920e3fe72f305800" + integrity sha512-ZBPRGHdPt1rHajWelXdqygIDpJx8u3xOoLyUBWRW28r3tagrgoepPrzAozW7kW9HrQfhvmiv1tncsxqHJO1onQ== dependencies: - "@jest/types" "^24.7.0" + "@jest/types" "^24.8.0" anymatch "^2.0.0" fb-watchman "^2.0.0" graceful-fs "^4.1.15" invariant "^2.2.4" jest-serializer "^24.4.0" - jest-util "^24.7.1" + jest-util "^24.8.0" jest-worker "^24.6.0" micromatch "^3.1.10" sane "^4.0.3" @@ -5265,65 +5242,65 @@ jest-haste-map@^24.7.1: optionalDependencies: fsevents "^1.2.7" -jest-jasmine2@^24.7.1: - version "24.7.1" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.7.1.tgz#01398686dabe46553716303993f3be62e5d9d818" - integrity sha512-Y/9AOJDV1XS44wNwCaThq4Pw3gBPiOv/s6NcbOAkVRRUEPu+36L2xoPsqQXsDrxoBerqeyslpn2TpCI8Zr6J2w== +jest-jasmine2@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.8.0.tgz#a9c7e14c83dd77d8b15e820549ce8987cc8cd898" + integrity sha512-cEky88npEE5LKd5jPpTdDCLvKkdyklnaRycBXL6GNmpxe41F0WN44+i7lpQKa/hcbXaQ+rc9RMaM4dsebrYong== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^24.7.1" - "@jest/test-result" "^24.7.1" - "@jest/types" "^24.7.0" + "@jest/environment" "^24.8.0" + "@jest/test-result" "^24.8.0" + "@jest/types" "^24.8.0" chalk "^2.0.1" co "^4.6.0" - expect "^24.7.1" + expect "^24.8.0" is-generator-fn "^2.0.0" - jest-each "^24.7.1" - jest-matcher-utils "^24.7.0" - jest-message-util "^24.7.1" - jest-runtime "^24.7.1" - jest-snapshot "^24.7.1" - jest-util "^24.7.1" - pretty-format "^24.7.0" + jest-each "^24.8.0" + jest-matcher-utils "^24.8.0" + jest-message-util "^24.8.0" + jest-runtime "^24.8.0" + jest-snapshot "^24.8.0" + jest-util "^24.8.0" + pretty-format "^24.8.0" throat "^4.0.0" -jest-leak-detector@^24.7.0: - version "24.7.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.7.0.tgz#323ff93ed69be12e898f5b040952f08a94288ff9" - integrity sha512-zV0qHKZGXtmPVVzT99CVEcHE9XDf+8LwiE0Ob7jjezERiGVljmqKFWpV2IkG+rkFIEUHFEkMiICu7wnoPM/RoQ== +jest-leak-detector@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.8.0.tgz#c0086384e1f650c2d8348095df769f29b48e6980" + integrity sha512-cG0yRSK8A831LN8lIHxI3AblB40uhv0z+SsQdW3GoMMVcK+sJwrIIyax5tu3eHHNJ8Fu6IMDpnLda2jhn2pD/g== dependencies: - pretty-format "^24.7.0" + pretty-format "^24.8.0" -jest-matcher-utils@^24.7.0: - version "24.7.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.7.0.tgz#bbee1ff37bc8b2e4afcaabc91617c1526af4bcd4" - integrity sha512-158ieSgk3LNXeUhbVJYRXyTPSCqNgVXOp/GT7O94mYd3pk/8+odKTyR1JLtNOQSPzNi8NFYVONtvSWA/e1RDXg== +jest-matcher-utils@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.8.0.tgz#2bce42204c9af12bde46f83dc839efe8be832495" + integrity sha512-lex1yASY51FvUuHgm0GOVj7DCYEouWSlIYmCW7APSqB9v8mXmKSn5+sWVF0MhuASG0bnYY106/49JU1FZNl5hw== dependencies: chalk "^2.0.1" - jest-diff "^24.7.0" - jest-get-type "^24.3.0" - pretty-format "^24.7.0" + jest-diff "^24.8.0" + jest-get-type "^24.8.0" + pretty-format "^24.8.0" -jest-message-util@^24.7.1: - version "24.7.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.7.1.tgz#f1dc3a6c195647096a99d0f1dadbc447ae547018" - integrity sha512-dk0gqVtyqezCHbcbk60CdIf+8UHgD+lmRHifeH3JRcnAqh4nEyPytSc9/L1+cQyxC+ceaeP696N4ATe7L+omcg== +jest-message-util@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.8.0.tgz#0d6891e72a4beacc0292b638685df42e28d6218b" + integrity sha512-p2k71rf/b6ns8btdB0uVdljWo9h0ovpnEe05ZKWceQGfXYr4KkzgKo3PBi8wdnd9OtNh46VpNIJynUn/3MKm1g== dependencies: "@babel/code-frame" "^7.0.0" - "@jest/test-result" "^24.7.1" - "@jest/types" "^24.7.0" + "@jest/test-result" "^24.8.0" + "@jest/types" "^24.8.0" "@types/stack-utils" "^1.0.1" chalk "^2.0.1" micromatch "^3.1.10" slash "^2.0.0" stack-utils "^1.0.1" -jest-mock@^24.5.0, jest-mock@^24.7.0: - version "24.7.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.7.0.tgz#e49ce7262c12d7f5897b0d8af77f6db8e538023b" - integrity sha512-6taW4B4WUcEiT2V9BbOmwyGuwuAFT2G8yghF7nyNW1/2gq5+6aTqSPcS9lS6ArvEkX55vbPAS/Jarx5LSm4Fng== +jest-mock@^24.5.0, jest-mock@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.8.0.tgz#2f9d14d37699e863f1febf4e4d5a33b7fdbbde56" + integrity sha512-6kWugwjGjJw+ZkK4mDa0Df3sDlUTsV47MSrT0nGQ0RBWJbpODDQ8MHDVtGtUYBne3IwZUhtB7elxHspU79WH3A== dependencies: - "@jest/types" "^24.7.0" + "@jest/types" "^24.8.0" jest-pnp-resolver@^1.2.1: version "1.2.1" @@ -5335,16 +5312,16 @@ jest-regex-util@^24.3.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.3.0.tgz#d5a65f60be1ae3e310d5214a0307581995227b36" integrity sha512-tXQR1NEOyGlfylyEjg1ImtScwMq8Oh3iJbGTjN7p0J23EuVX1MA8rwU69K4sLbCmwzgCUbVkm0FkSF9TdzOhtg== -jest-resolve-dependencies@^24.7.1: - version "24.7.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.7.1.tgz#cf93bbef26999488a96a2b2012f9fe7375aa378f" - integrity sha512-2Eyh5LJB2liNzfk4eo7bD1ZyBbqEJIyyrFtZG555cSWW9xVHxII2NuOkSl1yUYTAYCAmM2f2aIT5A7HzNmubyg== +jest-resolve-dependencies@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.8.0.tgz#19eec3241f2045d3f990dba331d0d7526acff8e0" + integrity sha512-hyK1qfIf/krV+fSNyhyJeq3elVMhK9Eijlwy+j5jqmZ9QsxwKBiP6qukQxaHtK8k6zql/KYWwCTQ+fDGTIJauw== dependencies: - "@jest/types" "^24.7.0" + "@jest/types" "^24.8.0" jest-regex-util "^24.3.0" - jest-snapshot "^24.7.1" + jest-snapshot "^24.8.0" -jest-resolve@24.7.1, jest-resolve@^24.7.1: +jest-resolve@24.7.1: version "24.7.1" resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.7.1.tgz#e4150198299298380a75a9fd55043fa3b9b17fde" integrity sha512-Bgrc+/UUZpGJ4323sQyj85hV9d+ANyPNu6XfRDUcyFNX1QrZpSoM0kE4Mb2vZMAYTJZsBFzYe8X1UaOkOELSbw== @@ -5355,55 +5332,66 @@ jest-resolve@24.7.1, jest-resolve@^24.7.1: jest-pnp-resolver "^1.2.1" realpath-native "^1.1.0" -jest-runner@^24.7.1: - version "24.7.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.7.1.tgz#41c8a02a06aa23ea82d8bffd69d7fa98d32f85bf" - integrity sha512-aNFc9liWU/xt+G9pobdKZ4qTeG/wnJrJna3VqunziDNsWT3EBpmxXZRBMKCsNMyfy+A/XHiV+tsMLufdsNdgCw== +jest-resolve@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.8.0.tgz#84b8e5408c1f6a11539793e2b5feb1b6e722439f" + integrity sha512-+hjSzi1PoRvnuOICoYd5V/KpIQmkAsfjFO71458hQ2Whi/yf1GDeBOFj8Gxw4LrApHsVJvn5fmjcPdmoUHaVKw== + dependencies: + "@jest/types" "^24.8.0" + browser-resolve "^1.11.3" + chalk "^2.0.1" + jest-pnp-resolver "^1.2.1" + realpath-native "^1.1.0" + +jest-runner@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.8.0.tgz#4f9ae07b767db27b740d7deffad0cf67ccb4c5bb" + integrity sha512-utFqC5BaA3JmznbissSs95X1ZF+d+4WuOWwpM9+Ak356YtMhHE/GXUondZdcyAAOTBEsRGAgH/0TwLzfI9h7ow== dependencies: "@jest/console" "^24.7.1" - "@jest/environment" "^24.7.1" - "@jest/test-result" "^24.7.1" - "@jest/types" "^24.7.0" + "@jest/environment" "^24.8.0" + "@jest/test-result" "^24.8.0" + "@jest/types" "^24.8.0" chalk "^2.4.2" exit "^0.1.2" graceful-fs "^4.1.15" - jest-config "^24.7.1" + jest-config "^24.8.0" jest-docblock "^24.3.0" - jest-haste-map "^24.7.1" - jest-jasmine2 "^24.7.1" - jest-leak-detector "^24.7.0" - jest-message-util "^24.7.1" - jest-resolve "^24.7.1" - jest-runtime "^24.7.1" - jest-util "^24.7.1" + jest-haste-map "^24.8.0" + jest-jasmine2 "^24.8.0" + jest-leak-detector "^24.8.0" + jest-message-util "^24.8.0" + jest-resolve "^24.8.0" + jest-runtime "^24.8.0" + jest-util "^24.8.0" jest-worker "^24.6.0" source-map-support "^0.5.6" throat "^4.0.0" -jest-runtime@^24.7.1: - version "24.7.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.7.1.tgz#2ffd70b22dd03a5988c0ab9465c85cdf5d25c597" - integrity sha512-0VAbyBy7tll3R+82IPJpf6QZkokzXPIS71aDeqh+WzPRXRCNz6StQ45otFariPdJ4FmXpDiArdhZrzNAC3sj6A== +jest-runtime@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.8.0.tgz#05f94d5b05c21f6dc54e427cd2e4980923350620" + integrity sha512-Mq0aIXhvO/3bX44ccT+czU1/57IgOMyy80oM0XR/nyD5zgBcesF84BPabZi39pJVA6UXw+fY2Q1N+4BiVUBWOA== dependencies: "@jest/console" "^24.7.1" - "@jest/environment" "^24.7.1" + "@jest/environment" "^24.8.0" "@jest/source-map" "^24.3.0" - "@jest/transform" "^24.7.1" - "@jest/types" "^24.7.0" + "@jest/transform" "^24.8.0" + "@jest/types" "^24.8.0" "@types/yargs" "^12.0.2" chalk "^2.0.1" exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.1.15" - jest-config "^24.7.1" - jest-haste-map "^24.7.1" - jest-message-util "^24.7.1" - jest-mock "^24.7.0" + jest-config "^24.8.0" + jest-haste-map "^24.8.0" + jest-message-util "^24.8.0" + jest-mock "^24.8.0" jest-regex-util "^24.3.0" - jest-resolve "^24.7.1" - jest-snapshot "^24.7.1" - jest-util "^24.7.1" - jest-validate "^24.7.0" + jest-resolve "^24.8.0" + jest-snapshot "^24.8.0" + jest-util "^24.8.0" + jest-validate "^24.8.0" realpath-native "^1.1.0" slash "^2.0.0" strip-bom "^3.0.0" @@ -5414,34 +5402,34 @@ jest-serializer@^24.4.0: resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.4.0.tgz#f70c5918c8ea9235ccb1276d232e459080588db3" integrity sha512-k//0DtglVstc1fv+GY/VHDIjrtNjdYvYjMlbLUed4kxrE92sIUewOi5Hj3vrpB8CXfkJntRPDRjCrCvUhBdL8Q== -jest-snapshot@^24.7.1: - version "24.7.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.7.1.tgz#bd5a35f74aedff070975e9e9c90024f082099568" - integrity sha512-8Xk5O4p+JsZZn4RCNUS3pxA+ORKpEKepE+a5ejIKrId9CwrVN0NY+vkqEkXqlstA5NMBkNahXkR/4qEBy0t5yA== +jest-snapshot@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.8.0.tgz#3bec6a59da2ff7bc7d097a853fb67f9d415cb7c6" + integrity sha512-5ehtWoc8oU9/cAPe6fez6QofVJLBKyqkY2+TlKTOf0VllBB/mqUNdARdcjlZrs9F1Cv+/HKoCS/BknT0+tmfPg== dependencies: "@babel/types" "^7.0.0" - "@jest/types" "^24.7.0" + "@jest/types" "^24.8.0" chalk "^2.0.1" - expect "^24.7.1" - jest-diff "^24.7.0" - jest-matcher-utils "^24.7.0" - jest-message-util "^24.7.1" - jest-resolve "^24.7.1" + expect "^24.8.0" + jest-diff "^24.8.0" + jest-matcher-utils "^24.8.0" + jest-message-util "^24.8.0" + jest-resolve "^24.8.0" mkdirp "^0.5.1" natural-compare "^1.4.0" - pretty-format "^24.7.0" + pretty-format "^24.8.0" semver "^5.5.0" -jest-util@^24.5.0, jest-util@^24.7.1: - version "24.7.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.7.1.tgz#b4043df57b32a23be27c75a2763d8faf242038ff" - integrity sha512-/KilOue2n2rZ5AnEBYoxOXkeTu6vi7cjgQ8MXEkih0oeAXT6JkS3fr7/j8+engCjciOU1Nq5loMSKe0A1oeX0A== +jest-util@^24.5.0, jest-util@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.8.0.tgz#41f0e945da11df44cc76d64ffb915d0716f46cd1" + integrity sha512-DYZeE+XyAnbNt0BG1OQqKy/4GVLPtzwGx5tsnDrFcax36rVE3lTA5fbvgmbVPUZf9w77AJ8otqR4VBbfFJkUZA== dependencies: "@jest/console" "^24.7.1" - "@jest/fake-timers" "^24.7.1" + "@jest/fake-timers" "^24.8.0" "@jest/source-map" "^24.3.0" - "@jest/test-result" "^24.7.1" - "@jest/types" "^24.7.0" + "@jest/test-result" "^24.8.0" + "@jest/types" "^24.8.0" callsites "^3.0.0" chalk "^2.0.1" graceful-fs "^4.1.15" @@ -5450,17 +5438,17 @@ jest-util@^24.5.0, jest-util@^24.7.1: slash "^2.0.0" source-map "^0.6.0" -jest-validate@^24.7.0: - version "24.7.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.7.0.tgz#70007076f338528ee1b1c8a8258b1b0bb982508d" - integrity sha512-cgai/gts9B2chz1rqVdmLhzYxQbgQurh1PEQSvSgPZ8KGa1AqXsqC45W5wKEwzxKrWqypuQrQxnF4+G9VejJJA== +jest-validate@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.8.0.tgz#624c41533e6dfe356ffadc6e2423a35c2d3b4849" + integrity sha512-+/N7VOEMW1Vzsrk3UWBDYTExTPwf68tavEPKDnJzrC6UlHtUDU/fuEdXqFoHzv9XnQ+zW6X3qMZhJ3YexfeLDA== dependencies: - "@jest/types" "^24.7.0" + "@jest/types" "^24.8.0" camelcase "^5.0.0" chalk "^2.0.1" - jest-get-type "^24.3.0" + jest-get-type "^24.8.0" leven "^2.1.0" - pretty-format "^24.7.0" + pretty-format "^24.8.0" jest-watch-typeahead@0.3.0: version "0.3.0" @@ -5474,17 +5462,17 @@ jest-watch-typeahead@0.3.0: string-length "^2.0.0" strip-ansi "^5.0.0" -jest-watcher@^24.3.0, jest-watcher@^24.7.1: - version "24.7.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.7.1.tgz#e161363d7f3f4e1ef3d389b7b3a0aad247b673f5" - integrity sha512-Wd6TepHLRHVKLNPacEsBwlp9raeBIO+01xrN24Dek4ggTS8HHnOzYSFnvp+6MtkkJ3KfMzy220KTi95e2rRkrw== +jest-watcher@^24.3.0, jest-watcher@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.8.0.tgz#58d49915ceddd2de85e238f6213cef1c93715de4" + integrity sha512-SBjwHt5NedQoVu54M5GEx7cl7IGEFFznvd/HNT8ier7cCAx/Qgu9ZMlaTQkvK22G1YOpcWBLQPFSImmxdn3DAw== dependencies: - "@jest/test-result" "^24.7.1" - "@jest/types" "^24.7.0" + "@jest/test-result" "^24.8.0" + "@jest/types" "^24.8.0" "@types/yargs" "^12.0.9" ansi-escapes "^3.0.0" chalk "^2.0.1" - jest-util "^24.7.1" + jest-util "^24.8.0" string-length "^2.0.0" jest-worker@^24.6.0: @@ -5503,15 +5491,6 @@ jest@24.7.1: import-local "^2.0.0" jest-cli "^24.7.1" -joi@^14.3.1: - version "14.3.1" - resolved "https://registry.yarnpkg.com/joi/-/joi-14.3.1.tgz#164a262ec0b855466e0c35eea2a885ae8b6c703c" - integrity sha512-LQDdM+pkOrpAn4Lp+neNIFV3axv1Vna3j38bisbQhETPMANYRbFJFUyOZcOClYvM/hppMhGWuKSFEK9vjrB+bQ== - dependencies: - hoek "6.x.x" - isemail "3.x.x" - topo "3.x.x" - js-levenshtein@^1.1.3: version "1.1.6" resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" @@ -6043,12 +6022,12 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.40.0, "mime-db@>= 1.38.0 < 2": +mime-db@1.40.0, "mime-db@>= 1.40.0 < 2": version "1.40.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.19: +mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.24" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== @@ -6094,7 +6073,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@3.0.4, minimatch@^3.0.3, minimatch@^3.0.4: +minimatch@3.0.4, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -6238,18 +6217,18 @@ natural-compare@^1.4.0: integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= needle@^2.2.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.0.tgz#ce3fea21197267bacb310705a7bbe24f2a3a3492" - integrity sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg== + version "2.3.1" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.1.tgz#d272f2f4034afb9c4c9ab1379aabc17fc85c9388" + integrity sha512-CaLXV3W8Vnbps8ZANqDGz7j4x7Yj1LW4TWF/TQuDfj7Cfx4nAPTvw98qgTevtto1oHDrh3pQkaODbqupXlsWTg== dependencies: debug "^4.1.0" iconv-lite "^0.4.4" sax "^1.2.4" -negotiator@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" - integrity sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk= +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== neo-async@^2.5.0, neo-async@^2.6.0: version "2.6.0" @@ -6339,10 +6318,10 @@ node-pre-gyp@^0.12.0: semver "^5.3.0" tar "^4" -node-releases@^1.1.14, node-releases@^1.1.3: - version "1.1.15" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.15.tgz#9e76a73b0eca3bf7801addaa0e6ce90c795f2b9a" - integrity sha512-cKV097BQaZr8LTSRUa2+oc/aX5L8UkZtPQrMSTgiJEeaW7ymTDCoRaGCoaTqk0lqnalcoSHu4wjSl0Cmj2+bMw== +node-releases@^1.1.13, node-releases@^1.1.17: + version "1.1.18" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.18.tgz#cc98fd75598a324a77188ebddf6650e9cbd8b1d5" + integrity sha512-/mnVgm6u/8OwlIsoyRXtTI0RfQcxZoAZbdwyXap0EeWwcOpDDymyCHM2/aR9XKmHXrvizHoPAOs0pcbiJ6RUaA== dependencies: semver "^5.3.0" @@ -6434,9 +6413,9 @@ number-is-nan@^1.0.0: integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= nwsapi@^2.0.7, nwsapi@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.1.3.tgz#25f3a5cec26c654f7376df6659cdf84b99df9558" - integrity sha512-RowAaJGEgYXEZfQ7tvvdtAQUKPyTR6T6wNu0fwlNsGQYr/h3yQc6oI8WnVZh3Y/Sylwc+dtAlvPqfFZjhTyk3A== + version "2.1.4" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.1.4.tgz#e006a878db23636f8e8a67d33ca0e4edf61a842f" + integrity sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw== oauth-sign@~0.9.0: version "0.9.0" @@ -7579,9 +7558,9 @@ postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: uniq "^1.0.1" postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.2, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.14" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.14.tgz#4527ed6b1ca0d82c53ce5ec1a2041c2346bbd6e5" - integrity sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg== + version "7.0.16" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.16.tgz#48f64f1b4b558cb8b52c88987724359acb010da2" + integrity sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA== dependencies: chalk "^2.4.2" source-map "^0.6.1" @@ -7593,9 +7572,9 @@ prelude-ls@~1.1.2: integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= pretty-bytes@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.1.0.tgz#6237ecfbdc6525beaef4de722cc60a58ae0e6c6d" - integrity sha512-wa5+qGVg9Yt7PB6rYm3kXlKzgzgivYTLRandezh43jjRqgyDyP+9YxfJpJiLs9yKD1WeU8/OvtToWpW7255FtA== + version "5.2.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.2.0.tgz#96c92c6e95a0b35059253fb33c03e260d40f5a1f" + integrity sha512-ujANBhiUsl9AhREUDUEY1GPOharMGm8x8juS7qOHybcLi7XsKfrYQ88hSly1l2i0klXHTDYrlL8ihMCG55Dc3w== pretty-error@^2.1.1: version "2.1.1" @@ -7605,12 +7584,12 @@ pretty-error@^2.1.1: renderkid "^2.0.1" utila "~0.4" -pretty-format@^24.7.0: - version "24.7.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.7.0.tgz#d23106bc2edcd776079c2daa5da02bcb12ed0c10" - integrity sha512-apen5cjf/U4dj7tHetpC7UEFCvtAgnNZnBDkfPv3fokzIqyOJckAG9OlAPC1BlFALnqT/lGB2tl9EJjlK6eCsA== +pretty-format@^24.8.0: + version "24.8.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.8.0.tgz#8dae7044f58db7cb8be245383b565a963e3c27f2" + integrity sha512-P952T7dkrDEplsR+TuY7q3VXDae5Sr7zmQb12JU/NDQa/3CH7/QW0yvqLcGN6jL+zQFKaoJcPc+yJxMTGmosqw== dependencies: - "@jest/types" "^24.7.0" + "@jest/types" "^24.8.0" ansi-regex "^4.0.0" ansi-styles "^3.2.0" react-is "^16.8.4" @@ -7731,16 +7710,16 @@ punycode@1.3.2: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= -punycode@2.x.x, punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + q@^1.1.2: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" @@ -7761,7 +7740,7 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= -querystringify@^2.0.0: +querystringify@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== @@ -7813,52 +7792,53 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-app-polyfill@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-0.2.2.tgz#a903b61a8bfd9c5e5f16fc63bebe44d6922a44fb" - integrity sha512-mAYn96B/nB6kWG87Ry70F4D4rsycU43VYTj3ZCbKP+SLJXwC0x6YCbwcICh3uW8/C9s1VgP197yx+w7SCWeDdQ== +react-app-polyfill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-1.0.0.tgz#735c725c1d4261b710cb200c498789c8b80e0f74" + integrity sha512-fbZxEZdfx+rVENMvGTFjUcDDOZGKHaiavA8Y+FwM2I/o8gJT6pCYZk19XfeOntVzGZH2F1qqH7SLjXMhUM+YJw== dependencies: - core-js "2.6.4" + core-js "3.0.1" object-assign "4.1.1" promise "8.0.2" raf "3.4.1" + regenerator-runtime "0.13.2" whatwg-fetch "3.0.0" -react-dev-utils@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-8.0.0.tgz#7c5b227a45a32ea8ff7fbc318f336cf9e2c6e34c" - integrity sha512-TK8cj7eghvxfe7bfBluLGpI/upo4EXC+G74hYmPucAG8C2XcbT+vKnlWPwLnABb75Zk+mR6D556Da+yvDjljrw== +react-dev-utils@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-9.0.0.tgz#356d95db442441c5d4748e0e49f4fd1e71aecbbd" + integrity sha512-HXvxOnABzIQH804ros5dBFryw4x0FU7Tl5KU2xg71jKx0EDsJYK0LuVVdj9qoLIgD1pmjzpjl7q7pjwXKIe37A== dependencies: "@babel/code-frame" "7.0.0" address "1.0.3" - browserslist "4.4.1" + browserslist "4.5.4" chalk "2.4.2" cross-spawn "6.0.5" detect-port-alt "1.1.6" escape-string-regexp "1.0.5" filesize "3.6.1" find-up "3.0.0" - fork-ts-checker-webpack-plugin "1.0.0-alpha.6" + fork-ts-checker-webpack-plugin "1.0.1" global-modules "2.0.0" globby "8.0.2" gzip-size "5.0.0" immer "1.10.0" - inquirer "6.2.1" + inquirer "6.2.2" is-root "2.0.0" loader-utils "1.2.3" opn "5.4.0" pkg-up "2.0.0" - react-error-overlay "^5.1.4" + react-error-overlay "^5.1.5" recursive-readdir "2.2.2" shell-quote "1.6.1" sockjs-client "1.3.0" - strip-ansi "5.0.0" + strip-ansi "5.2.0" text-table "0.2.0" -react-error-overlay@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-5.1.4.tgz#88dfb88857c18ceb3b9f95076f850d7121776991" - integrity sha512-fp+U98OMZcnduQ+NSEiQa4s/XMsbp+5KlydmkbESOw4P69iWZ68ZMFM5a2BuE0FgqPBKApJyRuYHR95jM8lAmg== +react-error-overlay@^5.1.5: + version "5.1.5" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-5.1.5.tgz#884530fd055476c764eaa8ab13b8ecf1f57bbf2c" + integrity sha512-O9JRum1Zq/qCPFH5qVEvDDrVun8Jv9vbHtZXCR1EuRj9sKg1xJTlHxBzU6AkCzpvxRLuiY4OKImy3cDLQ+UTdg== react-is@^16.8.1, react-is@^16.8.4: version "16.8.6" @@ -7956,21 +7936,16 @@ regenerate@^1.4.0: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== +regenerator-runtime@0.13.2, regenerator-runtime@^0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz#32e59c9a6fb9b1a4aff09b4930ca2d4477343447" + integrity sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA== + regenerator-runtime@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== -regenerator-runtime@^0.12.0: - version "0.12.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" - integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== - -regenerator-runtime@^0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz#32e59c9a6fb9b1a4aff09b4930ca2d4477343447" - integrity sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA== - regenerator-transform@^0.13.4: version "0.13.4" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.4.tgz#18f6763cf1382c69c36df76c6ce122cc694284fb" @@ -7987,9 +7962,9 @@ regex-not@^1.0.0, regex-not@^1.0.2: safe-regex "^1.1.0" regexp-tree@^0.1.0: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.5.tgz#7cd71fca17198d04b4176efd79713f2998009397" - integrity sha512-nUmxvfJyAODw+0B13hj8CFVAxhe7fDEAgJgaotBu3nnR+IgGgZq59YedJP5VYTlkEfqjuK6TuRpnymKdatLZfQ== + version "0.1.6" + resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.6.tgz#84900fa12fdf428a2ac25f04300382a7c0148479" + integrity sha512-LFrA98Dw/heXqDojz7qKFdygZmFoiVlvE1Zp7Cq2cvF+ZA+03Gmhy0k0PQlsC1jvHPiTUSs+pDHEuSWv6+6D7w== regexpp@^2.0.1: version "2.0.1" @@ -8164,13 +8139,20 @@ resolve@1.1.7: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@1.10.0, resolve@^1.10.0, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1, resolve@^1.9.0: +resolve@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba" integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg== dependencies: path-parse "^1.0.6" +resolve@^1.10.0, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1, resolve@^1.9.0: + version "1.10.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.1.tgz#664842ac960795bbe758221cdccda61fb64b5f18" + integrity sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA== + dependencies: + path-parse "^1.0.6" + restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -8194,7 +8176,7 @@ rgba-regex@^1.0.0: resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= -rimraf@2.6.3, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: +rimraf@2.6.3, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== @@ -8228,10 +8210,10 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -rxjs@^6.1.0, rxjs@^6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.4.0.tgz#f3bb0fe7bda7fb69deac0c16f17b50b0b8790504" - integrity sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw== +rxjs@^6.4.0: + version "6.5.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.1.tgz#f7a005a9386361921b8524f38f54cbf80e5d08f4" + integrity sha512-y0j31WJc83wPu31vS1VlAFW5JGrnGC+j+TtGAa1fRQphy48+fDYiDmX8tjGloToEsMkxnouOg/1IzXGKkJnZMg== dependencies: tslib "^1.9.0" @@ -8798,12 +8780,12 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -strip-ansi@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.0.0.tgz#f78f68b5d0866c20b2c9b8c61b5298508dc8756f" - integrity sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow== +strip-ansi@5.2.0, strip-ansi@^5.0.0, strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== dependencies: - ansi-regex "^4.0.0" + ansi-regex "^4.1.0" strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" @@ -8819,13 +8801,6 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" -strip-ansi@^5.0.0, strip-ansi@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -8878,7 +8853,7 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^6.0.0, supports-color@^6.1.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== @@ -8961,10 +8936,10 @@ terser@^3.16.1: source-map "~0.6.1" source-map-support "~0.5.10" -test-exclude@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.2.tgz#7322f8ab037b0b93ad2aab35fe9068baf997a4c4" - integrity sha512-N2pvaLpT8guUpb5Fe1GJlmvmzH3x+DAKmmyEQmFP792QcLYoGE1syxztSvPD1V8yPe6VrcCt6YGQVjSRjCASsA== +test-exclude@^5.2.3: + version "5.2.3" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" + integrity sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g== dependencies: glob "^7.1.3" minimatch "^3.0.4" @@ -9058,13 +9033,6 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -topo@3.x.x: - version "3.0.3" - resolved "https://registry.yarnpkg.com/topo/-/topo-3.0.3.tgz#d5a67fb2e69307ebeeb08402ec2a2a6f5f7ad95c" - integrity sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ== - dependencies: - hoek "6.x.x" - tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" @@ -9098,7 +9066,7 @@ trough@^1.0.0: resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.3.tgz#e29bd1614c6458d44869fc28b255ab7857ef7c24" integrity sha512-fwkLWH+DimvA4YCy+/nvJd61nWQQ2liO/nF/RjkTpiOGi+zxZzVkhb1mvbHIIW4b/8nDsYI8uTmAlc0nNkRMOw== -ts-pnp@^1.0.0: +ts-pnp@1.1.2, ts-pnp@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.1.2.tgz#be8e4bfce5d00f0f58e0666a82260c34a57af552" integrity sha512-f5Knjh7XCyRIzoC/z1Su1yLLRrPrFCgtUAh/9fCSP6NKbATwpOL1+idQVXQokK9GRFURn/jYPGPfegIctwunoA== @@ -9140,12 +9108,12 @@ type-check@~0.3.2: prelude-ls "~1.1.2" type-is@~1.6.16: - version "1.6.16" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" - integrity sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q== + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== dependencies: media-typer "0.3.0" - mime-types "~2.1.18" + mime-types "~2.1.24" typedarray@^0.0.6: version "0.0.6" @@ -9161,9 +9129,9 @@ uglify-js@3.4.x: source-map "~0.6.1" uglify-js@^3.1.4: - version "3.5.6" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.5.6.tgz#8a5f8a06ee7415ac1fa302f4623bc7344b553da4" - integrity sha512-YDKRX8F0Y+Jr7LhoVk0n4G7ltR3Y7qFAj+DtVBthlOgCcIj1hyMigCfousVfn9HKmvJ+qiFlLDwaHx44/e5ZKw== + version "3.5.11" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.5.11.tgz#833442c0aa29b3a7d34344c7c63adaa3f3504f6a" + integrity sha512-izPJg8RsSyqxbdnqX36ExpbH3K7tDBsAU/VfNv89VkMFy3z39zFjunQGsSHOlGlyIfGLGprGeosgQno3bo2/Kg== dependencies: commander "~2.20.0" source-map "~0.6.1" @@ -9306,11 +9274,11 @@ url-loader@1.1.2: schema-utils "^1.0.0" url-parse@^1.4.3: - version "1.4.6" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.6.tgz#baf91d6e6783c8a795eb476892ffef2737fc0456" - integrity sha512-/B8AD9iQ01seoXmXf9z/MjLZQIdOoYl/+gvsQF6+mpnxaTfG9P7srYaiqaDMyKkR36XMXfhqSHss5MyFAO8lew== + version "1.4.7" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== dependencies: - querystringify "^2.0.0" + querystringify "^2.1.1" requires-port "^1.0.0" url@^0.11.0: @@ -9478,9 +9446,9 @@ wbuf@^1.1.0, wbuf@^1.7.3: minimalistic-assert "^1.0.0" web-namespaces@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.2.tgz#c8dc267ab639505276bae19e129dbd6ae72b22b4" - integrity sha512-II+n2ms4mPxK+RnIxRPOw3zwF2jRscdJIUE9BfkKHm4FYEg9+biIoTMnaZF5MpemE3T+VhMLrhbyD4ilkPCSbg== + version "1.1.3" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.3.tgz#9bbf5c99ff0908d2da031f1d732492a96571a83f" + integrity sha512-r8sAtNmgR0WKOKOxzuSgk09JsHlpKlB+uHi937qypOu3PZ17UxPrierFKDye/uNHjNTTEshu5PId8rojIPj/tA== webidl-conversions@^4.0.2: version "4.0.2" @@ -9665,124 +9633,124 @@ wordwrap@~1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= -workbox-background-sync@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-4.3.0.tgz#56d6da78c6813fcf5671327cf732265c02c8677e" - integrity sha512-rmDqz1k2mnG8wj68rBapoFP3iCKmdPeTdD0/GLtErDcaQsKnGlsFmjjJ7OuQbuBa+W0FfVWCE+s3VwqL0D/+DA== +workbox-background-sync@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-4.3.1.tgz#26821b9bf16e9e37fd1d640289edddc08afd1950" + integrity sha512-1uFkvU8JXi7L7fCHVBEEnc3asPpiAL33kO495UMcD5+arew9IbKW2rV5lpzhoWcm/qhGB89YfO4PmB/0hQwPRg== dependencies: - workbox-core "^4.3.0" + workbox-core "^4.3.1" -workbox-broadcast-update@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-4.3.0.tgz#67d4e0fbafbc79a9707d72dda0f99769e9e545bb" - integrity sha512-YYdz+8FAVdy1ZTsXpapWyd5t2nH7KdBIQ9rFlsRMSGFS7LzcKfZy8Tka1W8byMNM1II5cxlFr7f6+3vLahzrCg== +workbox-broadcast-update@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-4.3.1.tgz#e2c0280b149e3a504983b757606ad041f332c35b" + integrity sha512-MTSfgzIljpKLTBPROo4IpKjESD86pPFlZwlvVG32Kb70hW+aob4Jxpblud8EhNb1/L5m43DUM4q7C+W6eQMMbA== dependencies: - workbox-core "^4.3.0" + workbox-core "^4.3.1" workbox-build@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-4.3.0.tgz#281fead712ecd2dce3a4c293b107e8ec46c21b98" - integrity sha512-D2fQa2Isp/BboJ8edYmvsTCrBrPWwVCYa7zMDysLViIaGVQTFMgazRXx8wZ2gZKud13M0maUR5Ln4wS5UiqAIA== + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-4.3.1.tgz#414f70fb4d6de47f6538608b80ec52412d233e64" + integrity sha512-UHdwrN3FrDvicM3AqJS/J07X0KXj67R8Cg0waq1MKEOqzo89ap6zh6LmaLnRAjpB+bDIz+7OlPye9iii9KBnxw== dependencies: "@babel/runtime" "^7.3.4" + "@hapi/joi" "^15.0.0" common-tags "^1.8.0" fs-extra "^4.0.2" glob "^7.1.3" - joi "^14.3.1" lodash.template "^4.4.0" pretty-bytes "^5.1.0" stringify-object "^3.3.0" strip-comments "^1.0.2" - workbox-background-sync "^4.3.0" - workbox-broadcast-update "^4.3.0" - workbox-cacheable-response "^4.3.0" - workbox-core "^4.3.0" - workbox-expiration "^4.3.0" - workbox-google-analytics "^4.3.0" - workbox-navigation-preload "^4.3.0" - workbox-precaching "^4.3.0" - workbox-range-requests "^4.3.0" - workbox-routing "^4.3.0" - workbox-strategies "^4.3.0" - workbox-streams "^4.3.0" - workbox-sw "^4.3.0" - workbox-window "^4.3.0" - -workbox-cacheable-response@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-4.3.0.tgz#132c1cbb15c36d24d502b1c768558e46c912e7f3" - integrity sha512-GlnPS1WtEoPNFVPVW1Ss0CrNPlhB7FpMTh2XwpqdJKq7K/aDI8LKdFpRcZBZ2pfRpOf8b6AjAiDZr0hrJ9EFtQ== - dependencies: - workbox-core "^4.3.0" - -workbox-core@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-4.3.0.tgz#1981c98af8e7da6d16dc8837c4f736f8167cc75d" - integrity sha512-k5j6yfyznkK7zHiYLbCsrJfYWUcJ9ZnFFzI4KSbr7D43rWwQkusHsPmOG3OT1YZseACtLRSnUUzb+Cg2arVXtw== - -workbox-expiration@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-4.3.0.tgz#aaa1cc8ab21134f2f46eeb447b0532b56e86330d" - integrity sha512-mcTWxsBHVkDBlIXOZ9uT3m0bAc7OJ3NTj1pTjWzwVZ6sqvT1I88ewIyppv44GO9JqnwE87lODpdEUIKp9V4lNA== - dependencies: - workbox-core "^4.3.0" - -workbox-google-analytics@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-4.3.0.tgz#ef47cb9fe959bfbc16bd123210ff88891c4afeeb" - integrity sha512-itAfcN/rVNf5WqAMW5/OA/pMkFxZjYuk2ZmOCIuy0fFJeQ4F0PfD3Y1DzX1JrKHPMIPeXvvZiAGY8+HRuJjy7w== - dependencies: - workbox-background-sync "^4.3.0" - workbox-core "^4.3.0" - workbox-routing "^4.3.0" - workbox-strategies "^4.3.0" - -workbox-navigation-preload@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-4.3.0.tgz#b4d32404921b10cb4a916a90e660ffc76877b09f" - integrity sha512-1RoaOZD8mMTPjvTNG/FWSQZmfTlTP5FC7c6ZwKWWGoULcxPCmiqI8uWOnMg1/S+eAjYTtNfToW2pfvK4zi5ihA== - dependencies: - workbox-core "^4.3.0" - -workbox-precaching@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-4.3.0.tgz#1aa386fb81bbb7cc1e0c484f659e5ac9f6820005" - integrity sha512-wEsF7+I1opRbyJysYWtn8c1liHqA3bvtaTk4FohE3ViZfn2MIEzORuk7G1kEBZEdJnGf7QcfVJ2tNFYv72yQZQ== - dependencies: - workbox-core "^4.3.0" - -workbox-range-requests@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-4.3.0.tgz#ae25e33918701ffa2c5dd2d86bdfa1cf779527e8" - integrity sha512-2NskkW6Qmkm9YQPh7swODfB6u3yALqdUqxb0i/3tYp4OKEux50ju9B1OK/u3V/INJ6q2s/CwYmxwxJHhXi9Nfg== - dependencies: - workbox-core "^4.3.0" - -workbox-routing@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-4.3.0.tgz#6bf838d0dc5be43cb5bcba9010874971ab642067" - integrity sha512-/lqWiZRjtyKi3If3J8jWHXJQIjaSLv8WKbGnriOcTxFEG7t+AJ79QYIxWXv0UQo4KFpjQRQUag+38T9spbV0IA== - dependencies: - workbox-core "^4.3.0" - -workbox-strategies@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-4.3.0.tgz#96eeb2d39e99d549d914e017cbe2bfd0a0d1a8b4" - integrity sha512-yzhs07UZg7CR0thFFsUDI5hp+I0WoKd9IHSj4ckHoUAslyKLpmwGnOInsPeq2WQfXn7CkyinRjwUrwv3FMw1Gw== - dependencies: - workbox-core "^4.3.0" - -workbox-streams@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-4.3.0.tgz#836e27e302b90167da2ca47cd261eeb3369fb9ff" - integrity sha512-CIA9inxuFELQOO+/7+JpE50cBhpTWOYcLK7tQpriQ6PJod2tAMgo9X89vt9vLk1pN0PMd749MqurAz8FgLHHEg== - dependencies: - workbox-core "^4.3.0" - -workbox-sw@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-4.3.0.tgz#07a8b0df4e3a4ad05bb56f5d5686723923738e56" - integrity sha512-d4INzCxFrHixUrhYV5z+6+zX1AKO3T77JY7l1ZKh15blW3Mz9u0FpJATzz3NWaI9X/cxgRyOsR8J7deu3XjlEg== + workbox-background-sync "^4.3.1" + workbox-broadcast-update "^4.3.1" + workbox-cacheable-response "^4.3.1" + workbox-core "^4.3.1" + workbox-expiration "^4.3.1" + workbox-google-analytics "^4.3.1" + workbox-navigation-preload "^4.3.1" + workbox-precaching "^4.3.1" + workbox-range-requests "^4.3.1" + workbox-routing "^4.3.1" + workbox-strategies "^4.3.1" + workbox-streams "^4.3.1" + workbox-sw "^4.3.1" + workbox-window "^4.3.1" + +workbox-cacheable-response@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-4.3.1.tgz#f53e079179c095a3f19e5313b284975c91428c91" + integrity sha512-Rp5qlzm6z8IOvnQNkCdO9qrDgDpoPNguovs0H8C+wswLuPgSzSp9p2afb5maUt9R1uTIwOXrVQMmPfPypv+npw== + dependencies: + workbox-core "^4.3.1" + +workbox-core@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-4.3.1.tgz#005d2c6a06a171437afd6ca2904a5727ecd73be6" + integrity sha512-I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg== + +workbox-expiration@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-4.3.1.tgz#d790433562029e56837f341d7f553c4a78ebe921" + integrity sha512-vsJLhgQsQouv9m0rpbXubT5jw0jMQdjpkum0uT+d9tTwhXcEZks7qLfQ9dGSaufTD2eimxbUOJfWLbNQpIDMPw== + dependencies: + workbox-core "^4.3.1" + +workbox-google-analytics@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-4.3.1.tgz#9eda0183b103890b5c256e6f4ea15a1f1548519a" + integrity sha512-xzCjAoKuOb55CBSwQrbyWBKqp35yg1vw9ohIlU2wTy06ZrYfJ8rKochb1MSGlnoBfXGWss3UPzxR5QL5guIFdg== + dependencies: + workbox-background-sync "^4.3.1" + workbox-core "^4.3.1" + workbox-routing "^4.3.1" + workbox-strategies "^4.3.1" + +workbox-navigation-preload@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-4.3.1.tgz#29c8e4db5843803b34cd96dc155f9ebd9afa453d" + integrity sha512-K076n3oFHYp16/C+F8CwrRqD25GitA6Rkd6+qAmLmMv1QHPI2jfDwYqrytOfKfYq42bYtW8Pr21ejZX7GvALOw== + dependencies: + workbox-core "^4.3.1" + +workbox-precaching@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-4.3.1.tgz#9fc45ed122d94bbe1f0ea9584ff5940960771cba" + integrity sha512-piSg/2csPoIi/vPpp48t1q5JLYjMkmg5gsXBQkh/QYapCdVwwmKlU9mHdmy52KsDGIjVaqEUMFvEzn2LRaigqQ== + dependencies: + workbox-core "^4.3.1" + +workbox-range-requests@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-4.3.1.tgz#f8a470188922145cbf0c09a9a2d5e35645244e74" + integrity sha512-S+HhL9+iTFypJZ/yQSl/x2Bf5pWnbXdd3j57xnb0V60FW1LVn9LRZkPtneODklzYuFZv7qK6riZ5BNyc0R0jZA== + dependencies: + workbox-core "^4.3.1" + +workbox-routing@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-4.3.1.tgz#a675841af623e0bb0c67ce4ed8e724ac0bed0cda" + integrity sha512-FkbtrODA4Imsi0p7TW9u9MXuQ5P4pVs1sWHK4dJMMChVROsbEltuE79fBoIk/BCztvOJ7yUpErMKa4z3uQLX+g== + dependencies: + workbox-core "^4.3.1" + +workbox-strategies@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-4.3.1.tgz#d2be03c4ef214c115e1ab29c9c759c9fe3e9e646" + integrity sha512-F/+E57BmVG8dX6dCCopBlkDvvhg/zj6VDs0PigYwSN23L8hseSRwljrceU2WzTvk/+BSYICsWmRq5qHS2UYzhw== + dependencies: + workbox-core "^4.3.1" + +workbox-streams@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-4.3.1.tgz#0b57da70e982572de09c8742dd0cb40a6b7c2cc3" + integrity sha512-4Kisis1f/y0ihf4l3u/+ndMkJkIT4/6UOacU3A4BwZSAC9pQ9vSvJpIi/WFGQRH/uPXvuVjF5c2RfIPQFSS2uA== + dependencies: + workbox-core "^4.3.1" + +workbox-sw@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-4.3.1.tgz#df69e395c479ef4d14499372bcd84c0f5e246164" + integrity sha512-0jXdusCL2uC5gM3yYFT6QMBzKfBr2XTk0g5TPAV4y8IZDyVNDyj1a8uSXy3/XrvkVTmQvLN4O5k3JawGReXr9w== workbox-webpack-plugin@4.2.0: version "4.2.0" @@ -9793,17 +9761,17 @@ workbox-webpack-plugin@4.2.0: json-stable-stringify "^1.0.1" workbox-build "^4.2.0" -workbox-window@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-4.3.0.tgz#22636919ec408292e2a68b7da818f3fe81932d18" - integrity sha512-Lf5Da+4VdmUZSVhBFEcZSBWNHm9x7Zr2FUp1mgUZhrIwnkfL4qmjpG7TyAzaPm7QLc/O+yxDDC5cgEvMtE1fjQ== +workbox-window@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-4.3.1.tgz#ee6051bf10f06afa5483c9b8dfa0531994ede0f3" + integrity sha512-C5gWKh6I58w3GeSc0wp2Ne+rqVw8qwcmZnQGpjiek8A2wpbxSJb1FdCoQVO+jDJs35bFgo/WETgl1fqgsxN0Hg== dependencies: - workbox-core "^4.3.0" + workbox-core "^4.3.1" worker-farm@^1.5.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" - integrity sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ== + version "1.7.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== dependencies: errno "~0.1.7" From 57ef103440c24e41b0d7dc82b7ad7fc1dc817eca Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Wed, 8 May 2019 09:36:40 -0600 Subject: [PATCH 0680/1249] Publish - babel-preset-react-app@9.0.0 - create-react-app@3.0.1 - eslint-config-react-app@4.0.1 - react-app-polyfill@1.0.1 - react-dev-utils@9.0.1 - react-error-overlay@5.1.6 - react-scripts@3.0.1 --- packages/babel-preset-react-app/package.json | 2 +- packages/create-react-app/package.json | 2 +- packages/eslint-config-react-app/package.json | 2 +- packages/react-app-polyfill/package.json | 2 +- packages/react-dev-utils/package.json | 4 ++-- packages/react-error-overlay/package.json | 8 ++++---- packages/react-scripts/package.json | 10 +++++----- 7 files changed, 15 insertions(+), 15 deletions(-) diff --git a/packages/babel-preset-react-app/package.json b/packages/babel-preset-react-app/package.json index 9f8aab641c5..8d36e24c037 100644 --- a/packages/babel-preset-react-app/package.json +++ b/packages/babel-preset-react-app/package.json @@ -1,6 +1,6 @@ { "name": "babel-preset-react-app", - "version": "8.0.0", + "version": "9.0.0", "description": "Babel preset used by Create React App", "repository": { "type": "git", diff --git a/packages/create-react-app/package.json b/packages/create-react-app/package.json index 502bc8247ba..e265819ffd6 100644 --- a/packages/create-react-app/package.json +++ b/packages/create-react-app/package.json @@ -1,6 +1,6 @@ { "name": "create-react-app", - "version": "3.0.0", + "version": "3.0.1", "keywords": [ "react" ], diff --git a/packages/eslint-config-react-app/package.json b/packages/eslint-config-react-app/package.json index 66db82f5195..43f700771d2 100644 --- a/packages/eslint-config-react-app/package.json +++ b/packages/eslint-config-react-app/package.json @@ -1,6 +1,6 @@ { "name": "eslint-config-react-app", - "version": "4.0.0", + "version": "4.0.1", "description": "ESLint configuration used by Create React App", "repository": { "type": "git", diff --git a/packages/react-app-polyfill/package.json b/packages/react-app-polyfill/package.json index f927eaea583..1dd3b2c441c 100644 --- a/packages/react-app-polyfill/package.json +++ b/packages/react-app-polyfill/package.json @@ -1,6 +1,6 @@ { "name": "react-app-polyfill", - "version": "1.0.0", + "version": "1.0.1", "description": "Polyfills for various browsers including commonly used language features", "repository": { "type": "git", diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index f94efb81419..ad5882ca7b1 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -1,6 +1,6 @@ { "name": "react-dev-utils", - "version": "9.0.0", + "version": "9.0.1", "description": "Webpack utilities used by Create React App", "repository": { "type": "git", @@ -69,7 +69,7 @@ "loader-utils": "1.2.3", "opn": "5.4.0", "pkg-up": "2.0.0", - "react-error-overlay": "^5.1.5", + "react-error-overlay": "^5.1.6", "recursive-readdir": "2.2.2", "shell-quote": "1.6.1", "sockjs-client": "1.3.0", diff --git a/packages/react-error-overlay/package.json b/packages/react-error-overlay/package.json index c7b925de7ef..2ed9697fdb7 100644 --- a/packages/react-error-overlay/package.json +++ b/packages/react-error-overlay/package.json @@ -1,6 +1,6 @@ { "name": "react-error-overlay", - "version": "5.1.5", + "version": "5.1.6", "description": "An overlay for displaying stack frames.", "main": "lib/index.js", "sideEffects": false, @@ -40,12 +40,12 @@ "babel-eslint": "10.0.1", "babel-jest": "^24.8.0", "babel-loader": "8.0.5", - "babel-preset-react-app": "^8.0.0", + "babel-preset-react-app": "^9.0.0", "chalk": "^2.4.2", "chokidar": "^2.1.2", "cross-env": "5.2.0", "eslint": "^5.16.0", - "eslint-config-react-app": "^4.0.0", + "eslint-config-react-app": "^4.0.1", "eslint-plugin-flowtype": "2.50.1", "eslint-plugin-import": "2.16.0", "eslint-plugin-jsx-a11y": "6.2.1", @@ -58,7 +58,7 @@ "promise": "8.0.2", "raw-loader": "^1.0.0", "react": "^16.8.4", - "react-app-polyfill": "^1.0.0", + "react-app-polyfill": "^1.0.1", "react-dom": "^16.8.4", "rimraf": "^2.6.3", "settle-promise": "1.0.0", diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 5cd6f587c4b..8702109710d 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -1,6 +1,6 @@ { "name": "react-scripts", - "version": "3.0.0", + "version": "3.0.1", "description": "Configuration and scripts for Create React App.", "repository": { "type": "git", @@ -36,14 +36,14 @@ "babel-jest": "^24.8.0", "babel-loader": "8.0.5", "babel-plugin-named-asset-import": "^0.3.2", - "babel-preset-react-app": "^8.0.0", + "babel-preset-react-app": "^9.0.0", "camelcase": "^5.2.0", "case-sensitive-paths-webpack-plugin": "2.2.0", "css-loader": "2.1.1", "dotenv": "6.2.0", "dotenv-expand": "4.2.0", "eslint": "^5.16.0", - "eslint-config-react-app": "^4.0.0", + "eslint-config-react-app": "^4.0.1", "eslint-loader": "2.1.2", "eslint-plugin-flowtype": "2.50.1", "eslint-plugin-import": "2.16.0", @@ -67,8 +67,8 @@ "postcss-normalize": "7.0.1", "postcss-preset-env": "6.6.0", "postcss-safe-parser": "4.0.1", - "react-app-polyfill": "^1.0.0", - "react-dev-utils": "^9.0.0", + "react-app-polyfill": "^1.0.1", + "react-dev-utils": "^9.0.1", "resolve": "1.10.0", "sass-loader": "7.1.0", "semver": "6.0.0", From e2f43a06a60646f2db00ff0558acb6d2a3355a36 Mon Sep 17 00:00:00 2001 From: James Friedman Date: Sun, 12 May 2019 07:30:58 -0400 Subject: [PATCH 0681/1249] Allow additional Jest config keys (#6055) --- .../react-scripts/scripts/utils/createJestConfig.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/react-scripts/scripts/utils/createJestConfig.js b/packages/react-scripts/scripts/utils/createJestConfig.js index d2c788268b8..8d37500d1ab 100644 --- a/packages/react-scripts/scripts/utils/createJestConfig.js +++ b/packages/react-scripts/scripts/utils/createJestConfig.js @@ -74,15 +74,25 @@ module.exports = (resolve, rootDir, isEjecting) => { 'extraGlobals', 'globalSetup', 'globalTeardown', + 'moduleNameMapper', 'resetMocks', 'resetModules', 'snapshotSerializers', + 'transform', + 'transformIgnorePatterns', 'watchPathIgnorePatterns', ]; if (overrides) { supportedKeys.forEach(key => { if (overrides.hasOwnProperty(key)) { - config[key] = overrides[key]; + if (Array.isArray(config[key]) || typeof config[key] !== 'object') { + // for arrays or primitive types, directly override the config key + config[key] = overrides[key]; + } else { + // for object types, extend gracefully + config[key] = Object.assign({}, config[key], overrides[key]); + } + delete overrides[key]; } }); From b59d42744ecd9c16f3818bc6fe8afbcaec97f7e9 Mon Sep 17 00:00:00 2001 From: Orta Date: Mon, 13 May 2019 12:40:16 -0400 Subject: [PATCH 0682/1249] Update Relay docs (#7041) --- docusaurus/docs/adding-relay.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docusaurus/docs/adding-relay.md b/docusaurus/docs/adding-relay.md index 8fd7eeabd56..b44d6b31b54 100644 --- a/docusaurus/docs/adding-relay.md +++ b/docusaurus/docs/adding-relay.md @@ -3,18 +3,18 @@ id: adding-relay title: Adding Relay --- -Relay is a framework for building data-driven React applications powered by GraphQL. The current release candidate of Relay works with Create React App projects out of the box using Babel Macros. Simply set up your project as laid out in the [Relay documentation](https://facebook.github.io/relay/), then make sure you have a version of the babel plugin providing the macro. +Relay is a framework for building data-driven React applications powered by GraphQL. The current release of Relay works with Create React App projects out of the box using Babel Macros. Simply set up your project as laid out in the [Relay documentation](https://facebook.github.io/relay/), then make sure you have a version of the babel plugin providing the macro. To add it, run: ```sh -npm install --save babel-plugin-relay@dev +npm install --save babel-plugin-relay ``` Alternatively you may use `yarn`: ```sh -yarn upgrade babel-plugin-relay@dev +yarn upgrade babel-plugin-relay ``` Then, wherever you use the `graphql` template tag, import the macro: From 394e385d5e25705ebd9f82e90958f6f207a5c315 Mon Sep 17 00:00:00 2001 From: Vladyslav Moisieienkov Date: Tue, 14 May 2019 20:17:45 +0200 Subject: [PATCH 0683/1249] docs: fix env-cmd example in deployment section (#7039) --- docusaurus/docs/deployment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/docs/deployment.md b/docusaurus/docs/deployment.md index 78e4ee254a3..848b7aed750 100644 --- a/docusaurus/docs/deployment.md +++ b/docusaurus/docs/deployment.md @@ -150,7 +150,7 @@ For example, to create a build environment for a staging environment: ```json { "scripts": { - "build:staging": "env-cmd .env.staging npm run build" + "build:staging": "env-cmd -f .env.staging npm run build" } } ``` From 4704382558fe6f0d7564c72ce65d45e441a3ff61 Mon Sep 17 00:00:00 2001 From: Amy Lam Date: Thu, 16 May 2019 16:38:39 -0700 Subject: [PATCH 0684/1249] Correct spelling of browserslist (#7059) --- docusaurus/docs/supported-browsers-features.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docusaurus/docs/supported-browsers-features.md b/docusaurus/docs/supported-browsers-features.md index 2826b123afa..32b205a23e9 100644 --- a/docusaurus/docs/supported-browsers-features.md +++ b/docusaurus/docs/supported-browsers-features.md @@ -29,7 +29,7 @@ If you use any other ES6+ features that need **runtime support** (such as `Array ## Configuring Supported Browsers -By default, the generated project includes a [`browerslist`](https://github.com/browserslist/browserslist) configuration in your `package.json` file to target a broad range of browsers based on global usage (`> 0.2%`) for production builds, and modern browsers for development. This gives a good development experience, especially when using language features such as async/await, but still provides high compatibility with many browsers in production. +By default, the generated project includes a [`browserslist`](https://github.com/browserslist/browserslist) configuration in your `package.json` file to target a broad range of browsers based on global usage (`> 0.2%`) for production builds, and modern browsers for development. This gives a good development experience, especially when using language features such as async/await, but still provides high compatibility with many browsers in production. The `browserslist` configuration controls the outputted JavaScript so that the emitted code will be compatible with the browsers specified. The `production` list will be used when creating a production build by running the `build` script, and the `development` list will be used when running the `start` script. You can use [https://browserl.ist](https://browserl.ist/?q=%3E+0.2%25%2C+not+dead%2C+not+op_mini+all) to see the browsers supported by your configured `browserslist`. @@ -52,4 +52,4 @@ Here is an example `browserslist` that is specified in `package.json`: > Note that this does not include polyfills automatically for you. You will still need to polyfill language features (see above) as needed based on the browsers your are supporting. -> When editing the `browerslist` config, you may notice that your changes don't get picked up right away. This is due to an [issue in babel-loader](https://github.com/babel/babel-loader/issues/690) not detecting the change in your `package.json`. An easy solution is to delete the `node_modules/.cache` folder and try again. +> When editing the `browserslist` config, you may notice that your changes don't get picked up right away. This is due to an [issue in babel-loader](https://github.com/babel/babel-loader/issues/690) not detecting the change in your `package.json`. An easy solution is to delete the `node_modules/.cache` folder and try again. From bdaccf7161af1d78a867d7798759be296ad1b4c5 Mon Sep 17 00:00:00 2001 From: Vincent Pizzo Date: Mon, 20 May 2019 08:40:54 -0700 Subject: [PATCH 0685/1249] Adjust typescript-eslint to not warn about typedefs when used before defined (#7079) --- packages/eslint-config-react-app/index.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/eslint-config-react-app/index.js b/packages/eslint-config-react-app/index.js index bc6d0a14c4b..fbd3f2a3f97 100644 --- a/packages/eslint-config-react-app/index.js +++ b/packages/eslint-config-react-app/index.js @@ -79,6 +79,16 @@ module.exports = { 'no-array-constructor': 'off', '@typescript-eslint/no-array-constructor': 'warn', '@typescript-eslint/no-namespace': 'error', + 'no-use-before-define': 'off', + '@typescript-eslint/no-use-before-define': [ + 'warn', + { + functions: false, + classes: false, + variables: false, + typedefs: false, + }, + ], 'no-unused-vars': 'off', '@typescript-eslint/no-unused-vars': [ 'warn', From a98337c257677bad0c7b235886d5dd6776c3c374 Mon Sep 17 00:00:00 2001 From: James George Date: Tue, 21 May 2019 13:53:04 +0530 Subject: [PATCH 0686/1249] Replace opn with open (#7058) The `opn` package has been deprecated, replaced by `open`. --- packages/react-dev-utils/openBrowser.js | 10 +++++----- packages/react-dev-utils/package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/react-dev-utils/openBrowser.js b/packages/react-dev-utils/openBrowser.js index 965d281b673..beb250f947c 100644 --- a/packages/react-dev-utils/openBrowser.js +++ b/packages/react-dev-utils/openBrowser.js @@ -10,9 +10,9 @@ var chalk = require('chalk'); var execSync = require('child_process').execSync; var spawn = require('cross-spawn'); -var opn = require('opn'); +var open = require('open'); -// https://github.com/sindresorhus/opn#app +// https://github.com/sindresorhus/open#app var OSX_CHROME = 'google chrome'; const Actions = Object.freeze({ @@ -24,7 +24,7 @@ const Actions = Object.freeze({ function getBrowserEnv() { // Attempt to honor this environment variable. // It is specific to the operating system. - // See https://github.com/sindresorhus/opn#app for documentation. + // See https://github.com/sindresorhus/open#app for documentation. const value = process.env.BROWSER; let action; if (!value) { @@ -93,11 +93,11 @@ function startBrowserProcess(browser, url) { browser = undefined; } - // Fallback to opn + // Fallback to open // (It will always open new tab) try { var options = { app: browser, wait: false }; - opn(url, options).catch(() => {}); // Prevent `unhandledRejection` error. + open(url, options).catch(() => {}); // Prevent `unhandledRejection` error. return true; } catch (err) { return false; diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index ad5882ca7b1..d05e7f2ebb6 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -67,7 +67,7 @@ "inquirer": "6.2.2", "is-root": "2.0.0", "loader-utils": "1.2.3", - "opn": "5.4.0", + "open": "^6.3.0", "pkg-up": "2.0.0", "react-error-overlay": "^5.1.6", "recursive-readdir": "2.2.2", From e831b6b1fad1f82f425f8e9af19fb460b4ec21e3 Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Tue, 21 May 2019 10:32:52 -0600 Subject: [PATCH 0687/1249] Add test to make sure .d.ts files are ignored when checking for TypeScript project (#6858) --- test/fixtures/issue-5947-not-typescript/index.test.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/test/fixtures/issue-5947-not-typescript/index.test.js b/test/fixtures/issue-5947-not-typescript/index.test.js index c0d38261f6f..aacc783152c 100644 --- a/test/fixtures/issue-5947-not-typescript/index.test.js +++ b/test/fixtures/issue-5947-not-typescript/index.test.js @@ -16,6 +16,7 @@ test('Ignores node_modules when detecting TypeScript', async () => { 'package', 'index.ts', ]; + const dtsSrcPath = [testSetup.testDirectory, 'src', 'types', 'index.d.ts']; const tsSrcPath = path.join(testSetup.testDirectory, 'src', 'index.ts'); // Step 1. @@ -28,6 +29,13 @@ test('Ignores node_modules when detecting TypeScript', async () => { await testSetup.scripts.build(); expect(fs.existsSync(tsConfigPath)).toBe(false); + // Step 1b. + // See if src/types/index.d.ts is treated as a JS project + fs.mkdirSync(path.join(...dtsSrcPath.slice(0, 3))); + fs.writeFileSync(path.join(...dtsSrcPath)); + await testSetup.scripts.build(); + expect(fs.existsSync(tsConfigPath)).toBe(false); + // Step 2. // Add TS and ensure tsconfig.json is generated fs.writeFileSync(tsSrcPath); From 317f5002233029942394df9e87183420359b18cf Mon Sep 17 00:00:00 2001 From: Ryan Boone Date: Wed, 22 May 2019 11:29:44 -0500 Subject: [PATCH 0688/1249] Improve breaking changes info for CRA 3.0.0 (#7086) I'm adding #6821 to breaking changes as this causes any existing script that relies on the structure of `assest-manifest` to break. --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d33a7bc6a1..c48afc861ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -129,6 +129,10 @@ The `browserslist` config in your `package.json` is now used to control the outp We've removed the `--no-watch` flag from the `start` script in favor of Jest's own `--watchAll=false`. +### New structure in `asset-manifest.json` + +All asset paths have been moved under the `files` key in `asset-manifest.json`. + ## New Features ### using `jsconfig.json`/`tsconfig.json` @@ -176,6 +180,7 @@ You can now include a version of Normalize.css in your project that will use you - [#6750](https://github.com/facebook/create-react-app/pull/6750) change NODE_ENV and PUBLIC_URL into readonly ([@xiaoxiangmoe](https://github.com/xiaoxiangmoe)) - [#4176](https://github.com/facebook/create-react-app/pull/4176) Remove --coverage + --watch workaround for the test command ([@stipsan](https://github.com/stipsan)) - [#6615](https://github.com/facebook/create-react-app/pull/6615) Allow .json type checking ([@ianschmitz](https://github.com/ianschmitz)) + - [#6821](https://github.com/facebook/create-react-app/pull/6821) Add custom function to generate asset manifest ([@iansu](https://github.com/iansu)) - `babel-preset-react-app`, `react-app-polyfill` - [#6769](https://github.com/facebook/create-react-app/pull/6769) Update to core-js@3 ([@ianschmitz](https://github.com/ianschmitz)) - `babel-plugin-named-asset-import`, `confusing-browser-globals`, `react-dev-utils`, `react-error-overlay`, `react-scripts` From 8e32ce57d01e2e8e68a4ee7da1752509d9733991 Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Fri, 24 May 2019 09:53:34 -0600 Subject: [PATCH 0689/1249] Upgrade svgr to 4.2.0 (#6877) --- packages/react-scripts/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 8702109710d..e4a93a37e03 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -29,7 +29,7 @@ "types": "./lib/react-app.d.ts", "dependencies": { "@babel/core": "7.4.3", - "@svgr/webpack": "4.1.0", + "@svgr/webpack": "4.2.0", "@typescript-eslint/eslint-plugin": "1.6.0", "@typescript-eslint/parser": "1.6.0", "babel-eslint": "10.0.1", From 695ca7576a6d27912bcf9d992b00ef7316232555 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20B=C3=BCschel?= <13087421+tobiasbueschel@users.noreply.github.com> Date: Tue, 28 May 2019 23:48:11 +0800 Subject: [PATCH 0690/1249] Fix minimum version error on old versions of Node.js (#6941) --- packages/create-react-app/index.js | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/packages/create-react-app/index.js b/packages/create-react-app/index.js index 808ebcfe69c..b26463f2e8a 100755 --- a/packages/create-react-app/index.js +++ b/packages/create-react-app/index.js @@ -36,21 +36,17 @@ 'use strict'; -var chalk = require('chalk'); - var currentNodeVersion = process.versions.node; var semver = currentNodeVersion.split('.'); var major = semver[0]; if (major < 8) { console.error( - chalk.red( - 'You are running Node ' + - currentNodeVersion + - '.\n' + - 'Create React App requires Node 8 or higher. \n' + - 'Please update your version of Node.' - ) + 'You are running Node ' + + currentNodeVersion + + '.\n' + + 'Create React App requires Node 8 or higher. \n' + + 'Please update your version of Node.' ); process.exit(1); } From 7b196fa4d6f4a98b93a460440adfef206e214652 Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Tue, 28 May 2019 19:12:22 -0700 Subject: [PATCH 0691/1249] Add Azure DevOps build pipeline (#7096) --- README.md | 2 +- azure-pipelines-test-job.yml | 40 ++++++++++ azure-pipelines.yml | 78 +++++++++++++++++++ tasks/e2e-behavior.sh | 31 +++----- tasks/e2e-installs.sh | 28 ++----- tasks/e2e-kitchensink-eject.sh | 28 ++----- tasks/e2e-kitchensink.sh | 28 ++----- tasks/e2e-simple.sh | 29 +++---- tasks/local-registry.sh | 36 +++++++++ tasks/verdaccio.yaml | 13 +++- test/fixtures/__shared__/util/scripts.js | 4 +- test/fixtures/__shared__/util/setup.js | 10 ++- .../__snapshots__/index.test.js.snap | 4 +- test/fixtures/mjs-support/index.test.js | 14 ++-- test/fixtures/mjs-support/package.json | 3 - test/fixtures/mjs-support/src/App.js | 77 ++++++------------ .../webpack-message-formatting/index.test.js | 17 +++- 17 files changed, 267 insertions(+), 175 deletions(-) create mode 100644 azure-pipelines-test-job.yml create mode 100644 azure-pipelines.yml create mode 100644 tasks/local-registry.sh diff --git a/README.md b/README.md index 75aed91b989..347d4359760 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Create React App [![Build Status](https://travis-ci.org/facebook/create-react-app.svg?branch=master)](https://travis-ci.org/facebook/create-react-app) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-green.svg)](https://github.com/facebook/create-react-app/pulls) +# Create React App [![Build Status](https://dev.azure.com/facebook/create-react-app/_apis/build/status/facebook.create-react-app?branchName=master)](https://dev.azure.com/facebook/create-react-app/_build/latest?definitionId=1&branchName=master) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-green.svg)](https://github.com/facebook/create-react-app/pulls) Create React apps with no build configuration. diff --git a/azure-pipelines-test-job.yml b/azure-pipelines-test-job.yml new file mode 100644 index 00000000000..18000d462cb --- /dev/null +++ b/azure-pipelines-test-job.yml @@ -0,0 +1,40 @@ +# +# Azure Pipelines job for building and testing create-react-app on Linux, Windows, and macOS. +# + +parameters: + name: '' + testScript: '' + configurations: + LinuxNode8: { vmImage: 'ubuntu-16.04', nodeVersion: 8.x } + LinuxNode10: { vmImage: 'ubuntu-16.04', nodeVersion: 10.x } + WindowsNode8: { vmImage: 'vs2017-win2016', nodeVersion: 8.x } + WindowsNode10: { vmImage: 'vs2017-win2016', nodeVersion: 10.x } + +jobs: +- job: ${{ parameters.name }} + strategy: + matrix: + ${{ insert }}: ${{ parameters.configurations }} + pool: + vmImage: $(vmImage) + steps: + - script: | + git config --global core.autocrlf false + git config --global user.name "Create React App" + git config --global user.email "cra@email.com" + displayName: 'Initialize Git config' + + - checkout: self + path: create-react-app + + - task: NodeTool@0 + inputs: + versionSpec: $(nodeVersion) + displayName: 'Install Node.js' + + - script: yarn --frozen-lockfile + displayName: 'Run yarn' + + - bash: ${{ parameters.testScript }} + displayName: 'Run tests' diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 00000000000..c51be42da86 --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,78 @@ +# +# Azure Pipelines configuration for building and testing create-react-app on Linux, Windows, and macOS. +# + +trigger: +- master + +variables: + CI: true + # Overrides the Yarn and NPM cache directories so they are on the same drive as the source. This helps improve build performance on Windows hosted agents. + YARN_CACHE_FOLDER: $(Build.SourcesDirectory)/../yarn-cache + NPM_CONFIG_CACHE: $(Build.SourcesDirectory)/../npm-cache + # Sets TEMP to be on the same drive as the cloned source on Windows. This avoids test scripts that "cd" into a directory under TEMP from failing because this directory is on a different drive from the current directory. + VSTS_OVERWRITE_TEMP: True + # Override Verdaccio package to use. This is temoporary and is needed to avoid socket timeouts on hosted Windows agent (on Azure). This also changes Verdaccio to return a 503 (service unavailable) instead of a 404 (not found) when the connection to the uplink timesout. + VERDACCIO_PACKAGE: https://github.com/willsmythe/verdaccio/releases/download/create-react-app/verdaccio-4.0.0-alpha.8.tgz + +# ****************************************************************************** +# Simple test suite +# ****************************************************************************** +jobs: +- template: azure-pipelines-test-job.yml + parameters: + name: Simple + testScript: tasks/e2e-simple.sh + +# ****************************************************************************** +# Installs test suite +# ****************************************************************************** +- template: azure-pipelines-test-job.yml + parameters: + name: Installs + testScript: tasks/e2e-installs.sh + +# ****************************************************************************** +# Kitchensink test suite +# ****************************************************************************** +- template: azure-pipelines-test-job.yml + parameters: + name: Kitchensink + testScript: tasks/e2e-kitchensink.sh + +# ****************************************************************************** +# Kitchensink Eject test suite +# ****************************************************************************** +- template: azure-pipelines-test-job.yml + parameters: + name: KitchensinkEject + testScript: tasks/e2e-kitchensink-eject.sh + +# ****************************************************************************** +# Behavior test suite +# ****************************************************************************** +- template: azure-pipelines-test-job.yml + parameters: + name: Behavior + testScript: tasks/e2e-behavior.sh + configurations: + LinuxNode8: { vmImage: 'ubuntu-16.04', nodeVersion: 8.x } + LinuxNode10: { vmImage: 'ubuntu-16.04', nodeVersion: 10.x } + WindowsNode8: { vmImage: 'vs2017-win2016', nodeVersion: 8.x } + WindowsNode10: { vmImage: 'vs2017-win2016', nodeVersion: 10.x } + MacNode8: { vmImage: 'macOS-10.13', nodeVersion: 8.x } + MacNode10: { vmImage: 'macOS-10.13', nodeVersion: 10.x } + +# ****************************************************************************** +# Old Node test suite +# ****************************************************************************** +- job: OldNode + pool: + vmImage: ubuntu-16.04 + steps: + - task: NodeTool@0 + inputs: + versionSpec: 6.x + displayName: 'Install Node.js 6.x' + - bash: tasks/e2e-old-node.sh + displayName: 'Run tests' diff --git a/tasks/e2e-behavior.sh b/tasks/e2e-behavior.sh index 93a49e5b6b3..31ab9991d20 100755 --- a/tasks/e2e-behavior.sh +++ b/tasks/e2e-behavior.sh @@ -15,18 +15,16 @@ cd "$(dirname "$0")" # CLI, app, and test module temporary locations # http://unix.stackexchange.com/a/84980 temp_app_path=`mktemp -d 2>/dev/null || mktemp -d -t 'temp_app_path'` -temp_module_path=`mktemp -d 2>/dev/null || mktemp -d -t 'temp_module_path'` -custom_registry_url=http://localhost:4873 -original_npm_registry_url=`npm get registry` -original_yarn_registry_url=`yarn config get registry` + +# Load functions for working with local NPM registry (Verdaccio) +source local-registry.sh function cleanup { - echo 'Cleaning up.' - ps -ef | grep 'verdaccio' | grep -v grep | awk '{print $2}' | xargs kill -9 + echo 'Cleaning up.' ps -ef | grep 'react-scripts' | grep -v grep | awk '{print $2}' | xargs kill -9 cd "$root_path" - npm set registry "$original_npm_registry_url" - yarn config set registry "$original_yarn_registry_url" + # Restore the original NPM and Yarn registry URLs and stop Verdaccio + stopLocalRegistry } # Error messages are redirected to stderr @@ -75,22 +73,11 @@ yarn # First, publish the monorepo. # ****************************************************************************** -# Start local registry -tmp_registry_log=`mktemp` -(cd && nohup npx verdaccio@3.8.2 -c "$root_path"/tasks/verdaccio.yaml &>$tmp_registry_log &) -# Wait for `verdaccio` to boot -grep -q 'http address' <(tail -f $tmp_registry_log) - -# Set registry to local registry -npm set registry "$custom_registry_url" -yarn config set registry "$custom_registry_url" - -# Login so we can publish packages -(cd && npx npm-auth-to-token@1.0.0 -u user -p password -e user@example.com -r "$custom_registry_url") +# Start the local NPM registry +startLocalRegistry "$root_path"/tasks/verdaccio.yaml # Publish the monorepo -git clean -df -./tasks/publish.sh --yes --force-publish=* --skip-git --cd-version=prerelease --exact --npm-tag=latest +publishToLocalRegistry # ****************************************************************************** # Now that we have published them, run all tests as if they were released. diff --git a/tasks/e2e-installs.sh b/tasks/e2e-installs.sh index 07a5ddb3984..27577cdef0d 100755 --- a/tasks/e2e-installs.sh +++ b/tasks/e2e-installs.sh @@ -15,17 +15,16 @@ cd "$(dirname "$0")" # CLI and app temporary locations # http://unix.stackexchange.com/a/84980 temp_app_path=`mktemp -d 2>/dev/null || mktemp -d -t 'temp_app_path'` -custom_registry_url=http://localhost:4873 -original_npm_registry_url=`npm get registry` -original_yarn_registry_url=`yarn config get registry` + +# Load functions for working with local NPM registry (Verdaccio) +source local-registry.sh function cleanup { echo 'Cleaning up.' - ps -ef | grep 'verdaccio' | grep -v grep | awk '{print $2}' | xargs kill -9 cd "$root_path" rm -rf "$temp_app_path" - npm set registry "$original_npm_registry_url" - yarn config set registry "$original_yarn_registry_url" + # Restore the original NPM and Yarn registry URLs and stop Verdaccio + stopLocalRegistry } # Error messages are redirected to stderr @@ -96,22 +95,11 @@ yarn # First, publish the monorepo. # ****************************************************************************** -# Start local registry -tmp_registry_log=`mktemp` -(cd && nohup npx verdaccio@3.8.2 -c "$root_path"/tasks/verdaccio.yaml &>$tmp_registry_log &) -# Wait for `verdaccio` to boot -grep -q 'http address' <(tail -f $tmp_registry_log) - -# Set registry to local registry -npm set registry "$custom_registry_url" -yarn config set registry "$custom_registry_url" - -# Login so we can publish packages -(cd && npx npm-auth-to-token@1.0.0 -u user -p password -e user@example.com -r "$custom_registry_url") +# Start the local NPM registry +startLocalRegistry "$root_path"/tasks/verdaccio.yaml # Publish the monorepo -git clean -df -./tasks/publish.sh --yes --force-publish=* --skip-git --cd-version=prerelease --exact --npm-tag=latest +publishToLocalRegistry echo "Create React App Version: " npx create-react-app --version diff --git a/tasks/e2e-kitchensink-eject.sh b/tasks/e2e-kitchensink-eject.sh index 6425b890e8e..877fdf60f12 100755 --- a/tasks/e2e-kitchensink-eject.sh +++ b/tasks/e2e-kitchensink-eject.sh @@ -16,20 +16,19 @@ cd "$(dirname "$0")" # http://unix.stackexchange.com/a/84980 temp_app_path=`mktemp -d 2>/dev/null || mktemp -d -t 'temp_app_path'` temp_module_path=`mktemp -d 2>/dev/null || mktemp -d -t 'temp_module_path'` -custom_registry_url=http://localhost:4873 -original_npm_registry_url=`npm get registry` -original_yarn_registry_url=`yarn config get registry` + +# Load functions for working with local NPM registry (Verdaccio) +source local-registry.sh function cleanup { echo 'Cleaning up.' unset BROWSERSLIST - ps -ef | grep 'verdaccio' | grep -v grep | awk '{print $2}' | xargs kill -9 ps -ef | grep 'react-scripts' | grep -v grep | awk '{print $2}' | xargs kill -9 cd "$root_path" # TODO: fix "Device or resource busy" and remove ``|| $CI` rm -rf "$temp_app_path" "$temp_module_path" || $CI - npm set registry "$original_npm_registry_url" - yarn config set registry "$original_yarn_registry_url" + # Restore the original NPM and Yarn registry URLs and stop Verdaccio + stopLocalRegistry } # Error messages are redirected to stderr @@ -78,22 +77,11 @@ yarn # First, publish the monorepo. # ****************************************************************************** -# Start local registry -tmp_registry_log=`mktemp` -(cd && nohup npx verdaccio@3.8.2 -c "$root_path"/tasks/verdaccio.yaml &>$tmp_registry_log &) -# Wait for `verdaccio` to boot -grep -q 'http address' <(tail -f $tmp_registry_log) - -# Set registry to local registry -npm set registry "$custom_registry_url" -yarn config set registry "$custom_registry_url" - -# Login so we can publish packages -(cd && npx npm-auth-to-token@1.0.0 -u user -p password -e user@example.com -r "$custom_registry_url") +# Start the local NPM registry +startLocalRegistry "$root_path"/tasks/verdaccio.yaml # Publish the monorepo -git clean -df -./tasks/publish.sh --yes --force-publish=* --skip-git --cd-version=prerelease --exact --npm-tag=latest +publishToLocalRegistry # ****************************************************************************** # Now that we have published them, create a clean app folder and install them. diff --git a/tasks/e2e-kitchensink.sh b/tasks/e2e-kitchensink.sh index 556712d3ec6..30f0b4a0186 100755 --- a/tasks/e2e-kitchensink.sh +++ b/tasks/e2e-kitchensink.sh @@ -16,20 +16,19 @@ cd "$(dirname "$0")" # http://unix.stackexchange.com/a/84980 temp_app_path=`mktemp -d 2>/dev/null || mktemp -d -t 'temp_app_path'` temp_module_path=`mktemp -d 2>/dev/null || mktemp -d -t 'temp_module_path'` -custom_registry_url=http://localhost:4873 -original_npm_registry_url=`npm get registry` -original_yarn_registry_url=`yarn config get registry` + +# Load functions for working with local NPM registry (Verdaccio) +source local-registry.sh function cleanup { echo 'Cleaning up.' unset BROWSERSLIST - ps -ef | grep 'verdaccio' | grep -v grep | awk '{print $2}' | xargs kill -9 ps -ef | grep 'react-scripts' | grep -v grep | awk '{print $2}' | xargs kill -9 cd "$root_path" # TODO: fix "Device or resource busy" and remove ``|| $CI` rm -rf "$temp_app_path" "$temp_module_path" || $CI - npm set registry "$original_npm_registry_url" - yarn config set registry "$original_yarn_registry_url" + # Restore the original NPM and Yarn registry URLs and stop Verdaccio + stopLocalRegistry } # Error messages are redirected to stderr @@ -78,22 +77,11 @@ yarn # First, publish the monorepo. # ****************************************************************************** -# Start local registry -tmp_registry_log=`mktemp` -(cd && nohup npx verdaccio@3.8.2 -c "$root_path"/tasks/verdaccio.yaml &>$tmp_registry_log &) -# Wait for `verdaccio` to boot -grep -q 'http address' <(tail -f $tmp_registry_log) - -# Set registry to local registry -npm set registry "$custom_registry_url" -yarn config set registry "$custom_registry_url" - -# Login so we can publish packages -(cd && npx npm-auth-to-token@1.0.0 -u user -p password -e user@example.com -r "$custom_registry_url") +# Start the local NPM registry +startLocalRegistry "$root_path"/tasks/verdaccio.yaml # Publish the monorepo -git clean -df -./tasks/publish.sh --yes --force-publish=* --skip-git --cd-version=prerelease --exact --npm-tag=latest +publishToLocalRegistry # ****************************************************************************** # Now that we have published them, create a clean app folder and install them. diff --git a/tasks/e2e-simple.sh b/tasks/e2e-simple.sh index 2b8345d1282..ff6d2954b5f 100755 --- a/tasks/e2e-simple.sh +++ b/tasks/e2e-simple.sh @@ -15,19 +15,18 @@ cd "$(dirname "$0")" # App temporary location # http://unix.stackexchange.com/a/84980 temp_app_path=`mktemp -d 2>/dev/null || mktemp -d -t 'temp_app_path'` -custom_registry_url=http://localhost:4873 -original_npm_registry_url=`npm get registry` -original_yarn_registry_url=`yarn config get registry` + +# Load functions for working with local NPM registry (Verdaccio) +source local-registry.sh function cleanup { echo 'Cleaning up.' - ps -ef | grep 'verdaccio' | grep -v grep | awk '{print $2}' | xargs kill -9 cd "$root_path" # Uncomment when snapshot testing is enabled by default: # rm ./packages/react-scripts/template/src/__snapshots__/App.test.js.snap rm -rf "$temp_app_path" - npm set registry "$original_npm_registry_url" - yarn config set registry "$original_yarn_registry_url" + # Restore the original NPM and Yarn registry URLs and stop Verdaccio + stopLocalRegistry } # Error messages are redirected to stderr @@ -85,18 +84,8 @@ fi # Bootstrap monorepo yarn -# Start local registry -tmp_registry_log=`mktemp` -(cd && nohup npx verdaccio@3.8.2 -c "$root_path"/tasks/verdaccio.yaml &>$tmp_registry_log &) -# Wait for `verdaccio` to boot -grep -q 'http address' <(tail -f $tmp_registry_log) - -# Set registry to local registry -npm set registry "$custom_registry_url" -yarn config set registry "$custom_registry_url" - -# Login so we can publish packages -(cd && npx npm-auth-to-token@1.0.0 -u user -p password -e user@example.com -r "$custom_registry_url") +# Start the local NPM registry +startLocalRegistry "$root_path"/tasks/verdaccio.yaml # Lint own code ./node_modules/.bin/eslint --max-warnings 0 packages/babel-preset-react-app/ @@ -149,8 +138,8 @@ CI=true yarn test # Test local start command yarn start --smoke-test -git clean -df -./tasks/publish.sh --yes --force-publish=* --skip-git --cd-version=prerelease --exact --npm-tag=latest +# Publish the monorepo +publishToLocalRegistry # ****************************************************************************** # Install react-scripts prerelease via create-react-app prerelease. diff --git a/tasks/local-registry.sh b/tasks/local-registry.sh new file mode 100644 index 00000000000..715380a8a85 --- /dev/null +++ b/tasks/local-registry.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +custom_registry_url=http://localhost:4873 +original_npm_registry_url=`npm get registry` +original_yarn_registry_url=`yarn config get registry` +default_verdaccio_package=verdaccio@3.8.2 + +function startLocalRegistry { + # Start local registry + tmp_registry_log=`mktemp` + echo "Registry output file: $tmp_registry_log" + (cd && nohup npx ${VERDACCIO_PACKAGE:-$default_verdaccio_package} -c $1 &>$tmp_registry_log &) + # Wait for Verdaccio to boot + grep -q 'http address' <(tail -f $tmp_registry_log) + + # Set registry to local registry + npm set registry "$custom_registry_url" + yarn config set registry "$custom_registry_url" + + # Login so we can publish packages + (cd && npx npm-auth-to-token@1.0.0 -u user -p password -e user@example.com -r "$custom_registry_url") +} + +function stopLocalRegistry { + # Restore the original NPM and Yarn registry URLs and stop Verdaccio + npm set registry "$original_npm_registry_url" + yarn config set registry "$original_yarn_registry_url" + + # Kill Verdaccio process + ps -ef | grep 'verdaccio' | grep -v grep | awk '{print $2}' | xargs kill -9 +} + +function publishToLocalRegistry { + git clean -df + ./tasks/publish.sh prerelease --yes --force-publish=* --no-git-tag-version --no-commit-hooks --no-push --exact --dist-tag=latest +} diff --git a/tasks/verdaccio.yaml b/tasks/verdaccio.yaml index e98643b7b76..cbca71cae19 100644 --- a/tasks/verdaccio.yaml +++ b/tasks/verdaccio.yaml @@ -20,6 +20,13 @@ auth: uplinks: npmjs: url: https://registry.npmjs.org/ + max_fails: 40 + maxage: 30m + timeout: 60s + agent_options: + keepAlive: true + maxSockets: 40 + maxFreeSockets: 10 packages: '@*/*': @@ -45,5 +52,9 @@ packages: # log settings logs: - - {type: stdout, format: pretty, level: http} + - {type: stdout, format: pretty, level: warn} #- {type: file, path: verdaccio.log, level: info} + +# See https://github.com/verdaccio/verdaccio/issues/301 +server: + keepAliveTimeout: 0 diff --git a/test/fixtures/__shared__/util/scripts.js b/test/fixtures/__shared__/util/scripts.js index b1ee60e7be8..d1799d18bbd 100644 --- a/test/fixtures/__shared__/util/scripts.js +++ b/test/fixtures/__shared__/util/scripts.js @@ -33,9 +33,9 @@ function execaSafe(...args) { stderr: stripYarn( stripAnsi( err.message - .split(os.EOL) + .split('\n') .slice(2) - .join(os.EOL) + .join('\n') ) ), })); diff --git a/test/fixtures/__shared__/util/setup.js b/test/fixtures/__shared__/util/setup.js index 8dd7d2e3e84..96021d014fa 100644 --- a/test/fixtures/__shared__/util/setup.js +++ b/test/fixtures/__shared__/util/setup.js @@ -96,7 +96,15 @@ module.exports = class TestSetup { async teardown() { if (this.testDirectory != null) { - await fs.remove(this.testDirectory); + try { + await fs.remove(this.testDirectory); + } catch (ex) { + if (this.isLocal) { + throw ex; + } else { + // In CI, don't worry if the test directory was not able to be deleted + } + } this.testDirectory = null; this._scripts = null; } diff --git a/test/fixtures/mjs-support/__snapshots__/index.test.js.snap b/test/fixtures/mjs-support/__snapshots__/index.test.js.snap index 1fff97685f1..cbf1408921f 100644 --- a/test/fixtures/mjs-support/__snapshots__/index.test.js.snap +++ b/test/fixtures/mjs-support/__snapshots__/index.test.js.snap @@ -1,5 +1,5 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`can use mjs library in development 1`] = `"Pikachu"`; +exports[`can use mjs library in development 1`] = `"world"`; -exports[`can use mjs library in production 1`] = `"Pikachu"`; +exports[`can use mjs library in production 1`] = `"world"`; diff --git a/test/fixtures/mjs-support/index.test.js b/test/fixtures/mjs-support/index.test.js index 767af17b564..97f931e95bf 100644 --- a/test/fixtures/mjs-support/index.test.js +++ b/test/fixtures/mjs-support/index.test.js @@ -9,11 +9,10 @@ test('can use mjs library in development', async () => { try { const page = await browser.newPage(); await page.goto(`http://localhost:${port}/`); - await page.waitForSelector('.Pokemon-Name-Data', { timeout: 0 }); + await page.waitForSelector('.mjs-gql-result', { timeout: 0 }); const output = await page.evaluate(() => { - return Array.from( - document.getElementsByClassName('Pokemon-Name-Data') - ).pop().innerHTML; + return Array.from(document.getElementsByClassName('mjs-gql-result')).pop() + .innerHTML; }); expect(output).toMatchSnapshot(); } finally { @@ -29,11 +28,10 @@ test('can use mjs library in production', async () => { try { const page = await browser.newPage(); await page.goto(`http://localhost:${port}/`); - await page.waitForSelector('.Pokemon-Name-Data', { timeout: 0 }); + await page.waitForSelector('.mjs-gql-result', { timeout: 0 }); const output = await page.evaluate(() => { - return Array.from( - document.getElementsByClassName('Pokemon-Name-Data') - ).pop().innerHTML; + return Array.from(document.getElementsByClassName('mjs-gql-result')).pop() + .innerHTML; }); expect(output).toMatchSnapshot(); } finally { diff --git a/test/fixtures/mjs-support/package.json b/test/fixtures/mjs-support/package.json index 47b6cf58047..219fac12c17 100644 --- a/test/fixtures/mjs-support/package.json +++ b/test/fixtures/mjs-support/package.json @@ -1,9 +1,6 @@ { "dependencies": { - "apollo-boost": "0.1.16", "graphql": "14.0.2", - "react-apollo": "2.2.1", - "apollo-client": "2.4.2", "react": "latest", "react-dom": "latest", "serve": "10.0.2" diff --git a/test/fixtures/mjs-support/src/App.js b/test/fixtures/mjs-support/src/App.js index 39fabb94545..6b5321529df 100644 --- a/test/fixtures/mjs-support/src/App.js +++ b/test/fixtures/mjs-support/src/App.js @@ -1,62 +1,35 @@ import React, { Component } from 'react'; -import ApolloClient, { gql } from 'apollo-boost'; -import { ApolloProvider, Query } from 'react-apollo'; +import { + graphql, + GraphQLSchema, + GraphQLObjectType, + GraphQLString, +} from 'graphql'; -const GET_PIKA = gql` - { - pokemon(name: "Pikachu") { - name - } - } -`; - -const client = new ApolloClient({ - uri: 'https://graphql-pokemon.now.sh/graphql', +const schema = new GraphQLSchema({ + query: new GraphQLObjectType({ + name: 'RootQueryType', + fields: { + hello: { + type: GraphQLString, + resolve() { + return 'world'; + }, + }, + }, + }), }); -class Pokemon extends Component { - render() { - const { name } = this.props.pokemon; - return ( -

- Pokemon name: {name} -

- ); - } -} - -class Data extends Component { +class App extends Component { state = {}; - componentDidCatch() { - this.setState({ hasError: true }); - } - render() { - const { hasError } = this.state; - return hasError ? ( -
Error :(
- ) : ( - - {({ loading, error, data }) => { - if (loading) { - return
Loading...
; - } - if (error) { - return
Error :(
; - } - return ; - }} -
- ); + componentDidMount() { + graphql(schema, '{ hello }').then(({ data }) => { + this.setState({ result: data.hello }); + }); } -} - -class App extends Component { render() { - return ( - - - - ); + const { result } = this.state; + return result ?
{result}
: null; } } diff --git a/test/fixtures/webpack-message-formatting/index.test.js b/test/fixtures/webpack-message-formatting/index.test.js index 1aebc3a2175..f102b1cf381 100644 --- a/test/fixtures/webpack-message-formatting/index.test.js +++ b/test/fixtures/webpack-message-formatting/index.test.js @@ -59,7 +59,10 @@ test('formats missing package', async () => { path.join(testSetup.testDirectory, 'src', 'App.js') ); - const { stdout, stderr } = await testSetup.scripts.build(); + let { stdout, stderr } = await testSetup.scripts.build(); + if (process.platform === 'win32') { + stderr = stderr.replace('.\\src\\App.js', './src/App.js'); + } expect({ stdout, stderr }).toMatchSnapshot(); }); @@ -103,7 +106,12 @@ test('formats file not found error', async () => { path.join(testSetup.testDirectory, 'src', 'App.js') ); - const { stdout, stderr } = await testSetup.scripts.build(); + let { stdout, stderr } = await testSetup.scripts.build(); + if (process.platform === 'win32') { + stderr = stderr + .replace('.\\src\\App.js', './src/App.js') + .replace('.\\src', './src'); + } expect({ stdout, stderr }).toMatchSnapshot(); }); @@ -131,6 +139,9 @@ test('formats out of scope error', async () => { path.join(testSetup.testDirectory, 'src', 'App.js') ); - const { stdout, stderr } = await testSetup.scripts.build(); + let { stdout, stderr } = await testSetup.scripts.build(); + if (process.platform === 'win32') { + stderr = stderr.replace('.\\src\\App.js', './src/App.js'); + } expect({ stdout, stderr }).toMatchSnapshot(); }); From 820a521b3c2cd4fb062298bde9d5c0e6b0a4cd89 Mon Sep 17 00:00:00 2001 From: Sebastian Silbermann Date: Wed, 29 May 2019 10:52:20 +0200 Subject: [PATCH 0692/1249] Update fsevents dependency version (#7131) --- packages/react-scripts/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index e4a93a37e03..df52dd55058 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -86,7 +86,7 @@ "react-dom": "^16.8.4" }, "optionalDependencies": { - "fsevents": "2.0.6" + "fsevents": "2.0.7" }, "browserslist": { "production": [ From 7548281aa5a9096f09cd5c9447cb4c21fa96ed4d Mon Sep 17 00:00:00 2001 From: Toni Date: Wed, 29 May 2019 19:39:55 +0300 Subject: [PATCH 0693/1249] Make the OOM abbreviation more clear in the docs (#7133) --- docusaurus/docs/advanced-configuration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/docs/advanced-configuration.md b/docusaurus/docs/advanced-configuration.md index 70ad7ebfb30..86bac9fa451 100644 --- a/docusaurus/docs/advanced-configuration.md +++ b/docusaurus/docs/advanced-configuration.md @@ -17,6 +17,6 @@ You can adjust various development and production settings by setting environmen | CI | ✅ Used | ✅ Used | When set to `true`, Create React App treats warnings as failures in the build. It also makes the test runner non-watching. Most CIs set this flag by default. | | REACT_EDITOR | ✅ Used | 🚫 Ignored | When an app crashes in development, you will see an error overlay with clickable stack trace. When you click on it, Create React App will try to determine the editor you are using based on currently running processes, and open the relevant source file. You can [send a pull request to detect your editor of choice](https://github.com/facebook/create-react-app/issues/2636). Setting this environment variable overrides the automatic detection. If you do it, make sure your systems [PATH]() environment variable points to your editor’s bin folder. You can also set it to `none` to disable it completely. | | CHOKIDAR_USEPOLLING | ✅ Used | 🚫 Ignored | When set to `true`, the watcher runs in polling mode, as necessary inside a VM. Use this option if `npm start` isn't detecting changes. | -| GENERATE_SOURCEMAP | 🚫 Ignored | ✅ Used | When set to `false`, source maps are not generated for a production build. This solves OOM issues on some smaller machines. | +| GENERATE_SOURCEMAP | 🚫 Ignored | ✅ Used | When set to `false`, source maps are not generated for a production build. This solves out of memory (OOM) issues on some smaller machines. | | NODE_PATH | ✅ Used | ✅ Used | Same as [`NODE_PATH` in Node.js](https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders), but only relative folders are allowed. Can be handy for emulating a monorepo setup by setting `NODE_PATH=src`. | | INLINE_RUNTIME_CHUNK | 🚫 Ignored | ✅ Used | By default, Create React App will embed the runtime script into `index.html` during the production build. When set to `false`, the script will not be embedded and will be imported as usual. This is normally required when dealing with CSP. | From f05465e6402137377543e39b068f124700f4846b Mon Sep 17 00:00:00 2001 From: Ben Newcomb Date: Wed, 5 Jun 2019 16:08:42 -0700 Subject: [PATCH 0694/1249] Update deprecated package reference (#7170) * Update deprecated package reference * Fixed install method after feedback --- docusaurus/docs/running-tests.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docusaurus/docs/running-tests.md b/docusaurus/docs/running-tests.md index f43dd43b1a7..e166c71dfd0 100644 --- a/docusaurus/docs/running-tests.md +++ b/docusaurus/docs/running-tests.md @@ -180,13 +180,13 @@ As an alternative or companion to `enzyme`, you may consider using `react-testin To install `react-testing-library` and `jest-dom`, you can run: ```sh -npm install --save react-testing-library jest-dom +npm install --save @testing-library/react jest-dom ``` Alternatively you may use `yarn`: ```sh -yarn add react-testing-library jest-dom +yarn add @testing-library/react jest-dom ``` Similar to `enzyme` you can create a `src/setupTests.js` file to avoid boilerplate in your test files: @@ -194,7 +194,7 @@ Similar to `enzyme` you can create a `src/setupTests.js` file to avoid boilerpla ```js // react-testing-library renders your components to document.body, // this will ensure they're removed after each test. -import 'react-testing-library/cleanup-after-each'; +import '@testing-library/react/cleanup-after-each'; // this adds jest-dom's custom assertions import 'jest-dom/extend-expect'; ``` @@ -203,7 +203,7 @@ Here's an example of using `react-testing-library` and `jest-dom` for testing th ```js import React from 'react'; -import { render } from 'react-testing-library'; +import { render } from '@testing-library/react'; import App from './App'; it('renders welcome message', () => { @@ -212,7 +212,7 @@ it('renders welcome message', () => { }); ``` -Learn more about the utilities provided by `react-testing-library` to facilitate testing asynchronous interactions as well as selecting form elements from [the `react-testing-library` documentation](https://testing-library.com/react) and [examples](https://codesandbox.io/s/github/kentcdodds/react-testing-library-examples). +Learn more about the utilities provided by `react-testing-library` to facilitate testing asynchronous interactions as well as selecting form elements from the [`react-testing-library` documentation](https://testing-library.com/react) and [examples](https://codesandbox.io/s/github/kentcdodds/react-testing-library-examples). ## Using Third Party Assertion Libraries From 56d1de274576f8e5371d83f07a87c32473c4ae9a Mon Sep 17 00:00:00 2001 From: Andy Hopper Date: Thu, 6 Jun 2019 11:57:30 -0400 Subject: [PATCH 0695/1249] Disabled TS `no-undef` rule (#7179) --- packages/eslint-config-react-app/index.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/eslint-config-react-app/index.js b/packages/eslint-config-react-app/index.js index fbd3f2a3f97..f09380d3007 100644 --- a/packages/eslint-config-react-app/index.js +++ b/packages/eslint-config-react-app/index.js @@ -73,6 +73,8 @@ module.exports = { 'default-case': 'off', // 'tsc' already handles this (https://github.com/typescript-eslint/typescript-eslint/issues/291) 'no-dupe-class-members': 'off', + // 'tsc' already handles this (https://github.com/typescript-eslint/typescript-eslint/issues/477) + 'no-undef': 'off', // Add TypeScript specific rules (and turn off ESLint equivalents) '@typescript-eslint/no-angle-bracket-type-assertion': 'warn', From f522a0dae247f15052e2a1c09bcfee1c0b2b4645 Mon Sep 17 00:00:00 2001 From: James K Nelson Date: Fri, 14 Jun 2019 03:10:27 +0900 Subject: [PATCH 0696/1249] Use correct babel transform for dynamic import in dependencies (#7208) --- packages/babel-preset-react-app/dependencies.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/babel-preset-react-app/dependencies.js b/packages/babel-preset-react-app/dependencies.js index 86902d36bee..6d29ba69a4f 100644 --- a/packages/babel-preset-react-app/dependencies.js +++ b/packages/babel-preset-react-app/dependencies.js @@ -142,7 +142,7 @@ module.exports = function(api, opts) { require('@babel/plugin-syntax-dynamic-import').default, isEnvTest && // Transform dynamic import to require - require('babel-plugin-transform-dynamic-import').default, + require('babel-plugin-dynamic-import-node'), ].filter(Boolean), }; }; From 24489ac0a667af416f1d59dd806dfc2623aabe36 Mon Sep 17 00:00:00 2001 From: Ivan Aksamentov <9403403+ivan-aksamentov@users.noreply.github.com> Date: Fri, 14 Jun 2019 19:43:17 +0200 Subject: [PATCH 0697/1249] fix: ESLint config overrides key should be an array, not object (#7219) Array format for `overrides` key in eslint config file is now enforced in ESLint v6. Anyone who uses `eslint-config-react-app` and ESLint v6 gets a type mismatch error. This commit fixes the error by converting the object into a one-element array containing this object. Only 2 characters are added: `[` and `]`. The large diff is due to formatting. --- packages/eslint-config-react-app/index.js | 98 ++++++++++++----------- 1 file changed, 50 insertions(+), 48 deletions(-) diff --git a/packages/eslint-config-react-app/index.js b/packages/eslint-config-react-app/index.js index f09380d3007..c06cfabfb43 100644 --- a/packages/eslint-config-react-app/index.js +++ b/packages/eslint-config-react-app/index.js @@ -52,57 +52,59 @@ module.exports = { }, }, - overrides: { - files: ['**/*.ts', '**/*.tsx'], - parser: '@typescript-eslint/parser', - parserOptions: { - ecmaVersion: 2018, - sourceType: 'module', - ecmaFeatures: { - jsx: true, - }, + overrides: [ + { + files: ['**/*.ts', '**/*.tsx'], + parser: '@typescript-eslint/parser', + parserOptions: { + ecmaVersion: 2018, + sourceType: 'module', + ecmaFeatures: { + jsx: true, + }, - // typescript-eslint specific options - warnOnUnsupportedTypeScriptVersion: true, - }, - plugins: ['@typescript-eslint'], - // If adding a typescript-eslint version of an existing ESLint rule, - // make sure to disable the ESLint rule here. - rules: { - // TypeScript's `noFallthroughCasesInSwitch` option is more robust (#6906) - 'default-case': 'off', - // 'tsc' already handles this (https://github.com/typescript-eslint/typescript-eslint/issues/291) - 'no-dupe-class-members': 'off', - // 'tsc' already handles this (https://github.com/typescript-eslint/typescript-eslint/issues/477) - 'no-undef': 'off', + // typescript-eslint specific options + warnOnUnsupportedTypeScriptVersion: true, + }, + plugins: ['@typescript-eslint'], + // If adding a typescript-eslint version of an existing ESLint rule, + // make sure to disable the ESLint rule here. + rules: { + // TypeScript's `noFallthroughCasesInSwitch` option is more robust (#6906) + 'default-case': 'off', + // 'tsc' already handles this (https://github.com/typescript-eslint/typescript-eslint/issues/291) + 'no-dupe-class-members': 'off', + // 'tsc' already handles this (https://github.com/typescript-eslint/typescript-eslint/issues/477) + 'no-undef': 'off', - // Add TypeScript specific rules (and turn off ESLint equivalents) - '@typescript-eslint/no-angle-bracket-type-assertion': 'warn', - 'no-array-constructor': 'off', - '@typescript-eslint/no-array-constructor': 'warn', - '@typescript-eslint/no-namespace': 'error', - 'no-use-before-define': 'off', - '@typescript-eslint/no-use-before-define': [ - 'warn', - { - functions: false, - classes: false, - variables: false, - typedefs: false, - }, - ], - 'no-unused-vars': 'off', - '@typescript-eslint/no-unused-vars': [ - 'warn', - { - args: 'none', - ignoreRestSiblings: true, - }, - ], - 'no-useless-constructor': 'off', - '@typescript-eslint/no-useless-constructor': 'warn', + // Add TypeScript specific rules (and turn off ESLint equivalents) + '@typescript-eslint/no-angle-bracket-type-assertion': 'warn', + 'no-array-constructor': 'off', + '@typescript-eslint/no-array-constructor': 'warn', + '@typescript-eslint/no-namespace': 'error', + 'no-use-before-define': 'off', + '@typescript-eslint/no-use-before-define': [ + 'warn', + { + functions: false, + classes: false, + variables: false, + typedefs: false, + }, + ], + 'no-unused-vars': 'off', + '@typescript-eslint/no-unused-vars': [ + 'warn', + { + args: 'none', + ignoreRestSiblings: true, + }, + ], + 'no-useless-constructor': 'off', + '@typescript-eslint/no-useless-constructor': 'warn', + }, }, - }, + ], // NOTE: When adding rules here, you need to make sure they are compatible with // `typescript-eslint`, as some rules such as `no-array-constructor` aren't compatible. From 76f9a396b198eb7245d76aaa53ee9ccef74354d1 Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Fri, 14 Jun 2019 10:50:30 -0700 Subject: [PATCH 0698/1249] Disable Travis build (#7220) --- .travis.yml | 35 ----------------------------------- 1 file changed, 35 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index dda58096f90..00000000000 --- a/.travis.yml +++ /dev/null @@ -1,35 +0,0 @@ ---- -dist: trusty -language: node_js -node_js: - - 8 - - 10 -cache: - yarn: true - directories: - - .npm -before_install: - - curl -o- -L https://yarnpkg.com/install.sh | bash -s - - export PATH="$HOME/.yarn/bin:$PATH" -install: true -script: - - 'if [ $TEST_SUITE = "simple" ]; then tasks/e2e-simple.sh; fi' - - 'if [ $TEST_SUITE = "installs" ]; then tasks/e2e-installs.sh; fi' - - 'if [ $TEST_SUITE = "kitchensink" ]; then tasks/e2e-kitchensink.sh; fi' - - 'if [ $TEST_SUITE = "kitchensink-eject" ]; then tasks/e2e-kitchensink-eject.sh; fi' - - 'if [ $TEST_SUITE = "old-node" ]; then tasks/e2e-old-node.sh; fi' - - 'if [ $TEST_SUITE = "behavior" ]; then tasks/e2e-behavior.sh; fi' -env: - matrix: - - TEST_SUITE=simple - - TEST_SUITE=installs - - TEST_SUITE=kitchensink - - TEST_SUITE=kitchensink-eject - - TEST_SUITE=behavior -matrix: - include: - - os: osx - node_js: 8 - env: TEST_SUITE=behavior - - node_js: 6 - env: TEST_SUITE=old-node From 45197e67fd5ff4c0fa315ec7d91eead354e4bdd8 Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Fri, 14 Jun 2019 11:14:01 -0700 Subject: [PATCH 0699/1249] Update @typescript-eslint package versions (#7222) --- packages/react-scripts/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index df52dd55058..a15c92d03f4 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -30,8 +30,8 @@ "dependencies": { "@babel/core": "7.4.3", "@svgr/webpack": "4.2.0", - "@typescript-eslint/eslint-plugin": "1.6.0", - "@typescript-eslint/parser": "1.6.0", + "@typescript-eslint/eslint-plugin": "1.10.2", + "@typescript-eslint/parser": "1.10.2", "babel-eslint": "10.0.1", "babel-jest": "^24.8.0", "babel-loader": "8.0.5", From 9d70c7afab377c4bec76aa177fadab476ebb115b Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 18 Jun 2019 00:25:40 -0400 Subject: [PATCH 0700/1249] Add environment variable to control image inlining threshold (#6060) Fixes #3437 --- docusaurus/docs/adding-images-fonts-and-files.md | 2 +- docusaurus/docs/advanced-configuration.md | 1 + packages/react-scripts/config/webpack.config.js | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/docusaurus/docs/adding-images-fonts-and-files.md b/docusaurus/docs/adding-images-fonts-and-files.md index ef1d4d8697e..deb6cc39f89 100644 --- a/docusaurus/docs/adding-images-fonts-and-files.md +++ b/docusaurus/docs/adding-images-fonts-and-files.md @@ -7,7 +7,7 @@ With Webpack, using static assets like images and fonts works similarly to CSS. You can **`import` a file right in a JavaScript module**. This tells Webpack to include that file in the bundle. Unlike CSS imports, importing a file gives you a string value. This value is the final path you can reference in your code, e.g. as the `src` attribute of an image or the `href` of a link to a PDF. -To reduce the number of requests to the server, importing images that are less than 10,000 bytes returns a [data URI](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) instead of a path. This applies to the following file extensions: bmp, gif, jpg, jpeg, and png. SVG files are excluded due to [#1153](https://github.com/facebook/create-react-app/issues/1153). +To reduce the number of requests to the server, importing images that are less than 10,000 bytes returns a [data URI](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) instead of a path. This applies to the following file extensions: bmp, gif, jpg, jpeg, and png. SVG files are excluded due to [#1153](https://github.com/facebook/create-react-app/issues/1153). You can control the 10,000 byte threshold by setting the `IMAGE_INLINE_SIZE_LIMIT` environment variable as documented in our [advanced configuration](advanced-configuration.md). Here is an example: diff --git a/docusaurus/docs/advanced-configuration.md b/docusaurus/docs/advanced-configuration.md index 86bac9fa451..413bca5051b 100644 --- a/docusaurus/docs/advanced-configuration.md +++ b/docusaurus/docs/advanced-configuration.md @@ -20,3 +20,4 @@ You can adjust various development and production settings by setting environmen | GENERATE_SOURCEMAP | 🚫 Ignored | ✅ Used | When set to `false`, source maps are not generated for a production build. This solves out of memory (OOM) issues on some smaller machines. | | NODE_PATH | ✅ Used | ✅ Used | Same as [`NODE_PATH` in Node.js](https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders), but only relative folders are allowed. Can be handy for emulating a monorepo setup by setting `NODE_PATH=src`. | | INLINE_RUNTIME_CHUNK | 🚫 Ignored | ✅ Used | By default, Create React App will embed the runtime script into `index.html` during the production build. When set to `false`, the script will not be embedded and will be imported as usual. This is normally required when dealing with CSP. | +| IMAGE_INLINE_SIZE_LIMIT | 🚫 Ignored | ✅ Used | By default, images smaller than 10,000 bytes are encoded as a data URI in base64 and inlined in the CSS or JS build artifact. Set this to control the size limit in bytes. Setting it to 0 will disable the inlining of images. | diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index 8f70442d584..771b06c94d1 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -44,6 +44,10 @@ const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== 'false'; // makes for a smoother build process. const shouldInlineRuntimeChunk = process.env.INLINE_RUNTIME_CHUNK !== 'false'; +const imageInlineSizeLimit = parseInt( + process.env.IMAGE_INLINE_SIZE_LIMIT || '10000' +); + // Check if TypeScript is setup const useTypeScript = fs.existsSync(paths.appTsConfig); @@ -343,7 +347,7 @@ module.exports = function(webpackEnv) { test: [/\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/], loader: require.resolve('url-loader'), options: { - limit: 10000, + limit: imageInlineSizeLimit, name: 'static/media/[name].[hash:8].[ext]', }, }, From fc5ee76ae9994e27fe8ad72ef2aacabefa1e9e87 Mon Sep 17 00:00:00 2001 From: Soufiane AIT AKKACHE Date: Sun, 23 Jun 2019 21:50:04 +0200 Subject: [PATCH 0701/1249] Docs: replace the command to install relay/macro (#7262) --- docusaurus/docs/adding-relay.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/docs/adding-relay.md b/docusaurus/docs/adding-relay.md index b44d6b31b54..66702619b49 100644 --- a/docusaurus/docs/adding-relay.md +++ b/docusaurus/docs/adding-relay.md @@ -14,7 +14,7 @@ npm install --save babel-plugin-relay Alternatively you may use `yarn`: ```sh -yarn upgrade babel-plugin-relay +yarn add babel-plugin-relay ``` Then, wherever you use the `graphql` template tag, import the macro: From 2eab40651281fb4824f51875485971faba313501 Mon Sep 17 00:00:00 2001 From: Brody McKee Date: Mon, 24 Jun 2019 18:32:08 +0300 Subject: [PATCH 0702/1249] Update issue templates (#7269) * Create bug_report.md * Create proposal.md * Update proposal.md * Delete ISSUE_TEMPLATE.md * Update bug_report.md * Update proposal.md --- .../bug_report.md} | 34 +++++++--------- .github/ISSUE_TEMPLATE/proposal.md | 39 +++++++++++++++++++ 2 files changed, 54 insertions(+), 19 deletions(-) rename .github/{ISSUE_TEMPLATE.md => ISSUE_TEMPLATE/bug_report.md} (91%) create mode 100644 .github/ISSUE_TEMPLATE/proposal.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE/bug_report.md similarity index 91% rename from .github/ISSUE_TEMPLATE.md rename to .github/ISSUE_TEMPLATE/bug_report.md index 2d4f8c8ae01..9c045955bb3 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,30 +1,26 @@ - - -### Is this a bug report? - -(write your answer here) - +--- +name: Bug report +about: Create a report to help us improve +labels: "issue: bug" +--- +### Desribe the bug + +(Write your answer here.) + ### Did you try recovering your dependencies? -(paste the output of the command here) +(paste the output of the command here.) -### Steps to Reproduce +### Steps to reproduce + +(Write your answer here.) + +### Describe the solution you'd like + + + +(Describe your proposed solution here.) + +### Describe alternatives you've considered + + + +(Write your answer here.) + +### Additional context + + + +(Write your answer here.) From bfee6069c939802f6349bbaa26fdfe933bc7ccb7 Mon Sep 17 00:00:00 2001 From: TheBear44 <26767607+TheBear44@users.noreply.github.com> Date: Mon, 24 Jun 2019 22:42:04 +0700 Subject: [PATCH 0703/1249] Update peer dependencies in eslint-config-react-app (#7274) --- packages/eslint-config-react-app/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/eslint-config-react-app/README.md b/packages/eslint-config-react-app/README.md index 7cf509d98d9..6b704f07538 100644 --- a/packages/eslint-config-react-app/README.md +++ b/packages/eslint-config-react-app/README.md @@ -19,7 +19,7 @@ If you want to use this ESLint configuration in a project not built with Create First, install this package, ESLint and the necessary plugins. ```sh -npm install --save-dev eslint-config-react-app babel-eslint@9.x eslint@5.x eslint-plugin-flowtype@2.x eslint-plugin-import@2.x eslint-plugin-jsx-a11y@6.x eslint-plugin-react@7.x eslint-plugin-react-hooks@1.5.0 +npm install --save-dev eslint-config-react-app @typescript-eslint/eslint-plugin@1.x @typescript-eslint/parser@1.x babel-eslint@10.x eslint@5.x eslint-plugin-flowtype@2.x eslint-plugin-import@2.x eslint-plugin-jsx-a11y@6.x eslint-plugin-react@7.x eslint-plugin-react-hooks@1.x ``` Then create a file named `.eslintrc.json` with following contents in the root folder of your project: From a88a4c3af6b6b8557845f147604a098d2857a91a Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Mon, 24 Jun 2019 12:25:15 -0600 Subject: [PATCH 0704/1249] Upgrade webpack to 4.35.0 to fix dynamic import issue (#7257) * Upgrade webpack to 4.35.0 to fix dynamic import issue * Add a test maybe? --- packages/react-error-overlay/package.json | 2 +- .../fixtures/kitchensink/src/App.js | 7 ++++++- .../src/features/webpack/DynamicImport.js | 12 ++++++++++++ .../features/webpack/DynamicImport.test.js | 19 +++++++++++++++++++ packages/react-scripts/package.json | 2 +- 5 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 packages/react-scripts/fixtures/kitchensink/src/features/webpack/DynamicImport.js create mode 100644 packages/react-scripts/fixtures/kitchensink/src/features/webpack/DynamicImport.test.js diff --git a/packages/react-error-overlay/package.json b/packages/react-error-overlay/package.json index 2ed9697fdb7..985a1e9b5dd 100644 --- a/packages/react-error-overlay/package.json +++ b/packages/react-error-overlay/package.json @@ -64,7 +64,7 @@ "settle-promise": "1.0.0", "source-map": "0.5.6", "terser-webpack-plugin": "1.2.3", - "webpack": "^4.29.6" + "webpack": "^4.35.0" }, "jest": { "setupFiles": [ diff --git a/packages/react-scripts/fixtures/kitchensink/src/App.js b/packages/react-scripts/fixtures/kitchensink/src/App.js index 457b552601d..50fd8932341 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/App.js +++ b/packages/react-scripts/fixtures/kitchensink/src/App.js @@ -68,7 +68,7 @@ class App extends Component { // This works around an issue of a duplicate hash in the href // Ex: http://localhost:3001/#array-destructuring#array-destructuring // This seems like a jsdom bug as the URL in initDom.js appears to be correct - const feature = url.slice(url.lastIndexOf("#") + 1); + const feature = url.slice(url.lastIndexOf('#') + 1); switch (feature) { case 'array-destructuring': @@ -241,6 +241,11 @@ class App extends Component { this.setFeature(f.default) ); break; + case 'dynamic-import': + import('./features/webpack/DynamicImport').then(f => + this.setFeature(f.default) + ); + break; default: this.setState({ error: `Missing feature "${feature}"` }); } diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/webpack/DynamicImport.js b/packages/react-scripts/fixtures/kitchensink/src/features/webpack/DynamicImport.js new file mode 100644 index 00000000000..e0c629159b4 --- /dev/null +++ b/packages/react-scripts/fixtures/kitchensink/src/features/webpack/DynamicImport.js @@ -0,0 +1,12 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from 'react'; + +export default () => { + return <>Hello World!; +}; diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/webpack/DynamicImport.test.js b/packages/react-scripts/fixtures/kitchensink/src/features/webpack/DynamicImport.test.js new file mode 100644 index 00000000000..21e90154a9a --- /dev/null +++ b/packages/react-scripts/fixtures/kitchensink/src/features/webpack/DynamicImport.test.js @@ -0,0 +1,19 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from 'react'; +import ReactDOM from 'react-dom'; + +describe('dynamic import', () => { + it('renders without crashing', async () => { + import('./DynamicImport').then(DynamicImport => { + const div = document.createElement('div'); + ReactDOM.render(, div); + expect(div.textContent).toBe('Hello World!'); + }); + }); +}); diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index a15c92d03f4..af92d8ab28b 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -76,7 +76,7 @@ "terser-webpack-plugin": "1.2.3", "ts-pnp": "1.1.2", "url-loader": "1.1.2", - "webpack": "4.29.6", + "webpack": "4.35.0", "webpack-dev-server": "3.2.1", "webpack-manifest-plugin": "2.0.4", "workbox-webpack-plugin": "4.2.0" From 2c6dd45cf4cb81f3cbd2e4073713647ebd033bbf Mon Sep 17 00:00:00 2001 From: Nikolay Stoynov Date: Wed, 26 Jun 2019 11:47:30 +0300 Subject: [PATCH 0705/1249] Handle browser arguments (#7277) --- docusaurus/docs/advanced-configuration.md | 31 ++++++++++++----------- packages/react-dev-utils/openBrowser.js | 16 +++++++++--- 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/docusaurus/docs/advanced-configuration.md b/docusaurus/docs/advanced-configuration.md index 413bca5051b..9799a1ad403 100644 --- a/docusaurus/docs/advanced-configuration.md +++ b/docusaurus/docs/advanced-configuration.md @@ -3,21 +3,22 @@ id: advanced-configuration title: Advanced Configuration --- -You can adjust various development and production settings by setting environment variables in your shell or with [.env](adding-custom-environment-variables.md#adding-development-environment-variables-in-env). +You can adjust various development and production settings by setting environment variables in your shell or with [.env](adding-custom-environment-variables.md#adding-development-environment-variables-in-env). > Note: You do not need to declare `REACT_APP_` before the below variables as you would with custom environment variables. -| Variable | Development | Production | Usage | -| :------------------- | :---------: | :--------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| BROWSER | ✅ Used | 🚫 Ignored | By default, Create React App will open the default system browser, favoring Chrome on macOS. Specify a [browser](https://github.com/sindresorhus/opn#app) to override this behavior, or set it to `none` to disable it completely. If you need to customize the way the browser is launched, you can specify a node script instead. Any arguments passed to `npm start` will also be passed to this script, and the url where your app is served will be the last argument. Your script's file name must have the `.js` extension. | -| HOST | ✅ Used | 🚫 Ignored | By default, the development web server binds to `localhost`. You may use this variable to specify a different host. | -| PORT | ✅ Used | 🚫 Ignored | By default, the development web server will attempt to listen on port 3000 or prompt you to attempt the next available port. You may use this variable to specify a different port. | -| HTTPS | ✅ Used | 🚫 Ignored | When set to `true`, Create React App will run the development server in `https` mode. | -| PUBLIC_URL | 🚫 Ignored | ✅ Used | Create React App assumes your application is hosted at the serving web server's root or a subpath as specified in [`package.json` (`homepage`)](deployment#building-for-relative-paths). Normally, Create React App ignores the hostname. You may use this variable to force assets to be referenced verbatim to the url you provide (hostname included). This may be particularly useful when using a CDN to host your application. | -| CI | ✅ Used | ✅ Used | When set to `true`, Create React App treats warnings as failures in the build. It also makes the test runner non-watching. Most CIs set this flag by default. | -| REACT_EDITOR | ✅ Used | 🚫 Ignored | When an app crashes in development, you will see an error overlay with clickable stack trace. When you click on it, Create React App will try to determine the editor you are using based on currently running processes, and open the relevant source file. You can [send a pull request to detect your editor of choice](https://github.com/facebook/create-react-app/issues/2636). Setting this environment variable overrides the automatic detection. If you do it, make sure your systems [PATH]() environment variable points to your editor’s bin folder. You can also set it to `none` to disable it completely. | -| CHOKIDAR_USEPOLLING | ✅ Used | 🚫 Ignored | When set to `true`, the watcher runs in polling mode, as necessary inside a VM. Use this option if `npm start` isn't detecting changes. | -| GENERATE_SOURCEMAP | 🚫 Ignored | ✅ Used | When set to `false`, source maps are not generated for a production build. This solves out of memory (OOM) issues on some smaller machines. | -| NODE_PATH | ✅ Used | ✅ Used | Same as [`NODE_PATH` in Node.js](https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders), but only relative folders are allowed. Can be handy for emulating a monorepo setup by setting `NODE_PATH=src`. | -| INLINE_RUNTIME_CHUNK | 🚫 Ignored | ✅ Used | By default, Create React App will embed the runtime script into `index.html` during the production build. When set to `false`, the script will not be embedded and will be imported as usual. This is normally required when dealing with CSP. | -| IMAGE_INLINE_SIZE_LIMIT | 🚫 Ignored | ✅ Used | By default, images smaller than 10,000 bytes are encoded as a data URI in base64 and inlined in the CSS or JS build artifact. Set this to control the size limit in bytes. Setting it to 0 will disable the inlining of images. | +| Variable | Development | Production | Usage | +| :---------------------- | :---------: | :--------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| BROWSER | ✅ Used | 🚫 Ignored | By default, Create React App will open the default system browser, favoring Chrome on macOS. Specify a [browser](https://github.com/sindresorhus/open#app) to override this behavior, or set it to `none` to disable it completely. If you need to customize the way the browser is launched, you can specify a node script instead. Any arguments passed to `npm start` will also be passed to this script, and the url where your app is served will be the last argument. Your script's file name must have the `.js` extension. | +| BROWSER_ARGS | ✅ Used | 🚫 Ignored | When the `BROWSER` environment variable is specified, any arguments that you set to this environment variable will be passed to the browser instance. Multiple arguments are supported as a space separated list. By default, no arguments are passed through to browsers. | +| HOST | ✅ Used | 🚫 Ignored | By default, the development web server binds to `localhost`. You may use this variable to specify a different host. | +| PORT | ✅ Used | 🚫 Ignored | By default, the development web server will attempt to listen on port 3000 or prompt you to attempt the next available port. You may use this variable to specify a different port. | +| HTTPS | ✅ Used | 🚫 Ignored | When set to `true`, Create React App will run the development server in `https` mode. | +| PUBLIC_URL | 🚫 Ignored | ✅ Used | Create React App assumes your application is hosted at the serving web server's root or a subpath as specified in [`package.json` (`homepage`)](deployment#building-for-relative-paths). Normally, Create React App ignores the hostname. You may use this variable to force assets to be referenced verbatim to the url you provide (hostname included). This may be particularly useful when using a CDN to host your application. | +| CI | ✅ Used | ✅ Used | When set to `true`, Create React App treats warnings as failures in the build. It also makes the test runner non-watching. Most CIs set this flag by default. | +| REACT_EDITOR | ✅ Used | 🚫 Ignored | When an app crashes in development, you will see an error overlay with clickable stack trace. When you click on it, Create React App will try to determine the editor you are using based on currently running processes, and open the relevant source file. You can [send a pull request to detect your editor of choice](https://github.com/facebook/create-react-app/issues/2636). Setting this environment variable overrides the automatic detection. If you do it, make sure your systems [PATH]() environment variable points to your editor’s bin folder. You can also set it to `none` to disable it completely. | +| CHOKIDAR_USEPOLLING | ✅ Used | 🚫 Ignored | When set to `true`, the watcher runs in polling mode, as necessary inside a VM. Use this option if `npm start` isn't detecting changes. | +| GENERATE_SOURCEMAP | 🚫 Ignored | ✅ Used | When set to `false`, source maps are not generated for a production build. This solves out of memory (OOM) issues on some smaller machines. | +| NODE_PATH | ✅ Used | ✅ Used | Same as [`NODE_PATH` in Node.js](https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders), but only relative folders are allowed. Can be handy for emulating a monorepo setup by setting `NODE_PATH=src`. | +| INLINE_RUNTIME_CHUNK | 🚫 Ignored | ✅ Used | By default, Create React App will embed the runtime script into `index.html` during the production build. When set to `false`, the script will not be embedded and will be imported as usual. This is normally required when dealing with CSP. | +| IMAGE_INLINE_SIZE_LIMIT | 🚫 Ignored | ✅ Used | By default, images smaller than 10,000 bytes are encoded as a data URI in base64 and inlined in the CSS or JS build artifact. Set this to control the size limit in bytes. Setting it to 0 will disable the inlining of images. | diff --git a/packages/react-dev-utils/openBrowser.js b/packages/react-dev-utils/openBrowser.js index beb250f947c..22d3c44d852 100644 --- a/packages/react-dev-utils/openBrowser.js +++ b/packages/react-dev-utils/openBrowser.js @@ -26,6 +26,9 @@ function getBrowserEnv() { // It is specific to the operating system. // See https://github.com/sindresorhus/open#app for documentation. const value = process.env.BROWSER; + const args = process.env.BROWSER_ARGS + ? process.env.BROWSER_ARGS.split(' ') + : []; let action; if (!value) { // Default. @@ -37,7 +40,7 @@ function getBrowserEnv() { } else { action = Actions.BROWSER; } - return { action, value }; + return { action, value, args }; } function executeNodeScript(scriptPath, url) { @@ -61,7 +64,7 @@ function executeNodeScript(scriptPath, url) { return true; } -function startBrowserProcess(browser, url) { +function startBrowserProcess(browser, url, args) { // If we're on OS X, the user hasn't specifically // requested a different browser, we can try opening // Chrome with AppleScript. This lets us reuse an @@ -93,6 +96,11 @@ function startBrowserProcess(browser, url) { browser = undefined; } + // If there are arguments, they must be passed as array with the browser + if (typeof browser === 'string' && args.length > 0) { + browser = [browser].concat(args); + } + // Fallback to open // (It will always open new tab) try { @@ -109,7 +117,7 @@ function startBrowserProcess(browser, url) { * true if it opened a browser or ran a node.js script, otherwise false. */ function openBrowser(url) { - const { action, value } = getBrowserEnv(); + const { action, value, args } = getBrowserEnv(); switch (action) { case Actions.NONE: // Special case: BROWSER="none" will prevent opening completely. @@ -117,7 +125,7 @@ function openBrowser(url) { case Actions.SCRIPT: return executeNodeScript(value, url); case Actions.BROWSER: - return startBrowserProcess(value, url); + return startBrowserProcess(value, url, args); default: throw new Error('Not implemented.'); } From 24143089afc1034b9733605dc44c06b800fd1c90 Mon Sep 17 00:00:00 2001 From: Adeel Imran Date: Thu, 27 Jun 2019 09:16:31 +0200 Subject: [PATCH 0706/1249] Document --use-npm (#7279) --- docusaurus/docs/getting-started.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docusaurus/docs/getting-started.md b/docusaurus/docs/getting-started.md index ab52bc6c7b5..9831e638a41 100644 --- a/docusaurus/docs/getting-started.md +++ b/docusaurus/docs/getting-started.md @@ -66,6 +66,14 @@ _`yarn create` is available in Yarn 0.25+_ Follow our [Adding TypeScript](adding-typescript.md) documentation to create a TypeScript app. +### Selecting a package manager + +When you create a new app, the CLI will use [Yarn](https://yarnpkg.com/) to install dependencies (when available). If you have Yarn installed, but would prefer to use npm, you can append --use-npm to the creation command. For example: + +```sh +npx create-react-app my-app --use-npm +``` + ## Output Running any of these commands will create a directory called `my-app` inside the current folder. Inside that directory, it will generate the initial project structure and install the transitive dependencies: From 4c0d8b64aa459edd8a417dd13b206926416d352e Mon Sep 17 00:00:00 2001 From: Brian Muenzenmeyer Date: Tue, 2 Jul 2019 19:44:03 -0500 Subject: [PATCH 0707/1249] fix(eject): guard against empty key before access (#7289) closes #7288 --- packages/react-scripts/scripts/eject.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/react-scripts/scripts/eject.js b/packages/react-scripts/scripts/eject.js index 746451e25e6..7bad09e513c 100644 --- a/packages/react-scripts/scripts/eject.js +++ b/packages/react-scripts/scripts/eject.js @@ -187,7 +187,10 @@ inquirer } Object.keys(ownPackage.dependencies).forEach(key => { // For some reason optionalDependencies end up in dependencies after install - if (ownPackage.optionalDependencies[key]) { + if ( + ownPackage.optionalDependencies && + ownPackage.optionalDependencies[key] + ) { return; } console.log(` Adding ${cyan(key)} to dependencies`); From e50e795429264477d3b7181f1d7b590295a7b9e6 Mon Sep 17 00:00:00 2001 From: Mikhail Vasin <12434833+mvasin@users.noreply.github.com> Date: Wed, 3 Jul 2019 19:50:10 +0300 Subject: [PATCH 0708/1249] Fix typo in bug template (#7317) --- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 9c045955bb3..ef59c777e7e 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -17,7 +17,7 @@ labels: "issue: bug" You can find webpack docs at https://webpack.js.org/. --> -### Desribe the bug +### Describe the bug (Write your answer here.) From 00b5fa903c584d89fc578f8f3dd4980b6c7d866d Mon Sep 17 00:00:00 2001 From: Jon Seidel Date: Wed, 10 Jul 2019 08:56:48 -0700 Subject: [PATCH 0709/1249] Update minimum Node version in README (#7182) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 347d4359760..f499fdd49f6 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ Just create a project, and you’re good to go. ## Creating an App -**You’ll need to have Node 8.10.0 or later on your local development machine** (but it’s not required on the server). You can use [nvm](https://github.com/creationix/nvm#installation) (macOS/Linux) or [nvm-windows](https://github.com/coreybutler/nvm-windows#node-version-manager-nvm-for-windows) to easily switch Node versions between different projects. +**You’ll need to have Node 8.16.0 or Node 10.16.0 or later version on your local development machine** (but it’s not required on the server). You can use [nvm](https://github.com/creationix/nvm#installation) (macOS/Linux) or [nvm-windows](https://github.com/coreybutler/nvm-windows#node-version-manager-nvm-for-windows) to easily switch Node versions between different projects. To create a new app, you may choose one of the following methods: From 7c0dfef2371640474d7f9291c23d07fc416cc47b Mon Sep 17 00:00:00 2001 From: Min ho Kim Date: Tue, 16 Jul 2019 00:12:35 +1000 Subject: [PATCH 0710/1249] Fix various typos (#7355) --- CHANGELOG-1.x.md | 4 ++-- azure-pipelines.yml | 4 ++-- packages/react-error-overlay/src/utils/unmapper.js | 2 +- packages/react-scripts/config/webpack.config.js | 4 ++-- tasks/e2e-installs.sh | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/CHANGELOG-1.x.md b/CHANGELOG-1.x.md index ae2725af297..be64a067a8c 100644 --- a/CHANGELOG-1.x.md +++ b/CHANGELOG-1.x.md @@ -482,7 +482,7 @@ yarn add --exact react-scripts@1.0.16 - [#3150](https://github.com/facebook/create-react-app/pull/3150) Remove an useless negation in `registerServiceWorker.js`. ([@dunglas](https://github.com/dunglas)) - [#3158](https://github.com/facebook/create-react-app/pull/3158) Remove `output.path` from dev webpack config. ([@nikolas](https://github.com/nikolas)) - - [#3281](https://github.com/facebook/create-react-app/pull/3281) Add a workaround for Uglify incompatiblity with Safari 10.0 in the future. ([@satyavh](https://github.com/satyavh)) + - [#3281](https://github.com/facebook/create-react-app/pull/3281) Add a workaround for Uglify incompatibility with Safari 10.0 in the future. ([@satyavh](https://github.com/satyavh)) - [#3146](https://github.com/facebook/create-react-app/pull/3146) Fix `reason-react` support. ([@lpalmes](https://github.com/lpalmes)) - [#3236](https://github.com/facebook/create-react-app/pull/3236) Update `style-loader` and disable inclusion of its HMR code in builds. ([@insin](https://github.com/insin)) - [#3246](https://github.com/facebook/create-react-app/pull/3246) Update `url-loader` to 0.6.2 for mime ReDoS vulnerability. ([@d3viant0ne](https://github.com/d3viant0ne)) @@ -1443,7 +1443,7 @@ yarn add --dev --exact react-scripts@1.0.1 ## 1.0.0 (May 18, 2017) -We’ve been working on this release for the past few months, and there are many big impovements, from migrating to webpack 2 to a brand new runtime error overlay and built-in support for Progressive Web Apps. +We’ve been working on this release for the past few months, and there are many big improvements, from migrating to webpack 2 to a brand new runtime error overlay and built-in support for Progressive Web Apps. So instead of just enumerating them here, we decided to write a blog post about all the new features.
Check it out: **[What’s New in Create React App](https://facebook.github.io/react/blog/2017/05/18/whats-new-in-create-react-app.html)**. diff --git a/azure-pipelines.yml b/azure-pipelines.yml index c51be42da86..1f770cc7105 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -12,7 +12,7 @@ variables: NPM_CONFIG_CACHE: $(Build.SourcesDirectory)/../npm-cache # Sets TEMP to be on the same drive as the cloned source on Windows. This avoids test scripts that "cd" into a directory under TEMP from failing because this directory is on a different drive from the current directory. VSTS_OVERWRITE_TEMP: True - # Override Verdaccio package to use. This is temoporary and is needed to avoid socket timeouts on hosted Windows agent (on Azure). This also changes Verdaccio to return a 503 (service unavailable) instead of a 404 (not found) when the connection to the uplink timesout. + # Override Verdaccio package to use. This is temporary and is needed to avoid socket timeouts on hosted Windows agent (on Azure). This also changes Verdaccio to return a 503 (service unavailable) instead of a 404 (not found) when the connection to the uplink timesout. VERDACCIO_PACKAGE: https://github.com/willsmythe/verdaccio/releases/download/create-react-app/verdaccio-4.0.0-alpha.8.tgz # ****************************************************************************** @@ -67,7 +67,7 @@ jobs: # Old Node test suite # ****************************************************************************** - job: OldNode - pool: + pool: vmImage: ubuntu-16.04 steps: - task: NodeTool@0 diff --git a/packages/react-error-overlay/src/utils/unmapper.js b/packages/react-error-overlay/src/utils/unmapper.js index c61fad4fb6c..4c95ab4d7b3 100644 --- a/packages/react-error-overlay/src/utils/unmapper.js +++ b/packages/react-error-overlay/src/utils/unmapper.js @@ -12,7 +12,7 @@ import { getLinesAround } from './getLinesAround'; import path from 'path'; function count(search: string, string: string): number { - // Count starts at -1 becuse a do-while loop always runs at least once + // Count starts at -1 because a do-while loop always runs at least once let count = -1, index = -1; do { diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index 771b06c94d1..7543dbbe203 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -197,7 +197,7 @@ module.exports = function(webpackEnv) { terserOptions: { parse: { // we want terser to parse ecma 8 code. However, we don't want it - // to apply any minfication steps that turns valid ecma 5 code + // to apply any minification steps that turns valid ecma 5 code // into invalid ecma 5 code. This is why the 'compress' and 'output' // sections only apply transformations that are ecma 5 safe // https://github.com/facebook/create-react-app/pull/4234 @@ -213,7 +213,7 @@ module.exports = function(webpackEnv) { comparisons: false, // Disabled because of an issue with Terser breaking valid code: // https://github.com/facebook/create-react-app/issues/5250 - // Pending futher investigation: + // Pending further investigation: // https://github.com/terser-js/terser/issues/120 inline: 2, }, diff --git a/tasks/e2e-installs.sh b/tasks/e2e-installs.sh index 27577cdef0d..f083f2dd09b 100755 --- a/tasks/e2e-installs.sh +++ b/tasks/e2e-installs.sh @@ -213,7 +213,7 @@ exists node_modules/react-scripts-fork # ****************************************************************************** cd "$temp_app_path" -# we will install a non-existing package to simulate a failed installataion. +# we will install a non-existing package to simulate a failed installation. npx create-react-app test-app-should-not-exist --scripts-version=`date +%s` || true # confirm that the project files were deleted test ! -e test-app-should-not-exist/package.json @@ -226,7 +226,7 @@ test ! -d test-app-should-not-exist/node_modules cd "$temp_app_path" mkdir test-app-should-remain echo '## Hello' > ./test-app-should-remain/README.md -# we will install a non-existing package to simulate a failed installataion. +# we will install a non-existing package to simulate a failed installation. npx create-react-app test-app-should-remain --scripts-version=`date +%s` || true # confirm the file exist test -e test-app-should-remain/README.md From dc50dd320e506e1655fa3635bc5f74479811d2e0 Mon Sep 17 00:00:00 2001 From: Sudhir Mitharwal Date: Mon, 15 Jul 2019 20:24:19 +0530 Subject: [PATCH 0711/1249] Allow title to be set when importing SVGs (#7118) --- .github/ISSUE_TEMPLATE/bug_report.md | 15 ++++----------- .github/ISSUE_TEMPLATE/proposal.md | 4 ++-- packages/react-scripts/config/webpack.config.js | 3 ++- packages/react-scripts/package.json | 2 +- 4 files changed, 9 insertions(+), 15 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index ef59c777e7e..ac73b33e7de 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,7 +1,7 @@ --- name: Bug report about: Create a report to help us improve -labels: "issue: bug" +labels: 'issue: bug' --- diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index 7543dbbe203..dae2405140b 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -388,7 +388,8 @@ module.exports = function(webpackEnv) { { loaderMap: { svg: { - ReactComponent: '@svgr/webpack?-svgo,+ref![path]', + ReactComponent: + '@svgr/webpack?-svgo,+titleProp,+ref![path]', }, }, }, diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index af92d8ab28b..7d4a3a0c43c 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -29,7 +29,7 @@ "types": "./lib/react-app.d.ts", "dependencies": { "@babel/core": "7.4.3", - "@svgr/webpack": "4.2.0", + "@svgr/webpack": "4.3.1", "@typescript-eslint/eslint-plugin": "1.10.2", "@typescript-eslint/parser": "1.10.2", "babel-eslint": "10.0.1", From 3a9b87b223a50c32fee2c363ab1132a65d0291dc Mon Sep 17 00:00:00 2001 From: Sudhir Mitharwal Date: Tue, 16 Jul 2019 00:15:25 +0530 Subject: [PATCH 0712/1249] docs(svg): add tip for title props accessibility (#7374) --- docusaurus/docs/adding-images-fonts-and-files.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docusaurus/docs/adding-images-fonts-and-files.md b/docusaurus/docs/adding-images-fonts-and-files.md index deb6cc39f89..92704ad1f58 100644 --- a/docusaurus/docs/adding-images-fonts-and-files.md +++ b/docusaurus/docs/adding-images-fonts-and-files.md @@ -59,3 +59,5 @@ const App = () => ( ``` This is handy if you don't want to load SVG as a separate file. Don't forget the curly braces in the import! The `ReactComponent` import name is special and tells Create React App that you want a React component that renders an SVG, rather than its filename. + +> **Tip:** The imported SVG React Component accepts a `title` prop along with other props that a `svg` element accepts. Use this prop to add an accessbile title to your svg component. From 3495286f8f3835d55cbdedbc881ae481eb0a3c65 Mon Sep 17 00:00:00 2001 From: Brody McKee Date: Tue, 16 Jul 2019 12:17:52 +0300 Subject: [PATCH 0713/1249] Allow extending config used in eslint-loader (#7036) --- docusaurus/docs/advanced-configuration.md | 1 + docusaurus/docs/setting-up-your-editor.md | 48 +++++++++++++++---- packages/eslint-config-react-app/index.js | 2 +- .../react-scripts/config/webpack.config.js | 28 +++++++++-- packages/react-scripts/scripts/eject.js | 10 ++-- 5 files changed, 71 insertions(+), 18 deletions(-) diff --git a/docusaurus/docs/advanced-configuration.md b/docusaurus/docs/advanced-configuration.md index 9799a1ad403..ab51e951b03 100644 --- a/docusaurus/docs/advanced-configuration.md +++ b/docusaurus/docs/advanced-configuration.md @@ -22,3 +22,4 @@ You can adjust various development and production settings by setting environmen | NODE_PATH | ✅ Used | ✅ Used | Same as [`NODE_PATH` in Node.js](https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders), but only relative folders are allowed. Can be handy for emulating a monorepo setup by setting `NODE_PATH=src`. | | INLINE_RUNTIME_CHUNK | 🚫 Ignored | ✅ Used | By default, Create React App will embed the runtime script into `index.html` during the production build. When set to `false`, the script will not be embedded and will be imported as usual. This is normally required when dealing with CSP. | | IMAGE_INLINE_SIZE_LIMIT | 🚫 Ignored | ✅ Used | By default, images smaller than 10,000 bytes are encoded as a data URI in base64 and inlined in the CSS or JS build artifact. Set this to control the size limit in bytes. Setting it to 0 will disable the inlining of images. | +| EXTEND_ESLINT | ✅ Used | ✅ Used | When set to `true`, ESLint configs that extend `eslint-config-react-app` will be used by `eslint-loader`. Any rules that are set to `"error"` will stop the application from building. | diff --git a/docusaurus/docs/setting-up-your-editor.md b/docusaurus/docs/setting-up-your-editor.md index 869592d2915..844b9bc5da2 100644 --- a/docusaurus/docs/setting-up-your-editor.md +++ b/docusaurus/docs/setting-up-your-editor.md @@ -18,15 +18,7 @@ To configure the syntax highlighting in your favorite text editor, head to the [ Some editors, including Sublime Text, Atom, and Visual Studio Code, provide plugins for ESLint. -They are not required for linting. You should see the linter output right in your terminal as well as the browser console. However, if you prefer the lint results to appear right in your editor, there are some extra steps you can do. - -You would need to install an ESLint plugin for your editor first. Then, add a file called `.eslintrc.json` to the project root: - -```json -{ - "extends": "react-app" -} -``` +They are not required for linting. You should see the linter output right in your terminal as well as the browser console. If you prefer the lint results to appear right in your editor, please make sure you install an ESLint plugin/extension. If you're using TypeScript and Visual Studio Code, the [ESLint Visual Studio Code extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint#overview) currently [doesn't have TypeScript support enabled by default](https://github.com/Microsoft/vscode-eslint/issues/609). To enable TypeScript support in the ESLint extension, add the following to your project's Visual Studio Code settings file, located at `.vscode/settings.json` (you can create this file if it doesn't already exist): @@ -43,10 +35,46 @@ If you're using TypeScript and Visual Studio Code, the [ESLint Visual Studio Cod Now your editor should report the linting warnings. -Note that even if you edit your `.eslintrc.json` file further, these changes will **only affect the editor integration**. They won’t affect the terminal and in-browser lint output. This is because Create React App intentionally provides a minimal set of rules that find common mistakes. +Note that even if you customise your ESLint config, these changes will **only affect the editor integration**. They won’t affect the terminal and in-browser lint output. This is because Create React App intentionally provides a minimal set of rules that find common mistakes. If you want to enforce a coding style for your project, consider using [Prettier](https://github.com/jlongster/prettier) instead of ESLint style rules. +### Experimental: Extending the ESLint config + +We recognise that in some cases, further customisation is required. It is now possible to extend the base ESLint config by setting the `EXTEND_ESLINT` environment variable to `true`. See [advanced configuration](advanced-configuration.md) for more information on available environment variables. + +Note that any rules set to `"error"` will stop the project from building. + +There are a few things to remember: + +1. You must extend the base config, as removing it could introduce hard-to-find issues. +1. When working with TypeScript, you'll need to provide an `overrides` object for rules that should _only_ target TypeScript files. + +In the below example: + +- the base config has been extended by a shared ESLint config, +- a new rule has been set that applies to all JavaScript and TypeScript files, and +- a new rule has been set that only targets TypeScript files. + +```json +{ + "eslintConfig": { + "extends": ["react-app", "shared-config"], + "rules": { + "additional-rule": "warn" + }, + "overrides": [ + { + "files": ["**/*.ts?(x)"], + "rules": { + "additional-typescript-only-rule": "warn" + } + } + ] + } +} +``` + ## Debugging in the Editor **This feature is currently only supported by [Visual Studio Code](https://code.visualstudio.com) and [WebStorm](https://www.jetbrains.com/webstorm/).** diff --git a/packages/eslint-config-react-app/index.js b/packages/eslint-config-react-app/index.js index c06cfabfb43..df499e030e7 100644 --- a/packages/eslint-config-react-app/index.js +++ b/packages/eslint-config-react-app/index.js @@ -54,7 +54,7 @@ module.exports = { overrides: [ { - files: ['**/*.ts', '**/*.tsx'], + files: ['**/*.ts?(x)'], parser: '@typescript-eslint/parser', parserOptions: { ecmaVersion: 2018, diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index dae2405140b..03fd965370a 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -33,6 +33,7 @@ const getClientEnvironment = require('./env'); const ModuleNotFoundPlugin = require('react-dev-utils/ModuleNotFoundPlugin'); const ForkTsCheckerWebpackPlugin = require('react-dev-utils/ForkTsCheckerWebpackPlugin'); const typescriptFormatter = require('react-dev-utils/typescriptFormatter'); +const eslint = require('eslint'); // @remove-on-eject-begin const getCacheIdentifier = require('react-dev-utils/getCacheIdentifier'); // @remove-on-eject-end @@ -323,9 +324,30 @@ module.exports = function(webpackEnv) { formatter: require.resolve('react-dev-utils/eslintFormatter'), eslintPath: require.resolve('eslint'), // @remove-on-eject-begin - baseConfig: { - extends: [require.resolve('eslint-config-react-app')], - }, + baseConfig: (() => { + const eslintCli = new eslint.CLIEngine(); + let eslintConfig; + try { + eslintConfig = eslintCli.getConfigForFile(paths.appIndexJs); + } catch (e) { + // A config couldn't be found. + } + + // We allow overriding the config, only if it extends our config + // (`extends` can be a string or array of strings). + if ( + process.env.EXTEND_ESLINT && + eslintConfig && + eslintConfig.extends && + eslintConfig.extends.includes('react-app') + ) { + return eslintConfig; + } else { + return { + extends: [require.resolve('eslint-config-react-app')], + }; + } + })(), ignore: false, useEslintrc: false, // @remove-on-eject-end diff --git a/packages/react-scripts/scripts/eject.js b/packages/react-scripts/scripts/eject.js index 7bad09e513c..2a494ffe24f 100644 --- a/packages/react-scripts/scripts/eject.js +++ b/packages/react-scripts/scripts/eject.js @@ -239,10 +239,12 @@ inquirer }; // Add ESlint config - console.log(` Adding ${cyan('ESLint')} configuration`); - appPackage.eslintConfig = { - extends: 'react-app', - }; + if (!appPackage.eslintConfig) { + console.log(` Adding ${cyan('ESLint')} configuration`); + appPackage.eslintConfig = { + extends: 'react-app', + }; + } fs.writeFileSync( path.join(appPath, 'package.json'), From 2d57fa3fb73f1280a10b47e596d01d8e34b1917e Mon Sep 17 00:00:00 2001 From: Guy Romm Date: Tue, 16 Jul 2019 17:56:28 +0300 Subject: [PATCH 0714/1249] jsx-no-duplicate-props ignore case fix (#7230) Co-Authored-By: Ian Schmitz --- packages/eslint-config-react-app/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/eslint-config-react-app/index.js b/packages/eslint-config-react-app/index.js index df499e030e7..c4b0289e1fb 100644 --- a/packages/eslint-config-react-app/index.js +++ b/packages/eslint-config-react-app/index.js @@ -249,7 +249,7 @@ module.exports = { // https://github.com/yannickcr/eslint-plugin-react/tree/master/docs/rules 'react/forbid-foreign-prop-types': ['warn', { allowInPropTypes: true }], 'react/jsx-no-comment-textnodes': 'warn', - 'react/jsx-no-duplicate-props': ['warn', { ignoreCase: true }], + 'react/jsx-no-duplicate-props': 'warn', 'react/jsx-no-target-blank': 'warn', 'react/jsx-no-undef': 'error', 'react/jsx-pascal-case': [ From 100e12d22f35a75120fe79d9ef89646717ccdfe8 Mon Sep 17 00:00:00 2001 From: Ivan Pegashev Date: Thu, 18 Jul 2019 21:02:39 +0500 Subject: [PATCH 0715/1249] Update docs to indicate dynamic imports are stage 4 (#7372) --- docusaurus/docs/code-splitting.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/docs/code-splitting.md b/docusaurus/docs/code-splitting.md index ace13fdfcce..4c453f4a638 100644 --- a/docusaurus/docs/code-splitting.md +++ b/docusaurus/docs/code-splitting.md @@ -5,7 +5,7 @@ title: Code Splitting Instead of downloading the entire app before users can use it, code splitting allows you to split your code into small chunks which you can then load on demand. -This project setup supports code splitting via [dynamic `import()`](http://2ality.com/2017/01/import-operator.html#loading-code-on-demand). Its [proposal](https://github.com/tc39/proposal-dynamic-import) is in stage 3. The `import()` function-like form takes the module name as an argument and returns a [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) which always resolves to the namespace object of the module. +This project setup supports code splitting via [dynamic `import()`](http://2ality.com/2017/01/import-operator.html#loading-code-on-demand). Its [proposal](https://github.com/tc39/proposal-dynamic-import) is in stage 4. The `import()` function-like form takes the module name as an argument and returns a [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) which always resolves to the namespace object of the module. Here is an example: From 45e070312123f18d2b8471da1520f842d3363581 Mon Sep 17 00:00:00 2001 From: Alex Guerra Date: Thu, 18 Jul 2019 15:46:04 -0500 Subject: [PATCH 0716/1249] Fix CI issue on windows (#7385) * Attempt at fixing CI issue on windows * Try to debug why verdaccio isn't in the ps output * Just remove the kill call alltogether --- tasks/local-registry.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/tasks/local-registry.sh b/tasks/local-registry.sh index 715380a8a85..f19a73c4ca3 100644 --- a/tasks/local-registry.sh +++ b/tasks/local-registry.sh @@ -25,9 +25,6 @@ function stopLocalRegistry { # Restore the original NPM and Yarn registry URLs and stop Verdaccio npm set registry "$original_npm_registry_url" yarn config set registry "$original_yarn_registry_url" - - # Kill Verdaccio process - ps -ef | grep 'verdaccio' | grep -v grep | awk '{print $2}' | xargs kill -9 } function publishToLocalRegistry { From 58fad404cd33766ee2cf2e263af0144c69dd4ec1 Mon Sep 17 00:00:00 2001 From: Alex Guerra Date: Tue, 16 Jul 2019 15:00:50 -0500 Subject: [PATCH 0717/1249] Update url-loader to 2.0.1 This closes #7359 by making IMAGE_INLINE_SIZE_LIMIT=0 actually disable image inlining. We use url-loader's `limit` option to set the line at which images will be inlined, and we basically expose this option to our end users via the IMAGE_INLINE_SIZE_LIMIT environment variable. Most people using it want to disable inlining images all together (the major motivator for adding it at all was I think for strict CSP), and our documentation said setting the value to zero would do that. However, it did the opposite: url-loader treated zero as "no limit". The update to 2.x fixes this; zero means nothing gets inlined. The other changes from the version bump shouldn't affect us: - minimum node version is 8.9.x, we already require 8.10.x - the limit was "greater than", is now "greater than or equal to" --- packages/react-scripts/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 7d4a3a0c43c..3586204650a 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -75,7 +75,7 @@ "style-loader": "0.23.1", "terser-webpack-plugin": "1.2.3", "ts-pnp": "1.1.2", - "url-loader": "1.1.2", + "url-loader": "2.0.1", "webpack": "4.35.0", "webpack-dev-server": "3.2.1", "webpack-manifest-plugin": "2.0.4", From ad51d6280ddd543a9bece732b8230439f6e258e8 Mon Sep 17 00:00:00 2001 From: Rudolph Gottesheim Date: Mon, 22 Jul 2019 18:14:55 +0200 Subject: [PATCH 0718/1249] Docs: remove note about TypeScript files requiring at least one export (#7260) --- docusaurus/docs/running-tests.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docusaurus/docs/running-tests.md b/docusaurus/docs/running-tests.md index e166c71dfd0..e33a4bf27f2 100644 --- a/docusaurus/docs/running-tests.md +++ b/docusaurus/docs/running-tests.md @@ -111,8 +111,6 @@ import Adapter from 'enzyme-adapter-react-16'; configure({ adapter: new Adapter() }); ``` -> Note: When using TypeScript with Babel, all your files need to have at least one export, otherwise you will get the error `Cannot compile namespaces when the '--isolatedModules' flag is provided.`. To fix this, you can add `export default undefined` to `src/setupTests.ts`. - > Note: Keep in mind that if you decide to "eject" before creating `src/setupTests.js`, the resulting `package.json` file won't contain any reference to it. [Read here](#initializing-test-environment) to learn how to add this after ejecting. Now you can write a smoke test with it: From 498913dccb9520b55dcf9714069f0b8a255d5c42 Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Thu, 25 Jul 2019 10:39:34 -0600 Subject: [PATCH 0719/1249] Add question issue template (#7423) * Add question issue template * Fix bug report template formatting * Fix bug report template formatting * Add labels to pull request template --- .github/CODEOWNERS | 2 +- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- .github/ISSUE_TEMPLATE/proposal.md | 2 +- .github/ISSUE_TEMPLATE/question.md | 13 +++++++++++++ .github/PULL_REQUEST_TEMPLATE.md | 4 ++++ 5 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/question.md diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index ebb18e94002..2308496a692 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,2 +1,2 @@ -packages/ @amyrlam @bugzpodder @gaearon @ianschmitz @iansu @mrmckeb @petetnt @timer +packages/ @bugzpodder @ianschmitz @iansu @mrmckeb @petetnt docusaurus/ @amyrlam @iansu diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index ac73b33e7de..ac2eebaa4b9 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,7 +1,7 @@ --- name: Bug report about: Create a report to help us improve -labels: 'issue: bug' +labels: 'issue: bug, needs triage' --- >TZ}k}_6V*W%W!M1J{r9s4k~sn--TJ8Z5r88oT$ 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 TC^vn9t^%Dr?tYAMBrNT38kp$b literal 10754 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 - - - - - - + \ No newline at end of file diff --git a/packages/react-scripts/template-typescript/public/favicon.ico b/packages/react-scripts/template-typescript/public/favicon.ico index a11777cc471a4344702741ab1c8a588998b1311a..c2c86b859eaa20639adf92ff979c2be8d580433e 100644 GIT binary patch literal 22382 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 QPNaAH_W=L@JAozeZ|l@fegFUf literal 3870 zcma);c{J4h9>;%nil|2-o+rCuEF-(I%-F}ijC~o(k~HKAkr0)!FCj~d>`RtpD?8b; zXOC1OD!V*IsqUwzbMF1)-gEDD=A573Z-&G7^LoAC9|WO7Xc0Cx1g^Zu0u_SjAPB3vGa^W|sj)80f#V0@M_CAZTIO(t--xg= z!sii`1giyH7EKL_+Wi0ab<)&E_0KD!3Rp2^HNB*K2@PHCs4PWSA32*-^7d{9nH2_E zmC{C*N*)(vEF1_aMamw2A{ZH5aIDqiabnFdJ|y0%aS|64E$`s2ccV~3lR!u<){eS` z#^Mx6o(iP1Ix%4dv`t@!&Za-K@mTm#vadc{0aWDV*_%EiGK7qMC_(`exc>-$Gb9~W!w_^{*pYRm~G zBN{nA;cm^w$VWg1O^^<6vY`1XCD|s_zv*g*5&V#wv&s#h$xlUilPe4U@I&UXZbL z0)%9Uj&@yd03n;!7do+bfixH^FeZ-Ema}s;DQX2gY+7g0s(9;`8GyvPY1*vxiF&|w z>!vA~GA<~JUqH}d;DfBSi^IT*#lrzXl$fNpq0_T1tA+`A$1?(gLb?e#0>UELvljtQ zK+*74m0jn&)5yk8mLBv;=@}c{t0ztT<v;Avck$S6D`Z)^c0(jiwKhQsn|LDRY&w(Fmi91I7H6S;b0XM{e zXp0~(T@k_r-!jkLwd1_Vre^v$G4|kh4}=Gi?$AaJ)3I+^m|Zyj#*?Kp@w(lQdJZf4 z#|IJW5z+S^e9@(6hW6N~{pj8|NO*>1)E=%?nNUAkmv~OY&ZV;m-%?pQ_11)hAr0oAwILrlsGawpxx4D43J&K=n+p3WLnlDsQ$b(9+4 z?mO^hmV^F8MV{4Lx>(Q=aHhQ1){0d*(e&s%G=i5rq3;t{JC zmgbn5Nkl)t@fPH$v;af26lyhH!k+#}_&aBK4baYPbZy$5aFx4}ka&qxl z$=Rh$W;U)>-=S-0=?7FH9dUAd2(q#4TCAHky!$^~;Dz^j|8_wuKc*YzfdAht@Q&ror?91Dm!N03=4=O!a)I*0q~p0g$Fm$pmr$ zb;wD;STDIi$@M%y1>p&_>%?UP($15gou_ue1u0!4(%81;qcIW8NyxFEvXpiJ|H4wz z*mFT(qVx1FKufG11hByuX%lPk4t#WZ{>8ka2efjY`~;AL6vWyQKpJun2nRiZYDij$ zP>4jQXPaP$UC$yIVgGa)jDV;F0l^n(V=HMRB5)20V7&r$jmk{UUIe zVjKroK}JAbD>B`2cwNQ&GDLx8{pg`7hbA~grk|W6LgiZ`8y`{Iq0i>t!3p2}MS6S+ zO_ruKyAElt)rdS>CtF7j{&6rP-#c=7evGMt7B6`7HG|-(WL`bDUAjyn+k$mx$CH;q2Dz4x;cPP$hW=`pFfLO)!jaCL@V2+F)So3}vg|%O*^T1j>C2lx zsURO-zIJC$^$g2byVbRIo^w>UxK}74^TqUiRR#7s_X$e)$6iYG1(PcW7un-va-S&u zHk9-6Zn&>T==A)lM^D~bk{&rFzCi35>UR!ZjQkdSiNX*-;l4z9j*7|q`TBl~Au`5& z+c)*8?#-tgUR$Zd%Q3bs96w6k7q@#tUn`5rj+r@_sAVVLqco|6O{ILX&U-&-cbVa3 zY?ngHR@%l{;`ri%H*0EhBWrGjv!LE4db?HEWb5mu*t@{kv|XwK8?npOshmzf=vZA@ zVSN9sL~!sn?r(AK)Q7Jk2(|M67Uy3I{eRy z_l&Y@A>;vjkWN5I2xvFFTLX0i+`{qz7C_@bo`ZUzDugfq4+>a3?1v%)O+YTd6@Ul7 zAfLfm=nhZ`)P~&v90$&UcF+yXm9sq!qCx3^9gzIcO|Y(js^Fj)Rvq>nQAHI92ap=P z10A4@prk+AGWCb`2)dQYFuR$|H6iDE8p}9a?#nV2}LBCoCf(Xi2@szia7#gY>b|l!-U`c}@ zLdhvQjc!BdLJvYvzzzngnw51yRYCqh4}$oRCy-z|v3Hc*d|?^Wj=l~18*E~*cR_kU z{XsxM1i{V*4GujHQ3DBpl2w4FgFR48Nma@HPgnyKoIEY-MqmMeY=I<%oG~l!f<+FN z1ZY^;10j4M4#HYXP zw5eJpA_y(>uLQ~OucgxDLuf}fVs272FaMxhn4xnDGIyLXnw>Xsd^J8XhcWIwIoQ9} z%FoSJTAGW(SRGwJwb=@pY7r$uQRK3Zd~XbxU)ts!4XsJrCycrWSI?e!IqwqIR8+Jh zlRjZ`UO1I!BtJR_2~7AbkbSm%XQqxEPkz6BTGWx8e}nQ=w7bZ|eVP4?*Tb!$(R)iC z9)&%bS*u(lXqzitAN)Oo=&Ytn>%Hzjc<5liuPi>zC_nw;Z0AE3Y$Jao_Q90R-gl~5 z_xAb2J%eArrC1CN4G$}-zVvCqF1;H;abAu6G*+PDHSYFx@Tdbfox*uEd3}BUyYY-l zTfEsOqsi#f9^FoLO;ChK<554qkri&Av~SIM*{fEYRE?vH7pTAOmu2pz3X?Wn*!ROX ztd54huAk&mFBemMooL33RV-*1f0Q3_(7hl$<#*|WF9P!;r;4_+X~k~uKEqdzZ$5Al zV63XN@)j$FN#cCD;ek1R#l zv%pGrhB~KWgoCj%GT?%{@@o(AJGt*PG#l3i>lhmb_twKH^EYvacVY-6bsCl5*^~L0 zonm@lk2UvvTKr2RS%}T>^~EYqdL1q4nD%0n&Xqr^cK^`J5W;lRRB^R-O8b&HENO||mo0xaD+S=I8RTlIfVgqN@SXDr2&-)we--K7w= zJVU8?Z+7k9dy;s;^gDkQa`0nz6N{T?(A&Iz)2!DEecLyRa&FI!id#5Z7B*O2=PsR0 zEvc|8{NS^)!d)MDX(97Xw}m&kEO@5jqRaDZ!+%`wYOI<23q|&js`&o4xvjP7D_xv@ z5hEwpsp{HezI9!~6O{~)lLR@oF7?J7i>1|5a~UuoN=q&6N}EJPV_GD`&M*v8Y`^2j zKII*d_@Fi$+i*YEW+Hbzn{iQk~yP z>7N{S4)r*!NwQ`(qcN#8SRQsNK6>{)X12nbF`*7#ecO7I)Q$uZsV+xS4E7aUn+U(K baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ diff --git a/packages/react-scripts/template-typescript/public/logo192.png b/packages/react-scripts/template-typescript/public/logo192.png index fc44b0a3796c0e0a64c3d858ca038bd4570465d9..fa313abf53936aefc517dbd583b724a57199d415 100644 GIT binary patch literal 8581 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�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 b!B~?t+WWKS5u5)CcMJGaRz{_UZlwPKNp@r} literal 9664 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN diff --git a/packages/react-scripts/template-typescript/src/App.css b/packages/react-scripts/template-typescript/src/App.css index b41d297cab1..afc3885715f 100644 --- a/packages/react-scripts/template-typescript/src/App.css +++ b/packages/react-scripts/template-typescript/src/App.css @@ -3,9 +3,7 @@ } .App-logo { - animation: App-logo-spin infinite 20s linear; height: 40vmin; - pointer-events: none; } .App-header { @@ -20,14 +18,5 @@ } .App-link { - color: #61dafb; -} - -@keyframes App-logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } + color: #09d3ac; } diff --git a/packages/react-scripts/template-typescript/src/logo.svg b/packages/react-scripts/template-typescript/src/logo.svg index 6b60c1042f5..2e5df0d3ab2 100644 --- a/packages/react-scripts/template-typescript/src/logo.svg +++ b/packages/react-scripts/template-typescript/src/logo.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/packages/react-scripts/template/public/favicon.ico b/packages/react-scripts/template/public/favicon.ico index a11777cc471a4344702741ab1c8a588998b1311a..c2c86b859eaa20639adf92ff979c2be8d580433e 100644 GIT binary patch literal 22382 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 QPNaAH_W=L@JAozeZ|l@fegFUf literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ diff --git a/packages/react-scripts/template/public/logo192.png b/packages/react-scripts/template/public/logo192.png index fc44b0a3796c0e0a64c3d858ca038bd4570465d9..fa313abf53936aefc517dbd583b724a57199d415 100644 GIT binary patch literal 8581 zcmaiac_5VE{_rzKwn+A*7-QepMq}U2*s@1OwlPM=Fi2!eWJ~rfBhg5aqM0lSqfKO~ zNmx@9*BR`^U^P=X{puv!8Q5XVM+)t$4T&asdFqgGQM|Oj~&iEny;YNmB`sZ{(26#+_59}O1I3!&6 zoB{j~UtRF`?z9>l_6H^6i~-!;&H-jdAYx!gRF9~t!wtD$`b7T#T_r>z`wlWAK-r@1kLxKNzVC%{wHKRyZ<*j9{(?DghyDM1r71HQU67z|9L^U zOLQnk%?T4uh$Q-9EY4y=BBcIUV%ILZ4!CoeV0UvI9upD{TGs%sfzu>U#ftP(*?cJuFlgw$92H#PMCApEa{1?m2p0}BCIQPloXQozAKiV`LStVBex zKzZ?yVb0=q95+@1O6epKJWbED;n?{l$x9(CKT3H^-)LqZKB zDON(RN?gY{j@1jh<~OJ471+k2S6xPK^z2C?*cmu7Me^UcZfkmES|)kpMb6eFgnbfG z5>=5?R;!UK_H>N@;n(rBv~O?#H7ESjRL(RF2$2<)ORIob`Y(UR|VV65ilX0O1pBw~-cAurF3 zSk@-1mKVdn_Oh#Qs>a;Dxin`s&PMWlM}4}FL@=GccyRcWP>*bgT{UBg^@Jbe;iaOK zpuzZMWJl`E!`Qb%b3aTfNQ9G{Y@2(q4=i5FM}eycXDG@e902w`-TgocmG+4Nz`+k_ za}$?yr0?ZX6Xh0#-3e$^s5zSBNP+wvR4&AkkM9)jpu6#CB*4ci=wRX*>M>g@80ERg zf*T>|p5f%*z&0cl+GXk?6t-VTD7RM0BI6LN#zuGf3Ug}e!^$-+X7p6F*5u&y7P+5< zY>gTi(wYVet*f1GyD0w0$D2!{c%_`Z%(-Ad4;bO4bpUSAP@Y63NGv-o3SDM3_NIZm zfT9ICl>A|uDv(&XvAq@#hyX_=Xm82=r^|-b)!y_11r!47d}(6sF!bCJTzI%|VTKt} zZ!hgOaD_uK431kINLGAcJsv@k?1ntgmN?v8ZzZ9HE~~~XUMIb0rKyb# z`6LeKBCrqYS&Ih_Bofa$14e|C*^-CM$4KLrPkKkoAi)!s<9;PJWBMaa{D&U;1NB#^ z+}BLUHmlPw6;Q?@t0n^Y6nf#7v0Q=6fEN$L0^%x?hiK+~F?NXN2zwSyC^fpH_3Sz+ zZcpMpS-~|7u#t<%)*3$zFjUb{&yqbE#~qLxF#tC7Wq0gM?`S_TA$TGo@d>)@jWdVS zzy}uZC#+RJAPwR;frt|~NaYX)AxUvi8Xqr0cXN*D0!D5m)bd#&+c;=C0%_~IxWx>V zr;|#wn+#q&L#T@6dDy_r*Ku9hflBNhO#xb@UQFgAChaD+eE~vNp#Yt8lRo!xqzMv8 zpL)(plyw{sXJ@zvEO?N!{NDu@(0Q&eyiQ0K&juWFeFMVZr*BzqVROG@46X^q>Qun+ zRqVN^A{J!N9XLNFXg{VeL_3k|D}H<+ME!0Karr^o?B;Y1LhE2l*(!oEaq@l;Uk|ke za`hBe5gP>w^+--LK$qEAzA)saZS&oq4m}p>Bu18T1MAIn> zIDuL#<>pW>1uSo0JxczWy`5*NS0QB<+7cJs#Vt6WFuC7WD)8j6V}U+2f`vYHMYv;v zVl(4F?k9}DlPn4X(&rEVs%5)6*8EInkb2{wu_>yonB|<^b6Er&ui7i0kOI#6qRJK_ zcgjqDlfE{5kRReP`l#f#(=K@mQr18F6*;f;1n;IkCR9F<=0tie|8@x^!$I(&#ou=gg zxIb1t{%M@)%agctHG_)&s7lHbJlq1coEHdag`3%dA}4$ibQ&1w0oCpGc)i%Aao>8M z!He?xItYiiD3CZE@D{$GIX4X`qvVNE%;4J^*3I5Uex2|$c}_fu8$Rvob;1yN>}hsJ z19z3toM)rWXJj8Sl5Ib&9Fn04Fy|HlQfXuQ%L2;a3wa~fcl>G8weS!N(_3sg96Rot zRy^8~b;PE<-8agwyFeM2mOn_>3ERfL6IwVpe43aN%dQj~RO3<*1n5xf6LWGVJSY$v z`>?0kiB{+?2@1-vj8uX!gHfnoDO-H-Slyf7S;p)SvISU>QP3GK!=U$LkAu$hJXhKS z(5DUp-5i+jVB(v(*U+twBpSyagr9w3Ip|9dAkPB0aLq5-K}D;u6NNx6Bw4DzD^da% zKGb5m?U+?immbmrmkfGUC19bkT80C=8Q@hUv!NA03r$le9g@hsZiv*6kdSQBzk<6!# z%ViAiP90o^R4G%nuhxQ9MvRuA@$$%8g7-7pSHF{V*`tnNA!bi}pYrxPN4gShc+YK`~gW@(954+66+E&0wx)Y6Y;ghQ9SuoZ>Q%|e&EA&>alzla?J-uP|t z3Wfm2OEGi0)ndjy-Pa4P&(=a*i2P+UYI+v-$9hMjfxBjvT?LB1hMbK0?S*5Gf_^~n zXbp7LFwr-=PZ7P!kr-9r%Z;xYDTOku0kt6KY>xOnjD5eIq~BlokpA}j_V9VggqT44 zKt)hLdxLD^5=8mXf^%?UgT^7Nu|tzLS?YJ!0Ht}eZ-u>H&ITbke&*Z)@L{q^Jhu-l zj=>LKTk3T6j(*;33{WWFu>>+ruY9xqx(OJM9TIc+jsxsb^){@$^4MZUY-{C0e$JNc zNOwc47;Rz#pY>5|#;!Htz$QEM&TqS}UYv_{??XU(0oA;6iE?>C9xDPlDoUH;jLZ*B z=`1xYry}*E{6>q6dq+oSqK_c@J!cG5J9FAz^LsVLl~ALP=LD2G4tVV~X;A;sS3~jy z7|@wDyCeO>sIucz{MVj=E4U6YqL~`Z_EQEwlI>PN;RW0aPj>t+v#ZoNZ8|nrias0k z;n-L#?7=JYc`#3L+h##^i_loPdd_Tzv(r{TpH@d~dpVrtWzIQMaCt=no8liUoVe_K zL5p9E>mFpTt(@n$Cd~EA@xAP;k2if5Vy!PybJr*oV;~0IkR0d^vV5W z=mM}r$Z1MmD>N;Y47MKYgW-iaDum;4r@**0vJsTTxA@R(jK6T!k>Zdy4y^cWK*{~7 zn@(XeUtWHmDxgee3h@Vn?=6SeGS$R;#XH^%!tn9PdBV6lCKO>OAu>ZnIW$E+lGu5j zq&R6kvgzLvL7(EJ2SgFL&p@sxe+OvG@d%E1qzJXrdEf&y@$mGet~OK|uh#ff$kVA@ z1n=dX1@_+^`-Q6su~w23R4?1H5S z1A@)QHXUw3S8UodsU8H>mMbiij7X(&4*VXG?Hzsl>b%P!=3T>a@1(&^UUF8Tw%fq= ze%hi;aKAE0U0m_BA5{*Nj`1pJg68?i!58d$G z*z<3jX&VXlrendgJYTP(9HWR=tZTHvU}|Jo1&Tcn==i*YFnzAx(u$Mg)AcZTE^2Ty zaFz%paMl~yN-%@xSB%HfNW6uVvW?R+7gA*`5yJEUJp#wDRa)3Kl_)I*?h7|ee?QJj zoi zYKxUq@i8H_$Xk$AGGUkv(V~MB(8JVxabnJ$WMw9dR&=0D1v)e<@t1Y^uT_;FzaTNH z`qEejf(!TivhC~tXvk5^*nu5TFQcvnd3!2|arRzQly56_;k)i()tJ^K9Wrq?HW%Gg zsK}qBlVoQ4?aF#zkrt@@ah5L$uhgPVd8}+N#q9x33IB3)MT)ig2;3kQPWVFsR9QD| zuuD02e8fhTJ{8P;=q*vSiN6Ht;2k+X!LdGCK>a9djp|1$q~s#h^4~3FuZf95*!Qn# zE=k&b)43wW|59u(&MY3$V(z{))FtqsOVs#acbs3(CG8{Rem(vSJ*@_>&p+MeIBefi z1�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 b!B~?t+WWKS5u5)CcMJGaRz{_UZlwPKNp@r} literal 9664 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN diff --git a/packages/react-scripts/template/src/App.css b/packages/react-scripts/template/src/App.css index b41d297cab1..afc3885715f 100644 --- a/packages/react-scripts/template/src/App.css +++ b/packages/react-scripts/template/src/App.css @@ -3,9 +3,7 @@ } .App-logo { - animation: App-logo-spin infinite 20s linear; height: 40vmin; - pointer-events: none; } .App-header { @@ -20,14 +18,5 @@ } .App-link { - color: #61dafb; -} - -@keyframes App-logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } + color: #09d3ac; } diff --git a/packages/react-scripts/template/src/logo.svg b/packages/react-scripts/template/src/logo.svg index 6b60c1042f5..2e5df0d3ab2 100644 --- a/packages/react-scripts/template/src/logo.svg +++ b/packages/react-scripts/template/src/logo.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file From e0719e4c5f00d2870ae16a2b57a00c66941ea429 Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Thu, 19 Sep 2019 11:42:25 -0600 Subject: [PATCH 0776/1249] Prepare 3.1.2 release --- CHANGELOG.md | 84 + packages/create-react-app/yarn.lock.cached | 1789 +++++++++++--------- 2 files changed, 1071 insertions(+), 802 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b5e2ea347b..d8210d62299 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,87 @@ +## 3.1.2 (2019-09-19) + +v3.1.2 is a maintenance release that includes minor bug fixes and documentation updates. + +#### :bug: Bug Fix + +- `react-scripts` + - [#7679](https://github.com/facebook/create-react-app/pull/7679) Change runtime chunk name separator from tilde to dash ([@javadoug](https://github.com/javadoug)) + - [#7538](https://github.com/facebook/create-react-app/pull/7538) Explicitly checking that EXTEND_ESLINT is true ([@BrockWills](https://github.com/BrockWills)) +- `babel-preset-react-app`, `react-error-overlay`, `react-scripts` + - [#7662](https://github.com/facebook/create-react-app/pull/7662) Fix build ([@ianschmitz](https://github.com/ianschmitz)) + +#### :nail_care: Enhancement + +- `react-scripts` + - [#7704](https://github.com/facebook/create-react-app/pull/7704) Add new logo ([@iansu](https://github.com/iansu)) + - [#7587](https://github.com/facebook/create-react-app/pull/7587) Minor performance improvements ([@deftomat](https://github.com/deftomat)) + - [#7633](https://github.com/facebook/create-react-app/pull/7633) Disable babel-loader's cacheCompression ([@jleclanche](https://github.com/jleclanche)) + +#### :memo: Documentation + +- [#7616](https://github.com/facebook/create-react-app/pull/7616) Update deployment.md with another AWS example ([@AndrewBestbier](https://github.com/AndrewBestbier)) +- [#7663](https://github.com/facebook/create-react-app/pull/7663) Remove --single-quote from prettier examples ([@brlewis](https://github.com/brlewis)) +- [#7659](https://github.com/facebook/create-react-app/pull/7659) Update running-tests.md ([@weyert](https://github.com/weyert)) +- [#7459](https://github.com/facebook/create-react-app/pull/7459) Update troubleshooting.md ([@prevostc](https://github.com/prevostc)) +- [#7650](https://github.com/facebook/create-react-app/pull/7650) Adopt Contributor Covenant ([@iansu](https://github.com/iansu)) +- [#7620](https://github.com/facebook/create-react-app/pull/7620) cleanup-after-each is no longer necessary! ([@iHmD](https://github.com/iHmD)) +- [#7613](https://github.com/facebook/create-react-app/pull/7613) Fix seams between changelog majors ([@emilpalsson](https://github.com/emilpalsson)) +- [#7368](https://github.com/facebook/create-react-app/pull/7368) Correcting proxy sample ([@szabolcs-szilagyi](https://github.com/szabolcs-szilagyi)) +- [#7536](https://github.com/facebook/create-react-app/pull/7536) add a migration step to remove static from robots.txt ([@lookfirst](https://github.com/lookfirst)) +- [#7521](https://github.com/facebook/create-react-app/pull/7521) Show logo for mobile views in create-react-app.dev ([@GrooChu](https://github.com/GrooChu)) + +#### :house: Internal + +- `react-scripts` + - [#7526](https://github.com/facebook/create-react-app/pull/7526) The variable dotenvFiles is never reassigned - use const instead ([@Primajin](https://github.com/Primajin)) + - [#7585](https://github.com/facebook/create-react-app/pull/7585) remove trailing spaces ([@xiaoxiangmoe](https://github.com/xiaoxiangmoe)) + +#### :hammer: Underlying Tools + +- `babel-plugin-named-asset-import`, `confusing-browser-globals`, `react-app-polyfill`, `react-dev-utils`, `react-error-overlay`, `react-scripts` + - [#7681](https://github.com/facebook/create-react-app/pull/7681) Bump dependencies ([@ianschmitz](https://github.com/ianschmitz)) +- `react-scripts` + - [#7531](https://github.com/facebook/create-react-app/pull/7531) Upgrade dotenv-expand to fix issues ([@DominicTobias](https://github.com/DominicTobias)) +- `eslint-config-react-app`, `react-scripts` + - [#7540](https://github.com/facebook/create-react-app/pull/7540) Bump version of @typescript-eslint/\* ([@pierreneter](https://github.com/pierreneter)) + +#### Committers: 20 + +- Andrew ([@AndrewBestbier](https://github.com/AndrewBestbier)) +- Brock Wills ([@BrockWills](https://github.com/BrockWills)) +- Clément Prévost ([@prevostc](https://github.com/prevostc)) +- Dominic Tobias ([@DominicTobias](https://github.com/DominicTobias)) +- Doug Ross ([@javadoug](https://github.com/javadoug)) +- Emil Pålsson ([@emilpalsson](https://github.com/emilpalsson)) +- Federico Zivolo ([@FezVrasta](https://github.com/FezVrasta)) +- Ian Schmitz ([@ianschmitz](https://github.com/ianschmitz)) +- Ian Sutherland ([@iansu](https://github.com/iansu)) +- Jannis Hell ([@Primajin](https://github.com/Primajin)) +- Jerome Leclanche ([@jleclanche](https://github.com/jleclanche)) +- Jon Stevens ([@lookfirst](https://github.com/lookfirst)) +- Sabesh Rajendran ([@GrooChu](https://github.com/GrooChu)) +- Tomáš Szabo ([@deftomat](https://github.com/deftomat)) +- Weyert de Boer ([@weyert](https://github.com/weyert)) +- ZHAO Jinxiang ([@xiaoxiangmoe](https://github.com/xiaoxiangmoe)) +- [@brlewis](https://github.com/brlewis) +- [@iHmD](https://github.com/iHmD) +- [@pierreneter](https://github.com/pierreneter) +- szabi ([@szabolcs-szilagyi](https://github.com/szabolcs-szilagyi)) + +### Migrating from 3.1.1 to 3.1.2 + +Inside any created project that has not been ejected, run: + +```sh +npm install --save --save-exact react-scripts@3.1.2 +``` + +or + +```sh +yarn add --exact react-scripts@3.1.2 +``` + ## 3.1.1 (2019-08-13) v3.1.1 is a maintenance release that includes minor bug fixes and documentation updates. diff --git a/packages/create-react-app/yarn.lock.cached b/packages/create-react-app/yarn.lock.cached index 05eea461bcc..f688144b532 100644 --- a/packages/create-react-app/yarn.lock.cached +++ b/packages/create-react-app/yarn.lock.cached @@ -9,7 +9,7 @@ dependencies: "@babel/highlight" "^7.0.0" -"@babel/core@7.5.5", "@babel/core@^7.1.0", "@babel/core@^7.4.5": +"@babel/core@7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.5.5.tgz#17b2686ef0d6bc58f963dddd68ab669755582c30" integrity sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg== @@ -29,12 +29,32 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.4.0", "@babel/generator@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.5.5.tgz#873a7f936a3c89491b43536d12245b626664e3cf" - integrity sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ== +"@babel/core@7.6.0", "@babel/core@^7.1.0", "@babel/core@^7.4.5": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.0.tgz#9b00f73554edd67bebc86df8303ef678be3d7b48" + integrity sha512-FuRhDRtsd6IptKpHXAa+4WPZYY2ZzgowkbLBecEDDSje1X/apG7jQM33or3NdOmjXBKWGOg4JmSiRfUfuTtHXw== dependencies: - "@babel/types" "^7.5.5" + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.6.0" + "@babel/helpers" "^7.6.0" + "@babel/parser" "^7.6.0" + "@babel/template" "^7.6.0" + "@babel/traverse" "^7.6.0" + "@babel/types" "^7.6.0" + convert-source-map "^1.1.0" + debug "^4.1.0" + json5 "^2.1.0" + lodash "^4.17.13" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.4.0", "@babel/generator@^7.5.5", "@babel/generator@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.0.tgz#e2c21efbfd3293ad819a2359b448f002bfdfda56" + integrity sha512-Ms8Mo7YBdMMn1BYuNtKuP/z0TgEIhbcyB8HVR6PPNYp4P61lMsABiS4A3VG1qznjXVCf3r+fVHhm4efTYVsySA== + dependencies: + "@babel/types" "^7.6.0" jsesc "^2.5.1" lodash "^4.17.13" source-map "^0.5.0" @@ -72,10 +92,10 @@ "@babel/traverse" "^7.4.4" "@babel/types" "^7.4.4" -"@babel/helper-create-class-features-plugin@^7.4.4", "@babel/helper-create-class-features-plugin@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.5.tgz#401f302c8ddbc0edd36f7c6b2887d8fa1122e5a4" - integrity sha512-ZsxkyYiRA7Bg+ZTRpPvB6AbOFKTFFK4LrvTet8lInm0V468MWCaSYJE+I7v2z2r8KNLtYiV+K5kTCnR7dvyZjg== +"@babel/helper-create-class-features-plugin@^7.4.4", "@babel/helper-create-class-features-plugin@^7.5.5", "@babel/helper-create-class-features-plugin@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.6.0.tgz#769711acca889be371e9bc2eb68641d55218021f" + integrity sha512-O1QWBko4fzGju6VoVvrZg0RROCVifcLxiApnGP3OWfWzvxRZFCoBD81K5ur5e3bVY2Vf/5rIJm8cqPKn8HUJng== dependencies: "@babel/helper-function-name" "^7.1.0" "@babel/helper-member-expression-to-functions" "^7.5.5" @@ -215,14 +235,14 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.2.0" -"@babel/helpers@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.5.5.tgz#63908d2a73942229d1e6685bc2a0e730dde3b75e" - integrity sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g== +"@babel/helpers@^7.5.5", "@babel/helpers@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.6.0.tgz#21961d16c6a3c3ab597325c34c465c0887d31c6e" + integrity sha512-W9kao7OBleOjfXtFGgArGRX6eCP0UEcA2ZWEWNkJdRZnHhW4eEbeswbG3EwaRsnQUAEGWYgMq1HsIXuNNNy2eQ== dependencies: - "@babel/template" "^7.4.4" - "@babel/traverse" "^7.5.5" - "@babel/types" "^7.5.5" + "@babel/template" "^7.6.0" + "@babel/traverse" "^7.6.0" + "@babel/types" "^7.6.0" "@babel/highlight@^7.0.0": version "7.5.0" @@ -233,10 +253,10 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b" - integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g== +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.5.5", "@babel/parser@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.0.tgz#3e05d0647432a8326cb28d0de03895ae5a57f39b" + integrity sha512-+o2q111WEx4srBs7L9eJmcwi655eD8sXniLqMB93TBK9GrNzGrxDWSjiqz2hLU0Ha8MTXFIP0yd9fNdP+m43ZQ== "@babel/plugin-proposal-async-generator-functions@^7.2.0": version "7.2.0" @@ -391,10 +411,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-block-scoping@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.5.5.tgz#a35f395e5402822f10d2119f6f8e045e3639a2ce" - integrity sha512-82A3CLRRdYubkG85lKwhZB0WZoHxLGsJdux/cOVaJCJpvYFl1LVzAIFyRsa7CvXqW8rBM4Zf3Bfn8PHt5DP0Sg== +"@babel/plugin-transform-block-scoping@^7.5.5", "@babel/plugin-transform-block-scoping@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.0.tgz#c49e21228c4bbd4068a35667e6d951c75439b1dc" + integrity sha512-tIt4E23+kw6TgL/edACZwP1OUKrjOTyMrFMLoT5IOFrfMRabCgekjqFd5o6PaAMildBu46oFkekIdMuGkkPEpA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" lodash "^4.17.13" @@ -420,13 +440,20 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-destructuring@7.5.0", "@babel/plugin-transform-destructuring@^7.5.0": +"@babel/plugin-transform-destructuring@7.5.0": version "7.5.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz#f6c09fdfe3f94516ff074fe877db7bc9ef05855a" integrity sha512-YbYgbd3TryYYLGyC7ZR+Tq8H/+bCmwoaxHfJHupom5ECstzbRLTch6gOQbhEY9Z4hiCNHEURgq06ykFv9JZ/QQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-transform-destructuring@^7.5.0", "@babel/plugin-transform-destructuring@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz#44bbe08b57f4480094d57d9ffbcd96d309075ba6" + integrity sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz#361a148bc951444312c69446d76ed1ea8e4450c3" @@ -497,10 +524,10 @@ "@babel/helper-plugin-utils" "^7.0.0" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-commonjs@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz#425127e6045231360858eeaa47a71d75eded7a74" - integrity sha512-xmHq0B+ytyrWJvQTc5OWAC4ii6Dhr0s22STOoydokG51JjWhyYo5mRPXoi+ZmtHQhZZwuXNN+GG5jy5UZZJxIQ== +"@babel/plugin-transform-modules-commonjs@^7.5.0", "@babel/plugin-transform-modules-commonjs@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz#39dfe957de4420445f1fcf88b68a2e4aa4515486" + integrity sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g== dependencies: "@babel/helper-module-transforms" "^7.4.4" "@babel/helper-plugin-utils" "^7.0.0" @@ -524,12 +551,12 @@ "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-named-capturing-groups-regex@^7.4.5": - version "7.4.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz#9d269fd28a370258199b4294736813a60bbdd106" - integrity sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg== +"@babel/plugin-transform-named-capturing-groups-regex@^7.4.5", "@babel/plugin-transform-named-capturing-groups-regex@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.0.tgz#1e6e663097813bb4f53d42df0750cf28ad3bb3f1" + integrity sha512-jem7uytlmrRl3iCAuQyw8BpB4c4LWvSpvIeXKpMb+7j84lkx4m4mYr5ErAcmN5KM7B6BqrAvRGjBIbbzqCczew== dependencies: - regexp-tree "^0.1.6" + regexp-tree "^0.1.13" "@babel/plugin-transform-new-target@^7.4.4": version "7.4.4" @@ -563,9 +590,9 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-react-constant-elements@^7.0.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.5.0.tgz#4d6ae4033bc38f8a65dfca2b6235c44522a422fc" - integrity sha512-c5Ba8cpybZFp1Izkf2sWGuNjOxoQ32tFgBvvYvwGhi4+9f6vGiSK9Gex4uVuO/Va6YJFu41aAh1MzMjUWkp0IQ== + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.6.0.tgz#13b8434fb817d30feebd811256eb402c9a245c9e" + integrity sha512-np/nPuII8DHOZWB3u8u+NSeKlEz0eBrOlnVksIQog4C9NGVzXO+NLxMcXn4Eu4GMFzOw2W6Tyo6L3+Wv8z9Y5w== dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -664,11 +691,11 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-typescript@^7.3.2": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.5.5.tgz#6d862766f09b2da1cb1f7d505fe2aedab6b7d4b8" - integrity sha512-pehKf4m640myZu5B2ZviLaiBlxMCjSZ1qTEO459AXKX5GnPueyulJeCqZFs1nz/Ya2dDzXQ1NxZ/kKNWyD4h6w== + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.6.0.tgz#48d78405f1aa856ebeea7288a48a19ed8da377a6" + integrity sha512-yzw7EopOOr6saONZ3KA3lpizKnWRTe+rfBqg4AmQbSow7ik7fqmzrfIqt053osLwLE2AaTqGinLM2tl6+M/uog== dependencies: - "@babel/helper-create-class-features-plugin" "^7.5.5" + "@babel/helper-create-class-features-plugin" "^7.6.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-typescript" "^7.2.0" @@ -681,7 +708,7 @@ "@babel/helper-regex" "^7.4.4" regexpu-core "^4.5.4" -"@babel/preset-env@7.5.5", "@babel/preset-env@^7.4.5": +"@babel/preset-env@7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.5.5.tgz#bc470b53acaa48df4b8db24a570d6da1fef53c9a" integrity sha512-GMZQka/+INwsMz1A5UEql8tG015h5j/qjptpKY2gJ7giy8ohzU710YciJB5rcKsWGWHiW3RUnHib0E5/m3Tp3A== @@ -737,6 +764,62 @@ js-levenshtein "^1.1.3" semver "^5.5.0" +"@babel/preset-env@^7.4.5": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.6.0.tgz#aae4141c506100bb2bfaa4ac2a5c12b395619e50" + integrity sha512-1efzxFv/TcPsNXlRhMzRnkBFMeIqBBgzwmZwlFDw5Ubj0AGLeufxugirwZmkkX/ayi3owsSqoQ4fw8LkfK9SYg== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-async-generator-functions" "^7.2.0" + "@babel/plugin-proposal-dynamic-import" "^7.5.0" + "@babel/plugin-proposal-json-strings" "^7.2.0" + "@babel/plugin-proposal-object-rest-spread" "^7.5.5" + "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-syntax-async-generators" "^7.2.0" + "@babel/plugin-syntax-dynamic-import" "^7.2.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + "@babel/plugin-transform-arrow-functions" "^7.2.0" + "@babel/plugin-transform-async-to-generator" "^7.5.0" + "@babel/plugin-transform-block-scoped-functions" "^7.2.0" + "@babel/plugin-transform-block-scoping" "^7.6.0" + "@babel/plugin-transform-classes" "^7.5.5" + "@babel/plugin-transform-computed-properties" "^7.2.0" + "@babel/plugin-transform-destructuring" "^7.6.0" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/plugin-transform-duplicate-keys" "^7.5.0" + "@babel/plugin-transform-exponentiation-operator" "^7.2.0" + "@babel/plugin-transform-for-of" "^7.4.4" + "@babel/plugin-transform-function-name" "^7.4.4" + "@babel/plugin-transform-literals" "^7.2.0" + "@babel/plugin-transform-member-expression-literals" "^7.2.0" + "@babel/plugin-transform-modules-amd" "^7.5.0" + "@babel/plugin-transform-modules-commonjs" "^7.6.0" + "@babel/plugin-transform-modules-systemjs" "^7.5.0" + "@babel/plugin-transform-modules-umd" "^7.2.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.6.0" + "@babel/plugin-transform-new-target" "^7.4.4" + "@babel/plugin-transform-object-super" "^7.5.5" + "@babel/plugin-transform-parameters" "^7.4.4" + "@babel/plugin-transform-property-literals" "^7.2.0" + "@babel/plugin-transform-regenerator" "^7.4.5" + "@babel/plugin-transform-reserved-words" "^7.2.0" + "@babel/plugin-transform-shorthand-properties" "^7.2.0" + "@babel/plugin-transform-spread" "^7.2.0" + "@babel/plugin-transform-sticky-regex" "^7.2.0" + "@babel/plugin-transform-template-literals" "^7.4.4" + "@babel/plugin-transform-typeof-symbol" "^7.2.0" + "@babel/plugin-transform-unicode-regex" "^7.4.4" + "@babel/types" "^7.6.0" + browserslist "^4.6.0" + core-js-compat "^3.1.1" + invariant "^2.2.2" + js-levenshtein "^1.1.3" + semver "^5.5.0" + "@babel/preset-react@7.0.0", "@babel/preset-react@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0.tgz#e86b4b3d99433c7b3e9e91747e2653958bc6b3c0" @@ -756,41 +839,48 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-typescript" "^7.3.2" -"@babel/runtime@7.5.5", "@babel/runtime@^7.0.0", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.2", "@babel/runtime@^7.4.5": +"@babel/runtime@7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.5.5.tgz#74fba56d35efbeca444091c7850ccd494fd2f132" integrity sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ== dependencies: regenerator-runtime "^0.13.2" -"@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" - integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw== +"@babel/runtime@^7.0.0", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.2", "@babel/runtime@^7.4.5": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.6.0.tgz#4fc1d642a9fd0299754e8b5de62c631cf5568205" + integrity sha512-89eSBLJsxNxOERC0Op4vd+0Bqm6wRMqMbFtV3i0/fbaWw/mJ8Q3eBvgX0G4SyrOOLCtbu98HspF8o09MRT+KzQ== + dependencies: + regenerator-runtime "^0.13.2" + +"@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.4.4", "@babel/template@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz#7f0159c7f5012230dad64cca42ec9bdb5c9536e6" + integrity sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.4.4" - "@babel/types" "^7.4.4" + "@babel/parser" "^7.6.0" + "@babel/types" "^7.6.0" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.5.tgz#f664f8f368ed32988cd648da9f72d5ca70f165bb" - integrity sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ== +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5", "@babel/traverse@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.0.tgz#389391d510f79be7ce2ddd6717be66d3fed4b516" + integrity sha512-93t52SaOBgml/xY74lsmt7xOR4ufYvhb5c5qiM6lu4J/dWGMAfAh6eKw4PjLes6DI6nQgearoxnFJk60YchpvQ== dependencies: "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.5.5" + "@babel/generator" "^7.6.0" "@babel/helper-function-name" "^7.1.0" "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/parser" "^7.5.5" - "@babel/types" "^7.5.5" + "@babel/parser" "^7.6.0" + "@babel/types" "^7.6.0" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.13" -"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a" - integrity sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw== +"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0": + version "7.6.1" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.1.tgz#53abf3308add3ac2a2884d539151c57c4b3ac648" + integrity sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g== dependencies: esutils "^2.0.2" lodash "^4.17.13" @@ -815,35 +905,30 @@ integrity sha512-6It2EVfGskxZCQhuykrfnALg7oVeiI6KclWSmGDqB0AiInVrTGB9Jp9i4/Ad21u9Jde/voVQz6eFX/eSg/UsPA== "@hapi/address@2.x.x": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.0.0.tgz#9f05469c88cb2fd3dcd624776b54ee95c312126a" - integrity sha512-mV6T0IYqb0xL1UALPFplXYQmR0twnXG0M6jUswpquqT2sD12BOiCiLy3EvMp/Fy7s3DZElC4/aPjEjo2jeZpvw== + version "2.1.1" + resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.1.tgz#61395b5ed94c4cb19c2dc4c85969cff3d40d583f" + integrity sha512-DYuHzu978pP1XW1GD3HGvLnAFjbQTIgc2+V153FGkbS2pgo9haigCdwBnUDrbhaOkgiJlbZvoEqDrcxSLHpiWA== -"@hapi/hoek@6.x.x": - version "6.2.4" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-6.2.4.tgz#4b95fbaccbfba90185690890bdf1a2fbbda10595" - integrity sha512-HOJ20Kc93DkDVvjwHyHawPwPkX44sIrbXazAUDiUXaY2R9JwQGo2PhFfnQtdrsIe4igjG2fPgMra7NYw7qhy0A== +"@hapi/bourne@1.x.x": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" + integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== "@hapi/hoek@8.x.x": - version "8.2.1" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.2.1.tgz#924af04cbb22e17359c620d2a9c946e63f58eb77" - integrity sha512-JPiBy+oSmsq3St7XlipfN5pNA6bDJ1kpa73PrK/zR29CVClDVqy04AanM/M/qx5bSF+I61DdCfAvRrujau+zRg== + version "8.2.4" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.2.4.tgz#684a14f4ca35d46f44abc87dfc696e5e4fe8a020" + integrity sha512-Ze5SDNt325yZvNO7s5C4fXDscjJ6dcqLFXJQ/M7dZRQCewuDj2iDUuBi6jLQt+APbW9RjjVEvLr35FXuOEqjow== "@hapi/joi@^15.0.0": - version "15.1.0" - resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.0.tgz#940cb749b5c55c26ab3b34ce362e82b6162c8e7a" - integrity sha512-n6kaRQO8S+kepUTbXL9O/UOL788Odqs38/VOfoCrATDtTvyfiO3fgjlSRaNkHabpTLgM7qru9ifqXlXbXk8SeQ== + version "15.1.1" + resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" + integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ== dependencies: "@hapi/address" "2.x.x" - "@hapi/hoek" "6.x.x" - "@hapi/marker" "1.x.x" + "@hapi/bourne" "1.x.x" + "@hapi/hoek" "8.x.x" "@hapi/topo" "3.x.x" -"@hapi/marker@1.x.x": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@hapi/marker/-/marker-1.0.0.tgz#65b0b2b01d1be06304886ce9b4b77b1bfb21a769" - integrity sha512-JOfdekTXnJexfE8PyhZFyHvHjt81rBFSAbTIRAhF2vv/2Y1JzoKsGqxH/GpZJoF7aEfYok8JVcAHmSz1gkBieA== - "@hapi/topo@3.x.x": version "3.1.3" resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.3.tgz#c7a02e0d936596d29f184e6d7fdc07e8b5efce11" @@ -851,76 +936,77 @@ dependencies: "@hapi/hoek" "8.x.x" -"@jest/console@^24.7.1": - version "24.7.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.7.1.tgz#32a9e42535a97aedfe037e725bd67e954b459545" - integrity sha512-iNhtIy2M8bXlAOULWVTUxmnelTLFneTNEkHCgPmgd+zNwy9zVddJ6oS5rZ9iwoscNdT5mMwUd0C51v/fSlzItg== +"@jest/console@^24.7.1", "@jest/console@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" + integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ== dependencies: - "@jest/source-map" "^24.3.0" + "@jest/source-map" "^24.9.0" chalk "^2.0.1" slash "^2.0.0" -"@jest/core@^24.8.0": - version "24.8.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.8.0.tgz#fbbdcd42a41d0d39cddbc9f520c8bab0c33eed5b" - integrity sha512-R9rhAJwCBQzaRnrRgAdVfnglUuATXdwTRsYqs6NMdVcAl5euG8LtWDe+fVkN27YfKVBW61IojVsXKaOmSnqd/A== +"@jest/core@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.9.0.tgz#2ceccd0b93181f9c4850e74f2a9ad43d351369c4" + integrity sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A== dependencies: "@jest/console" "^24.7.1" - "@jest/reporters" "^24.8.0" - "@jest/test-result" "^24.8.0" - "@jest/transform" "^24.8.0" - "@jest/types" "^24.8.0" + "@jest/reporters" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" ansi-escapes "^3.0.0" chalk "^2.0.1" exit "^0.1.2" graceful-fs "^4.1.15" - jest-changed-files "^24.8.0" - jest-config "^24.8.0" - jest-haste-map "^24.8.0" - jest-message-util "^24.8.0" + jest-changed-files "^24.9.0" + jest-config "^24.9.0" + jest-haste-map "^24.9.0" + jest-message-util "^24.9.0" jest-regex-util "^24.3.0" - jest-resolve-dependencies "^24.8.0" - jest-runner "^24.8.0" - jest-runtime "^24.8.0" - jest-snapshot "^24.8.0" - jest-util "^24.8.0" - jest-validate "^24.8.0" - jest-watcher "^24.8.0" + jest-resolve "^24.9.0" + jest-resolve-dependencies "^24.9.0" + jest-runner "^24.9.0" + jest-runtime "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" + jest-watcher "^24.9.0" micromatch "^3.1.10" p-each-series "^1.0.0" - pirates "^4.0.1" realpath-native "^1.1.0" rimraf "^2.5.4" + slash "^2.0.0" strip-ansi "^5.0.0" -"@jest/environment@^24.8.0": - version "24.8.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.8.0.tgz#0342261383c776bdd652168f68065ef144af0eac" - integrity sha512-vlGt2HLg7qM+vtBrSkjDxk9K0YtRBi7HfRFaDxoRtyi+DyVChzhF20duvpdAnKVBV6W5tym8jm0U9EfXbDk1tw== - dependencies: - "@jest/fake-timers" "^24.8.0" - "@jest/transform" "^24.8.0" - "@jest/types" "^24.8.0" - jest-mock "^24.8.0" - -"@jest/fake-timers@^24.8.0": - version "24.8.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.8.0.tgz#2e5b80a4f78f284bcb4bd5714b8e10dd36a8d3d1" - integrity sha512-2M4d5MufVXwi6VzZhJ9f5S/wU4ud2ck0kxPof1Iz3zWx6Y+V2eJrES9jEktB6O3o/oEyk+il/uNu9PvASjWXQw== - dependencies: - "@jest/types" "^24.8.0" - jest-message-util "^24.8.0" - jest-mock "^24.8.0" - -"@jest/reporters@^24.8.0": - version "24.8.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.8.0.tgz#075169cd029bddec54b8f2c0fc489fd0b9e05729" - integrity sha512-eZ9TyUYpyIIXfYCrw0UHUWUvE35vx5I92HGMgS93Pv7du+GHIzl+/vh8Qj9MCWFK/4TqyttVBPakWMOfZRIfxw== - dependencies: - "@jest/environment" "^24.8.0" - "@jest/test-result" "^24.8.0" - "@jest/transform" "^24.8.0" - "@jest/types" "^24.8.0" +"@jest/environment@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18" + integrity sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ== + dependencies: + "@jest/fake-timers" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + +"@jest/fake-timers@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" + integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A== + dependencies: + "@jest/types" "^24.9.0" + jest-message-util "^24.9.0" + jest-mock "^24.9.0" + +"@jest/reporters@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.9.0.tgz#86660eff8e2b9661d042a8e98a028b8d631a5b43" + integrity sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw== + dependencies: + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" chalk "^2.0.1" exit "^0.1.2" glob "^7.1.2" @@ -928,74 +1014,75 @@ istanbul-lib-instrument "^3.0.1" istanbul-lib-report "^2.0.4" istanbul-lib-source-maps "^3.0.1" - istanbul-reports "^2.1.1" - jest-haste-map "^24.8.0" - jest-resolve "^24.8.0" - jest-runtime "^24.8.0" - jest-util "^24.8.0" + istanbul-reports "^2.2.6" + jest-haste-map "^24.9.0" + jest-resolve "^24.9.0" + jest-runtime "^24.9.0" + jest-util "^24.9.0" jest-worker "^24.6.0" - node-notifier "^5.2.1" + node-notifier "^5.4.2" slash "^2.0.0" source-map "^0.6.0" string-length "^2.0.0" -"@jest/source-map@^24.3.0": - version "24.3.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.3.0.tgz#563be3aa4d224caf65ff77edc95cd1ca4da67f28" - integrity sha512-zALZt1t2ou8le/crCeeiRYzvdnTzaIlpOWaet45lNSqNJUnXbppUUFR4ZUAlzgDmKee4Q5P/tKXypI1RiHwgag== +"@jest/source-map@^24.3.0", "@jest/source-map@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" + integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg== dependencies: callsites "^3.0.0" graceful-fs "^4.1.15" source-map "^0.6.0" -"@jest/test-result@^24.8.0": - version "24.8.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.8.0.tgz#7675d0aaf9d2484caa65e048d9b467d160f8e9d3" - integrity sha512-+YdLlxwizlfqkFDh7Mc7ONPQAhA4YylU1s529vVM1rsf67vGZH/2GGm5uO8QzPeVyaVMobCQ7FTxl38QrKRlng== +"@jest/test-result@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" + integrity sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA== dependencies: - "@jest/console" "^24.7.1" - "@jest/types" "^24.8.0" + "@jest/console" "^24.9.0" + "@jest/types" "^24.9.0" "@types/istanbul-lib-coverage" "^2.0.0" -"@jest/test-sequencer@^24.8.0": - version "24.8.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.8.0.tgz#2f993bcf6ef5eb4e65e8233a95a3320248cf994b" - integrity sha512-OzL/2yHyPdCHXEzhoBuq37CE99nkme15eHkAzXRVqthreWZamEMA0WoetwstsQBCXABhczpK03JNbc4L01vvLg== +"@jest/test-sequencer@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31" + integrity sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A== dependencies: - "@jest/test-result" "^24.8.0" - jest-haste-map "^24.8.0" - jest-runner "^24.8.0" - jest-runtime "^24.8.0" + "@jest/test-result" "^24.9.0" + jest-haste-map "^24.9.0" + jest-runner "^24.9.0" + jest-runtime "^24.9.0" -"@jest/transform@^24.8.0": - version "24.8.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.8.0.tgz#628fb99dce4f9d254c6fd9341e3eea262e06fef5" - integrity sha512-xBMfFUP7TortCs0O+Xtez2W7Zu1PLH9bvJgtraN1CDST6LBM/eTOZ9SfwS/lvV8yOfcDpFmwf9bq5cYbXvqsvA== +"@jest/transform@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56" + integrity sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" babel-plugin-istanbul "^5.1.0" chalk "^2.0.1" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.1.15" - jest-haste-map "^24.8.0" - jest-regex-util "^24.3.0" - jest-util "^24.8.0" + jest-haste-map "^24.9.0" + jest-regex-util "^24.9.0" + jest-util "^24.9.0" micromatch "^3.1.10" + pirates "^4.0.1" realpath-native "^1.1.0" slash "^2.0.0" source-map "^0.6.1" write-file-atomic "2.4.1" -"@jest/types@^24.8.0": - version "24.8.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.8.0.tgz#f31e25948c58f0abd8c845ae26fcea1491dea7ad" - integrity sha512-g17UxVr2YfBtaMUxn9u/4+siG1ptg9IGYAYwvpwn61nBg779RXnjE/m7CxYcIzEt0AbHZZAHSEZNhkE2WxURVg== +"@jest/types@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" + integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^12.0.9" + "@types/yargs" "^13.0.0" "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" @@ -1114,9 +1201,9 @@ loader-utils "^1.2.3" "@types/babel__core@^7.1.0": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.2.tgz#608c74f55928033fce18b99b213c16be4b3d114f" - integrity sha512-cfCCrFmiGY/yq0NuKNxIQvZFy9kY/1immpSpTngOnyIbD4+eJOG5mxphhHDv3CHL9GltO4GcKr54kGBg3RNdbg== + version "7.1.3" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.3.tgz#e441ea7df63cd080dfcd02ab199e6d16a735fc30" + integrity sha512-8fBo0UR2CcwWxeX7WIIgJ7lXjasFxoYgRnFHUj+hRvKkpiBJbxhdAPTCY6/ZKM0uxANFVzt4yObSLuTiTnazDA== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -1186,48 +1273,57 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== -"@types/yargs@^12.0.2", "@types/yargs@^12.0.9": - version "12.0.12" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.12.tgz#45dd1d0638e8c8f153e87d296907659296873916" - integrity sha512-SOhuU4wNBxhhTHxYaiG5NY4HBhDIDnJF60GU+2LqHAdKKer86//e4yg69aENCtQ04n0ovz+tq2YPME5t5yp4pw== +"@types/yargs-parser@*": + version "13.1.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-13.1.0.tgz#c563aa192f39350a1d18da36c5a8da382bbd8228" + integrity sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg== + +"@types/yargs@^13.0.0": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.2.tgz#a64674fc0149574ecd90ba746e932b5a5f7b3653" + integrity sha512-lwwgizwk/bIIU+3ELORkyuOgDjCh7zuWDFqRtPPhhVgq9N1F7CvLNKg1TX4f2duwtKQ0p044Au9r1PLIXHrIzQ== + dependencies: + "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@1.13.0": - version "1.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-1.13.0.tgz#22fed9b16ddfeb402fd7bcde56307820f6ebc49f" - integrity sha512-WQHCozMnuNADiqMtsNzp96FNox5sOVpU8Xt4meaT4em8lOG1SrOv92/mUbEHQVh90sldKSfcOc/I0FOb/14G1g== +"@typescript-eslint/eslint-plugin@^2.2.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.3.0.tgz#6ead12c6b15a9b930430931e396e01a1fe181fcc" + integrity sha512-QgO/qmNye+rKsU7dan6pkBTSfpbyrHJidsw9bR3gZCrQNTB9eWQ5+UDkrrev/fu9xg6Qh7ebbx03IVuGnGRmEw== dependencies: - "@typescript-eslint/experimental-utils" "1.13.0" - eslint-utils "^1.3.1" + "@typescript-eslint/experimental-utils" "2.3.0" + eslint-utils "^1.4.2" functional-red-black-tree "^1.0.1" regexpp "^2.0.1" - tsutils "^3.7.0" + tsutils "^3.17.1" -"@typescript-eslint/experimental-utils@1.13.0": - version "1.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz#b08c60d780c0067de2fb44b04b432f540138301e" - integrity sha512-zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg== +"@typescript-eslint/experimental-utils@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.3.0.tgz#19a8e1b8fcee7d7469f3b44691d91830568de140" + integrity sha512-ry+fgd0Hh33LyzS30bIhX/a1HJpvtnecjQjWxxsZTavrRa1ymdmX7tz+7lPrPAxB018jnNzwNtog6s3OhxPTAg== dependencies: "@types/json-schema" "^7.0.3" - "@typescript-eslint/typescript-estree" "1.13.0" - eslint-scope "^4.0.0" + "@typescript-eslint/typescript-estree" "2.3.0" + eslint-scope "^5.0.0" -"@typescript-eslint/parser@1.13.0": - version "1.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-1.13.0.tgz#61ac7811ea52791c47dc9fd4dd4a184fae9ac355" - integrity sha512-ITMBs52PCPgLb2nGPoeT4iU3HdQZHcPaZVw+7CsFagRJHUhyeTgorEwHXhFf3e7Evzi8oujKNpHc8TONth8AdQ== +"@typescript-eslint/parser@^2.2.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.3.0.tgz#d2df1d4bb8827e36125fb7c6274df1b4d4e614f0" + integrity sha512-Dc+LAtHts0yDuusxG0NVjGvrpPy2kZauxqPbfFs0fmcMB4JhNs+WwIDMFGWeKjbGoPt/SIUC9XJ7E0ZD/f8InQ== dependencies: "@types/eslint-visitor-keys" "^1.0.0" - "@typescript-eslint/experimental-utils" "1.13.0" - "@typescript-eslint/typescript-estree" "1.13.0" - eslint-visitor-keys "^1.0.0" + "@typescript-eslint/experimental-utils" "2.3.0" + "@typescript-eslint/typescript-estree" "2.3.0" + eslint-visitor-keys "^1.1.0" -"@typescript-eslint/typescript-estree@1.13.0": - version "1.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-1.13.0.tgz#8140f17d0f60c03619798f1d628b8434913dc32e" - integrity sha512-b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw== +"@typescript-eslint/typescript-estree@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.3.0.tgz#fd8faff7e4c73795c65e5817c52f9038e33ef29d" + integrity sha512-WBxfwsTeCOsmQ7cLjow7lgysviBKUW34npShu7dxJYUQCbSG5nfZWZTgmQPKEc+3flpbSM7tjXjQOgETYp+njQ== dependencies: + glob "^7.1.4" + is-glob "^4.0.1" lodash.unescape "4.0.1" - semver "5.5.0" + semver "^6.3.0" "@webassemblyjs/ast@1.8.5": version "1.8.5" @@ -1386,9 +1482,9 @@ integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== abab@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f" - integrity sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w== + version "2.0.1" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.1.tgz#3fa17797032b71410ec372e11668f4b4ffc86a82" + integrity sha512-1zSbbCuoIjafKZ3mblY5ikvAb0ODUbqBnFuUb7f6uLeQhhGJ0vEV4ntmtxKLT2WgXCO94E07BjunsIw1jOMPZw== abbrev@1: version "1.1.1" @@ -1404,17 +1500,17 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: negotiator "0.6.2" acorn-globals@^4.1.0, acorn-globals@^4.3.0: - version "4.3.3" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.3.tgz#a86f75b69680b8780d30edd21eee4e0ea170c05e" - integrity sha512-vkR40VwS2SYO98AIeFvzWWh+xyc2qi9s7OoXSFEGIP/rOJKzjnhykaZJNnHdoq4BL2gGxI5EZOU16z896EYnOQ== + version "4.3.4" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" + integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== dependencies: acorn "^6.0.1" acorn-walk "^6.0.1" -acorn-jsx@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" - integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg== +acorn-jsx@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.2.tgz#84b68ea44b373c4f8686023a551f61a21b7c4a4f" + integrity sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw== acorn-walk@^6.0.1: version "6.2.0" @@ -1426,16 +1522,26 @@ acorn@^5.5.3: resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== -acorn@^6.0.1, acorn@^6.0.4, acorn@^6.0.7, acorn@^6.2.1: +acorn@^6.0.1, acorn@^6.0.4, acorn@^6.2.1: version "6.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== -address@1.1.0, address@^1.0.1: +acorn@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.0.0.tgz#26b8d1cd9a9b700350b71c0905546f64d1284e7a" + integrity sha512-PaF/MduxijYYt7unVGRuds1vBC9bFxbNf+VWqhOClfdgy7RlVkQqt610ig1/yxTgsDIfW1cWDel5EBbOy3jdtQ== + +address@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/address/-/address-1.1.0.tgz#ef8e047847fcd2c5b6f50c16965f924fd99fe709" integrity sha512-4diPfzWbLEIElVG4AnqP+00SULlPzNuyJFNnmMrLgyaxG6tZXJ1sn7mjBu4fHrJE+Yp/jgylOweJn2xsLMFggQ== +address@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" + integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== + adjust-sourcemap-loader@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-2.0.0.tgz#6471143af75ec02334b219f54bc7970c52fb29a4" @@ -1757,17 +1863,17 @@ babel-code-frame@^6.22.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-eslint@10.0.2: - version "10.0.2" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.2.tgz#182d5ac204579ff0881684b040560fdcc1558456" - integrity sha512-UdsurWPtgiPgpJ06ryUnuaSXC2s0WoSZnQmEpbAH65XZSdwowgN5MvyP7e88nW07FYXv72erVtpBkxyDVKhH1Q== +babel-eslint@10.0.3: + version "10.0.3" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.3.tgz#81a2c669be0f205e19462fed2482d33e4687a88a" + integrity sha512-z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA== dependencies: "@babel/code-frame" "^7.0.0" "@babel/parser" "^7.0.0" "@babel/traverse" "^7.0.0" "@babel/types" "^7.0.0" - eslint-scope "3.7.1" eslint-visitor-keys "^1.0.0" + resolve "^1.12.0" babel-extract-comments@^1.0.0: version "1.0.0" @@ -1776,16 +1882,16 @@ babel-extract-comments@^1.0.0: dependencies: babylon "^6.18.0" -babel-jest@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.8.0.tgz#5c15ff2b28e20b0f45df43fe6b7f2aae93dba589" - integrity sha512-+5/kaZt4I9efoXzPlZASyK/lN9qdRKmmUav9smVc0ruPQD7IsfucQ87gpOE8mn2jbDuS6M/YOW6n3v9ZoIfgnw== +babel-jest@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54" + integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw== dependencies: - "@jest/transform" "^24.8.0" - "@jest/types" "^24.8.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" "@types/babel__core" "^7.1.0" babel-plugin-istanbul "^5.1.0" - babel-preset-jest "^24.6.0" + babel-preset-jest "^24.9.0" chalk "^2.4.2" slash "^2.0.0" @@ -1816,10 +1922,10 @@ babel-plugin-istanbul@^5.1.0: istanbul-lib-instrument "^3.3.0" test-exclude "^5.2.3" -babel-plugin-jest-hoist@^24.6.0: - version "24.6.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.6.0.tgz#f7f7f7ad150ee96d7a5e8e2c5da8319579e78019" - integrity sha512-3pKNH6hMt9SbOv0F3WVmy5CWQ4uogS3k0GY5XLyQHJ9EGpAT9XWkFd2ZiXXtkwFHdAHa5j7w7kfxSP5lAIwu7w== +babel-plugin-jest-hoist@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756" + integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw== dependencies: "@types/babel__traverse" "^7.0.6" @@ -1855,13 +1961,13 @@ babel-plugin-transform-react-remove-prop-types@0.4.24: resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== -babel-preset-jest@^24.6.0: - version "24.6.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.6.0.tgz#66f06136eefce87797539c0d63f1769cc3915984" - integrity sha512-pdZqLEdmy1ZK5kyRUfvBb2IfTPb2BUvIJczlPspS8fWmBQslNNDBqVfh7BW5leOVJMDZKzjD8XEyABTk6gQ5yw== +babel-preset-jest@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc" + integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg== dependencies: "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - babel-plugin-jest-hoist "^24.6.0" + babel-plugin-jest-hoist "^24.9.0" babel-preset-react-app@^9.0.1: version "9.0.1" @@ -2086,7 +2192,7 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@4.6.6, browserslist@^4.0.0, browserslist@^4.1.1, browserslist@^4.6.0, browserslist@^4.6.3, browserslist@^4.6.4, browserslist@^4.6.6: +browserslist@4.6.6: version "4.6.6" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.6.tgz#6e4bf467cde520bc9dbdf3747dafa03531cec453" integrity sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA== @@ -2095,6 +2201,15 @@ browserslist@4.6.6, browserslist@^4.0.0, browserslist@^4.1.1, browserslist@^4.6. electron-to-chromium "^1.3.191" node-releases "^1.1.25" +browserslist@^4.0.0, browserslist@^4.1.1, browserslist@^4.6.0, browserslist@^4.6.3, browserslist@^4.6.4, browserslist@^4.6.6: + version "4.7.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.0.tgz#9ee89225ffc07db03409f2fee524dc8227458a17" + integrity sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA== + dependencies: + caniuse-lite "^1.0.30000989" + electron-to-chromium "^1.3.247" + node-releases "^1.1.29" + bser@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.0.tgz#65fc784bf7f87c009b973c12db6546902fa9c7b5" @@ -2142,9 +2257,9 @@ bytes@3.1.0: integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== cacache@^12.0.2: - version "12.0.2" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.2.tgz#8db03205e36089a3df6954c66ce92541441ac46c" - integrity sha512-ifKgxH2CKhJEg6tNdAwziu6Q33EvuG26tYcda6PT3WKisZcYDXsnEdnRv67Po3yCzFfaSoMjGZzJyD2c3DT1dg== + version "12.0.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" + integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== dependencies: bluebird "^3.5.5" chownr "^1.1.1" @@ -2239,7 +2354,7 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30000984: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30000984, caniuse-lite@^1.0.30000989: version "1.0.30000989" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz#b9193e293ccf7e4426c5245134b8f2a56c0ac4b9" integrity sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw== @@ -2287,9 +2402,9 @@ chardet@^0.7.0: integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== chokidar@^2.0.0, chokidar@^2.0.2, chokidar@^2.0.4: - version "2.1.6" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5" - integrity sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g== + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== dependencies: anymatch "^2.0.0" async-each "^1.0.1" @@ -2354,13 +2469,6 @@ cli-cursor@^2.1.0: dependencies: restore-cursor "^2.0.0" -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - cli-width@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" @@ -2375,6 +2483,15 @@ cliui@^4.0.0: strip-ansi "^4.0.0" wrap-ansi "^2.0.0" +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + clone-deep@^0.2.4: version "0.2.4" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.2.4.tgz#4e73dd09e9fb971cc38670c5dced9c1896481cc6" @@ -2924,12 +3041,12 @@ cssstyle@^1.0.0, cssstyle@^1.1.1: dependencies: cssom "0.3.x" -cyclist@~0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" - integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA= +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= -d@1: +d@1, d@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== @@ -2970,7 +3087,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8, debug@^2.6. dependencies: ms "2.0.0" -debug@^3.2.5, debug@^3.2.6: +debug@^3.0.0, debug@^3.2.5, debug@^3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== @@ -3002,9 +3119,16 @@ decode-uri-component@^0.2.0: integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= deep-equal@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" - integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= + version "1.1.0" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.0.tgz#3103cdf8ab6d32cf4a8df7865458f2b8d33f3745" + integrity sha512-ZbfWJq/wN1Z273o7mUSjILYqehAktR2NVoSrOukDkU9kg2v/Uv89yU4Cvz8seJeAmtN5oqiefKq8FPuXOboqLw== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" deep-extend@^0.6.0: version "0.6.0" @@ -3116,10 +3240,10 @@ detect-port-alt@1.1.6: address "^1.0.1" debug "^2.6.0" -diff-sequences@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.3.0.tgz#0f20e8a1df1abddaf4d9c226680952e64118b975" - integrity sha512-xLqpez+Zj9GKSnPWS0WZw1igGocZ+uua8+y+5dDNTT934N3QuY1sp2LkHzwiaYQGz60hMq0pjAshdeXm5VUOEw== +diff-sequences@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" + integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== diffie-hellman@^5.0.0: version "5.0.3" @@ -3247,10 +3371,10 @@ dot-prop@^4.1.1: dependencies: is-obj "^1.0.0" -dotenv-expand@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-4.2.0.tgz#def1f1ca5d6059d24a766e587942c21106ce1275" - integrity sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU= +dotenv-expand@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" + integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== dotenv@6.2.0: version "6.2.0" @@ -3285,15 +3409,15 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.191: - version "1.3.225" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.225.tgz#c6786475b5eb5f491ade01a78b82ba2c5bfdf72b" - integrity sha512-7W/L3jw7HYE+tUPbcVOGBmnSrlUmyZ/Uyg24QS7Vx0a9KodtNrN0r0Q/LyGHrcYMtw2rv7E49F/vTXwlV/fuaA== +electron-to-chromium@^1.3.191, electron-to-chromium@^1.3.247: + version "1.3.262" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.262.tgz#8022933e46e5a2c7b0fd1565d215872326520a7c" + integrity sha512-YFr53qZWr2pWkiTUorWEhAweujdf0ALiUp8VkNa0WGtbMVR+kZ8jNy3VTCemLsA4sT6+srCqehNn8TEAD0Ngrw== elliptic@^6.0.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.0.tgz#2b8ed4c891b7de3200e14412a5b8248c7af505ca" - integrity sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg== + version "6.5.1" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.1.tgz#c380f5f909bf1b9b4428d028cd18d3b0efd6b52b" + integrity sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg== dependencies: bn.js "^4.4.0" brorand "^1.0.1" @@ -3308,11 +3432,6 @@ emoji-regex@^7.0.1, emoji-regex@^7.0.2: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" @@ -3364,16 +3483,20 @@ error-ex@^1.2.0, error-ex@^1.3.1: is-arrayish "^0.2.1" es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.5.1, es-abstract@^1.7.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" - integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== + version "1.14.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.14.2.tgz#7ce108fad83068c8783c3cdf62e504e084d8c497" + integrity sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg== dependencies: es-to-primitive "^1.2.0" function-bind "^1.1.1" has "^1.0.3" + has-symbols "^1.0.0" is-callable "^1.1.4" is-regex "^1.0.4" - object-keys "^1.0.12" + object-inspect "^1.6.0" + object-keys "^1.1.1" + string.prototype.trimleft "^2.0.0" + string.prototype.trimright "^2.0.0" es-to-primitive@^1.2.0: version "1.2.0" @@ -3384,10 +3507,10 @@ es-to-primitive@^1.2.0: is-date-object "^1.0.1" is-symbol "^1.0.2" -es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@~0.10.14: - version "0.10.50" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.50.tgz#6d0e23a0abdb27018e5ac4fd09b412bc5517a778" - integrity sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw== +es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@^0.10.51: + version "0.10.51" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.51.tgz#ed2d7d9d48a12df86e0299287e93a09ff478842f" + integrity sha512-oRpWzM2WcLHVKpnrcyB7OW8j/s67Ba04JCm0WnNv3RiABSvs7mrQlutB8DBv793gKcp0XENR8Il8WxGTlZ73gQ== dependencies: es6-iterator "~2.0.3" es6-symbol "~3.1.1" @@ -3403,12 +3526,12 @@ es6-iterator@2.0.3, es6-iterator@~2.0.3: es6-symbol "^3.1.1" es6-symbol@^3.1.1, es6-symbol@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" - integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc= + version "3.1.2" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.2.tgz#859fdd34f32e905ff06d752e7171ddd4444a7ed1" + integrity sha512-/ZypxQsArlv+KHpGvng52/Iz8by3EQPxhmbuz8yFG89N/caTFBSbcXONDw0aMjy827gQg26XAjP4uXFvnfINmQ== dependencies: - d "1" - es5-ext "~0.10.14" + d "^1.0.1" + es5-ext "^0.10.51" escape-html@~1.0.3: version "1.0.3" @@ -3432,10 +3555,10 @@ escodegen@^1.11.0, escodegen@^1.9.1: optionalDependencies: source-map "~0.6.1" -eslint-config-react-app@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-5.0.0.tgz#b3639e96fccc24eaaa63c92fc2f4358f79f22fb2" - integrity sha512-d3hbvu14J1Iy7N+XvrMOMXmw32iIGGIHqg7DK0RqA6UxKOix+Z53fuQ/uf2NqasSse3uHUNB1EvuZ8Iw2bzd3g== +eslint-config-react-app@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-5.0.1.tgz#5f3d666ba3ee3cb384eb943e260e868f6c72251b" + integrity sha512-GYXP3F/0PSHlYfGHhahqnJze8rYKxzXgrzXVqRRd4rDO40ga4NA3aHM7/HKbwceDN0/C1Ij3BoAWFawJgRbXEw== dependencies: confusing-browser-globals "^1.0.8" @@ -3447,16 +3570,15 @@ eslint-import-resolver-node@^0.3.2: debug "^2.6.9" resolve "^1.5.0" -eslint-loader@2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.2.1.tgz#28b9c12da54057af0845e2a6112701a2f6bf8337" - integrity sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg== +eslint-loader@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-3.0.0.tgz#fb70bc2d552a674f43f07f5e6575083e565e790d" + integrity sha512-rdxyQ0i9VlhwVlR6oEzrIft8WNKYSD2/cOAJ1YVH/F76gAta7Zv1Dr5xJOUyx0fAsHB5cKNz9hwlUVLMFsQlPA== dependencies: - loader-fs-cache "^1.0.0" - loader-utils "^1.0.2" - object-assign "^4.0.1" - object-hash "^1.1.4" - rimraf "^2.6.1" + loader-fs-cache "^1.0.2" + loader-utils "^1.2.3" + object-hash "^1.3.1" + schema-utils "^2.1.0" eslint-module-utils@^2.4.0: version "2.4.1" @@ -3525,15 +3647,7 @@ eslint-plugin-react@7.14.3: prop-types "^15.7.2" resolve "^1.10.1" -eslint-scope@3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" - integrity sha1-PWPD7f2gLgbgGkUq2IyqzHzctug= - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-scope@^4.0.0, eslint-scope@^4.0.3: +eslint-scope@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== @@ -3549,22 +3663,22 @@ eslint-scope@^5.0.0: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-utils@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.0.tgz#e2c3c8dba768425f897cf0f9e51fe2e241485d4c" - integrity sha512-7ehnzPaP5IIEh1r1tkjuIrxqhNkzUJa9z3R92tLJdZIVdWaczEhr3EbhGtsMrVxi1KeR8qA7Off6SWc5WNQqyQ== +eslint-utils@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.2.tgz#166a5180ef6ab7eb462f162fd0e6f2463d7309ab" + integrity sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q== dependencies: eslint-visitor-keys "^1.0.0" -eslint-visitor-keys@^1.0.0: +eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== eslint@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.1.0.tgz#06438a4a278b1d84fb107d24eaaa35471986e646" - integrity sha512-QhrbdRD7ofuV09IuE2ySWBz0FyXCq0rriLTZXZqaWSI79CVtHVRdkFuFTViiqzZhkCgfOh9USpriuGN2gIpZDQ== + version "6.4.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.4.0.tgz#5aa9227c3fbe921982b2eda94ba0d7fae858611a" + integrity sha512-WTVEzK3lSFoXUovDHEbkJqCVPEPwbhCq4trDktNI6ygs7aO41d4cDT0JFAT5MivzZeVLWlg7vHL+bgrQv/t3vA== dependencies: "@babel/code-frame" "^7.0.0" ajv "^6.10.0" @@ -3573,9 +3687,9 @@ eslint@^6.1.0: debug "^4.0.1" doctrine "^3.0.0" eslint-scope "^5.0.0" - eslint-utils "^1.3.1" - eslint-visitor-keys "^1.0.0" - espree "^6.0.0" + eslint-utils "^1.4.2" + eslint-visitor-keys "^1.1.0" + espree "^6.1.1" esquery "^1.0.1" esutils "^2.0.2" file-entry-cache "^5.0.1" @@ -3604,14 +3718,14 @@ eslint@^6.1.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-6.0.0.tgz#716fc1f5a245ef5b9a7fdb1d7b0d3f02322e75f6" - integrity sha512-lJvCS6YbCn3ImT3yKkPe0+tJ+mH6ljhGNjHQH9mRtiO6gjhVAOhVXW1yjnwqGwTkK3bGbye+hb00nFNmu0l/1Q== +espree@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.1.1.tgz#7f80e5f7257fc47db450022d723e356daeb1e5de" + integrity sha512-EYbr8XZUhWbYCqQRW0duU5LxzL5bETN6AjKBGy1302qqzPaCH10QbRg3Wvco79Z8x9WbiE8HYB4e75xl6qUYvQ== dependencies: - acorn "^6.0.7" - acorn-jsx "^5.0.0" - eslint-visitor-keys "^1.0.0" + acorn "^7.0.0" + acorn-jsx "^5.0.2" + eslint-visitor-keys "^1.1.0" esprima@^3.1.3: version "3.1.3" @@ -3638,9 +3752,9 @@ esrecurse@^4.1.0: estraverse "^4.1.0" estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== esutils@^2.0.0, esutils@^2.0.2: version "2.0.3" @@ -3652,10 +3766,10 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= -eventemitter3@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" - integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== +eventemitter3@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" + integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg== events@^3.0.0: version "3.0.0" @@ -3713,17 +3827,17 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expect@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-24.8.0.tgz#471f8ec256b7b6129ca2524b2a62f030df38718d" - integrity sha512-/zYvP8iMDrzaaxHVa724eJBCKqSHmO0FA7EDkBiRHxg6OipmMn1fN+C8T9L9K8yr7UONkOifu6+LLH+z76CnaA== +expect@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" + integrity sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" ansi-styles "^3.2.0" - jest-get-type "^24.8.0" - jest-matcher-utils "^24.8.0" - jest-message-util "^24.8.0" - jest-regex-util "^24.3.0" + jest-get-type "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-regex-util "^24.9.0" express@^4.16.2: version "4.17.1" @@ -3874,13 +3988,6 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" -figures@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.0.0.tgz#756275c964646163cc6f9197c7a0295dbfd04de9" - integrity sha512-HKri+WoWoUgr83pehn/SIgLOMZ9nAWC6dcGj26RY2R4F50u4+RTUz0RCrUlOV3nKRAICW1UGzyb+kcX2qK1S/g== - dependencies: - escape-string-regexp "^1.0.5" - file-entry-cache@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" @@ -3992,11 +4099,11 @@ flush-write-stream@^1.0.0: readable-stream "^2.3.6" follow-redirects@^1.0.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.7.0.tgz#489ebc198dc0e7f64167bd23b03c4c19b5784c76" - integrity sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ== + version "1.9.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.9.0.tgz#8d5bcdc65b7108fe1508649c79c12d732dcedb4f" + integrity sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A== dependencies: - debug "^3.2.6" + debug "^3.0.0" for-in@^0.1.3: version "0.1.8" @@ -4087,11 +4194,11 @@ fs-extra@^4.0.2: universalify "^0.1.0" fs-minipass@^1.2.5: - version "1.2.6" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07" - integrity sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ== + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== dependencies: - minipass "^2.2.1" + minipass "^2.6.0" fs-write-stream-atomic@^1.0.8: version "1.0.10" @@ -4145,6 +4252,11 @@ get-caller-file@^1.0.1: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + get-own-enumerable-property-symbols@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203" @@ -4247,9 +4359,9 @@ globby@^6.1.0: pinkie-promise "^2.0.0" graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6: - version "4.2.1" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.1.tgz#1c1f0c364882c868f5bff6512146328336a11b1d" - integrity sha512-b9usnbDGnD928gJB3LrCmxoibr3VE4U2SMo5PBuBnokWyDADTqDPXg4YpwKF1trpH+UbGp7QLicO3+aWEy0+mw== + version "4.2.2" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" + integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== growly@^1.3.0: version "1.3.0" @@ -4270,9 +4382,9 @@ handle-thing@^2.0.0: integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== handlebars@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" - integrity sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw== + version "4.2.0" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.2.0.tgz#57ce8d2175b9bbb3d8b3cf3e4217b1aec8ddcb2e" + integrity sha512-Kb4xn5Qh1cxAKvQnzNWZ512DhABzyFNmsaJf3OAkWNa4NkaqWcNI8Tao8Tasi0/F4JD9oyG0YxuFyvyR57d+Gw== dependencies: neo-async "^2.6.0" optimist "^0.6.1" @@ -4525,11 +4637,11 @@ http-proxy-middleware@^0.19.1: micromatch "^3.1.10" http-proxy@^1.17.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" - integrity sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g== + version "1.18.0" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a" + integrity sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ== dependencies: - eventemitter3 "^3.0.0" + eventemitter3 "^4.0.0" follow-redirects "^1.0.0" requires-port "^1.0.0" @@ -4584,9 +4696,9 @@ iferr@^0.1.5: integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= ignore-walk@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" - integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== + version "3.0.2" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.2.tgz#99d83a246c196ea5c93ef9315ad7b0819c35069b" + integrity sha512-EXyErtpHbn75ZTsOADsfx6J/FPo6/5cjev46PXrcTpd8z3BoRkXgYu9/JVqrI7tusjmwCZutGeRJeU0Wo1e4Cw== dependencies: minimatch "^3.0.4" @@ -4706,21 +4818,21 @@ inquirer@6.5.0: through "^2.3.6" inquirer@^6.4.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.1.tgz#8bfb7a5ac02dac6ff641ac4c5ff17da112fcdb42" - integrity sha512-uxNHBeQhRXIoHWTSNYUFhQVrHYFThIt6IVo2fFmSe8aBwdR3/w6b58hJpiL/fMukFkvGzjg+hSxFtwvVmKZmXw== + version "6.5.2" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" + integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== dependencies: - ansi-escapes "^4.2.1" + ansi-escapes "^3.2.0" chalk "^2.4.2" - cli-cursor "^3.1.0" + cli-cursor "^2.1.0" cli-width "^2.0.0" external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.15" - mute-stream "0.0.8" + figures "^2.0.0" + lodash "^4.17.12" + mute-stream "0.0.7" run-async "^2.2.0" rxjs "^6.4.0" - string-width "^4.1.0" + string-width "^2.1.0" strip-ansi "^5.1.0" through "^2.3.6" @@ -4783,6 +4895,11 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" +is-arguments@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -4900,11 +5017,6 @@ 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-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - is-generator-fn@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" @@ -4955,6 +5067,11 @@ is-path-inside@^1.0.0: dependencies: path-is-inside "^1.0.1" +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -5088,91 +5205,91 @@ istanbul-lib-source-maps@^3.0.1: rimraf "^2.6.3" source-map "^0.6.1" -istanbul-reports@^2.1.1: +istanbul-reports@^2.2.6: version "2.2.6" resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz#7b4f2660d82b29303a8fe6091f8ca4bf058da1af" integrity sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA== dependencies: handlebars "^4.1.2" -jest-changed-files@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.8.0.tgz#7e7eb21cf687587a85e50f3d249d1327e15b157b" - integrity sha512-qgANC1Yrivsq+UrLXsvJefBKVoCsKB0Hv+mBb6NMjjZ90wwxCDmU3hsCXBya30cH+LnPYjwgcU65i6yJ5Nfuug== +jest-changed-files@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039" + integrity sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" execa "^1.0.0" throat "^4.0.0" -jest-cli@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.8.0.tgz#b075ac914492ed114fa338ade7362a301693e989" - integrity sha512-+p6J00jSMPQ116ZLlHJJvdf8wbjNbZdeSX9ptfHX06/MSNaXmKihQzx5vQcw0q2G6JsdVkUIdWbOWtSnaYs3yA== +jest-cli@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af" + integrity sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg== dependencies: - "@jest/core" "^24.8.0" - "@jest/test-result" "^24.8.0" - "@jest/types" "^24.8.0" + "@jest/core" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" chalk "^2.0.1" exit "^0.1.2" import-local "^2.0.0" is-ci "^2.0.0" - jest-config "^24.8.0" - jest-util "^24.8.0" - jest-validate "^24.8.0" + jest-config "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" prompts "^2.0.1" realpath-native "^1.1.0" - yargs "^12.0.2" + yargs "^13.3.0" -jest-config@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.8.0.tgz#77db3d265a6f726294687cbbccc36f8a76ee0f4f" - integrity sha512-Czl3Nn2uEzVGsOeaewGWoDPD8GStxCpAe0zOYs2x2l0fZAgPbCr3uwUkgNKV3LwE13VXythM946cd5rdGkkBZw== +jest-config@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5" + integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^24.8.0" - "@jest/types" "^24.8.0" - babel-jest "^24.8.0" + "@jest/test-sequencer" "^24.9.0" + "@jest/types" "^24.9.0" + babel-jest "^24.9.0" chalk "^2.0.1" glob "^7.1.1" - jest-environment-jsdom "^24.8.0" - jest-environment-node "^24.8.0" - jest-get-type "^24.8.0" - jest-jasmine2 "^24.8.0" + jest-environment-jsdom "^24.9.0" + jest-environment-node "^24.9.0" + jest-get-type "^24.9.0" + jest-jasmine2 "^24.9.0" jest-regex-util "^24.3.0" - jest-resolve "^24.8.0" - jest-util "^24.8.0" - jest-validate "^24.8.0" + jest-resolve "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" micromatch "^3.1.10" - pretty-format "^24.8.0" + pretty-format "^24.9.0" realpath-native "^1.1.0" -jest-diff@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.8.0.tgz#146435e7d1e3ffdf293d53ff97e193f1d1546172" - integrity sha512-wxetCEl49zUpJ/bvUmIFjd/o52J+yWcoc5ZyPq4/W1LUKGEhRYDIbP1KcF6t+PvqNrGAFk4/JhtxDq/Nnzs66g== +jest-diff@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" + integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== dependencies: chalk "^2.0.1" - diff-sequences "^24.3.0" - jest-get-type "^24.8.0" - pretty-format "^24.8.0" + diff-sequences "^24.9.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" jest-docblock@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.3.0.tgz#b9c32dac70f72e4464520d2ba4aec02ab14db5dd" - integrity sha512-nlANmF9Yq1dufhFlKG9rasfQlrY7wINJbo3q01tu56Jv5eBU5jirylhF2O5ZBnLxzOVBGRDz/9NAwNyBtG4Nyg== + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2" + integrity sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA== dependencies: detect-newline "^2.1.0" -jest-each@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.8.0.tgz#a05fd2bf94ddc0b1da66c6d13ec2457f35e52775" - integrity sha512-NrwK9gaL5+XgrgoCsd9svsoWdVkK4gnvyhcpzd6m487tXHqIdYeykgq3MKI1u4I+5Zf0tofr70at9dWJDeb+BA== +jest-each@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05" + integrity sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" chalk "^2.0.1" - jest-get-type "^24.8.0" - jest-util "^24.8.0" - pretty-format "^24.8.0" + jest-get-type "^24.9.0" + jest-util "^24.9.0" + pretty-format "^24.9.0" jest-environment-jsdom-fourteen@0.1.0: version "0.1.0" @@ -5183,230 +5300,232 @@ jest-environment-jsdom-fourteen@0.1.0: jest-util "^24.5.0" jsdom "^14.0.0" -jest-environment-jsdom@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.8.0.tgz#300f6949a146cabe1c9357ad9e9ecf9f43f38857" - integrity sha512-qbvgLmR7PpwjoFjM/sbuqHJt/NCkviuq9vus9NBn/76hhSidO+Z6Bn9tU8friecegbJL8gzZQEMZBQlFWDCwAQ== +jest-environment-jsdom@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b" + integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA== dependencies: - "@jest/environment" "^24.8.0" - "@jest/fake-timers" "^24.8.0" - "@jest/types" "^24.8.0" - jest-mock "^24.8.0" - jest-util "^24.8.0" + "@jest/environment" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + jest-util "^24.9.0" jsdom "^11.5.1" -jest-environment-node@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.8.0.tgz#d3f726ba8bc53087a60e7a84ca08883a4c892231" - integrity sha512-vIGUEScd1cdDgR6sqn2M08sJTRLQp6Dk/eIkCeO4PFHxZMOgy+uYLPMC4ix3PEfM5Au/x3uQ/5Tl0DpXXZsJ/Q== +jest-environment-node@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3" + integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA== dependencies: - "@jest/environment" "^24.8.0" - "@jest/fake-timers" "^24.8.0" - "@jest/types" "^24.8.0" - jest-mock "^24.8.0" - jest-util "^24.8.0" + "@jest/environment" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + jest-util "^24.9.0" -jest-get-type@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.8.0.tgz#a7440de30b651f5a70ea3ed7ff073a32dfe646fc" - integrity sha512-RR4fo8jEmMD9zSz2nLbs2j0zvPpk/KCEz3a62jJWbd2ayNo0cb+KFRxPHVhE4ZmgGJEQp0fosmNz84IfqM8cMQ== +jest-get-type@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" + integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== -jest-haste-map@^24.8.0: - version "24.8.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.8.1.tgz#f39cc1d2b1d907e014165b4bd5a957afcb992982" - integrity sha512-SwaxMGVdAZk3ernAx2Uv2sorA7jm3Kx+lR0grp6rMmnY06Kn/urtKx1LPN2mGTea4fCT38impYT28FfcLUhX0g== +jest-haste-map@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" + integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" anymatch "^2.0.0" fb-watchman "^2.0.0" graceful-fs "^4.1.15" invariant "^2.2.4" - jest-serializer "^24.4.0" - jest-util "^24.8.0" - jest-worker "^24.6.0" + jest-serializer "^24.9.0" + jest-util "^24.9.0" + jest-worker "^24.9.0" micromatch "^3.1.10" sane "^4.0.3" walker "^1.0.7" optionalDependencies: fsevents "^1.2.7" -jest-jasmine2@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.8.0.tgz#a9c7e14c83dd77d8b15e820549ce8987cc8cd898" - integrity sha512-cEky88npEE5LKd5jPpTdDCLvKkdyklnaRycBXL6GNmpxe41F0WN44+i7lpQKa/hcbXaQ+rc9RMaM4dsebrYong== +jest-jasmine2@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0" + integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^24.8.0" - "@jest/test-result" "^24.8.0" - "@jest/types" "^24.8.0" + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" chalk "^2.0.1" co "^4.6.0" - expect "^24.8.0" + expect "^24.9.0" is-generator-fn "^2.0.0" - jest-each "^24.8.0" - jest-matcher-utils "^24.8.0" - jest-message-util "^24.8.0" - jest-runtime "^24.8.0" - jest-snapshot "^24.8.0" - jest-util "^24.8.0" - pretty-format "^24.8.0" + jest-each "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-runtime "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + pretty-format "^24.9.0" throat "^4.0.0" -jest-leak-detector@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.8.0.tgz#c0086384e1f650c2d8348095df769f29b48e6980" - integrity sha512-cG0yRSK8A831LN8lIHxI3AblB40uhv0z+SsQdW3GoMMVcK+sJwrIIyax5tu3eHHNJ8Fu6IMDpnLda2jhn2pD/g== +jest-leak-detector@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a" + integrity sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA== dependencies: - pretty-format "^24.8.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" -jest-matcher-utils@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.8.0.tgz#2bce42204c9af12bde46f83dc839efe8be832495" - integrity sha512-lex1yASY51FvUuHgm0GOVj7DCYEouWSlIYmCW7APSqB9v8mXmKSn5+sWVF0MhuASG0bnYY106/49JU1FZNl5hw== +jest-matcher-utils@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073" + integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA== dependencies: chalk "^2.0.1" - jest-diff "^24.8.0" - jest-get-type "^24.8.0" - pretty-format "^24.8.0" + jest-diff "^24.9.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" -jest-message-util@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.8.0.tgz#0d6891e72a4beacc0292b638685df42e28d6218b" - integrity sha512-p2k71rf/b6ns8btdB0uVdljWo9h0ovpnEe05ZKWceQGfXYr4KkzgKo3PBi8wdnd9OtNh46VpNIJynUn/3MKm1g== +jest-message-util@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" + integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw== dependencies: "@babel/code-frame" "^7.0.0" - "@jest/test-result" "^24.8.0" - "@jest/types" "^24.8.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" "@types/stack-utils" "^1.0.1" chalk "^2.0.1" micromatch "^3.1.10" slash "^2.0.0" stack-utils "^1.0.1" -jest-mock@^24.5.0, jest-mock@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.8.0.tgz#2f9d14d37699e863f1febf4e4d5a33b7fdbbde56" - integrity sha512-6kWugwjGjJw+ZkK4mDa0Df3sDlUTsV47MSrT0nGQ0RBWJbpODDQ8MHDVtGtUYBne3IwZUhtB7elxHspU79WH3A== +jest-mock@^24.5.0, jest-mock@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" + integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" jest-pnp-resolver@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ== -jest-regex-util@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.3.0.tgz#d5a65f60be1ae3e310d5214a0307581995227b36" - integrity sha512-tXQR1NEOyGlfylyEjg1ImtScwMq8Oh3iJbGTjN7p0J23EuVX1MA8rwU69K4sLbCmwzgCUbVkm0FkSF9TdzOhtg== +jest-regex-util@^24.3.0, jest-regex-util@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636" + integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA== -jest-resolve-dependencies@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.8.0.tgz#19eec3241f2045d3f990dba331d0d7526acff8e0" - integrity sha512-hyK1qfIf/krV+fSNyhyJeq3elVMhK9Eijlwy+j5jqmZ9QsxwKBiP6qukQxaHtK8k6zql/KYWwCTQ+fDGTIJauw== +jest-resolve-dependencies@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz#ad055198959c4cfba8a4f066c673a3f0786507ab" + integrity sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" jest-regex-util "^24.3.0" - jest-snapshot "^24.8.0" + jest-snapshot "^24.9.0" -jest-resolve@24.8.0, jest-resolve@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.8.0.tgz#84b8e5408c1f6a11539793e2b5feb1b6e722439f" - integrity sha512-+hjSzi1PoRvnuOICoYd5V/KpIQmkAsfjFO71458hQ2Whi/yf1GDeBOFj8Gxw4LrApHsVJvn5fmjcPdmoUHaVKw== +jest-resolve@24.9.0, jest-resolve@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321" + integrity sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" browser-resolve "^1.11.3" chalk "^2.0.1" jest-pnp-resolver "^1.2.1" realpath-native "^1.1.0" -jest-runner@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.8.0.tgz#4f9ae07b767db27b740d7deffad0cf67ccb4c5bb" - integrity sha512-utFqC5BaA3JmznbissSs95X1ZF+d+4WuOWwpM9+Ak356YtMhHE/GXUondZdcyAAOTBEsRGAgH/0TwLzfI9h7ow== +jest-runner@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42" + integrity sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg== dependencies: "@jest/console" "^24.7.1" - "@jest/environment" "^24.8.0" - "@jest/test-result" "^24.8.0" - "@jest/types" "^24.8.0" + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" chalk "^2.4.2" exit "^0.1.2" graceful-fs "^4.1.15" - jest-config "^24.8.0" + jest-config "^24.9.0" jest-docblock "^24.3.0" - jest-haste-map "^24.8.0" - jest-jasmine2 "^24.8.0" - jest-leak-detector "^24.8.0" - jest-message-util "^24.8.0" - jest-resolve "^24.8.0" - jest-runtime "^24.8.0" - jest-util "^24.8.0" + jest-haste-map "^24.9.0" + jest-jasmine2 "^24.9.0" + jest-leak-detector "^24.9.0" + jest-message-util "^24.9.0" + jest-resolve "^24.9.0" + jest-runtime "^24.9.0" + jest-util "^24.9.0" jest-worker "^24.6.0" source-map-support "^0.5.6" throat "^4.0.0" -jest-runtime@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.8.0.tgz#05f94d5b05c21f6dc54e427cd2e4980923350620" - integrity sha512-Mq0aIXhvO/3bX44ccT+czU1/57IgOMyy80oM0XR/nyD5zgBcesF84BPabZi39pJVA6UXw+fY2Q1N+4BiVUBWOA== +jest-runtime@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac" + integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw== dependencies: "@jest/console" "^24.7.1" - "@jest/environment" "^24.8.0" + "@jest/environment" "^24.9.0" "@jest/source-map" "^24.3.0" - "@jest/transform" "^24.8.0" - "@jest/types" "^24.8.0" - "@types/yargs" "^12.0.2" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/yargs" "^13.0.0" chalk "^2.0.1" exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.1.15" - jest-config "^24.8.0" - jest-haste-map "^24.8.0" - jest-message-util "^24.8.0" - jest-mock "^24.8.0" + jest-config "^24.9.0" + jest-haste-map "^24.9.0" + jest-message-util "^24.9.0" + jest-mock "^24.9.0" jest-regex-util "^24.3.0" - jest-resolve "^24.8.0" - jest-snapshot "^24.8.0" - jest-util "^24.8.0" - jest-validate "^24.8.0" + jest-resolve "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" realpath-native "^1.1.0" slash "^2.0.0" strip-bom "^3.0.0" - yargs "^12.0.2" + yargs "^13.3.0" -jest-serializer@^24.4.0: - version "24.4.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.4.0.tgz#f70c5918c8ea9235ccb1276d232e459080588db3" - integrity sha512-k//0DtglVstc1fv+GY/VHDIjrtNjdYvYjMlbLUed4kxrE92sIUewOi5Hj3vrpB8CXfkJntRPDRjCrCvUhBdL8Q== +jest-serializer@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" + integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== -jest-snapshot@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.8.0.tgz#3bec6a59da2ff7bc7d097a853fb67f9d415cb7c6" - integrity sha512-5ehtWoc8oU9/cAPe6fez6QofVJLBKyqkY2+TlKTOf0VllBB/mqUNdARdcjlZrs9F1Cv+/HKoCS/BknT0+tmfPg== +jest-snapshot@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba" + integrity sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew== dependencies: "@babel/types" "^7.0.0" - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" chalk "^2.0.1" - expect "^24.8.0" - jest-diff "^24.8.0" - jest-matcher-utils "^24.8.0" - jest-message-util "^24.8.0" - jest-resolve "^24.8.0" + expect "^24.9.0" + jest-diff "^24.9.0" + jest-get-type "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-resolve "^24.9.0" mkdirp "^0.5.1" natural-compare "^1.4.0" - pretty-format "^24.8.0" - semver "^5.5.0" - -jest-util@^24.5.0, jest-util@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.8.0.tgz#41f0e945da11df44cc76d64ffb915d0716f46cd1" - integrity sha512-DYZeE+XyAnbNt0BG1OQqKy/4GVLPtzwGx5tsnDrFcax36rVE3lTA5fbvgmbVPUZf9w77AJ8otqR4VBbfFJkUZA== - dependencies: - "@jest/console" "^24.7.1" - "@jest/fake-timers" "^24.8.0" - "@jest/source-map" "^24.3.0" - "@jest/test-result" "^24.8.0" - "@jest/types" "^24.8.0" + pretty-format "^24.9.0" + semver "^6.2.0" + +jest-util@^24.5.0, jest-util@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162" + integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg== + dependencies: + "@jest/console" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/source-map" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" callsites "^3.0.0" chalk "^2.0.1" graceful-fs "^4.1.15" @@ -5415,58 +5534,58 @@ jest-util@^24.5.0, jest-util@^24.8.0: slash "^2.0.0" source-map "^0.6.0" -jest-validate@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.8.0.tgz#624c41533e6dfe356ffadc6e2423a35c2d3b4849" - integrity sha512-+/N7VOEMW1Vzsrk3UWBDYTExTPwf68tavEPKDnJzrC6UlHtUDU/fuEdXqFoHzv9XnQ+zW6X3qMZhJ3YexfeLDA== +jest-validate@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" + integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ== dependencies: - "@jest/types" "^24.8.0" - camelcase "^5.0.0" + "@jest/types" "^24.9.0" + camelcase "^5.3.1" chalk "^2.0.1" - jest-get-type "^24.8.0" - leven "^2.1.0" - pretty-format "^24.8.0" + jest-get-type "^24.9.0" + leven "^3.1.0" + pretty-format "^24.9.0" -jest-watch-typeahead@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-0.3.1.tgz#47701024b64b444aa325d801b4b3a6d61ed70701" - integrity sha512-cDIko96c4Yqg/7mfye1eEYZ6Pvugo9mnOOhGQod3Es7/KptNv1b+9gFVaotzdqNqTlwbkA80BnWHtzV4dc+trA== +jest-watch-typeahead@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-0.4.0.tgz#4d5356839a85421588ce452d2440bf0d25308397" + integrity sha512-bJR/HPNgOQnkmttg1OkBIrYFAYuxFxExtgQh67N2qPvaWGVC8TCkedRNPKBfmZfVXFD3u2sCH+9OuS5ApBfCgA== dependencies: - ansi-escapes "^3.0.0" + ansi-escapes "^4.2.1" chalk "^2.4.1" jest-watcher "^24.3.0" - slash "^2.0.0" - string-length "^2.0.0" + slash "^3.0.0" + string-length "^3.1.0" strip-ansi "^5.0.0" -jest-watcher@^24.3.0, jest-watcher@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.8.0.tgz#58d49915ceddd2de85e238f6213cef1c93715de4" - integrity sha512-SBjwHt5NedQoVu54M5GEx7cl7IGEFFznvd/HNT8ier7cCAx/Qgu9ZMlaTQkvK22G1YOpcWBLQPFSImmxdn3DAw== +jest-watcher@^24.3.0, jest-watcher@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b" + integrity sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw== dependencies: - "@jest/test-result" "^24.8.0" - "@jest/types" "^24.8.0" - "@types/yargs" "^12.0.9" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/yargs" "^13.0.0" ansi-escapes "^3.0.0" chalk "^2.0.1" - jest-util "^24.8.0" + jest-util "^24.9.0" string-length "^2.0.0" -jest-worker@^24.6.0: - version "24.6.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.6.0.tgz#7f81ceae34b7cde0c9827a6980c35b7cdc0161b3" - integrity sha512-jDwgW5W9qGNvpI1tNnvajh0a5IE/PuGLFmHk6aR/BZFz8tSgGw17GsDPXAJ6p91IvYDjOw8GpFbvvZGAK+DPQQ== +jest-worker@^24.6.0, jest-worker@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" + integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== dependencies: - merge-stream "^1.0.1" + merge-stream "^2.0.0" supports-color "^6.1.0" -jest@24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-24.8.0.tgz#d5dff1984d0d1002196e9b7f12f75af1b2809081" - integrity sha512-o0HM90RKFRNWmAWvlyV8i5jGZ97pFwkeVoGvPW1EtLTgJc2+jcuqcbbqcSZLE/3f2S5pt0y2ZBETuhpWNl1Reg== +jest@24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171" + integrity sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw== dependencies: import-local "^2.0.0" - jest-cli "^24.8.0" + jest-cli "^24.9.0" js-levenshtein@^1.1.3: version "1.1.6" @@ -5722,10 +5841,10 @@ left-pad@^1.3.0: resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== -leven@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" - integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== levn@^0.3.0, levn@~0.3.0: version "0.3.0" @@ -5755,7 +5874,7 @@ load-json-file@^4.0.0: pify "^3.0.0" strip-bom "^3.0.0" -loader-fs-cache@^1.0.0: +loader-fs-cache@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.2.tgz#54cedf6b727e1779fd8f01205f05f6e88706f086" integrity sha512-70IzT/0/L+M20jUlEqZhZyArTU6VKLRTYRDAYN26g4jfzpJqjipLL3/hgYpySqI9PwsVRHHFja0LfEmsx9X2Cw== @@ -5839,9 +5958,9 @@ lodash.uniq@^4.5.0: integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== loglevel@^1.4.1: - version "1.6.3" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.3.tgz#77f2eb64be55a404c9fd04ad16d57c1d6d6b1280" - integrity sha512-LoEDv5pgpvWgPF4kNYuIp0qqSJVWak/dML0RY74xlzMZiT9w77teNAwKYKWBTYjlokMirg+o3jBwp+vlLrcfAA== + version "1.6.4" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.4.tgz#f408f4f006db8354d0577dcf6d33485b3cb90d56" + integrity sha512-p0b6mOGKcGa+7nnmKbpzR6qloPbrgLcnio++E+14Vo/XffOGwZtRpUhr8dTH/x2oCMmEoIU0Zwm3ZauhvYD17g== loose-envify@^1.0.0, loose-envify@^1.4.0: version "1.4.0" @@ -5956,17 +6075,15 @@ merge-descriptors@1.0.1: resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= -merge-stream@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" - integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE= - dependencies: - readable-stream "^2.0.1" +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== merge2@^1.2.3: - version "1.2.4" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.4.tgz#c9269589e6885a60cf80605d9522d4b67ca646e3" - integrity sha512-FYE8xI+6pjFOhokZu0We3S5NKCirLbCzSh2Usf3qEyr4X8U+0jNg9P8RZ4qz+V2UoECLVwSyzU3LxXBaLGtD3A== + version "1.3.0" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" + integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== methods@~1.1.2: version "1.1.2" @@ -6005,11 +6122,16 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.40.0, "mime-db@>= 1.40.0 < 2": +mime-db@1.40.0: version "1.40.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== +"mime-db@>= 1.40.0 < 2": + version "1.41.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.41.0.tgz#9110408e1f6aa1b34aef51f2c9df3caddf46b6a0" + integrity sha512-B5gxBI+2K431XW8C2rcc/lhppbuji67nf9v39eH8pkWoZDxnAL0PxdpH32KYRScniF8qDHBDlI+ipgg5WrCUYw== + mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.24" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" @@ -6022,7 +6144,7 @@ mime@1.6.0: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.4.2, mime@^2.4.4: +mime@^2.4.4: version "2.4.4" resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== @@ -6032,17 +6154,18 @@ mimic-fn@^1.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== -mimic-fn@^2.0.0, mimic-fn@^2.1.0: +mimic-fn@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mini-css-extract-plugin@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz#ac0059b02b9692515a637115b0cc9fed3a35c7b0" - integrity sha512-IuaLjruM0vMKhUUT51fQdQzBYTX49dLj8w68ALEAe2A4iYNpIC4eMac67mt3NzycvjOlf07/kYxJDc0RTl1Wqw== +mini-css-extract-plugin@0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.0.tgz#81d41ec4fe58c713a96ad7c723cdb2d0bd4d70e1" + integrity sha512-MNpRGbNA52q6U92i0qbVpQNsgk7LExy41MdAlG84FeytfDOtRIf/mCHdEgG8rpTKOaNKiqUnZdlptF469hxqOw== dependencies: loader-utils "^1.1.0" + normalize-url "1.9.1" schema-utils "^1.0.0" webpack-sources "^1.1.0" @@ -6078,18 +6201,18 @@ minimist@~0.0.1: resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= -minipass@^2.2.1, minipass@^2.3.5: - version "2.3.5" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" - integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA== +minipass@^2.2.1, minipass@^2.6.0, minipass@^2.6.4: + version "2.6.5" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.6.5.tgz#1c245f9f2897f70fd4a219066261ce6c29f80b18" + integrity sha512-ewSKOPFH9blOLXx0YSE+mbrNMBFPS+11a2b03QZ+P4LVrUHW/GAlqeYC7DBknDyMWkHzrzTpDhUvy7MUxqyrPA== dependencies: safe-buffer "^5.1.2" yallist "^3.0.0" minizlib@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" - integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== + version "1.2.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.2.tgz#6f0ccc82fa53e1bf2ff145f220d2da9fa6e3a166" + integrity sha512-hR3At21uSrsjjDTWrbu0IMLTpnkpv8IIMFDFaoz43Tmu4LkmAXfH44vNNzpTnf+OAQQCHrb91y/wc2J4x5XgSQ== dependencies: minipass "^2.2.1" @@ -6177,11 +6300,6 @@ mute-stream@0.0.7: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= -mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - nan@^2.12.1: version "2.14.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" @@ -6245,10 +6363,10 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" -node-forge@0.7.5: - version "0.7.5" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df" - integrity sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ== +node-forge@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.8.2.tgz#b4bcc59fb12ce77a8825fc6a783dfe3182499c5a" + integrity sha512-mXQ9GBq1N3uDCyV1pdSzgIguwgtVpM7f5/5J4ipz12PKWElmPpVWLDuWl8iXmhysr21+WmX/OJ5UKx82wjomgg== node-int64@^0.4.0: version "0.4.0" @@ -6289,10 +6407,10 @@ node-modules-regexp@^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.4.1" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.1.tgz#7c0192cc63aedb25cd99619174daa27902b10903" - integrity sha512-p52B+onAEHKW1OF9MGO/S7k/ahGEHfhP5/tvwYzog/5XLYOd8ZuD6vdNZdUuWMONRnKPneXV43v3s6Snx1wsCQ== +node-notifier@^5.4.2: + version "5.4.3" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50" + integrity sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q== dependencies: growly "^1.3.0" is-wsl "^1.1.0" @@ -6316,10 +6434,10 @@ node-pre-gyp@^0.12.0: semver "^5.3.0" tar "^4" -node-releases@^1.1.25: - version "1.1.27" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.27.tgz#b19ec8add2afe9a826a99dceccc516104c1edaf4" - integrity sha512-9iXUqHKSGo6ph/tdXVbHFbhRVQln4ZDTIBJCzsa90HimnBYc5jw8RWYt4wBYFHehGyC3koIz5O4mb2fHrbPOuA== +node-releases@^1.1.25, node-releases@^1.1.29: + version "1.1.32" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.32.tgz#485b35c1bf9b4d8baa105d782f8ca731e518276e" + integrity sha512-VhVknkitq8dqtWoluagsGPn3dxTvN9fwgR59fV3D7sLBHe0JfDramsMI8n8mY//ccq/Kkrf8ZRHRpsyVZ3qw1A== dependencies: semver "^5.3.0" @@ -6358,6 +6476,16 @@ normalize-range@^0.1.2: resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= +normalize-url@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + normalize-url@^3.0.0: version "3.3.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" @@ -6434,12 +6562,22 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-hash@^1.1.4: +object-hash@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== -object-keys@^1.0.11, object-keys@^1.0.12: +object-inspect@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" + integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== + +object-is@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" + integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY= + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -6542,13 +6680,6 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" -onetime@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" - integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== - dependencies: - mimic-fn "^2.1.0" - open@^6.3.0: version "6.4.0" resolved "https://registry.yarnpkg.com/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" @@ -6660,9 +6791,9 @@ p-limit@^1.1.0: p-try "^1.0.0" p-limit@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" - integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ== + version "2.2.1" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" + integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== dependencies: p-try "^2.0.0" @@ -6706,11 +6837,11 @@ pako@~1.0.5: integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== parallel-transform@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" - integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY= + version "1.2.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== dependencies: - cyclist "~0.2.2" + cyclist "^1.0.1" inherits "^2.0.3" readable-stream "^2.1.5" @@ -6729,9 +6860,9 @@ parent-module@^1.0.0: callsites "^3.0.0" parse-asn1@^5.0.0: - version "5.1.4" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc" - integrity sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw== + version "5.1.5" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" + integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== dependencies: asn1.js "^4.0.0" browserify-aes "^1.0.0" @@ -6927,9 +7058,9 @@ pnp-webpack-plugin@1.5.0: ts-pnp "^1.1.2" portfinder@^1.0.9: - version "1.0.21" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.21.tgz#60e1397b95ac170749db70034ece306b9a27e324" - integrity sha512-ESabpDCzmBS3ekHbmpAIiESq3udRsCBGiBZLsC+HgBKv2ezb0R4oG+7RnYEVZ/ZCfhel5Tx3UzdNWA0Lox2QCA== + version "1.0.24" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.24.tgz#11efbc6865f12f37624b6531ead1d809ed965cfa" + integrity sha512-ekRl7zD2qxYndYflwiryJwMioBI7LI7rVXg3EnLK3sjkouT5eOuhS3gS255XxBksa30VG8UPZYZCdgfGOfkSUg== dependencies: async "^1.5.2" debug "^2.2.0" @@ -7592,9 +7723,9 @@ postcss@7.0.14: supports-color "^6.1.0" postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.17" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.17.tgz#4da1bdff5322d4a0acaab4d87f3e782436bad31f" - integrity sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ== + version "7.0.18" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.18.tgz#4b9cda95ae6c069c67a4d933029eddd4838ac233" + integrity sha512-/7g1QXXgegpF+9GJj4iN7ChGF40sYuGYJ8WZu8DZWnmhQ/G36hfdk3q9LBJmoK+lZ+yzZ5KYpOoxq7LF1BxE8g== dependencies: chalk "^2.4.2" source-map "^0.6.1" @@ -7605,6 +7736,11 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= +prepend-http@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + pretty-bytes@^5.1.0: version "5.3.0" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.3.0.tgz#f2849e27db79fb4d6cfe24764fc4134f165989f2" @@ -7618,12 +7754,12 @@ pretty-error@^2.1.1: renderkid "^2.0.1" utila "~0.4" -pretty-format@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.8.0.tgz#8dae7044f58db7cb8be245383b565a963e3c27f2" - integrity sha512-P952T7dkrDEplsR+TuY7q3VXDae5Sr7zmQb12JU/NDQa/3CH7/QW0yvqLcGN6jL+zQFKaoJcPc+yJxMTGmosqw== +pretty-format@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" + integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" ansi-regex "^4.0.0" ansi-styles "^3.2.0" react-is "^16.8.4" @@ -7691,9 +7827,9 @@ prr@~1.0.1: integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= psl@^1.1.24, psl@^1.1.28: - version "1.3.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.3.0.tgz#e1ebf6a3b5564fa8376f3da2275da76d875ca1bd" - integrity sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag== + version "1.4.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.4.0.tgz#5dd26156cdb69fa1fdb8ab1991667d3f80ced7c2" + integrity sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw== public-encrypt@^4.0.0: version "4.0.3" @@ -7762,6 +7898,14 @@ qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== +query-string@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -7836,10 +7980,10 @@ react-app-polyfill@^1.0.2: regenerator-runtime "0.13.3" whatwg-fetch "3.0.0" -react-dev-utils@^9.0.2: - version "9.0.2" - resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-9.0.2.tgz#14f9a75120513967e13599d4f66d43bced7a3fce" - integrity sha512-AHVfRepMzZJyJHCNFAsrAG4El1H5v+27c1XkeDoX6pSmdhT/ZDdAN3Mf7DKYcrbIFlubzVYof6NZDnPBjd0CNA== +react-dev-utils@^9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-9.0.3.tgz#7607455587abb84599451460eb37cef0b684131a" + integrity sha512-OyInhcwsvycQ3Zr2pQN+HV4gtRXrky5mJXIy4HnqrWa+mI624xfYfqGuC9dYbxp4Qq3YZzP8GSGQjv0AgNU15w== dependencies: "@babel/code-frame" "7.5.5" address "1.1.0" @@ -7860,17 +8004,17 @@ react-dev-utils@^9.0.2: loader-utils "1.2.3" open "^6.3.0" pkg-up "2.0.0" - react-error-overlay "^6.0.0" + react-error-overlay "^6.0.1" recursive-readdir "2.2.2" shell-quote "1.6.1" sockjs-client "1.3.0" strip-ansi "5.2.0" text-table "0.2.0" -react-error-overlay@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.0.tgz#485beca3db57e8ec2d934d4ee598754467229499" - integrity sha512-oHf3b1J2Pxu03apiHvP21qBCkj6fG6A3c3ahya3fX0VXEZUTzIRLwZI9eZ/6cuOO+kvnzdVdGBxZlo+Tjh+hfQ== +react-error-overlay@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.1.tgz#b8d3cf9bb991c02883225c48044cb3ee20413e0f" + integrity sha512-V9yoTr6MeZXPPd4nV/05eCBvGH9cGzc52FN8fs0O0TVQ3HYYf1n7EgZVtHbldRq5xU9zEzoXIITjYNIfxDDdUw== react-is@^16.8.1, react-is@^16.8.4: version "16.9.0" @@ -7998,10 +8142,17 @@ regex-parser@2.2.10: resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.10.tgz#9e66a8f73d89a107616e63b39d4deddfee912b37" integrity sha512-8t6074A68gHfU8Neftl0Le6KTDwfGAj7IyjPIMSfikI2wJUTHDMaIq42bUsfVnj8mhx0R+45rdUXHGpN164avA== -regexp-tree@^0.1.6: - version "0.1.11" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.11.tgz#c9c7f00fcf722e0a56c7390983a7a63dd6c272f3" - integrity sha512-7/l/DgapVVDzZobwMCCgMlqiqyLFJ0cduo/j+3BcDJIB+yJdsYCfKuI3l/04NV+H/rfNRdPIDbXNZHM9XvQatg== +regexp-tree@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.13.tgz#5b19ab9377edc68bc3679256840bb29afc158d7f" + integrity sha512-hwdV/GQY5F8ReLZWO+W1SRoN5YfpOKY6852+tBFcma72DKBIcHjPRIlIvQN35bCOljuAfP2G2iB0FC/w236mUw== + +regexp.prototype.flags@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c" + integrity sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA== + dependencies: + define-properties "^1.1.2" regexpp@^2.0.1: version "2.0.1" @@ -8009,9 +8160,9 @@ regexpp@^2.0.1: integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== regexpu-core@^4.5.4: - version "4.5.5" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.5.tgz#aaffe61c2af58269b3e516b61a73790376326411" - integrity sha512-FpI67+ky9J+cDizQUJlIlNZFKual/lUkFr1AG6zOCpwZ9cLrg8UUVakyUQJD7fCDIe9Z2nwTQJNPyonatNmDFQ== + version "4.6.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" + integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== dependencies: regenerate "^1.4.0" regenerate-unicode-properties "^8.1.0" @@ -8168,7 +8319,7 @@ resolve@1.1.7: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@1.12.0, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1: +resolve@1.12.0, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1: version "1.12.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== @@ -8183,14 +8334,6 @@ restore-cursor@^2.0.0: onetime "^2.0.0" signal-exit "^3.0.2" -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" @@ -8219,13 +8362,20 @@ rgba-regex@^1.0.0: resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= -rimraf@2.6.3, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: +rimraf@2.6.3: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== dependencies: glob "^7.1.3" +rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -8254,9 +8404,9 @@ run-queue@^1.0.0, run-queue@^1.0.3: aproba "^1.1.1" rxjs@^6.4.0: - version "6.5.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" - integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg== + version "6.5.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a" + integrity sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA== dependencies: tslib "^1.9.0" @@ -8329,13 +8479,13 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.0.0, schema-utils@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.1.0.tgz#940363b6b1ec407800a22951bdcc23363c039393" - integrity sha512-g6SViEZAfGNrToD82ZPUjq52KUPDYc+fN5+g6Euo5mLokl/9Yx14z0Cu4RR1m55HtBXejO0sBt+qw79axN+Fiw== +schema-utils@^2.0.0, schema-utils@^2.0.1, schema-utils@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.2.0.tgz#48a065ce219e0cacf4631473159037b2c1ae82da" + integrity sha512-5EwsCNhfFTZvUreQhx/4vVQpJ/lnCAkgoIHLhSpp4ZirE+4hzFvdJi0FMub6hxbFVBJYSpeVVmon+2e7uEGRrA== dependencies: - ajv "^6.1.0" - ajv-keywords "^3.1.0" + ajv "^6.10.2" + ajv-keywords "^3.4.1" select-hose@^2.0.0: version "2.0.0" @@ -8343,23 +8493,18 @@ select-hose@^2.0.0: integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= selfsigned@^1.9.1: - version "1.10.4" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.4.tgz#cdd7eccfca4ed7635d47a08bf2d5d3074092e2cd" - integrity sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw== + version "1.10.6" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.6.tgz#7b3cd37ed9c2034261a173af1a1aae27d8169b67" + integrity sha512-i3+CeqxL7DpAazgVpAGdKMwHuL63B5nhJMh9NQ7xmChGkA3jNFflq6Jyo1LLJYcr3idWiNOPWHCrm4zMayLG4w== dependencies: - node-forge "0.7.5" + node-forge "0.8.2" "semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" - integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== - -semver@6.3.0, semver@^6.0.0, semver@^6.1.2, semver@^6.3.0: +semver@6.3.0, semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -8384,9 +8529,9 @@ send@0.17.1: statuses "~1.5.0" serialize-javascript@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.7.0.tgz#d6e0dfb2a3832a8c94468e6eb1db97e55a192a65" - integrity sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA== + version "1.9.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb" + integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A== serve-index@^1.7.2: version "1.9.1" @@ -8520,6 +8665,11 @@ slash@^2.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + slice-ansi@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" @@ -8579,6 +8729,13 @@ sockjs@0.3.19: faye-websocket "^0.10.0" uuid "^3.0.1" +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= + dependencies: + is-plain-obj "^1.0.0" + source-list-map@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" @@ -8761,6 +8918,11 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + string-length@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" @@ -8769,6 +8931,14 @@ string-length@^2.0.0: astral-regex "^1.0.0" strip-ansi "^4.0.0" +string-length@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837" + integrity sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA== + dependencies: + astral-regex "^1.0.0" + strip-ansi "^5.2.0" + string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -8786,7 +8956,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^3.0.0: +string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== @@ -8795,14 +8965,21 @@ string-width@^3.0.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.1.0.tgz#ba846d1daa97c3c596155308063e075ed1c99aff" - integrity sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ== +string.prototype.trimleft@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" + integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw== dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^5.2.0" + define-properties "^1.1.3" + function-bind "^1.1.1" + +string.prototype.trimright@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" + integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" @@ -8942,9 +9119,9 @@ symbol-tree@^3.2.2: integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== table@^5.2.3: - version "5.4.5" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.5.tgz#c8f4ea2d8fee08c0027fac27b0ec0a4fe01dfa42" - integrity sha512-oGa2Hl7CQjfoaogtrOHEJroOcYILTx7BZWLGsJIlzoWmB2zmguhNfPJZsWPKYek/MgCxfco54gEi31d1uN2hFA== + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== dependencies: ajv "^6.10.2" lodash "^4.17.14" @@ -8957,13 +9134,13 @@ tapable@^1.0.0, tapable@^1.1.0, tapable@^1.1.3: integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== tar@^4: - version "4.4.10" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1" - integrity sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA== + version "4.4.11" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.11.tgz#7ac09801445a3cf74445ed27499136b5240ffb73" + integrity sha512-iI4zh3ktLJKaDNZKZc+fUONiQrSn9HkCFzamtb7k8FFmVilHVob7QsLX/VySAW8lAviMzMbFw4QtFb4errwgYA== dependencies: chownr "^1.1.1" fs-minipass "^1.2.5" - minipass "^2.3.5" + minipass "^2.6.4" minizlib "^1.2.1" mkdirp "^0.5.0" safe-buffer "^5.1.2" @@ -8985,9 +9162,9 @@ terser-webpack-plugin@1.4.1, terser-webpack-plugin@^1.4.1: worker-farm "^1.7.0" terser@^4.1.2: - version "4.1.4" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.1.4.tgz#4478b6a08bb096a61e793fea1a4434408bab936c" - integrity sha512-+ZwXJvdSwbd60jG0Illav0F06GDJF0R4ydZ21Q3wGAFKoBGyJGo34F63vzJHgvYxc1ukOtIjvwEvl9MkjzM6Pg== + version "4.3.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.3.1.tgz#09820bcb3398299c4b48d9a86aefc65127d0ed65" + integrity sha512-pnzH6dnFEsR2aa2SJaKb1uSCl3QmIsJ8dEkj0Fky+2AwMMcC9doMqLOQIH6wVTEKaVfKVvLSk5qxPBEZT9mywg== dependencies: commander "^2.20.0" source-map "~0.6.1" @@ -9123,17 +9300,17 @@ trim-right@^1.0.1: resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= -ts-pnp@1.1.2, ts-pnp@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.1.2.tgz#be8e4bfce5d00f0f58e0666a82260c34a57af552" - integrity sha512-f5Knjh7XCyRIzoC/z1Su1yLLRrPrFCgtUAh/9fCSP6NKbATwpOL1+idQVXQokK9GRFURn/jYPGPfegIctwunoA== +ts-pnp@1.1.4, ts-pnp@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.1.4.tgz#ae27126960ebaefb874c6d7fa4729729ab200d90" + integrity sha512-1J/vefLC+BWSo+qe8OnJQfWTYRS6ingxjwqmHMqaMxXMj7kFtKLgAaYW3JeX3mktjgUL+etlU8/B4VUAUI9QGw== tslib@^1.8.1, tslib@^1.9.0: version "1.10.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== -tsutils@^3.7.0: +tsutils@^3.17.1: version "3.17.1" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== @@ -9284,9 +9461,9 @@ unset-value@^1.0.0: isobject "^3.0.0" upath@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" - integrity sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q== + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== upper-case@^1.1.1: version "1.1.3" @@ -9373,9 +9550,9 @@ utils-merge@1.0.1: integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= uuid@^3.0.1, uuid@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== + version "3.3.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" + integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== v8-compile-cache@^2.0.3: version "2.1.0" @@ -9459,12 +9636,13 @@ webidl-conversions@^4.0.2: integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== webpack-dev-middleware@^3.5.1: - version "3.7.0" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.0.tgz#ef751d25f4e9a5c8a35da600c5fda3582b5c6cff" - integrity sha512-qvDesR1QZRIAZHOE3iQ4CXLZZSQ1lAUsSpnQmlB1PBfoN/xdRjmge3Dok0W4IdaVLJOGJy3sGI4sZHwjRU0PCA== + version "3.7.1" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.1.tgz#1167aea02afa034489869b8368fe9fed1aea7d09" + integrity sha512-5MWu9SH1z3hY7oHOV6Kbkz5x7hXbxK56mGHNqHTe6d+ewxOwKUxoUJBs7QIaJb33lPjl9bJZ3X0vCoooUzC36A== dependencies: memory-fs "^0.4.1" - mime "^2.4.2" + mime "^2.4.4" + mkdirp "^0.5.1" range-parser "^1.2.1" webpack-log "^2.0.0" @@ -9529,10 +9707,10 @@ webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@4.39.1: - version "4.39.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.39.1.tgz#60ed9fb2b72cd60f26ea526c404d2a4cc97a1bd8" - integrity sha512-/LAb2TJ2z+eVwisldp3dqTEoNhzp/TLCZlmZm3GGGAlnfIWDgOEE758j/9atklNLfRyhKbZTCOIoPqLJXeBLbQ== +webpack@4.40.2: + version "4.40.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.40.2.tgz#d21433d250f900bf0facbabe8f50d585b2dc30a7" + integrity sha512-5nIvteTDCUws2DVvP9Qe+JPla7kWPPIDFZv55To7IycHWZ+Z5qBdaBYPyuXWdhggTufZkQwfIK+5rKQTVovm2A== dependencies: "@webassemblyjs/ast" "1.8.5" "@webassemblyjs/helper-module-context" "1.8.5" @@ -9793,6 +9971,15 @@ wrap-ansi@^2.0.0: string-width "^1.0.1" strip-ansi "^3.0.1" +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -9834,9 +10021,9 @@ xml-name-validator@^3.0.0: integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== xmlchars@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.1.1.tgz#ef1a81c05bff629c2280007f12daca21bd6f6c93" - integrity sha512-7hew1RPJ1iIuje/Y01bGD/mXokXxegAgVS+e+E0wSi2ILHQkYAH1+JXARwTjZSM4Z4Z+c73aKspEcqj+zPPL/w== + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== xregexp@4.0.0: version "4.0.0" @@ -9865,10 +10052,10 @@ yargs-parser@^10.1.0: dependencies: camelcase "^4.1.0" -yargs-parser@^11.1.1: - version "11.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" - integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== +yargs-parser@^13.1.1: + version "13.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" + integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" @@ -9891,20 +10078,18 @@ yargs@12.0.2: y18n "^3.2.1 || ^4.0.0" yargs-parser "^10.1.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== +yargs@^13.3.0: + version "13.3.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" + integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== dependencies: - cliui "^4.0.0" - decamelize "^1.2.0" + cliui "^5.0.0" find-up "^3.0.0" - get-caller-file "^1.0.1" - os-locale "^3.0.0" + get-caller-file "^2.0.1" require-directory "^2.1.1" - require-main-filename "^1.0.1" + require-main-filename "^2.0.0" set-blocking "^2.0.0" - string-width "^2.0.0" + string-width "^3.0.0" which-module "^2.0.0" - y18n "^3.2.1 || ^4.0.0" - yargs-parser "^11.1.1" + y18n "^4.0.0" + yargs-parser "^13.1.1" From a825e8f5e3b7ecd84a0bcef61bbc26eb4e8fd9c3 Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Thu, 19 Sep 2019 11:47:56 -0600 Subject: [PATCH 0777/1249] Publish - babel-plugin-named-asset-import@0.3.4 - babel-preset-react-app@9.0.2 - confusing-browser-globals@1.0.9 - create-react-app@3.1.2 - eslint-config-react-app@5.0.2 - react-app-polyfill@1.0.3 - react-dev-utils@9.0.4 - react-error-overlay@6.0.2 - react-scripts@3.1.2 --- .../babel-plugin-named-asset-import/package.json | 2 +- packages/babel-preset-react-app/package.json | 2 +- packages/confusing-browser-globals/package.json | 2 +- packages/create-react-app/package.json | 2 +- packages/eslint-config-react-app/package.json | 4 ++-- packages/react-app-polyfill/package.json | 2 +- packages/react-dev-utils/package.json | 4 ++-- packages/react-error-overlay/package.json | 8 ++++---- packages/react-scripts/package.json | 12 ++++++------ 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/packages/babel-plugin-named-asset-import/package.json b/packages/babel-plugin-named-asset-import/package.json index b716ebd6d2c..b045f5fbae3 100644 --- a/packages/babel-plugin-named-asset-import/package.json +++ b/packages/babel-plugin-named-asset-import/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-named-asset-import", - "version": "0.3.3", + "version": "0.3.4", "description": "Babel plugin for named asset imports in Create React App", "repository": { "type": "git", diff --git a/packages/babel-preset-react-app/package.json b/packages/babel-preset-react-app/package.json index 09b2e6aabf7..f5c17b0d8b5 100644 --- a/packages/babel-preset-react-app/package.json +++ b/packages/babel-preset-react-app/package.json @@ -1,6 +1,6 @@ { "name": "babel-preset-react-app", - "version": "9.0.1", + "version": "9.0.2", "description": "Babel preset used by Create React App", "repository": { "type": "git", diff --git a/packages/confusing-browser-globals/package.json b/packages/confusing-browser-globals/package.json index ab22aa7083f..b133e7ff9f6 100644 --- a/packages/confusing-browser-globals/package.json +++ b/packages/confusing-browser-globals/package.json @@ -1,6 +1,6 @@ { "name": "confusing-browser-globals", - "version": "1.0.8", + "version": "1.0.9", "description": "A list of browser globals that are often used by mistake instead of local variables", "license": "MIT", "main": "index.js", diff --git a/packages/create-react-app/package.json b/packages/create-react-app/package.json index f4385945e50..453b7c63bff 100644 --- a/packages/create-react-app/package.json +++ b/packages/create-react-app/package.json @@ -1,6 +1,6 @@ { "name": "create-react-app", - "version": "3.1.1", + "version": "3.1.2", "keywords": [ "react" ], diff --git a/packages/eslint-config-react-app/package.json b/packages/eslint-config-react-app/package.json index 657fbdd1b41..35ea53d37e7 100644 --- a/packages/eslint-config-react-app/package.json +++ b/packages/eslint-config-react-app/package.json @@ -1,6 +1,6 @@ { "name": "eslint-config-react-app", - "version": "5.0.1", + "version": "5.0.2", "description": "ESLint configuration used by Create React App", "repository": { "type": "git", @@ -26,6 +26,6 @@ "eslint-plugin-react-hooks": "1.x" }, "dependencies": { - "confusing-browser-globals": "^1.0.8" + "confusing-browser-globals": "^1.0.9" } } diff --git a/packages/react-app-polyfill/package.json b/packages/react-app-polyfill/package.json index 104951161c7..5bb05e7250b 100644 --- a/packages/react-app-polyfill/package.json +++ b/packages/react-app-polyfill/package.json @@ -1,6 +1,6 @@ { "name": "react-app-polyfill", - "version": "1.0.2", + "version": "1.0.3", "description": "Polyfills for various browsers including commonly used language features", "repository": { "type": "git", diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index d069e1bb26a..168c2ac978c 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -1,6 +1,6 @@ { "name": "react-dev-utils", - "version": "9.0.3", + "version": "9.0.4", "description": "Webpack utilities used by Create React App", "repository": { "type": "git", @@ -69,7 +69,7 @@ "loader-utils": "1.2.3", "open": "^6.3.0", "pkg-up": "2.0.0", - "react-error-overlay": "^6.0.1", + "react-error-overlay": "^6.0.2", "recursive-readdir": "2.2.2", "shell-quote": "1.7.2", "sockjs-client": "1.4.0", diff --git a/packages/react-error-overlay/package.json b/packages/react-error-overlay/package.json index 4123a5974cd..6eb5f2e84a0 100644 --- a/packages/react-error-overlay/package.json +++ b/packages/react-error-overlay/package.json @@ -1,6 +1,6 @@ { "name": "react-error-overlay", - "version": "6.0.1", + "version": "6.0.2", "description": "An overlay for displaying stack frames.", "main": "lib/index.js", "sideEffects": false, @@ -40,12 +40,12 @@ "babel-eslint": "10.0.3", "babel-jest": "^24.9.0", "babel-loader": "8.0.6", - "babel-preset-react-app": "^9.0.1", + "babel-preset-react-app": "^9.0.2", "chalk": "^2.4.2", "chokidar": "^2.1.2", "cross-env": "5.2.1", "eslint": "^6.1.0", - "eslint-config-react-app": "^5.0.1", + "eslint-config-react-app": "^5.0.2", "eslint-plugin-flowtype": "3.13.0", "eslint-plugin-import": "2.18.2", "eslint-plugin-jsx-a11y": "6.2.3", @@ -58,7 +58,7 @@ "promise": "8.0.3", "raw-loader": "^1.0.0", "react": "^16.8.4", - "react-app-polyfill": "^1.0.2", + "react-app-polyfill": "^1.0.3", "react-dom": "^16.8.4", "rimraf": "^2.6.3", "settle-promise": "1.0.0", diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 20f380d9149..8e0c9e5d0ca 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -1,6 +1,6 @@ { "name": "react-scripts", - "version": "3.1.1", + "version": "3.1.2", "description": "Configuration and scripts for Create React App.", "repository": { "type": "git", @@ -35,15 +35,15 @@ "babel-eslint": "10.0.3", "babel-jest": "^24.9.0", "babel-loader": "8.0.6", - "babel-plugin-named-asset-import": "^0.3.3", - "babel-preset-react-app": "^9.0.1", + "babel-plugin-named-asset-import": "^0.3.4", + "babel-preset-react-app": "^9.0.2", "camelcase": "^5.2.0", "case-sensitive-paths-webpack-plugin": "2.2.0", "css-loader": "2.1.1", "dotenv": "6.2.0", "dotenv-expand": "5.1.0", "eslint": "^6.1.0", - "eslint-config-react-app": "^5.0.1", + "eslint-config-react-app": "^5.0.2", "eslint-loader": "3.0.0", "eslint-plugin-flowtype": "3.13.0", "eslint-plugin-import": "2.18.2", @@ -67,8 +67,8 @@ "postcss-normalize": "7.0.1", "postcss-preset-env": "6.7.0", "postcss-safe-parser": "4.0.1", - "react-app-polyfill": "^1.0.2", - "react-dev-utils": "^9.0.3", + "react-app-polyfill": "^1.0.3", + "react-dev-utils": "^9.0.4", "resolve": "1.12.0", "resolve-url-loader": "3.1.0", "sass-loader": "7.2.0", From 0dc69ec404ba519aa2b13cb18c5472d71d8bdd29 Mon Sep 17 00:00:00 2001 From: Samuel Meuli Date: Thu, 19 Sep 2019 21:10:30 +0200 Subject: [PATCH 0778/1249] Update runtime chunk name separator in docs (#7705) --- docusaurus/docs/production-build.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/docs/production-build.md b/docusaurus/docs/production-build.md index 7bafc5bf743..acd7e02a2c3 100644 --- a/docusaurus/docs/production-build.md +++ b/docusaurus/docs/production-build.md @@ -15,7 +15,7 @@ When running a production build of freshly created Create React App application, - These files can either be _vendor_ code, or [code splitting chunks](code-splitting.md). _Vendor_ code includes modules that you've imported from within `node_modules`. One of the potential advantages with splitting your _vendor_ and _application_ code is to enable [long term caching techniques](#static-file-caching) to improve application loading performance. Since _vendor_ code tends to change less often than the actual _application_ code, the browser will be able to cache them separately, and won't re-download them each time the app code changes. -`runtime~main.[hash].js` +`runtime-main.[hash].js` - This is a small chunk of [webpack runtime](https://webpack.js.org/configuration/optimization/#optimization-runtimechunk) logic which is used to load and run your application. The contents of this will be embedded in your `build/index.html` file by default to save an additional network request. You can opt out of this by specifying `INLINE_RUNTIME_CHUNK=false` as documented in our [advanced configuration](advanced-configuration.md), which will load this chunk instead of embedding it in your `index.html`. From 05f7924398d175429825c4b680d18e6c253435a9 Mon Sep 17 00:00:00 2001 From: Lewis Llobera Date: Fri, 20 Sep 2019 17:51:27 +0200 Subject: [PATCH 0779/1249] Remove 'shortcut' link type before 'icon' (#7707) --- docusaurus/docs/using-the-public-folder.md | 2 +- packages/react-dev-utils/README.md | 2 +- packages/react-scripts/config/webpack.config.js | 2 +- packages/react-scripts/config/webpackDevServer.config.js | 2 +- .../react-scripts/fixtures/kitchensink/integration/env.test.js | 2 +- packages/react-scripts/fixtures/kitchensink/public/index.html | 2 +- packages/react-scripts/template-typescript/public/index.html | 2 +- packages/react-scripts/template/public/index.html | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docusaurus/docs/using-the-public-folder.md b/docusaurus/docs/using-the-public-folder.md index 9a935827bae..e5c7d366b2a 100644 --- a/docusaurus/docs/using-the-public-folder.md +++ b/docusaurus/docs/using-the-public-folder.md @@ -29,7 +29,7 @@ If you put a file into the `public` folder, it will **not** be processed by Webp Inside `index.html`, you can use it like this: ```html - + ``` Only files inside the `public` folder will be accessible by `%PUBLIC_URL%` prefix. If you need to use a file from `src` or `node_modules`, you’ll have to copy it there to explicitly specify your intention to make this file a part of the build. diff --git a/packages/react-dev-utils/README.md b/packages/react-dev-utils/README.md index d89dc95f667..3011d8286d0 100644 --- a/packages/react-dev-utils/README.md +++ b/packages/react-dev-utils/README.md @@ -44,7 +44,7 @@ module.exports = { template: path.resolve('public/index.html'), }), // Makes the public URL available as %PUBLIC_URL% in index.html, e.g.: - // + // new InterpolateHtmlPlugin(HtmlWebpackPlugin, { PUBLIC_URL: publicUrl, // You can pass any key-value pairs, this was just an example. diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index f75782722d7..f88910d4dbe 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -598,7 +598,7 @@ module.exports = function(webpackEnv) { new InlineChunkHtmlPlugin(HtmlWebpackPlugin, [/runtime-.+[.]js/]), // Makes some environment variables available in index.html. // The public URL is available as %PUBLIC_URL% in index.html, e.g.: - // + // // In production, it will be an empty string unless you specify "homepage" // in `package.json`, in which case it will be the pathname of that URL. // In development, this will be an empty string. diff --git a/packages/react-scripts/config/webpackDevServer.config.js b/packages/react-scripts/config/webpackDevServer.config.js index 60a9713df33..1c8794fc616 100644 --- a/packages/react-scripts/config/webpackDevServer.config.js +++ b/packages/react-scripts/config/webpackDevServer.config.js @@ -51,7 +51,7 @@ module.exports = function(proxy, allowedHost) { // Instead, we establish a convention that only files in `public` directory // get served. Our build script will copy `public` into the `build` folder. // In `index.html`, you can get URL of `public` folder with %PUBLIC_URL%: - // + // // In JavaScript code, you can access it with `process.env.PUBLIC_URL`. // Note that we only recommend to use `public` folder as an escape hatch // for files like `favicon.ico`, `manifest.json`, and libraries that are diff --git a/packages/react-scripts/fixtures/kitchensink/integration/env.test.js b/packages/react-scripts/fixtures/kitchensink/integration/env.test.js index 7181c2fa78d..48a41d1fc81 100644 --- a/packages/react-scripts/fixtures/kitchensink/integration/env.test.js +++ b/packages/react-scripts/fixtures/kitchensink/integration/env.test.js @@ -54,7 +54,7 @@ describe('Integration', () => { `${prefix}.` ); expect( - doc.querySelector('head link[rel="shortcut icon"]').getAttribute('href') + doc.querySelector('head link[rel="icon"]').getAttribute('href') ).toBe(`${prefix}/favicon.ico`); }); diff --git a/packages/react-scripts/fixtures/kitchensink/public/index.html b/packages/react-scripts/fixtures/kitchensink/public/index.html index 26f96719978..42c66c7677a 100644 --- a/packages/react-scripts/fixtures/kitchensink/public/index.html +++ b/packages/react-scripts/fixtures/kitchensink/public/index.html @@ -3,7 +3,7 @@ - + React App diff --git a/packages/react-scripts/template-typescript/public/index.html b/packages/react-scripts/template-typescript/public/index.html index a146b6fd776..c240d2ca8b0 100644 --- a/packages/react-scripts/template-typescript/public/index.html +++ b/packages/react-scripts/template-typescript/public/index.html @@ -2,7 +2,7 @@ - + - + Date: Tue, 24 Sep 2019 13:44:45 +1000 Subject: [PATCH 0780/1249] Guard polyfills against window possibly being undefined (#7205) --- packages/react-app-polyfill/ie11.js | 2 +- packages/react-app-polyfill/ie9.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/react-app-polyfill/ie11.js b/packages/react-app-polyfill/ie11.js index 4a5bcd6bf38..b61390923fa 100644 --- a/packages/react-app-polyfill/ie11.js +++ b/packages/react-app-polyfill/ie11.js @@ -11,7 +11,7 @@ if (typeof Promise === 'undefined') { // inconsistent state due to an error, but it gets swallowed by a Promise, // and the user has no idea what causes React's erratic future behavior. require('promise/lib/rejection-tracking').enable(); - window.Promise = require('promise/lib/es6-extensions.js'); + self.Promise = require('promise/lib/es6-extensions.js'); } // Make sure we're in a Browser-like environment before importing polyfills diff --git a/packages/react-app-polyfill/ie9.js b/packages/react-app-polyfill/ie9.js index 42e31fdb1fb..13e2f9b6a2b 100644 --- a/packages/react-app-polyfill/ie9.js +++ b/packages/react-app-polyfill/ie9.js @@ -11,4 +11,5 @@ require('./ie11'); // React 16+ relies on Map, Set, and requestAnimationFrame require('core-js/features/map'); require('core-js/features/set'); -require('raf').polyfill(window); + +require('raf').polyfill(); From 6f5221c2d7df0b7a097cfdd461967422c3013e12 Mon Sep 17 00:00:00 2001 From: Iguchi Tomokatsu Date: Tue, 24 Sep 2019 16:41:05 +0900 Subject: [PATCH 0781/1249] Enable .eslintignore with extend flag (#7562) --- packages/react-scripts/config/webpack.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index f88910d4dbe..6cb1bf36b21 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -342,6 +342,7 @@ module.exports = function(webpackEnv) { eslintPath: require.resolve('eslint'), resolvePluginsRelativeTo: __dirname, // @remove-on-eject-begin + ignore: process.env.EXTEND_ESLINT === 'true', baseConfig: (() => { const eslintCli = new eslint.CLIEngine(); let eslintConfig; @@ -360,7 +361,6 @@ module.exports = function(webpackEnv) { }; } })(), - ignore: false, useEslintrc: false, // @remove-on-eject-end }, From 93150c513530e1f08cd49593951a8b0d024afaec Mon Sep 17 00:00:00 2001 From: Samuel Meuli Date: Tue, 24 Sep 2019 18:56:26 +0200 Subject: [PATCH 0782/1249] Add "entrypoints" key to asset manifest (#7721) --- packages/react-scripts/config/webpack.config.js | 17 ++++++++++++----- packages/react-scripts/package.json | 2 +- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index 6cb1bf36b21..62f7b0c41b4 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -631,20 +631,27 @@ module.exports = function(webpackEnv) { filename: 'static/css/[name].[contenthash:8].css', chunkFilename: 'static/css/[name].[contenthash:8].chunk.css', }), - // Generate a manifest file which contains a mapping of all asset filenames - // to their corresponding output file so that tools can pick it up without - // having to parse `index.html`. + // Generate an asset manifest file with the following content: + // - "files" key: Mapping of all asset filenames to their corresponding + // output file so that tools can pick it up without having to parse + // `index.html` + // - "entrypoints" key: Array of files which are included in `index.html`, + // can be used to reconstruct the HTML if necessary new ManifestPlugin({ fileName: 'asset-manifest.json', publicPath: publicPath, - generate: (seed, files) => { - const manifestFiles = files.reduce(function(manifest, file) { + generate: (seed, files, entrypoints) => { + const manifestFiles = files.reduce((manifest, file) => { manifest[file.name] = file.path; return manifest; }, seed); + const entrypointFiles = entrypoints.main.filter( + fileName => !fileName.endsWith('.map') + ); return { files: manifestFiles, + entrypoints: entrypointFiles, }; }, }), diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 8e0c9e5d0ca..87c5ea770e2 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -79,7 +79,7 @@ "url-loader": "2.1.0", "webpack": "4.40.2", "webpack-dev-server": "3.2.1", - "webpack-manifest-plugin": "2.0.4", + "webpack-manifest-plugin": "2.1.1", "workbox-webpack-plugin": "4.3.1" }, "devDependencies": { From 0d1775e739b091affaf8b11a85aaa435fc53ee64 Mon Sep 17 00:00:00 2001 From: Federico Zivolo Date: Wed, 25 Sep 2019 18:38:23 +0200 Subject: [PATCH 0783/1249] Update adding flow documentation (#7731) --- docusaurus/docs/adding-flow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/docs/adding-flow.md b/docusaurus/docs/adding-flow.md index 570d88a22bb..321605261e9 100644 --- a/docusaurus/docs/adding-flow.md +++ b/docusaurus/docs/adding-flow.md @@ -22,7 +22,7 @@ make sure to add the following line to your `.flowconfig` to make Flow aware of ```diff [options] -+ module.name_mapper='^\(.*\)$' -> '/src/\1' ++ module.name_mapper='^\([^\.].*\)$' -> '/src/\1' ``` To learn more about Flow, check out [its documentation](https://flow.org/). From 42ee7212d255fd5aa6085fa03c7f0a5bfc2ac4b7 Mon Sep 17 00:00:00 2001 From: "Kent C. Dodds" Date: Thu, 26 Sep 2019 16:24:48 -0600 Subject: [PATCH 0784/1249] set output.globalObject to 'this' (#7742) Closes #7741 --- packages/react-scripts/config/webpack.config.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index 62f7b0c41b4..f60a1ed06fa 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -202,6 +202,9 @@ module.exports = function(webpackEnv) { // Prevents conflicts when multiple Webpack runtimes (from different apps) // are used on the same page. jsonpFunction: `webpackJsonp${appPackageJson.name}`, + // this defaults to 'window', but by setting it to 'this' then + // module chunks which are built will work in web workers as well. + globalObject: 'this', }, optimization: { minimize: isEnvProduction, From 6533a6db4ae57ff48d3886a52ba5f486f1761f3f Mon Sep 17 00:00:00 2001 From: Laurin Quast Date: Fri, 27 Sep 2019 10:26:22 +0200 Subject: [PATCH 0785/1249] Update logic and log errors for EXTEND_ESLINT (#7530) --- .../react-scripts/config/webpack.config.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index f60a1ed06fa..ab2309b37d8 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -347,16 +347,16 @@ module.exports = function(webpackEnv) { // @remove-on-eject-begin ignore: process.env.EXTEND_ESLINT === 'true', baseConfig: (() => { - const eslintCli = new eslint.CLIEngine(); - let eslintConfig; - try { - eslintConfig = eslintCli.getConfigForFile(paths.appIndexJs); - } catch (e) { - // A config couldn't be found. - } - // We allow overriding the config only if the env variable is set - if (process.env.EXTEND_ESLINT === 'true' && eslintConfig) { + if (process.env.EXTEND_ESLINT === 'true') { + const eslintCli = new eslint.CLIEngine(); + let eslintConfig; + try { + eslintConfig = eslintCli.getConfigForFile(paths.appIndexJs); + } catch (e) { + console.error(e); + process.exit(1); + } return eslintConfig; } else { return { From e624b75ffe6b57b6e0b9dd15546762eb437d6009 Mon Sep 17 00:00:00 2001 From: neilbryson Date: Sat, 28 Sep 2019 06:34:40 +0800 Subject: [PATCH 0786/1249] update list of supported jest config overrides (#7601) --- docusaurus/docs/running-tests.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docusaurus/docs/running-tests.md b/docusaurus/docs/running-tests.md index aa72ae6ceeb..06f384fefbb 100644 --- a/docusaurus/docs/running-tests.md +++ b/docusaurus/docs/running-tests.md @@ -275,7 +275,16 @@ Supported overrides: - [`collectCoverageFrom`](https://jestjs.io/docs/en/configuration.html#collectcoveragefrom-array) - [`coverageReporters`](https://jestjs.io/docs/en/configuration.html#coveragereporters-array-string) - [`coverageThreshold`](https://jestjs.io/docs/en/configuration.html#coveragethreshold-object) +- [`extraGlobals`](https://jestjs.io/docs/en/configuration.html#extraglobals-array-string) +- [`globalSetup`](https://jestjs.io/docs/en/configuration.html#globalsetup-string) +- [`globalTeardown`](https://jestjs.io/docs/en/configuration.html#globalteardown-string) +- [`moduleNameMapper`](https://jestjs.io/docs/en/configuration.html#modulenamemapper-object-string-string) +- [`resetMocks`](https://jestjs.io/docs/en/configuration.html#resetmocks-boolean) +- [`resetModules`](https://jestjs.io/docs/en/configuration.html#resetmodules-boolean) - [`snapshotSerializers`](https://jestjs.io/docs/en/configuration.html#snapshotserializers-array-string) +- [`transform`](https://jestjs.io/docs/en/configuration.html#transform-object-string-pathtotransformer-pathtotransformer-object) +- [`transformIgnorePatterns`](https://jestjs.io/docs/en/configuration.html#transformignorepatterns-array-string) +- [`watchPathIgnorePatterns`](https://jestjs.io/docs/en/configuration.html#watchpathignorepatterns-array-string) Example package.json: From 4a3718be3f89155337701b52dbed26a579877144 Mon Sep 17 00:00:00 2001 From: Reece Dunham Date: Mon, 30 Sep 2019 03:31:46 -0400 Subject: [PATCH 0787/1249] Upgrade Webpack version (#7740) --- packages/react-scripts/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 87c5ea770e2..2bb21624236 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -77,7 +77,7 @@ "terser-webpack-plugin": "1.4.1", "ts-pnp": "1.1.4", "url-loader": "2.1.0", - "webpack": "4.40.2", + "webpack": "4.41.0", "webpack-dev-server": "3.2.1", "webpack-manifest-plugin": "2.1.1", "workbox-webpack-plugin": "4.3.1" From c0d73ba283d82596ec0012556acebb711873a9be Mon Sep 17 00:00:00 2001 From: Rakan Nimer Date: Mon, 30 Sep 2019 03:49:32 -0400 Subject: [PATCH 0788/1249] Close br tags in template README files (#7668) --- packages/react-scripts/template-typescript/README.md | 10 +++++----- packages/react-scripts/template/README.md | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/react-scripts/template-typescript/README.md b/packages/react-scripts/template-typescript/README.md index 897dc836601..a31481cae99 100644 --- a/packages/react-scripts/template-typescript/README.md +++ b/packages/react-scripts/template-typescript/README.md @@ -6,23 +6,23 @@ In the project directory, you can run: ### `npm start` -Runs the app in the development mode.
+Runs the app in the development mode.
Open [http://localhost:3000](http://localhost:3000) to view it in the browser. -The page will reload if you make edits.
+The page will reload if you make edits.
You will also see any lint errors in the console. ### `npm test` -Launches the test runner in the interactive watch mode.
+Launches the test runner in the interactive watch mode.
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. ### `npm run build` -Builds the app for production to the `build` folder.
+Builds the app for production to the `build` folder.
It correctly bundles React in production mode and optimizes the build for the best performance. -The build is minified and the filenames include the hashes.
+The build is minified and the filenames include the hashes.
Your app is ready to be deployed! See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. diff --git a/packages/react-scripts/template/README.md b/packages/react-scripts/template/README.md index 9d9614c4fd3..859d27a647f 100644 --- a/packages/react-scripts/template/README.md +++ b/packages/react-scripts/template/README.md @@ -6,23 +6,23 @@ In the project directory, you can run: ### `npm start` -Runs the app in the development mode.
+Runs the app in the development mode.
Open [http://localhost:3000](http://localhost:3000) to view it in the browser. -The page will reload if you make edits.
+The page will reload if you make edits.
You will also see any lint errors in the console. ### `npm test` -Launches the test runner in the interactive watch mode.
+Launches the test runner in the interactive watch mode.
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. ### `npm run build` -Builds the app for production to the `build` folder.
+Builds the app for production to the `build` folder.
It correctly bundles React in production mode and optimizes the build for the best performance. -The build is minified and the filenames include the hashes.
+The build is minified and the filenames include the hashes.
Your app is ready to be deployed! See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. From fefd7169e940f3cd8e43dc6af6c4687dd86d3bfd Mon Sep 17 00:00:00 2001 From: Lewis Llobera Date: Mon, 30 Sep 2019 10:08:28 +0200 Subject: [PATCH 0789/1249] Fix variable name casing in fileTransform (#7752) --- packages/react-scripts/config/jest/fileTransform.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-scripts/config/jest/fileTransform.js b/packages/react-scripts/config/jest/fileTransform.js index 74dc1aa947e..aab67618c38 100644 --- a/packages/react-scripts/config/jest/fileTransform.js +++ b/packages/react-scripts/config/jest/fileTransform.js @@ -13,10 +13,10 @@ module.exports = { if (filename.match(/\.svg$/)) { // Based on how SVGR generates a component name: // https://github.com/smooth-code/svgr/blob/01b194cf967347d43d4cbe6b434404731b87cf27/packages/core/src/state.js#L6 - const pascalCaseFileName = camelcase(path.parse(filename).name, { + const pascalCaseFilename = camelcase(path.parse(filename).name, { pascalCase: true, }); - const componentName = `Svg${pascalCaseFileName}`; + const componentName = `Svg${pascalCaseFilename}`; return `const React = require('react'); module.exports = { __esModule: true, From a10223d418e4093856bd225e6e4be6e12ac8ae4e Mon Sep 17 00:00:00 2001 From: Tomer Cohen Date: Mon, 30 Sep 2019 23:38:13 +0300 Subject: [PATCH 0790/1249] Documentation typo fix (#7757) --- docusaurus/docs/adding-images-fonts-and-files.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/docs/adding-images-fonts-and-files.md b/docusaurus/docs/adding-images-fonts-and-files.md index 92704ad1f58..88e23047b32 100644 --- a/docusaurus/docs/adding-images-fonts-and-files.md +++ b/docusaurus/docs/adding-images-fonts-and-files.md @@ -60,4 +60,4 @@ const App = () => ( This is handy if you don't want to load SVG as a separate file. Don't forget the curly braces in the import! The `ReactComponent` import name is special and tells Create React App that you want a React component that renders an SVG, rather than its filename. -> **Tip:** The imported SVG React Component accepts a `title` prop along with other props that a `svg` element accepts. Use this prop to add an accessbile title to your svg component. +> **Tip:** The imported SVG React Component accepts a `title` prop along with other props that a `svg` element accepts. Use this prop to add an accessible title to your svg component. From 6f7b37128cac69a61895b5dcd64e431da2fba08f Mon Sep 17 00:00:00 2001 From: Alexandr Tovmach Date: Tue, 1 Oct 2019 06:38:28 +0300 Subject: [PATCH 0791/1249] Fix linting error when using rest props (#7754) --- packages/react-scripts/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index 2bb21624236..a1fd36a2112 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -44,7 +44,7 @@ "dotenv-expand": "5.1.0", "eslint": "^6.1.0", "eslint-config-react-app": "^5.0.2", - "eslint-loader": "3.0.0", + "eslint-loader": "3.0.2", "eslint-plugin-flowtype": "3.13.0", "eslint-plugin-import": "2.18.2", "eslint-plugin-jsx-a11y": "6.2.3", From 71946b1ebab445d7e4f9efca39bf0fe0d4be30f3 Mon Sep 17 00:00:00 2001 From: Kyle Bebak Date: Tue, 1 Oct 2019 03:09:09 -0500 Subject: [PATCH 0792/1249] Add TSC_COMPILE_ON_ERROR setting (#6931) --- docusaurus/docs/adding-typescript.md | 2 +- docusaurus/docs/advanced-configuration.md | 1 + packages/react-dev-utils/README.md | 1 + .../react-dev-utils/WebpackDevServerUtils.js | 19 ++++++++++++++++--- packages/react-scripts/scripts/build.js | 14 +++++++++++--- packages/react-scripts/scripts/start.js | 2 ++ 6 files changed, 32 insertions(+), 7 deletions(-) diff --git a/docusaurus/docs/adding-typescript.md b/docusaurus/docs/adding-typescript.md index 1fb14a82ba1..22043ca59ba 100644 --- a/docusaurus/docs/adding-typescript.md +++ b/docusaurus/docs/adding-typescript.md @@ -31,7 +31,7 @@ yarn add typescript @types/node @types/react @types/react-dom @types/jest Next, rename any file to be a TypeScript file (e.g. `src/index.js` to `src/index.tsx`) and **restart your development server**! -Type errors will show up in the same console as the build one. +Type errors will show up in the same console as the build one. You'll have to fix these type errors before you continue development or build your project. For advanced configuration, [see here](advanced-configuration.md). To learn more about TypeScript, check out [its documentation](https://www.typescriptlang.org/). diff --git a/docusaurus/docs/advanced-configuration.md b/docusaurus/docs/advanced-configuration.md index ab51e951b03..586fc83ac43 100644 --- a/docusaurus/docs/advanced-configuration.md +++ b/docusaurus/docs/advanced-configuration.md @@ -23,3 +23,4 @@ You can adjust various development and production settings by setting environmen | INLINE_RUNTIME_CHUNK | 🚫 Ignored | ✅ Used | By default, Create React App will embed the runtime script into `index.html` during the production build. When set to `false`, the script will not be embedded and will be imported as usual. This is normally required when dealing with CSP. | | IMAGE_INLINE_SIZE_LIMIT | 🚫 Ignored | ✅ Used | By default, images smaller than 10,000 bytes are encoded as a data URI in base64 and inlined in the CSS or JS build artifact. Set this to control the size limit in bytes. Setting it to 0 will disable the inlining of images. | | EXTEND_ESLINT | ✅ Used | ✅ Used | When set to `true`, ESLint configs that extend `eslint-config-react-app` will be used by `eslint-loader`. Any rules that are set to `"error"` will stop the application from building. | +| TSC_COMPILE_ON_ERROR | ✅ Used | ✅ Used | When set to `true`, you can run and properly build TypeScript projects even if there are TypeScript type check errors. These errors are printed as warnings in the terminal and/or browser console. | diff --git a/packages/react-dev-utils/README.md b/packages/react-dev-utils/README.md index 3011d8286d0..d0399fd8c72 100644 --- a/packages/react-dev-utils/README.md +++ b/packages/react-dev-utils/README.md @@ -337,6 +337,7 @@ The `args` object accepts a number of properties: - **urls** `Object`: To provide the `urls` argument, use `prepareUrls()` described below. - **useYarn** `boolean`: If `true`, yarn instructions will be emitted in the terminal instead of npm. - **useTypeScript** `boolean`: If `true`, TypeScript type checking will be enabled. Be sure to provide the `devSocket` argument above if this is set to `true`. +- **tscCompileOnError** `boolean`: If `true`, errors in TypeScript type checking will not prevent start script from running app, and will not cause build script to exit unsuccessfully. Also downgrades all TypeScript type checking error messages to warning messages. - **webpack** `function`: A reference to the webpack constructor. ##### `prepareProxy(proxySetting: string, appPublicFolder: string): Object` diff --git a/packages/react-dev-utils/WebpackDevServerUtils.js b/packages/react-dev-utils/WebpackDevServerUtils.js index 8d74e8cf131..d43f141c387 100644 --- a/packages/react-dev-utils/WebpackDevServerUtils.js +++ b/packages/react-dev-utils/WebpackDevServerUtils.js @@ -108,6 +108,7 @@ function createCompiler({ urls, useYarn, useTypeScript, + tscCompileOnError, webpack, }) { // "Compiler" is a low-level interface to Webpack. @@ -190,16 +191,28 @@ function createCompiler({ const messages = await tsMessagesPromise; clearTimeout(delayedMsg); - statsData.errors.push(...messages.errors); + if (tscCompileOnError) { + statsData.warnings.push(...messages.errors); + } else { + statsData.errors.push(...messages.errors); + } statsData.warnings.push(...messages.warnings); // Push errors and warnings into compilation result // to show them after page refresh triggered by user. - stats.compilation.errors.push(...messages.errors); + if (tscCompileOnError) { + stats.compilation.warnings.push(...messages.errors); + } else { + stats.compilation.errors.push(...messages.errors); + } stats.compilation.warnings.push(...messages.warnings); if (messages.errors.length > 0) { - devSocket.errors(messages.errors); + if (tscCompileOnError) { + devSocket.warnings(messages.errors); + } else { + devSocket.errors(messages.errors); + } } else if (messages.warnings.length > 0) { devSocket.warnings(messages.warnings); } diff --git a/packages/react-scripts/scripts/build.js b/packages/react-scripts/scripts/build.js index edbc6d11557..54e0d4b82aa 100644 --- a/packages/react-scripts/scripts/build.js +++ b/packages/react-scripts/scripts/build.js @@ -122,9 +122,17 @@ checkBrowsers(paths.appPath, isInteractive) ); }, err => { - console.log(chalk.red('Failed to compile.\n')); - printBuildError(err); - process.exit(1); + const tscCompileOnError = process.env.TSC_COMPILE_ON_ERROR === 'true'; + if (tscCompileOnError) { + console.log(chalk.yellow( + 'Compiled with the following type errors (you may want to check these before deploying your app):\n' + )); + printBuildError(err); + } else { + console.log(chalk.red('Failed to compile.\n')); + printBuildError(err); + process.exit(1); + } } ) .catch(err => { diff --git a/packages/react-scripts/scripts/start.js b/packages/react-scripts/scripts/start.js index d4726f5f67e..6c2602f04ff 100644 --- a/packages/react-scripts/scripts/start.js +++ b/packages/react-scripts/scripts/start.js @@ -95,6 +95,7 @@ checkBrowsers(paths.appPath, isInteractive) const protocol = process.env.HTTPS === 'true' ? 'https' : 'http'; const appName = require(paths.appPackageJson).name; const useTypeScript = fs.existsSync(paths.appTsConfig); + const tscCompileOnError = process.env.TSC_COMPILE_ON_ERROR === 'true'; const urls = prepareUrls(protocol, HOST, port); const devSocket = { warnings: warnings => @@ -110,6 +111,7 @@ checkBrowsers(paths.appPath, isInteractive) urls, useYarn, useTypeScript, + tscCompileOnError, webpack, }); // Load proxy config From f36d61a5dbabd0266c65bcdb3061d8bf9334f752 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Lins?= Date: Tue, 1 Oct 2019 05:16:14 -0300 Subject: [PATCH 0793/1249] Remove switch case (#7729) --- packages/react-scripts/bin/react-scripts.js | 65 +++++++++------------ 1 file changed, 29 insertions(+), 36 deletions(-) diff --git a/packages/react-scripts/bin/react-scripts.js b/packages/react-scripts/bin/react-scripts.js index 84cc59b7253..7e6e290251a 100755 --- a/packages/react-scripts/bin/react-scripts.js +++ b/packages/react-scripts/bin/react-scripts.js @@ -24,42 +24,35 @@ const scriptIndex = args.findIndex( const script = scriptIndex === -1 ? args[0] : args[scriptIndex]; const nodeArgs = scriptIndex > 0 ? args.slice(0, scriptIndex) : []; -switch (script) { - case 'build': - case 'eject': - case 'start': - case 'test': { - const result = spawn.sync( - 'node', - nodeArgs - .concat(require.resolve('../scripts/' + script)) - .concat(args.slice(scriptIndex + 1)), - { stdio: 'inherit' } - ); - if (result.signal) { - if (result.signal === 'SIGKILL') { - console.log( - 'The build failed because the process exited too early. ' + - 'This probably means the system ran out of memory or someone called ' + - '`kill -9` on the process.' - ); - } else if (result.signal === 'SIGTERM') { - console.log( - 'The build failed because the process exited too early. ' + - 'Someone might have called `kill` or `killall`, or the system could ' + - 'be shutting down.' - ); - } - process.exit(1); +if (['build', 'eject', 'start', 'test'].includes(script)) { + const result = spawn.sync( + 'node', + nodeArgs + .concat(require.resolve('../scripts/' + script)) + .concat(args.slice(scriptIndex + 1)), + { stdio: 'inherit' } + ); + if (result.signal) { + if (result.signal === 'SIGKILL') { + console.log( + 'The build failed because the process exited too early. ' + + 'This probably means the system ran out of memory or someone called ' + + '`kill -9` on the process.' + ); + } else if (result.signal === 'SIGTERM') { + console.log( + 'The build failed because the process exited too early. ' + + 'Someone might have called `kill` or `killall`, or the system could ' + + 'be shutting down.' + ); } - process.exit(result.status); - break; + process.exit(1); } - default: - console.log('Unknown script "' + script + '".'); - console.log('Perhaps you need to update react-scripts?'); - console.log( - 'See: https://facebook.github.io/create-react-app/docs/updating-to-new-releases' - ); - break; + process.exit(result.status); +} else { + console.log('Unknown script "' + script + '".'); + console.log('Perhaps you need to update react-scripts?'); + console.log( + 'See: https://facebook.github.io/create-react-app/docs/updating-to-new-releases' + ); } From 6980616b56b6ecbcb659efce3a29a26e9810d2ce Mon Sep 17 00:00:00 2001 From: Kim Persson Date: Tue, 1 Oct 2019 18:20:57 +0200 Subject: [PATCH 0794/1249] docs: note that v2 to v3 migration may require deletion of node_modules (#7302) --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d8210d62299..d0bb9a70a45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -413,6 +413,8 @@ or yarn add --exact react-scripts@3.0.0 ``` +**NOTE: You may need to delete your `node_modules` folder and reinstall your dependencies by running `yarn` (or `npm install`) if you encounter errors after upgrading.** + If you previously ejected but now want to upgrade, one common solution is to find the commits where you ejected (and any subsequent commits changing the configuration), revert them, upgrade, and later optionally eject again. It’s also possible that the feature you ejected for is now supported out of the box. ## Breaking Changes From 85aac9b9d5f748d10b0191c37383fceb7af820cd Mon Sep 17 00:00:00 2001 From: Justin Grant Date: Tue, 1 Oct 2019 09:23:23 -0700 Subject: [PATCH 0795/1249] Stop hiding the column number of ESLint errors (#6980) --- packages/react-dev-utils/formatWebpackMessages.js | 3 --- .../__snapshots__/index.test.js.snap | 4 ++-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/react-dev-utils/formatWebpackMessages.js b/packages/react-dev-utils/formatWebpackMessages.js index db9b2cb1971..97fc55cceef 100644 --- a/packages/react-dev-utils/formatWebpackMessages.js +++ b/packages/react-dev-utils/formatWebpackMessages.js @@ -41,9 +41,6 @@ function formatMessage(message) { /SyntaxError\s+\((\d+):(\d+)\)\s*(.+?)\n/g, `${friendlySyntaxErrorLabel} $3 ($1:$2)\n` ); - // Remove columns from ESLint formatter output (we added these for more - // accurate syntax errors) - message = message.replace(/Line (\d+):\d+:/g, 'Line $1:'); // Clean up export errors message = message.replace( /^.*export '(.+?)' was not found in '(.+?)'.*$/gm, diff --git a/test/fixtures/webpack-message-formatting/__snapshots__/index.test.js.snap b/test/fixtures/webpack-message-formatting/__snapshots__/index.test.js.snap index a70b43eff15..9d67e100720 100644 --- a/test/fixtures/webpack-message-formatting/__snapshots__/index.test.js.snap +++ b/test/fixtures/webpack-message-formatting/__snapshots__/index.test.js.snap @@ -62,7 +62,7 @@ Object { Failed to compile. ./src/App.js - Line 4: 'b' is not defined no-undef + Line 4:13: 'b' is not defined no-undef Search for the keywords to learn more about each error. @@ -79,7 +79,7 @@ Object { Compiled with warnings. ./src/App.js - Line 3: 'foo' is defined but never used no-unused-vars + Line 3:10: 'foo' is defined but never used no-unused-vars Search for the keywords to learn more about each warning. To ignore, add // eslint-disable-next-line to the line before. From 7e2b6b16df751b20b96434acd9e70dd2bf7153f5 Mon Sep 17 00:00:00 2001 From: Robert van Steen Date: Wed, 2 Oct 2019 09:48:34 +0200 Subject: [PATCH 0796/1249] Support setting baseUrl to root directory (#7755) --- packages/react-scripts/config/modules.js | 55 ++++++++++++++++++- .../react-scripts/config/webpack.config.js | 5 +- .../scripts/utils/createJestConfig.js | 1 + 3 files changed, 59 insertions(+), 2 deletions(-) diff --git a/packages/react-scripts/config/modules.js b/packages/react-scripts/config/modules.js index d861f2b2dc8..13bd8891e23 100644 --- a/packages/react-scripts/config/modules.js +++ b/packages/react-scripts/config/modules.js @@ -15,7 +15,7 @@ const chalk = require('react-dev-utils/chalk'); const resolve = require('resolve'); /** - * Get the baseUrl of a compilerOptions object. + * Get additional module paths based on the baseUrl of a compilerOptions object. * * @param {Object} options */ @@ -46,6 +46,15 @@ function getAdditionalModulePaths(options = {}) { return [paths.appSrc]; } + // If the path is equal to the root directory we ignore it here. + // We don't want to allow importing from the root directly as source files are + // not transpiled outside of `src`. We do allow importing them with the + // absolute path (e.g. `src/Components/Button.js`) but we set that up with + // an alias. + if (path.relative(paths.appPath, baseUrlResolved) === '') { + return null; + } + // Otherwise, throw an error. throw new Error( chalk.red.bold( @@ -55,6 +64,48 @@ function getAdditionalModulePaths(options = {}) { ); } +/** + * Get webpack aliases based on the baseUrl of a compilerOptions object. + * + * @param {*} options + */ +function getWebpackAliases(options = {}) { + const baseUrl = options.baseUrl; + + if (!baseUrl) { + return {}; + } + + const baseUrlResolved = path.resolve(paths.appPath, baseUrl); + + if (path.relative(paths.appPath, baseUrlResolved) === '') { + return { + src: paths.appSrc, + }; + } +} + +/** + * Get jest aliases based on the baseUrl of a compilerOptions object. + * + * @param {*} options + */ +function getJestAliases(options = {}) { + const baseUrl = options.baseUrl; + + if (!baseUrl) { + return {}; + } + + const baseUrlResolved = path.resolve(paths.appPath, baseUrl); + + if (path.relative(paths.appPath, baseUrlResolved) === '') { + return { + 'src/(.*)$': '/src/$1', + }; + } +} + function getModules() { // Check if TypeScript is setup const hasTsConfig = fs.existsSync(paths.appTsConfig); @@ -89,6 +140,8 @@ function getModules() { return { additionalModulePaths: additionalModulePaths, + webpackAliases: getWebpackAliases(options), + jestAliases: getJestAliases(options), hasTsConfig, }; } diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index ab2309b37d8..15854139057 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -306,6 +306,7 @@ module.exports = function(webpackEnv) { // Support React Native Web // https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/ 'react-native': 'react-native-web', + ...(modules.webpackAliases || {}), }, plugins: [ // Adds support for installing with Plug'n'Play, leading to faster installs and adding @@ -352,7 +353,9 @@ module.exports = function(webpackEnv) { const eslintCli = new eslint.CLIEngine(); let eslintConfig; try { - eslintConfig = eslintCli.getConfigForFile(paths.appIndexJs); + eslintConfig = eslintCli.getConfigForFile( + paths.appIndexJs + ); } catch (e) { console.error(e); process.exit(1); diff --git a/packages/react-scripts/scripts/utils/createJestConfig.js b/packages/react-scripts/scripts/utils/createJestConfig.js index 0beef9addb7..c6408f8906c 100644 --- a/packages/react-scripts/scripts/utils/createJestConfig.js +++ b/packages/react-scripts/scripts/utils/createJestConfig.js @@ -56,6 +56,7 @@ module.exports = (resolve, rootDir, isEjecting) => { moduleNameMapper: { '^react-native$': 'react-native-web', '^.+\\.module\\.(css|sass|scss)$': 'identity-obj-proxy', + ...(modules.jestAliases || {}), }, moduleFileExtensions: [...paths.moduleFileExtensions, 'node'].filter( ext => !ext.includes('mjs') From 6b8fa00e09f7c1af879a29d7ff941f0e8653450f Mon Sep 17 00:00:00 2001 From: Ashrith Reddy Date: Wed, 2 Oct 2019 13:53:22 +0530 Subject: [PATCH 0797/1249] Use installing package manager in README (#7687) --- packages/react-scripts/scripts/init.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/packages/react-scripts/scripts/init.js b/packages/react-scripts/scripts/init.js index 9b473ab3d95..b0460036635 100644 --- a/packages/react-scripts/scripts/init.js +++ b/packages/react-scripts/scripts/init.js @@ -135,6 +135,24 @@ module.exports = function( return; } + // modifies README.md commands based on user used package manager. + if (useYarn) { + try { + const readme = fs.readFileSync(path.join(appPath, 'README.md'), 'utf8'); + fs.writeFileSync( + path.join(appPath, 'README.md'), + readme + .replace(/npm start/g, 'yarn start') + .replace(/npm test/g, 'yarn test') + .replace(/npm run build/g, 'yarn build') + .replace(/npm run eject/g, 'yarn eject'), + 'utf8' + ); + } catch (err) { + // Silencing the error. As it fall backs to using default npm commands. + } + } + // Rename gitignore after the fact to prevent npm from renaming it to .npmignore // See: https://github.com/npm/npm/issues/1862 try { From 88cf8cd64eb814156af3d70adb89fbfc81823737 Mon Sep 17 00:00:00 2001 From: Jacob M-G Evans <27247160+JacobMGEvans@users.noreply.github.com> Date: Wed, 2 Oct 2019 22:53:41 -0500 Subject: [PATCH 0798/1249] Support production profiling with React Developer Tools (#7737) * Added the alias for profiling and output change to keep the classNames and functionNames for human readbility * defined isEnvProductionProfile with other isEnv checks * moved the keep_classnames and keep_fnames to terserOptions scope * resolve merge conflict for yarn.lock.cache * revert yarn.lock.cache to master yarn.lock.cache - git checkout origin/master -- packages/create-react-app/yarn.lock.cached * Comment and Boolean Check - I clarified the comment and specified the use case - Changed the environment check to check for the specific true rather than the assumed primitive value as before. * Replaced env with flag - Per suggestion --profile flag used instead of env variable PROFILE_APP * documentation in available scripts section with suggested information * resolved a local git issue. Fixed documentation error. * moved documentation to suggested file - Added a brief summary of profiling in available scripts section. The summary references the production-build document. Which is the file I moved the new documentation into under a new Header for production support. * Update production-build.md Co-authored-by: Ian Sutherland --- docusaurus/docs/available-scripts.md | 2 +- docusaurus/docs/production-build.md | 6 ++++++ packages/react-scripts/config/webpack.config.js | 13 +++++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/docusaurus/docs/available-scripts.md b/docusaurus/docs/available-scripts.md index b171147528d..effdc2b7936 100644 --- a/docusaurus/docs/available-scripts.md +++ b/docusaurus/docs/available-scripts.md @@ -20,7 +20,7 @@ Launches the test runner in the interactive watch mode. See the section about [r Builds the app for production to the `build` folder. It correctly bundles React in production mode and optimizes the build for the best performance. -The build is minified and the filenames include the hashes. See the [production build](production-build.md) section for more information. +The build is minified and the filenames include the hashes. If necessary, classnames and function names can be enabled for profiling purposes. See the [production build](production-build.md) section for more information. Your app is ready to be deployed! See the section about [deployment](deployment.md) for more information about deploying your application to popular hosting providers. diff --git a/docusaurus/docs/production-build.md b/docusaurus/docs/production-build.md index acd7e02a2c3..8acb30fc9eb 100644 --- a/docusaurus/docs/production-build.md +++ b/docusaurus/docs/production-build.md @@ -28,3 +28,9 @@ Each file inside of the `build/static` directory will have a unique hash appende To deliver the best performance to your users, it's best practice to specify a `Cache-Control` header for `index.html`, as well as the files within `build/static`. This header allows you to control the length of time that the browser as well as CDNs will cache your static assets. If you aren't familiar with what `Cache-Control` does, see [this article](https://jakearchibald.com/2016/caching-best-practices/) for a great introduction. Using `Cache-Control: max-age=31536000` for your `build/static` assets, and `Cache-Control: no-cache` for everything else is a safe and effective starting point that ensures your user's browser will always check for an updated `index.html` file, and will cache all of the `build/static` files for one year. Note that you can use the one year expiration on `build/static` safely because the file contents hash is embedded into the filename. + +## Profiling + +ReactDOM automatically supports profiling in development mode for v16.5+, but since profiling adds some small +additional overhead it is opt-in for production mode. You can opt-in by using the `--profile` flag. Use `npm run build -- --profile` or `yarn build --profile` to enable profiling in the production build. See the [React docs](https://reactjs.org/docs/optimizing-performance.html#profiling-components-with-the-devtools-profiler) for details about profiling +using the React DevTools. diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index 15854139057..f4391c39fb7 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -66,6 +66,11 @@ module.exports = function(webpackEnv) { const isEnvDevelopment = webpackEnv === 'development'; const isEnvProduction = webpackEnv === 'production'; + // Variable used for enabling profiling in Production + // passed into alias object. Uses a flag if passed into the build command + const isEnvProductionProfile = + isEnvProduction && process.argv.includes('--profile'); + // Webpack uses `publicPath` to determine where the app is being served from. // It requires a trailing slash, or the file assets will get an incorrect path. // In development, we always serve from the root. This makes config easier. @@ -237,6 +242,9 @@ module.exports = function(webpackEnv) { mangle: { safari10: true, }, + // Added for profiling in devtools + keep_classnames: isEnvProductionProfile, + keep_fnames: isEnvProductionProfile, output: { ecma: 5, comments: false, @@ -306,6 +314,11 @@ module.exports = function(webpackEnv) { // Support React Native Web // https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/ 'react-native': 'react-native-web', + // Allows for better profiling with ReactDevTools + ...(isEnvProductionProfile && { + 'react-dom$': 'react-dom/profiling', + 'scheduler/tracing': 'scheduler/tracing-profiling', + }), ...(modules.webpackAliases || {}), }, plugins: [ From 6a743427117bd623f35e1a9979b411182ddd6e55 Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Wed, 2 Oct 2019 22:10:57 -0600 Subject: [PATCH 0799/1249] Prepare 3.2.0 release --- CHANGELOG.md | 85 +++ packages/create-react-app/yarn.lock.cached | 721 ++++++++++----------- 2 files changed, 435 insertions(+), 371 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d0bb9a70a45..08c995a14ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,88 @@ +## 3.2.0 (2019-10-03) + +v3.2.0 is a minor release that adds support for production profiling and ignoring TypeScript type errors to make migrating JavaScript projects to TypeScript easier. It also includes other minor bug fixes and documentation updates. + +#### :rocket: New Feature + +- `react-scripts` + - [#7737](https://github.com/facebook/create-react-app/pull/7737) Support production profiling with React Developer Tools ([@JacobMGEvans](https://github.com/JacobMGEvans)) +- `react-dev-utils`, `react-scripts` + - [#6931](https://github.com/facebook/create-react-app/pull/6931) Adds TSC_COMPILE_ON_ERROR env var... ([@kylebebak](https://github.com/kylebebak)) + +#### :bug: Bug Fix + +- `react-scripts` + - [#7754](https://github.com/facebook/create-react-app/pull/7754) Fix linting error when using rest props ([@alexandrtovmach](https://github.com/alexandrtovmach)) +- `react-app-polyfill` + - [#7205](https://github.com/facebook/create-react-app/pull/7205) Guard polyfills against window possibly being undefined ([@jxom](https://github.com/jxom)) + +#### :nail_care: Enhancement + +- `react-scripts` + - [#7687](https://github.com/facebook/create-react-app/pull/7687) Use installing package manager in README ([@ashr81](https://github.com/ashr81)) + - [#7755](https://github.com/facebook/create-react-app/pull/7755) Support setting baseUrl to root directory ([@rovansteen](https://github.com/rovansteen)) + - [#7530](https://github.com/facebook/create-react-app/pull/7530) only load eslint config when EXTEND_ESLINT environment variable is specified/ do not swallow eslint config errors ([@n1ru4l](https://github.com/n1ru4l)) + - [#7742](https://github.com/facebook/create-react-app/pull/7742) set output.globalObject to 'this' ([@kentcdodds](https://github.com/kentcdodds)) + - [#7721](https://github.com/facebook/create-react-app/pull/7721) Add "entrypoints" key to asset manifest ([@samuelmeuli](https://github.com/samuelmeuli)) + - [#7562](https://github.com/facebook/create-react-app/pull/7562) enable .eslintignore again ([@igtm](https://github.com/igtm)) +- `react-dev-utils` + - [#6980](https://github.com/facebook/create-react-app/pull/6980) Stop hiding the column number of ESLint errors ([@justingrant](https://github.com/justingrant)) + +#### :memo: Documentation + +- [#7302](https://github.com/facebook/create-react-app/pull/7302) docs: note that 2 to 3 migration may require deletion of node_modules ([@kimpers](https://github.com/kimpers)) +- [#7757](https://github.com/facebook/create-react-app/pull/7757) Documentation typo fix: accessbile→accessible ([@tomer](https://github.com/tomer)) +- [#7601](https://github.com/facebook/create-react-app/pull/7601) [Documentation] Updated list of supported Jest config overrides ([@neilbryson](https://github.com/neilbryson)) +- [#7705](https://github.com/facebook/create-react-app/pull/7705) Update runtime chunk name separator in docs ([@samuelmeuli](https://github.com/samuelmeuli)) + +#### :house: Internal + +- `react-scripts` + - [#7752](https://github.com/facebook/create-react-app/pull/7752) Fix wrong letter casing ([@lewislbr](https://github.com/lewislbr)) +- `react-dev-utils`, `react-scripts` + - [#7707](https://github.com/facebook/create-react-app/pull/7707) Remove 'shortcut' link type before 'icon' ([@lewislbr](https://github.com/lewislbr)) + +#### :hammer: Underlying Tools + +- `react-scripts` + - [#7729](https://github.com/facebook/create-react-app/pull/7729) Remove switch case ([@andrelmlins](https://github.com/andrelmlins)) + +#### Committers: 19 + +- Alexandr Tovmach ([@alexandrtovmach](https://github.com/alexandrtovmach)) +- André Lins ([@andrelmlins](https://github.com/andrelmlins)) +- Ashrith Reddy ([@ashr81](https://github.com/ashr81)) +- Federico Zivolo ([@FezVrasta](https://github.com/FezVrasta)) +- Iguchi Tomokatsu ([@igtm](https://github.com/igtm)) +- Jacob M-G Evans ([@JacobMGEvans](https://github.com/JacobMGEvans)) +- Jake Moxey ([@jxom](https://github.com/jxom)) +- Justin Grant ([@justingrant](https://github.com/justingrant)) +- Kent C. Dodds ([@kentcdodds](https://github.com/kentcdodds)) +- Kim Persson ([@kimpers](https://github.com/kimpers)) +- Kyle Bebak ([@kylebebak](https://github.com/kylebebak)) +- Laurin Quast ([@n1ru4l](https://github.com/n1ru4l)) +- Lewis Llobera ([@lewislbr](https://github.com/lewislbr)) +- Rakan Nimer ([@rakannimer](https://github.com/rakannimer)) +- Reece Dunham ([@RDIL](https://github.com/RDIL)) +- Robert van Steen ([@rovansteen](https://github.com/rovansteen)) +- Samuel Meuli ([@samuelmeuli](https://github.com/samuelmeuli)) +- Tomer Cohen ([@tomer](https://github.com/tomer)) +- neilbryson ([@neilbryson](https://github.com/neilbryson)) + +### Migrating from 3.1.2 to 3.2.0 + +Inside any created project that has not been ejected, run: + +```sh +npm install --save --save-exact react-scripts@3.2.0 +``` + +or + +```sh +yarn add --exact react-scripts@3.2.0 +``` + ## 3.1.2 (2019-09-19) v3.1.2 is a maintenance release that includes minor bug fixes and documentation updates. diff --git a/packages/create-react-app/yarn.lock.cached b/packages/create-react-app/yarn.lock.cached index f688144b532..fb0d5bc0b9d 100644 --- a/packages/create-react-app/yarn.lock.cached +++ b/packages/create-react-app/yarn.lock.cached @@ -9,18 +9,18 @@ dependencies: "@babel/highlight" "^7.0.0" -"@babel/core@7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.5.5.tgz#17b2686ef0d6bc58f963dddd68ab669755582c30" - integrity sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg== +"@babel/core@7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.0.tgz#9b00f73554edd67bebc86df8303ef678be3d7b48" + integrity sha512-FuRhDRtsd6IptKpHXAa+4WPZYY2ZzgowkbLBecEDDSje1X/apG7jQM33or3NdOmjXBKWGOg4JmSiRfUfuTtHXw== dependencies: "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.5.5" - "@babel/helpers" "^7.5.5" - "@babel/parser" "^7.5.5" - "@babel/template" "^7.4.4" - "@babel/traverse" "^7.5.5" - "@babel/types" "^7.5.5" + "@babel/generator" "^7.6.0" + "@babel/helpers" "^7.6.0" + "@babel/parser" "^7.6.0" + "@babel/template" "^7.6.0" + "@babel/traverse" "^7.6.0" + "@babel/types" "^7.6.0" convert-source-map "^1.1.0" debug "^4.1.0" json5 "^2.1.0" @@ -29,17 +29,17 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@7.6.0", "@babel/core@^7.1.0", "@babel/core@^7.4.5": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.0.tgz#9b00f73554edd67bebc86df8303ef678be3d7b48" - integrity sha512-FuRhDRtsd6IptKpHXAa+4WPZYY2ZzgowkbLBecEDDSje1X/apG7jQM33or3NdOmjXBKWGOg4JmSiRfUfuTtHXw== +"@babel/core@^7.1.0", "@babel/core@^7.4.5": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.2.tgz#069a776e8d5e9eefff76236bc8845566bd31dd91" + integrity sha512-l8zto/fuoZIbncm+01p8zPSDZu/VuuJhAfA7d/AbzM09WR7iVhavvfNDYCNpo1VvLk6E6xgAoP9P+/EMJHuRkQ== dependencies: "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.6.0" - "@babel/helpers" "^7.6.0" - "@babel/parser" "^7.6.0" + "@babel/generator" "^7.6.2" + "@babel/helpers" "^7.6.2" + "@babel/parser" "^7.6.2" "@babel/template" "^7.6.0" - "@babel/traverse" "^7.6.0" + "@babel/traverse" "^7.6.2" "@babel/types" "^7.6.0" convert-source-map "^1.1.0" debug "^4.1.0" @@ -49,16 +49,15 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.4.0", "@babel/generator@^7.5.5", "@babel/generator@^7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.0.tgz#e2c21efbfd3293ad819a2359b448f002bfdfda56" - integrity sha512-Ms8Mo7YBdMMn1BYuNtKuP/z0TgEIhbcyB8HVR6PPNYp4P61lMsABiS4A3VG1qznjXVCf3r+fVHhm4efTYVsySA== +"@babel/generator@^7.4.0", "@babel/generator@^7.6.0", "@babel/generator@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.2.tgz#dac8a3c2df118334c2a29ff3446da1636a8f8c03" + integrity sha512-j8iHaIW4gGPnViaIHI7e9t/Hl8qLjERI6DcV9kEpAIDJsAOrcnXqRS7t+QbhL76pwbtqP+QCQLL0z1CyVmtjjQ== dependencies: "@babel/types" "^7.6.0" jsesc "^2.5.1" lodash "^4.17.13" source-map "^0.5.0" - trim-right "^1.0.1" "@babel/helper-annotate-as-pure@^7.0.0": version "7.0.0" @@ -92,7 +91,7 @@ "@babel/traverse" "^7.4.4" "@babel/types" "^7.4.4" -"@babel/helper-create-class-features-plugin@^7.4.4", "@babel/helper-create-class-features-plugin@^7.5.5", "@babel/helper-create-class-features-plugin@^7.6.0": +"@babel/helper-create-class-features-plugin@^7.5.5", "@babel/helper-create-class-features-plugin@^7.6.0": version "7.6.0" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.6.0.tgz#769711acca889be371e9bc2eb68641d55218021f" integrity sha512-O1QWBko4fzGju6VoVvrZg0RROCVifcLxiApnGP3OWfWzvxRZFCoBD81K5ur5e3bVY2Vf/5rIJm8cqPKn8HUJng== @@ -235,13 +234,13 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.2.0" -"@babel/helpers@^7.5.5", "@babel/helpers@^7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.6.0.tgz#21961d16c6a3c3ab597325c34c465c0887d31c6e" - integrity sha512-W9kao7OBleOjfXtFGgArGRX6eCP0UEcA2ZWEWNkJdRZnHhW4eEbeswbG3EwaRsnQUAEGWYgMq1HsIXuNNNy2eQ== +"@babel/helpers@^7.6.0", "@babel/helpers@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.6.2.tgz#681ffe489ea4dcc55f23ce469e58e59c1c045153" + integrity sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA== dependencies: "@babel/template" "^7.6.0" - "@babel/traverse" "^7.6.0" + "@babel/traverse" "^7.6.2" "@babel/types" "^7.6.0" "@babel/highlight@^7.0.0": @@ -253,10 +252,10 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.5.5", "@babel/parser@^7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.0.tgz#3e05d0647432a8326cb28d0de03895ae5a57f39b" - integrity sha512-+o2q111WEx4srBs7L9eJmcwi655eD8sXniLqMB93TBK9GrNzGrxDWSjiqz2hLU0Ha8MTXFIP0yd9fNdP+m43ZQ== +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.6.0", "@babel/parser@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.2.tgz#205e9c95e16ba3b8b96090677a67c9d6075b70a1" + integrity sha512-mdFqWrSPCmikBoaBYMuBulzTIKuXVPtEISFbRRVNwMWpCms/hmE2kRq0bblUHaNRKrjRlmVbx1sDHmjmRgD2Xg== "@babel/plugin-proposal-async-generator-functions@^7.2.0": version "7.2.0" @@ -275,12 +274,12 @@ "@babel/helper-create-class-features-plugin" "^7.5.5" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-proposal-decorators@7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.4.4.tgz#de9b2a1a8ab0196f378e2a82f10b6e2a36f21cc0" - integrity sha512-z7MpQz3XC/iQJWXH9y+MaWcLPNSMY9RQSthrLzak8R8hCj0fuyNk+Dzi9kfNe/JxxlWQ2g7wkABbgWjW36MTcw== +"@babel/plugin-proposal-decorators@7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.6.0.tgz#6659d2572a17d70abd68123e89a12a43d90aa30c" + integrity sha512-ZSyYw9trQI50sES6YxREXKu+4b7MAg6Qx2cvyDDYjP2Hpzd3FleOUwC9cqn1+za8d0A2ZU8SHujxFao956efUg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.4.4" + "@babel/helper-create-class-features-plugin" "^7.6.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-decorators" "^7.2.0" @@ -300,7 +299,7 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-json-strings" "^7.2.0" -"@babel/plugin-proposal-object-rest-spread@7.5.5", "@babel/plugin-proposal-object-rest-spread@^7.5.5": +"@babel/plugin-proposal-object-rest-spread@7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz#61939744f71ba76a3ae46b5eea18a54c16d22e58" integrity sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw== @@ -308,6 +307,14 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" +"@babel/plugin-proposal-object-rest-spread@^7.5.5", "@babel/plugin-proposal-object-rest-spread@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz#8ffccc8f3a6545e9f78988b6bf4fe881b88e8096" + integrity sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/plugin-proposal-optional-catch-binding@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" @@ -316,14 +323,14 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" -"@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz#501ffd9826c0b91da22690720722ac7cb1ca9c78" - integrity sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA== +"@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.6.2.tgz#05413762894f41bfe42b9a5e80919bd575dcc802" + integrity sha512-NxHETdmpeSCtiatMRYWVJo7266rrvAC3DTeG5exQBIH/fMIUK7ejDNznBbn3HQl/o9peymRRg7Yqkx6PdUXmMw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.5.4" + regexpu-core "^4.6.0" "@babel/plugin-syntax-async-generators@^7.2.0": version "7.2.0" @@ -411,10 +418,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-block-scoping@^7.5.5", "@babel/plugin-transform-block-scoping@^7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.0.tgz#c49e21228c4bbd4068a35667e6d951c75439b1dc" - integrity sha512-tIt4E23+kw6TgL/edACZwP1OUKrjOTyMrFMLoT5IOFrfMRabCgekjqFd5o6PaAMildBu46oFkekIdMuGkkPEpA== +"@babel/plugin-transform-block-scoping@^7.6.0", "@babel/plugin-transform-block-scoping@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.2.tgz#96c33ab97a9ae500cc6f5b19e04a7e6553360a79" + integrity sha512-zZT8ivau9LOQQaOGC7bQLQOT4XPkPXgN2ERfUgk1X8ql+mVkLc4E8eKk+FO3o0154kxzqenWCorfmEXpEZcrSQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" lodash "^4.17.13" @@ -440,28 +447,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-destructuring@7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz#f6c09fdfe3f94516ff074fe877db7bc9ef05855a" - integrity sha512-YbYgbd3TryYYLGyC7ZR+Tq8H/+bCmwoaxHfJHupom5ECstzbRLTch6gOQbhEY9Z4hiCNHEURgq06ykFv9JZ/QQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-destructuring@^7.5.0", "@babel/plugin-transform-destructuring@^7.6.0": +"@babel/plugin-transform-destructuring@7.6.0", "@babel/plugin-transform-destructuring@^7.6.0": version "7.6.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz#44bbe08b57f4480094d57d9ffbcd96d309075ba6" integrity sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz#361a148bc951444312c69446d76ed1ea8e4450c3" - integrity sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg== +"@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.6.2.tgz#44abb948b88f0199a627024e1508acaf8dc9b2f9" + integrity sha512-KGKT9aqKV+9YMZSkowzYoYEiHqgaDhGmPNZlZxX6UeHC4z30nC1J9IrZuGqbYFB1jaIGdv91ujpze0exiVK8bA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.5.4" + regexpu-core "^4.6.0" "@babel/plugin-transform-duplicate-keys@^7.5.0": version "7.5.0" @@ -524,7 +524,7 @@ "@babel/helper-plugin-utils" "^7.0.0" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-commonjs@^7.5.0", "@babel/plugin-transform-modules-commonjs@^7.6.0": +"@babel/plugin-transform-modules-commonjs@^7.6.0": version "7.6.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz#39dfe957de4420445f1fcf88b68a2e4aa4515486" integrity sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g== @@ -551,12 +551,12 @@ "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-named-capturing-groups-regex@^7.4.5", "@babel/plugin-transform-named-capturing-groups-regex@^7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.0.tgz#1e6e663097813bb4f53d42df0750cf28ad3bb3f1" - integrity sha512-jem7uytlmrRl3iCAuQyw8BpB4c4LWvSpvIeXKpMb+7j84lkx4m4mYr5ErAcmN5KM7B6BqrAvRGjBIbbzqCczew== +"@babel/plugin-transform-named-capturing-groups-regex@^7.6.0", "@babel/plugin-transform-named-capturing-groups-regex@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.2.tgz#c1ca0bb84b94f385ca302c3932e870b0fb0e522b" + integrity sha512-xBdB+XOs+lgbZc2/4F5BVDVcDNS4tcSKQc96KmlqLEAwz6tpYPEvPdmDfvVG0Ssn8lAhronaRs6Z6KSexIpK5g== dependencies: - regexp-tree "^0.1.13" + regexpu-core "^4.6.0" "@babel/plugin-transform-new-target@^7.4.4": version "7.4.4" @@ -643,10 +643,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-runtime@7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.5.5.tgz#a6331afbfc59189d2135b2e09474457a8e3d28bc" - integrity sha512-6Xmeidsun5rkwnGfMOp6/z9nSzWpHFNVr2Jx7kwoq4mVatQfQx5S56drBgEHF+XQbKOdIaOiMIINvp/kAwMN+w== +"@babel/plugin-transform-runtime@7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.6.0.tgz#85a3cce402b28586138e368fce20ab3019b9713e" + integrity sha512-Da8tMf7uClzwUm/pnJ1S93m/aRXmoYNDD7TkHua8xBDdaAs54uZpTWvEt6NGwmoVMb9mZbntfTqmG2oSzN/7Vg== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -660,10 +660,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-spread@^7.2.0": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406" - integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w== +"@babel/plugin-transform-spread@^7.2.0", "@babel/plugin-transform-spread@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz#fc77cf798b24b10c46e1b51b1b88c2bf661bb8dd" + integrity sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -690,7 +690,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-typescript@^7.3.2": +"@babel/plugin-transform-typescript@^7.6.0": version "7.6.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.6.0.tgz#48d78405f1aa856ebeea7288a48a19ed8da377a6" integrity sha512-yzw7EopOOr6saONZ3KA3lpizKnWRTe+rfBqg4AmQbSow7ik7fqmzrfIqt053osLwLE2AaTqGinLM2tl6+M/uog== @@ -699,19 +699,19 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-typescript" "^7.2.0" -"@babel/plugin-transform-unicode-regex@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz#ab4634bb4f14d36728bf5978322b35587787970f" - integrity sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA== +"@babel/plugin-transform-unicode-regex@^7.4.4", "@babel/plugin-transform-unicode-regex@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.6.2.tgz#b692aad888a7e8d8b1b214be6b9dc03d5031f698" + integrity sha512-orZI6cWlR3nk2YmYdb0gImrgCUwb5cBUwjf6Ks6dvNVvXERkwtJWOQaEOjPiu0Gu1Tq6Yq/hruCZZOOi9F34Dw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.5.4" + regexpu-core "^4.6.0" -"@babel/preset-env@7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.5.5.tgz#bc470b53acaa48df4b8db24a570d6da1fef53c9a" - integrity sha512-GMZQka/+INwsMz1A5UEql8tG015h5j/qjptpKY2gJ7giy8ohzU710YciJB5rcKsWGWHiW3RUnHib0E5/m3Tp3A== +"@babel/preset-env@7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.6.0.tgz#aae4141c506100bb2bfaa4ac2a5c12b395619e50" + integrity sha512-1efzxFv/TcPsNXlRhMzRnkBFMeIqBBgzwmZwlFDw5Ubj0AGLeufxugirwZmkkX/ayi3owsSqoQ4fw8LkfK9SYg== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -729,10 +729,10 @@ "@babel/plugin-transform-arrow-functions" "^7.2.0" "@babel/plugin-transform-async-to-generator" "^7.5.0" "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.5.5" + "@babel/plugin-transform-block-scoping" "^7.6.0" "@babel/plugin-transform-classes" "^7.5.5" "@babel/plugin-transform-computed-properties" "^7.2.0" - "@babel/plugin-transform-destructuring" "^7.5.0" + "@babel/plugin-transform-destructuring" "^7.6.0" "@babel/plugin-transform-dotall-regex" "^7.4.4" "@babel/plugin-transform-duplicate-keys" "^7.5.0" "@babel/plugin-transform-exponentiation-operator" "^7.2.0" @@ -741,10 +741,10 @@ "@babel/plugin-transform-literals" "^7.2.0" "@babel/plugin-transform-member-expression-literals" "^7.2.0" "@babel/plugin-transform-modules-amd" "^7.5.0" - "@babel/plugin-transform-modules-commonjs" "^7.5.0" + "@babel/plugin-transform-modules-commonjs" "^7.6.0" "@babel/plugin-transform-modules-systemjs" "^7.5.0" "@babel/plugin-transform-modules-umd" "^7.2.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.6.0" "@babel/plugin-transform-new-target" "^7.4.4" "@babel/plugin-transform-object-super" "^7.5.5" "@babel/plugin-transform-parameters" "^7.4.4" @@ -757,7 +757,7 @@ "@babel/plugin-transform-template-literals" "^7.4.4" "@babel/plugin-transform-typeof-symbol" "^7.2.0" "@babel/plugin-transform-unicode-regex" "^7.4.4" - "@babel/types" "^7.5.5" + "@babel/types" "^7.6.0" browserslist "^4.6.0" core-js-compat "^3.1.1" invariant "^2.2.2" @@ -765,18 +765,18 @@ semver "^5.5.0" "@babel/preset-env@^7.4.5": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.6.0.tgz#aae4141c506100bb2bfaa4ac2a5c12b395619e50" - integrity sha512-1efzxFv/TcPsNXlRhMzRnkBFMeIqBBgzwmZwlFDw5Ubj0AGLeufxugirwZmkkX/ayi3owsSqoQ4fw8LkfK9SYg== + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.6.2.tgz#abbb3ed785c7fe4220d4c82a53621d71fc0c75d3" + integrity sha512-Ru7+mfzy9M1/YTEtlDS8CD45jd22ngb9tXnn64DvQK3ooyqSw9K4K9DUWmYknTTVk4TqygL9dqCrZgm1HMea/Q== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-async-generator-functions" "^7.2.0" "@babel/plugin-proposal-dynamic-import" "^7.5.0" "@babel/plugin-proposal-json-strings" "^7.2.0" - "@babel/plugin-proposal-object-rest-spread" "^7.5.5" + "@babel/plugin-proposal-object-rest-spread" "^7.6.2" "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-proposal-unicode-property-regex" "^7.6.2" "@babel/plugin-syntax-async-generators" "^7.2.0" "@babel/plugin-syntax-dynamic-import" "^7.2.0" "@babel/plugin-syntax-json-strings" "^7.2.0" @@ -785,11 +785,11 @@ "@babel/plugin-transform-arrow-functions" "^7.2.0" "@babel/plugin-transform-async-to-generator" "^7.5.0" "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.6.0" + "@babel/plugin-transform-block-scoping" "^7.6.2" "@babel/plugin-transform-classes" "^7.5.5" "@babel/plugin-transform-computed-properties" "^7.2.0" "@babel/plugin-transform-destructuring" "^7.6.0" - "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.6.2" "@babel/plugin-transform-duplicate-keys" "^7.5.0" "@babel/plugin-transform-exponentiation-operator" "^7.2.0" "@babel/plugin-transform-for-of" "^7.4.4" @@ -800,7 +800,7 @@ "@babel/plugin-transform-modules-commonjs" "^7.6.0" "@babel/plugin-transform-modules-systemjs" "^7.5.0" "@babel/plugin-transform-modules-umd" "^7.2.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.6.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.6.2" "@babel/plugin-transform-new-target" "^7.4.4" "@babel/plugin-transform-object-super" "^7.5.5" "@babel/plugin-transform-parameters" "^7.4.4" @@ -808,11 +808,11 @@ "@babel/plugin-transform-regenerator" "^7.4.5" "@babel/plugin-transform-reserved-words" "^7.2.0" "@babel/plugin-transform-shorthand-properties" "^7.2.0" - "@babel/plugin-transform-spread" "^7.2.0" + "@babel/plugin-transform-spread" "^7.6.2" "@babel/plugin-transform-sticky-regex" "^7.2.0" "@babel/plugin-transform-template-literals" "^7.4.4" "@babel/plugin-transform-typeof-symbol" "^7.2.0" - "@babel/plugin-transform-unicode-regex" "^7.4.4" + "@babel/plugin-transform-unicode-regex" "^7.6.2" "@babel/types" "^7.6.0" browserslist "^4.6.0" core-js-compat "^3.1.1" @@ -831,25 +831,25 @@ "@babel/plugin-transform-react-jsx-self" "^7.0.0" "@babel/plugin-transform-react-jsx-source" "^7.0.0" -"@babel/preset-typescript@7.3.3": - version "7.3.3" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.3.3.tgz#88669911053fa16b2b276ea2ede2ca603b3f307a" - integrity sha512-mzMVuIP4lqtn4du2ynEfdO0+RYcslwrZiJHXu4MGaC1ctJiW2fyaeDrtjJGs7R/KebZ1sgowcIoWf4uRpEfKEg== +"@babel/preset-typescript@7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.6.0.tgz#25768cb8830280baf47c45ab1a519a9977498c98" + integrity sha512-4xKw3tTcCm0qApyT6PqM9qniseCE79xGHiUnNdKGdxNsGUc2X7WwZybqIpnTmoukg3nhPceI5KPNzNqLNeIJww== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-transform-typescript" "^7.3.2" + "@babel/plugin-transform-typescript" "^7.6.0" -"@babel/runtime@7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.5.5.tgz#74fba56d35efbeca444091c7850ccd494fd2f132" - integrity sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ== +"@babel/runtime@7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.6.0.tgz#4fc1d642a9fd0299754e8b5de62c631cf5568205" + integrity sha512-89eSBLJsxNxOERC0Op4vd+0Bqm6wRMqMbFtV3i0/fbaWw/mJ8Q3eBvgX0G4SyrOOLCtbu98HspF8o09MRT+KzQ== dependencies: regenerator-runtime "^0.13.2" "@babel/runtime@^7.0.0", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.2", "@babel/runtime@^7.4.5": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.6.0.tgz#4fc1d642a9fd0299754e8b5de62c631cf5568205" - integrity sha512-89eSBLJsxNxOERC0Op4vd+0Bqm6wRMqMbFtV3i0/fbaWw/mJ8Q3eBvgX0G4SyrOOLCtbu98HspF8o09MRT+KzQ== + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.6.2.tgz#c3d6e41b304ef10dcf13777a33e7694ec4a9a6dd" + integrity sha512-EXxN64agfUqqIGeEjI5dL5z0Sw0ZwWo1mLTi4mQowCZ42O59b7DRpZAnTC6OqdF28wMBMFKNb/4uFGrVaigSpg== dependencies: regenerator-runtime "^0.13.2" @@ -862,16 +862,16 @@ "@babel/parser" "^7.6.0" "@babel/types" "^7.6.0" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5", "@babel/traverse@^7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.0.tgz#389391d510f79be7ce2ddd6717be66d3fed4b516" - integrity sha512-93t52SaOBgml/xY74lsmt7xOR4ufYvhb5c5qiM6lu4J/dWGMAfAh6eKw4PjLes6DI6nQgearoxnFJk60YchpvQ== +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5", "@babel/traverse@^7.6.0", "@babel/traverse@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.2.tgz#b0e2bfd401d339ce0e6c05690206d1e11502ce2c" + integrity sha512-8fRE76xNwNttVEF2TwxJDGBLWthUkHWSldmfuBzVRmEDWOtu4XdINTgN7TDWzuLg4bbeIMLvfMFD9we5YcWkRQ== dependencies: "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.6.0" + "@babel/generator" "^7.6.2" "@babel/helper-function-name" "^7.1.0" "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/parser" "^7.6.0" + "@babel/parser" "^7.6.2" "@babel/types" "^7.6.0" debug "^4.1.0" globals "^11.1.0" @@ -905,9 +905,9 @@ integrity sha512-6It2EVfGskxZCQhuykrfnALg7oVeiI6KclWSmGDqB0AiInVrTGB9Jp9i4/Ad21u9Jde/voVQz6eFX/eSg/UsPA== "@hapi/address@2.x.x": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.1.tgz#61395b5ed94c4cb19c2dc4c85969cff3d40d583f" - integrity sha512-DYuHzu978pP1XW1GD3HGvLnAFjbQTIgc2+V153FGkbS2pgo9haigCdwBnUDrbhaOkgiJlbZvoEqDrcxSLHpiWA== + version "2.1.2" + resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.2.tgz#1c794cd6dbf2354d1eb1ef10e0303f573e1c7222" + integrity sha512-O4QDrx+JoGKZc6aN64L04vqa7e41tIiLU+OvKdcYaEMP97UttL0f9GIi9/0A4WAMx0uBd6SidDIhktZhgOcN8Q== "@hapi/bourne@1.x.x": version "1.3.2" @@ -915,9 +915,9 @@ integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== "@hapi/hoek@8.x.x": - version "8.2.4" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.2.4.tgz#684a14f4ca35d46f44abc87dfc696e5e4fe8a020" - integrity sha512-Ze5SDNt325yZvNO7s5C4fXDscjJ6dcqLFXJQ/M7dZRQCewuDj2iDUuBi6jLQt+APbW9RjjVEvLr35FXuOEqjow== + version "8.2.5" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.2.5.tgz#b307d3f1aced22e05bd6a2403c302eaebb577da3" + integrity sha512-rmGFzok1zR3xZKd5m3ihWdqafXFxvPHoQ/78+AG5URKbEbJiwBBfRgzbu+07W5f3+07JRshw6QqGbVmCp8ntig== "@hapi/joi@^15.0.0": version "15.1.1" @@ -930,9 +930,9 @@ "@hapi/topo" "3.x.x" "@hapi/topo@3.x.x": - version "3.1.3" - resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.3.tgz#c7a02e0d936596d29f184e6d7fdc07e8b5efce11" - integrity sha512-JmS9/vQK6dcUYn7wc2YZTqzIKubAQcJKu2KCKAru6es482U5RT5fP1EXCPtlXpiK7PR0On/kpQKI4fRKkzpZBQ== + version "3.1.4" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.4.tgz#42e2fe36f593d90ad258a08b582be128c141c45d" + integrity sha512-aVWQTOI9wBD6zawmOr6f+tdEIxQC8JXfQVLTjgGe8YEStAWGn/GNNVTobKJhbWKveQj2RyYF3oYbO9SC8/eOCA== dependencies: "@hapi/hoek" "8.x.x" @@ -1117,10 +1117,10 @@ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-4.2.0.tgz#310ec0775de808a6a2e4fd4268c245fd734c1165" integrity sha512-U9m870Kqm0ko8beHawRXLGLvSi/ZMrl89gJ5BNcT452fAjtF2p4uRzXkdzvGJJJYBgx7BmqlDjBN/eCp5AAX2w== -"@svgr/babel-plugin-svg-dynamic-title@^4.3.1": - version "4.3.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-4.3.1.tgz#646c2f5b5770c2fe318d6e51492344c3d62ddb63" - integrity sha512-p6z6JJroP989jHWcuraeWpzdejehTmLUpyC9smhTBWyPN0VVGe2phbYxpPTV7Vh8XzmFrcG55idrnfWn/2oQEw== +"@svgr/babel-plugin-svg-dynamic-title@^4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-4.3.3.tgz#2cdedd747e5b1b29ed4c241e46256aac8110dd93" + integrity sha512-w3Be6xUNdwgParsvxkkeZb545VhXEwjGMwExMVBIdPQJeyMQHqm9Msnb2a1teHBqUYL66qtwfhNkbj1iarCG7w== "@svgr/babel-plugin-svg-em-dimensions@^4.2.0": version "4.2.0" @@ -1137,26 +1137,26 @@ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-4.2.0.tgz#5f1e2f886b2c85c67e76da42f0f6be1b1767b697" integrity sha512-hYfYuZhQPCBVotABsXKSCfel2slf/yvJY8heTVX1PCTaq/IgASq1IyxPPKJ0chWREEKewIU/JMSsIGBtK1KKxw== -"@svgr/babel-preset@^4.3.1": - version "4.3.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-4.3.1.tgz#62ffcb85d756580e8ce608e9d2ac3b9063be9e28" - integrity sha512-rPFKLmyhlh6oeBv3j2vEAj2nd2QbWqpoJLKzBLjwQVt+d9aeXajVaPNEqrES2spjXKR4OxfgSs7U0NtmAEkr0Q== +"@svgr/babel-preset@^4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-4.3.3.tgz#a75d8c2f202ac0e5774e6bfc165d028b39a1316c" + integrity sha512-6PG80tdz4eAlYUN3g5GZiUjg2FMcp+Wn6rtnz5WJG9ITGEF1pmFdzq02597Hn0OmnQuCVaBYQE1OVFAnwOl+0A== dependencies: "@svgr/babel-plugin-add-jsx-attribute" "^4.2.0" "@svgr/babel-plugin-remove-jsx-attribute" "^4.2.0" "@svgr/babel-plugin-remove-jsx-empty-expression" "^4.2.0" "@svgr/babel-plugin-replace-jsx-attribute-value" "^4.2.0" - "@svgr/babel-plugin-svg-dynamic-title" "^4.3.1" + "@svgr/babel-plugin-svg-dynamic-title" "^4.3.3" "@svgr/babel-plugin-svg-em-dimensions" "^4.2.0" "@svgr/babel-plugin-transform-react-native-svg" "^4.2.0" "@svgr/babel-plugin-transform-svg-component" "^4.2.0" "@svgr/core@^4.3.2": - version "4.3.2" - resolved "https://registry.yarnpkg.com/@svgr/core/-/core-4.3.2.tgz#939c89be670ad79b762f4c063f213f0e02535f2e" - integrity sha512-N+tP5CLFd1hP9RpO83QJPZY3NL8AtrdqNbuhRgBkjE/49RnMrrRsFm1wY8pueUfAGvzn6tSXUq29o6ah8RuR5w== + version "4.3.3" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-4.3.3.tgz#b37b89d5b757dc66e8c74156d00c368338d24293" + integrity sha512-qNuGF1QON1626UCaZamWt5yedpgOytvLj5BQZe2j1k1B8DUG4OyugZyfEwBeXozCUwhLEpsrgPrE+eCu4fY17w== dependencies: - "@svgr/plugin-jsx" "^4.3.2" + "@svgr/plugin-jsx" "^4.3.3" camelcase "^5.3.1" cosmiconfig "^5.2.1" @@ -1167,13 +1167,13 @@ dependencies: "@babel/types" "^7.4.4" -"@svgr/plugin-jsx@^4.3.2": - version "4.3.2" - resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-4.3.2.tgz#ce9ddafc8cdd74da884c9f7af014afcf37f93d3c" - integrity sha512-+1GW32RvmNmCsOkMoclA/TppNjHPLMnNZG3/Ecscxawp051XJ2MkO09Hn11VcotdC2EPrDfT8pELGRo+kbZ1Eg== +"@svgr/plugin-jsx@^4.3.2", "@svgr/plugin-jsx@^4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-4.3.3.tgz#e2ba913dbdfbe85252a34db101abc7ebd50992fa" + integrity sha512-cLOCSpNWQnDB1/v+SUENHH7a0XY09bfuMKdq9+gYvtuwzC2rU4I0wKGFEp1i24holdQdwodCtDQdFtJiTCWc+w== dependencies: "@babel/core" "^7.4.5" - "@svgr/babel-preset" "^4.3.1" + "@svgr/babel-preset" "^4.3.3" "@svgr/hast-util-to-babel-ast" "^4.3.2" svg-parser "^2.0.0" @@ -1212,9 +1212,9 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.0.2.tgz#d2112a6b21fad600d7674274293c85dce0cb47fc" - integrity sha512-NHcOfab3Zw4q5sEE2COkpfXjoE7o+PmqD9DQW4koUT3roNxwziUdXGnRndMat/LJNUtePwn1TlP4do3uoe3KZQ== + version "7.6.0" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.0.tgz#f1ec1c104d1bb463556ecb724018ab788d0c172a" + integrity sha512-c1mZUu4up5cp9KROs/QAw0gTeHrw/x7m52LcnvMxxOZ03DmLwPV0MlGmlgzV3cnSdjhJOZsj7E7FHeioai+egw== dependencies: "@babel/types" "^7.0.0" @@ -1279,46 +1279,46 @@ integrity sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg== "@types/yargs@^13.0.0": - version "13.0.2" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.2.tgz#a64674fc0149574ecd90ba746e932b5a5f7b3653" - integrity sha512-lwwgizwk/bIIU+3ELORkyuOgDjCh7zuWDFqRtPPhhVgq9N1F7CvLNKg1TX4f2duwtKQ0p044Au9r1PLIXHrIzQ== + version "13.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.3.tgz#76482af3981d4412d65371a318f992d33464a380" + integrity sha512-K8/LfZq2duW33XW/tFwEAfnZlqIfVsoyRB3kfXdPXYhl0nfM8mmh7GS0jg7WrX2Dgq/0Ha/pR1PaR+BvmWwjiQ== dependencies: "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^2.2.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.3.0.tgz#6ead12c6b15a9b930430931e396e01a1fe181fcc" - integrity sha512-QgO/qmNye+rKsU7dan6pkBTSfpbyrHJidsw9bR3gZCrQNTB9eWQ5+UDkrrev/fu9xg6Qh7ebbx03IVuGnGRmEw== + version "2.3.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.3.2.tgz#7e112ca0bb29044d915baf10163a8199a20f7c69" + integrity sha512-tcnpksq1bXzcIRbYLeXkgp6l+ggEMXXUcl1wsSvL807fRtmvVQKygElwEUf4hBA76dNag3VAK1q2m3vd7qJaZA== dependencies: - "@typescript-eslint/experimental-utils" "2.3.0" + "@typescript-eslint/experimental-utils" "2.3.2" eslint-utils "^1.4.2" functional-red-black-tree "^1.0.1" regexpp "^2.0.1" tsutils "^3.17.1" -"@typescript-eslint/experimental-utils@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.3.0.tgz#19a8e1b8fcee7d7469f3b44691d91830568de140" - integrity sha512-ry+fgd0Hh33LyzS30bIhX/a1HJpvtnecjQjWxxsZTavrRa1ymdmX7tz+7lPrPAxB018jnNzwNtog6s3OhxPTAg== +"@typescript-eslint/experimental-utils@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.3.2.tgz#e50f31264507e6fec7b33840bb6af260c24f4ea8" + integrity sha512-t+JGdTT6dRbmvKDlhlVkEueoZa0fhJNfG6z2cpnRPLwm3VwYr2BjR//acJGC1Yza0I9ZNcDfRY7ubQEvvfG6Jg== dependencies: "@types/json-schema" "^7.0.3" - "@typescript-eslint/typescript-estree" "2.3.0" + "@typescript-eslint/typescript-estree" "2.3.2" eslint-scope "^5.0.0" "@typescript-eslint/parser@^2.2.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.3.0.tgz#d2df1d4bb8827e36125fb7c6274df1b4d4e614f0" - integrity sha512-Dc+LAtHts0yDuusxG0NVjGvrpPy2kZauxqPbfFs0fmcMB4JhNs+WwIDMFGWeKjbGoPt/SIUC9XJ7E0ZD/f8InQ== + version "2.3.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.3.2.tgz#e9b742e191cd1209930da469cde379591ad0af5b" + integrity sha512-nq1UQeNGdKdqdgF6Ww+Ov2OidWgiL96+JYdXXZ2rkP/OWyc6KMNSbs6MpRCpI8q+PmDa7hBnHNQIo7w/drYccA== dependencies: "@types/eslint-visitor-keys" "^1.0.0" - "@typescript-eslint/experimental-utils" "2.3.0" - "@typescript-eslint/typescript-estree" "2.3.0" + "@typescript-eslint/experimental-utils" "2.3.2" + "@typescript-eslint/typescript-estree" "2.3.2" eslint-visitor-keys "^1.1.0" -"@typescript-eslint/typescript-estree@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.3.0.tgz#fd8faff7e4c73795c65e5817c52f9038e33ef29d" - integrity sha512-WBxfwsTeCOsmQ7cLjow7lgysviBKUW34npShu7dxJYUQCbSG5nfZWZTgmQPKEc+3flpbSM7tjXjQOgETYp+njQ== +"@typescript-eslint/typescript-estree@2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.3.2.tgz#107414aa04e689fe6f7251eb63fb500217f2b7f4" + integrity sha512-eZNEAai16nwyhIVIEaWQlaUgAU3S9CkQ58qvK0+3IuSdLJD3W1PNuehQFMIhW/mTP1oFR9GNoTcLg7gtXz6lzA== dependencies: glob "^7.1.4" is-glob "^4.0.1" @@ -1482,9 +1482,9 @@ integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== abab@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.1.tgz#3fa17797032b71410ec372e11668f4b4ffc86a82" - integrity sha512-1zSbbCuoIjafKZ3mblY5ikvAb0ODUbqBnFuUb7f6uLeQhhGJ0vEV4ntmtxKLT2WgXCO94E07BjunsIw1jOMPZw== + version "2.0.2" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.2.tgz#a2fba1b122c69a85caa02d10f9270c7219709a9d" + integrity sha512-2scffjvioEmNz0OyDSLGWDfKCVwaKc6l9Pm9kOIREU13ClXZvHpg/nRL5xyjSSSLhOnXqft2HpsAzNEEA8cFFg== abbrev@1: version "1.1.1" @@ -1528,16 +1528,11 @@ acorn@^6.0.1, acorn@^6.0.4, acorn@^6.2.1: integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== acorn@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.0.0.tgz#26b8d1cd9a9b700350b71c0905546f64d1284e7a" - integrity sha512-PaF/MduxijYYt7unVGRuds1vBC9bFxbNf+VWqhOClfdgy7RlVkQqt610ig1/yxTgsDIfW1cWDel5EBbOy3jdtQ== - -address@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/address/-/address-1.1.0.tgz#ef8e047847fcd2c5b6f50c16965f924fd99fe709" - integrity sha512-4diPfzWbLEIElVG4AnqP+00SULlPzNuyJFNnmMrLgyaxG6tZXJ1sn7mjBu4fHrJE+Yp/jgylOweJn2xsLMFggQ== + version "7.1.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" + integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ== -address@^1.0.1: +address@1.1.2, address@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== @@ -1688,11 +1683,6 @@ array-equal@^1.0.0: resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= -array-filter@~0.0.0: - version "0.0.1" - resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" - integrity sha1-fajPLiZijtcygDWB/SH2fKzS7uw= - array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -1711,16 +1701,6 @@ array-includes@^3.0.3: define-properties "^1.1.2" es-abstract "^1.7.0" -array-map@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" - integrity sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI= - -array-reduce@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" - integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys= - array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" @@ -1938,10 +1918,10 @@ babel-plugin-macros@2.6.1: cosmiconfig "^5.2.0" resolve "^1.10.0" -babel-plugin-named-asset-import@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.3.tgz#9ba2f3ac4dc78b042651654f07e847adfe50667c" - integrity sha512-1XDRysF4894BUdMChT+2HHbtJYiO7zx5Be7U6bT8dISy7OdyETMGIAQBMPQCsY1YRf0xcubwnKKaDr5bk15JTA== +babel-plugin-named-asset-import@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.4.tgz#4a8fc30e9a3e2b1f5ed36883386ab2d84e1089bd" + integrity sha512-S6d+tEzc5Af1tKIMbsf2QirCcPdQ+mKUCY2H1nJj1DyA1ShwpsoxEOAwbWsG5gcXNV/olpvQd9vrUWRx4bnhpw== babel-plugin-syntax-object-rest-spread@^6.8.0: version "6.13.0" @@ -1969,24 +1949,24 @@ babel-preset-jest@^24.9.0: "@babel/plugin-syntax-object-rest-spread" "^7.0.0" babel-plugin-jest-hoist "^24.9.0" -babel-preset-react-app@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-9.0.1.tgz#16a2cf84363045b530b6a03460527a5c6eac42ba" - integrity sha512-v7MeY+QxdBhM9oU5uOQCIHLsErYkEbbjctXsb10II+KAnttbe0rvprvP785dRxfa9dI4ZbsGXsRU07Qdi5BtOw== +babel-preset-react-app@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-9.0.2.tgz#247d37e883d6d6f4b4691e5f23711bb2dd80567d" + integrity sha512-aXD+CTH8Chn8sNJr4tO/trWKqe5sSE4hdO76j9fhVezJSzmpWYWUSc5JoPmdSxADwef5kQFNGKXd433vvkd2VQ== dependencies: - "@babel/core" "7.5.5" + "@babel/core" "7.6.0" "@babel/plugin-proposal-class-properties" "7.5.5" - "@babel/plugin-proposal-decorators" "7.4.4" + "@babel/plugin-proposal-decorators" "7.6.0" "@babel/plugin-proposal-object-rest-spread" "7.5.5" "@babel/plugin-syntax-dynamic-import" "7.2.0" - "@babel/plugin-transform-destructuring" "7.5.0" + "@babel/plugin-transform-destructuring" "7.6.0" "@babel/plugin-transform-flow-strip-types" "7.4.4" "@babel/plugin-transform-react-display-name" "7.2.0" - "@babel/plugin-transform-runtime" "7.5.5" - "@babel/preset-env" "7.5.5" + "@babel/plugin-transform-runtime" "7.6.0" + "@babel/preset-env" "7.6.0" "@babel/preset-react" "7.0.0" - "@babel/preset-typescript" "7.3.3" - "@babel/runtime" "7.5.5" + "@babel/preset-typescript" "7.6.0" + "@babel/runtime" "7.6.0" babel-plugin-dynamic-import-node "2.3.0" babel-plugin-macros "2.6.1" babel-plugin-transform-react-remove-prop-types "0.4.24" @@ -2050,9 +2030,9 @@ binary-extensions@^1.0.0: integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== bluebird@^3.5.5: - version "3.5.5" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" - integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== + version "3.7.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.0.tgz#56a6a886e03f6ae577cffedeb524f8f2450293cf" + integrity sha512-aBQ1FxIa7kSWCcmKHlcHFlT2jt6J/l4FzC7KcPELkOJOsPOb/bccdhmIrKDfXhwFrmc7vDoDrrepFvGqjyXGJg== bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" @@ -2192,16 +2172,7 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@4.6.6: - version "4.6.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.6.tgz#6e4bf467cde520bc9dbdf3747dafa03531cec453" - integrity sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA== - dependencies: - caniuse-lite "^1.0.30000984" - electron-to-chromium "^1.3.191" - node-releases "^1.1.25" - -browserslist@^4.0.0, browserslist@^4.1.1, browserslist@^4.6.0, browserslist@^4.6.3, browserslist@^4.6.4, browserslist@^4.6.6: +browserslist@4.7.0, browserslist@^4.0.0, browserslist@^4.1.1, browserslist@^4.6.0, browserslist@^4.6.3, browserslist@^4.6.4, browserslist@^4.6.6: version "4.7.0" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.0.tgz#9ee89225ffc07db03409f2fee524dc8227458a17" integrity sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA== @@ -2354,10 +2325,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30000984, caniuse-lite@^1.0.30000989: - version "1.0.30000989" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz#b9193e293ccf7e4426c5245134b8f2a56c0ac4b9" - integrity sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30000989: + version "1.0.30000998" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000998.tgz#7227a8046841e7d01e156ae7227a504d065f6744" + integrity sha512-8Tj5sPZR9kMHeDD9SZXIVr5m9ofufLLCG2Y4QwQrH18GIwG+kCc+zYdlR036ZRkuKjVVetyxeAgGA1xF7XdmzQ== capture-exit@^2.0.0: version "2.0.0" @@ -2421,9 +2392,9 @@ chokidar@^2.0.0, chokidar@^2.0.2, chokidar@^2.0.4: fsevents "^1.2.7" chownr@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6" - integrity sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A== + version "1.1.3" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" + integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== chrome-trace-event@^1.0.2: version "1.0.2" @@ -2585,9 +2556,9 @@ commander@2.17.x: integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== commander@^2.11.0, commander@^2.20.0, commander@~2.20.0: - version "2.20.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" - integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== + version "2.20.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.1.tgz#3863ce3ca92d0831dcf2a102f5fb4b5926afd0f9" + integrity sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg== commander@~2.19.0: version "2.19.0" @@ -2651,10 +2622,10 @@ concat-stream@^1.5.0: readable-stream "^2.2.2" typedarray "^0.0.6" -confusing-browser-globals@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.8.tgz#93ffec1f82a6e2bf2bc36769cc3a92fa20e502f3" - integrity sha512-lI7asCibVJ6Qd3FGU7mu4sfG4try4LX3+GVS+Gv8UlrEf2AeW57piecapnog2UHZSbcX/P/1UDWVaTsblowlZg== +confusing-browser-globals@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz#72bc13b483c0276801681871d4898516f8f54fdd" + integrity sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw== connect-history-api-fallback@^1.3.0: version "1.6.0" @@ -2742,10 +2713,10 @@ core-js-compat@^3.1.1: browserslist "^4.6.6" semver "^6.3.0" -core-js@3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.1.4.tgz#3a2837fc48e582e1ae25907afcd6cf03b0cc7a07" - integrity sha512-YNZN8lt82XIMLnLirj9MhKDFZHalwzzrL9YLt6eb0T5D0EDl4IQ90IGkua8mHbnxNrkj1d8hbdizMc0Qmg1WnQ== +core-js@3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.2.1.tgz#cd41f38534da6cc59f7db050fe67307de9868b09" + integrity sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw== core-js@^2.4.0: version "2.6.9" @@ -3409,10 +3380,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.191, electron-to-chromium@^1.3.247: - version "1.3.262" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.262.tgz#8022933e46e5a2c7b0fd1565d215872326520a7c" - integrity sha512-YFr53qZWr2pWkiTUorWEhAweujdf0ALiUp8VkNa0WGtbMVR+kZ8jNy3VTCemLsA4sT6+srCqehNn8TEAD0Ngrw== +electron-to-chromium@^1.3.247: + version "1.3.273" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.273.tgz#94872d6823219f2812f2e35a2ce2a7d03c1eaa3f" + integrity sha512-0kUppiHQvHEENHh+nTtvTt4eXMwcPyWmMaj73GPrSEm3ldKhmmHuOH6IjrmuW6YmyS/fpXcLvMQLNVpqRhpNWw== elliptic@^6.0.0: version "6.5.1" @@ -3443,9 +3414,9 @@ encodeurl@~1.0.2: integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" - integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" @@ -3483,9 +3454,9 @@ error-ex@^1.2.0, error-ex@^1.3.1: is-arrayish "^0.2.1" es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.5.1, es-abstract@^1.7.0: - version "1.14.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.14.2.tgz#7ce108fad83068c8783c3cdf62e504e084d8c497" - integrity sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg== + version "1.15.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.15.0.tgz#8884928ec7e40a79e3c9bc812d37d10c8b24cc57" + integrity sha512-bhkEqWJ2t2lMeaJDuk7okMkJWI/yqgH/EoGwpcvv0XW9RWQsRspI4wt6xuyuvMvvQE3gg/D9HXppgk21w78GyQ== dependencies: es-to-primitive "^1.2.0" function-bind "^1.1.1" @@ -3495,8 +3466,8 @@ es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.5.1, es-abstract@^1.7.0 is-regex "^1.0.4" object-inspect "^1.6.0" object-keys "^1.1.1" - string.prototype.trimleft "^2.0.0" - string.prototype.trimright "^2.0.0" + string.prototype.trimleft "^2.1.0" + string.prototype.trimright "^2.1.0" es-to-primitive@^1.2.0: version "1.2.0" @@ -3555,12 +3526,12 @@ escodegen@^1.11.0, escodegen@^1.9.1: optionalDependencies: source-map "~0.6.1" -eslint-config-react-app@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-5.0.1.tgz#5f3d666ba3ee3cb384eb943e260e868f6c72251b" - integrity sha512-GYXP3F/0PSHlYfGHhahqnJze8rYKxzXgrzXVqRRd4rDO40ga4NA3aHM7/HKbwceDN0/C1Ij3BoAWFawJgRbXEw== +eslint-config-react-app@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-5.0.2.tgz#df40d73a1402986030680c040bbee520db5a32a4" + integrity sha512-VhlESAQM83uULJ9jsvcKxx2Ab0yrmjUt8kDz5DyhTQufqWE0ssAnejlWri5LXv25xoXfdqOyeDPdfJS9dXKagQ== dependencies: - confusing-browser-globals "^1.0.8" + confusing-browser-globals "^1.0.9" eslint-import-resolver-node@^0.3.2: version "0.3.2" @@ -3570,15 +3541,16 @@ eslint-import-resolver-node@^0.3.2: debug "^2.6.9" resolve "^1.5.0" -eslint-loader@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-3.0.0.tgz#fb70bc2d552a674f43f07f5e6575083e565e790d" - integrity sha512-rdxyQ0i9VlhwVlR6oEzrIft8WNKYSD2/cOAJ1YVH/F76gAta7Zv1Dr5xJOUyx0fAsHB5cKNz9hwlUVLMFsQlPA== +eslint-loader@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-3.0.2.tgz#5a627316a51d6f41d357b9f6f0554e91506cdd6e" + integrity sha512-S5VnD+UpVY1PyYRqeBd/4pgsmkvSokbHqTXAQMpvCyRr3XN2tvSLo9spm2nEpqQqh9dezw3os/0zWihLeOg2Rw== dependencies: + fs-extra "^8.1.0" loader-fs-cache "^1.0.2" loader-utils "^1.2.3" object-hash "^1.3.1" - schema-utils "^2.1.0" + schema-utils "^2.2.0" eslint-module-utils@^2.4.0: version "2.4.1" @@ -3676,9 +3648,9 @@ eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== eslint@^6.1.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.4.0.tgz#5aa9227c3fbe921982b2eda94ba0d7fae858611a" - integrity sha512-WTVEzK3lSFoXUovDHEbkJqCVPEPwbhCq4trDktNI6ygs7aO41d4cDT0JFAT5MivzZeVLWlg7vHL+bgrQv/t3vA== + version "6.5.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.5.1.tgz#828e4c469697d43bb586144be152198b91e96ed6" + integrity sha512-32h99BoLYStT1iq1v2P9uwpyznQ4M2jRiFB6acitKz52Gqn+vPaMDUTB1bYi1WN4Nquj2w+t+bimYUG83DC55A== dependencies: "@babel/code-frame" "^7.0.0" ajv "^6.10.0" @@ -4193,6 +4165,15 @@ fs-extra@^4.0.2: jsonfile "^4.0.0" universalify "^0.1.0" +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-minipass@^1.2.5: version "1.2.7" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" @@ -4290,9 +4271,9 @@ glob-parent@^3.1.0: path-dirname "^1.0.0" glob-parent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.0.0.tgz#1dc99f0f39b006d3e92c2c284068382f0c20e954" - integrity sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg== + version "5.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" + integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== dependencies: is-glob "^4.0.1" @@ -4358,7 +4339,7 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.2" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== @@ -4382,9 +4363,9 @@ handle-thing@^2.0.0: integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== handlebars@^4.1.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.2.0.tgz#57ce8d2175b9bbb3d8b3cf3e4217b1aec8ddcb2e" - integrity sha512-Kb4xn5Qh1cxAKvQnzNWZ512DhABzyFNmsaJf3OAkWNa4NkaqWcNI8Tao8Tasi0/F4JD9oyG0YxuFyvyR57d+Gw== + version "4.4.2" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.4.2.tgz#8810a9821a9d6d52cb2f57d326d6ce7c3dfe741d" + integrity sha512-cIv17+GhL8pHHnRJzGu2wwcthL5sb8uDKBHvZ2Dtu5s1YNt0ljbzKbamnc+gr69y7bzwQiBdr5+hOpRd5pnOdg== dependencies: neo-async "^2.6.0" optimist "^0.6.1" @@ -5734,9 +5715,9 @@ json5@^1.0.1: minimist "^1.2.0" json5@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" - integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== + version "2.1.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" + integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== dependencies: minimist "^1.2.0" @@ -6128,9 +6109,9 @@ mime-db@1.40.0: integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== "mime-db@>= 1.40.0 < 2": - version "1.41.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.41.0.tgz#9110408e1f6aa1b34aef51f2c9df3caddf46b6a0" - integrity sha512-B5gxBI+2K431XW8C2rcc/lhppbuji67nf9v39eH8pkWoZDxnAL0PxdpH32KYRScniF8qDHBDlI+ipgg5WrCUYw== + version "1.42.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.42.0.tgz#3e252907b4c7adb906597b4b65636272cf9e7bac" + integrity sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ== mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.24" @@ -6201,20 +6182,20 @@ minimist@~0.0.1: resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= -minipass@^2.2.1, minipass@^2.6.0, minipass@^2.6.4: - version "2.6.5" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.6.5.tgz#1c245f9f2897f70fd4a219066261ce6c29f80b18" - integrity sha512-ewSKOPFH9blOLXx0YSE+mbrNMBFPS+11a2b03QZ+P4LVrUHW/GAlqeYC7DBknDyMWkHzrzTpDhUvy7MUxqyrPA== +minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== dependencies: safe-buffer "^5.1.2" yallist "^3.0.0" minizlib@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.2.tgz#6f0ccc82fa53e1bf2ff145f220d2da9fa6e3a166" - integrity sha512-hR3At21uSrsjjDTWrbu0IMLTpnkpv8IIMFDFaoz43Tmu4LkmAXfH44vNNzpTnf+OAQQCHrb91y/wc2J4x5XgSQ== + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== dependencies: - minipass "^2.2.1" + minipass "^2.9.0" mississippi@^3.0.0: version "3.0.0" @@ -6363,10 +6344,10 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" -node-forge@0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.8.2.tgz#b4bcc59fb12ce77a8825fc6a783dfe3182499c5a" - integrity sha512-mXQ9GBq1N3uDCyV1pdSzgIguwgtVpM7f5/5J4ipz12PKWElmPpVWLDuWl8iXmhysr21+WmX/OJ5UKx82wjomgg== +node-forge@0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" + integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== node-int64@^0.4.0: version "0.4.0" @@ -6434,10 +6415,10 @@ node-pre-gyp@^0.12.0: semver "^5.3.0" tar "^4" -node-releases@^1.1.25, node-releases@^1.1.29: - version "1.1.32" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.32.tgz#485b35c1bf9b4d8baa105d782f8ca731e518276e" - integrity sha512-VhVknkitq8dqtWoluagsGPn3dxTvN9fwgR59fV3D7sLBHe0JfDramsMI8n8mY//ccq/Kkrf8ZRHRpsyVZ3qw1A== +node-releases@^1.1.29: + version "1.1.33" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.33.tgz#349f10291234624574f44cf32b7de259bf028303" + integrity sha512-I0V30bWQEoHb+10W8oedVoUrdjW5wIkYm0w7vvcrPO95pZY738m1k77GF5sO0vKg5eXYg9oGtrMAETbgZGm11A== dependencies: semver "^5.3.0" @@ -7968,26 +7949,26 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-app-polyfill@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-1.0.2.tgz#2a51175885c88245a2a356dc46df29f38ec9f060" - integrity sha512-yZcpLnIr0FOIzrOOz9JC37NWAWEuCaQWmYn9EWjEzlCW4cOmA5MkT5L3iP8QuUeFnoqVCTJgjIWYbXEJgNXhGA== +react-app-polyfill@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-1.0.3.tgz#bd7030ebf66569f3aece03e39ab85ca700d8d0f6" + integrity sha512-ICvAU2vtO0k+kU0oCS7L7btUcAReTddvEiRiJDmAKc+d98Fy9Z1g6cjkdcKyfLWwopzBsUMcDwxoiNtrtLMs0Q== dependencies: - core-js "3.1.4" + core-js "3.2.1" object-assign "4.1.1" promise "8.0.3" raf "3.4.1" regenerator-runtime "0.13.3" whatwg-fetch "3.0.0" -react-dev-utils@^9.0.3: - version "9.0.3" - resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-9.0.3.tgz#7607455587abb84599451460eb37cef0b684131a" - integrity sha512-OyInhcwsvycQ3Zr2pQN+HV4gtRXrky5mJXIy4HnqrWa+mI624xfYfqGuC9dYbxp4Qq3YZzP8GSGQjv0AgNU15w== +react-dev-utils@^9.0.4: + version "9.0.4" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-9.0.4.tgz#5c71a8e8afdec0232c44d4e049d21baa437a92af" + integrity sha512-VwR+mBUXPLdYk/rOz6s6qpasIFGd7GW0KXd/3bih+/qGcMQvPG19XxtjDMtiAg0zWiFwp1ugCzAjLThbzFjVqw== dependencies: "@babel/code-frame" "7.5.5" - address "1.1.0" - browserslist "4.6.6" + address "1.1.2" + browserslist "4.7.0" chalk "2.4.2" cross-spawn "6.0.5" detect-port-alt "1.1.6" @@ -8004,22 +7985,22 @@ react-dev-utils@^9.0.3: loader-utils "1.2.3" open "^6.3.0" pkg-up "2.0.0" - react-error-overlay "^6.0.1" + react-error-overlay "^6.0.2" recursive-readdir "2.2.2" - shell-quote "1.6.1" - sockjs-client "1.3.0" + shell-quote "1.7.2" + sockjs-client "1.4.0" strip-ansi "5.2.0" text-table "0.2.0" -react-error-overlay@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.1.tgz#b8d3cf9bb991c02883225c48044cb3ee20413e0f" - integrity sha512-V9yoTr6MeZXPPd4nV/05eCBvGH9cGzc52FN8fs0O0TVQ3HYYf1n7EgZVtHbldRq5xU9zEzoXIITjYNIfxDDdUw== +react-error-overlay@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.2.tgz#642bd6157c6a4b6e9ca4a816f7ed30b868c47f81" + integrity sha512-DHRuRk3K4Lg9obI6J4Y+nKvtwjasYRU9CFL3ud42x9YJG1HbQjSNublapC/WBJOA726gNUbqbj0U2df9+uzspQ== react-is@^16.8.1, react-is@^16.8.4: - version "16.9.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.9.0.tgz#21ca9561399aad0ff1a7701c01683e8ca981edcb" - integrity sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw== + version "16.10.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.10.1.tgz#0612786bf19df406502d935494f0450b40b8294f" + integrity sha512-BXUMf9sIOPXXZWqr7+c5SeOKJykyVr2u0UDzEf4LNGc6taGkQe1A9DFD07umCIXz45RLr9oAAwZbAJ0Pkknfaw== read-pkg-up@^2.0.0: version "2.0.0" @@ -8142,11 +8123,6 @@ regex-parser@2.2.10: resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.10.tgz#9e66a8f73d89a107616e63b39d4deddfee912b37" integrity sha512-8t6074A68gHfU8Neftl0Le6KTDwfGAj7IyjPIMSfikI2wJUTHDMaIq42bUsfVnj8mhx0R+45rdUXHGpN164avA== -regexp-tree@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.13.tgz#5b19ab9377edc68bc3679256840bb29afc158d7f" - integrity sha512-hwdV/GQY5F8ReLZWO+W1SRoN5YfpOKY6852+tBFcma72DKBIcHjPRIlIvQN35bCOljuAfP2G2iB0FC/w236mUw== - regexp.prototype.flags@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c" @@ -8159,7 +8135,7 @@ regexpp@^2.0.1: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== -regexpu-core@^4.5.4: +regexpu-core@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== @@ -8479,10 +8455,10 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.0.0, schema-utils@^2.0.1, schema-utils@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.2.0.tgz#48a065ce219e0cacf4631473159037b2c1ae82da" - integrity sha512-5EwsCNhfFTZvUreQhx/4vVQpJ/lnCAkgoIHLhSpp4ZirE+4hzFvdJi0FMub6hxbFVBJYSpeVVmon+2e7uEGRrA== +schema-utils@^2.0.0, schema-utils@^2.0.1, schema-utils@^2.2.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.4.1.tgz#e89ade5d056dc8bcaca377574bb4a9c4e1b8be56" + integrity sha512-RqYLpkPZX5Oc3fw/kHHHyP56fg5Y+XBpIpV8nCg0znIALfq3OH+Ea9Hfeac9BAMwG5IICltiZ0vxFvJQONfA5w== dependencies: ajv "^6.10.2" ajv-keywords "^3.4.1" @@ -8493,11 +8469,11 @@ select-hose@^2.0.0: integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= selfsigned@^1.9.1: - version "1.10.6" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.6.tgz#7b3cd37ed9c2034261a173af1a1aae27d8169b67" - integrity sha512-i3+CeqxL7DpAazgVpAGdKMwHuL63B5nhJMh9NQ7xmChGkA3jNFflq6Jyo1LLJYcr3idWiNOPWHCrm4zMayLG4w== + version "1.10.7" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b" + integrity sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA== dependencies: - node-forge "0.8.2" + node-forge "0.9.0" "semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: version "5.7.1" @@ -8623,15 +8599,10 @@ shebang-regex@^1.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= -shell-quote@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" - integrity sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c= - dependencies: - array-filter "~0.0.0" - array-map "~0.0.0" - array-reduce "~0.0.0" - jsonify "~0.0.0" +shell-quote@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== shellwords@^0.1.1: version "0.1.1" @@ -8721,6 +8692,18 @@ sockjs-client@1.3.0: json3 "^3.3.2" url-parse "^1.4.3" +sockjs-client@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" + integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== + dependencies: + debug "^3.2.5" + eventsource "^1.0.7" + faye-websocket "~0.11.1" + inherits "^2.0.3" + json3 "^3.3.2" + url-parse "^1.4.3" + sockjs@0.3.19: version "0.3.19" resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" @@ -8965,7 +8948,7 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string.prototype.trimleft@^2.0.0: +string.prototype.trimleft@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw== @@ -8973,7 +8956,7 @@ string.prototype.trimleft@^2.0.0: define-properties "^1.1.3" function-bind "^1.1.1" -string.prototype.trimright@^2.0.0: +string.prototype.trimright@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg== @@ -9134,13 +9117,13 @@ tapable@^1.0.0, tapable@^1.1.0, tapable@^1.1.3: integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== tar@^4: - version "4.4.11" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.11.tgz#7ac09801445a3cf74445ed27499136b5240ffb73" - integrity sha512-iI4zh3ktLJKaDNZKZc+fUONiQrSn9HkCFzamtb7k8FFmVilHVob7QsLX/VySAW8lAviMzMbFw4QtFb4errwgYA== + version "4.4.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" + integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== dependencies: chownr "^1.1.1" fs-minipass "^1.2.5" - minipass "^2.6.4" + minipass "^2.8.6" minizlib "^1.2.1" mkdirp "^0.5.0" safe-buffer "^5.1.2" @@ -9162,9 +9145,9 @@ terser-webpack-plugin@1.4.1, terser-webpack-plugin@^1.4.1: worker-farm "^1.7.0" terser@^4.1.2: - version "4.3.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.3.1.tgz#09820bcb3398299c4b48d9a86aefc65127d0ed65" - integrity sha512-pnzH6dnFEsR2aa2SJaKb1uSCl3QmIsJ8dEkj0Fky+2AwMMcC9doMqLOQIH6wVTEKaVfKVvLSk5qxPBEZT9mywg== + version "4.3.4" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.3.4.tgz#ad91bade95619e3434685d69efa621a5af5f877d" + integrity sha512-Kcrn3RiW8NtHBP0ssOAzwa2MsIRQ8lJWiBG/K7JgqPlomA3mtb2DEmp4/hrUA+Jujx+WZ02zqd7GYD+QRBB/2Q== dependencies: commander "^2.20.0" source-map "~0.6.1" @@ -9295,11 +9278,6 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= - ts-pnp@1.1.4, ts-pnp@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.1.4.tgz#ae27126960ebaefb874c6d7fa4729729ab200d90" @@ -9355,9 +9333,9 @@ type-is@~1.6.17, type-is@~1.6.18: mime-types "~2.1.24" type@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/type/-/type-1.0.3.tgz#16f5d39f27a2d28d86e48f8981859e9d3296c179" - integrity sha512-51IMtNfVcee8+9GJvj0spSuFcZHe9vSib6Xtgsny1Km9ugyz2mbS08I3rsUIRYgJohFRFU1160sgRodYz378Hg== + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== typedarray@^0.0.6: version "0.0.6" @@ -9636,9 +9614,9 @@ webidl-conversions@^4.0.2: integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== webpack-dev-middleware@^3.5.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.1.tgz#1167aea02afa034489869b8368fe9fed1aea7d09" - integrity sha512-5MWu9SH1z3hY7oHOV6Kbkz5x7hXbxK56mGHNqHTe6d+ewxOwKUxoUJBs7QIaJb33lPjl9bJZ3X0vCoooUzC36A== + version "3.7.2" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" + integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== dependencies: memory-fs "^0.4.1" mime "^2.4.4" @@ -9690,13 +9668,14 @@ webpack-log@^2.0.0: ansi-colors "^3.0.0" uuid "^3.3.2" -webpack-manifest-plugin@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-2.0.4.tgz#e4ca2999b09557716b8ba4475fb79fab5986f0cd" - integrity sha512-nejhOHexXDBKQOj/5v5IZSfCeTO3x1Dt1RZEcGfBSul891X/eLIcIVH31gwxPDdsi2Z8LKKFGpM4w9+oTBOSCg== +webpack-manifest-plugin@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-2.1.1.tgz#6b3e280327815b83152c79f42d0ca13b665773c4" + integrity sha512-2zqJ6mvc3yoiqfDjghAIpljhLSDh/G7vqGrzYcYqqRCd/ZZZCAuc/YPE5xG0LGpLgDJRhUNV1H+znyyhIxahzA== dependencies: fs-extra "^7.0.0" lodash ">=3.5 <5" + object.entries "^1.1.0" tapable "^1.0.0" webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1: @@ -9707,10 +9686,10 @@ webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@4.40.2: - version "4.40.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.40.2.tgz#d21433d250f900bf0facbabe8f50d585b2dc30a7" - integrity sha512-5nIvteTDCUws2DVvP9Qe+JPla7kWPPIDFZv55To7IycHWZ+Z5qBdaBYPyuXWdhggTufZkQwfIK+5rKQTVovm2A== +webpack@4.41.0: + version "4.41.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.0.tgz#db6a254bde671769f7c14e90a1a55e73602fc70b" + integrity sha512-yNV98U4r7wX1VJAj5kyMsu36T8RPPQntcb5fJLOsMz/pt/WrKC0Vp1bAlqPLkA1LegSwQwf6P+kAbyhRKVQ72g== dependencies: "@webassemblyjs/ast" "1.8.5" "@webassemblyjs/helper-module-context" "1.8.5" @@ -10041,9 +10020,9 @@ xtend@^4.0.0, xtend@~4.0.1: integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" - integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yargs-parser@^10.1.0: version "10.1.0" From 7fae307aefe74282f2ffc98e8f1f401ddf5fab3f Mon Sep 17 00:00:00 2001 From: Ian Sutherland Date: Wed, 2 Oct 2019 22:18:22 -0600 Subject: [PATCH 0800/1249] Publish - create-react-app@3.2.0 - react-app-polyfill@1.0.4 - react-dev-utils@9.1.0 - react-error-overlay@6.0.3 - react-scripts@3.2.0 --- packages/create-react-app/package.json | 2 +- packages/react-app-polyfill/package.json | 2 +- packages/react-dev-utils/package.json | 4 ++-- packages/react-error-overlay/package.json | 4 ++-- packages/react-scripts/package.json | 6 +++--- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/create-react-app/package.json b/packages/create-react-app/package.json index 453b7c63bff..15172feebac 100644 --- a/packages/create-react-app/package.json +++ b/packages/create-react-app/package.json @@ -1,6 +1,6 @@ { "name": "create-react-app", - "version": "3.1.2", + "version": "3.2.0", "keywords": [ "react" ], diff --git a/packages/react-app-polyfill/package.json b/packages/react-app-polyfill/package.json index 5bb05e7250b..89f5eb387bf 100644 --- a/packages/react-app-polyfill/package.json +++ b/packages/react-app-polyfill/package.json @@ -1,6 +1,6 @@ { "name": "react-app-polyfill", - "version": "1.0.3", + "version": "1.0.4", "description": "Polyfills for various browsers including commonly used language features", "repository": { "type": "git", diff --git a/packages/react-dev-utils/package.json b/packages/react-dev-utils/package.json index 168c2ac978c..9b399e19792 100644 --- a/packages/react-dev-utils/package.json +++ b/packages/react-dev-utils/package.json @@ -1,6 +1,6 @@ { "name": "react-dev-utils", - "version": "9.0.4", + "version": "9.1.0", "description": "Webpack utilities used by Create React App", "repository": { "type": "git", @@ -69,7 +69,7 @@ "loader-utils": "1.2.3", "open": "^6.3.0", "pkg-up": "2.0.0", - "react-error-overlay": "^6.0.2", + "react-error-overlay": "^6.0.3", "recursive-readdir": "2.2.2", "shell-quote": "1.7.2", "sockjs-client": "1.4.0", diff --git a/packages/react-error-overlay/package.json b/packages/react-error-overlay/package.json index 6eb5f2e84a0..06798a41fc3 100644 --- a/packages/react-error-overlay/package.json +++ b/packages/react-error-overlay/package.json @@ -1,6 +1,6 @@ { "name": "react-error-overlay", - "version": "6.0.2", + "version": "6.0.3", "description": "An overlay for displaying stack frames.", "main": "lib/index.js", "sideEffects": false, @@ -58,7 +58,7 @@ "promise": "8.0.3", "raw-loader": "^1.0.0", "react": "^16.8.4", - "react-app-polyfill": "^1.0.3", + "react-app-polyfill": "^1.0.4", "react-dom": "^16.8.4", "rimraf": "^2.6.3", "settle-promise": "1.0.0", diff --git a/packages/react-scripts/package.json b/packages/react-scripts/package.json index a1fd36a2112..a21817920a7 100644 --- a/packages/react-scripts/package.json +++ b/packages/react-scripts/package.json @@ -1,6 +1,6 @@ { "name": "react-scripts", - "version": "3.1.2", + "version": "3.2.0", "description": "Configuration and scripts for Create React App.", "repository": { "type": "git", @@ -67,8 +67,8 @@ "postcss-normalize": "7.0.1", "postcss-preset-env": "6.7.0", "postcss-safe-parser": "4.0.1", - "react-app-polyfill": "^1.0.3", - "react-dev-utils": "^9.0.4", + "react-app-polyfill": "^1.0.4", + "react-dev-utils": "^9.1.0", "resolve": "1.12.0", "resolve-url-loader": "3.1.0", "sass-loader": "7.2.0", From e51ea135e1a012f4e42e1d3cc230b9e6ef6576df Mon Sep 17 00:00:00 2001 From: Ian Schmitz Date: Wed, 2 Oct 2019 22:11:25 -0700 Subject: [PATCH 0801/1249] Temporarily disable Windows in CI (#7773) --- azure-pipelines-test-job.yml | 54 ++++----- azure-pipelines.yml | 106 +++++++++--------- packages/create-react-app/createReactApp.js | 12 +- .../react-dev-utils/InlineChunkHtmlPlugin.js | 4 +- packages/react-scripts/scripts/build.js | 8 +- 5 files changed, 91 insertions(+), 93 deletions(-) diff --git a/azure-pipelines-test-job.yml b/azure-pipelines-test-job.yml index 18000d462cb..7073bf3eab6 100644 --- a/azure-pipelines-test-job.yml +++ b/azure-pipelines-test-job.yml @@ -6,35 +6,35 @@ parameters: name: '' testScript: '' configurations: - LinuxNode8: { vmImage: 'ubuntu-16.04', nodeVersion: 8.x } - LinuxNode10: { vmImage: 'ubuntu-16.04', nodeVersion: 10.x } - WindowsNode8: { vmImage: 'vs2017-win2016', nodeVersion: 8.x } - WindowsNode10: { vmImage: 'vs2017-win2016', nodeVersion: 10.x } - + LinuxNode8: { vmImage: 'ubuntu-16.04', nodeVersion: 8.x } + LinuxNode10: { vmImage: 'ubuntu-16.04', nodeVersion: 10.x } + # WindowsNode8: { vmImage: 'vs2017-win2016', nodeVersion: 8.x } + # WindowsNode10: { vmImage: 'vs2017-win2016', nodeVersion: 10.x } + jobs: -- job: ${{ parameters.name }} - strategy: - matrix: - ${{ insert }}: ${{ parameters.configurations }} - pool: - vmImage: $(vmImage) - steps: - - script: | - git config --global core.autocrlf false - git config --global user.name "Create React App" - git config --global user.email "cra@email.com" - displayName: 'Initialize Git config' + - job: ${{ parameters.name }} + strategy: + matrix: + ${{ insert }}: ${{ parameters.configurations }} + pool: + vmImage: $(vmImage) + steps: + - script: | + git config --global core.autocrlf false + git config --global user.name "Create React App" + git config --global user.email "cra@email.com" + displayName: 'Initialize Git config' - - checkout: self - path: create-react-app + - checkout: self + path: create-react-app - - task: NodeTool@0 - inputs: - versionSpec: $(nodeVersion) - displayName: 'Install Node.js' + - task: NodeTool@0 + inputs: + versionSpec: $(nodeVersion) + displayName: 'Install Node.js' - - script: yarn --frozen-lockfile - displayName: 'Run yarn' + - script: yarn --frozen-lockfile + displayName: 'Run yarn' - - bash: ${{ parameters.testScript }} - displayName: 'Run tests' + - bash: ${{ parameters.testScript }} + displayName: 'Run tests' diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 1f770cc7105..69e685a3b2c 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -3,7 +3,7 @@ # trigger: -- master + - master variables: CI: true @@ -19,60 +19,60 @@ variables: # Simple test suite # ****************************************************************************** jobs: -- template: azure-pipelines-test-job.yml - parameters: - name: Simple - testScript: tasks/e2e-simple.sh + - template: azure-pipelines-test-job.yml + parameters: + name: Simple + testScript: tasks/e2e-simple.sh -# ****************************************************************************** -# Installs test suite -# ****************************************************************************** -- template: azure-pipelines-test-job.yml - parameters: - name: Installs - testScript: tasks/e2e-installs.sh + # ****************************************************************************** + # Installs test suite + # ****************************************************************************** + - template: azure-pipelines-test-job.yml + parameters: + name: Installs + testScript: tasks/e2e-installs.sh -# ****************************************************************************** -# Kitchensink test suite -# ****************************************************************************** -- template: azure-pipelines-test-job.yml - parameters: - name: Kitchensink - testScript: tasks/e2e-kitchensink.sh + # ****************************************************************************** + # Kitchensink test suite + # ****************************************************************************** + - template: azure-pipelines-test-job.yml + parameters: + name: Kitchensink + testScript: tasks/e2e-kitchensink.sh -# ****************************************************************************** -# Kitchensink Eject test suite -# ****************************************************************************** -- template: azure-pipelines-test-job.yml - parameters: - name: KitchensinkEject - testScript: tasks/e2e-kitchensink-eject.sh + # ****************************************************************************** + # Kitchensink Eject test suite + # ****************************************************************************** + - template: azure-pipelines-test-job.yml + parameters: + name: KitchensinkEject + testScript: tasks/e2e-kitchensink-eject.sh -# ****************************************************************************** -# Behavior test suite -# ****************************************************************************** -- template: azure-pipelines-test-job.yml - parameters: - name: Behavior - testScript: tasks/e2e-behavior.sh - configurations: - LinuxNode8: { vmImage: 'ubuntu-16.04', nodeVersion: 8.x } - LinuxNode10: { vmImage: 'ubuntu-16.04', nodeVersion: 10.x } - WindowsNode8: { vmImage: 'vs2017-win2016', nodeVersion: 8.x } - WindowsNode10: { vmImage: 'vs2017-win2016', nodeVersion: 10.x } - MacNode8: { vmImage: 'macOS-10.13', nodeVersion: 8.x } - MacNode10: { vmImage: 'macOS-10.13', nodeVersion: 10.x } + # ****************************************************************************** + # Behavior test suite + # ****************************************************************************** + - template: azure-pipelines-test-job.yml + parameters: + name: Behavior + testScript: tasks/e2e-behavior.sh + configurations: + LinuxNode8: { vmImage: 'ubuntu-16.04', nodeVersion: 8.x } + LinuxNode10: { vmImage: 'ubuntu-16.04', nodeVersion: 10.x } + # WindowsNode8: { vmImage: 'vs2017-win2016', nodeVersion: 8.x } + # WindowsNode10: { vmImage: 'vs2017-win2016', nodeVersion: 10.x } + MacNode8: { vmImage: 'macOS-10.13', nodeVersion: 8.x } + MacNode10: { vmImage: 'macOS-10.13', nodeVersion: 10.x } -# ****************************************************************************** -# Old Node test suite -# ****************************************************************************** -- job: OldNode - pool: - vmImage: ubuntu-16.04 - steps: - - task: NodeTool@0 - inputs: - versionSpec: 6.x - displayName: 'Install Node.js 6.x' - - bash: tasks/e2e-old-node.sh - displayName: 'Run tests' + # ****************************************************************************** + # Old Node test suite + # ****************************************************************************** + - job: OldNode + pool: + vmImage: ubuntu-16.04 + steps: + - task: NodeTool@0 + inputs: + versionSpec: 6.x + displayName: 'Install Node.js 6.x' + - bash: tasks/e2e-old-node.sh + displayName: 'Run tests' diff --git a/packages/create-react-app/createReactApp.js b/packages/create-react-app/createReactApp.js index 2e69901b455..5a377d278e6 100755 --- a/packages/create-react-app/createReactApp.js +++ b/packages/create-react-app/createReactApp.js @@ -225,9 +225,7 @@ function createApp( if (!semver.satisfies(process.version, '>=8.10.0')) { console.log( chalk.yellow( - `You are using Node ${ - process.version - } so the project will be bootstrapped with an old unsupported version of tools.\n\n` + + `You are using Node ${process.version} so the project will be bootstrapped with an old unsupported version of tools.\n\n` + `Please update to Node 8.10 or higher for a better, fully supported experience.\n` ) ); @@ -241,9 +239,7 @@ function createApp( if (npmInfo.npmVersion) { console.log( chalk.yellow( - `You are using npm ${ - npmInfo.npmVersion - } so the project will be bootstrapped with an old unsupported version of tools.\n\n` + + `You are using npm ${npmInfo.npmVersion} so the project will be bootstrapped with an old unsupported version of tools.\n\n` + `Please update to npm 5 or higher for a better, fully supported experience.\n` ) ); @@ -257,9 +253,7 @@ function createApp( if (yarnInfo.yarnVersion) { console.log( chalk.yellow( - `You are using Yarn ${ - yarnInfo.yarnVersion - } together with the --use-pnp flag, but Plug'n'Play is only supported starting from the 1.12 release.\n\n` + + `You are using Yarn ${yarnInfo.yarnVersion} together with the --use-pnp flag, but Plug'n'Play is only supported starting from the 1.12 release.\n\n` + `Please update to Yarn 1.12 or higher for a better, fully supported experience.\n` ) ); diff --git a/packages/react-dev-utils/InlineChunkHtmlPlugin.js b/packages/react-dev-utils/InlineChunkHtmlPlugin.js index de47f464551..df427afadd5 100644 --- a/packages/react-dev-utils/InlineChunkHtmlPlugin.js +++ b/packages/react-dev-utils/InlineChunkHtmlPlugin.js @@ -17,7 +17,9 @@ class InlineChunkHtmlPlugin { if (tag.tagName !== 'script' || !(tag.attributes && tag.attributes.src)) { return tag; } - const scriptName = publicPath ? tag.attributes.src.replace(publicPath, '') : tag.attributes.src; + const scriptName = publicPath + ? tag.attributes.src.replace(publicPath, '') + : tag.attributes.src; if (!this.tests.some(test => scriptName.match(test))) { return tag; } diff --git a/packages/react-scripts/scripts/build.js b/packages/react-scripts/scripts/build.js index 54e0d4b82aa..5bbc8741136 100644 --- a/packages/react-scripts/scripts/build.js +++ b/packages/react-scripts/scripts/build.js @@ -124,9 +124,11 @@ checkBrowsers(paths.appPath, isInteractive) err => { const tscCompileOnError = process.env.TSC_COMPILE_ON_ERROR === 'true'; if (tscCompileOnError) { - console.log(chalk.yellow( - 'Compiled with the following type errors (you may want to check these before deploying your app):\n' - )); + console.log( + chalk.yellow( + 'Compiled with the following type errors (you may want to check these before deploying your app):\n' + ) + ); printBuildError(err); } else { console.log(chalk.red('Failed to compile.\n')); From ac93f310bf73461684dc1351eacca62533470b7c Mon Sep 17 00:00:00 2001 From: Damian Senn Date: Mon, 7 Oct 2019 00:31:12 +0200 Subject: [PATCH 0802/1249] =?UTF-8?q?Add=20babel=20runtime=20version=20to?= =?UTF-8?q?=20transform-runtime=20plugin=20to=20reduce=E2=80=A6=20(#7726)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/babel-preset-react-app/create.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/babel-preset-react-app/create.js b/packages/babel-preset-react-app/create.js index 7b7f1da6ed1..88e345db082 100644 --- a/packages/babel-preset-react-app/create.js +++ b/packages/babel-preset-react-app/create.js @@ -170,6 +170,10 @@ module.exports = function(api, opts, env) { { corejs: false, helpers: areHelpersEnabled, + // By default, babel assumes babel/runtime version 7.0.0-beta.0, + // explicitly resolving to match the provided helper functions. + // https://github.com/babel/babel/issues/10261 + version: require('@babel/runtime/package.json').version, regenerator: true, // https://babeljs.io/docs/en/babel-plugin-transform-runtime#useesmodules // We should turn this on once the lowest version of Node LTS From 09cbb89d44773c77b9197e864bbafb80bd853098 Mon Sep 17 00:00:00 2001 From: Justin Grant Date: Wed, 9 Oct 2019 23:20:18 -0700 Subject: [PATCH 0803/1249] Add Babel sourcemap to resolve VSCode debugging issues (#7022) --- packages/react-scripts/config/webpack.config.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/react-scripts/config/webpack.config.js b/packages/react-scripts/config/webpack.config.js index f4391c39fb7..6de37be2c18 100644 --- a/packages/react-scripts/config/webpack.config.js +++ b/packages/react-scripts/config/webpack.config.js @@ -489,11 +489,11 @@ module.exports = function(webpackEnv) { ] ), // @remove-on-eject-end - // If an error happens in a package, it's possible to be - // because it was compiled. Thus, we don't want the browser - // debugger to show the original code. Instead, the code - // being evaluated would be much more helpful. - sourceMaps: false, + // Babel sourcemaps are needed for debugging into node_modules + // code. Without the options below, debuggers like VSCode + // show incorrect code and set breakpoints on the wrong lines. + sourceMaps: shouldUseSourceMap, + inputSourceMap: shouldUseSourceMap, }, }, // "postcss" loader applies autoprefixer to our CSS. From 9161ba83d7e271b02972b5caa3d9e6c430bc6929 Mon Sep 17 00:00:00 2001 From: Robert FUSZENECKER Date: Thu, 10 Oct 2019 08:25:14 +0200 Subject: [PATCH 0804/1249] Fix process type in TypeScript template (#7796) --- packages/react-scripts/template-typescript/src/serviceWorker.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/template-typescript/src/serviceWorker.ts b/packages/react-scripts/template-typescript/src/serviceWorker.ts index 15d90cb81a1..3c897142d92 100644 --- a/packages/react-scripts/template-typescript/src/serviceWorker.ts +++ b/packages/react-scripts/template-typescript/src/serviceWorker.ts @@ -29,7 +29,7 @@ export function register(config?: Config) { if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { // The URL constructor is available in all browsers that support SW. const publicUrl = new URL( - (process as { env: { [key: string]: string } }).env.PUBLIC_URL, + process.env.PUBLIC_URL, window.location.href ); if (publicUrl.origin !== window.location.origin) { From f06ae8b7fc9f22b77780b316aa7d7d221db3eb4e Mon Sep 17 00:00:00 2001 From: Jonathan Felchlin Date: Thu, 10 Oct 2019 20:59:34 -0700 Subject: [PATCH 0805/1249] Account for browserslist environment variables (#7764) --- packages/react-dev-utils/browsersHelper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-dev-utils/browsersHelper.js b/packages/react-dev-utils/browsersHelper.js index a52ed342736..fdfa6ff3175 100644 --- a/packages/react-dev-utils/browsersHelper.js +++ b/packages/react-dev-utils/browsersHelper.js @@ -42,7 +42,7 @@ function shouldSetBrowsers(isInteractive) { } function checkBrowsers(dir, isInteractive, retry = true) { - const current = browserslist.findConfig(dir); + const current = browserslist.loadConfig({path: dir}); if (current != null) { return Promise.resolve(current); } From c8ca3070e7bc4ba8b6999bac78d7b85cd180c9f5 Mon Sep 17 00:00:00 2001 From: May Date: Sun, 13 Oct 2019 12:14:16 +0800 Subject: [PATCH 0806/1249] Clarify dynamic import stage in docs (#7813) --- docusaurus/docs/supported-browsers-features.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/docs/supported-browsers-features.md b/docusaurus/docs/supported-browsers-features.md index 32b205a23e9..27c3391ff1e 100644 --- a/docusaurus/docs/supported-browsers-features.md +++ b/docusaurus/docs/supported-browsers-features.md @@ -15,7 +15,7 @@ This project supports a superset of the latest JavaScript standard. In addition - [Exponentiation Operator](https://github.com/rwaldron/exponentiation-operator) (ES2016). - [Async/await](https://github.com/tc39/ecmascript-asyncawait) (ES2017). - [Object Rest/Spread Properties](https://github.com/tc39/proposal-object-rest-spread) (ES2018). -- [Dynamic import()](https://github.com/tc39/proposal-dynamic-import) (stage 3 proposal) +- [Dynamic import()](https://github.com/tc39/proposal-dynamic-import) (stage 4 proposal) - [Class Fields and Static Properties](https://github.com/tc39/proposal-class-public-fields) (part of stage 3 proposal). - [JSX](https://facebook.github.io/react/docs/introducing-jsx.html), [Flow](./adding-flow) and [TypeScript](./adding-typescript). From dc4d62d019cf004f5f190e7efa23f367414168e5 Mon Sep 17 00:00:00 2001 From: Orta Date: Sun, 13 Oct 2019 18:54:52 -0700 Subject: [PATCH 0807/1249] Update adding-typescript.md (#7815) --- docusaurus/docs/adding-typescript.md | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/docusaurus/docs/adding-typescript.md b/docusaurus/docs/adding-typescript.md index 22043ca59ba..d118af4cac6 100644 --- a/docusaurus/docs/adding-typescript.md +++ b/docusaurus/docs/adding-typescript.md @@ -7,6 +7,8 @@ title: Adding TypeScript [TypeScript](https://www.typescriptlang.org/) is a typed superset of JavaScript that compiles to plain JavaScript. +## Installation + To start a new Create React App project with [TypeScript](https://www.typescriptlang.org/), you can run: ```sh @@ -33,16 +35,19 @@ Next, rename any file to be a TypeScript file (e.g. `src/index.js` to `src/index Type errors will show up in the same console as the build one. You'll have to fix these type errors before you continue development or build your project. For advanced configuration, [see here](advanced-configuration.md). -To learn more about TypeScript, check out [its documentation](https://www.typescriptlang.org/). +## Getting Started with TypeScript and React + +You are not required to make a [`tsconfig.json` file](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html), one will be made for you. You are allowed to edit the generated TypeScript configuration. + +- [TypeScript Handbook](https://www.typescriptlang.org/) +- [TypeScript Example on React](https://www.typescriptlang.org/play/index.html?jsx=2&esModuleInterop=true&e=196#example/typescript-with-react) +- [React + TypeScript Cheatsheets](https://github.com/typescript-cheatsheets/react-typescript-cheatsheet#reacttypescript-cheatsheets) has a good overview on how to use React with TypeScript -> **Note:** If your project is not created with TypeScript enabled, npx may be using a cached version of `create-react-app`. -> Remove previously installed versions with `npm uninstall -g create-react-app` (see [#6119](https://github.com/facebook/create-react-app/issues/6119#issuecomment-451614035)). +## Troubleshooting -> **Note:** You are not required to make a [`tsconfig.json` file](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html), one will be made for you. -> You are allowed to edit the generated TypeScript configuration. +If your project is not created with TypeScript enabled, npx may be using a cached version of `create-react-app`. Remove previously installed versions with `npm uninstall -g create-react-app` (see [#6119](https://github.com/facebook/create-react-app/issues/6119#issuecomment-451614035)). -> **Note:** If you are currently using [create-react-app-typescript](https://github.com/wmonk/create-react-app-typescript/), see [this blog post](https://vincenttunru.com/migrate-create-react-app-typescript-to-create-react-app/) for instructions on how to migrate to Create React App. +If you are currently using [create-react-app-typescript](https://github.com/wmonk/create-react-app-typescript/), see [this blog post](https://vincenttunru.com/migrate-create-react-app-typescript-to-create-react-app/) for instructions on how to migrate to Create React App. -> **Note:** We recommend using [VSCode](https://code.visualstudio.com/) for a better integrated experience. -> **Note:** Constant enums and namespaces are not supported. +Constant enums and namespaces are not supported, you can learn about the constraints of [using Babel with TypeScript here](https://babeljs.io/docs/en/babel-plugin-transform-typescript#caveats). From ab41c4c5c582adefae426afa22b3f5710f7ee195 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20H=C3=BCbelbauer?= Date: Mon, 14 Oct 2019 03:58:14 +0200 Subject: [PATCH 0808/1249] Document how to use the .env file to enforce HTTPS (#7821) --- docusaurus/docs/using-https-in-development.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docusaurus/docs/using-https-in-development.md b/docusaurus/docs/using-https-in-development.md index 4dbb2536d70..3541e356b8e 100644 --- a/docusaurus/docs/using-https-in-development.md +++ b/docusaurus/docs/using-https-in-development.md @@ -31,3 +31,14 @@ HTTPS=true npm start ``` Note that the server will use a self-signed certificate, so your web browser will almost definitely display a warning upon accessing the page. + +To avoid having to set the environment variable each time, you can either include in the `npm start` script like so: + +```json +{ + "start": "HTTPS=true react-scripts start" +} +``` + +Or you can create a `.env` file with `HTTPS=true` set. +[Learn more about environment variables in CRA](https://create-react-app.dev/docs/adding-custom-environment-variables). From 889df8e65b105650fdedb21cb92635fabd40e3b6 Mon Sep 17 00:00:00 2001 From: Robert van Steen Date: Mon, 14 Oct 2019 03:59:41 +0200 Subject: [PATCH 0809/1249] Fix absolute paths issue in Jest (#7822) --- packages/react-scripts/config/modules.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-scripts/config/modules.js b/packages/react-scripts/config/modules.js index 13bd8891e23..38c95b91e44 100644 --- a/packages/react-scripts/config/modules.js +++ b/packages/react-scripts/config/modules.js @@ -101,7 +101,7 @@ function getJestAliases(options = {}) { if (path.relative(paths.appPath, baseUrlResolved) === '') { return { - 'src/(.*)$': '/src/$1', + '^src/(.*)$': '/src/$1', }; } } From 4a4ae1ef814ceb0f1dd7bdf0f07f404f3877a216 Mon Sep 17 00:00:00 2001 From: Jesse Jackson Date: Mon, 14 Oct 2019 19:26:41 -0500 Subject: [PATCH 0810/1249] Document correct default behavior for HOST var (#7823) --- docusaurus/docs/advanced-configuration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/docs/advanced-configuration.md b/docusaurus/docs/advanced-configuration.md index 586fc83ac43..86a57075679 100644 --- a/docusaurus/docs/advanced-configuration.md +++ b/docusaurus/docs/advanced-configuration.md @@ -11,7 +11,7 @@ You can adjust various development and production settings by setting environmen | :---------------------- | :---------: | :--------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | BROWSER | ✅ Used | 🚫 Ignored | By default, Create React App will open the default system browser, favoring Chrome on macOS. Specify a [browser](https://github.com/sindresorhus/open#app) to override this behavior, or set it to `none` to disable it completely. If you need to customize the way the browser is launched, you can specify a node script instead. Any arguments passed to `npm start` will also be passed to this script, and the url where your app is served will be the last argument. Your script's file name must have the `.js` extension. | | BROWSER_ARGS | ✅ Used | 🚫 Ignored | When the `BROWSER` environment variable is specified, any arguments that you set to this environment variable will be passed to the browser instance. Multiple arguments are supported as a space separated list. By default, no arguments are passed through to browsers. | -| HOST | ✅ Used | 🚫 Ignored | By default, the development web server binds to `localhost`. You may use this variable to specify a different host. | +| HOST | ✅ Used | 🚫 Ignored | By default, the development web server binds to all hostnames on the device (`localhost`, LAN network address, etc.). You may use this variable to specify a different host. | | PORT | ✅ Used | 🚫 Ignored | By default, the development web server will attempt to listen on port 3000 or prompt you to attempt the next available port. You may use this variable to specify a different port. | | HTTPS | ✅ Used | 🚫 Ignored | When set to `true`, Create React App will run the development server in `https` mode. | | PUBLIC_URL | 🚫 Ignored | ✅ Used | Create React App assumes your application is hosted at the serving web server's root or a subpath as specified in [`package.json` (`homepage`)](deployment#building-for-relative-paths). Normally, Create React App ignores the hostname. You may use this variable to force assets to be referenced verbatim to the url you provide (hostname included). This may be particularly useful when using a CDN to host your application. | From 81c48dc3004dd039c0738ca795f21e6968d1facb Mon Sep 17 00:00:00 2001 From: Jake Boone Date: Mon, 14 Oct 2019 17:30:04 -0700 Subject: [PATCH 0811/1249] Fix grammar error in troubleshooting.md (#7824) --- docusaurus/docs/troubleshooting.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/docs/troubleshooting.md b/docusaurus/docs/troubleshooting.md index 20cd65519aa..9dd091e6b31 100644 --- a/docusaurus/docs/troubleshooting.md +++ b/docusaurus/docs/troubleshooting.md @@ -9,7 +9,7 @@ sidebar_label: Troubleshooting When you save a file while `npm start` is running, the browser should refresh with the updated code.
If this doesn’t happen, try one of the following workarounds: -- Check that your file is imported by you entrypoint. TypeScript will show errors on any of your source files, but webpack only reloads your files if they are directly or indirectly imported by one of your entrypoints. +- Check that your file is imported by your entrypoint. TypeScript will show errors on any of your source files, but webpack only reloads your files if they are directly or indirectly imported by one of your entrypoints. - If your project is in a Dropbox folder, try moving it out. - If the watcher doesn’t see a file called `index.js` and you’re referencing it by the folder name, you [need to restart the watcher](https://github.com/facebook/create-react-app/issues/1164) due to a Webpack bug. - Some editors like Vim and IntelliJ have a “safe write” feature that currently breaks the watcher. You will need to disable it. Follow the instructions in [“Adjusting Your Text Editor”](https://webpack.js.org/guides/development/#adjusting-your-text-editor). From 9243305b400efc1db94f4f6b7ce7f6bb7a2490f8 Mon Sep 17 00:00:00 2001 From: Endi Date: Tue, 15 Oct 2019 23:37:32 +0700 Subject: [PATCH 0812/1249] Upgrade to docusaurus 2 (#7785) * chore: upgrade to docusaurus 2 * address review --- docusaurus/docs/adding-bootstrap.md | 3 +- .../adding-custom-environment-variables.md | 3 +- .../docs/adding-images-fonts-and-files.md | 3 +- docusaurus/docs/can-i-use-decorators.md | 6 +- docusaurus/docs/deployment.md | 16 +- docusaurus/docs/getting-started.md | 4 +- docusaurus/docs/importing-a-component.md | 3 +- docusaurus/docs/post-processing-css.md | 3 +- .../proxying-api-requests-in-development.md | 17 +- docusaurus/docs/running-tests.md | 14 +- docusaurus/docs/setting-up-your-editor.md | 6 +- docusaurus/docs/troubleshooting.md | 6 +- docusaurus/website/.gitignore | 20 + docusaurus/website/README.md | 137 +- docusaurus/website/core/Footer.js | 123 - docusaurus/website/docusaurus.config.js | 118 + docusaurus/website/i18n/en.json | 178 - docusaurus/website/package.json | 31 +- docusaurus/website/pages/en/index.js | 187 - docusaurus/website/siteConfig.js | 98 - docusaurus/website/src/css/custom.css | 9 + docusaurus/website/src/pages/index.js | 139 + .../website/src/pages/styles.module.css | 46 + docusaurus/website/static/CNAME | 1 + docusaurus/website/static/css/custom.css | 56 - docusaurus/website/yarn.lock | 8653 +++++++++++------ netlify.toml | 2 +- 27 files changed, 6314 insertions(+), 3568 deletions(-) create mode 100644 docusaurus/website/.gitignore delete mode 100644 docusaurus/website/core/Footer.js create mode 100644 docusaurus/website/docusaurus.config.js delete mode 100644 docusaurus/website/i18n/en.json delete mode 100755 docusaurus/website/pages/en/index.js delete mode 100644 docusaurus/website/siteConfig.js create mode 100644 docusaurus/website/src/css/custom.css create mode 100644 docusaurus/website/src/pages/index.js create mode 100644 docusaurus/website/src/pages/styles.module.css create mode 100644 docusaurus/website/static/CNAME delete mode 100644 docusaurus/website/static/css/custom.css diff --git a/docusaurus/docs/adding-bootstrap.md b/docusaurus/docs/adding-bootstrap.md index 0a06655c76c..141849c503d 100644 --- a/docusaurus/docs/adding-bootstrap.md +++ b/docusaurus/docs/adding-bootstrap.md @@ -29,7 +29,8 @@ import 'bootstrap/dist/css/bootstrap.css'; > Note: this feature is available with `react-scripts@2.0.0` and higher. -Sometimes you might need to tweak the visual styles of Bootstrap (or equivalent package).
+Sometimes you might need to tweak the visual styles of Bootstrap (or equivalent package). + As of `react-scripts@2.0.0` you can import `.scss` files. This makes it possible to use a package's built-in Sass variables for global style preferences. To enable `scss` in Create React App you will need to install `node-sass`. diff --git a/docusaurus/docs/adding-custom-environment-variables.md b/docusaurus/docs/adding-custom-environment-variables.md index 97fc21fd11d..ae1b5d5c7a7 100644 --- a/docusaurus/docs/adding-custom-environment-variables.md +++ b/docusaurus/docs/adding-custom-environment-variables.md @@ -136,7 +136,8 @@ Files on the left have more priority than files on the right: - `npm run build`: `.env.production.local`, `.env.production`, `.env.local`, `.env` - `npm test`: `.env.test.local`, `.env.test`, `.env` (note `.env.local` is missing) -These variables will act as the defaults if the machine does not explicitly set them.
+These variables will act as the defaults if the machine does not explicitly set them. + Please refer to the [dotenv documentation](https://github.com/motdotla/dotenv) for more details. > Note: If you are defining environment variables for development, your CI and/or hosting platform will most likely need diff --git a/docusaurus/docs/adding-images-fonts-and-files.md b/docusaurus/docs/adding-images-fonts-and-files.md index 88e23047b32..02a5377936c 100644 --- a/docusaurus/docs/adding-images-fonts-and-files.md +++ b/docusaurus/docs/adding-images-fonts-and-files.md @@ -39,7 +39,8 @@ Webpack finds all relative module references in CSS (they start with `./`) and r Please be advised that this is also a custom feature of Webpack. -**It is not required for React** but many people enjoy it (and React Native uses a similar mechanism for images).
+**It is not required for React** but many people enjoy it (and React Native uses a similar mechanism for images). + An alternative way of handling static assets is described in the next section. ## Adding SVGs diff --git a/docusaurus/docs/can-i-use-decorators.md b/docusaurus/docs/can-i-use-decorators.md index f4ccf4e4504..d698b6f527a 100644 --- a/docusaurus/docs/can-i-use-decorators.md +++ b/docusaurus/docs/can-i-use-decorators.md @@ -3,13 +3,15 @@ id: can-i-use-decorators title: Can I Use Decorators? --- -Some popular libraries use [decorators](https://medium.com/google-developers/exploring-es7-decorators-76ecb65fb841) in their documentation.
+Some popular libraries use [decorators](https://medium.com/google-developers/exploring-es7-decorators-76ecb65fb841) in their documentation. + Create React App intentionally doesn’t support decorator syntax at the moment because: - It is an experimental proposal and is subject to change (in fact, it has already changed once, and will change again). - Most libraries currently support only the old version of the proposal — which will never be a standard. -However in many cases you can rewrite decorator-based code without decorators just as fine.
+However in many cases you can rewrite decorator-based code without decorators just as fine. + Please refer to these two threads for reference: - [#214](https://github.com/facebook/create-react-app/issues/214) diff --git a/docusaurus/docs/deployment.md b/docusaurus/docs/deployment.md index 6b39372384c..3a642a32cb0 100644 --- a/docusaurus/docs/deployment.md +++ b/docusaurus/docs/deployment.md @@ -100,7 +100,8 @@ When users install your app to the homescreen of their device the default config ## Building for Relative Paths -By default, Create React App produces a build assuming your app is hosted at the server root.
+By default, Create React App produces a build assuming your app is hosted at the server root. + To override this, specify the `homepage` in your `package.json`, for example: ```js @@ -109,10 +110,10 @@ To override this, specify the `homepage` in your `package.json`, for example: This will let Create React App correctly infer the root path to use in the generated HTML file. -**Note**: If you are using `react-router@^4`, you can root ``s using the `basename` prop on any ``.
-More information [here](https://reacttraining.com/react-router/web/api/BrowserRouter/basename-string).
+**Note**: If you are using `react-router@^4`, you can root ``s using the `basename` prop on any ``. + +More information [here](https://reacttraining.com/react-router/web/api/BrowserRouter/basename-string). -
For example: ```js @@ -256,7 +257,7 @@ For more information see [Firebase Hosting](https://firebase.google.com/docs/hos ### Step 1: Add `homepage` to `package.json` -**The step below is important!**
+**The step below is important!**
**If you skip it, your app will not deploy correctly.** @@ -332,7 +333,7 @@ npm run deploy Finally, make sure **GitHub Pages** option in your GitHub project settings is set to use the `gh-pages` branch: -gh-pages branch setting +gh-pages branch setting ### Step 5: Optionally, configure the domain @@ -371,7 +372,8 @@ If, when deploying, you get `Cannot read property 'email' of null`, try the foll ## [Heroku](https://www.heroku.com/) -Use the [Heroku Buildpack for Create React App](https://github.com/mars/create-react-app-buildpack).
+Use the [Heroku Buildpack for Create React App](https://github.com/mars/create-react-app-buildpack). + You can find instructions in [Deploying React with Zero Configuration](https://blog.heroku.com/deploying-react-with-zero-configuration). ### Resolving Heroku Deployment Errors diff --git a/docusaurus/docs/getting-started.md b/docusaurus/docs/getting-started.md index 9831e638a41..71982e2a21c 100644 --- a/docusaurus/docs/getting-started.md +++ b/docusaurus/docs/getting-started.md @@ -23,7 +23,7 @@ Then open [http://localhost:3000/](http://localhost:3000/) to see your app. When you’re ready to deploy to production, create a minified bundle with `npm run build`.

-npm start +npm start

### Get Started Immediately @@ -115,7 +115,7 @@ Runs the app in development mode. Open [http://localhost:3000](http://localhost: The page will automatically reload if you make changes to the code. You will see the build errors and lint warnings in the console.

-Build errors +Build errors

### `npm test` or `yarn test` diff --git a/docusaurus/docs/importing-a-component.md b/docusaurus/docs/importing-a-component.md index a04670a9a0a..61fc9b0d492 100644 --- a/docusaurus/docs/importing-a-component.md +++ b/docusaurus/docs/importing-a-component.md @@ -3,7 +3,8 @@ id: importing-a-component title: Importing a Component --- -This project setup supports ES6 modules thanks to Webpack.
+This project setup supports ES6 modules thanks to Webpack. + While you can still use `require()` and `module.exports`, we encourage you to use [`import` and `export`](http://exploringjs.com/es6/ch_modules.html) instead. For example: diff --git a/docusaurus/docs/post-processing-css.md b/docusaurus/docs/post-processing-css.md index b7589d2719f..1a456b9f1c5 100644 --- a/docusaurus/docs/post-processing-css.md +++ b/docusaurus/docs/post-processing-css.md @@ -39,5 +39,6 @@ becomes this: If you need to disable autoprefixing for some reason, [follow this section](https://github.com/postcss/autoprefixer#disabling). [CSS Grid Layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout) prefixing is disabled by default, but it will **not** strip manual prefixing. -If you'd like to opt-in to CSS Grid prefixing, [first familiarize yourself about its limitations](https://github.com/postcss/autoprefixer#does-autoprefixer-polyfill-grid-layout-for-ie).
+If you'd like to opt-in to CSS Grid prefixing, [first familiarize yourself about its limitations](https://github.com/postcss/autoprefixer#does-autoprefixer-polyfill-grid-layout-for-ie). + To enable CSS Grid prefixing, add `/* autoprefixer grid: autoplace */` to the top of your CSS file. diff --git a/docusaurus/docs/proxying-api-requests-in-development.md b/docusaurus/docs/proxying-api-requests-in-development.md index 420663b2760..3fdfb778069 100644 --- a/docusaurus/docs/proxying-api-requests-in-development.md +++ b/docusaurus/docs/proxying-api-requests-in-development.md @@ -6,7 +6,8 @@ sidebar_label: Proxying in Development > Note: this feature is available with `react-scripts@0.2.3` and higher. -People often serve the front-end React app from the same host and port as their backend implementation.
+People often serve the front-end React app from the same host and port as their backend implementation. + For example, a production setup might look like this after the app is deployed: / - static server returns index.html with React app @@ -31,7 +32,8 @@ Fetch API cannot load http://localhost:4000/api/todos. No 'Access-Control-Allow- Keep in mind that `proxy` only has effect in development (with `npm start`), and it is up to you to ensure that URLs like `/api/todos` point to the right thing in production. You don’t have to use the `/api` prefix. Any unrecognized request without a `text/html` accept header will be redirected to the specified `proxy`. -The `proxy` option supports HTTP, HTTPS and WebSocket connections.
+The `proxy` option supports HTTP, HTTPS and WebSocket connections. + If the `proxy` option is **not** flexible enough for you, alternatively you can: - [Configure the proxy yourself](#configuring-the-proxy-manually) @@ -96,10 +98,13 @@ You can now register proxies as you wish! Here's an example using the above `htt const proxy = require('http-proxy-middleware'); module.exports = function(app) { - app.use('/api', proxy({ - target: 'http://localhost:5000', - changeOrigin: true, - })); + app.use( + '/api', + proxy({ + target: 'http://localhost:5000', + changeOrigin: true, + }) + ); }; ``` diff --git a/docusaurus/docs/running-tests.md b/docusaurus/docs/running-tests.md index 06f384fefbb..c36c18a06e9 100644 --- a/docusaurus/docs/running-tests.md +++ b/docusaurus/docs/running-tests.md @@ -3,7 +3,7 @@ id: running-tests title: Running Tests --- -> Note: this feature is available with `react-scripts@0.3.0` and higher.
+> Note: this feature is available with `react-scripts@0.3.0` and higher. > [Read the migration guide to learn how to enable it in older projects!](https://github.com/facebook/create-react-app/blob/master/CHANGELOG-0.x.md#migrating-from-023-to-030) @@ -60,7 +60,8 @@ it('sums numbers', () => { }); ``` -All `expect()` matchers supported by Jest are [extensively documented here](https://jestjs.io/docs/en/expect.html#content).
+All `expect()` matchers supported by Jest are [extensively documented here](https://jestjs.io/docs/en/expect.html#content). + You can also use [`jest.fn()` and `expect(fn).toBeCalled()`](https://jestjs.io/docs/en/expect.html#tohavebeencalled) to create “spies” or mock functions. ## Testing Components @@ -144,7 +145,8 @@ it('renders welcome message', () => { }); ``` -All Jest matchers are [extensively documented here](https://jestjs.io/docs/en/expect.html).
+All Jest matchers are [extensively documented here](https://jestjs.io/docs/en/expect.html). + Nevertheless you can use a third-party assertion library like [Chai](https://chaijs.com/) if you want to, as described below. Additionally, you might find [jest-enzyme](https://github.com/blainekasten/enzyme-matchers) helpful to simplify your tests with readable matchers. The above `contains` code can be written more simply with jest-enzyme. @@ -254,12 +256,14 @@ global.localStorage = localStorageMock; ## Focusing and Excluding Tests -You can replace `it()` with `xit()` to temporarily exclude a test from being executed.
+You can replace `it()` with `xit()` to temporarily exclude a test from being executed. + Similarly, `fit()` lets you focus on a specific test without running any other tests. ## Coverage Reporting -Jest has an integrated coverage reporter that works well with ES6 and requires no configuration.
+Jest has an integrated coverage reporter that works well with ES6 and requires no configuration. + Run `npm test -- --coverage` (note extra `--` in the middle) to include a coverage report like this: ![coverage report](https://i.imgur.com/5bFhnTS.png) diff --git a/docusaurus/docs/setting-up-your-editor.md b/docusaurus/docs/setting-up-your-editor.md index 4099f912b90..e38bd4022b5 100644 --- a/docusaurus/docs/setting-up-your-editor.md +++ b/docusaurus/docs/setting-up-your-editor.md @@ -12,8 +12,10 @@ To configure the syntax highlighting in your favorite text editor, head to the [ ## Displaying Lint Output in the Editor -> Note: this feature is available with `react-scripts@0.2.0` and higher.
-> It works out of the box for newly created projects with `react-scripts@2.0.3` and higher.
+> Note: this feature is available with `react-scripts@0.2.0` and higher. + +> It works out of the box for newly created projects with `react-scripts@2.0.3` and higher. + > It also only works with npm 3 or higher. Some editors, including Sublime Text, Atom, and Visual Studio Code, provide plugins for ESLint. diff --git a/docusaurus/docs/troubleshooting.md b/docusaurus/docs/troubleshooting.md index 9dd091e6b31..38892e77a78 100644 --- a/docusaurus/docs/troubleshooting.md +++ b/docusaurus/docs/troubleshooting.md @@ -6,7 +6,8 @@ sidebar_label: Troubleshooting ## `npm start` doesn’t detect changes -When you save a file while `npm start` is running, the browser should refresh with the updated code.
+When you save a file while `npm start` is running, the browser should refresh with the updated code. + If this doesn’t happen, try one of the following workarounds: - Check that your file is imported by your entrypoint. TypeScript will show errors on any of your source files, but webpack only reloads your files if they are directly or indirectly imported by one of your entrypoints. @@ -60,7 +61,8 @@ Please refer to [this section](deployment.md#resolving-heroku-deployment-errors) If you use a [Moment.js](https://momentjs.com/), you might notice that only the English locale is available by default. This is because the locale files are large, and you probably only need a subset of [all the locales provided by Moment.js](https://momentjs.com/#multiple-locale-support). -To add a specific Moment.js locale to your bundle, you need to import it explicitly.
+To add a specific Moment.js locale to your bundle, you need to import it explicitly. + For example: ```js diff --git a/docusaurus/website/.gitignore b/docusaurus/website/.gitignore new file mode 100644 index 00000000000..1b34df5127b --- /dev/null +++ b/docusaurus/website/.gitignore @@ -0,0 +1,20 @@ +# dependencies +/node_modules + +# production +/build + +# generated files +.docusaurus +.cache-loader + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* \ No newline at end of file diff --git a/docusaurus/website/README.md b/docusaurus/website/README.md index 13b5047f3bb..71505291a8a 100644 --- a/docusaurus/website/README.md +++ b/docusaurus/website/README.md @@ -1,144 +1,33 @@ -This website was created with [Docusaurus](https://docusaurus.io/). +# Website -# What's In This Document +This website is built using Docusaurus 2, a modern static website generator. -* [Get Started in 5 Minutes](#get-started-in-5-minutes) -* [Directory Structure](#directory-structure) -* [Editing Content](#editing-content) -* [Adding Content](#adding-content) -* [Full Documentation](#full-documentation) +### Installation -# Get Started in 5 Minutes - -1. Make sure all the dependencies for the website are installed: - -```sh -# Install dependencies -$ yarn ``` -2. Run your dev server: - -```sh -# Start the site -$ yarn start +$ yarn ``` -## Directory Structure - -Your project file structure should look something like this +### Local Development ``` -my-docusaurus/ - docs/ - doc-1.md - doc-2.md - doc-3.md - website/ - core/ - node_modules/ - pages/ - static/ - css/ - img/ - package.json - sidebar.json - siteConfig.js -``` - -# Editing Content - -## Editing an existing docs page - -Edit docs by navigating to `docs/` and editing the corresponding document: - -`docs/doc-to-be-edited.md` - -```markdown ---- -id: page-needs-edit -title: This Doc Needs To Be Edited ---- - -Edit me... +$ yarn start ``` -For more information about docs, click [here](https://docusaurus.io/docs/en/navigation) - -# Adding Content - -## Adding a new docs page to an existing sidebar - -1. Create the doc as a new markdown file in `/docs`, example `docs/newly-created-doc.md`: +This command starts a local development server and open up a browser window. Most changes are reflected live without having to restart the server. -```md ---- -id: newly-created-doc -title: This Doc Needs To Be Edited ---- +### Build -My new content here.. ``` - -1. Refer to that doc's ID in an existing sidebar in `website/sidebar.json`: - -```javascript -// Add newly-created-doc to the Getting Started category of docs -{ - "docs": { - "Getting Started": [ - "quick-start", - "newly-created-doc" // new doc here - ], - ... - }, - ... -} +$ yarn build ``` -For more information about adding new docs, click [here](https://docusaurus.io/docs/en/navigation) - -## Adding items to your site's top navigation bar +This command generates static content into the `build` directory and can be served using any static contents hosting service. -1. Add links to docs, custom pages or external links by editing the headerLinks field of `website/siteConfig.js`: +### Deployment -`website/siteConfig.js` -```javascript -{ - headerLinks: [ - ... - /* you can add docs */ - { doc: 'my-examples', label: 'Examples' }, - /* you can add custom pages */ - { page: 'help', label: 'Help' }, - /* you can add external links */ - { href: 'https://github.com/facebook/Docusaurus', label: 'GitHub' }, - ... - ], - ... -} ``` - -For more information about the navigation bar, click [here](https://docusaurus.io/docs/en/navigation) - -## Adding custom pages - -1. Docusaurus uses React components to build pages. The components are saved as .js files in `website/pages/en`: -1. If you want your page to show up in your navigation header, you will need to update `website/siteConfig.js` to add to the `headerLinks` element: - -`website/siteConfig.js` -```javascript -{ - headerLinks: [ - ... - { page: 'my-new-custom-page', label: 'My New Custom Page' }, - ... - ], - ... -} +$ GIT_USER= USE_SSH=1 yarn deploy ``` -For more information about custom pages, click [here](https://docusaurus.io/docs/en/custom-pages). - -# Full Documentation - -Full documentation can be found on the [website](https://docusaurus.io/). +If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. diff --git a/docusaurus/website/core/Footer.js b/docusaurus/website/core/Footer.js deleted file mode 100644 index f76c69521a8..00000000000 --- a/docusaurus/website/core/Footer.js +++ /dev/null @@ -1,123 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -const React = require('react'); - -class Footer extends React.Component { - docUrl(doc) { - // FIXME: this is a second argument but for some reason /en/ links don't work. - let language = ''; - - const baseUrl = this.props.config.baseUrl; - return `${baseUrl}docs/${language ? `${language}/` : ''}${doc}`; - } - - pageUrl(doc) { - // FIXME: this is a second argument but for some reason /en/ links don't work. - let language = ''; - - const baseUrl = this.props.config.baseUrl; - return baseUrl + (language ? `${language}/` : '') + doc; - } - - render() { - return ( -
- ); - } -} - -module.exports = Footer; diff --git a/docusaurus/website/docusaurus.config.js b/docusaurus/website/docusaurus.config.js new file mode 100644 index 00000000000..ad263b653cf --- /dev/null +++ b/docusaurus/website/docusaurus.config.js @@ -0,0 +1,118 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +const siteConfig = { + title: 'Create React App', + tagline: 'Set up a modern web app by running one command.', + url: 'https://create-react-app.dev', + baseUrl: '/', + projectName: 'create-react-app', + organizationName: 'facebook', + favicon: 'img/favicon/favicon.ico', + presets: [ + [ + '@docusaurus/preset-classic', + { + docs: { + path: '../docs', + sidebarPath: require.resolve('./sidebars.json'), + editUrl: + 'https://github.com/facebook/create-react-app/edit/master/docusaurus/docs/', + showLastUpdateAuthor: true, + showLastUpdateTime: true, + }, + theme: { + customCss: require.resolve('./src/css/custom.css'), + }, + }, + ], + ], + themeConfig: { + image: 'img/logo-og.png', + algolia: { + apiKey: '3be60f4f8ffc24c75da84857d6323791', + indexName: 'create-react-app', + }, + navbar: { + title: 'Create React App', + logo: { + alt: 'Create React App Logo', + src: 'img/logo.svg', + }, + links: [ + { to: 'docs/getting-started', label: 'Docs', position: 'right' }, + { + href: 'https://reactjs.org/community/support.html', + label: 'Help', + position: 'right', + }, + { + href: 'https://www.github.com/facebook/create-react-app', + label: 'GitHub', + position: 'right', + }, + ], + }, + footer: { + style: 'dark', + links: [ + { + title: 'Docs', + items: [ + { + label: 'Get Started', + to: 'docs/getting-started', + }, + { + label: 'Learn React', + href: 'https://reactjs.org/', + }, + ], + }, + { + title: 'Community', + items: [ + { + label: 'Stack Overflow', + href: + 'https://stackoverflow.com/questions/tagged/create-react-app', + }, + { + label: 'Spectrum', + href: 'https://spectrum.chat/create-react-app', + }, + { + label: 'Twitter', + href: 'https://twitter.com/reactjs', + }, + { + label: 'Contributor Covenant', + href: + 'https://www.contributor-covenant.org/version/1/4/code-of-conduct', + }, + ], + }, + { + title: 'Social', + items: [ + { + label: 'GitHub', + href: 'https://www.github.com/facebook/create-react-app', + }, + ], + }, + ], + logo: { + alt: 'Facebook Open Source Logo', + src: 'img/oss_logo.png', + }, + copyright: `Copyright © ${new Date().getFullYear()} Facebook, Inc.`, + }, + }, +}; + +module.exports = siteConfig; diff --git a/docusaurus/website/i18n/en.json b/docusaurus/website/i18n/en.json deleted file mode 100644 index b1c1ca9d038..00000000000 --- a/docusaurus/website/i18n/en.json +++ /dev/null @@ -1,178 +0,0 @@ -{ - "_comment": "This file is auto-generated by write-translations.js", - "localized-strings": { - "next": "Next", - "previous": "Previous", - "tagline": "Set up a modern web app by running one command.", - "docs": { - "adding-a-css-modules-stylesheet": { - "title": "Adding a CSS Modules Stylesheet", - "sidebar_label": "Adding CSS Modules" - }, - "adding-a-router": { - "title": "Adding a Router" - }, - "adding-a-sass-stylesheet": { - "title": "Adding a Sass Stylesheet", - "sidebar_label": "Adding Sass Stylesheets" - }, - "adding-a-stylesheet": { - "title": "Adding a Stylesheet", - "sidebar_label": "Adding Stylesheets" - }, - "adding-bootstrap": { - "title": "Adding Bootstrap" - }, - "adding-css-reset": { - "title": "Adding a CSS Reset", - "sidebar_label": "Adding CSS Reset" - }, - "adding-custom-environment-variables": { - "title": "Adding Custom Environment Variables", - "sidebar_label": "Environment Variables" - }, - "adding-flow": { - "title": "Adding Flow" - }, - "adding-images-fonts-and-files": { - "title": "Adding Images, Fonts, and Files" - }, - "adding-relay": { - "title": "Adding Relay" - }, - "adding-typescript": { - "title": "Adding TypeScript" - }, - "advanced-configuration": { - "title": "Advanced Configuration" - }, - "alternatives-to-ejecting": { - "title": "Alternatives to Ejecting" - }, - "analyzing-the-bundle-size": { - "title": "Analyzing the Bundle Size", - "sidebar_label": "Analyzing Bundle Size" - }, - "available-scripts": { - "title": "Available Scripts", - "sidebar_label": "Available Scripts" - }, - "can-i-use-decorators": { - "title": "Can I Use Decorators?" - }, - "code-splitting": { - "title": "Code Splitting" - }, - "debugging-tests": { - "title": "Debugging Tests", - "sidebar_label": "Debugging Tests" - }, - "deployment": { - "title": "Deployment", - "sidebar_label": "Deployment" - }, - "developing-components-in-isolation": { - "title": "Developing Components in Isolation" - }, - "documentation-intro": { - "title": "About the Documentation", - "sidebar_label": "About Docs" - }, - "fetching-data-with-ajax-requests": { - "title": "Fetching Data with AJAX Requests", - "sidebar_label": "Fetching Data" - }, - "folder-structure": { - "title": "Folder Structure" - }, - "getting-started": { - "title": "Getting Started" - }, - "importing-a-component": { - "title": "Importing a Component" - }, - "installing-a-dependency": { - "title": "Installing a Dependency" - }, - "integrating-with-an-api-backend": { - "title": "Integrating with an API Backend", - "sidebar_label": "Integrating with an API" - }, - "loading-graphql-files": { - "title": "Loading .graphql Files", - "sidebar_label": "Loading .graphql Files" - }, - "making-a-progressive-web-app": { - "title": "Making a Progressive Web App" - }, - "post-processing-css": { - "title": "Post-Processing CSS" - }, - "pre-rendering-into-static-html-files": { - "title": "Pre-Rendering into Static HTML Files", - "sidebar_label": "Pre-Rendering Static HTML" - }, - "production-build": { - "title": "Creating a Production Build" - }, - "proxying-api-requests-in-development": { - "title": "Proxying API Requests in Development", - "sidebar_label": "Proxying in Development" - }, - "running-tests": { - "title": "Running Tests" - }, - "setting-up-your-editor": { - "title": "Setting Up Your Editor", - "sidebar_label": "Editor Setup" - }, - "supported-browsers-features": { - "title": "Supported Browsers and Features", - "sidebar_label": "Supported Browsers and Features" - }, - "title-and-meta-tags": { - "title": "Title and Meta Tags", - "sidebar_label": "Title & Meta Tags" - }, - "troubleshooting": { - "title": "Troubleshooting", - "sidebar_label": "Troubleshooting" - }, - "updating-to-new-releases": { - "title": "Updating to New Releases" - }, - "using-global-variables": { - "title": "Using Global Variables" - }, - "using-https-in-development": { - "title": "Using HTTPS in Development", - "sidebar_label": "HTTPS in Development" - }, - "using-the-public-folder": { - "title": "Using the Public Folder" - } - }, - "links": { - "Docs": "Docs", - "Help": "Help", - "GitHub": "GitHub" - }, - "categories": { - "Welcome": "Welcome", - "Getting Started": "Getting Started", - "Development": "Development", - "Styles and Assets": "Styles and Assets", - "Building your App": "Building your App", - "Testing": "Testing", - "Back-End Integration": "Back-End Integration", - "Deployment": "Deployment", - "Advanced Usage": "Advanced Usage", - "Support": "Support" - } - }, - "pages-strings": { - "Help Translate|recruit community translators for your project": "Help Translate", - "Edit this Doc|recruitment message asking to edit the doc source": "Edit", - "Translate this Doc|recruitment message asking to translate the docs": "Translate" - } -} diff --git a/docusaurus/website/package.json b/docusaurus/website/package.json index 7d66debef68..a7158b8bba7 100644 --- a/docusaurus/website/package.json +++ b/docusaurus/website/package.json @@ -1,14 +1,27 @@ { "scripts": { - "examples": "docusaurus-examples", - "start": "docusaurus-start", - "build": "docusaurus-build", - "publish-gh-pages": "docusaurus-publish", - "write-translations": "docusaurus-write-translations", - "version": "docusaurus-version", - "rename-version": "docusaurus-rename-version" + "start": "docusaurus start", + "build": "docusaurus build", + "swizzle": "docusaurus swizzle", + "deploy": "docusaurus deploy" }, - "devDependencies": { - "docusaurus": "^1.7.2" + "dependencies": { + "@docusaurus/core": "^2.0.0-alpha.26", + "@docusaurus/preset-classic": "^2.0.0-alpha.26", + "classnames": "^2.2.6", + "react": "^16.10.2", + "react-dom": "^16.10.2" + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] } } diff --git a/docusaurus/website/pages/en/index.js b/docusaurus/website/pages/en/index.js deleted file mode 100755 index c7904f73e36..00000000000 --- a/docusaurus/website/pages/en/index.js +++ /dev/null @@ -1,187 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -const React = require('react'); - -const CompLibrary = require('../../core/CompLibrary.js'); - -const Container = CompLibrary.Container; -const GridBlock = CompLibrary.GridBlock; - -const siteConfig = require(`${process.cwd()}/siteConfig.js`); - -function imgUrl(img) { - return `${siteConfig.baseUrl}img/${img}`; -} - -function docUrl(doc, language) { - return `${siteConfig.baseUrl}docs/${language ? `${language}/` : ''}${doc}`; -} - -class Button extends React.Component { - render() { - return ( - - ); - } -} - -Button.defaultProps = { - target: '_self', -}; - -const SplashContainer = props => ( -
-
-
{props.children}
-
-
-); - -const Logo = props => ( -
- Project Logo -
-); - -const ProjectTitle = () => ( -

- {siteConfig.title} - {siteConfig.tagline} -

-); - -const PromoSection = props => ( -
-
-
{props.children}
-
-
-); - -class HomeSplash extends React.Component { - render() { - const language = this.props.language || ''; - return ( - - -
- - - - -
-
- ); - } -} - -const Block = props => ( - - - -); -Block.defaultProps = { - padding: ['bottom', 'top'], -}; - -const Features = props => ( - - {[ - { - title: 'Less to Learn', - content: - "You don't need to learn and configure many build tools. Instant reloads help you focus on development. When it's time to deploy, your bundles are optimized automatically.", - }, - { - title: 'Only One Dependency', - content: - 'Your app only needs one build dependency. We test Create React App to make sure that all of its underlying pieces work together seamlessly – no complicated version mismatches.', - }, - { - title: 'No Lock-In', - content: - 'Under the hood, we use Webpack, Babel, ESLint, and other amazing projects to power your app. If you ever want an advanced configuration, you can ”eject” from Create React App and edit their config files directly.', - }, - ]} - -); - -const GetStarted = props => ( - - {[ - { - title: 'Get started in seconds', - content: `Whether you’re using React or another library, Create React App lets you **focus on code, not build tools**. - -To create a project called \`my-app\`, run this command: - -\`\`\`sh -npx create-react-app my-app -\`\`\` -`, - }, - { - image: - 'https://camo.githubusercontent.com/29765c4a32f03bd01d44edef1cd674225e3c906b/68747470733a2f2f63646e2e7261776769742e636f6d2f66616365626f6f6b2f6372656174652d72656163742d6170702f323762343261632f73637265656e636173742e737667', - imageAlign: 'right', - }, - ]} - -); - -const Update = props => ( - - {[ - { - image: imgUrl('update.png'), - imageAlign: 'left', - }, - { - title: 'Easy to maintain', - content: `Updating your build tooling is typically a daunting and time-consuming task. When new versions of Create React App are released, you can upgrade using a single command: - -\`\`\`sh -npm install react-scripts@latest -\`\`\``, - }, - ]} - -); - -class Index extends React.Component { - render() { - const language = this.props.language || ''; - - return ( -
- -
- - - -
-
- ); - } -} - -module.exports = Index; diff --git a/docusaurus/website/siteConfig.js b/docusaurus/website/siteConfig.js deleted file mode 100644 index f848791f4a1..00000000000 --- a/docusaurus/website/siteConfig.js +++ /dev/null @@ -1,98 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -// See https://docusaurus.io/docs/site-config for all the possible -// site configuration options. - -const siteConfig = { - title: 'Create React App', // Title for your website. - tagline: 'Set up a modern web app by running one command.', - // For github.io type URLs, you would set the url and baseUrl like: - url: 'https://create-react-app.dev', - baseUrl: '/', - cname: 'create-react-app.dev', - editUrl: - 'https://github.com/facebook/create-react-app/edit/master/docusaurus/docs/', - - // Used for publishing and more - projectName: 'create-react-app', - organizationName: 'facebook', - // For top-level user or org sites, the organization is still the same. - // e.g., for the https://JoelMarcey.github.io site, it would be set like... - // organizationName: 'JoelMarcey' - - // For no header links in the top nav bar -> headerLinks: [], - headerLinks: [ - { doc: 'getting-started', label: 'Docs' }, - { href: 'https://reactjs.org/community/support.html', label: 'Help' }, - { - href: 'https://www.github.com/facebook/create-react-app', - label: 'GitHub', - }, - ], - - /* path to images for header/footer */ - headerIcon: 'img/logo.svg', - footerIcon: 'img/logo.svg', - favicon: 'img/favicon/favicon.ico', - - /* Colors for website */ - colors: { - primaryColor: '#20232a', - secondaryColor: '#61dafb', - }, - - /* Custom fonts for website */ - /* - fonts: { - myFont: [ - "Times New Roman", - "Serif" - ], - myOtherFont: [ - "-apple-system", - "system-ui" - ] - }, - */ - - // This copyright info is used in /core/Footer.js and blog RSS/Atom feeds. - copyright: `Copyright © ${new Date().getFullYear()} Facebook Inc.`, - - highlight: { - // Highlight.js theme to use for syntax highlighting in code blocks. - theme: 'default', - }, - - // Add custom scripts here that would be placed in