From c05396b8d08c5e3c0528bebfaea371ed5aa3eddf Mon Sep 17 00:00:00 2001 From: Anton Korzunov Date: Tue, 22 Sep 2020 22:46:12 +1000 Subject: [PATCH] feat: support React 17 (#1557) * feat: support React 17 * add react 17 tests * fix: use enzyme 16 adapter for React 17 * fix: add React 17 support for lazy, related to #1425 * ci uses absolute paths * fix: split trackTailUpdate into two options. Enable lazy wrapping by default * update tests * update yarn.lock * linting * reverse wrapLazy option effect --- examples/styled-components/package.json | 4 +- examples/styled-components/yarn.lock | 36 +-- package.json | 7 +- scripts/ci.sh | 46 +--- scripts/react-15.ci.sh | 14 + scripts/react-16.ci.sh | 29 +++ scripts/react-17.ci.sh | 13 + src/configuration.js | 3 + src/hot.dev.js | 2 + src/reconciler/fiberUpdater.js | 68 ++++- src/webpack/patch.js | 14 + test/hot/react-dom.integration.spec.js | 2 +- test/hot/react-dom.no-integration.spec.js | 2 +- testConfig/setupTests.js | 4 +- yarn.lock | 299 +++++++++++++++++++++- 15 files changed, 445 insertions(+), 98 deletions(-) create mode 100755 scripts/react-15.ci.sh create mode 100755 scripts/react-16.ci.sh create mode 100755 scripts/react-17.ci.sh diff --git a/examples/styled-components/package.json b/examples/styled-components/package.json index 79cdb3c19..013494fa3 100644 --- a/examples/styled-components/package.json +++ b/examples/styled-components/package.json @@ -23,8 +23,8 @@ "dependencies": { "babel-polyfill": "^6.26.0", "emotion": "^8.0.12", - "react": "^16.13.1", - "react-dom": "^16.13.1", + "react": "^17.0.0-rc.2", + "react-dom": "^17.0.0-rc.2", "react-emotion": "^9.2.12", "react-hot-loader": "^4.12.21", "react-spring": "^8.0.25", diff --git a/examples/styled-components/yarn.lock b/examples/styled-components/yarn.lock index c9b7fe7bf..1e9026640 100644 --- a/examples/styled-components/yarn.lock +++ b/examples/styled-components/yarn.lock @@ -4118,14 +4118,6 @@ prop-types@^15.6.1: loose-envify "^1.3.1" object-assign "^4.1.1" -prop-types@^15.6.2: - version "15.6.2" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102" - integrity sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ== - dependencies: - loose-envify "^1.3.1" - object-assign "^4.1.1" - proxy-addr@~2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.2.tgz#6571504f47bb988ec8180253f85dd7e14952bdec" @@ -4247,15 +4239,14 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-dom@^16.13.1: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" - integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== +react-dom@^17.0.0-rc.2: + version "17.0.0-rc.2" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.0-rc.2.tgz#7c13267e1e97d53d9a6395ef1acf1a44157dc38a" + integrity sha512-Nx6SK3s8dhQbKeOoRYPpQcYTrhojXw6nrX7Lb/rpMKyAp1wfhyzC3ukZtWczwILR9h4MzxtTLt/IIs8Bk4XqcQ== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.19.1" + scheduler "0.20.0-rc.2" react-emotion@^9.2.12: version "9.2.12" @@ -4307,14 +4298,13 @@ react-spring@^8.0.25: "@babel/runtime" "^7.3.1" prop-types "^15.5.8" -react@^16.13.1: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" - integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== +react@^17.0.0-rc.2: + version "17.0.0-rc.2" + resolved "https://registry.yarnpkg.com/react/-/react-17.0.0-rc.2.tgz#3d454a888c119f5bde8ac016840aab8ecda22413" + integrity sha512-Z/qj0VWOF0e7VlUY2IhQr05vQ/gFSGlqmPMgxD4JytqmQxh5T7We0t5n1M98UmgJyRFTSbdCs58ZEyv6WwacWA== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" - prop-types "^15.6.2" "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@~2.3.6: version "2.3.6" @@ -4556,10 +4546,10 @@ sax@^1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -scheduler@^0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" - integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== +scheduler@0.20.0-rc.2: + version "0.20.0-rc.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.0-rc.2.tgz#5c48ac29e1a352a43c74cb5fc54c5ca94d8396fc" + integrity sha512-tgvUKHPbQr0fq5EfRd3S8hgohi/fI3h/gv1jxVb9IungCF/t2jUG946dlwgCxy8bnYvSIwRjcuw7eksDDpplLg== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" diff --git a/package.json b/package.json index 7f0cda07d..798fb53b7 100644 --- a/package.json +++ b/package.json @@ -54,6 +54,7 @@ "devDependencies": { "@hot-loader/react-dom": "^16.8.6", "@types/react": "16", + "@wojtekmaj/enzyme-adapter-react-17": "^0.1.1", "babel-cli": "^6.7.5", "babel-core": "^6.26.3", "babel-eslint": "^8.2.3", @@ -99,9 +100,9 @@ "yarn-deduplicate": "^1.1.1" }, "peerDependencies": { - "@types/react": "^15.0.0 || ^16.0.0", - "react": "^15.0.0 || ^16.0.0", - "react-dom": "^15.0.0 || ^16.0.0" + "@types/react": "^15.0.0 || ^16.0.0 || ^17.0.0 ", + "react": "^15.0.0 || ^16.0.0 || ^17.0.0 ", + "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 " }, "peerDependenciesMeta": { "@types/react": { diff --git a/scripts/ci.sh b/scripts/ci.sh index 5e7594b08..7f6d14c46 100755 --- a/scripts/ci.sh +++ b/scripts/ci.sh @@ -8,47 +8,5 @@ echo "Linting" yarn lint echo "\n\n" -echo "Installing React 15" -yarn add react@15 react-dom@15 react-test-renderer@15 --pure-lockfile -echo "\n\n" - -yarn test:react-dom:prepare - -# echo "Running tests on React 15 - Babel ES2015" -# yarn test:es2015 -# echo "\n\n" - -# echo "Running tests on React 15 - Babel Modern" -# yarn test:modern -# echo "\n\n" -# echo "\n\n" - -echo "Installing React 16.10" -yarn add react@16 react-dom@16.10 react-test-renderer@16.10 --pure-lockfile -echo "\n\n" - -yarn test:react-dom:prepare - -echo "Running tests on React 16.10 - Babel ES2015" -yarn test:es2015 -echo "\n\n" - -echo "Running tests on React 16.10 - Babel Modern" -yarn test:modern --coverage && codecov -echo "\n\n" - - - -echo "Installing React 16:latest" -yarn add react@16 react-dom@16 react-test-renderer@16 --pure-lockfile -echo "\n\n" - -yarn test:react-dom:prepare - -echo "Running tests on React 16:latest - Babel ES2015" -yarn test:es2015 -echo "\n\n" - -echo "Running tests on React 16:latest - Babel Modern" -yarn test:modern --coverage && codecov -echo "\n\n" +./scripts/react-16.ci.sh +./scripts/react-17.ci.sh \ No newline at end of file diff --git a/scripts/react-15.ci.sh b/scripts/react-15.ci.sh new file mode 100755 index 000000000..596f1440e --- /dev/null +++ b/scripts/react-15.ci.sh @@ -0,0 +1,14 @@ +echo "Installing React 15" +yarn add react@15 react-dom@15 react-test-renderer@15 --pure-lockfile +echo "\n\n" + +yarn test:react-dom:prepare + + echo "Running tests on React 15 - Babel ES2015" + yarn test:es2015 + echo "\n\n" + + echo "Running tests on React 15 - Babel Modern" + yarn test:modern + echo "\n\n" + echo "\n\n" \ No newline at end of file diff --git a/scripts/react-16.ci.sh b/scripts/react-16.ci.sh new file mode 100755 index 000000000..1c3557fd4 --- /dev/null +++ b/scripts/react-16.ci.sh @@ -0,0 +1,29 @@ +echo "Installing React 16.10" +yarn add react@16 react-dom@16.10 react-test-renderer@16.10 --pure-lockfile +echo "\n\n" + +yarn test:react-dom:prepare + +echo "Running tests on React 16.10 - Babel ES2015" +yarn test:es2015 +echo "\n\n" + +echo "Running tests on React 16.10 - Babel Modern" +yarn test:modern --coverage && codecov +echo "\n\n" + + + +echo "Installing React 16:latest" +yarn add react@16 react-dom@16 react-test-renderer@16 --pure-lockfile +echo "\n\n" + +yarn test:react-dom:prepare + +echo "Running tests on React 16:latest - Babel ES2015" +yarn test:es2015 +echo "\n\n" + +echo "Running tests on React 16:latest - Babel Modern" +yarn test:modern --coverage && codecov +echo "\n\n" \ No newline at end of file diff --git a/scripts/react-17.ci.sh b/scripts/react-17.ci.sh new file mode 100755 index 000000000..4dfe8c6a2 --- /dev/null +++ b/scripts/react-17.ci.sh @@ -0,0 +1,13 @@ +echo "Installing React 17" +yarn add react@17.0.0-rc.2 react-dom@17.0.0-rc.2 react-test-renderer@17.0.0-rc.2 --pure-lockfile +echo "\n\n" + +yarn test:react-dom:prepare + +echo "Running tests on React 17 - Babel ES2015" +yarn test:es2015 +echo "\n\n" + +echo "Running tests on React 17 - Babel Modern" +yarn test:modern --coverage && codecov +echo "\n\n" diff --git a/src/configuration.js b/src/configuration.js index 12955ffaf..4b41fde92 100644 --- a/src/configuration.js +++ b/src/configuration.js @@ -58,6 +58,9 @@ const configuration = { // Actively track lazy loaded components trackTailUpdates: true, + // wrap lazy with AppProvider to allow independent updates + wrapLazy: true, + // react hot dom features enabled IS_REACT_MERGE_ENABLED: false, }; diff --git a/src/hot.dev.js b/src/hot.dev.js index 9f303bc80..99aee99e7 100644 --- a/src/hot.dev.js +++ b/src/hot.dev.js @@ -177,4 +177,6 @@ const hot = sourceModule => { }; }; +reactHotLoader.register(AppContainer, 'AppContainer', 'hot-dev'); + export default hot; diff --git a/src/reconciler/fiberUpdater.js b/src/reconciler/fiberUpdater.js index 1dbe9c342..7b42e9e8d 100644 --- a/src/reconciler/fiberUpdater.js +++ b/src/reconciler/fiberUpdater.js @@ -1,3 +1,4 @@ +/* eslint-disable no-underscore-dangle */ import React from 'react'; import configuration from '../configuration'; import { enterHotUpdate } from '../global/generation'; @@ -6,38 +7,77 @@ import { resolveType } from './resolver'; const lazyConstructor = '_ctor'; +const getLazyConstructor = target => { + // React 16 + if (target[lazyConstructor]) { + return target[lazyConstructor]; + } + + // React 17 + if (target._payload) { + return target._payload._result; + } + return null; +}; + +const setLazyConstructor = (target, replacement) => { + replacement.isPatchedByReactHotLoader = true; + + // React 16 + if (target[lazyConstructor]) { + target[lazyConstructor] = replacement; + } + // React 17 + else if (target._payload) { + target._payload._hotUpdated = true; + target._payload._result = replacement; + } else { + console.error('could not update lazy component'); + } +}; + +const patched = fn => { + fn.isPatchedByReactHotLoader = true; + return fn; +}; + const patchLazyConstructor = target => { - if (!configuration.trackTailUpdates && !target[lazyConstructor].isPatchedByReactHotLoader) { - const ctor = target[lazyConstructor]; - target[lazyConstructor] = () => + if (configuration.wrapLazy && !getLazyConstructor(target).isPatchedByReactHotLoader) { + const ctor = getLazyConstructor(target); + setLazyConstructor(target, () => ctor().then(m => { const C = resolveType(m.default); // chunks has been updated - new hot loader process is taking a place enterHotUpdate(); if (!React.forwardRef) { return { - default: props => ( + default: patched(props => ( - ), + )), }; } return { - default: React.forwardRef((props, ref) => ( - - - - )), + default: patched( + // eslint-disable-next-line prefer-arrow-callback + React.forwardRef(function HotLoaderLazyWrapper(props, ref) { + return ( + + + + ); + }), + ), }; - }); - target[lazyConstructor].isPatchedByReactHotLoader = true; + }), + ); } }; export const updateLazy = (target, type) => { - const ctor = type[lazyConstructor]; - if (target[lazyConstructor] !== type[lazyConstructor]) { + const ctor = getLazyConstructor(type); + if (getLazyConstructor(target) !== ctor) { // just execute `import` and RHL.register will do the job ctor(); } diff --git a/src/webpack/patch.js b/src/webpack/patch.js index cf41e1e72..eae6feccb 100644 --- a/src/webpack/patch.js +++ b/src/webpack/patch.js @@ -59,6 +59,20 @@ const additional = { 'if (current!== null&&hotCompareElements(current.type,element.type,hotUpdateChild(current)))', ], + '17.0.0-rc1': [ + 'function createFiberFromTypeAndProps(type, // React$ElementType\n' + + 'key, pendingProps, owner, mode, lanes) {', + 'function createFiberFromTypeAndProps(type, // React$ElementType\n' + + 'key, pendingProps, owner, mode, lanes) {type = hotResolveType(type);', + ], + + '17.0.0-rc1-compact': [ + 'function createFiberFromTypeAndProps(type,// React$ElementType\n' + + 'key,pendingProps,owner,mode,lanes){', + 'function createFiberFromTypeAndProps(type,// React$ElementType\n' + + 'key,pendingProps,owner,mode,lanes){type = hotResolveType(type);', + ], + '16.8-type': [ 'function createFiberFromTypeAndProps(type, // React$ElementType\nkey, pendingProps, owner, mode, expirationTime) {', 'function createFiberFromTypeAndProps(type, // React$ElementType\nkey, pendingProps, owner, mode, expirationTime) {type = hotResolveType(type);', diff --git a/test/hot/react-dom.integration.spec.js b/test/hot/react-dom.integration.spec.js index 6b4bb2a57..cb94dcee6 100644 --- a/test/hot/react-dom.integration.spec.js +++ b/test/hot/react-dom.integration.spec.js @@ -432,7 +432,7 @@ describe(`🔥-dom`, () => { it('support lazy memo forward in Provider', () => { setConfig({ - trackTailUpdates: false, + wrapLazy: false, }); const spy = jest.fn(); diff --git a/test/hot/react-dom.no-integration.spec.js b/test/hot/react-dom.no-integration.spec.js index 791f3899c..312089e81 100644 --- a/test/hot/react-dom.no-integration.spec.js +++ b/test/hot/react-dom.no-integration.spec.js @@ -271,7 +271,7 @@ describe(`🔥-dom`, () => { it('support lazy memo forward', () => { setConfig({ - trackTailUpdates: false, + wrapLazy: false, }); const spy = jest.fn(); diff --git a/testConfig/setupTests.js b/testConfig/setupTests.js index a672f1704..54fe459cf 100644 --- a/testConfig/setupTests.js +++ b/testConfig/setupTests.js @@ -7,9 +7,11 @@ function getAdapter() { return require('enzyme-adapter-react-15'); } else if (React.version.startsWith('16')) { return require('enzyme-adapter-react-16'); + } else if (React.version.startsWith('17')) { + return require('@wojtekmaj/enzyme-adapter-react-17'); } - return null; + throw new Error('this version of React is not supported by Enzyme'); } const Adapter = getAdapter(); diff --git a/yarn.lock b/yarn.lock index fdb5e1142..fac712145 100644 --- a/yarn.lock +++ b/yarn.lock @@ -172,6 +172,21 @@ "@types/prop-types" "*" csstype "^2.2.0" +"@wojtekmaj/enzyme-adapter-react-17@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@wojtekmaj/enzyme-adapter-react-17/-/enzyme-adapter-react-17-0.1.1.tgz#f682bb4ead004cd28660b243779c8ede6a053a49" + integrity sha512-LFQXbtz2SeiSc+TGv5F59WVSONiBI3U8y+xw49rbJJV08GndsWJ3BKjOooYy52z5Z93L33pPgmAOuijVl2wuLQ== + dependencies: + enzyme-adapter-utils "^1.13.1" + enzyme-shallow-equal "^1.0.4" + has "^1.0.3" + object.assign "^4.1.0" + object.values "^1.1.1" + prop-types "^15.7.2" + react-is "^16.13.1" + react-test-renderer "^17.0.0-0" + semver "^5.7.0" + "@yarnpkg/lockfile@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" @@ -227,6 +242,21 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" +airbnb-prop-types@^2.16.0: + version "2.16.0" + resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz#b96274cefa1abb14f623f804173ee97c13971dc2" + integrity sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg== + dependencies: + array.prototype.find "^2.1.1" + function.prototype.name "^1.1.2" + is-regex "^1.1.0" + object-is "^1.1.2" + object.assign "^4.1.0" + object.entries "^1.1.2" + prop-types "^15.7.2" + prop-types-exact "^1.2.0" + react-is "^16.13.1" + ajv-keywords@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" @@ -391,6 +421,14 @@ array-unique@^0.2.1: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= +array.prototype.find@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.1.1.tgz#3baca26108ca7affb08db06bf0be6cb3115a969c" + integrity sha512-mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.4" + array.prototype.flat@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz#812db8f02cad24d3fab65dd67eabe3b8903494a4" @@ -2054,6 +2092,13 @@ define-properties@^1.1.2: foreach "^2.0.5" object-keys "^1.0.8" +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== + dependencies: + object-keys "^1.0.12" + del@^2.0.2: version "2.2.2" resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" @@ -2297,6 +2342,26 @@ enzyme-adapter-utils@^1.1.0, enzyme-adapter-utils@^1.8.0: object.assign "^4.1.0" prop-types "^15.6.2" +enzyme-adapter-utils@^1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.13.1.tgz#59c1b734b0927543e3d8dc477299ec957feb312d" + integrity sha512-5A9MXXgmh/Tkvee3bL/9RCAAgleHqFnsurTYCbymecO4ohvtNO5zqIhHxV370t7nJAwaCfkgtffarKpC0GPt0g== + dependencies: + airbnb-prop-types "^2.16.0" + function.prototype.name "^1.1.2" + object.assign "^4.1.0" + object.fromentries "^2.0.2" + prop-types "^15.7.2" + semver "^5.7.1" + +enzyme-shallow-equal@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.4.tgz#b9256cb25a5f430f9bfe073a84808c1d74fced2e" + integrity sha512-MttIwB8kKxypwHvRynuC3ahyNc+cFbR8mjVIltnmzQ0uKGqmsfO4bfBuLxb0beLNPhjblUEYvEbsg+VSygvF1Q== + dependencies: + has "^1.0.3" + object-is "^1.1.2" + enzyme@^3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.7.0.tgz#9b499e8ca155df44fef64d9f1558961ba1385a46" @@ -2340,6 +2405,23 @@ es-abstract@^1.10.0, es-abstract@^1.5.0, es-abstract@^1.5.1, es-abstract@^1.6.1, is-callable "^1.1.3" is-regex "^1.0.4" +es-abstract@^1.17.0-next.1, es-abstract@^1.17.4, es-abstract@^1.17.5: + version "1.17.6" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" + integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.0" + is-regex "^1.1.0" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" + es-to-primitive@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" @@ -2349,6 +2431,15 @@ es-to-primitive@^1.1.1: is-date-object "^1.0.1" is-symbol "^1.0.1" +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -2915,11 +3006,25 @@ function.prototype.name@^1.1.0: function-bind "^1.1.1" is-callable "^1.1.3" +function.prototype.name@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.2.tgz#5cdf79d7c05db401591dfde83e3b70c5123e9a45" + integrity sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + functions-have-names "^1.2.0" + functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= +functions-have-names@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.1.tgz#a981ac397fa0c9964551402cdc5533d7a4d52f91" + integrity sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA== + gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" @@ -3214,6 +3319,11 @@ has-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= +has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + has-to-string-tag-x@^1.2.0: version "1.4.1" resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" @@ -3477,6 +3587,11 @@ is-callable@^1.1.1, is-callable@^1.1.3, is-callable@^1.1.4: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== +is-callable@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" + integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== + is-ci@^1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e" @@ -3661,6 +3776,13 @@ is-regex@^1.0.4: dependencies: has "^1.0.1" +is-regex@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" + integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== + dependencies: + has-symbols "^1.0.1" + is-regexp@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" @@ -3703,6 +3825,13 @@ is-symbol@^1.0.1: resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" integrity sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI= +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + is-text-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-2.0.0.tgz#b2484e2b720a633feb2e85b67dc193ff72c75636" @@ -4122,6 +4251,11 @@ js-tokens@^3.0.0, js-tokens@^3.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= +"js-tokens@^3.0.0 || ^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + js-yaml@^3.13.1, js-yaml@^3.7.0, js-yaml@^3.9.1: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" @@ -4507,6 +4641,13 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1: dependencies: js-tokens "^3.0.0" +loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + loud-rejection@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" @@ -4922,16 +5063,34 @@ object-inspect@^1.6.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== +object-inspect@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" + integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== + 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-is@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" + integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + object-keys@^1.0.11, object-keys@^1.0.8: version "1.0.11" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" integrity sha1-xUYBd4rVYPEULODgG8yotW0TQm0= +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== + object.assign@^4.0.4, object.assign@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" @@ -4952,6 +5111,25 @@ object.entries@^1.0.4: function-bind "^1.1.0" has "^1.0.1" +object.entries@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.2.tgz#bc73f00acb6b6bb16c203434b10f9a7e797d3add" + integrity sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + has "^1.0.3" + +object.fromentries@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" + integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + object.getownpropertydescriptors@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" @@ -4978,6 +5156,16 @@ object.values@^1.0.4: function-bind "^1.1.0" has "^1.0.1" +object.values@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" + integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -5369,6 +5557,15 @@ promise@^7.1.1: dependencies: asap "~2.0.3" +prop-types-exact@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/prop-types-exact/-/prop-types-exact-1.2.0.tgz#825d6be46094663848237e3925a98c6e944e9869" + integrity sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA== + dependencies: + has "^1.0.3" + object.assign "^4.1.0" + reflect.ownkeys "^0.2.0" + prop-types@^15.5.10, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2: version "15.6.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102" @@ -5377,6 +5574,15 @@ prop-types@^15.5.10, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2: loose-envify "^1.3.1" object-assign "^4.1.1" +prop-types@^15.7.2: + version "15.7.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" @@ -5468,14 +5674,24 @@ rc@^1.1.7: strip-json-comments "~2.0.1" react-dom@16: - version "16.10.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.10.2.tgz#4840bce5409176bc3a1f2bd8cb10b92db452fda6" - integrity sha512-kWGDcH3ItJK4+6Pl9DZB16BXYAZyrYQItU4OMy0jAkv5aNqc+mAKb4TpFtAteI6TJZu+9ZlNhaeNQSVQDHJzkw== + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" + integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" - scheduler "^0.16.2" + scheduler "^0.19.1" + +react-is@17.0.0-rc.2: + version "17.0.0-rc.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.0-rc.2.tgz#737744b68200001fee87644052a95f25b2b16f47" + integrity sha512-NnsGB+e3Yn10ja+3rWURtm9oTnzVifRQxpcam3GzDlAhv45Lao8WbbSRkzl39al3KnNsj9QoGTrcMScIHyuxwg== + +react-is@^16.12.0, react-is@^16.13.1, react-is@^16.8.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== react-is@^16.5.2, react-is@^16.7.0, react-is@^16.8.6: version "16.10.2" @@ -5492,7 +5708,25 @@ react-mount@^0.1.3: resolved "https://registry.yarnpkg.com/react-mount/-/react-mount-0.1.3.tgz#2ea9cf95f1b4c49c6a4cefe1d91d8de709e3f631" integrity sha1-LqnPlfG0xJxqTO/h2R2N5wnj9jE= -react-test-renderer@16, react-test-renderer@^16.0.0-0: +react-shallow-renderer@^16.13.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-shallow-renderer/-/react-shallow-renderer-16.13.1.tgz#4cfd6dc0f05a8d4d261ff7a80e9b88f15491a00a" + integrity sha512-hLmExm5/ZnjodLgm/4oxYw4i7fL6LLPhbO9mF/4tmaZUurtLrp2aSeDHZmRk0SVCHXPz0VaEbb3Dqi5J7odz7Q== + dependencies: + object-assign "^4.1.1" + react-is "^16.12.0" + +react-test-renderer@16: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.13.1.tgz#de25ea358d9012606de51e012d9742e7f0deabc1" + integrity sha512-Sn2VRyOK2YJJldOqoh8Tn/lWQ+ZiKhyZTPtaO0Q6yNj+QDbmRkVFap6pZPy3YQk8DScRDfyqm/KxKYP9gCMRiQ== + dependencies: + object-assign "^4.1.1" + prop-types "^15.6.2" + react-is "^16.8.6" + scheduler "^0.19.1" + +react-test-renderer@^16.0.0-0: version "16.10.2" resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.10.2.tgz#4d8492f8678c9b43b721a7d79ed0840fdae7c518" integrity sha512-k9Qzyev6cTIcIfrhgrFlYQAFxh5EEDO6ALNqYqmKsWVA7Q/rUMTay5nD3nthi6COmYsd4ghVYyi8U86aoeMqYQ== @@ -5502,10 +5736,20 @@ react-test-renderer@16, react-test-renderer@^16.0.0-0: react-is "^16.8.6" scheduler "^0.16.2" +react-test-renderer@^17.0.0-0: + version "17.0.0-rc.2" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-17.0.0-rc.2.tgz#2d1a7805c0320627cd7a8af5e1cc3ee7bee66226" + integrity sha512-r8KNrcWpXsVsiM4ebMsGb+AQGL7kQj9YaFLoeDaU+UIGd7xn1H0G+OkYD6FoLFpHsIqF680oDwIJHQMEtIALIw== + dependencies: + object-assign "^4.1.1" + react-is "17.0.0-rc.2" + react-shallow-renderer "^16.13.1" + scheduler "0.20.0-rc.2" + react@16: - version "16.10.2" - resolved "https://registry.yarnpkg.com/react/-/react-16.10.2.tgz#a5ede5cdd5c536f745173c8da47bda64797a4cf0" - integrity sha512-MFVIq0DpIhrHFyqLU0S3+4dIcBhhOvBE8bJ/5kHPVOVaGdo0KuiQzpcjCPsf585WvhypqtrMILyoE2th6dT+Lw== + version "16.13.1" + resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" + integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -5629,6 +5873,11 @@ redent@^2.0.0: indent-string "^3.0.0" strip-indent "^2.0.0" +reflect.ownkeys@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz#749aceec7f3fdf8b63f927a04809e90c5c0b3460" + integrity sha1-dJrO7H8/34tj+SegSAnpDFwLNGA= + regenerate@^1.2.1: version "1.3.3" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" @@ -6008,6 +6257,14 @@ sax@^1.2.1: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== +scheduler@0.20.0-rc.2: + version "0.20.0-rc.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.0-rc.2.tgz#5c48ac29e1a352a43c74cb5fc54c5ca94d8396fc" + integrity sha512-tgvUKHPbQr0fq5EfRd3S8hgohi/fI3h/gv1jxVb9IungCF/t2jUG946dlwgCxy8bnYvSIwRjcuw7eksDDpplLg== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + scheduler@^0.13.6: version "0.13.6" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.6.tgz#466a4ec332467b31a91b9bf74e5347072e4cd889" @@ -6024,6 +6281,14 @@ scheduler@^0.16.2: loose-envify "^1.1.0" object-assign "^4.1.1" +scheduler@^0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" + integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + semver-compare@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" @@ -6034,7 +6299,7 @@ semver-regex@^2.0.0: resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== -"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: +"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.7.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -6301,6 +6566,22 @@ string.prototype.trim@^1.1.2: es-abstract "^1.5.0" function-bind "^1.0.2" +string.prototype.trimend@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" + integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.trimstart@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" + integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string_decoder@^1.1.1, string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"