feat(v2): support/use React v17 by default (#4218)

* chore(v2): allow React v17 as peer dependency

* minor React 17 changes

* Revert examples

* Possible fix

* Use @docusaurus/react-loadable fork

* add back react-loadable to please eslint/ts/linters, even if it's unused in practice

* missing dependency bump

* move enzyme dependencies to docusaurus v1

Co-authored-by: slorber <lorber.sebastien@gmail.com>
This commit is contained in:
Alexey Pyltsyn 2021-02-12 19:04:45 +03:00 committed by GitHub
parent 6a94ad989c
commit 175d9c3c8e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
31 changed files with 118 additions and 57 deletions

View file

@ -33,4 +33,4 @@
] ]
}, },
"description": "Docusaurus example project" "description": "Docusaurus example project"
} }

View file

@ -50,4 +50,4 @@
] ]
}, },
"description": "Docusaurus example project (facebook template)" "description": "Docusaurus example project (facebook template)"
} }

View file

@ -102,8 +102,6 @@
"babel-eslint": "^10.0.3", "babel-eslint": "^10.0.3",
"concurrently": "^5.3.0", "concurrently": "^5.3.0",
"cross-env": "^7.0.3", "cross-env": "^7.0.3",
"enzyme": "^3.10.0",
"enzyme-adapter-react-16": "^1.15.1",
"eslint": "^7.13.0", "eslint": "^7.13.0",
"eslint-config-airbnb": "^18.2.1", "eslint-config-airbnb": "^18.2.1",
"eslint-config-prettier": "^6.15.0", "eslint-config-prettier": "^6.15.0",
@ -121,8 +119,8 @@
"netlify-cli": "^2.58.0", "netlify-cli": "^2.58.0",
"nodemon": "^2.0.7", "nodemon": "^2.0.7",
"prettier": "^2.0.2", "prettier": "^2.0.2",
"react": "^16.8.4", "react": "^17.0.1",
"react-dom": "^16.8.4", "react-dom": "^17.0.1",
"rimraf": "^3.0.2", "rimraf": "^3.0.2",
"serve": "^11.3.2", "serve": "^11.3.2",
"stylelint": "^13.2.1", "stylelint": "^13.2.1",

View file

@ -45,6 +45,8 @@
"commander": "^4.0.1", "commander": "^4.0.1",
"crowdin-cli": "^0.3.0", "crowdin-cli": "^0.3.0",
"cssnano": "^4.1.10", "cssnano": "^4.1.10",
"enzyme": "^3.10.0",
"enzyme-adapter-react-16": "^1.15.1",
"escape-string-regexp": "^2.0.0", "escape-string-regexp": "^2.0.0",
"express": "^4.17.1", "express": "^4.17.1",
"feed": "^4.2.1", "feed": "^4.2.1",

View file

@ -17,8 +17,8 @@
"@docusaurus/preset-bootstrap": "2.0.0-alpha.70", "@docusaurus/preset-bootstrap": "2.0.0-alpha.70",
"@mdx-js/react": "^1.5.8", "@mdx-js/react": "^1.5.8",
"classnames": "^2.2.6", "classnames": "^2.2.6",
"react": "^16.8.4", "react": "^17.0.1",
"react-dom": "^16.8.4" "react-dom": "^17.0.1"
}, },
"browserslist": { "browserslist": {
"production": [ "production": [

View file

@ -17,8 +17,8 @@
"@docusaurus/preset-classic": "2.0.0-alpha.70", "@docusaurus/preset-classic": "2.0.0-alpha.70",
"@mdx-js/react": "^1.6.21", "@mdx-js/react": "^1.6.21",
"clsx": "^1.1.1", "clsx": "^1.1.1",
"react": "^16.8.4", "react": "^17.0.1",
"react-dom": "^16.8.4" "react-dom": "^17.0.1"
}, },
"browserslist": { "browserslist": {
"production": [ "production": [

View file

@ -21,8 +21,8 @@
"@docusaurus/preset-classic": "2.0.0-alpha.70", "@docusaurus/preset-classic": "2.0.0-alpha.70",
"@mdx-js/react": "^1.6.21", "@mdx-js/react": "^1.6.21",
"clsx": "^1.1.1", "clsx": "^1.1.1",
"react": "^16.8.4", "react": "^17.0.1",
"react-dom": "^16.8.4" "react-dom": "^17.0.1"
}, },
"devDependencies": { "devDependencies": {
"babel-eslint": "^10.0.3", "babel-eslint": "^10.0.3",

View file

@ -44,8 +44,8 @@
"unist-util-remove-position": "^2.0.1" "unist-util-remove-position": "^2.0.1"
}, },
"peerDependencies": { "peerDependencies": {
"react": "^16.8.4", "react": "^16.8.4 || ^17.0.0",
"react-dom": "^16.8.4" "react-dom": "^16.8.4 || ^17.0.0"
}, },
"engines": { "engines": {
"node": ">=10.15.1" "node": ">=10.15.1"

View file

@ -106,8 +106,8 @@ export async function migrateDocusaurusProject(
'@docusaurus/core': DOCUSAURUS_VERSION, '@docusaurus/core': DOCUSAURUS_VERSION,
'@docusaurus/preset-classic': DOCUSAURUS_VERSION, '@docusaurus/preset-classic': DOCUSAURUS_VERSION,
clsx: '^1.1.1', clsx: '^1.1.1',
react: '^16.10.2', react: '^17.0.1',
'react-dom': '^16.10.2', 'react-dom': '^17.0.1',
}; };
try { try {
createClientRedirects(siteConfig, deps, config); createClientRedirects(siteConfig, deps, config);

View file

@ -29,8 +29,8 @@
"lodash": "^4.17.20" "lodash": "^4.17.20"
}, },
"peerDependencies": { "peerDependencies": {
"react": "^16.8.4", "react": "^16.8.4 || ^17.0.0",
"react-dom": "^16.8.4" "react-dom": "^16.8.4 || ^17.0.0"
}, },
"engines": { "engines": {
"node": ">=10.9.0" "node": ">=10.9.0"

View file

@ -35,8 +35,8 @@
"webpack": "^4.44.1" "webpack": "^4.44.1"
}, },
"peerDependencies": { "peerDependencies": {
"react": "^16.8.4", "react": "^16.8.4 || ^17.0.0",
"react-dom": "^16.8.4" "react-dom": "^16.8.4 || ^17.0.0"
}, },
"engines": { "engines": {
"node": ">=10.15.1" "node": ">=10.15.1"

View file

@ -48,8 +48,8 @@
"webpack": "^4.44.1" "webpack": "^4.44.1"
}, },
"peerDependencies": { "peerDependencies": {
"react": "^16.8.4", "react": "^16.8.4 || ^17.0.0",
"react-dom": "^16.8.4" "react-dom": "^16.8.4 || ^17.0.0"
}, },
"engines": { "engines": {
"node": ">=10.15.1" "node": ">=10.15.1"

View file

@ -33,8 +33,8 @@
"webpack": "^4.44.1" "webpack": "^4.44.1"
}, },
"peerDependencies": { "peerDependencies": {
"react": "^16.8.4", "react": "^16.8.4 || ^17.0.0",
"react-dom": "^16.8.4" "react-dom": "^16.8.4 || ^17.0.0"
}, },
"engines": { "engines": {
"node": ">=10.15.1" "node": ">=10.15.1"

View file

@ -23,8 +23,8 @@
"react-json-view": "^1.20.4" "react-json-view": "^1.20.4"
}, },
"peerDependencies": { "peerDependencies": {
"react": "^16.8.4", "react": "^16.8.4 || ^17.0.0",
"react-dom": "^16.8.4" "react-dom": "^16.8.4 || ^17.0.0"
}, },
"engines": { "engines": {
"node": ">=10.15.1" "node": ">=10.15.1"

View file

@ -16,8 +16,8 @@
"@docusaurus/core": "2.0.0-alpha.70" "@docusaurus/core": "2.0.0-alpha.70"
}, },
"peerDependencies": { "peerDependencies": {
"react": "^16.8.4", "react": "^16.8.4 || ^17.0.0",
"react-dom": "^16.8.4" "react-dom": "^16.8.4 || ^17.0.0"
}, },
"engines": { "engines": {
"node": ">=10.15.1" "node": ">=10.15.1"

View file

@ -16,8 +16,8 @@
"@docusaurus/core": "2.0.0-alpha.70" "@docusaurus/core": "2.0.0-alpha.70"
}, },
"peerDependencies": { "peerDependencies": {
"react": "^16.8.4", "react": "^16.8.4 || ^17.0.0",
"react-dom": "^16.8.4" "react-dom": "^16.8.4 || ^17.0.0"
}, },
"engines": { "engines": {
"node": ">=10.15.1" "node": ">=10.15.1"

View file

@ -30,8 +30,8 @@
"webpack": "^4.44.1" "webpack": "^4.44.1"
}, },
"peerDependencies": { "peerDependencies": {
"react": "^16.8.4", "react": "^16.8.4 || ^17.0.0",
"react-dom": "^16.8.4" "react-dom": "^16.8.4 || ^17.0.0"
}, },
"engines": { "engines": {
"node": ">=10.15.1" "node": ">=10.15.1"

View file

@ -29,7 +29,7 @@
"workbox-window": "^6.0.2" "workbox-window": "^6.0.2"
}, },
"peerDependencies": { "peerDependencies": {
"react": "^16.8.4", "react": "^16.8.4 || ^17.0.0",
"react-dom": "^16.8.4" "react-dom": "^16.8.4 || ^17.0.0"
} }
} }

View file

@ -25,8 +25,8 @@
"sitemap": "^3.2.2" "sitemap": "^3.2.2"
}, },
"peerDependencies": { "peerDependencies": {
"react": "^16.8.4", "react": "^16.8.4 || ^17.0.0",
"react-dom": "^16.8.4" "react-dom": "^16.8.4 || ^17.0.0"
}, },
"engines": { "engines": {
"node": ">=10.15.1" "node": ">=10.15.1"

View file

@ -20,8 +20,8 @@
"@docusaurus/theme-bootstrap": "2.0.0-alpha.70" "@docusaurus/theme-bootstrap": "2.0.0-alpha.70"
}, },
"peerDependencies": { "peerDependencies": {
"react": "^16.8.4", "react": "^16.8.4 || ^17.0.0",
"react-dom": "^16.8.4" "react-dom": "^16.8.4 || ^17.0.0"
}, },
"engines": { "engines": {
"node": ">=10.15.1" "node": ">=10.15.1"

View file

@ -25,8 +25,8 @@
"@docusaurus/theme-search-algolia": "2.0.0-alpha.70" "@docusaurus/theme-search-algolia": "2.0.0-alpha.70"
}, },
"peerDependencies": { "peerDependencies": {
"react": "^16.8.4", "react": "^16.8.4 || ^17.0.0",
"react-dom": "^16.8.4" "react-dom": "^16.8.4 || ^17.0.0"
}, },
"engines": { "engines": {
"node": ">=10.15.1" "node": ">=10.15.1"

View file

@ -21,8 +21,8 @@
"to-vfile": "^6.0.0" "to-vfile": "^6.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"react": "^16.8.4", "react": "^16.8.4 || ^17.0.0",
"react-dom": "^16.8.4" "react-dom": "^16.8.4 || ^17.0.0"
}, },
"engines": { "engines": {
"node": ">=10.15.1" "node": ">=10.15.1"

View file

@ -50,8 +50,8 @@
"@docusaurus/module-type-aliases": "2.0.0-alpha.70" "@docusaurus/module-type-aliases": "2.0.0-alpha.70"
}, },
"peerDependencies": { "peerDependencies": {
"react": "^16.8.4", "react": "^16.8.4 || ^17.0.0",
"react-dom": "^16.8.4" "react-dom": "^16.8.4 || ^17.0.0"
}, },
"engines": { "engines": {
"node": ">=10.15.1" "node": ">=10.15.1"

View file

@ -28,8 +28,8 @@
"@docusaurus/module-type-aliases": "2.0.0-alpha.70" "@docusaurus/module-type-aliases": "2.0.0-alpha.70"
}, },
"peerDependencies": { "peerDependencies": {
"react": "^16.8.4", "react": "^16.8.4 || ^17.0.0",
"react-dom": "^16.8.4" "react-dom": "^16.8.4 || ^17.0.0"
}, },
"engines": { "engines": {
"node": ">=10.15.1" "node": ">=10.15.1"

View file

@ -21,8 +21,8 @@
"react-live": "^2.2.3" "react-live": "^2.2.3"
}, },
"peerDependencies": { "peerDependencies": {
"react": "^16.8.4", "react": "^16.8.4 || ^17.0.0",
"react-dom": "^16.8.4" "react-dom": "^16.8.4 || ^17.0.0"
}, },
"engines": { "engines": {
"node": ">=10.15.1" "node": ">=10.15.1"

View file

@ -25,8 +25,8 @@
"lodash": "^4.17.19" "lodash": "^4.17.19"
}, },
"peerDependencies": { "peerDependencies": {
"react": "^16.8.4", "react": "^16.8.4 || ^17.0.0",
"react-dom": "^16.8.4" "react-dom": "^16.8.4 || ^17.0.0"
}, },
"engines": { "engines": {
"node": ">=10.15.1" "node": ">=10.15.1"

View file

@ -50,6 +50,7 @@
"@babel/runtime-corejs3": "^7.12.5", "@babel/runtime-corejs3": "^7.12.5",
"@babel/traverse": "^7.12.12", "@babel/traverse": "^7.12.12",
"@docusaurus/cssnano-preset": "2.0.0-alpha.70", "@docusaurus/cssnano-preset": "2.0.0-alpha.70",
"@docusaurus/react-loadable": "5.5.0",
"@docusaurus/types": "2.0.0-alpha.70", "@docusaurus/types": "2.0.0-alpha.70",
"@docusaurus/utils": "2.0.0-alpha.70", "@docusaurus/utils": "2.0.0-alpha.70",
"@docusaurus/utils-validation": "2.0.0-alpha.70", "@docusaurus/utils-validation": "2.0.0-alpha.70",
@ -86,6 +87,7 @@
"lodash.isplainobject": "^4.0.6", "lodash.isplainobject": "^4.0.6",
"lodash.isstring": "^4.0.1", "lodash.isstring": "^4.0.1",
"mini-css-extract-plugin": "^0.8.0", "mini-css-extract-plugin": "^0.8.0",
"module-alias": "^2.2.2",
"nprogress": "^0.2.0", "nprogress": "^0.2.0",
"null-loader": "^4.0.0", "null-loader": "^4.0.0",
"optimize-css-assets-webpack-plugin": "^5.0.4", "optimize-css-assets-webpack-plugin": "^5.0.4",
@ -116,8 +118,8 @@
"webpackbar": "^5.0.0-3" "webpackbar": "^5.0.0-3"
}, },
"peerDependencies": { "peerDependencies": {
"react": "^16.8.4", "react": "^16.8.4 || ^17.0.0",
"react-dom": "^16.8.4" "react-dom": "^16.8.4 || ^17.0.0"
}, },
"engines": { "engines": {
"node": ">=10.15.1" "node": ">=10.15.1"

View file

@ -20,6 +20,7 @@ import {
getMinimizer, getMinimizer,
} from './utils'; } from './utils';
import {STATIC_DIR_NAME} from '../constants'; import {STATIC_DIR_NAME} from '../constants';
import SharedModuleAliases from './sharedModuleAliases';
const CSS_REGEX = /\.css$/; const CSS_REGEX = /\.css$/;
const CSS_MODULE_REGEX = /\.module\.css$/; const CSS_MODULE_REGEX = /\.module\.css$/;
@ -101,6 +102,8 @@ export function createBaseConfig(
process.cwd(), process.cwd(),
], ],
alias: { alias: {
...SharedModuleAliases,
'@site': siteDir, '@site': siteDir,
'@generated': generatedFilesDir, '@generated': generatedFilesDir,

View file

@ -0,0 +1,19 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import moduleAlias from 'module-alias';
// The shared module aliases are module aliases that need to work in both SSR/NodeJS + Webpack
const SharedModuleAliases = {
// Useful to fix the react-loadable warning
// See https://github.com/jamiebuilds/react-loadable/pull/213#issuecomment-778246548
'react-loadable': '@docusaurus/react-loadable',
};
moduleAlias.addAliases(SharedModuleAliases);
export default SharedModuleAliases;

View file

@ -40,8 +40,8 @@
"clsx": "^1.1.1", "clsx": "^1.1.1",
"color": "^3.1.3", "color": "^3.1.3",
"npm-to-yarn": "^1.0.0-2", "npm-to-yarn": "^1.0.0-2",
"react": "^16.8.4", "react": "^17.0.1",
"react-dom": "^16.8.4", "react-dom": "^17.0.1",
"workbox-routing": "^5.0.0", "workbox-routing": "^5.0.0",
"workbox-strategies": "^5.0.0" "workbox-strategies": "^5.0.0"
}, },

View file

@ -1120,9 +1120,9 @@
regenerator-runtime "^0.13.4" regenerator-runtime "^0.13.4"
"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.2.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.2.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4":
version "7.12.5" version "7.12.13"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.13.tgz#0a21452352b02542db0ffb928ac2d3ca7cb6d66d"
integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== integrity sha512-8+3UMPBrjFa/6TtKi/7sehPKqfAm4g6K+YQjyyFOLUTxzOngcRZTlAVY8sc2CORJYqdHQY8gRPHmn+qo15rCBw==
dependencies: dependencies:
regenerator-runtime "^0.13.4" regenerator-runtime "^0.13.4"
@ -1263,6 +1263,13 @@
"@docsearch/css" "3.0.0-alpha.32" "@docsearch/css" "3.0.0-alpha.32"
algoliasearch "^4.0.0" algoliasearch "^4.0.0"
"@docusaurus/react-loadable@5.5.0":
version "5.5.0"
resolved "https://registry.yarnpkg.com/@docusaurus/react-loadable/-/react-loadable-5.5.0.tgz#6d6f0c8fd9a434b62a1ab1f8645ee7bde5a9ec21"
integrity sha512-Ld/kwUE6yATIOTLq3JCsWiTa/drisajwKqBQ2Rw6IcT+sFsKfYek8F2jSH8f68AT73xX97UehduZeCSlnuCBIg==
dependencies:
prop-types "^15.6.2"
"@endiliey/react-ideal-image@^0.0.11": "@endiliey/react-ideal-image@^0.0.11":
version "0.0.11" version "0.0.11"
resolved "https://registry.yarnpkg.com/@endiliey/react-ideal-image/-/react-ideal-image-0.0.11.tgz#dc3803d04e1409cf88efa4bba0f67667807bdf27" resolved "https://registry.yarnpkg.com/@endiliey/react-ideal-image/-/react-ideal-image-0.0.11.tgz#dc3803d04e1409cf88efa4bba0f67667807bdf27"
@ -13693,6 +13700,11 @@ modify-values@^1.0.0:
resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022"
integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==
module-alias@^2.2.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/module-alias/-/module-alias-2.2.2.tgz#151cdcecc24e25739ff0aa6e51e1c5716974c0e0"
integrity sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q==
module-definition@^3.3.0: module-definition@^3.3.0:
version "3.3.0" version "3.3.0"
resolved "https://registry.yarnpkg.com/module-definition/-/module-definition-3.3.0.tgz#aae06d68c99c5f93841e59b8a4469b974956d4d4" resolved "https://registry.yarnpkg.com/module-definition/-/module-definition-3.3.0.tgz#aae06d68c99c5f93841e59b8a4469b974956d4d4"
@ -16721,6 +16733,15 @@ react-dom@^16.8.4:
prop-types "^15.6.2" prop-types "^15.6.2"
scheduler "^0.19.1" scheduler "^0.19.1"
react-dom@^17.0.1:
version "17.0.1"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.1.tgz#1de2560474ec9f0e334285662ede52dbc5426fc6"
integrity sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
scheduler "^0.20.1"
react-error-overlay@^6.0.3, react-error-overlay@^6.0.7: react-error-overlay@^6.0.3, react-error-overlay@^6.0.7:
version "6.0.7" version "6.0.7"
resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.7.tgz#1dcfb459ab671d53f660a991513cb2f0a0553108" resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.7.tgz#1dcfb459ab671d53f660a991513cb2f0a0553108"
@ -16899,6 +16920,14 @@ react@^16.8.4:
object-assign "^4.1.1" object-assign "^4.1.1"
prop-types "^15.6.2" prop-types "^15.6.2"
react@^17.0.1:
version "17.0.1"
resolved "https://registry.yarnpkg.com/react/-/react-17.0.1.tgz#6e0600416bd57574e3f86d92edba3d9008726127"
integrity sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
reactstrap@^8.4.1: reactstrap@^8.4.1:
version "8.5.1" version "8.5.1"
resolved "https://registry.yarnpkg.com/reactstrap/-/reactstrap-8.5.1.tgz#dde43539602117888a138042b53703b7621c4318" resolved "https://registry.yarnpkg.com/reactstrap/-/reactstrap-8.5.1.tgz#dde43539602117888a138042b53703b7621c4318"
@ -17808,6 +17837,14 @@ scheduler@^0.19.1:
loose-envify "^1.1.0" loose-envify "^1.1.0"
object-assign "^4.1.1" object-assign "^4.1.1"
scheduler@^0.20.1:
version "0.20.1"
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.1.tgz#da0b907e24026b01181ecbc75efdc7f27b5a000c"
integrity sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
schema-utils@^1.0.0: schema-utils@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"