From e6d3a51508f4266d55474b4148921f27a4afa6b5 Mon Sep 17 00:00:00 2001 From: Jonny Gerig Meyer Date: Mon, 28 Sep 2020 12:23:00 -0400 Subject: [PATCH 01/12] Combined deps upgrade. --- package.json | 26 ++-- requirements/dev.in | 2 +- requirements/dev.txt | 5 +- requirements/prod.in | 6 +- requirements/prod.txt | 8 +- yarn.lock | 311 +++++++++++++++++++++--------------------- 6 files changed, 181 insertions(+), 177 deletions(-) diff --git a/package.json b/package.json index 7d70288d6..783ecb1fa 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "heroku-postbuild": "yarn prod" }, "dependencies": { - "@salesforce-ux/design-system": "2.13.1", + "@salesforce-ux/design-system": "2.13.3", "@salesforce/design-system-react": "0.10.22", "@sentry/browser": "^5.24.2", "classnames": "^2.2.6", @@ -63,7 +63,7 @@ "react-document-title": "^2.0.3", "react-dom": "^16.13.1", "react-fns": "^1.4.0", - "react-i18next": "^11.7.2", + "react-i18next": "^11.7.3", "react-redux": "^7.2.1", "react-router-dom": "^5.2.0", "redux": "^4.0.5", @@ -86,7 +86,7 @@ "@babel/preset-typescript": "^7.10.4", "@testing-library/jest-dom": "^5.11.4", "@testing-library/react": "^11.0.4", - "@testing-library/react-hooks": "^3.4.1", + "@testing-library/react-hooks": "^3.4.2", "@types/classnames": "^2.2.10", "@types/core-js": "^2.5.4", "@types/js-cookie": "^2.2.6", @@ -98,23 +98,23 @@ "@types/react-router-dom": "^5.1.5", "@types/redux-logger": "^3.0.8", "@types/uuid": "^8.3.0", - "@typescript-eslint/eslint-plugin": "^4.1.1", - "@typescript-eslint/parser": "^4.1.1", - "autoprefixer": "^10.0.0", + "@typescript-eslint/eslint-plugin": "^4.2.0", + "@typescript-eslint/parser": "^4.2.0", + "autoprefixer": "^10.0.1", "babel-jest": "^26.3.0", "babel-loader": "^8.1.0", "clean-webpack-plugin": "^3.0.0", "core-js": "^3.6.5", "coveralls": "^3.1.0", "css-loader": "^4.3.0", - "eslint": "^7.9.0", - "eslint-config-prettier": "^6.11.0", + "eslint": "^7.10.0", + "eslint-config-prettier": "^6.12.0", "eslint-import-resolver-typescript": "^1.1.1", - "eslint-import-resolver-webpack": "^0.12.2", - "eslint-plugin-import": "^2.22.0", + "eslint-import-resolver-webpack": "^0.13.0", + "eslint-plugin-import": "^2.22.1", "eslint-plugin-jest": "^24.0.2", "eslint-plugin-prettier": "^3.1.4", - "eslint-plugin-react": "^7.20.6", + "eslint-plugin-react": "^7.21.2", "eslint-plugin-react-hooks": "^4.1.2", "eslint-plugin-simple-import-sort": "^5.0.3", "fetch-mock": "^9.10.7", @@ -128,14 +128,14 @@ "npm-run-all": "^4.1.5", "nyc": "^15.1.0", "optimize-css-assets-webpack-plugin": "^5.0.4", - "postcss": "^8.0.6", + "postcss": "^8.1.0", "postcss-loader": "^4.0.2", "prettier": "^2.1.2", "react-test-renderer": "^16.13.1", "redux-mock-store": "^1.5.4", "sass": "^1.26.11", "sass-loader": "^10.0.2", - "stylelint": "^13.7.1", + "stylelint": "^13.7.2", "stylelint-config-prettier": "^8.0.2", "stylelint-config-recommended": "^3.0.0", "stylelint-prettier": "^1.1.2", diff --git a/requirements/dev.in b/requirements/dev.in index ff392c7ab..ca5ea61c4 100644 --- a/requirements/dev.in +++ b/requirements/dev.in @@ -15,6 +15,6 @@ pytest-django==3.10.0 pytest-factoryboy==2.0.3 pytest-mock==3.3.1 pytest-sugar==0.9.4 -pytest==6.0.2 +pytest==6.1.0 remote-pdb==2.1.0 sphinxcontrib-httpdomain==1.7.0 diff --git a/requirements/dev.txt b/requirements/dev.txt index 69b44c905..d10d78315 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -35,7 +35,6 @@ jedi==0.17.2 # via ipython jinja2==2.11.2 # via -c requirements/prod.txt, sphinx markupsafe==1.1.1 # via -c requirements/prod.txt, jinja2 mccabe==0.6.1 # via flake8 -more-itertools==8.5.0 # via pytest mypy-extensions==0.4.3 # via black packaging==20.4 # via -c requirements/prod.txt, pytest, pytest-sugar, sphinx parso==0.7.1 # via jedi @@ -57,10 +56,10 @@ pytest-django==3.10.0 # via -r requirements/dev.in pytest-factoryboy==2.0.3 # via -r requirements/dev.in pytest-mock==3.3.1 # via -r requirements/dev.in pytest-sugar==0.9.4 # via -r requirements/dev.in -pytest==6.0.2 # via -r requirements/dev.in, pytest-asyncio, pytest-cov, pytest-django, pytest-factoryboy, pytest-mock, pytest-sugar +pytest==6.1.0 # via -r requirements/dev.in, pytest-asyncio, pytest-cov, pytest-django, pytest-factoryboy, pytest-mock, pytest-sugar python-dateutil==2.8.1 # via -c requirements/prod.txt, faker pytz==2020.1 # via -c requirements/prod.txt, babel -regex==2020.7.14 # via black +regex==2020.9.27 # via black remote-pdb==2.1.0 # via -r requirements/dev.in requests==2.24.0 # via -c requirements/prod.txt, coveralls, sphinx restructuredtext-lint==1.3.1 # via doc8 diff --git a/requirements/prod.in b/requirements/prod.in index 44625879b..c03987fd9 100644 --- a/requirements/prod.in +++ b/requirements/prod.in @@ -1,5 +1,5 @@ Django==3.1.1 -beautifulsoup4==4.9.1 +beautifulsoup4==4.9.2 bleach==3.2.1 channels-redis==3.1.0 channels==2.4.0 @@ -14,7 +14,7 @@ django-model-utils==4.0.0 django-parler==2.2 django-redis==4.12.1 django-rq==2.3.2 -djangorestframework==3.11.1 +djangorestframework==3.12.1 furl==2.1.0 github3-py==1.3.0 honcho==1.0.1 @@ -29,7 +29,7 @@ markdown==3.2.2 psycopg2-binary==2.8.6 rq-scheduler==0.10.0 -sentry-sdk==0.17.6 +sentry-sdk==0.17.8 service_identity==18.1.0 https://github.com/SFDO-Tooling/sfdo-template-helpers/archive/v0.16.0.tar.gz whitenoise==5.2.0 diff --git a/requirements/prod.txt b/requirements/prod.txt index 0485cb3aa..9720b670f 100644 --- a/requirements/prod.txt +++ b/requirements/prod.txt @@ -13,7 +13,7 @@ attrs==20.2.0 # via automat, service-identity, twisted authlib==0.14.3 # via simple-salesforce autobahn==20.7.1 # via daphne automat==20.2.0 # via twisted -beautifulsoup4==4.9.1 # via -r requirements/prod.in +beautifulsoup4==4.9.2 # via -r requirements/prod.in bleach==3.2.1 # via -r requirements/prod.in, sfdo-template-helpers certifi==2020.6.20 # via cumulusci, requests, sentry-sdk cffi==1.14.2 # via cryptography, cumulusci @@ -31,7 +31,7 @@ defusedxml==0.6.0 # via python3-openid dj-database-url==0.5.0 # via -r requirements/prod.in django-allauth==0.42.0 # via -r requirements/prod.in django-anymail[mailgun]==8.0 # via -r requirements/prod.in -django-filter==2.3.0 # via sfdo-template-helpers +django-filter==2.4.0 # via sfdo-template-helpers django-hashid-field==3.1.3 # via -r requirements/prod.in django-js-reverse==0.9.1 # via -r requirements/prod.in django-log-request-id==1.6.0 # via -r requirements/prod.in @@ -40,7 +40,7 @@ django-parler==2.2 # via -r requirements/prod.in django-redis==4.12.1 # via -r requirements/prod.in django-rq==2.3.2 # via -r requirements/prod.in django==3.1.1 # via -r requirements/prod.in, channels, django-allauth, django-anymail, django-filter, django-hashid-field, django-js-reverse, django-log-request-id, django-model-utils, django-redis, django-rq, djangorestframework, sfdo-template-helpers -djangorestframework==3.11.1 # via -r requirements/prod.in, sfdo-template-helpers +djangorestframework==3.12.1 # via -r requirements/prod.in, sfdo-template-helpers docutils==0.16 # via cumulusci faker==4.1.2 # via cumulusci, snowfakery fs==2.4.11 # via cumulusci @@ -97,7 +97,7 @@ salesforce-bulk==2.1.0 # via cumulusci sarge==0.1.6 # via cumulusci secretstorage==3.1.2 # via keyring selenium==3.141.0 # via cumulusci, robotframework-seleniumlibrary -sentry-sdk==0.17.6 # via -r requirements/prod.in +sentry-sdk==0.17.8 # via -r requirements/prod.in service-identity==18.1.0 # via -r requirements/prod.in, twisted https://github.com/SFDO-Tooling/sfdo-template-helpers/archive/v0.16.0.tar.gz # via -r requirements/prod.in simple-salesforce==1.10.1 # via cumulusci, salesforce-bulk diff --git a/yarn.lock b/yarn.lock index 952c944f9..5f1da3d73 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1223,10 +1223,10 @@ "@nodelib/fs.scandir" "2.1.3" fastq "^1.6.0" -"@salesforce-ux/design-system@2.13.1": - version "2.13.1" - resolved "https://registry.yarnpkg.com/@salesforce-ux/design-system/-/design-system-2.13.1.tgz#0024b4fa6ab308189741e23b3dae54b7d85286b4" - integrity sha512-juwpihalZbDwEFCOmoKF1ns9JtYnakcvFhziYvFUUpK/IcR4Th1EcgmHg+3L/wiCw591EXcuPCH5C02kjIonYA== +"@salesforce-ux/design-system@2.13.3": + version "2.13.3" + resolved "https://registry.yarnpkg.com/@salesforce-ux/design-system/-/design-system-2.13.3.tgz#20e982895fa7279c165074fd794a3bdbf403b77a" + integrity sha512-FUvTfdK51SKk1W4wkX6lTRtt9bdm8I8EI698avKvY3HWbTRuMZiBHrYJKHoIe6JBF36u0VKvkk9TfItkzlCu1g== "@salesforce/babel-preset-design-system-react@^3.0.0": version "3.0.0" @@ -1344,9 +1344,9 @@ unist-util-find-all-after "^3.0.1" "@testing-library/dom@^7.24.2": - version "7.24.2" - resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.24.2.tgz#6d2b7dd21efbd5358b98c2777fc47c252f3ae55e" - integrity sha512-ERxcZSoHx0EcN4HfshySEWmEf5Kkmgi+J7O79yCJ3xggzVlBJ2w/QjJUC+EBkJJ2OeSw48i3IoePN4w8JlVUIA== + version "7.24.3" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.24.3.tgz#dae3071463cf28dc7755b43d9cf2202e34cbb85d" + integrity sha512-6eW9fUhEbR423FZvoHRwbWm9RUUByLWGayYFNVvqTnQLYvsNpBS4uEuKH9aqr3trhxFwGVneJUonehL3B1sHJw== dependencies: "@babel/code-frame" "^7.10.4" "@babel/runtime" "^7.10.3" @@ -1370,13 +1370,13 @@ lodash "^4.17.15" redent "^3.0.0" -"@testing-library/react-hooks@^3.4.1": - version "3.4.1" - resolved "https://registry.yarnpkg.com/@testing-library/react-hooks/-/react-hooks-3.4.1.tgz#1f8ccd21208086ec228d9743fe40b69d0efcd7e5" - integrity sha512-LbzvE7oKsVzuW1cxA/aOeNgeVvmHWG2p/WSzalIGyWuqZT3jVcNDT5KPEwy36sUYWde0Qsh32xqIUFXukeywXg== +"@testing-library/react-hooks@^3.4.2": + version "3.4.2" + resolved "https://registry.yarnpkg.com/@testing-library/react-hooks/-/react-hooks-3.4.2.tgz#8deb94f7684e0d896edd84a4c90e5b79a0810bc2" + integrity sha512-RfPG0ckOzUIVeIqlOc1YztKgFW+ON8Y5xaSPbiBkfj9nMkkiLhLeBXT5icfPX65oJV/zCZu4z8EVnUc6GY9C5A== dependencies: "@babel/runtime" "^7.5.4" - "@types/testing-library__react-hooks" "^3.3.0" + "@types/testing-library__react-hooks" "^3.4.0" "@testing-library/react@^11.0.4": version "11.0.4" @@ -1397,9 +1397,9 @@ integrity sha512-iIgQNzCm0v7QMhhe4Jjn9uRh+I6GoPmt03CbEtwx3ao8/EfoQcmgtqH4vQ5Db/lxiIGaWDv6nwvunuh0RyX0+A== "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": - version "7.1.9" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.9.tgz#77e59d438522a6fb898fa43dc3455c6e72f3963d" - integrity sha512-sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw== + version "7.1.10" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.10.tgz#ca58fc195dd9734e77e57c6f2df565623636ab40" + integrity sha512-x8OM8XzITIMyiwl5Vmo2B1cR1S1Ipkyv4mdlbJjMa1lmuKvKY9FrBbEANIaMlnWn5Rf7uO+rC/VgYabNkE17Hw== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -1408,24 +1408,24 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.1" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04" - integrity sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew== + version "7.6.2" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8" + integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== 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== + version "7.0.3" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.3.tgz#b8aaeba0a45caca7b56a5de9459872dde3727214" + integrity sha512-uCoznIPDmnickEi6D0v11SBpW0OuVqHJCa7syXqQHy5uktSCreIlt0iglsCnmvz8yCb38hGcWeseA8cWJSwv5Q== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.0.14" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.14.tgz#e99da8c075d4fb098c774ba65dabf7dc9954bd13" - integrity sha512-8w9szzKs14ZtBVuP6Wn7nMLRJ0D6dfB0VEBEyRgxrZ/Ln49aNMykrghM2FaNn4FJRzNppCSa0Rv9pBRM5Xc3wg== + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.15.tgz#db9e4238931eb69ef8aab0ad6523d4d4caa39d03" + integrity sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A== dependencies: "@babel/types" "^7.3.0" @@ -1473,9 +1473,9 @@ hoist-non-react-statics "^3.3.0" "@types/html-minifier-terser@^5.0.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.0.tgz#551a4589b6ee2cc9c1dff08056128aec29b94880" - integrity sha512-iYCgjm1dGPRuo12+BStjd1HiVQqhlRhWDOQigNxn023HcjnhsiFz9pc6CzJj4HwDCSQca9bxTL4PxJDbkdm3PA== + version "5.1.1" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50" + integrity sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA== "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": version "2.0.3" @@ -1543,9 +1543,9 @@ integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY= "@types/node@*": - version "14.11.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.11.1.tgz#56af902ad157e763f9ba63d671c39cda3193c835" - integrity sha512-oTQgnd0hblfLsJ6BvJzzSL+Inogp3lq9fGgqRkMB/ziKMgEUaFl801OncOzUmalfzt14N0oPHMK47ipl+wbTIw== + version "14.11.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.11.2.tgz#2de1ed6670439387da1c9f549a2ade2b0a799256" + integrity sha512-jiE3QIxJ8JLNcb1Ps6rDbysDhN4xa8DJJvuC9prr6w+1tIh+QAbYyNF3tyiZNLDBIuBCf4KEcV2UvQm/V60xfA== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -1651,16 +1651,16 @@ integrity sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA== "@types/testing-library__jest-dom@^5.9.1": - version "5.9.2" - resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.9.2.tgz#59e4771a1cf87d51e89a5cc8195cd3b647cba322" - integrity sha512-K7nUSpH/5i8i0NagTJ+uFUDRueDlnMNhJtMjMwTGPPSqyImbWC/hgKPDCKt6Phu2iMJg2kWqlax+Ucj2DKMwpA== + version "5.9.3" + resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.9.3.tgz#574039e210140a536c6ec891063289fb742a75eb" + integrity sha512-5YxiCFA2vk0cxq2LIxYgHBpFlnJvMH9bkUIVNin+1GXT+LZgVOgXBeEyyo2ZrGXMO/KWe1ZV3p7Kb6LJAvJasw== dependencies: "@types/jest" "*" -"@types/testing-library__react-hooks@^3.3.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@types/testing-library__react-hooks/-/testing-library__react-hooks-3.4.0.tgz#be148b7fa7d19cd3349c4ef9d9534486bc582fcc" - integrity sha512-QYLZipqt1hpwYsBU63Ssa557v5wWbncqL36No59LI7W3nCMYKrLWTnYGn2griZ6v/3n5nKXNYkTeYpqPHY7Ukg== +"@types/testing-library__react-hooks@^3.4.0": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@types/testing-library__react-hooks/-/testing-library__react-hooks-3.4.1.tgz#b8d7311c6c1f7db3103e94095fe901f8fef6e433" + integrity sha512-G4JdzEcq61fUyV6wVW9ebHWEiLK2iQvaBuCHHn9eMSbZzVh4Z4wHnUGIvQOYCCYeu5DnUtFyNYuAAgbSaO/43Q== dependencies: "@types/react-test-renderer" "*" @@ -1708,67 +1708,67 @@ integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== "@types/yargs@^15.0.0": - version "15.0.5" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.5.tgz#947e9a6561483bdee9adffc983e91a6902af8b79" - integrity sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w== + version "15.0.7" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.7.tgz#dad50a7a234a35ef9460737a56024287a3de1d2b" + integrity sha512-Gf4u3EjaPNcC9cTu4/j2oN14nSVhr8PQ+BvBcBQHAhDZfl0bVIiLgvnRXv/dn58XhTm9UXvBpvJpDlwV65QxOA== dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.1.1.tgz#78d5b18e259b13c2f4ec41dd9105af269a161a75" - integrity sha512-Hoxyt99EA9LMmqo/5PuWWPeWeB3mKyvibfJ1Hy5SfiUpjE8Nqp+5QNd9fOkzL66+fqvIWSIE+Ett16LGMzCGnQ== +"@typescript-eslint/eslint-plugin@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.2.0.tgz#a3d5c11b377b7e18f3cd9c4e87d465fe9432669b" + integrity sha512-zBNRkzvLSwo6y5TG0DVcmshZIYBHKtmzD4N+LYnfTFpzc4bc79o8jNRSb728WV7A4Cegbs+MV5IRAj8BKBgOVQ== dependencies: - "@typescript-eslint/experimental-utils" "4.1.1" - "@typescript-eslint/scope-manager" "4.1.1" + "@typescript-eslint/experimental-utils" "4.2.0" + "@typescript-eslint/scope-manager" "4.2.0" debug "^4.1.1" functional-red-black-tree "^1.0.1" regexpp "^3.0.0" semver "^7.3.2" tsutils "^3.17.1" -"@typescript-eslint/experimental-utils@4.1.1", "@typescript-eslint/experimental-utils@^4.0.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.1.1.tgz#52ff4e37c93113eb96385a4e6d075abece1ea72d" - integrity sha512-jzYsNciHoa4Z3c1URtmeT/bamYm8Dwfw6vuN3WHIE/BXb1iC4KveAnXDErTAZtPVxTYBaYn3n2gbt6F6D2rm1A== +"@typescript-eslint/experimental-utils@4.2.0", "@typescript-eslint/experimental-utils@^4.0.1": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.2.0.tgz#3d0b5cd4aa61f5eb7aa1e873dea0db1410b062d2" + integrity sha512-5BBj6BjgHEndBaQQpUVzRIPERz03LBc0MCQkHwUaH044FJFL08SwWv/sQftk7gf0ShZ2xZysz0LTwCwNt4Xu3w== dependencies: "@types/json-schema" "^7.0.3" - "@typescript-eslint/scope-manager" "4.1.1" - "@typescript-eslint/types" "4.1.1" - "@typescript-eslint/typescript-estree" "4.1.1" + "@typescript-eslint/scope-manager" "4.2.0" + "@typescript-eslint/types" "4.2.0" + "@typescript-eslint/typescript-estree" "4.2.0" eslint-scope "^5.0.0" eslint-utils "^2.0.0" -"@typescript-eslint/parser@^4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.1.1.tgz#324b4b35e314075adbc92bd8330cf3ef0c88cf3e" - integrity sha512-NLIhmicpKGfJbdXyQBz9j48PA6hq6e+SDOoXy7Ak6bq1ebGqbgG+fR1UIDAuay6OjQdot69c/URu2uLlsP8GQQ== +"@typescript-eslint/parser@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.2.0.tgz#1879ef400abd73d972e20f14c3522e5b343d1d1b" + integrity sha512-54jJ6MwkOtowpE48C0QJF9iTz2/NZxfKVJzv1ha5imigzHbNSLN9yvbxFFH1KdlRPQrlR8qxqyOvLHHxd397VA== dependencies: - "@typescript-eslint/scope-manager" "4.1.1" - "@typescript-eslint/types" "4.1.1" - "@typescript-eslint/typescript-estree" "4.1.1" + "@typescript-eslint/scope-manager" "4.2.0" + "@typescript-eslint/types" "4.2.0" + "@typescript-eslint/typescript-estree" "4.2.0" debug "^4.1.1" -"@typescript-eslint/scope-manager@4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.1.1.tgz#bdb8526e82435f32b4ccd9dd4cec01af97b48850" - integrity sha512-0W8TTobCvIIQ2FsrYTffyZGAAFUyIbEHq5EYJb1m7Rpd005jrnOvKOo8ywCLhs/Bm17C+KsrUboBvBAARQVvyA== +"@typescript-eslint/scope-manager@4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.2.0.tgz#d10e6854a65e175b22a28265d372a97c8cce4bfc" + integrity sha512-Tb402cxxObSxWIVT+PnBp5ruT2V/36yj6gG4C9AjkgRlZpxrLAzWDk3neen6ToMBGeGdxtnfFLoJRUecGz9mYQ== dependencies: - "@typescript-eslint/types" "4.1.1" - "@typescript-eslint/visitor-keys" "4.1.1" + "@typescript-eslint/types" "4.2.0" + "@typescript-eslint/visitor-keys" "4.2.0" -"@typescript-eslint/types@4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.1.1.tgz#57500c4a86b28cb47094c1a62f1177ea279a09cb" - integrity sha512-zrBiqOKYerMTllKcn+BP+i1b7LW/EbMMYytroXMxUTvFPn1smkCu0D7lSAx29fTUO4jnwV0ljSvYQtn2vNrNxA== +"@typescript-eslint/types@4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.2.0.tgz#6f6b094329e72040f173123832397c7c0b910fc8" + integrity sha512-xkv5nIsxfI/Di9eVwN+G9reWl7Me9R5jpzmZUch58uQ7g0/hHVuGUbbn4NcxcM5y/R4wuJIIEPKPDb5l4Fdmwg== -"@typescript-eslint/typescript-estree@4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.1.1.tgz#2015a84d71303ecdb6f46efd807ac19a51aab490" - integrity sha512-2AUg5v0liVBsqbGxBphbJ0QbGqSRVaF5qPoTPWcxop+66vMdU1h4CCvHxTC47+Qb+Pr4l2RhXDd41JNpwcQEKw== +"@typescript-eslint/typescript-estree@4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.2.0.tgz#9d746240991c305bf225ad5e96cbf57e7fea0551" + integrity sha512-iWDLCB7z4MGkLipduF6EOotdHNtgxuNKnYD54nMS/oitFnsk4S3S/TE/UYXQTra550lHtlv9eGmp+dvN9pUDtA== dependencies: - "@typescript-eslint/types" "4.1.1" - "@typescript-eslint/visitor-keys" "4.1.1" + "@typescript-eslint/types" "4.2.0" + "@typescript-eslint/visitor-keys" "4.2.0" debug "^4.1.1" globby "^11.0.1" is-glob "^4.0.1" @@ -1776,12 +1776,12 @@ semver "^7.3.2" tsutils "^3.17.1" -"@typescript-eslint/visitor-keys@4.1.1": - version "4.1.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.1.1.tgz#bb05664bf4bea28dc120d1da94f3027d42ab0f6f" - integrity sha512-/EOOXbA2ferGLG6RmCHEQ0lTTLkOlXYDgblCmQk3tIU7mTPLm4gKhFMeeUSe+bcchTUsKeCk8xcpbop5Zr/8Rw== +"@typescript-eslint/visitor-keys@4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.2.0.tgz#ae13838e3a260b63ae51021ecaf1d0cdea8dbba5" + integrity sha512-WIf4BNOlFOH2W+YqGWa6YKLcK/EB3gEj2apCrqLw6mme1RzBy0jtJ9ewJgnrZDB640zfnv8L+/gwGH5sYp/rGw== dependencies: - "@typescript-eslint/types" "4.1.1" + "@typescript-eslint/types" "4.2.0" eslint-visitor-keys "^2.0.0" "@webassemblyjs/ast@1.9.0": @@ -2356,13 +2356,13 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autoprefixer@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.0.0.tgz#4afbe9eb902ffb5d7a9ef6d36013948fdb34601f" - integrity sha512-rFlVYthz6Iw0LhEYryiGGyjTGofebWie3ydvtqTCJiwWe+z6y8H35b4cadYbOUcYlP495TNeVktW+ZZqxbPW4Q== +autoprefixer@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.0.1.tgz#e2d9000f84ebd98d77b7bc16f8adb2ff1f7bb946" + integrity sha512-aQo2BDIsoOdemXUAOBpFv4ZQa2DrOtEufarYhtFsK1088Ca0TUwu/aQWf0M3mrILXZ3mTIVn1lR3hPW8acacsw== dependencies: - browserslist "^4.14.2" - caniuse-lite "^1.0.30001131" + browserslist "^4.14.5" + caniuse-lite "^1.0.30001137" colorette "^1.2.1" normalize-range "^0.1.2" num2fraction "^1.2.2" @@ -2694,13 +2694,13 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.2, browserslist@^4.8.5: - version "4.14.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.3.tgz#381f9e7f13794b2eb17e1761b4f118e8ae665a53" - integrity sha512-GcZPC5+YqyPO4SFnz48/B0YaCwS47Q9iPChRGi6t7HhflKBcINzFrJvRfC+jp30sRMKxF+d4EHGs27Z0XP1NaQ== +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.8.5: + version "4.14.5" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.5.tgz#1c751461a102ddc60e40993639b709be7f2c4015" + integrity sha512-Z+vsCZIvCBvqLoYkBFTwEYH3v5MCQbsAjp50ERycpOjnPmolg1Gjy4+KaWWpm8QOJt9GHkhdqAl14NpCX73CWA== dependencies: - caniuse-lite "^1.0.30001131" - electron-to-chromium "^1.3.570" + caniuse-lite "^1.0.30001135" + electron-to-chromium "^1.3.571" escalade "^3.1.0" node-releases "^1.1.61" @@ -2862,10 +2862,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.30001109, caniuse-lite@^1.0.30001131: - version "1.0.30001133" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001133.tgz#ec564c5495311299eb05245e252d589a84acd95e" - integrity sha512-s3XAUFaC/ntDb1O3lcw9K8MPeOW7KO3z9+GzAoBxfz1B0VdacXPMKgFUtG4KIsgmnbexmi013s9miVu4h+qMHw== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001135, caniuse-lite@^1.0.30001137: + version "1.0.30001137" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001137.tgz#6f0127b1d3788742561a25af3607a17fc778b803" + integrity sha512-54xKQZTqZrKVHmVz0+UvdZR6kQc7pJDgfhsMYDG19ID1BWoNnDMFm5Q3uSBSU401pBvKYMsHAt9qhEDcxmk8aw== capture-exit@^2.0.0: version "2.0.0" @@ -3897,9 +3897,9 @@ doctrine@^3.0.0: esutils "^2.0.2" dom-accessibility-api@^0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.2.tgz#ef3cdb5d3f0d599d8f9c8b18df2fb63c9793739d" - integrity sha512-k7hRNKAiPJXD2aBqfahSo4/01cTsKWXf+LqJgglnkN2Nz8TsxXKQBXHhKe0Ye9fEfHEZY49uSA5Sr3AqP/sWKA== + version "0.5.3" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.3.tgz#0ea493c924d4070dfbf531c4aaca3d7a2c601aab" + integrity sha512-yfqzAi1GFxK6EoJIZKgxqJyK6j/OjEFEUi2qkNThD/kUhoCFSG1izq31B5xuxzbJBGw9/67uPtkPMYAzWL7L7Q== dom-converter@^0.2: version "0.2.0" @@ -4007,10 +4007,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.570: - version "1.3.570" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.570.tgz#3f5141cc39b4e3892a276b4889980dabf1d29c7f" - integrity sha512-Y6OCoVQgFQBP5py6A/06+yWxUZHDlNr/gNDGatjH8AZqXl8X0tE4LfjLJsXGz/JmWJz8a6K7bR1k+QzZ+k//fg== +electron-to-chromium@^1.3.571: + version "1.3.574" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.574.tgz#bdd87f62fe70165e5c862a0acf0cee9889e23aa3" + integrity sha512-kF8Bfe1h8X1pPwlw6oRoIXj0DevowviP6fl0wcljm+nZjy/7+Fos4THo1N/7dVGEJlyEqK9C8qNnbheH+Eazfw== elliptic@^6.5.3: version "6.5.3" @@ -4209,14 +4209,14 @@ escodegen@^1.14.1: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@^6.11.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz#f6d2238c1290d01c859a8b5c1f7d352a0b0da8b1" - integrity sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA== +eslint-config-prettier@^6.12.0: + version "6.12.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.12.0.tgz#9eb2bccff727db1c52104f0b49e87ea46605a0d2" + integrity sha512-9jWPlFlgNwRUYVoujvWTQ1aMO8o6648r+K7qU7K5Jmkbyqav1fuEZC0COYpGBxyiAJb65Ra9hrmFx19xRGwXWw== dependencies: get-stdin "^6.0.0" -eslint-import-resolver-node@^0.3.3: +eslint-import-resolver-node@^0.3.4: version "0.3.4" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== @@ -4233,10 +4233,10 @@ eslint-import-resolver-typescript@^1.1.1: resolve "^1.4.0" tsconfig-paths "^3.6.0" -eslint-import-resolver-webpack@^0.12.2: - version "0.12.2" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.12.2.tgz#769e86cd0c752a1536c19855ebd90aa14ce384ee" - integrity sha512-7Jnm4YAoNNkvqPaZkKdIHsKGmv8/uNnYC5QsXkiSodvX4XEEfH2AKOna98FK52fCDXm3q4HzuX+7pRMKkJ64EQ== +eslint-import-resolver-webpack@^0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.13.0.tgz#5cb19cf4b6996c8a2514aeb10f909e2c70488dc3" + integrity sha512-hZWGcmjaJZK/WSCYGI/y4+FMGQZT+cwW/1E/P4rDwFj2PbanlQHISViw4ccDJ+2wxAqjgwBfxwy3seABbVKDEw== dependencies: array-find "^1.0.0" debug "^2.6.9" @@ -4257,17 +4257,17 @@ eslint-module-utils@^2.6.0: debug "^2.6.9" pkg-dir "^2.0.0" -eslint-plugin-import@^2.22.0: - version "2.22.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz#92f7736fe1fde3e2de77623c838dd992ff5ffb7e" - integrity sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg== +eslint-plugin-import@^2.22.1: + version "2.22.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702" + integrity sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw== dependencies: array-includes "^3.1.1" array.prototype.flat "^1.2.3" contains-path "^0.1.0" debug "^2.6.9" doctrine "1.5.0" - eslint-import-resolver-node "^0.3.3" + eslint-import-resolver-node "^0.3.4" eslint-module-utils "^2.6.0" has "^1.0.3" minimatch "^3.0.4" @@ -4295,10 +4295,10 @@ eslint-plugin-react-hooks@^4.1.2: resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.1.2.tgz#2eb53731d11c95826ef7a7272303eabb5c9a271e" integrity sha512-ykUeqkGyUGgwTtk78C0o8UG2fzwmgJ0qxBGPp2WqRKsTwcLuVf01kTDRAtOsd4u6whX2XOC8749n2vPydP82fg== -eslint-plugin-react@^7.20.6: - version "7.20.6" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.20.6.tgz#4d7845311a93c463493ccfa0a19c9c5d0fd69f60" - integrity sha512-kidMTE5HAEBSLu23CUDvj8dc3LdBU0ri1scwHBZjI41oDv4tjsWZKU7MQccFzH1QYPYhsnTF2ovh7JlcIcmxgg== +eslint-plugin-react@^7.21.2: + version "7.21.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.21.2.tgz#3bd5d2c4c36d5a0428d0d6dda301ac9a84d681b2" + integrity sha512-j3XKvrK3rpBzveKFbgAeGsWb9uz6iUOrR0jixRfjwdFeGSRsXvVTFtHDQYCjsd1/6Z/xvb8Vy3LiI5Reo7fDrg== dependencies: array-includes "^3.1.1" array.prototype.flatmap "^1.2.3" @@ -4325,7 +4325,7 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-scope@^5.0.0, eslint-scope@^5.1.0: +eslint-scope@^5.0.0, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -4350,10 +4350,10 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== -eslint@^7.9.0: - version "7.9.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.9.0.tgz#522aeccc5c3a19017cf0cb46ebfd660a79acf337" - integrity sha512-V6QyhX21+uXp4T+3nrNfI3hQNBDa/P8ga7LoQOenwrlEFXrEnUEE+ok1dMtaS3b6rmLXhT1TkTIsG75HMLbknA== +eslint@^7.10.0: + version "7.10.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.10.0.tgz#494edb3e4750fb791133ca379e786a8f648c72b9" + integrity sha512-BDVffmqWl7JJXqCjAK6lWtcQThZB/aP1HXSH1JKwGwv0LQEdvpR7qzNrUT487RM39B5goWuboFad5ovMBmD8yA== dependencies: "@babel/code-frame" "^7.0.0" "@eslint/eslintrc" "^0.1.3" @@ -4363,7 +4363,7 @@ eslint@^7.9.0: debug "^4.0.1" doctrine "^3.0.0" enquirer "^2.3.5" - eslint-scope "^5.1.0" + eslint-scope "^5.1.1" eslint-utils "^2.1.0" eslint-visitor-keys "^1.3.0" espree "^7.3.0" @@ -5259,9 +5259,9 @@ hash.js@^1.0.0, hash.js@^1.0.3: minimalistic-assert "^1.0.1" hasha@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.0.tgz#33094d1f69c40a4a6ac7be53d5fe3ff95a269e0c" - integrity sha512-2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw== + version "5.2.1" + resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.1.tgz#0e5b492aa40de3819e80955f221d2fccef55b5aa" + integrity sha512-x15jnRSHTi3VmH+oHtVb9kgU/HuKOK8mjK8iCL3dPQXh4YJlUb9YSI8ZLiiqLAIvY2wuDIlZYZppy8vB2XISkQ== dependencies: is-stream "^2.0.0" type-fest "^0.8.0" @@ -5805,9 +5805,9 @@ is-buffer@^2.0.0: integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== is-callable@^1.1.4, is-callable@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.1.tgz#4d1e21a4f437509d25ce55f8184350771421c96d" - integrity sha512-wliAfSzx6V+6WfMOmus1xy0XvSgf/dlStkvTfq7F0g4bOIW0PSUbnyse3NhDwdyYS1ozfUtAAySqTws3z9Eqgg== + 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@^2.0.0: version "2.0.0" @@ -7222,11 +7222,16 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.44.0, "mime-db@>= 1.43.0 < 2": +mime-db@1.44.0: version "1.44.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== +"mime-db@>= 1.43.0 < 2": + version "1.45.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" + integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== + mime-types@^2.1.12, mime-types@^2.1.26, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.27" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" @@ -8538,9 +8543,9 @@ postcss-selector-parser@^3.0.0: uniq "^1.0.1" postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.3.tgz#766d77728728817cc140fa1ac6da5e77f9fada98" - integrity sha512-0ClFaY4X1ra21LRqbW6y3rUbWcxnSVkDFG57R7Nxus9J9myPFlv+jYDMohzpkBx0RrjjiqjtycpchQ+PLGmZ9w== + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" + integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== dependencies: cssesc "^3.0.0" indexes-of "^1.0.1" @@ -8590,10 +8595,10 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.2, postcss@^7.0.21 source-map "^0.6.1" supports-color "^6.1.0" -postcss@^8.0.6: - version "8.0.6" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.0.6.tgz#1507160d7df320c77f8f4819cf52491f4748b672" - integrity sha512-P4lvqkhoiba/w0JE1t432xlQyeJnnf1elrviZOX0GybserV79IN4skB2nQg+NoOmkq30MNqVv9ggdqVmYjaolA== +postcss@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.1.0.tgz#1be330c7f6971d49726059b9f51785f45273fa70" + integrity sha512-d3RppIo1DI66oHxA1vdckr5qciQbMIrHvyzuvp2cLJHOLwJHg7X9ncrfw2Ri6Sgiwv/GoXtOwEHJ9E9VSRxXWQ== dependencies: colorette "^1.2.1" line-column "^1.0.2" @@ -8898,10 +8903,10 @@ react-highlighter@^0.4.3: escape-string-regexp "^1.0.5" prop-types "^15.6.0" -react-i18next@^11.7.2: - version "11.7.2" - resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-11.7.2.tgz#b3cb94ad3b85c25e3d4802a141139d65238b976f" - integrity sha512-Djj3K3hh5Tecla2CI9rLO3TZBYGMFrGilm0JY4cLofAQONCi5TK6nVmUPKoB59n1ZffgjfgJt6zlbE9aGF6Q0Q== +react-i18next@^11.7.3: + version "11.7.3" + resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-11.7.3.tgz#256461c46baf5b3208c3c6860ca4e569fc7ed053" + integrity sha512-7sYZqVZgdaS9Z0ZH6nuJFErCD0zz5wK3jR4/xCrWjZcxHHF3GRu7BXdicbSPprZV4ZYz7LJzxxMHO7dg5Qb70A== dependencies: "@babel/runtime" "^7.3.1" html-parse-stringify2 "2.0.1" @@ -10325,10 +10330,10 @@ stylelint-scss@^3.18.0: postcss-selector-parser "^6.0.2" postcss-value-parser "^4.1.0" -stylelint@^13.7.1: - version "13.7.1" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.7.1.tgz#bee97ee78d778a3f1dbe3f7397b76414973e263e" - integrity sha512-qzqazcyRxrSRdmFuO0/SZOJ+LyCxYy0pwcvaOBBnl8/2VfHSMrtNIE+AnyJoyq6uKb+mt+hlgmVrvVi6G6XHfQ== +stylelint@^13.7.2: + version "13.7.2" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.7.2.tgz#6f3c58eea4077680ed0ceb0d064b22b100970486" + integrity sha512-mmieorkfmO+ZA6CNDu1ic9qpt4tFvH2QUB7vqXgrMVHe5ENU69q7YDq0YUg/UHLuCsZOWhUAvcMcLzLDIERzSg== dependencies: "@stylelint/postcss-css-in-js" "^0.37.2" "@stylelint/postcss-markdown" "^0.36.1" @@ -11183,9 +11188,9 @@ vinyl-sourcemap@^1.1.0: vinyl "^2.0.0" vinyl@^2.0.0, vinyl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86" - integrity sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg== + version "2.2.1" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.1.tgz#23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974" + integrity sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw== dependencies: clone "^2.1.1" clone-buffer "^1.0.0" From 0fd8d1e5de533937718b6634d4cc51bd99a1c75a Mon Sep 17 00:00:00 2001 From: Jonny Gerig Meyer Date: Mon, 5 Oct 2020 11:54:04 -0400 Subject: [PATCH 02/12] Combined deps upgrade. --- .eslintrc.yml | 4 +- package.json | 30 +- requirements/dev.in | 8 +- requirements/dev.txt | 10 +- requirements/prod.in | 8 +- requirements/prod.txt | 18 +- src/js/index.tsx | 4 +- yarn.lock | 1098 +++++++++++++++++++++-------------------- 8 files changed, 610 insertions(+), 570 deletions(-) diff --git a/.eslintrc.yml b/.eslintrc.yml index 3dfc598f4..7803167d7 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -51,10 +51,12 @@ rules: trailingComma: all # Import + import/default: 0 + import/named: 0 + import/no-named-as-default: 0 import/order: - 1 - newlines-between: always - import/named: 1 # Possible Errors getter-return: 2 diff --git a/package.json b/package.json index 783ecb1fa..26e8b10e3 100644 --- a/package.json +++ b/package.json @@ -49,12 +49,12 @@ "heroku-postbuild": "yarn prod" }, "dependencies": { - "@salesforce-ux/design-system": "2.13.3", + "@salesforce-ux/design-system": "2.13.5", "@salesforce/design-system-react": "0.10.22", - "@sentry/browser": "^5.24.2", + "@sentry/browser": "^5.25.0", "classnames": "^2.2.6", "date-fns": "^2.16.1", - "i18next": "^19.7.0", + "i18next": "^19.8.1", "i18next-browser-languagedetector": "^6.0.1", "i18next-xhr-backend": "^3.2.2", "js-cookie": "^2.2.1", @@ -72,7 +72,7 @@ "redux-thunk": "^2.3.0", "reselect": "^4.0.0", "sockette": "^2.0.6", - "uuid": "^8.3.0", + "uuid": "^8.3.1", "whatwg-fetch": "^3.4.1" }, "devDependencies": { @@ -91,17 +91,17 @@ "@types/core-js": "^2.5.4", "@types/js-cookie": "^2.2.6", "@types/lodash": "^4.14.161", - "@types/react": "^16.9.49", + "@types/react": "^16.9.50", "@types/react-document-title": "^2.0.4", "@types/react-dom": "^16.9.8", "@types/react-redux": "^7.1.9", "@types/react-router-dom": "^5.1.5", "@types/redux-logger": "^3.0.8", "@types/uuid": "^8.3.0", - "@typescript-eslint/eslint-plugin": "^4.2.0", - "@typescript-eslint/parser": "^4.2.0", + "@typescript-eslint/eslint-plugin": "^4.3.0", + "@typescript-eslint/parser": "^4.3.0", "autoprefixer": "^10.0.1", - "babel-jest": "^26.3.0", + "babel-jest": "^26.5.0", "babel-loader": "^8.1.0", "clean-webpack-plugin": "^3.0.0", "core-js": "^3.6.5", @@ -109,27 +109,27 @@ "css-loader": "^4.3.0", "eslint": "^7.10.0", "eslint-config-prettier": "^6.12.0", - "eslint-import-resolver-typescript": "^1.1.1", + "eslint-import-resolver-typescript": "^2.3.0", "eslint-import-resolver-webpack": "^0.13.0", "eslint-plugin-import": "^2.22.1", "eslint-plugin-jest": "^24.0.2", "eslint-plugin-prettier": "^3.1.4", - "eslint-plugin-react": "^7.21.2", + "eslint-plugin-react": "^7.21.3", "eslint-plugin-react-hooks": "^4.1.2", "eslint-plugin-simple-import-sort": "^5.0.3", "fetch-mock": "^9.10.7", "file-loader": "^6.1.0", "html-webpack-plugin": "^4.5.0", "i18next-scanner-webpack": "^0.5.1", - "jest": "^26.4.2", - "jest-junit": "^11.1.0", - "mini-css-extract-plugin": "^0.11.2", + "jest": "^26.5.0", + "jest-junit": "^12.0.0", + "mini-css-extract-plugin": "^0.11.3", "node-fetch": "^2.6.1", "npm-run-all": "^4.1.5", "nyc": "^15.1.0", "optimize-css-assets-webpack-plugin": "^5.0.4", - "postcss": "^8.1.0", - "postcss-loader": "^4.0.2", + "postcss": "^8.1.1", + "postcss-loader": "^4.0.3", "prettier": "^2.1.2", "react-test-renderer": "^16.13.1", "redux-mock-store": "^1.5.4", diff --git a/requirements/dev.in b/requirements/dev.in index ca5ea61c4..cd6b66ad9 100644 --- a/requirements/dev.in +++ b/requirements/dev.in @@ -4,17 +4,17 @@ black==20.8b1 coveralls==2.1.2 django-extensions==3.0.9 doc8==0.8.1 -factory_boy==3.0.1 +factory_boy==3.1.0 flake8-bugbear==20.1.4 -flake8==3.8.3 +flake8==3.8.4 ipython==7.18.1 -isort==5.5.3 +isort==5.5.4 pytest-asyncio==0.14.0 pytest-cov==2.10.1 pytest-django==3.10.0 pytest-factoryboy==2.0.3 pytest-mock==3.3.1 pytest-sugar==0.9.4 -pytest==6.1.0 +pytest==6.1.1 remote-pdb==2.1.0 sphinxcontrib-httpdomain==1.7.0 diff --git a/requirements/dev.txt b/requirements/dev.txt index d10d78315..66689a249 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -20,17 +20,17 @@ django-extensions==3.0.9 # via -r requirements/dev.in doc8==0.8.1 # via -r requirements/dev.in docopt==0.6.2 # via coveralls docutils==0.16 # via -c requirements/prod.txt, doc8, restructuredtext-lint, sphinx -factory-boy==3.0.1 # via -r requirements/dev.in, pytest-factoryboy -faker==4.1.2 # via -c requirements/prod.txt, factory-boy +factory-boy==3.1.0 # via -r requirements/dev.in, pytest-factoryboy +faker==4.1.3 # via -c requirements/prod.txt, factory-boy flake8-bugbear==20.1.4 # via -r requirements/dev.in -flake8==3.8.3 # via -r requirements/dev.in, flake8-bugbear +flake8==3.8.4 # via -r requirements/dev.in, flake8-bugbear idna==2.10 # via -c requirements/prod.txt, requests imagesize==1.2.0 # via sphinx inflection==0.5.1 # via pytest-factoryboy iniconfig==1.0.1 # via pytest ipython-genutils==0.2.0 # via traitlets ipython==7.18.1 # via -r requirements/dev.in -isort==5.5.3 # via -r requirements/dev.in +isort==5.5.4 # via -r requirements/dev.in jedi==0.17.2 # via ipython jinja2==2.11.2 # via -c requirements/prod.txt, sphinx markupsafe==1.1.1 # via -c requirements/prod.txt, jinja2 @@ -56,7 +56,7 @@ pytest-django==3.10.0 # via -r requirements/dev.in pytest-factoryboy==2.0.3 # via -r requirements/dev.in pytest-mock==3.3.1 # via -r requirements/dev.in pytest-sugar==0.9.4 # via -r requirements/dev.in -pytest==6.1.0 # via -r requirements/dev.in, pytest-asyncio, pytest-cov, pytest-django, pytest-factoryboy, pytest-mock, pytest-sugar +pytest==6.1.1 # via -r requirements/dev.in, pytest-asyncio, pytest-cov, pytest-django, pytest-factoryboy, pytest-mock, pytest-sugar python-dateutil==2.8.1 # via -c requirements/prod.txt, faker pytz==2020.1 # via -c requirements/prod.txt, babel regex==2020.9.27 # via black diff --git a/requirements/prod.in b/requirements/prod.in index c03987fd9..f6903acb8 100644 --- a/requirements/prod.in +++ b/requirements/prod.in @@ -1,9 +1,9 @@ -Django==3.1.1 -beautifulsoup4==4.9.2 +Django==3.1.2 +beautifulsoup4==4.9.3 bleach==3.2.1 channels-redis==3.1.0 channels==2.4.0 -cumulusci==3.19.1 +cumulusci==3.20.0 dj-database-url==0.5.0 django-allauth==0.42.0 django-anymail[mailgun]==8.0 @@ -29,7 +29,7 @@ markdown==3.2.2 psycopg2-binary==2.8.6 rq-scheduler==0.10.0 -sentry-sdk==0.17.8 +sentry-sdk==0.18.0 service_identity==18.1.0 https://github.com/SFDO-Tooling/sfdo-template-helpers/archive/v0.16.0.tar.gz whitenoise==5.2.0 diff --git a/requirements/prod.txt b/requirements/prod.txt index 9720b670f..d8806983c 100644 --- a/requirements/prod.txt +++ b/requirements/prod.txt @@ -13,10 +13,10 @@ attrs==20.2.0 # via automat, service-identity, twisted authlib==0.14.3 # via simple-salesforce autobahn==20.7.1 # via daphne automat==20.2.0 # via twisted -beautifulsoup4==4.9.2 # via -r requirements/prod.in +beautifulsoup4==4.9.3 # via -r requirements/prod.in bleach==3.2.1 # via -r requirements/prod.in, sfdo-template-helpers certifi==2020.6.20 # via cumulusci, requests, sentry-sdk -cffi==1.14.2 # via cryptography, cumulusci +cffi==1.14.3 # via cryptography, cumulusci channels-redis==3.1.0 # via -r requirements/prod.in channels==2.4.0 # via -r requirements/prod.in, channels-redis chardet==3.0.4 # via cumulusci, requests @@ -24,8 +24,8 @@ click==7.1.2 # via cumulusci, rq, snowfakery coloredlogs==14.0 # via cumulusci constantly==15.1.0 # via twisted croniter==0.3.34 # via rq-scheduler -cryptography==3.1 # via authlib, autobahn, cumulusci, jwcrypto, pyopenssl, secretstorage, service-identity, sfdo-template-helpers -cumulusci==3.19.1 # via -r requirements/prod.in +cryptography==3.1.1 # via authlib, autobahn, cumulusci, jwcrypto, pyopenssl, secretstorage, service-identity, sfdo-template-helpers +cumulusci==3.20.0 # via -r requirements/prod.in daphne==2.5.0 # via channels defusedxml==0.6.0 # via python3-openid dj-database-url==0.5.0 # via -r requirements/prod.in @@ -39,10 +39,10 @@ django-model-utils==4.0.0 # via -r requirements/prod.in django-parler==2.2 # via -r requirements/prod.in django-redis==4.12.1 # via -r requirements/prod.in django-rq==2.3.2 # via -r requirements/prod.in -django==3.1.1 # via -r requirements/prod.in, channels, django-allauth, django-anymail, django-filter, django-hashid-field, django-js-reverse, django-log-request-id, django-model-utils, django-redis, django-rq, djangorestframework, sfdo-template-helpers +django==3.1.2 # via -r requirements/prod.in, channels, django-allauth, django-anymail, django-filter, django-hashid-field, django-js-reverse, django-log-request-id, django-model-utils, django-redis, django-rq, djangorestframework, sfdo-template-helpers djangorestframework==3.12.1 # via -r requirements/prod.in, sfdo-template-helpers docutils==0.16 # via cumulusci -faker==4.1.2 # via cumulusci, snowfakery +faker==4.1.3 # via cumulusci, snowfakery fs==2.4.11 # via cumulusci furl==2.1.0 # via -r requirements/prod.in github3-py==1.3.0 # via -r requirements/prod.in @@ -97,12 +97,12 @@ salesforce-bulk==2.1.0 # via cumulusci sarge==0.1.6 # via cumulusci secretstorage==3.1.2 # via keyring selenium==3.141.0 # via cumulusci, robotframework-seleniumlibrary -sentry-sdk==0.17.8 # via -r requirements/prod.in +sentry-sdk==0.18.0 # via -r requirements/prod.in service-identity==18.1.0 # via -r requirements/prod.in, twisted https://github.com/SFDO-Tooling/sfdo-template-helpers/archive/v0.16.0.tar.gz # via -r requirements/prod.in simple-salesforce==1.10.1 # via cumulusci, salesforce-bulk six==1.15.0 # via automat, bleach, cryptography, cumulusci, fs, furl, orderedmultidict, packaging, pyopenssl, python-dateutil, salesforce-bulk -snowfakery==1.1.1 # via cumulusci +snowfakery==1.1.2 # via cumulusci soupsieve==2.0.1 # via beautifulsoup4 sqlalchemy==1.3.19 # via cumulusci, snowfakery sqlparse==0.3.1 # via django @@ -117,7 +117,7 @@ urllib3==1.25.10 # via cumulusci, requests, selenium, sentry-sdk webencodings==0.5.1 # via bleach whitenoise==5.2.0 # via -r requirements/prod.in xmltodict==0.12.0 # via cumulusci -zope.interface==5.1.0 # via twisted +zope.interface==5.1.2 # via twisted # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/src/js/index.tsx b/src/js/index.tsx index 4b0e4a697..5ce56fcbe 100644 --- a/src/js/index.tsx +++ b/src/js/index.tsx @@ -8,7 +8,7 @@ import settings from '@salesforce/design-system-react/components/settings'; import i18n from 'i18next'; import React, { useEffect } from 'react'; import DocumentTitle from 'react-document-title'; -import ReactDOM from 'react-dom'; +import { render } from 'react-dom'; import { Provider } from 'react-redux'; import { BrowserRouter, @@ -175,7 +175,7 @@ initializeI18n((i18nError?: string) => { settings.setAppElement(el); const renderApp = () => { - ReactDOM.render( + render( Date: Mon, 12 Oct 2020 21:48:36 +0000 Subject: [PATCH 03/12] Create Dependabot config file --- .github/dependabot.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..e2636249e --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,15 @@ +version: 2 +updates: +- package-ecosystem: pip + directory: "/" + schedule: + interval: weekly + time: "04:00" + timezone: America/New_York + open-pull-requests-limit: 99 + reviewers: + - jgerigmeyer + - wlonk + allow: + - dependency-type: direct + - dependency-type: indirect From add0457091220186f140264239ac25c7446f2bba Mon Sep 17 00:00:00 2001 From: Jonny Gerig Meyer Date: Mon, 12 Oct 2020 17:51:38 -0400 Subject: [PATCH 04/12] Update .github/dependabot.yml --- .github/dependabot.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index e2636249e..c22c1e028 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -7,9 +7,6 @@ updates: time: "04:00" timezone: America/New_York open-pull-requests-limit: 99 - reviewers: - - jgerigmeyer - - wlonk allow: - dependency-type: direct - dependency-type: indirect From 432a36cdca90a9a431db1b2f5f8a33108625325a Mon Sep 17 00:00:00 2001 From: Jonny Gerig Meyer Date: Mon, 12 Oct 2020 17:54:17 -0400 Subject: [PATCH 05/12] Update .github/dependabot.yml --- .github/dependabot.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index c22c1e028..86016391d 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,7 +4,8 @@ updates: directory: "/" schedule: interval: weekly - time: "04:00" + day: wednesday + time: "05:00" timezone: America/New_York open-pull-requests-limit: 99 allow: From cc41783e257a3e6462a4825d85ca272188e89943 Mon Sep 17 00:00:00 2001 From: Jonny Gerig Meyer Date: Wed, 2 Dec 2020 12:53:16 -0500 Subject: [PATCH 06/12] Upgrade deps, backport improvements from MetaDeploy. --- .circleci/config.yml | 19 +- .devcontainer/devcontainer.json | 1 + .github/dependabot.yml | 31 +- CONTRIBUTING.rst | 21 +- Dockerfile | 13 +- app.json | 8 +- config/settings/base.py | 37 +- docker-compose.yml | 5 +- env.example | 10 +- metecho/api/hook_serializers.py | 4 +- metecho/api/jobs.py | 1 - metecho/api/migrations/0016_add_socialapps.py | 4 +- .../migrations/0047_task_assigned_roles.py | 5 +- ...4_add_soft_delete_to_projects_and_tasks.py | 4 +- .../migrations/0068_scratchorg_deleted_at.py | 4 +- ...remove_name_repo_constraint_on_projects.py | 5 +- ...remove_name_project_constraint_on_tasks.py | 5 +- .../0076_move_repo_image_url_to_repository.py | 5 +- .../0086_rename_ms_commits_metecho_commits.py | 4 +- metecho/api/models.py | 22 +- metecho/api/sf_org_changes.py | 2 +- metecho/api/sf_run_flow.py | 122 +- metecho/api/tests/gh.py | 3 +- metecho/api/tests/hook_serializers.py | 8 +- metecho/api/tests/models.py | 11 +- metecho/api/tests/serializers.py | 31 +- metecho/api/tests/sf_org_changes.py | 3 +- metecho/api/tests/sf_run_flow.py | 55 +- metecho/api/tests/views.py | 16 +- metecho/oauth2/views.py | 4 +- metecho/routing.py | 14 +- metecho/tests/consumers.py | 19 +- package.json | 117 +- requirements/dev.in | 16 +- requirements/dev.txt | 54 +- requirements/prod.in | 22 +- requirements/prod.txt | 80 +- runtime.txt | 2 +- src/js/.eslintrc.yml | 2 +- src/js/@types/custom.d.ts | 4 + src/js/index.tsx | 4 +- test/js/.eslintrc.yml | 2 +- yarn.lock | 3794 ++++++++--------- 43 files changed, 2318 insertions(+), 2275 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 28ea1df9f..72b407086 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -4,7 +4,7 @@ jobs: build: working_directory: ~/metecho docker: - - image: oddbirds/pyjs:v0.2.0 + - image: oddbirds/pyjs:v0.4.0 steps: - checkout - restore_cache: @@ -44,7 +44,7 @@ jobs: lint: working_directory: ~/metecho docker: - - image: oddbirds/pyjs:v0.2.0 + - image: oddbirds/pyjs:v0.4.0 steps: - checkout - attach_workspace: @@ -58,7 +58,7 @@ jobs: test-client: working_directory: ~/metecho docker: - - image: oddbirds/pyjs:v0.2.0 + - image: oddbirds/pyjs:v0.4.0 steps: - checkout - attach_workspace: @@ -79,7 +79,7 @@ jobs: test-python: working_directory: ~/metecho docker: - - image: oddbirds/pyjs:v0.2.0 + - image: oddbirds/pyjs:v0.4.0 environment: DATABASE_URL: postgres://ubuntu:circle_test@localhost:5432/circle_test DB_ENCRYPTION_KEY: MMkDMBfYL0Xoz3Xu1ENs3AkdCZdJoks5PNlUBkK7KDc= @@ -88,8 +88,11 @@ jobs: DJANGO_SECRET_KEY: test_secret_key DJANGO_SETTINGS_MODULE: config.settings.test SECURE_SSL_REDIRECT: False - - image: circleci/redis:5.0 - - image: circleci/postgres:12.3 + SFDX_CLIENT_CALLBACK_URL: circle_test + SFDX_CLIENT_ID: circle_test + SFDX_CLIENT_SECRET: circle_test + - image: circleci/redis:6.0 + - image: circleci/postgres:13.1 environment: POSTGRES_DB: circle_test POSTGRES_PASSWORD: circle_test @@ -121,7 +124,7 @@ jobs: report-test-coverage: working_directory: ~/metecho docker: - - image: oddbirds/pyjs:v0.2.0 + - image: oddbirds/pyjs:v0.4.0 environment: COVERALLS_PARALLEL: true steps: @@ -147,7 +150,7 @@ jobs: build-docs: working_directory: ~/metecho docker: - - image: oddbirds/pyjs:v0.2.0 + - image: oddbirds/pyjs:v0.4.0 steps: - checkout - attach_workspace: diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 6021cb878..47ec640bc 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -26,6 +26,7 @@ "xabikos.javascriptsnippets" ], "settings": { + "terminal.integrated.shell.linux": null, "editor.codeActionsOnSave": { "source.fixAll.eslint": true }, diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 86016391d..6b70b85fe 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,13 +1,22 @@ version: 2 updates: -- package-ecosystem: pip - directory: "/" - schedule: - interval: weekly - day: wednesday - time: "05:00" - timezone: America/New_York - open-pull-requests-limit: 99 - allow: - - dependency-type: direct - - dependency-type: indirect + - package-ecosystem: pip + directory: '/' + schedule: + interval: weekly + day: wednesday + time: '05:00' + timezone: America/New_York + open-pull-requests-limit: 99 + allow: + - dependency-type: direct + - dependency-type: indirect + - package-ecosystem: npm + directory: '/' + schedule: + interval: weekly + day: wednesday + time: '05:00' + timezone: America/New_York + open-pull-requests-limit: 99 + versioning-strategy: increase diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 333ed418d..f8d8dd6c0 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -43,19 +43,19 @@ Docker-based development can find these values in the shared Keybase team folder -- ``metecho/env``):: - SF_CLIENT_KEY=... - SF_CLIENT_ID=... - SF_CLIENT_SECRET=... + DOCKER_SFDX_HUB_KEY=... + SFDX_CLIENT_ID=... + SFDX_CLIENT_SECRET=... GITHUB_HOOK_SECRET=... GITHUB_CLIENT_ID=... GITHUB_CLIENT_SECRET=... GITHUB_APP_ID=... - GITHUB_APP_KEY=... + DOCKER_GITHUB_APP_KEY=... - Note that none of the values should be quoted, and while ``SF_CLIENT_KEY`` - and ``GITHUB_APP_KEY`` are RSA private keys, they must have newlines replaced - with ``\n`` in order to work properly with the Docker ``env_file`` - configuration option (see `this issue`_). + Note that none of the values should be quoted, and while + ``DOCKER_SFDX_HUB_KEY`` and ``DOCKER_GITHUB_APP_KEY`` are RSA private keys, + they must have newlines replaced with ``\n`` in order to work properly with + the Docker ``env_file`` configuration option (see `this issue`_). 3. Run ``./derrick build`` to build/re-build all the container images. @@ -109,8 +109,9 @@ variable in Metecho. Use the app's "App ID" as ``GITHUB_APP_ID``, "Client ID" as ``GITHUB_CLIENT_ID``, and "Client secret" as ``GITHUB_CLIENT_SECRET``. -Finally, generate a new private key for the app, and set it as the -``GITHUB_APP_KEY`` environment variable (the entire key, not a path to one). +Finally, generate a new private key for the app, replace newlines with ``\n``, +and set it as the ``DOCKER_GITHUB_APP_KEY`` environment variable (the entire +key, not a path to one). Logging in as a superuser ~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/Dockerfile b/Dockerfile index 80a708036..2bc702d0c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM oddbirds/pyjs:v0.2.0 +FROM oddbirds/pyjs:v0.4.0 ARG BUILD_ENV=development @@ -12,8 +12,12 @@ RUN chmod +x /start-server.sh # Python requirements: COPY ./requirements /requirements -RUN pip install --no-cache-dir -r requirements/prod.txt -RUN if [ "${BUILD_ENV}" = "development" ]; then pip install --no-cache-dir -r requirements/dev.txt; fi +RUN pip install --no-cache-dir --upgrade pip \ + && pip install --no-cache-dir -r requirements/prod.txt +RUN if [ "${BUILD_ENV}" = "development" ] ; then \ + pip install --no-cache-dir --upgrade pip \ + && pip install --no-cache-dir -r requirements/dev.txt; \ + fi # Install sfdx RUN mkdir sfdx && wget -qO- https://developer.salesforce.com/media/salesforce-cli/sfdx-linux-amd64.tar.xz | tar xJ -C sfdx --strip-components 1 && ./sfdx/install && rm -rf sfdx @@ -35,6 +39,9 @@ RUN DATABASE_URL="" \ DB_ENCRYPTION_KEY="IfFzxkuTnuk-J-TnjisNz0wlBHmAILOnAzoG-NpMQNE=" \ DJANGO_HASHID_SALT="sample hashid salt" \ DJANGO_SECRET_KEY="sample secret key" \ + SFDX_CLIENT_SECRET="sample secret" \ + SFDX_CLIENT_CALLBACK_URL="sample callback" \ + SFDX_CLIENT_ID="sample id" \ python manage.py collectstatic --noinput CMD /start-server.sh diff --git a/app.json b/app.json index 1cf7a735e..988101884 100644 --- a/app.json +++ b/app.json @@ -51,16 +51,16 @@ "GITHUB_APP_KEY": { "description": "RSA private key for GitHub App" }, - "SF_CALLBACK_URL": { + "SFDX_CLIENT_CALLBACK_URL": { "description": "Callback URL for Salesforce Connected App (e.g. \"https://<...>/accounts/salesforce/login/callback/\")" }, - "SF_CLIENT_ID": { + "SFDX_CLIENT_ID": { "description": "Consumer Key for Salesforce Connected App" }, - "SF_CLIENT_SECRET": { + "SFDX_CLIENT_SECRET": { "description": "Consumer Secret for Salesforce Connected App" }, - "SF_CLIENT_KEY": { + "SFDX_HUB_KEY": { "description": "RSA private key matching digital certificate on Salesforce Connected App" } }, diff --git a/config/settings/base.py b/config/settings/base.py index 0aa7bd6ba..6fbe57826 100644 --- a/config/settings/base.py +++ b/config/settings/base.py @@ -227,7 +227,8 @@ def env(name, default=NoDefaultValue, type_=str): GITHUB_USER_NAME = env("GITHUB_USER_NAME", default="GitHub user") GITHUB_APP_ID = env("GITHUB_APP_ID", default=0, type_=int) # Ugly hack to fix https://github.com/moby/moby/issues/12997 -GITHUB_APP_KEY = bytes(env("GITHUB_APP_KEY", default="").replace("\\n", "\n"), "utf-8") +DOCKER_GITHUB_APP_KEY = env("DOCKER_GITHUB_APP_KEY", default="").replace("\\n", "\n") +GITHUB_APP_KEY = bytes(env("GITHUB_APP_KEY", default=DOCKER_GITHUB_APP_KEY), "utf-8") # Salesforce Devhub settings: @@ -343,12 +344,34 @@ def env(name, default=NoDefaultValue, type_=str): GITHUB_OAUTH_SCOPES.append("repo" if GITHUB_OAUTH_PRIVATE_REPO else "public_repo") # SF client settings: -SF_CALLBACK_URL = env("SF_CALLBACK_URL", default=None) +SFDX_CLIENT_CALLBACK_URL = env( + "SFDX_CLIENT_CALLBACK_URL", default=env("SF_CALLBACK_URL", default=None) +) +SFDX_CLIENT_ID = env("SFDX_CLIENT_ID", default=env("SF_CLIENT_ID", default=None)) +SFDX_CLIENT_SECRET = env( + "SFDX_CLIENT_SECRET", default=env("SF_CLIENT_SECRET", default=None) +) +SFDX_SIGNUP_INSTANCE = env( + "SFDX_SIGNUP_INSTANCE", default=env("SF_SIGNUP_INSTANCE", default=None) +) # Ugly hack to fix https://github.com/moby/moby/issues/12997 -SF_CLIENT_KEY = env("SF_CLIENT_KEY", default="").replace("\\n", "\n") -SF_CLIENT_ID = env("SF_CLIENT_ID", default=None) -SF_CLIENT_SECRET = env("SF_CLIENT_SECRET", default=None) -SF_SIGNUP_INSTANCE = env("SF_SIGNUP_INSTANCE", default=None) +DOCKER_SFDX_HUB_KEY = env("DOCKER_SFDX_HUB_KEY", default="").replace("\\n", "\n") +SFDX_HUB_KEY = env( + "SFDX_HUB_KEY", default=env("SF_CLIENT_KEY", default=DOCKER_SFDX_HUB_KEY) +) + +if not SFDX_CLIENT_SECRET: + raise ImproperlyConfigured("Missing environment variable: SFDX_CLIENT_SECRET.") +if not SFDX_CLIENT_CALLBACK_URL: + raise ImproperlyConfigured( + "Missing environment variable: SFDX_CLIENT_CALLBACK_URL." + ) +if not SFDX_CLIENT_ID: + raise ImproperlyConfigured("Missing environment variable: SFDX_CLIENT_ID.") + +# CCI expects these env vars to be set to refresh org oauth tokens +environ["SFDX_CLIENT_ID"] = SFDX_CLIENT_ID +environ["SFDX_HUB_KEY"] = SFDX_HUB_KEY SOCIALACCOUNT_PROVIDERS = { "github": { @@ -357,7 +380,7 @@ def env(name, default=NoDefaultValue, type_=str): }, "salesforce": { "SCOPE": ["web", "full", "refresh_token"], - "APP": {"client_id": SF_CLIENT_ID, "secret": SF_CLIENT_SECRET}, + "APP": {"client_id": SFDX_CLIENT_ID, "secret": SFDX_CLIENT_SECRET}, }, } ACCOUNT_EMAIL_REQUIRED = True diff --git a/docker-compose.yml b/docker-compose.yml index c25bc6861..e02783a2c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -18,6 +18,7 @@ services: DJANGO_SETTINGS_MODULE: config.settings.local DATABASE_URL: postgres://metecho:sample_db_password@postgres:5432/metecho REDIS_URL: redis://redis:6379 + REDIS_HOST: redis volumes: - .:/app:cached - /app/node_modules @@ -34,7 +35,7 @@ services: # Runs the database process: postgres: - image: postgres:12.3 + image: postgres:13.1 restart: always environment: POSTGRES_USER: metecho @@ -44,4 +45,4 @@ services: # Runs the queue process: redis: - image: redis:5.0 + image: redis:6.0 diff --git a/env.example b/env.example index bf6e15c47..d60b87282 100644 --- a/env.example +++ b/env.example @@ -3,12 +3,12 @@ DJANGO_HASHID_SALT=... DB_ENCRYPTION_KEY=... DJANGO_DEBUG=True SECURE_SSL_REDIRECT=False -SF_CALLBACK_URL=http://localhost:8080/accounts/salesforce/login/callback/ -SF_CLIENT_KEY=-----BEGIN RSA PRIVATE KEY-----\n[some key here]\n-----END RSA PRIVATE KEY----- -SF_CLIENT_ID=... -SF_CLIENT_SECRET=... +SFDX_CLIENT_CALLBACK_URL=http://localhost:8080/accounts/salesforce/login/callback/ +DOCKER_SFDX_HUB_KEY=-----BEGIN RSA PRIVATE KEY-----\n[some key here]\n-----END RSA PRIVATE KEY----- +SFDX_CLIENT_ID=... +SFDX_CLIENT_SECRET=... GITHUB_HOOK_SECRET=... GITHUB_CLIENT_ID=... GITHUB_CLIENT_SECRET=... GITHUB_APP_ID=... -GITHUB_APP_KEY=... +DOCKER_GITHUB_APP_KEY=... diff --git a/metecho/api/hook_serializers.py b/metecho/api/hook_serializers.py index 2318c993d..71a1f7af6 100644 --- a/metecho/api/hook_serializers.py +++ b/metecho/api/hook_serializers.py @@ -146,7 +146,9 @@ def process_hook(self): else: sender = self.validated_data["sender"] repository.add_commits( - commits=self.validated_data["commits"], ref=ref, sender=sender, + commits=self.validated_data["commits"], + ref=ref, + sender=sender, ) diff --git a/metecho/api/jobs.py b/metecho/api/jobs.py index c9cd639ae..32520feb0 100644 --- a/metecho/api/jobs.py +++ b/metecho/api/jobs.py @@ -792,7 +792,6 @@ def available_task_org_config_names(project, *, user): def user_reassign(scratch_org, *, new_user, originating_user_id): try: scratch_org.refresh_from_db() - scratch_org.config["email"] = new_user.email scratch_org.owner = new_user org_config = scratch_org.get_refreshed_org_config() username = org_config.username diff --git a/metecho/api/migrations/0016_add_socialapps.py b/metecho/api/migrations/0016_add_socialapps.py index 0ad94617f..8c23cdd11 100644 --- a/metecho/api/migrations/0016_add_socialapps.py +++ b/metecho/api/migrations/0016_add_socialapps.py @@ -6,8 +6,8 @@ def forwards(apps, schema_editor): - client_id = environ.get("SF_CLIENT_ID") - secret = environ.get("SF_CLIENT_SECRET") + client_id = environ.get("SFDX_CLIENT_ID") + secret = environ.get("SFDX_CLIENT_SECRET") if client_id and secret: SocialApp = apps.get_model("socialaccount", "SocialApp") SocialApp.objects.get_or_create( diff --git a/metecho/api/migrations/0047_task_assigned_roles.py b/metecho/api/migrations/0047_task_assigned_roles.py index ea47cdea3..6cbc80fad 100644 --- a/metecho/api/migrations/0047_task_assigned_roles.py +++ b/metecho/api/migrations/0047_task_assigned_roles.py @@ -11,7 +11,10 @@ class Migration(migrations.Migration): ] operations = [ - migrations.RemoveField(model_name="task", name="assignee",), + migrations.RemoveField( + model_name="task", + name="assignee", + ), migrations.AddField( model_name="task", name="assigned_dev", diff --git a/metecho/api/migrations/0064_add_soft_delete_to_projects_and_tasks.py b/metecho/api/migrations/0064_add_soft_delete_to_projects_and_tasks.py index 82683439f..38df9731a 100644 --- a/metecho/api/migrations/0064_add_soft_delete_to_projects_and_tasks.py +++ b/metecho/api/migrations/0064_add_soft_delete_to_projects_and_tasks.py @@ -16,6 +16,8 @@ class Migration(migrations.Migration): field=models.DateTimeField(null=True), ), migrations.AddField( - model_name="task", name="deleted_at", field=models.DateTimeField(null=True), + model_name="task", + name="deleted_at", + field=models.DateTimeField(null=True), ), ] diff --git a/metecho/api/migrations/0068_scratchorg_deleted_at.py b/metecho/api/migrations/0068_scratchorg_deleted_at.py index 38f433f3a..58a9c3877 100644 --- a/metecho/api/migrations/0068_scratchorg_deleted_at.py +++ b/metecho/api/migrations/0068_scratchorg_deleted_at.py @@ -11,7 +11,9 @@ class Migration(migrations.Migration): operations = [ migrations.AddField( - model_name="scratchorg", name="cci_log", field=models.TextField(blank=True), + model_name="scratchorg", + name="cci_log", + field=models.TextField(blank=True), ), migrations.AddField( model_name="scratchorg", diff --git a/metecho/api/migrations/0073_remove_name_repo_constraint_on_projects.py b/metecho/api/migrations/0073_remove_name_repo_constraint_on_projects.py index 29cc01e5d..6789ca059 100644 --- a/metecho/api/migrations/0073_remove_name_repo_constraint_on_projects.py +++ b/metecho/api/migrations/0073_remove_name_repo_constraint_on_projects.py @@ -10,5 +10,8 @@ class Migration(migrations.Migration): ] operations = [ - migrations.AlterUniqueTogether(name="project", unique_together=set(),), + migrations.AlterUniqueTogether( + name="project", + unique_together=set(), + ), ] diff --git a/metecho/api/migrations/0074_remove_name_project_constraint_on_tasks.py b/metecho/api/migrations/0074_remove_name_project_constraint_on_tasks.py index e4c09aa76..ff6acf030 100644 --- a/metecho/api/migrations/0074_remove_name_project_constraint_on_tasks.py +++ b/metecho/api/migrations/0074_remove_name_project_constraint_on_tasks.py @@ -10,5 +10,8 @@ class Migration(migrations.Migration): ] operations = [ - migrations.AlterUniqueTogether(name="task", unique_together=set(),), + migrations.AlterUniqueTogether( + name="task", + unique_together=set(), + ), ] diff --git a/metecho/api/migrations/0076_move_repo_image_url_to_repository.py b/metecho/api/migrations/0076_move_repo_image_url_to_repository.py index 7dc137207..d47bf4f3f 100644 --- a/metecho/api/migrations/0076_move_repo_image_url_to_repository.py +++ b/metecho/api/migrations/0076_move_repo_image_url_to_repository.py @@ -10,7 +10,10 @@ class Migration(migrations.Migration): ] operations = [ - migrations.RemoveField(model_name="githubrepository", name="repo_image_url",), + migrations.RemoveField( + model_name="githubrepository", + name="repo_image_url", + ), migrations.AddField( model_name="repository", name="repo_image_url", diff --git a/metecho/api/migrations/0086_rename_ms_commits_metecho_commits.py b/metecho/api/migrations/0086_rename_ms_commits_metecho_commits.py index 7b9b25b17..dee17b03b 100644 --- a/metecho/api/migrations/0086_rename_ms_commits_metecho_commits.py +++ b/metecho/api/migrations/0086_rename_ms_commits_metecho_commits.py @@ -11,6 +11,8 @@ class Migration(migrations.Migration): operations = [ migrations.RenameField( - model_name="task", old_name="ms_commits", new_name="metecho_commits", + model_name="task", + old_name="ms_commits", + new_name="metecho_commits", ), ] diff --git a/metecho/api/models.py b/metecho/api/models.py index 7b9425915..9a769305b 100644 --- a/metecho/api/models.py +++ b/metecho/api/models.py @@ -6,8 +6,6 @@ from allauth.socialaccount.models import SocialAccount from asgiref.sync import async_to_sync from cryptography.fernet import InvalidToken -from cumulusci.core.config import OrgConfig -from cumulusci.oauth.salesforce import jwt_session from django.conf import settings from django.contrib.auth.models import AbstractUser from django.contrib.auth.models import UserManager as BaseUserManager @@ -40,7 +38,7 @@ SoftDeleteMixin, TimestampsMixin, ) -from .sf_run_flow import get_devhub_api +from .sf_run_flow import get_devhub_api, refresh_access_token from .validators import validate_unicode_branch logger = logging.getLogger(__name__) @@ -898,7 +896,7 @@ def save(self, *args, **kwargs): return ret def clean_config(self): - banned_keys = {"access_token"} + banned_keys = {"email", "access_token", "refresh_token"} self.config = {k: v for (k, v) in self.config.items() if k not in banned_keys} def mark_visited(self, *, originating_user_id): @@ -906,17 +904,13 @@ def mark_visited(self, *, originating_user_id): self.save() self.notify_changed(originating_user_id=originating_user_id) - def get_refreshed_org_config(self): - org_config = OrgConfig(self.config, "dev") - info = jwt_session( - settings.SF_CLIENT_ID, - settings.SF_CLIENT_KEY, - org_config.username, - org_config.instance_url, + def get_refreshed_org_config(self, org_name=None, keychain=None): + org_config = refresh_access_token( + scratch_org=self, + config=self.config, + org_name=org_name or self.task.org_config_name, + keychain=keychain, ) - org_config.config.update(info) - org_config._load_userinfo() - org_config._load_orginfo() return org_config def get_login_url(self): diff --git a/metecho/api/sf_org_changes.py b/metecho/api/sf_org_changes.py index 79e53076e..317b88e59 100644 --- a/metecho/api/sf_org_changes.py +++ b/metecho/api/sf_org_changes.py @@ -184,7 +184,7 @@ def get_salesforce_connection(*, scratch_org, originating_user_id, base_url=""): version=MetechoUniversalConfig().project__package__api_version, ) conn.headers.setdefault( - "Sforce-Call-Options", "client={}".format(settings.SF_CLIENT_ID) + "Sforce-Call-Options", "client={}".format(settings.SFDX_CLIENT_ID) ) conn.base_url += base_url diff --git a/metecho/api/sf_run_flow.py b/metecho/api/sf_run_flow.py index ed10c7757..87fd2c1f5 100644 --- a/metecho/api/sf_run_flow.py +++ b/metecho/api/sf_run_flow.py @@ -4,7 +4,6 @@ import shutil import subprocess from datetime import datetime -from unittest.mock import Mock from cumulusci.core.config import OrgConfig, TaskConfig from cumulusci.core.runtime import BaseCumulusCI @@ -21,10 +20,11 @@ # Salesforce connected app # Assign these locally, for brevity: -SF_CALLBACK_URL = settings.SF_CALLBACK_URL -SF_CLIENT_KEY = settings.SF_CLIENT_KEY -SF_CLIENT_ID = settings.SF_CLIENT_ID -SF_CLIENT_SECRET = settings.SF_CLIENT_SECRET +SF_CALLBACK_URL = settings.SFDX_CLIENT_CALLBACK_URL +SF_CLIENT_KEY = settings.SFDX_HUB_KEY +SF_CLIENT_ID = settings.SFDX_CLIENT_ID +SF_CLIENT_SECRET = settings.SFDX_CLIENT_SECRET +SFDX_SIGNUP_INSTANCE = settings.SFDX_SIGNUP_INSTANCE DURATION_DAYS = 30 @@ -47,6 +47,36 @@ """ +class ScratchOrgError(Exception): + pass + + +def handle_sf_error(err, scratch_org=None, originating_user_id=None): + if get_current_job(): + job_id = get_current_job().id + # This error is user-facing, and so for makemessages to + # pick it up correctly, we need it to be a single, + # unbroken, string literal (even though adjacent string + # literals should be parsed by the AST into a single + # string literal and picked up by makemessages, but + # that's a gripe for another day). We have relatively + # few errors that propagate directly from the backend + # like this, but when we do, this is the pattern we + # should use. + # + # This is also why we repeat the first sentence. + error_msg = _( + f"Are you certain that the org still exists? If you need support, your job ID is {job_id}." # noqa: B950 + ) + else: + error_msg = _(f"Are you certain that the org still exists? {err.args[0]}") + + error = ScratchOrgError(error_msg) + if scratch_org: + scratch_org.remove_scratch_org(error, originating_user_id=originating_user_id) + raise error + + def capitalize(s): """ Just capitalize first letter (different from .title, as it preserves @@ -61,67 +91,46 @@ def is_org_good(org): org_name = org.task.org_config_name try: org_config = OrgConfig(config, org_name) - org_config.refresh_oauth_token = Mock() - info = jwt_session( - SF_CLIENT_ID, SF_CLIENT_KEY, org_config.username, org_config.instance_url - ) - return "access_token" in info + org_config.refresh_oauth_token(None) + return "access_token" in org_config.config except HTTPError: return False -def refresh_access_token(*, config, org_name, scratch_org, originating_user_id): +def refresh_access_token( + *, scratch_org, config, org_name, keychain=None, originating_user_id=None +): """ Construct a new OrgConfig because ScratchOrgConfig tries to use sfdx which we don't want now -- this is a total hack which I'll try to smooth over with some improvements in CumulusCI """ try: - org_config = OrgConfig(config, org_name) - org_config.refresh_oauth_token = Mock() - info = jwt_session( - SF_CLIENT_ID, SF_CLIENT_KEY, org_config.username, org_config.instance_url - ) - org_config.config["access_token"] = info["access_token"] + org_config = OrgConfig(config, org_name, keychain=keychain) + org_config.refresh_oauth_token(keychain) return org_config except HTTPError as err: - if get_current_job(): - job_id = get_current_job().id - # This error is user-facing, and so for makemessages to - # pick it up correctly, we need it to be a single, - # unbroken, string literal (even though adjacent string - # literals should be parsed by the AST into a single - # string literal and picked up by makemessages, but - # that's a gripe for another day). We have relatively - # few errors that propagate directly from the backend - # like this, but when we do, this is the pattern we - # should use. - # - # This is also why we repeat the first sentence. - error_msg = _( - f"Are you certain that the org still exists? If you need support, your job ID is {job_id}." # noqa: B950 - ) - else: - error_msg = _(f"Are you certain that the org still exists? {err.args[0]}") - - err = err.__class__(error_msg, *err.args[1:],) - scratch_org.remove_scratch_org(err, originating_user_id=originating_user_id) - raise err - - -def get_devhub_api(*, devhub_username): + handle_sf_error( + err, scratch_org=scratch_org, originating_user_id=originating_user_id + ) + + +def get_devhub_api(*, devhub_username, scratch_org=None): """ Get an access token (session) for the specified dev hub username. This only works if the user has already authorized the connected app via an interactive login flow, such as the django-allauth login. """ - jwt = jwt_session(SF_CLIENT_ID, SF_CLIENT_KEY, devhub_username) - return SimpleSalesforce( - instance_url=jwt["instance_url"], - session_id=jwt["access_token"], - client_id="Metecho", - version="47.0", - ) + try: + jwt = jwt_session(SF_CLIENT_ID, SF_CLIENT_KEY, devhub_username) + return SimpleSalesforce( + instance_url=jwt["instance_url"], + session_id=jwt["access_token"], + client_id="Metecho", + version="49.0", + ) + except HTTPError as err: + handle_sf_error(err, scratch_org=scratch_org) def get_org_details(*, cci, org_name, project_path): @@ -178,8 +187,8 @@ def get_org_result( # optional fields from the scratch org definition file, # but this will work for a start } - if settings.SF_SIGNUP_INSTANCE: - create_args["Instance"] = settings.SF_SIGNUP_INSTANCE + if SFDX_SIGNUP_INSTANCE: # pragma: nocover + create_args["Instance"] = SFDX_SIGNUP_INSTANCE response = devhub_api.ScratchOrgInfo.create(create_args) # Get details and update scratch org config @@ -231,9 +240,10 @@ def deploy_org_settings( as specified in the scratch org definition file. """ org_config = refresh_access_token( + scratch_org=scratch_org, config=scratch_org_config.config, org_name=org_name, - scratch_org=scratch_org, + keychain=cci.keychain, originating_user_id=originating_user_id, ) path = os.path.join(cci.project_config.repo_root, scratch_org_config.config_file) @@ -269,7 +279,9 @@ def create_org( "commit": repo_branch, } ) - devhub_api = get_devhub_api(devhub_username=devhub_username) + devhub_api = get_devhub_api( + devhub_username=devhub_username, scratch_org=scratch_org + ) scratch_org_config, scratch_org_definition = get_org_details( cci=cci, org_name=org_name, project_path=project_path ) @@ -347,7 +359,9 @@ def delete_org(scratch_org): in the Dev Hub org.""" devhub_username = scratch_org.owner_sf_username org_id = scratch_org.config["org_id"] - devhub_api = get_devhub_api(devhub_username=devhub_username) + devhub_api = get_devhub_api( + devhub_username=devhub_username, scratch_org=scratch_org + ) records = ( devhub_api.query( diff --git a/metecho/api/tests/gh.py b/metecho/api/tests/gh.py index 83845538c..b71de2bd2 100644 --- a/metecho/api/tests/gh.py +++ b/metecho/api/tests/gh.py @@ -242,7 +242,8 @@ def test_dict(self): } assert ( normalize_commit( - data, sender={"avatar_url": "avatar_url", "login": "username"}, + data, + sender={"avatar_url": "avatar_url", "login": "username"}, ) == expected ) diff --git a/metecho/api/tests/hook_serializers.py b/metecho/api/tests/hook_serializers.py index 7c4eba818..65c911ced 100644 --- a/metecho/api/tests/hook_serializers.py +++ b/metecho/api/tests/hook_serializers.py @@ -187,7 +187,9 @@ def test_process_hook__project_closed_not_merged( ): repository = repository_factory(repo_id=123) project = project_factory( - pr_number=456, repository=repository, pr_is_open=True, + pr_number=456, + repository=repository, + pr_is_open=True, ) data = { "action": "closed", @@ -210,7 +212,9 @@ def test_process_hook__project_closed_not_merged( def test_process_hook__project_reopened(self, repository_factory, project_factory): repository = repository_factory(repo_id=123) project = project_factory( - pr_number=456, repository=repository, pr_is_open=True, + pr_number=456, + repository=repository, + pr_is_open=True, ) data = { "action": "reopened", diff --git a/metecho/api/tests/models.py b/metecho/api/tests/models.py index 987ebb003..47ae2bcb0 100644 --- a/metecho/api/tests/models.py +++ b/metecho/api/tests/models.py @@ -855,13 +855,16 @@ def test_finalize_provision__flow_error(self, scratch_org_factory): def test_get_login_url(self, scratch_org_factory): with ExitStack() as stack: - jwt_session = stack.enter_context(patch("metecho.api.models.jwt_session")) - OrgConfig = stack.enter_context(patch("metecho.api.models.OrgConfig")) - OrgConfig.return_value = MagicMock(start_url="https://example.com") + refresh_access_token = stack.enter_context( + patch("metecho.api.models.refresh_access_token") + ) + refresh_access_token.return_value = MagicMock( + start_url="https://example.com" + ) scratch_org = scratch_org_factory() assert scratch_org.get_login_url() == "https://example.com" - assert jwt_session.called + assert refresh_access_token.called def test_remove_scratch_org(self, scratch_org_factory): with ExitStack() as stack: diff --git a/metecho/api/tests/serializers.py b/metecho/api/tests/serializers.py index 220ecfb7d..ea610213e 100644 --- a/metecho/api/tests/serializers.py +++ b/metecho/api/tests/serializers.py @@ -66,7 +66,11 @@ def test_markdown_fields_input(self, rf, user_factory, repository_factory): gh_module.get_repo_info.return_value = MagicMock( **{ "pull_requests.return_value": ( - MagicMock(number=123, closed_at=None, is_merged=False,) + MagicMock( + number=123, + closed_at=None, + is_merged=False, + ) for _ in range(1) ), } @@ -104,7 +108,11 @@ def test_validate_branch_name__already_used( gh.get_repo_info.return_value = MagicMock( **{ "pull_requests.return_value": ( - MagicMock(number=123, closed_at=None, is_merged=False,) + MagicMock( + number=123, + closed_at=None, + is_merged=False, + ) for _ in range(1) ), } @@ -137,7 +145,11 @@ def test_branch_url__present(self, project_factory): gh.get_repo_info.return_value = MagicMock( **{ "pull_requests.return_value": ( - MagicMock(number=123, closed_at=None, is_merged=False,) + MagicMock( + number=123, + closed_at=None, + is_merged=False, + ) for _ in range(1) ), } @@ -332,7 +344,11 @@ def test_branch_diff_url__present(self, project_factory, task_factory): gh.get_repo_info.return_value = MagicMock( **{ "pull_requests.return_value": ( - MagicMock(number=123, closed_at=None, is_merged=False,) + MagicMock( + number=123, + closed_at=None, + is_merged=False, + ) for _ in range(1) ), } @@ -400,10 +416,9 @@ def test_queues_reassign(self, task_factory, scratch_org_factory, user_factory): user_reassign_job = stack.enter_context( patch("metecho.api.jobs.user_reassign_job") ) - jwt_session = stack.enter_context( - patch("metecho.api.sf_run_flow.jwt_session") - ) - jwt_session.return_value = {"access_token": None} + OrgConfig = stack.enter_context(patch("metecho.api.sf_run_flow.OrgConfig")) + org_config = MagicMock(config={"access_token": None}) + OrgConfig.return_value = org_config assert serializer.is_valid() serializer.save() assert user_reassign_job.delay.called diff --git a/metecho/api/tests/sf_org_changes.py b/metecho/api/tests/sf_org_changes.py index 7246917a7..2e1bcbba0 100644 --- a/metecho/api/tests/sf_org_changes.py +++ b/metecho/api/tests/sf_org_changes.py @@ -157,7 +157,8 @@ def test_get_latest_revision_numbers(): scratch_org = MagicMock() get_latest_revision_numbers( - scratch_org=scratch_org, originating_user_id=None, + scratch_org=scratch_org, + originating_user_id=None, ) assert conn.query_all.called diff --git a/metecho/api/tests/sf_run_flow.py b/metecho/api/tests/sf_run_flow.py index ddc629561..19cdbcc28 100644 --- a/metecho/api/tests/sf_run_flow.py +++ b/metecho/api/tests/sf_run_flow.py @@ -11,6 +11,7 @@ from requests.exceptions import HTTPError from ..sf_run_flow import ( + ScratchOrgError, capitalize, create_org, delete_org, @@ -30,8 +31,8 @@ @pytest.mark.django_db def test_is_org_good(scratch_org_factory): - with patch("metecho.api.sf_run_flow.jwt_session") as jwt_session: - jwt_session.side_effect = HTTPError() + with patch("metecho.api.sf_run_flow.OrgConfig") as OrgConfig: + OrgConfig.side_effect = HTTPError() assert not is_org_good(scratch_org_factory()) @@ -42,7 +43,6 @@ def test_capitalize(): class TestRefreshAccessToken: def test_good(self): with ExitStack() as stack: - stack.enter_context(patch(f"{PATCH_ROOT}.jwt_session")) OrgConfig = stack.enter_context(patch(f"{PATCH_ROOT}.OrgConfig")) refresh_access_token( @@ -60,14 +60,13 @@ def test_bad(self): patch(f"{PATCH_ROOT}.get_current_job") ) get_current_job.return_value = MagicMock(id=123) - jwt_session = stack.enter_context(patch(f"{PATCH_ROOT}.jwt_session")) - jwt_session.side_effect = HTTPError( + OrgConfig = stack.enter_context(patch(f"{PATCH_ROOT}.OrgConfig")) + OrgConfig.side_effect = HTTPError( "Error message.", response=MagicMock(status_code=400) ) - stack.enter_context(patch(f"{PATCH_ROOT}.OrgConfig")) scratch_org = MagicMock() - with pytest.raises(HTTPError, match=".*job ID.*"): + with pytest.raises(ScratchOrgError, match=".*job ID.*"): refresh_access_token( config=MagicMock(), org_name=MagicMock(), @@ -79,14 +78,13 @@ def test_bad(self): def test_bad__no_job(self): with ExitStack() as stack: - jwt_session = stack.enter_context(patch(f"{PATCH_ROOT}.jwt_session")) - jwt_session.side_effect = HTTPError( + OrgConfig = stack.enter_context(patch(f"{PATCH_ROOT}.OrgConfig")) + OrgConfig.side_effect = HTTPError( "Error message.", response=MagicMock(status_code=400) ) - stack.enter_context(patch(f"{PATCH_ROOT}.OrgConfig")) scratch_org = MagicMock() - with pytest.raises(HTTPError, match=".*org still exists*"): + with pytest.raises(ScratchOrgError, match=".*org still exists*"): refresh_access_token( config=MagicMock(), org_name=MagicMock(), @@ -97,14 +95,32 @@ def test_bad__no_job(self): assert scratch_org.remove_scratch_org.called -def test_get_devhub_api(): - with ExitStack() as stack: - stack.enter_context(patch(f"{PATCH_ROOT}.jwt_session")) - SimpleSalesforce = stack.enter_context(patch(f"{PATCH_ROOT}.SimpleSalesforce")) +class TestGetDevhubApi: + def test_good(self): + with ExitStack() as stack: + stack.enter_context(patch(f"{PATCH_ROOT}.jwt_session")) + SimpleSalesforce = stack.enter_context( + patch(f"{PATCH_ROOT}.SimpleSalesforce") + ) - get_devhub_api(devhub_username="devhub_username") + get_devhub_api(devhub_username="devhub_username") - assert SimpleSalesforce.called + assert SimpleSalesforce.called + + def test_bad(self): + with ExitStack() as stack: + jwt_session = stack.enter_context(patch(f"{PATCH_ROOT}.jwt_session")) + jwt_session.side_effect = HTTPError( + "Error message.", response=MagicMock(status_code=400) + ) + + scratch_org = MagicMock() + with pytest.raises(ScratchOrgError, match=".*org still exists*"): + get_devhub_api( + devhub_username="devhub_username", scratch_org=scratch_org + ) + + assert scratch_org.remove_scratch_org.called def test_get_org_details(): @@ -120,7 +136,6 @@ def test_get_org_details(): def test_get_org_result(settings): - settings.SF_SIGNUP_INSTANCE = "cs68" result = get_org_result( email=MagicMock(), repo_owner=MagicMock(), @@ -187,7 +202,9 @@ class TestRunFlow: def test_create_org_and_run_flow__exception(self, user_factory, project_factory): user = user_factory() org_config = MagicMock( - org_id="org_id", instance_url="instance_url", access_token="access_token", + org_id="org_id", + instance_url="instance_url", + access_token="access_token", ) project = project_factory() with ExitStack() as stack: diff --git a/metecho/api/tests/views.py b/metecho/api/tests/views.py index 26612adf6..deea73aca 100644 --- a/metecho/api/tests/views.py +++ b/metecho/api/tests/views.py @@ -187,7 +187,11 @@ def test_202__push_not_forced( gh.get_repo_info.return_value = MagicMock( **{ "pull_requests.return_value": ( - MagicMock(number=123, closed_at=None, is_merged=False,) + MagicMock( + number=123, + closed_at=None, + is_merged=False, + ) for _ in range(1) ), "compare_commits.return_value": MagicMock(ahead_by=0), @@ -241,7 +245,9 @@ def test_202__push_not_forced( assert len(task.commits) == 1 def test_400__no_handler( - self, settings, client, + self, + settings, + client, ): settings.GITHUB_HOOK_SECRET = b"" response = client.post( @@ -517,7 +523,8 @@ def test_create__bad(self, client, task_factory, social_account_factory): def test_queue_delete(self, client, scratch_org_factory, social_account_factory): with ExitStack() as stack: social_account_factory( - user=client.user, provider="salesforce", + user=client.user, + provider="salesforce", ) scratch_org = scratch_org_factory(owner=client.user) @@ -532,7 +539,8 @@ def test_queue_delete__bad( ): with ExitStack() as stack: social_account_factory( - user=client.user, provider="salesforce-production", + user=client.user, + provider="salesforce-production", ) scratch_org = scratch_org_factory() diff --git a/metecho/oauth2/views.py b/metecho/oauth2/views.py index 9b2bbc384..6aaf03949 100644 --- a/metecho/oauth2/views.py +++ b/metecho/oauth2/views.py @@ -21,7 +21,9 @@ def ensure_socialapp_in_db(token): if token.app.pk is None: provider = providers.registry.by_id(token.app.provider) app, created = SocialApp.objects.get_or_create( - provider=provider.id, name=provider.name, client_id="-", + provider=provider.id, + name=provider.name, + client_id="-", ) token.app = app diff --git a/metecho/routing.py b/metecho/routing.py index 92ed9c04b..4402c30f9 100644 --- a/metecho/routing.py +++ b/metecho/routing.py @@ -1,17 +1,21 @@ from channels.auth import AuthMiddlewareStack from channels.routing import ProtocolTypeRouter, URLRouter +from django.core.asgi import get_asgi_application from django.urls import path from .consumers import PushNotificationConsumer websockets = URLRouter( - [path("ws/notifications/", PushNotificationConsumer, name="ws_notifications")] + [ + path( + "ws/notifications/", + PushNotificationConsumer.as_asgi(), + name="ws_notifications", + ) + ] ) application = ProtocolTypeRouter( - { - # (http->django views is added by default) - "websocket": AuthMiddlewareStack(websockets) - } + {"http": get_asgi_application(), "websocket": AuthMiddlewareStack(websockets)} ) diff --git a/metecho/tests/consumers.py b/metecho/tests/consumers.py index 03cf8b2d6..f1b4d4c74 100644 --- a/metecho/tests/consumers.py +++ b/metecho/tests/consumers.py @@ -11,6 +11,7 @@ TaskSerializer, ) from ..consumers import PushNotificationConsumer +from ..routing import websockets pytestmark = pytest.mark.asyncio @@ -26,7 +27,7 @@ async def test_push_notification_consumer__repository(user_factory, repository_f user = await database_sync_to_async(user_factory)() repository = await database_sync_to_async(repository_factory)() - communicator = WebsocketCommunicator(PushNotificationConsumer, "/ws/notifications/") + communicator = WebsocketCommunicator(websockets, "/ws/notifications/") communicator.scope["user"] = user connected, _ = await communicator.connect() assert connected @@ -57,7 +58,7 @@ async def test_push_notification_consumer__scratch_org__list( user = await database_sync_to_async(user_factory)() scratch_org = await database_sync_to_async(scratch_org_factory)() - communicator = WebsocketCommunicator(PushNotificationConsumer, "/ws/notifications/") + communicator = WebsocketCommunicator(websockets, "/ws/notifications/") communicator.scope["user"] = user connected, _ = await communicator.connect() assert connected @@ -88,7 +89,7 @@ async def test_push_notification_consumer__project(user_factory, project_factory user = await database_sync_to_async(user_factory)() project = await database_sync_to_async(project_factory)(repository__repo_id=1234) - communicator = WebsocketCommunicator(PushNotificationConsumer, "/ws/notifications/") + communicator = WebsocketCommunicator(websockets, "/ws/notifications/") communicator.scope["user"] = user connected, _ = await communicator.connect() assert connected @@ -117,7 +118,7 @@ async def test_push_notification_consumer__task(user_factory, task_factory): user = await database_sync_to_async(user_factory)() task = await database_sync_to_async(task_factory)(project__repository__repo_id=4321) - communicator = WebsocketCommunicator(PushNotificationConsumer, "/ws/notifications/") + communicator = WebsocketCommunicator(websockets, "/ws/notifications/") communicator.scope["user"] = user connected, _ = await communicator.connect() assert connected @@ -150,7 +151,7 @@ async def test_push_notification_consumer__scratch_org( task__project__repository__repo_id=2468 ) - communicator = WebsocketCommunicator(PushNotificationConsumer, "/ws/notifications/") + communicator = WebsocketCommunicator(websockets, "/ws/notifications/") communicator.scope["user"] = user connected, _ = await communicator.connect() assert connected @@ -178,7 +179,7 @@ async def test_push_notification_consumer__scratch_org( async def test_push_notification_consumer__report_error(user_factory): user = await database_sync_to_async(user_factory)() - communicator = WebsocketCommunicator(PushNotificationConsumer, "/ws/notifications/") + communicator = WebsocketCommunicator(websockets, "/ws/notifications/") communicator.scope["user"] = user connected, _ = await communicator.connect() assert connected @@ -203,7 +204,7 @@ async def test_push_notification_consumer__report_error(user_factory): async def test_push_notification_consumer__unsubscribe(user_factory): user = await database_sync_to_async(user_factory)() - communicator = WebsocketCommunicator(PushNotificationConsumer, "/ws/notifications/") + communicator = WebsocketCommunicator(websockets, "/ws/notifications/") communicator.scope["user"] = user connected, _ = await communicator.connect() assert connected @@ -227,7 +228,7 @@ async def test_push_notification_consumer__unsubscribe(user_factory): async def test_push_notification_consumer__invalid_subscription(user_factory): user = await database_sync_to_async(user_factory)() - communicator = WebsocketCommunicator(PushNotificationConsumer, "/ws/notifications/") + communicator = WebsocketCommunicator(websockets, "/ws/notifications/") communicator.scope["user"] = user connected, _ = await communicator.connect() assert connected @@ -247,6 +248,6 @@ async def test_push_notification_consumer__missing_instance(): "id": "bet this is an invalid ID", "payload": {}, } - consumer = PushNotificationConsumer({}) + consumer = PushNotificationConsumer() new_content = await consumer.hydrate_message(content) assert new_content == {"payload": {}} diff --git a/package.json b/package.json index 26e8b10e3..0968384a9 100644 --- a/package.json +++ b/package.json @@ -9,14 +9,14 @@ "url": "https://github.com/SFDO-Tooling/Metecho.git" }, "engines": { - "node": "12.16.1", - "yarn": "1.22.4" + "node": "14.15.1", + "yarn": "1.22.5" }, "scripts": { - "webpack:serve": "webpack-dev-server --config webpack.dev.js", + "webpack:serve": "webpack serve --config webpack.dev.js", "django:serve": "python manage.py runserver 0.0.0.0:${PORT:-8000}", "django:serve:prod": "daphne --bind 0.0.0.0 --port ${PORT:-8000} metecho.asgi:application", - "redis:clear": "redis-cli -h redis FLUSHALL", + "redis:clear": "redis-cli -h ${REDIS_HOST:-localhost} FLUSHALL", "worker:serve": "python manage.py rqworker default", "scheduler:serve": "python manage.py rqscheduler", "rq:serve": "npm-run-all redis:clear -p worker:serve scheduler:serve", @@ -49,22 +49,22 @@ "heroku-postbuild": "yarn prod" }, "dependencies": { - "@salesforce-ux/design-system": "2.13.5", - "@salesforce/design-system-react": "0.10.22", - "@sentry/browser": "^5.25.0", + "@salesforce-ux/design-system": "2.13.7", + "@salesforce/design-system-react": "0.10.23", + "@sentry/browser": "^5.28.0", "classnames": "^2.2.6", "date-fns": "^2.16.1", - "i18next": "^19.8.1", + "i18next": "^19.8.4", "i18next-browser-languagedetector": "^6.0.1", "i18next-xhr-backend": "^3.2.2", "js-cookie": "^2.2.1", "lodash": "^4.17.20", - "react": "^16.13.1", + "react": "^16.14.0", "react-document-title": "^2.0.3", - "react-dom": "^16.13.1", + "react-dom": "^16.14.0", "react-fns": "^1.4.0", - "react-i18next": "^11.7.3", - "react-redux": "^7.2.1", + "react-i18next": "^11.7.4", + "react-redux": "^7.2.2", "react-router-dom": "^5.2.0", "redux": "^4.0.5", "redux-devtools-extension": "^2.13.8", @@ -73,79 +73,82 @@ "reselect": "^4.0.0", "sockette": "^2.0.6", "uuid": "^8.3.1", - "whatwg-fetch": "^3.4.1" + "whatwg-fetch": "^3.5.0" }, "devDependencies": { - "@babel/core": "^7.11.6", - "@babel/plugin-proposal-class-properties": "^7.10.4", - "@babel/plugin-proposal-export-default-from": "^7.10.4", - "@babel/plugin-proposal-export-namespace-from": "^7.10.4", - "@babel/plugin-proposal-object-rest-spread": "^7.11.0", - "@babel/preset-env": "^7.11.5", - "@babel/preset-react": "^7.10.4", - "@babel/preset-typescript": "^7.10.4", - "@testing-library/jest-dom": "^5.11.4", - "@testing-library/react": "^11.0.4", + "@babel/core": "^7.12.9", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-export-default-from": "^7.12.1", + "@babel/plugin-proposal-export-namespace-from": "^7.12.1", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/preset-env": "^7.12.7", + "@babel/preset-react": "^7.12.7", + "@babel/preset-typescript": "^7.12.7", + "@testing-library/jest-dom": "^5.11.6", + "@testing-library/react": "^11.2.2", "@testing-library/react-hooks": "^3.4.2", - "@types/classnames": "^2.2.10", + "@types/classnames": "^2.2.11", "@types/core-js": "^2.5.4", "@types/js-cookie": "^2.2.6", - "@types/lodash": "^4.14.161", - "@types/react": "^16.9.50", + "@types/lodash": "^4.14.165", + "@types/react": "^16.14.2", "@types/react-document-title": "^2.0.4", - "@types/react-dom": "^16.9.8", - "@types/react-redux": "^7.1.9", - "@types/react-router-dom": "^5.1.5", + "@types/react-dom": "^16.9.10", + "@types/react-redux": "^7.1.11", + "@types/react-router-dom": "^5.1.6", "@types/redux-logger": "^3.0.8", "@types/uuid": "^8.3.0", - "@typescript-eslint/eslint-plugin": "^4.3.0", - "@typescript-eslint/parser": "^4.3.0", - "autoprefixer": "^10.0.1", - "babel-jest": "^26.5.0", - "babel-loader": "^8.1.0", + "@typescript-eslint/eslint-plugin": "^4.9.0", + "@typescript-eslint/parser": "^4.9.0", + "autoprefixer": "^10.0.4", + "babel-jest": "^26.6.3", + "babel-loader": "^8.2.2", "clean-webpack-plugin": "^3.0.0", - "core-js": "^3.6.5", + "core-js": "^3.8.0", "coveralls": "^3.1.0", - "css-loader": "^4.3.0", - "eslint": "^7.10.0", - "eslint-config-prettier": "^6.12.0", + "css-loader": "^5.0.1", + "eslint": "^7.14.0", + "eslint-config-prettier": "^6.15.0", "eslint-import-resolver-typescript": "^2.3.0", "eslint-import-resolver-webpack": "^0.13.0", "eslint-plugin-import": "^2.22.1", - "eslint-plugin-jest": "^24.0.2", + "eslint-plugin-jest": "^24.1.3", "eslint-plugin-prettier": "^3.1.4", - "eslint-plugin-react": "^7.21.3", - "eslint-plugin-react-hooks": "^4.1.2", - "eslint-plugin-simple-import-sort": "^5.0.3", - "fetch-mock": "^9.10.7", - "file-loader": "^6.1.0", + "eslint-plugin-react": "^7.21.5", + "eslint-plugin-react-hooks": "^4.2.0", + "eslint-plugin-simple-import-sort": "^6.0.1", + "fetch-mock": "^9.11.0", + "file-loader": "^6.2.0", "html-webpack-plugin": "^4.5.0", - "i18next-scanner-webpack": "^0.5.1", - "jest": "^26.5.0", + "i18next-scanner-webpack": "^0.6.0", + "jest": "^26.6.3", "jest-junit": "^12.0.0", - "mini-css-extract-plugin": "^0.11.3", + "mini-css-extract-plugin": "^1.3.1", "node-fetch": "^2.6.1", "npm-run-all": "^4.1.5", "nyc": "^15.1.0", "optimize-css-assets-webpack-plugin": "^5.0.4", - "postcss": "^8.1.1", - "postcss-loader": "^4.0.3", - "prettier": "^2.1.2", + "postcss": "^8.1.10", + "postcss-loader": "^4.1.0", + "prettier": "^2.2.1", "react-test-renderer": "^16.13.1", "redux-mock-store": "^1.5.4", - "sass": "^1.26.11", - "sass-loader": "^10.0.2", - "stylelint": "^13.7.2", + "sass": "^1.29.0", + "sass-loader": "^10.1.0", + "stylelint": "^13.8.0", "stylelint-config-prettier": "^8.0.2", "stylelint-config-recommended": "^3.0.0", "stylelint-prettier": "^1.1.2", "stylelint-scss": "^3.18.0", "svg-inline-loader": "^0.8.2", - "typescript": "^4.0.3", - "url-loader": "^4.1.0", + "typescript": "^4.1.2", + "url-loader": "^4.1.1", "webpack": "^4.44.2", - "webpack-cli": "^3.3.12", + "webpack-cli": "^4.2.0", "webpack-dev-server": "^3.11.0", - "webpack-merge": "^5.1.4" + "webpack-merge": "^5.4.0" + }, + "resolutions": { + "@types/react": "^16.14.2" } } diff --git a/requirements/dev.in b/requirements/dev.in index cd6b66ad9..fd7d7c5bb 100644 --- a/requirements/dev.in +++ b/requirements/dev.in @@ -1,20 +1,20 @@ -c prod.txt -Sphinx==3.2.1 +Sphinx==3.3.1 black==20.8b1 -coveralls==2.1.2 -django-extensions==3.0.9 +coveralls==2.2.0 +django-extensions==3.1.0 doc8==0.8.1 factory_boy==3.1.0 -flake8-bugbear==20.1.4 +flake8-bugbear==20.11.1 flake8==3.8.4 -ipython==7.18.1 -isort==5.5.4 +ipython==7.19.0 +isort==5.6.4 pytest-asyncio==0.14.0 pytest-cov==2.10.1 -pytest-django==3.10.0 +pytest-django==4.1.0 pytest-factoryboy==2.0.3 pytest-mock==3.3.1 pytest-sugar==0.9.4 -pytest==6.1.1 +pytest==6.1.2 remote-pdb==2.1.0 sphinxcontrib-httpdomain==1.7.0 diff --git a/requirements/dev.txt b/requirements/dev.txt index 66689a249..dbb8fa076 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -6,66 +6,66 @@ # alabaster==0.7.12 # via sphinx appdirs==1.4.4 # via -c requirements/prod.txt, black -attrs==20.2.0 # via -c requirements/prod.txt, flake8-bugbear, pytest -babel==2.8.0 # via sphinx +attrs==20.3.0 # via -c requirements/prod.txt, flake8-bugbear, pytest +babel==2.9.0 # via sphinx backcall==0.2.0 # via ipython black==20.8b1 # via -r requirements/dev.in -certifi==2020.6.20 # via -c requirements/prod.txt, requests +certifi==2020.11.8 # via -c requirements/prod.txt, requests chardet==3.0.4 # via -c requirements/prod.txt, doc8, requests click==7.1.2 # via -c requirements/prod.txt, black coverage==5.3 # via coveralls, pytest-cov -coveralls==2.1.2 # via -r requirements/dev.in +coveralls==2.2.0 # via -r requirements/dev.in decorator==4.4.2 # via ipython -django-extensions==3.0.9 # via -r requirements/dev.in +django-extensions==3.1.0 # via -r requirements/dev.in doc8==0.8.1 # via -r requirements/dev.in docopt==0.6.2 # via coveralls docutils==0.16 # via -c requirements/prod.txt, doc8, restructuredtext-lint, sphinx factory-boy==3.1.0 # via -r requirements/dev.in, pytest-factoryboy -faker==4.1.3 # via -c requirements/prod.txt, factory-boy -flake8-bugbear==20.1.4 # via -r requirements/dev.in +faker==4.17.1 # via -c requirements/prod.txt, factory-boy +flake8-bugbear==20.11.1 # via -r requirements/dev.in flake8==3.8.4 # via -r requirements/dev.in, flake8-bugbear idna==2.10 # via -c requirements/prod.txt, requests imagesize==1.2.0 # via sphinx inflection==0.5.1 # via pytest-factoryboy -iniconfig==1.0.1 # via pytest +iniconfig==1.1.1 # via pytest ipython-genutils==0.2.0 # via traitlets -ipython==7.18.1 # via -r requirements/dev.in -isort==5.5.4 # via -r requirements/dev.in +ipython==7.19.0 # via -r requirements/dev.in +isort==5.6.4 # via -r requirements/dev.in jedi==0.17.2 # via ipython jinja2==2.11.2 # via -c requirements/prod.txt, sphinx markupsafe==1.1.1 # via -c requirements/prod.txt, jinja2 mccabe==0.6.1 # via flake8 mypy-extensions==0.4.3 # via black -packaging==20.4 # via -c requirements/prod.txt, pytest, pytest-sugar, sphinx +packaging==20.7 # via -c requirements/prod.txt, pytest, pytest-sugar, sphinx parso==0.7.1 # via jedi -pathspec==0.8.0 # via black -pbr==5.5.0 # via stevedore +pathspec==0.8.1 # via black +pbr==5.5.1 # via stevedore pexpect==4.8.0 # via ipython pickleshare==0.7.5 # via ipython pluggy==0.13.1 # via pytest -prompt-toolkit==3.0.7 # via ipython +prompt-toolkit==3.0.8 # via ipython ptyprocess==0.6.0 # via pexpect py==1.9.0 # via pytest pycodestyle==2.6.0 # via flake8 pyflakes==2.2.0 # via flake8 -pygments==2.7.1 # via doc8, ipython, sphinx +pygments==2.7.2 # via doc8, ipython, sphinx pyparsing==2.4.7 # via -c requirements/prod.txt, packaging pytest-asyncio==0.14.0 # via -r requirements/dev.in pytest-cov==2.10.1 # via -r requirements/dev.in -pytest-django==3.10.0 # via -r requirements/dev.in +pytest-django==4.1.0 # via -r requirements/dev.in pytest-factoryboy==2.0.3 # via -r requirements/dev.in pytest-mock==3.3.1 # via -r requirements/dev.in pytest-sugar==0.9.4 # via -r requirements/dev.in -pytest==6.1.1 # via -r requirements/dev.in, pytest-asyncio, pytest-cov, pytest-django, pytest-factoryboy, pytest-mock, pytest-sugar +pytest==6.1.2 # via -r requirements/dev.in, pytest-asyncio, pytest-cov, pytest-django, pytest-factoryboy, pytest-mock, pytest-sugar python-dateutil==2.8.1 # via -c requirements/prod.txt, faker -pytz==2020.1 # via -c requirements/prod.txt, babel -regex==2020.9.27 # via black +pytz==2020.4 # via -c requirements/prod.txt, babel +regex==2020.11.13 # via black remote-pdb==2.1.0 # via -r requirements/dev.in -requests==2.24.0 # via -c requirements/prod.txt, coveralls, sphinx -restructuredtext-lint==1.3.1 # via doc8 -six==1.15.0 # via -c requirements/prod.txt, doc8, packaging, python-dateutil, sphinxcontrib-httpdomain +requests==2.25.0 # via -c requirements/prod.txt, coveralls, sphinx +restructuredtext-lint==1.3.2 # via doc8 +six==1.15.0 # via -c requirements/prod.txt, doc8, python-dateutil, sphinxcontrib-httpdomain snowballstemmer==2.0.0 # via sphinx -sphinx==3.2.1 # via -r requirements/dev.in, sphinxcontrib-httpdomain +sphinx==3.3.1 # via -r requirements/dev.in, sphinxcontrib-httpdomain sphinxcontrib-applehelp==1.0.2 # via sphinx sphinxcontrib-devhelp==1.0.2 # via sphinx sphinxcontrib-htmlhelp==1.0.3 # via sphinx @@ -73,14 +73,14 @@ sphinxcontrib-httpdomain==1.7.0 # via -r requirements/dev.in sphinxcontrib-jsmath==1.0.1 # via sphinx sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.4 # via sphinx -stevedore==3.2.2 # via doc8 +stevedore==3.3.0 # via doc8 termcolor==1.1.0 # via pytest-sugar text-unidecode==1.3 # via -c requirements/prod.txt, faker -toml==0.10.1 # via black, pytest -traitlets==5.0.4 # via ipython +toml==0.10.2 # via black, pytest +traitlets==5.0.5 # via ipython typed-ast==1.4.1 # via black typing-extensions==3.7.4.3 # via -c requirements/prod.txt, black -urllib3==1.25.10 # via -c requirements/prod.txt, requests +urllib3==1.26.2 # via -c requirements/prod.txt, requests wcwidth==0.2.5 # via prompt-toolkit # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/prod.in b/requirements/prod.in index f6903acb8..99d92210f 100644 --- a/requirements/prod.in +++ b/requirements/prod.in @@ -1,25 +1,25 @@ -Django==3.1.2 +Django==3.1.4 beautifulsoup4==4.9.3 bleach==3.2.1 -channels-redis==3.1.0 -channels==2.4.0 -cumulusci==3.20.0 +channels-redis==3.2.0 +channels==3.0.2 +cumulusci==3.24.1 dj-database-url==0.5.0 -django-allauth==0.42.0 -django-anymail[mailgun]==8.0 +django-allauth==0.44.0 +django-anymail[mailgun]==8.1 django-hashid-field==3.1.3 django-js-reverse==0.9.1 django-log-request-id==1.6.0 -django-model-utils==4.0.0 +django-model-utils==4.1.1 django-parler==2.2 django-redis==4.12.1 -django-rq==2.3.2 -djangorestframework==3.12.1 +django-rq==2.4.0 +djangorestframework==3.12.2 furl==2.1.0 github3-py==1.3.0 honcho==1.0.1 logfmt==0.4 -markdown==3.2.2 +markdown==3.3.3 # psycopg2 is used as the database driver for Django to connect to PostgreSQL. # It is LGPL-licensed and we must follow these rules for compliance with Salesforce 3rd-party software policy: @@ -29,7 +29,7 @@ markdown==3.2.2 psycopg2-binary==2.8.6 rq-scheduler==0.10.0 -sentry-sdk==0.18.0 +sentry-sdk==0.19.4 service_identity==18.1.0 https://github.com/SFDO-Tooling/sfdo-template-helpers/archive/v0.16.0.tar.gz whitenoise==5.2.0 diff --git a/requirements/prod.txt b/requirements/prod.txt index d8806983c..9d0c0c232 100644 --- a/requirements/prod.txt +++ b/requirements/prod.txt @@ -6,43 +6,43 @@ # aioredis==1.3.1 # via channels-redis appdirs==1.4.4 # via fs -asgiref==3.2.10 # via channels, channels-redis, daphne, django +asgiref==3.3.1 # via channels, channels-redis, daphne, django asn1crypto==1.4.0 # via cumulusci async-timeout==3.0.1 # via aioredis -attrs==20.2.0 # via automat, service-identity, twisted -authlib==0.14.3 # via simple-salesforce +attrs==20.3.0 # via automat, service-identity, twisted +authlib==0.15.2 # via simple-salesforce autobahn==20.7.1 # via daphne automat==20.2.0 # via twisted beautifulsoup4==4.9.3 # via -r requirements/prod.in bleach==3.2.1 # via -r requirements/prod.in, sfdo-template-helpers -certifi==2020.6.20 # via cumulusci, requests, sentry-sdk -cffi==1.14.3 # via cryptography, cumulusci -channels-redis==3.1.0 # via -r requirements/prod.in -channels==2.4.0 # via -r requirements/prod.in, channels-redis +certifi==2020.11.8 # via cumulusci, requests, sentry-sdk +cffi==1.14.4 # via cryptography, cumulusci +channels-redis==3.2.0 # via -r requirements/prod.in +channels==3.0.2 # via -r requirements/prod.in, channels-redis chardet==3.0.4 # via cumulusci, requests click==7.1.2 # via cumulusci, rq, snowfakery coloredlogs==14.0 # via cumulusci constantly==15.1.0 # via twisted -croniter==0.3.34 # via rq-scheduler -cryptography==3.1.1 # via authlib, autobahn, cumulusci, jwcrypto, pyopenssl, secretstorage, service-identity, sfdo-template-helpers -cumulusci==3.20.0 # via -r requirements/prod.in -daphne==2.5.0 # via channels +croniter==0.3.36 # via rq-scheduler +cryptography==3.2.1 # via authlib, autobahn, cumulusci, jwcrypto, pyjwt, pyopenssl, secretstorage, service-identity, sfdo-template-helpers +cumulusci==3.24.1 # via -r requirements/prod.in +daphne==3.0.1 # via channels defusedxml==0.6.0 # via python3-openid dj-database-url==0.5.0 # via -r requirements/prod.in -django-allauth==0.42.0 # via -r requirements/prod.in -django-anymail[mailgun]==8.0 # via -r requirements/prod.in +django-allauth==0.44.0 # via -r requirements/prod.in +django-anymail[mailgun]==8.1 # via -r requirements/prod.in django-filter==2.4.0 # via sfdo-template-helpers django-hashid-field==3.1.3 # via -r requirements/prod.in django-js-reverse==0.9.1 # via -r requirements/prod.in django-log-request-id==1.6.0 # via -r requirements/prod.in -django-model-utils==4.0.0 # via -r requirements/prod.in +django-model-utils==4.1.1 # via -r requirements/prod.in django-parler==2.2 # via -r requirements/prod.in django-redis==4.12.1 # via -r requirements/prod.in -django-rq==2.3.2 # via -r requirements/prod.in -django==3.1.2 # via -r requirements/prod.in, channels, django-allauth, django-anymail, django-filter, django-hashid-field, django-js-reverse, django-log-request-id, django-model-utils, django-redis, django-rq, djangorestframework, sfdo-template-helpers -djangorestframework==3.12.1 # via -r requirements/prod.in, sfdo-template-helpers +django-rq==2.4.0 # via -r requirements/prod.in +django==3.1.4 # via -r requirements/prod.in, channels, django-allauth, django-anymail, django-filter, django-hashid-field, django-js-reverse, django-log-request-id, django-model-utils, django-redis, django-rq, djangorestframework, sfdo-template-helpers +djangorestframework==3.12.2 # via -r requirements/prod.in, sfdo-template-helpers docutils==0.16 # via cumulusci -faker==4.1.3 # via cumulusci, snowfakery +faker==4.17.1 # via cumulusci, snowfakery fs==2.4.11 # via cumulusci furl==2.1.0 # via -r requirements/prod.in github3-py==1.3.0 # via -r requirements/prod.in @@ -54,58 +54,58 @@ humanfriendly==8.2 # via coloredlogs, cumulusci hyperlink==20.0.1 # via twisted idna==2.10 # via hyperlink, requests, twisted incremental==17.5.0 # via twisted -jeepney==0.4.3 # via keyring, secretstorage +jeepney==0.6.0 # via keyring, secretstorage jinja2==2.11.2 # via cumulusci, snowfakery jwcrypto==0.8 # via cumulusci, github3-py, github3.py -keyring==21.4.0 # via cumulusci +keyring==21.5.0 # via cumulusci logfmt==0.4 # via -r requirements/prod.in, sfdo-template-helpers -lxml==4.5.2 # via cumulusci -markdown==3.2.2 # via -r requirements/prod.in, sfdo-template-helpers +lxml==4.6.1 # via cumulusci +markdown==3.3.3 # via -r requirements/prod.in, sfdo-template-helpers markupsafe==1.1.1 # via cumulusci, jinja2 msgpack==1.0.0 # via channels-redis -natsort==7.0.1 # via croniter +natsort==7.1.0 # via croniter oauthlib==3.1.0 # via requests-oauthlib orderedmultidict==1.0.1 # via furl -packaging==20.4 # via bleach +packaging==20.7 # via bleach psycopg2-binary==2.8.6 # via -r requirements/prod.in pyasn1-modules==0.2.8 # via service-identity pyasn1==0.4.8 # via pyasn1-modules, service-identity pycparser==2.20 # via cffi, cumulusci -pydantic==1.6.1 # via cumulusci +pydantic==1.7.2 # via cumulusci pyhamcrest==2.0.2 # via twisted -pyjwt==1.7.1 # via cumulusci -pyopenssl==19.1.0 # via twisted +pyjwt[crypto]==1.7.1 # via cumulusci, django-allauth +pyopenssl==20.0.0 # via twisted pyparsing==2.4.7 # via packaging python-dateutil==2.8.1 # via croniter, cumulusci, faker, github3-py, github3.py, snowfakery python3-openid==3.2.0 # via django-allauth -pytz==2020.1 # via cumulusci, django, fs +pytz==2020.4 # via cumulusci, django, fs pyyaml==5.3.1 # via cumulusci, snowfakery raven==6.10.0 # via cumulusci redis==3.5.3 # via django-redis, django-rq, rq requests-oauthlib==1.3.0 # via django-allauth -requests==2.24.0 # via cumulusci, django-allauth, django-anymail, github3-py, github3.py, requests-oauthlib, robotframework-requests, salesforce-bulk, simple-salesforce +requests==2.25.0 # via cumulusci, django-allauth, django-anymail, github3-py, github3.py, requests-oauthlib, robotframework-requests, salesforce-bulk, simple-salesforce robotframework-lint==1.1 # via cumulusci robotframework-pabot==1.10.0 # via cumulusci robotframework-pythonlibcore==2.1.0 # via robotframework-seleniumlibrary -robotframework-requests==0.7.1 # via cumulusci +robotframework-requests==0.7.2 # via cumulusci robotframework-seleniumlibrary==4.5.0 # via cumulusci robotframework==3.2.2 # via cumulusci, robotframework-lint, robotframework-pabot, robotframework-requests, robotframework-seleniumlibrary rq-scheduler==0.10.0 # via -r requirements/prod.in -rq==1.5.2 # via django-rq, rq-scheduler +rq==1.7.0 # via django-rq, rq-scheduler rst2ansi==0.1.5 # via cumulusci -salesforce-bulk==2.1.0 # via cumulusci +salesforce-bulk==2.2.0 # via cumulusci sarge==0.1.6 # via cumulusci -secretstorage==3.1.2 # via keyring +secretstorage==3.3.0 # via keyring selenium==3.141.0 # via cumulusci, robotframework-seleniumlibrary -sentry-sdk==0.18.0 # via -r requirements/prod.in +sentry-sdk==0.19.4 # via -r requirements/prod.in service-identity==18.1.0 # via -r requirements/prod.in, twisted https://github.com/SFDO-Tooling/sfdo-template-helpers/archive/v0.16.0.tar.gz # via -r requirements/prod.in simple-salesforce==1.10.1 # via cumulusci, salesforce-bulk -six==1.15.0 # via automat, bleach, cryptography, cumulusci, fs, furl, orderedmultidict, packaging, pyopenssl, python-dateutil, salesforce-bulk -snowfakery==1.1.2 # via cumulusci +six==1.15.0 # via automat, bleach, cryptography, cumulusci, fs, furl, orderedmultidict, pyopenssl, python-dateutil, salesforce-bulk +snowfakery==1.3.0 # via cumulusci soupsieve==2.0.1 # via beautifulsoup4 -sqlalchemy==1.3.19 # via cumulusci, snowfakery -sqlparse==0.3.1 # via django +sqlalchemy==1.3.20 # via cumulusci, snowfakery +sqlparse==0.4.1 # via django terminaltables==3.1.0 # via cumulusci text-unidecode==1.3 # via faker twisted[tls]==20.3.0 # via daphne @@ -113,11 +113,11 @@ txaio==20.4.1 # via autobahn typing-extensions==3.7.4.3 # via cumulusci unicodecsv==0.14.1 # via salesforce-bulk uritemplate==3.0.1 # via cumulusci, github3-py, github3.py -urllib3==1.25.10 # via cumulusci, requests, selenium, sentry-sdk +urllib3==1.26.2 # via cumulusci, requests, selenium, sentry-sdk webencodings==0.5.1 # via bleach whitenoise==5.2.0 # via -r requirements/prod.in xmltodict==0.12.0 # via cumulusci -zope.interface==5.1.2 # via twisted +zope.interface==5.2.0 # via twisted # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/runtime.txt b/runtime.txt index 724c203e1..f72c5111f 100644 --- a/runtime.txt +++ b/runtime.txt @@ -1 +1 @@ -python-3.8.2 +python-3.9.0 diff --git a/src/js/.eslintrc.yml b/src/js/.eslintrc.yml index defb44925..a31f1e505 100644 --- a/src/js/.eslintrc.yml +++ b/src/js/.eslintrc.yml @@ -23,7 +23,7 @@ rules: '@typescript-eslint/no-use-before-define': 2 # Import - simple-import-sort/sort: 1 + simple-import-sort/imports: 1 import/order: 0 no-use-before-define: 0 diff --git a/src/js/@types/custom.d.ts b/src/js/@types/custom.d.ts index 4918ae795..46ed04506 100644 --- a/src/js/@types/custom.d.ts +++ b/src/js/@types/custom.d.ts @@ -9,3 +9,7 @@ declare module '*.png' { const pngVal: string; export default pngVal; } + +// TypeScript renamed "PositionError" to "GeolocationPositionError", +// but some packages (e.g. react-fns) still reference the old name. +type PositionError = GeolocationPositionError; diff --git a/src/js/index.tsx b/src/js/index.tsx index 5ce56fcbe..d9b3da42e 100644 --- a/src/js/index.tsx +++ b/src/js/index.tsx @@ -1,10 +1,10 @@ +import IconSettings from '@salesforce/design-system-react/components/icon-settings'; +import settings from '@salesforce/design-system-react/components/settings'; import actionSprite from '@salesforce-ux/design-system/assets/icons/action-sprite/svg/symbols.svg'; import customSprite from '@salesforce-ux/design-system/assets/icons/custom-sprite/svg/symbols.svg'; import doctypeSprite from '@salesforce-ux/design-system/assets/icons/doctype-sprite/svg/symbols.svg'; import standardSprite from '@salesforce-ux/design-system/assets/icons/standard-sprite/svg/symbols.svg'; import utilitySprite from '@salesforce-ux/design-system/assets/icons/utility-sprite/svg/symbols.svg'; -import IconSettings from '@salesforce/design-system-react/components/icon-settings'; -import settings from '@salesforce/design-system-react/components/settings'; import i18n from 'i18next'; import React, { useEffect } from 'react'; import DocumentTitle from 'react-document-title'; diff --git a/test/js/.eslintrc.yml b/test/js/.eslintrc.yml index 9ff7c66b2..2c604d127 100644 --- a/test/js/.eslintrc.yml +++ b/test/js/.eslintrc.yml @@ -16,5 +16,5 @@ extends: - plugin:jest/style rules: # Import - simple-import-sort/sort: 1 + simple-import-sort/imports: 1 import/order: 0 diff --git a/yarn.lock b/yarn.lock index c7c0bc62e..cd0b60a2c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,28 +9,24 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/compat-data@^7.10.4", "@babel/compat-data@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.11.0.tgz#e9f73efe09af1355b723a7f39b11bad637d7c99c" - integrity sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ== - dependencies: - browserslist "^4.12.0" - invariant "^2.2.4" - semver "^5.5.0" +"@babel/compat-data@^7.12.5", "@babel/compat-data@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.7.tgz#9329b4782a7d6bbd7eef57e11addf91ee3ef1e41" + integrity sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw== -"@babel/core@>=7.9.0", "@babel/core@^7.1.0", "@babel/core@^7.11.6", "@babel/core@^7.7.5": - version "7.11.6" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.6.tgz#3a9455dc7387ff1bac45770650bc13ba04a15651" - integrity sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg== +"@babel/core@>=7.9.0", "@babel/core@^7.0.0", "@babel/core@^7.1.0", "@babel/core@^7.12.9", "@babel/core@^7.7.5": + version "7.12.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8" + integrity sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ== dependencies: "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.6" - "@babel/helper-module-transforms" "^7.11.0" - "@babel/helpers" "^7.10.4" - "@babel/parser" "^7.11.5" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.11.5" - "@babel/types" "^7.11.5" + "@babel/generator" "^7.12.5" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helpers" "^7.12.5" + "@babel/parser" "^7.12.7" + "@babel/template" "^7.12.7" + "@babel/traverse" "^7.12.9" + "@babel/types" "^7.12.7" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" @@ -40,12 +36,12 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.11.5", "@babel/generator@^7.11.6": - version "7.11.6" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz#b868900f81b163b4d464ea24545c61cbac4dc620" - integrity sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA== +"@babel/generator@^7.12.5": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.5.tgz#a2c50de5c8b6d708ab95be5e6053936c1884a4de" + integrity sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A== dependencies: - "@babel/types" "^7.11.5" + "@babel/types" "^7.12.5" jsesc "^2.5.1" source-map "^0.5.0" @@ -64,14 +60,14 @@ "@babel/helper-explode-assignable-expression" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-builder-react-jsx-experimental@^7.10.4", "@babel/helper-builder-react-jsx-experimental@^7.11.5": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.11.5.tgz#4ea43dd63857b0a35cd1f1b161dc29b43414e79f" - integrity sha512-Vc4aPJnRZKWfzeCBsqTBnzulVNjABVdahSPhtdMD3Vs80ykx4a87jTHtF/VR+alSrDmNvat7l13yrRHauGcHVw== +"@babel/helper-builder-react-jsx-experimental@^7.12.4": + version "7.12.4" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.12.4.tgz#55fc1ead5242caa0ca2875dcb8eed6d311e50f48" + integrity sha512-AjEa0jrQqNk7eDQOo0pTfUOwQBMF+xVqrausQwT9/rTKy0g04ggFNaJpaE09IQMn9yExluigWMJcj0WC7bq+Og== dependencies: "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-module-imports" "^7.10.4" - "@babel/types" "^7.11.5" + "@babel/helper-module-imports" "^7.12.1" + "@babel/types" "^7.12.1" "@babel/helper-builder-react-jsx@^7.10.4": version "7.10.4" @@ -81,37 +77,34 @@ "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-compilation-targets@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz#804ae8e3f04376607cc791b9d47d540276332bd2" - integrity sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ== +"@babel/helper-compilation-targets@^7.12.5": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz#cb470c76198db6a24e9dbc8987275631e5d29831" + integrity sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw== dependencies: - "@babel/compat-data" "^7.10.4" - browserslist "^4.12.0" - invariant "^2.2.4" - levenary "^1.1.1" + "@babel/compat-data" "^7.12.5" + "@babel/helper-validator-option" "^7.12.1" + browserslist "^4.14.5" semver "^5.5.0" -"@babel/helper-create-class-features-plugin@^7.10.4", "@babel/helper-create-class-features-plugin@^7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz#9f61446ba80e8240b0a5c85c6fdac8459d6f259d" - integrity sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A== +"@babel/helper-create-class-features-plugin@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz#3c45998f431edd4a9214c5f1d3ad1448a6137f6e" + integrity sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w== dependencies: "@babel/helper-function-name" "^7.10.4" - "@babel/helper-member-expression-to-functions" "^7.10.5" + "@babel/helper-member-expression-to-functions" "^7.12.1" "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-replace-supers" "^7.12.1" "@babel/helper-split-export-declaration" "^7.10.4" -"@babel/helper-create-regexp-features-plugin@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz#fdd60d88524659a0b6959c0579925e425714f3b8" - integrity sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g== +"@babel/helper-create-regexp-features-plugin@^7.12.1": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz#2084172e95443fa0a09214ba1bb328f9aea1278f" + integrity sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ== dependencies: "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-regex" "^7.10.4" - regexpu-core "^4.7.0" + regexpu-core "^4.7.1" "@babel/helper-define-map@^7.10.4": version "7.10.5" @@ -123,11 +116,11 @@ lodash "^4.17.19" "@babel/helper-explode-assignable-expression@^7.10.4": - version "7.11.4" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz#2d8e3470252cc17aba917ede7803d4a7a276a41b" - integrity sha512-ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ== + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz#8006a466695c4ad86a2a5f2fb15b5f2c31ad5633" + integrity sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA== dependencies: - "@babel/types" "^7.10.4" + "@babel/types" "^7.12.1" "@babel/helper-function-name@^7.10.4": version "7.10.4" @@ -152,86 +145,79 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-member-expression-to-functions@^7.10.4", "@babel/helper-member-expression-to-functions@^7.10.5": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz#ae69c83d84ee82f4b42f96e2a09410935a8f26df" - integrity sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q== +"@babel/helper-member-expression-to-functions@^7.12.1": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz#aa77bd0396ec8114e5e30787efa78599d874a855" + integrity sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw== dependencies: - "@babel/types" "^7.11.0" + "@babel/types" "^7.12.7" -"@babel/helper-module-imports@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" - integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== +"@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.12.5": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb" + integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA== dependencies: - "@babel/types" "^7.10.4" + "@babel/types" "^7.12.5" -"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359" - integrity sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg== +"@babel/helper-module-transforms@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c" + integrity sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w== dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-simple-access" "^7.10.4" + "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-replace-supers" "^7.12.1" + "@babel/helper-simple-access" "^7.12.1" "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/helper-validator-identifier" "^7.10.4" "@babel/template" "^7.10.4" - "@babel/types" "^7.11.0" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" lodash "^4.17.19" "@babel/helper-optimise-call-expression@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" - integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg== + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.7.tgz#7f94ae5e08721a49467346aa04fd22f750033b9c" + integrity sha512-I5xc9oSJ2h59OwyUqjv95HRyzxj53DAubUERgQMrpcCEYQyToeHA+NEcUEsVWB4j53RDeskeBJ0SgRAYHDBckw== dependencies: - "@babel/types" "^7.10.4" + "@babel/types" "^7.12.7" "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== -"@babel/helper-regex@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0" - integrity sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg== - dependencies: - lodash "^4.17.19" - -"@babel/helper-remap-async-to-generator@^7.10.4": - version "7.11.4" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz#4474ea9f7438f18575e30b0cac784045b402a12d" - integrity sha512-tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA== +"@babel/helper-remap-async-to-generator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz#8c4dbbf916314f6047dc05e6a2217074238347fd" + integrity sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A== dependencies: "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-wrap-function" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/types" "^7.12.1" -"@babel/helper-replace-supers@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf" - integrity sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A== +"@babel/helper-replace-supers@^7.12.1": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz#f009a17543bbbbce16b06206ae73b63d3fca68d9" + integrity sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA== dependencies: - "@babel/helper-member-expression-to-functions" "^7.10.4" + "@babel/helper-member-expression-to-functions" "^7.12.1" "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/traverse" "^7.12.5" + "@babel/types" "^7.12.5" -"@babel/helper-simple-access@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461" - integrity sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw== +"@babel/helper-simple-access@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136" + integrity sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA== dependencies: - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/types" "^7.12.1" -"@babel/helper-skip-transparent-expression-wrappers@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz#eec162f112c2f58d3af0af125e3bb57665146729" - integrity sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q== +"@babel/helper-skip-transparent-expression-wrappers@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" + integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== dependencies: - "@babel/types" "^7.11.0" + "@babel/types" "^7.12.1" "@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0": version "7.11.0" @@ -245,24 +231,29 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== +"@babel/helper-validator-option@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz#175567380c3e77d60ff98a54bb015fe78f2178d9" + integrity sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A== + "@babel/helper-wrap-function@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz#8a6f701eab0ff39f765b5a1cfef409990e624b87" - integrity sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug== + version "7.12.3" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz#3332339fc4d1fbbf1c27d7958c27d34708e990d9" + integrity sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow== dependencies: "@babel/helper-function-name" "^7.10.4" "@babel/template" "^7.10.4" "@babel/traverse" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helpers@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044" - integrity sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA== +"@babel/helpers@^7.12.5": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e" + integrity sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA== dependencies: "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/traverse" "^7.12.5" + "@babel/types" "^7.12.5" "@babel/highlight@^7.10.4": version "7.10.4" @@ -273,124 +264,124 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.10.4", "@babel/parser@^7.11.5": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.5.tgz#c7ff6303df71080ec7a4f5b8c003c58f1cf51037" - integrity sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q== +"@babel/parser@^7.1.0", "@babel/parser@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.7.tgz#fee7b39fe809d0e73e5b25eecaf5780ef3d73056" + integrity sha512-oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg== -"@babel/plugin-proposal-async-generator-functions@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz#3491cabf2f7c179ab820606cec27fed15e0e8558" - integrity sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg== +"@babel/plugin-proposal-async-generator-functions@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz#dc6c1170e27d8aca99ff65f4925bd06b1c90550e" + integrity sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A== dependencies: "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.12.1" "@babel/plugin-syntax-async-generators" "^7.8.0" -"@babel/plugin-proposal-class-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz#a33bf632da390a59c7a8c570045d1115cd778807" - integrity sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg== +"@babel/plugin-proposal-class-properties@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz#a082ff541f2a29a4821065b8add9346c0c16e5de" + integrity sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w== dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.4" + "@babel/helper-create-class-features-plugin" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-proposal-dynamic-import@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz#ba57a26cb98b37741e9d5bca1b8b0ddf8291f17e" - integrity sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ== +"@babel/plugin-proposal-dynamic-import@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz#43eb5c2a3487ecd98c5c8ea8b5fdb69a2749b2dc" + integrity sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-dynamic-import" "^7.8.0" -"@babel/plugin-proposal-export-default-from@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.10.4.tgz#08f66eef0067cbf6a7bc036977dcdccecaf0c6c5" - integrity sha512-G1l00VvDZ7Yk2yRlC5D8Ybvu3gmeHS3rCHoUYdjrqGYUtdeOBoRypnvDZ5KQqxyaiiGHWnVDeSEzA5F9ozItig== +"@babel/plugin-proposal-export-default-from@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.12.1.tgz#c6e62d668a8abcfe0d28b82f560395fecb611c5a" + integrity sha512-z5Q4Ke7j0AexQRfgUvnD+BdCSgpTEKnqQ3kskk2jWtOBulxICzd1X9BGt7kmWftxZ2W3++OZdt5gtmC8KLxdRQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-export-default-from" "^7.10.4" + "@babel/plugin-syntax-export-default-from" "^7.12.1" -"@babel/plugin-proposal-export-namespace-from@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz#570d883b91031637b3e2958eea3c438e62c05f54" - integrity sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg== +"@babel/plugin-proposal-export-namespace-from@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz#8b9b8f376b2d88f5dd774e4d24a5cc2e3679b6d4" + integrity sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db" - integrity sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw== +"@babel/plugin-proposal-json-strings@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz#d45423b517714eedd5621a9dfdc03fa9f4eb241c" + integrity sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.0" -"@babel/plugin-proposal-logical-assignment-operators@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz#9f80e482c03083c87125dee10026b58527ea20c8" - integrity sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q== +"@babel/plugin-proposal-logical-assignment-operators@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz#f2c490d36e1b3c9659241034a5d2cd50263a2751" + integrity sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a" - integrity sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz#3ed4fff31c015e7f3f1467f190dbe545cd7b046c" + integrity sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" -"@babel/plugin-proposal-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz#ce1590ff0a65ad12970a609d78855e9a4c1aef06" - integrity sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA== +"@babel/plugin-proposal-numeric-separator@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz#8bf253de8139099fea193b297d23a9d406ef056b" + integrity sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz#bd81f95a1f746760ea43b6c2d3d62b11790ad0af" - integrity sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA== +"@babel/plugin-proposal-object-rest-spread@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" + integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.10.4" + "@babel/plugin-transform-parameters" "^7.12.1" -"@babel/plugin-proposal-optional-catch-binding@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz#31c938309d24a78a49d68fdabffaa863758554dd" - integrity sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g== +"@babel/plugin-proposal-optional-catch-binding@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz#ccc2421af64d3aae50b558a71cede929a5ab2942" + integrity sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" -"@babel/plugin-proposal-optional-chaining@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz#de5866d0646f6afdaab8a566382fe3a221755076" - integrity sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA== +"@babel/plugin-proposal-optional-chaining@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz#e02f0ea1b5dc59d401ec16fb824679f683d3303c" + integrity sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" "@babel/plugin-syntax-optional-chaining" "^7.8.0" -"@babel/plugin-proposal-private-methods@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz#b160d972b8fdba5c7d111a145fc8c421fc2a6909" - integrity sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw== +"@babel/plugin-proposal-private-methods@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz#86814f6e7a21374c980c10d38b4493e703f4a389" + integrity sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w== dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.4" + "@babel/helper-create-class-features-plugin" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-proposal-unicode-property-regex@^7.10.4", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz#4483cda53041ce3413b7fe2f00022665ddfaa75d" - integrity sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA== +"@babel/plugin-proposal-unicode-property-regex@^7.12.1", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz#2a183958d417765b9eae334f47758e5d6a82e072" + integrity sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4": @@ -407,10 +398,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.10.4", "@babel/plugin-syntax-class-properties@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz#6644e6a0baa55a61f9e3231f6c9eeb6ee46c124c" - integrity sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA== +"@babel/plugin-syntax-class-properties@^7.12.1", "@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz#bcb297c5366e79bebadef509549cd93b04f19978" + integrity sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" @@ -421,10 +412,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-export-default-from@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.10.4.tgz#e5494f95006355c10292a0ff1ce42a5746002ec8" - integrity sha512-79V6r6Pgudz0RnuMGp5xidu6Z+bPFugh8/Q9eDHonmLp4wKFAZDwygJwYgCzuDu8lFA/sYyT+mc5y2wkd7bTXA== +"@babel/plugin-syntax-export-default-from@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.12.1.tgz#a9eb31881f4f9a1115a3d2c6d64ac3f6016b5a9d" + integrity sha512-dP5eGg6tHEkhnRD2/vRG/KJKRSg8gtxu2i+P/8/yFPJn/CfPU5G0/7Gks2i3M6IOVAPQekmsLN9LPsmXFFL4Uw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" @@ -449,10 +440,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz#39abaae3cbf710c4373d8429484e6ba21340166c" - integrity sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g== +"@babel/plugin-syntax-jsx@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz#9d9d357cc818aa7ae7935917c1257f67677a0926" + integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg== dependencies: "@babel/helper-plugin-utils" "^7.10.4" @@ -498,354 +489,351 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-top-level-await@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz#4bbeb8917b54fcf768364e0a81f560e33a3ef57d" - integrity sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ== +"@babel/plugin-syntax-top-level-await@^7.12.1", "@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz#dd6c0b357ac1bb142d98537450a319625d13d2a0" + integrity sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-typescript@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.4.tgz#2f55e770d3501e83af217d782cb7517d7bb34d25" - integrity sha512-oSAEz1YkBCAKr5Yiq8/BNtvSAPwkp/IyUnwZogd8p+F0RuYQQrLeRUzIQhueQTTBy/F+a40uS7OFKxnkRvmvFQ== +"@babel/plugin-syntax-typescript@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.1.tgz#460ba9d77077653803c3dd2e673f76d66b4029e5" + integrity sha512-UZNEcCY+4Dp9yYRCAHrHDU+9ZXLYaY9MgBXSRLkB9WjYFRR6quJBumfVrEkUxrePPBwFcpWfNKXqVRQQtm7mMA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-arrow-functions@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz#e22960d77e697c74f41c501d44d73dbf8a6a64cd" - integrity sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA== +"@babel/plugin-transform-arrow-functions@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz#8083ffc86ac8e777fbe24b5967c4b2521f3cb2b3" + integrity sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-async-to-generator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz#41a5017e49eb6f3cda9392a51eef29405b245a37" - integrity sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ== +"@babel/plugin-transform-async-to-generator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz#3849a49cc2a22e9743cbd6b52926d30337229af1" + integrity sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A== dependencies: - "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-module-imports" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.12.1" -"@babel/plugin-transform-block-scoped-functions@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz#1afa595744f75e43a91af73b0d998ecfe4ebc2e8" - integrity sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA== +"@babel/plugin-transform-block-scoped-functions@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz#f2a1a365bde2b7112e0a6ded9067fdd7c07905d9" + integrity sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-block-scoping@^7.10.4": - version "7.11.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz#5b7efe98852bef8d652c0b28144cd93a9e4b5215" - integrity sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew== +"@babel/plugin-transform-block-scoping@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz#f0ee727874b42a208a48a586b84c3d222c2bbef1" + integrity sha512-zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-classes@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz#405136af2b3e218bc4a1926228bc917ab1a0adc7" - integrity sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA== +"@babel/plugin-transform-classes@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz#65e650fcaddd3d88ddce67c0f834a3d436a32db6" + integrity sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog== dependencies: "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-define-map" "^7.10.4" "@babel/helper-function-name" "^7.10.4" "@babel/helper-optimise-call-expression" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-replace-supers" "^7.12.1" "@babel/helper-split-export-declaration" "^7.10.4" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz#9ded83a816e82ded28d52d4b4ecbdd810cdfc0eb" - integrity sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw== +"@babel/plugin-transform-computed-properties@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz#d68cf6c9b7f838a8a4144badbe97541ea0904852" + integrity sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-destructuring@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz#70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5" - integrity sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA== +"@babel/plugin-transform-destructuring@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz#b9a570fe0d0a8d460116413cb4f97e8e08b2f847" + integrity sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-dotall-regex@^7.10.4", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz#469c2062105c1eb6a040eaf4fac4b488078395ee" - integrity sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA== +"@babel/plugin-transform-dotall-regex@^7.12.1", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz#a1d16c14862817b6409c0a678d6f9373ca9cd975" + integrity sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-duplicate-keys@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz#697e50c9fee14380fe843d1f306b295617431e47" - integrity sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA== +"@babel/plugin-transform-duplicate-keys@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz#745661baba295ac06e686822797a69fbaa2ca228" + integrity sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-exponentiation-operator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz#5ae338c57f8cf4001bdb35607ae66b92d665af2e" - integrity sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw== +"@babel/plugin-transform-exponentiation-operator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz#b0f2ed356ba1be1428ecaf128ff8a24f02830ae0" + integrity sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug== dependencies: "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-for-of@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz#c08892e8819d3a5db29031b115af511dbbfebae9" - integrity sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ== +"@babel/plugin-transform-for-of@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz#07640f28867ed16f9511c99c888291f560921cfa" + integrity sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-function-name@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz#6a467880e0fc9638514ba369111811ddbe2644b7" - integrity sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg== +"@babel/plugin-transform-function-name@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz#2ec76258c70fe08c6d7da154003a480620eba667" + integrity sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw== dependencies: "@babel/helper-function-name" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz#9f42ba0841100a135f22712d0e391c462f571f3c" - integrity sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ== +"@babel/plugin-transform-literals@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz#d73b803a26b37017ddf9d3bb8f4dc58bfb806f57" + integrity sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-member-expression-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz#b1ec44fcf195afcb8db2c62cd8e551c881baf8b7" - integrity sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw== +"@babel/plugin-transform-member-expression-literals@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz#496038602daf1514a64d43d8e17cbb2755e0c3ad" + integrity sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-modules-amd@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz#1b9cddaf05d9e88b3aad339cb3e445c4f020a9b1" - integrity sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw== +"@babel/plugin-transform-modules-amd@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz#3154300b026185666eebb0c0ed7f8415fefcf6f9" + integrity sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ== dependencies: - "@babel/helper-module-transforms" "^7.10.5" + "@babel/helper-module-transforms" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz#66667c3eeda1ebf7896d41f1f16b17105a2fbca0" - integrity sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w== +"@babel/plugin-transform-modules-commonjs@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz#fa403124542636c786cf9b460a0ffbb48a86e648" + integrity sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag== dependencies: - "@babel/helper-module-transforms" "^7.10.4" + "@babel/helper-module-transforms" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-simple-access" "^7.10.4" + "@babel/helper-simple-access" "^7.12.1" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz#6270099c854066681bae9e05f87e1b9cadbe8c85" - integrity sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw== +"@babel/plugin-transform-modules-systemjs@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz#663fea620d593c93f214a464cd399bf6dc683086" + integrity sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q== dependencies: "@babel/helper-hoist-variables" "^7.10.4" - "@babel/helper-module-transforms" "^7.10.5" + "@babel/helper-module-transforms" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-validator-identifier" "^7.10.4" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz#9a8481fe81b824654b3a0b65da3df89f3d21839e" - integrity sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA== +"@babel/plugin-transform-modules-umd@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz#eb5a218d6b1c68f3d6217b8fa2cc82fec6547902" + integrity sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q== dependencies: - "@babel/helper-module-transforms" "^7.10.4" + "@babel/helper-module-transforms" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-named-capturing-groups-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz#78b4d978810b6f3bcf03f9e318f2fc0ed41aecb6" - integrity sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA== +"@babel/plugin-transform-named-capturing-groups-regex@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz#b407f5c96be0d9f5f88467497fa82b30ac3e8753" + integrity sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.12.1" -"@babel/plugin-transform-new-target@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz#9097d753cb7b024cb7381a3b2e52e9513a9c6888" - integrity sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw== +"@babel/plugin-transform-new-target@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz#80073f02ee1bb2d365c3416490e085c95759dec0" + integrity sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-object-super@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz#d7146c4d139433e7a6526f888c667e314a093894" - integrity sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ== +"@babel/plugin-transform-object-super@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz#4ea08696b8d2e65841d0c7706482b048bed1066e" + integrity sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-replace-supers" "^7.12.1" -"@babel/plugin-transform-parameters@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz#59d339d58d0b1950435f4043e74e2510005e2c4a" - integrity sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw== +"@babel/plugin-transform-parameters@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz#d2e963b038771650c922eff593799c96d853255d" + integrity sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg== dependencies: - "@babel/helper-get-function-arity" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-property-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz#f6fe54b6590352298785b83edd815d214c42e3c0" - integrity sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g== +"@babel/plugin-transform-property-literals@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz#41bc81200d730abb4456ab8b3fbd5537b59adecd" + integrity sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-react-display-name@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz#b5795f4e3e3140419c3611b7a2a3832b9aef328d" - integrity sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw== +"@babel/plugin-transform-react-display-name@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.1.tgz#1cbcd0c3b1d6648c55374a22fc9b6b7e5341c00d" + integrity sha512-cAzB+UzBIrekfYxyLlFqf/OagTvHLcVBb5vpouzkYkBclRPraiygVnafvAoipErZLI8ANv8Ecn6E/m5qPXD26w== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-react-jsx-development@^7.10.4": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.11.5.tgz#e1439e6a57ee3d43e9f54ace363fb29cefe5d7b6" - integrity sha512-cImAmIlKJ84sDmpQzm4/0q/2xrXlDezQoixy3qoz1NJeZL/8PRon6xZtluvr4H4FzwlDGI5tCcFupMnXGtr+qw== +"@babel/plugin-transform-react-jsx-development@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.7.tgz#4c2a647de79c7e2b16bfe4540677ba3121e82a08" + integrity sha512-Rs3ETtMtR3VLXFeYRChle5SsP/P9Jp/6dsewBQfokDSzKJThlsuFcnzLTDRALiUmTC48ej19YD9uN1mupEeEDg== dependencies: - "@babel/helper-builder-react-jsx-experimental" "^7.11.5" + "@babel/helper-builder-react-jsx-experimental" "^7.12.4" "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" + "@babel/plugin-syntax-jsx" "^7.12.1" -"@babel/plugin-transform-react-jsx-self@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz#cd301a5fed8988c182ed0b9d55e9bd6db0bd9369" - integrity sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg== +"@babel/plugin-transform-react-jsx-self@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.1.tgz#ef43cbca2a14f1bd17807dbe4376ff89d714cf28" + integrity sha512-FbpL0ieNWiiBB5tCldX17EtXgmzeEZjFrix72rQYeq9X6nUK38HCaxexzVQrZWXanxKJPKVVIU37gFjEQYkPkA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" -"@babel/plugin-transform-react-jsx-source@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz#34f1779117520a779c054f2cdd9680435b9222b4" - integrity sha512-wTeqHVkN1lfPLubRiZH3o73f4rfon42HpgxUSs86Nc+8QIcm/B9s8NNVXu/gwGcOyd7yDib9ikxoDLxJP0UiDA== +"@babel/plugin-transform-react-jsx-source@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.1.tgz#d07de6863f468da0809edcf79a1aa8ce2a82a26b" + integrity sha512-keQ5kBfjJNRc6zZN1/nVHCd6LLIHq4aUKcVnvE/2l+ZZROSbqoiGFRtT5t3Is89XJxBQaP7NLZX2jgGHdZvvFQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" -"@babel/plugin-transform-react-jsx@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz#673c9f913948764a4421683b2bef2936968fddf2" - integrity sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A== +"@babel/plugin-transform-react-jsx@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.7.tgz#8b14d45f6eccd41b7f924bcb65c021e9f0a06f7f" + integrity sha512-YFlTi6MEsclFAPIDNZYiCRbneg1MFGao9pPG9uD5htwE0vDbPaMUMeYd6itWjw7K4kro4UbdQf3ljmFl9y48dQ== dependencies: "@babel/helper-builder-react-jsx" "^7.10.4" - "@babel/helper-builder-react-jsx-experimental" "^7.10.4" + "@babel/helper-builder-react-jsx-experimental" "^7.12.4" "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" + "@babel/plugin-syntax-jsx" "^7.12.1" -"@babel/plugin-transform-react-pure-annotations@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz#3eefbb73db94afbc075f097523e445354a1c6501" - integrity sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A== +"@babel/plugin-transform-react-pure-annotations@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz#05d46f0ab4d1339ac59adf20a1462c91b37a1a42" + integrity sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg== dependencies: "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-regenerator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz#2015e59d839074e76838de2159db421966fd8b63" - integrity sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw== +"@babel/plugin-transform-regenerator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz#5f0a28d842f6462281f06a964e88ba8d7ab49753" + integrity sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng== dependencies: regenerator-transform "^0.14.2" -"@babel/plugin-transform-reserved-words@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz#8f2682bcdcef9ed327e1b0861585d7013f8a54dd" - integrity sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ== +"@babel/plugin-transform-reserved-words@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz#6fdfc8cc7edcc42b36a7c12188c6787c873adcd8" + integrity sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-shorthand-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz#9fd25ec5cdd555bb7f473e5e6ee1c971eede4dd6" - integrity sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q== +"@babel/plugin-transform-shorthand-properties@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz#0bf9cac5550fce0cfdf043420f661d645fdc75e3" + integrity sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-spread@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz#fa84d300f5e4f57752fe41a6d1b3c554f13f17cc" - integrity sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw== +"@babel/plugin-transform-spread@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz#527f9f311be4ec7fdc2b79bb89f7bf884b3e1e1e" + integrity sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng== dependencies: "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" -"@babel/plugin-transform-sticky-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz#8f3889ee8657581130a29d9cc91d7c73b7c4a28d" - integrity sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ== +"@babel/plugin-transform-sticky-regex@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz#560224613ab23987453948ed21d0b0b193fa7fad" + integrity sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg== dependencies: "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-regex" "^7.10.4" -"@babel/plugin-transform-template-literals@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz#78bc5d626a6642db3312d9d0f001f5e7639fde8c" - integrity sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw== +"@babel/plugin-transform-template-literals@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz#b43ece6ed9a79c0c71119f576d299ef09d942843" + integrity sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw== dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-typeof-symbol@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz#9509f1a7eec31c4edbffe137c16cc33ff0bc5bfc" - integrity sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA== +"@babel/plugin-transform-typeof-symbol@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz#9ca6be343d42512fbc2e68236a82ae64bc7af78a" + integrity sha512-EPGgpGy+O5Kg5pJFNDKuxt9RdmTgj5sgrus2XVeMp/ZIbOESadgILUbm50SNpghOh3/6yrbsH+NB5+WJTmsA7Q== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-typescript@^7.10.4": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.11.0.tgz#2b4879676af37342ebb278216dd090ac67f13abb" - integrity sha512-edJsNzTtvb3MaXQwj8403B7mZoGu9ElDJQZOKjGUnvilquxBA3IQoEIOvkX/1O8xfAsnHS/oQhe2w/IXrr+w0w== +"@babel/plugin-transform-typescript@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.1.tgz#d92cc0af504d510e26a754a7dbc2e5c8cd9c7ab4" + integrity sha512-VrsBByqAIntM+EYMqSm59SiMEf7qkmI9dqMt6RbD/wlwueWmYcI0FFK5Fj47pP6DRZm+3teXjosKlwcZJ5lIMw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.5" + "@babel/helper-create-class-features-plugin" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-typescript" "^7.10.4" + "@babel/plugin-syntax-typescript" "^7.12.1" -"@babel/plugin-transform-unicode-escapes@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz#feae523391c7651ddac115dae0a9d06857892007" - integrity sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg== +"@babel/plugin-transform-unicode-escapes@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz#5232b9f81ccb07070b7c3c36c67a1b78f1845709" + integrity sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-unicode-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz#e56d71f9282fac6db09c82742055576d5e6d80a8" - integrity sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A== +"@babel/plugin-transform-unicode-regex@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz#cc9661f61390db5c65e3febaccefd5c6ac3faecb" + integrity sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/preset-env@^7.11.5": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.11.5.tgz#18cb4b9379e3e92ffea92c07471a99a2914e4272" - integrity sha512-kXqmW1jVcnB2cdueV+fyBM8estd5mlNfaQi6lwLgRwCby4edpavgbFhiBNjmWA3JpB/yZGSISa7Srf+TwxDQoA== +"@babel/preset-env@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.7.tgz#54ea21dbe92caf6f10cb1a0a576adc4ebf094b55" + integrity sha512-OnNdfAr1FUQg7ksb7bmbKoby4qFOHw6DKWWUNB9KqnnCldxhxJlP+21dpyaWFmf2h0rTbOkXJtAGevY3XW1eew== dependencies: - "@babel/compat-data" "^7.11.0" - "@babel/helper-compilation-targets" "^7.10.4" - "@babel/helper-module-imports" "^7.10.4" + "@babel/compat-data" "^7.12.7" + "@babel/helper-compilation-targets" "^7.12.5" + "@babel/helper-module-imports" "^7.12.5" "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-proposal-async-generator-functions" "^7.10.4" - "@babel/plugin-proposal-class-properties" "^7.10.4" - "@babel/plugin-proposal-dynamic-import" "^7.10.4" - "@babel/plugin-proposal-export-namespace-from" "^7.10.4" - "@babel/plugin-proposal-json-strings" "^7.10.4" - "@babel/plugin-proposal-logical-assignment-operators" "^7.11.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.4" - "@babel/plugin-proposal-numeric-separator" "^7.10.4" - "@babel/plugin-proposal-object-rest-spread" "^7.11.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.10.4" - "@babel/plugin-proposal-optional-chaining" "^7.11.0" - "@babel/plugin-proposal-private-methods" "^7.10.4" - "@babel/plugin-proposal-unicode-property-regex" "^7.10.4" + "@babel/helper-validator-option" "^7.12.1" + "@babel/plugin-proposal-async-generator-functions" "^7.12.1" + "@babel/plugin-proposal-class-properties" "^7.12.1" + "@babel/plugin-proposal-dynamic-import" "^7.12.1" + "@babel/plugin-proposal-export-namespace-from" "^7.12.1" + "@babel/plugin-proposal-json-strings" "^7.12.1" + "@babel/plugin-proposal-logical-assignment-operators" "^7.12.1" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" + "@babel/plugin-proposal-numeric-separator" "^7.12.7" + "@babel/plugin-proposal-object-rest-spread" "^7.12.1" + "@babel/plugin-proposal-optional-catch-binding" "^7.12.1" + "@babel/plugin-proposal-optional-chaining" "^7.12.7" + "@babel/plugin-proposal-private-methods" "^7.12.1" + "@babel/plugin-proposal-unicode-property-regex" "^7.12.1" "@babel/plugin-syntax-async-generators" "^7.8.0" - "@babel/plugin-syntax-class-properties" "^7.10.4" + "@babel/plugin-syntax-class-properties" "^7.12.1" "@babel/plugin-syntax-dynamic-import" "^7.8.0" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-syntax-json-strings" "^7.8.0" @@ -855,45 +843,42 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" "@babel/plugin-syntax-optional-chaining" "^7.8.0" - "@babel/plugin-syntax-top-level-await" "^7.10.4" - "@babel/plugin-transform-arrow-functions" "^7.10.4" - "@babel/plugin-transform-async-to-generator" "^7.10.4" - "@babel/plugin-transform-block-scoped-functions" "^7.10.4" - "@babel/plugin-transform-block-scoping" "^7.10.4" - "@babel/plugin-transform-classes" "^7.10.4" - "@babel/plugin-transform-computed-properties" "^7.10.4" - "@babel/plugin-transform-destructuring" "^7.10.4" - "@babel/plugin-transform-dotall-regex" "^7.10.4" - "@babel/plugin-transform-duplicate-keys" "^7.10.4" - "@babel/plugin-transform-exponentiation-operator" "^7.10.4" - "@babel/plugin-transform-for-of" "^7.10.4" - "@babel/plugin-transform-function-name" "^7.10.4" - "@babel/plugin-transform-literals" "^7.10.4" - "@babel/plugin-transform-member-expression-literals" "^7.10.4" - "@babel/plugin-transform-modules-amd" "^7.10.4" - "@babel/plugin-transform-modules-commonjs" "^7.10.4" - "@babel/plugin-transform-modules-systemjs" "^7.10.4" - "@babel/plugin-transform-modules-umd" "^7.10.4" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.10.4" - "@babel/plugin-transform-new-target" "^7.10.4" - "@babel/plugin-transform-object-super" "^7.10.4" - "@babel/plugin-transform-parameters" "^7.10.4" - "@babel/plugin-transform-property-literals" "^7.10.4" - "@babel/plugin-transform-regenerator" "^7.10.4" - "@babel/plugin-transform-reserved-words" "^7.10.4" - "@babel/plugin-transform-shorthand-properties" "^7.10.4" - "@babel/plugin-transform-spread" "^7.11.0" - "@babel/plugin-transform-sticky-regex" "^7.10.4" - "@babel/plugin-transform-template-literals" "^7.10.4" - "@babel/plugin-transform-typeof-symbol" "^7.10.4" - "@babel/plugin-transform-unicode-escapes" "^7.10.4" - "@babel/plugin-transform-unicode-regex" "^7.10.4" + "@babel/plugin-syntax-top-level-await" "^7.12.1" + "@babel/plugin-transform-arrow-functions" "^7.12.1" + "@babel/plugin-transform-async-to-generator" "^7.12.1" + "@babel/plugin-transform-block-scoped-functions" "^7.12.1" + "@babel/plugin-transform-block-scoping" "^7.12.1" + "@babel/plugin-transform-classes" "^7.12.1" + "@babel/plugin-transform-computed-properties" "^7.12.1" + "@babel/plugin-transform-destructuring" "^7.12.1" + "@babel/plugin-transform-dotall-regex" "^7.12.1" + "@babel/plugin-transform-duplicate-keys" "^7.12.1" + "@babel/plugin-transform-exponentiation-operator" "^7.12.1" + "@babel/plugin-transform-for-of" "^7.12.1" + "@babel/plugin-transform-function-name" "^7.12.1" + "@babel/plugin-transform-literals" "^7.12.1" + "@babel/plugin-transform-member-expression-literals" "^7.12.1" + "@babel/plugin-transform-modules-amd" "^7.12.1" + "@babel/plugin-transform-modules-commonjs" "^7.12.1" + "@babel/plugin-transform-modules-systemjs" "^7.12.1" + "@babel/plugin-transform-modules-umd" "^7.12.1" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.1" + "@babel/plugin-transform-new-target" "^7.12.1" + "@babel/plugin-transform-object-super" "^7.12.1" + "@babel/plugin-transform-parameters" "^7.12.1" + "@babel/plugin-transform-property-literals" "^7.12.1" + "@babel/plugin-transform-regenerator" "^7.12.1" + "@babel/plugin-transform-reserved-words" "^7.12.1" + "@babel/plugin-transform-shorthand-properties" "^7.12.1" + "@babel/plugin-transform-spread" "^7.12.1" + "@babel/plugin-transform-sticky-regex" "^7.12.7" + "@babel/plugin-transform-template-literals" "^7.12.1" + "@babel/plugin-transform-typeof-symbol" "^7.12.1" + "@babel/plugin-transform-unicode-escapes" "^7.12.1" + "@babel/plugin-transform-unicode-regex" "^7.12.1" "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.11.5" - browserslist "^4.12.0" - core-js-compat "^3.6.2" - invariant "^2.2.2" - levenary "^1.1.1" + "@babel/types" "^7.12.7" + core-js-compat "^3.7.0" semver "^5.5.0" "@babel/preset-modules@^0.1.3": @@ -907,70 +892,71 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.10.4.tgz#92e8a66d816f9911d11d4cc935be67adfc82dbcf" - integrity sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw== +"@babel/preset-react@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.12.7.tgz#36d61d83223b07b6ac4ec55cf016abb0f70be83b" + integrity sha512-wKeTdnGUP5AEYCYQIMeXMMwU7j+2opxrG0WzuZfxuuW9nhKvvALBjl67653CWamZJVefuJGI219G591RSldrqQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-transform-react-display-name" "^7.10.4" - "@babel/plugin-transform-react-jsx" "^7.10.4" - "@babel/plugin-transform-react-jsx-development" "^7.10.4" - "@babel/plugin-transform-react-jsx-self" "^7.10.4" - "@babel/plugin-transform-react-jsx-source" "^7.10.4" - "@babel/plugin-transform-react-pure-annotations" "^7.10.4" - -"@babel/preset-typescript@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.10.4.tgz#7d5d052e52a682480d6e2cc5aa31be61c8c25e36" - integrity sha512-SdYnvGPv+bLlwkF2VkJnaX/ni1sMNetcGI1+nThF1gyv6Ph8Qucc4ZZAjM5yZcE/AKRXIOTZz7eSRDWOEjPyRQ== + "@babel/plugin-transform-react-display-name" "^7.12.1" + "@babel/plugin-transform-react-jsx" "^7.12.7" + "@babel/plugin-transform-react-jsx-development" "^7.12.7" + "@babel/plugin-transform-react-jsx-self" "^7.12.1" + "@babel/plugin-transform-react-jsx-source" "^7.12.1" + "@babel/plugin-transform-react-pure-annotations" "^7.12.1" + +"@babel/preset-typescript@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.12.7.tgz#fc7df8199d6aae747896f1e6c61fc872056632a3" + integrity sha512-nOoIqIqBmHBSEgBXWR4Dv/XBehtIFcw9PqZw6rFYuKrzsZmOQm3PR5siLBnKZFEsDb03IegG8nSjU/iXXXYRmw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-transform-typescript" "^7.10.4" + "@babel/helper-validator-option" "^7.12.1" + "@babel/plugin-transform-typescript" "^7.12.1" "@babel/runtime-corejs3@^7.10.2": - version "7.11.2" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.11.2.tgz#02c3029743150188edeb66541195f54600278419" - integrity sha512-qh5IR+8VgFz83VBa6OkaET6uN/mJOhHONuy3m1sgF0CV6mXdPSEBdA7e1eUbVvyNtANjMbg22JUv71BaDXLY6A== + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.12.5.tgz#ffee91da0eb4c6dae080774e94ba606368e414f4" + integrity sha512-roGr54CsTmNPPzZoCP1AmDXuBoNao7tnSA83TXTwt+UK5QVyh1DIJnrgYRPWKCF2flqZQXwa7Yr8v7VmLzF0YQ== dependencies: core-js-pure "^3.0.0" regenerator-runtime "^0.13.4" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.11.2", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": - version "7.11.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" - integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" + integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.10.4", "@babel/template@^7.3.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" - integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== +"@babel/template@^7.10.4", "@babel/template@^7.12.7", "@babel/template@^7.3.3": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc" + integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow== dependencies: "@babel/code-frame" "^7.10.4" - "@babel/parser" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/parser" "^7.12.7" + "@babel/types" "^7.12.7" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.11.5": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.5.tgz#be777b93b518eb6d76ee2e1ea1d143daa11e61c3" - integrity sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ== +"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.5", "@babel/traverse@^7.12.9": + version "7.12.9" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.9.tgz#fad26c972eabbc11350e0b695978de6cc8e8596f" + integrity sha512-iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw== dependencies: "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.5" + "@babel/generator" "^7.12.5" "@babel/helper-function-name" "^7.10.4" "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/parser" "^7.11.5" - "@babel/types" "^7.11.5" + "@babel/parser" "^7.12.7" + "@babel/types" "^7.12.7" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.19" -"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.11.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz#d9de577d01252d77c6800cee039ee64faf75662d" - integrity sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q== +"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.12.1", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.7.tgz#6039ff1e242640a29452c9ae572162ec9a8f5d13" + integrity sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ== dependencies: "@babel/helper-validator-identifier" "^7.10.4" lodash "^4.17.19" @@ -989,10 +975,10 @@ exec-sh "^0.3.2" minimist "^1.2.0" -"@eslint/eslintrc@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.1.3.tgz#7d1a2b2358552cc04834c0979bd4275362e37085" - integrity sha512-4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA== +"@eslint/eslintrc@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.1.tgz#f72069c330461a06684d119384435e12a5d76e3c" + integrity sha512-XRUeBZ5zBWLYgSANMpThFddrZZkEbGHgUdt5UJjZfnlN9BGCiUBrf+nvbRupSjMvqzwnQN0qwCmOxITt1cfywA== dependencies: ajv "^6.12.4" debug "^4.1.1" @@ -1021,93 +1007,93 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== -"@jest/console@^26.5.0": - version "26.5.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.5.0.tgz#89a1c5ae8329907fda842ebc5b475d5c9f935766" - integrity sha512-oh59scth4yf8XUgMJb8ruY7BHm0X5JZDNgGGsVnlOt2XQuq9s2NMllIrN4n70Yds+++bjrTGZ9EoOKraaPKPlg== +"@jest/console@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" + integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== dependencies: - "@jest/types" "^26.5.0" + "@jest/types" "^26.6.2" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^26.5.0" - jest-util "^26.5.0" + jest-message-util "^26.6.2" + jest-util "^26.6.2" slash "^3.0.0" -"@jest/core@^26.5.0": - version "26.5.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.5.0.tgz#32d7caf46a49d4a14cbbd3a2eb3ef39f149e984d" - integrity sha512-hDtgfzYxnrQn54+0JlbqpXM4+bqDfK0ooMlNE4Nn3VBsB4RbmytAn4/kVVIcMa+aYwRr/fwzWuGJwBETVg1sDw== +"@jest/core@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" + integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== dependencies: - "@jest/console" "^26.5.0" - "@jest/reporters" "^26.5.0" - "@jest/test-result" "^26.5.0" - "@jest/transform" "^26.5.0" - "@jest/types" "^26.5.0" + "@jest/console" "^26.6.2" + "@jest/reporters" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.4" - jest-changed-files "^26.5.0" - jest-config "^26.5.0" - jest-haste-map "^26.5.0" - jest-message-util "^26.5.0" + jest-changed-files "^26.6.2" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" jest-regex-util "^26.0.0" - jest-resolve "^26.5.0" - jest-resolve-dependencies "^26.5.0" - jest-runner "^26.5.0" - jest-runtime "^26.5.0" - jest-snapshot "^26.5.0" - jest-util "^26.5.0" - jest-validate "^26.5.0" - jest-watcher "^26.5.0" + jest-resolve "^26.6.2" + jest-resolve-dependencies "^26.6.3" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + jest-watcher "^26.6.2" micromatch "^4.0.2" p-each-series "^2.1.0" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^26.5.0": - version "26.5.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.5.0.tgz#4381b6b2fc291dcff51e248780196bc035da7190" - integrity sha512-0F3G9EyZU2NAP0/c/5EqVx4DmldQtRxj0gMl3p3ciSCdyMiCyDmpdE7O0mKTSiFDyl1kU4TfgEVf0r0vMkmYcw== +"@jest/environment@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" + integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== dependencies: - "@jest/fake-timers" "^26.5.0" - "@jest/types" "^26.5.0" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" "@types/node" "*" - jest-mock "^26.5.0" + jest-mock "^26.6.2" -"@jest/fake-timers@^26.5.0": - version "26.5.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.5.0.tgz#107ceeb580bc42dd6e0843df5bbc92cb4fe9cb00" - integrity sha512-sQK6xUembaZ0qLnZpSjJJuJiKvyrjCJhaYjbmatFpj5+cM8h2D7YEkeEBC26BMzvF1O3tNM9OL7roqyBmom0KA== +"@jest/fake-timers@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" + integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== dependencies: - "@jest/types" "^26.5.0" + "@jest/types" "^26.6.2" "@sinonjs/fake-timers" "^6.0.1" "@types/node" "*" - jest-message-util "^26.5.0" - jest-mock "^26.5.0" - jest-util "^26.5.0" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-util "^26.6.2" -"@jest/globals@^26.5.0": - version "26.5.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.5.0.tgz#b9b7d05ee6722c894ce67aff216ed6b04d3fe187" - integrity sha512-TCKx3XWR9h/yyhQbz0C1sXkK2e8WJOnkP40T9bewNpf2Ahr1UEyKXnCoQO0JCpXFkWGTXBNo1QAgTQ3+LhXfcA== +"@jest/globals@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" + integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== dependencies: - "@jest/environment" "^26.5.0" - "@jest/types" "^26.5.0" - expect "^26.5.0" + "@jest/environment" "^26.6.2" + "@jest/types" "^26.6.2" + expect "^26.6.2" -"@jest/reporters@^26.5.0": - version "26.5.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.5.0.tgz#07c7742993db9d680bcc6cda58106e8d283d2111" - integrity sha512-lUl5bbTHflDO9dQa85ZTHasPBVsyC48t9sg/VN2wC3OJryclFNqN4Xfo2FgnNl/pzCnzO2MVgMyIij5aNkod2w== +"@jest/reporters@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" + integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^26.5.0" - "@jest/test-result" "^26.5.0" - "@jest/transform" "^26.5.0" - "@jest/types" "^26.5.0" + "@jest/console" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" chalk "^4.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" @@ -1118,83 +1104,73 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.0.2" - jest-haste-map "^26.5.0" - jest-resolve "^26.5.0" - jest-util "^26.5.0" - jest-worker "^26.5.0" + jest-haste-map "^26.6.2" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" slash "^3.0.0" source-map "^0.6.0" string-length "^4.0.1" terminal-link "^2.0.0" - v8-to-istanbul "^5.0.1" + v8-to-istanbul "^7.0.0" optionalDependencies: node-notifier "^8.0.0" -"@jest/source-map@^26.5.0": - version "26.5.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.5.0.tgz#98792457c85bdd902365cd2847b58fff05d96367" - integrity sha512-jWAw9ZwYHJMe9eZq/WrsHlwF8E3hM9gynlcDpOyCb9bR8wEd9ZNBZCi7/jZyzHxC7t3thZ10gO2IDhu0bPKS5g== +"@jest/source-map@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" + integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== dependencies: callsites "^3.0.0" graceful-fs "^4.2.4" source-map "^0.6.0" -"@jest/test-result@^26.5.0": - version "26.5.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.5.0.tgz#d5bdf2eaf12ceddd359c2506fe806afafecc9a9e" - integrity sha512-CaVXxDQi31LPOsz5/+iajNHQlA1Je/jQ8uYH/lCa6Y/UrkO+sDHeEH3x/inbx06PctVDnTwIlCcBvNNbC4FCvQ== +"@jest/test-result@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" + integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== dependencies: - "@jest/console" "^26.5.0" - "@jest/types" "^26.5.0" + "@jest/console" "^26.6.2" + "@jest/types" "^26.6.2" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^26.5.0": - version "26.5.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.5.0.tgz#617808a1fa869c5181e43a5b841db084746b667e" - integrity sha512-23oofRXqPEy37HyHWIYf7lzzOqtGBkai5erZiL6RgxlyXE7a0lCihf6b5DfAvcD3yUtbXmh3EzpjJDVH57zQrg== +"@jest/test-sequencer@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" + integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== dependencies: - "@jest/test-result" "^26.5.0" + "@jest/test-result" "^26.6.2" graceful-fs "^4.2.4" - jest-haste-map "^26.5.0" - jest-runner "^26.5.0" - jest-runtime "^26.5.0" + jest-haste-map "^26.6.2" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" -"@jest/transform@^26.5.0": - version "26.5.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.5.0.tgz#16404eaddf6034fe713da37b236756fc6b956db0" - integrity sha512-Kt4WciOruTyTkJ2DZ+xtZiejRj3v22BrXCYZoGRbI0N6Q6tt2HdsWrrEtn6nlK24QWKC389xKkVk4Xr2gWBZQA== +"@jest/transform@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" + integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^26.5.0" + "@jest/types" "^26.6.2" babel-plugin-istanbul "^6.0.0" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.2.4" - jest-haste-map "^26.5.0" + jest-haste-map "^26.6.2" jest-regex-util "^26.0.0" - jest-util "^26.5.0" + jest-util "^26.6.2" micromatch "^4.0.2" pirates "^4.0.1" slash "^3.0.0" source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/types@^25.5.0": - version "25.5.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d" - integrity sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^15.0.0" - chalk "^3.0.0" - -"@jest/types@^26.5.0": - version "26.5.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.5.0.tgz#163f6e00c5ac9bb6fc91c3802eaa9d0dd6e1474a" - integrity sha512-nH9DFLqaIhB+RVgjivemvMiFSWw/BKwbZGxBAMv8CCTvUyFoK8RwHhAlmlXIvMBrf5Z3YQ4p9cq3Qh9EDctGvA== +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" @@ -1223,20 +1199,20 @@ "@nodelib/fs.scandir" "2.1.3" fastq "^1.6.0" -"@salesforce-ux/design-system@2.13.5": - version "2.13.5" - resolved "https://registry.yarnpkg.com/@salesforce-ux/design-system/-/design-system-2.13.5.tgz#2ac846503563e32f146d6dcc136509c3b739c5a5" - integrity sha512-bJYzZx7W7RAO3T9uNmLSo3ug8QxSi2PhvBhrSi8SamiTXUgfuktIJgxA8UEHU6wm2n98y6Pbu/M4YvuVtOZfOw== +"@salesforce-ux/design-system@2.13.7": + version "2.13.7" + resolved "https://registry.yarnpkg.com/@salesforce-ux/design-system/-/design-system-2.13.7.tgz#047694b53528a1b06c44fd0091e87f6c032bbffb" + integrity sha512-eSXYJmJbroOCnqRVzGDb0HoiB2J42lViLPqtHxH4O8L4k7/PkdW3bUiodAKKcEiRvmuD9YojBHrLVtK6eX7MjQ== "@salesforce/babel-preset-design-system-react@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@salesforce/babel-preset-design-system-react/-/babel-preset-design-system-react-3.0.0.tgz#b8334d14fc3801064ac5b6e5349145dc057bc17f" integrity sha512-NM3aObtfYl9RpfVu5eDU96fmTW7Mj2V1Y1O5b8dpLGESgXxqHiGIV7d4bKHzmD8O00g1qjPAPusd0f2IB7Yi0Q== -"@salesforce/design-system-react@0.10.22": - version "0.10.22" - resolved "https://registry.yarnpkg.com/@salesforce/design-system-react/-/design-system-react-0.10.22.tgz#06c353895e72e92ab27f28071ebfc8467f95d99e" - integrity sha512-MmX9WO+tfdPwbIpMCuE14aElOCJw3hIbBWaW+iWYRoYBsxSMoWc1NPTLXe4gcnhvhpXfhxxKogm/5358/DVmUg== +"@salesforce/design-system-react@0.10.23": + version "0.10.23" + resolved "https://registry.yarnpkg.com/@salesforce/design-system-react/-/design-system-react-0.10.23.tgz#659cd023cc9a019f173b5ef84c8109553cb633bd" + integrity sha512-FVY3sUEB53vh2eW7G0G83ZxdTKgHuG6EPyJBezieu6DriLR1Kk3c1cfdfUyLYoMoRtk8+n5zB8+RdH6qFbVRcg== dependencies: "@salesforce/babel-preset-design-system-react" "^3.0.0" classnames "^2.2.6" @@ -1262,56 +1238,56 @@ warning "^4.0.3" webpack-cli "^3.x" -"@sentry/browser@^5.25.0": - version "5.25.0" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-5.25.0.tgz#4e3d2132ba1f2e2b26f73c49cbb6977ee9c9fea9" - integrity sha512-QDVUbUuTu58xCdId0eUO4YzpvrPdoUw1ryVy/Yep9Es/HD0fiSyO1Js0eQVkV/EdXtyo2pomc1Bpy7dbn2EJ2w== +"@sentry/browser@^5.28.0": + version "5.28.0" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-5.28.0.tgz#f4c094bb97070442d95d51966a5e4dc8b92f586f" + integrity sha512-u1W47fgYFGWTV+RRQtNBzPZMXfR4MqCYSpuUVSpWQ+riITH7pvjG1cnBYDGT7+Q1s1wGrAL/9ElJfF795VVT9g== dependencies: - "@sentry/core" "5.25.0" - "@sentry/types" "5.25.0" - "@sentry/utils" "5.25.0" + "@sentry/core" "5.28.0" + "@sentry/types" "5.28.0" + "@sentry/utils" "5.28.0" tslib "^1.9.3" -"@sentry/core@5.25.0": - version "5.25.0" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.25.0.tgz#525ad37f9e8a95603768e3b74b437d5235a51578" - integrity sha512-hY6Zmo7t/RV+oZuvXHP6nyAj/QnZr2jW0e7EbL5YKMV8q0vlnjcE0LgqFXme726OJemoLk67z+sQOJic/Ztehg== +"@sentry/core@5.28.0": + version "5.28.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.28.0.tgz#2b5ee2b76f0ccd73545eac61c3c2d72d7c76f531" + integrity sha512-hLAUFauqX+v/ap8ATJFdp392ZvfFoR0Gb4pyRkzOeWWs5ZYuqyb9Dsjtwsb61HH/XHQGW/BKZJR2dgIjQq4JGA== dependencies: - "@sentry/hub" "5.25.0" - "@sentry/minimal" "5.25.0" - "@sentry/types" "5.25.0" - "@sentry/utils" "5.25.0" + "@sentry/hub" "5.28.0" + "@sentry/minimal" "5.28.0" + "@sentry/types" "5.28.0" + "@sentry/utils" "5.28.0" tslib "^1.9.3" -"@sentry/hub@5.25.0": - version "5.25.0" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.25.0.tgz#6932535604cafaee1ac7f361b0e7c2ce8f7e7bc3" - integrity sha512-kOlOiJV8wMX50lYpzMlOXBoH7MNG0Ho4RTusdZnXZBaASq5/ljngDJkLr6uylNjceZQP21wzipCQajsJMYB7EQ== +"@sentry/hub@5.28.0": + version "5.28.0" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.28.0.tgz#6a00b1011c0492b6acbaf0e24961fbd1c7edd1c1" + integrity sha512-1k19yJJcKoHbw12FET35t0m86lx/X6eJ6r4qM13eb2WN/OpoFtsgs1IjQOhGFL3OfVMcfh800Lc57ga04RLjLA== dependencies: - "@sentry/types" "5.25.0" - "@sentry/utils" "5.25.0" + "@sentry/types" "5.28.0" + "@sentry/utils" "5.28.0" tslib "^1.9.3" -"@sentry/minimal@5.25.0": - version "5.25.0" - resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.25.0.tgz#447b5406b45c8c436c461abea4474d6a849ed975" - integrity sha512-9JFKuW7U+1vPO86k3+XRtJyooiVZsVOsFFO4GulBzepi3a0ckNyPgyjUY1saLH+cEHx18hu8fGgajvI8ANUF2g== +"@sentry/minimal@5.28.0": + version "5.28.0" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.28.0.tgz#bfa63f5961988e6652207c77b3ea46d89f2d52bf" + integrity sha512-HzFrJx0xe5KETEZc7RxlH+1TfmH3q8w35ILOP5HGvk3+lG1DR25wHbMFmuUqNqVXrl26t0z32UBI30G1MxmTfA== dependencies: - "@sentry/hub" "5.25.0" - "@sentry/types" "5.25.0" + "@sentry/hub" "5.28.0" + "@sentry/types" "5.28.0" tslib "^1.9.3" -"@sentry/types@5.25.0": - version "5.25.0" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.25.0.tgz#3bcf95e118d655d3f4e8bfa5f0be2e1fe4ea5307" - integrity sha512-8M4PREbcar+15wrtEqcwfcU33SS+2wBSIOd/NrJPXJPTYxi49VypCN1mZBDyWkaK+I+AuQwI3XlRPCfsId3D1A== +"@sentry/types@5.28.0": + version "5.28.0" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.28.0.tgz#242131fef910bded53350a36ffd7df240cfb8dcf" + integrity sha512-nNhoZEXdqM2xivxJBrLhxtJ2+s6FfKXUw5yBf0Jf/RBrBnH5fggPNImmyfpOoysl72igWcMWk4nnfyP5iDrriQ== -"@sentry/utils@5.25.0": - version "5.25.0" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.25.0.tgz#b132034be66d7381d30879d2a9e09216fed28342" - integrity sha512-Hz5spdIkMSRH5NR1YFOp5qbsY5Ud2lKhEQWlqxcVThMG5YNUc10aYv5ijL19v0YkrC2rqPjCRm7GrVtzOc7bXQ== +"@sentry/utils@5.28.0": + version "5.28.0" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.28.0.tgz#a30e36afd7094ced8d585c9fde2df2636cca6cf5" + integrity sha512-LW+ReVw9JG6g8Bvp2I1ThMDPATlisvkde+1WykxGqRhu2YIO+PvWhnoFhr9RD0ia3rYVlJkgkuTshMbPJ8HVwA== dependencies: - "@sentry/types" "5.25.0" + "@sentry/types" "5.28.0" tslib "^1.9.3" "@sinonjs/commons@^1.7.0": @@ -1335,31 +1311,32 @@ dependencies: "@babel/core" ">=7.9.0" -"@stylelint/postcss-markdown@^0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@stylelint/postcss-markdown/-/postcss-markdown-0.36.1.tgz#829b87e6c0f108014533d9d7b987dc9efb6632e8" - integrity sha512-iDxMBWk9nB2BPi1VFQ+Dc5+XpvODBHw2n3tYpaBZuEAFQlbtF9If0Qh5LTTwSi/XwdbJ2jt+0dis3i8omyggpw== +"@stylelint/postcss-markdown@^0.36.2": + version "0.36.2" + resolved "https://registry.yarnpkg.com/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz#0a540c4692f8dcdfc13c8e352c17e7bfee2bb391" + integrity sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ== dependencies: - remark "^12.0.0" - unist-util-find-all-after "^3.0.1" + remark "^13.0.0" + unist-util-find-all-after "^3.0.2" -"@testing-library/dom@^7.24.2": - version "7.24.3" - resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.24.3.tgz#dae3071463cf28dc7755b43d9cf2202e34cbb85d" - integrity sha512-6eW9fUhEbR423FZvoHRwbWm9RUUByLWGayYFNVvqTnQLYvsNpBS4uEuKH9aqr3trhxFwGVneJUonehL3B1sHJw== +"@testing-library/dom@^7.28.1": + version "7.28.1" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.28.1.tgz#dea78be6e1e6db32ddcb29a449e94d9700c79eb9" + integrity sha512-acv3l6kDwZkQif/YqJjstT3ks5aaI33uxGNVIQmdKzbZ2eMKgg3EV2tB84GDdc72k3Kjhl6mO8yUt6StVIdRDg== dependencies: "@babel/code-frame" "^7.10.4" - "@babel/runtime" "^7.10.3" + "@babel/runtime" "^7.12.5" "@types/aria-query" "^4.2.0" aria-query "^4.2.2" chalk "^4.1.0" - dom-accessibility-api "^0.5.1" - pretty-format "^26.4.2" + dom-accessibility-api "^0.5.4" + lz-string "^1.4.4" + pretty-format "^26.6.2" -"@testing-library/jest-dom@^5.11.4": - version "5.11.4" - resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.11.4.tgz#f325c600db352afb92995c2576022b35621ddc99" - integrity sha512-6RRn3epuweBODDIv3dAlWjOEHQLpGJHB2i912VS3JQtsD22+ENInhdDNl4ZZQiViLlIfFinkSET/J736ytV9sw== +"@testing-library/jest-dom@^5.11.6": + version "5.11.6" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.11.6.tgz#782940e82e5cd17bc0a36f15156ba16f3570ac81" + integrity sha512-cVZyUNRWwUKI0++yepYpYX7uhrP398I+tGz4zOlLVlUYnZS+Svuxv4fwLeCIy7TnBYKXUaOlQr3vopxL8ZfEnA== dependencies: "@babel/runtime" "^7.9.2" "@types/testing-library__jest-dom" "^5.9.1" @@ -1378,13 +1355,13 @@ "@babel/runtime" "^7.5.4" "@types/testing-library__react-hooks" "^3.4.0" -"@testing-library/react@^11.0.4": - version "11.0.4" - resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-11.0.4.tgz#c84082bfe1593d8fcd475d46baee024452f31dee" - integrity sha512-U0fZO2zxm7M0CB5h1+lh31lbAwMSmDMEMGpMT3BUPJwIjDEKYWOV4dx7lb3x2Ue0Pyt77gmz/VropuJnSz/Iew== +"@testing-library/react@^11.2.2": + version "11.2.2" + resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-11.2.2.tgz#099c6c195140ff069211143cb31c0f8337bdb7b7" + integrity sha512-jaxm0hwUjv+hzC+UFEywic7buDC9JQ1q3cDsrWVSDAPmLotfA6E6kUHlYm/zOeGCac6g48DR36tFHxl7Zb+N5A== dependencies: - "@babel/runtime" "^7.11.2" - "@testing-library/dom" "^7.24.2" + "@babel/runtime" "^7.12.5" + "@testing-library/dom" "^7.28.1" "@types/anymatch@*": version "1.3.1" @@ -1397,9 +1374,9 @@ integrity sha512-iIgQNzCm0v7QMhhe4Jjn9uRh+I6GoPmt03CbEtwx3ao8/EfoQcmgtqH4vQ5Db/lxiIGaWDv6nwvunuh0RyX0+A== "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": - version "7.1.10" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.10.tgz#ca58fc195dd9734e77e57c6f2df565623636ab40" - integrity sha512-x8OM8XzITIMyiwl5Vmo2B1cR1S1Ipkyv4mdlbJjMa1lmuKvKY9FrBbEANIaMlnWn5Rf7uO+rC/VgYabNkE17Hw== + version "7.1.12" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.12.tgz#4d8e9e51eb265552a7e4f1ff2219ab6133bdfb2d" + integrity sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -1415,24 +1392,24 @@ "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.3.tgz#b8aaeba0a45caca7b56a5de9459872dde3727214" - integrity sha512-uCoznIPDmnickEi6D0v11SBpW0OuVqHJCa7syXqQHy5uktSCreIlt0iglsCnmvz8yCb38hGcWeseA8cWJSwv5Q== + version "7.4.0" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz#0c888dd70b3ee9eebb6e4f200e809da0076262be" + integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.0.15" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.15.tgz#db9e4238931eb69ef8aab0ad6523d4d4caa39d03" - integrity sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A== + version "7.0.16" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.16.tgz#0bbbf70c7bc4193210dd27e252c51260a37cd6a7" + integrity sha512-S63Dt4CZOkuTmpLGGWtT/mQdVORJOpx6SZWGVaP56dda/0Nx5nEe82K7/LAm8zYr6SfMq+1N2OreIOrHAx656w== dependencies: "@babel/types" "^7.3.0" -"@types/classnames@^2.2.10": - version "2.2.10" - resolved "https://registry.yarnpkg.com/@types/classnames/-/classnames-2.2.10.tgz#cc658ca319b6355399efc1f5b9e818f1a24bf999" - integrity sha512-1UzDldn9GfYYEsWWnn/P4wkTlkZDH7lDb0wBMGbtIQc9zXEQq7FlKBdZUn6OBqD8sKZZ2RQO2mAjGpXiDGoRmQ== +"@types/classnames@^2.2.11": + version "2.2.11" + resolved "https://registry.yarnpkg.com/@types/classnames/-/classnames-2.2.11.tgz#2521cc86f69d15c5b90664e4829d84566052c1cf" + integrity sha512-2koNhpWm3DgWRp5tpkiJ8JGc1xTn2q0l+jUNUE7oMKXUf5NpI9AIdC4kbjGNFBdHtcxBD18LAksoudAVhFKCjw== "@types/core-js@^2.5.4": version "2.5.4" @@ -1448,9 +1425,9 @@ "@types/node" "*" "@types/graceful-fs@^4.1.2": - version "4.1.3" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.3.tgz#039af35fe26bec35003e8d86d2ee9c586354348f" - integrity sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ== + version "4.1.4" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.4.tgz#4ff9f641a7c6d1a3508ff88bc3141b152772e753" + integrity sha512-mWA/4zFQhfvOA8zWkXobwJvBD7vzcxgrOQ0J5CH1votGqdq9m7+FwtGaqyCZqC3NyyBkc9z4m+iry4LlqcMWJg== dependencies: "@types/node" "*" @@ -1484,14 +1461,6 @@ dependencies: "@types/istanbul-lib-coverage" "*" -"@types/istanbul-reports@^1.1.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" - integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== - dependencies: - "@types/istanbul-lib-coverage" "*" - "@types/istanbul-lib-report" "*" - "@types/istanbul-reports@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" @@ -1500,19 +1469,19 @@ "@types/istanbul-lib-report" "*" "@types/jest@*": - version "26.0.14" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.14.tgz#078695f8f65cb55c5a98450d65083b2b73e5a3f3" - integrity sha512-Hz5q8Vu0D288x3iWXePSn53W7hAjP0H7EQ6QvDO9c7t46mR0lNOLlfuwQ+JkVxuhygHzlzPX+0jKdA3ZgSh+Vg== + version "26.0.16" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.16.tgz#b47abd50f6ed0503f589db8e126fc8eb470cf87c" + integrity sha512-Gp12+7tmKCgv9JjtltxUXokohCAEZfpJaEW5tn871SGRp8I+bRWBonQO7vW5NHwnAHe5dd50+Q4zyKuN35i09g== dependencies: - jest-diff "^25.2.1" - pretty-format "^25.2.1" + jest-diff "^26.0.0" + pretty-format "^26.0.0" "@types/js-cookie@^2.2.6": version "2.2.6" resolved "https://registry.yarnpkg.com/@types/js-cookie/-/js-cookie-2.2.6.tgz#f1a1cb35aff47bc5cfb05cb0c441ca91e914c26f" integrity sha512-+oY0FDTO2GYKEV0YPvSshGq9t7YozVkgvXLty7zogQNuCxBhT9/3INX9Q7H1aRZ4SUDRXAKlJuA4EA5nTt7SNw== -"@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5": +"@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": version "7.0.6" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== @@ -1522,10 +1491,17 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= -"@types/lodash@^4.14.161": - version "4.14.161" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.161.tgz#a21ca0777dabc6e4f44f3d07f37b765f54188b18" - integrity sha512-EP6O3Jkr7bXvZZSZYlsgt5DIjiGr0dXP1/jVEwVLTFgg0d+3lWVQkRavYVQszV7dYUwvg0B8R0MBDpcmXg7XIA== +"@types/lodash@^4.14.165": + version "4.14.165" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.165.tgz#74d55d947452e2de0742bad65270433b63a8c30f" + integrity sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg== + +"@types/mdast@^3.0.0": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb" + integrity sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw== + dependencies: + "@types/unist" "*" "@types/minimatch@*": version "3.0.3" @@ -1533,14 +1509,14 @@ integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== "@types/minimist@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.0.tgz#69a23a3ad29caf0097f06eda59b361ee2f0639f6" - integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY= + version "1.2.1" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.1.tgz#283f669ff76d7b8260df8ab7a4262cc83d988256" + integrity sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg== "@types/node@*": - version "14.11.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.11.2.tgz#2de1ed6670439387da1c9f549a2ade2b0a799256" - integrity sha512-jiE3QIxJ8JLNcb1Ps6rDbysDhN4xa8DJJvuC9prr6w+1tIh+QAbYyNF3tyiZNLDBIuBCf4KEcV2UvQm/V60xfA== + version "14.14.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.10.tgz#5958a82e41863cfc71f2307b3748e3491ba03785" + integrity sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -1553,9 +1529,9 @@ integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== "@types/prettier@^2.0.0": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.1.1.tgz#be148756d5480a84cde100324c03a86ae5739fb5" - integrity sha512-2zs+O+UkDsJ1Vcp667pd3f8xearMdopz/z54i99wtRDI5KLmngk7vlrYZD0ZjKHaROR03EznlBbVY9PfAEyJIQ== + version "2.1.5" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.1.5.tgz#b6ab3bba29e16b821d84e09ecfaded462b816b00" + integrity sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ== "@types/prop-types@*": version "15.7.3" @@ -1574,27 +1550,27 @@ dependencies: "@types/react" "*" -"@types/react-dom@^16.9.8": - version "16.9.8" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.8.tgz#fe4c1e11dfc67155733dfa6aa65108b4971cb423" - integrity sha512-ykkPQ+5nFknnlU6lDd947WbQ6TE3NNzbQAkInC2EKY1qeYdTKp7onFusmYZb+ityzx2YviqT6BXSu+LyWWJwcA== +"@types/react-dom@^16.9.10": + version "16.9.10" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.10.tgz#4485b0bec3d41f856181b717f45fd7831101156f" + integrity sha512-ItatOrnXDMAYpv6G8UCk2VhbYVTjZT9aorLtA/OzDN9XJ2GKcfam68jutoAcILdRjsRUO8qb7AmyObF77Q8QFw== dependencies: - "@types/react" "*" + "@types/react" "^16" -"@types/react-redux@^7.1.9": - version "7.1.9" - resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.9.tgz#280c13565c9f13ceb727ec21e767abe0e9b4aec3" - integrity sha512-mpC0jqxhP4mhmOl3P4ipRsgTgbNofMRXJb08Ms6gekViLj61v1hOZEKWDCyWsdONr6EjEA6ZHXC446wdywDe0w== +"@types/react-redux@^7.1.11": + version "7.1.11" + resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.11.tgz#a18e8ab3651e8e8cc94798934927937c66021217" + integrity sha512-OjaFlmqy0CRbYKBoaWF84dub3impqnLJUrz4u8PRjDzaa4n1A2cVmjMV81shwXyAD5x767efhA8STFGJz/r1Zg== dependencies: "@types/hoist-non-react-statics" "^3.3.0" "@types/react" "*" hoist-non-react-statics "^3.3.0" redux "^4.0.0" -"@types/react-router-dom@^5.1.5": - version "5.1.5" - resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.1.5.tgz#7c334a2ea785dbad2b2dcdd83d2cf3d9973da090" - integrity sha512-ArBM4B1g3BWLGbaGvwBGO75GNFbLDUthrDojV2vHLih/Tq8M+tgvY1DSwkuNrPSwdp/GUL93WSEpTZs8nVyJLw== +"@types/react-router-dom@^5.1.6": + version "5.1.6" + resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.1.6.tgz#07b14e7ab1893a837c8565634960dc398564b1fb" + integrity sha512-gjrxYqxz37zWEdMVvQtWPFMFj1dRDb4TGOcgyOfSXTrEXdF92L00WE3C471O3TV/RF1oskcStkXsOU0Ete4s/g== dependencies: "@types/history" "*" "@types/react" "*" @@ -1609,16 +1585,16 @@ "@types/react" "*" "@types/react-test-renderer@*": - version "16.9.3" - resolved "https://registry.yarnpkg.com/@types/react-test-renderer/-/react-test-renderer-16.9.3.tgz#96bab1860904366f4e848b739ba0e2f67bcae87e" - integrity sha512-wJ7IlN5NI82XMLOyHSa+cNN4Z0I+8/YaLl04uDgcZ+W+ExWCmCiVTLT/7fRNqzy4OhStZcUwIqLNF7q+AdW43Q== + version "17.0.0" + resolved "https://registry.yarnpkg.com/@types/react-test-renderer/-/react-test-renderer-17.0.0.tgz#9be47b375eeb906fced37049e67284a438d56620" + integrity sha512-nvw+F81OmyzpyIE1S0xWpLonLUZCMewslPuA8BtjSKc5XEbn8zEQBXS7KuOLHTNnSOEM2Pum50gHOoZ62tqTRg== dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^16.9.50": - version "16.9.50" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.50.tgz#cb5f2c22d42de33ca1f5efc6a0959feb784a3a2d" - integrity sha512-kPx5YsNnKDJejTk1P+lqThwxN2PczrocwsvqXnjvVvKpFescoY62ZiM3TV7dH1T8lFhlHZF+PE5xUyimUwqEGA== +"@types/react@*", "@types/react@^16", "@types/react@^16.14.2": + version "16.14.2" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.2.tgz#85dcc0947d0645349923c04ccef6018a1ab7538c" + integrity sha512-BzzcAlyDxXl2nANlabtT4thtvbbnhee8hMmH/CcJrISDBVcJS1iOsP1f0OAgSdGE0MsY9tqcrb9YoZcOFv9dbQ== dependencies: "@types/prop-types" "*" csstype "^3.0.2" @@ -1646,9 +1622,9 @@ integrity sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA== "@types/testing-library__jest-dom@^5.9.1": - version "5.9.4" - resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.9.4.tgz#f5e009540bbea7b82745e352038c60db7320c327" - integrity sha512-6spmpkKOCVCO9XolAR23gfv09Nfd4QByRM3WbnYnPhVfjmOzEKlNrcj6GqFLZKduUvtJIH7Mf5t2TY6rs93zDA== + version "5.9.5" + resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.9.5.tgz#5bf25c91ad2d7b38f264b12275e5c92a66d849b0" + integrity sha512-ggn3ws+yRbOHog9GxnXiEZ/35Mow6YtPZpd7Z5mKDeZS/o7zx3yAle0ov/wjhVB5QT4N2Dt+GNoGCdqkBGCajQ== dependencies: "@types/jest" "*" @@ -1660,13 +1636,13 @@ "@types/react-test-renderer" "*" "@types/uglify-js@*": - version "3.11.0" - resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.11.0.tgz#2868d405cc45cd9dc3069179052103032c33afbc" - integrity sha512-I0Yd8TUELTbgRHq2K65j8rnDPAzAP+DiaF/syLem7yXwYLsHZhPd+AM2iXsWmf9P2F2NlFCgl5erZPQx9IbM9Q== + version "3.11.1" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.11.1.tgz#97ff30e61a0aa6876c270b5f538737e2d6ab8ceb" + integrity sha512-7npvPKV+jINLu1SpSYVWG8KvyJBhBa8tmzMMdDoVc2pWUYHN8KIXlPJhjJ4LT97c4dXJA2SHL/q6ADbDriZN+Q== dependencies: source-map "^0.6.1" -"@types/unist@^2.0.0", "@types/unist@^2.0.2": +"@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== @@ -1677,18 +1653,18 @@ integrity sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ== "@types/webpack-sources@*": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-2.0.0.tgz#08216ab9be2be2e1499beaebc4d469cec81e82a7" - integrity sha512-a5kPx98CNFRKQ+wqawroFunvFqv7GHm/3KOI52NY9xWADgc8smu4R6prt4EU/M4QfVjvgBkMqU4fBhw3QfMVkg== + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-2.1.0.tgz#8882b0bd62d1e0ce62f183d0d01b72e6e82e8c10" + integrity sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg== dependencies: "@types/node" "*" "@types/source-list-map" "*" source-map "^0.7.3" "@types/webpack@^4.4.31", "@types/webpack@^4.41.8": - version "4.41.22" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.22.tgz#ff9758a17c6bd499e459b91e78539848c32d0731" - integrity sha512-JQDJK6pj8OMV9gWOnN1dcLCyU9Hzs6lux0wBO4lr1+gyEhIBR9U3FMrz12t2GPkg110XAxEAw2WHF6g7nZIbRQ== + version "4.41.25" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.25.tgz#4d3b5aecc4e44117b376280fbfd2dc36697968c4" + integrity sha512-cr6kZ+4m9lp86ytQc1jPOJXgINQyz3kLLunZ57jznW+WIAL0JqZbGubQk4GlD42MuQL5JGOABrxdpqqWeovlVQ== dependencies: "@types/anymatch" "*" "@types/node" "*" @@ -1703,67 +1679,67 @@ integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== "@types/yargs@^15.0.0": - version "15.0.7" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.7.tgz#dad50a7a234a35ef9460737a56024287a3de1d2b" - integrity sha512-Gf4u3EjaPNcC9cTu4/j2oN14nSVhr8PQ+BvBcBQHAhDZfl0bVIiLgvnRXv/dn58XhTm9UXvBpvJpDlwV65QxOA== + version "15.0.10" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.10.tgz#0fe3c8173a0d5c3e780b389050140c3f5ea6ea74" + integrity sha512-z8PNtlhrj7eJNLmrAivM7rjBESG6JwC5xP3RVk12i/8HVP7Xnx/sEmERnRImyEuUaJfO942X0qMOYsoupaJbZQ== dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^4.3.0": - version "4.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.3.0.tgz#1a23d904bf8ea248d09dc3761af530d90f39c8fa" - integrity sha512-RqEcaHuEKnn3oPFislZ6TNzsBLqpZjN93G69SS+laav/I8w/iGMuMq97P0D2/2/kW4SCebHggqhbcCfbDaaX+g== +"@typescript-eslint/eslint-plugin@^4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.9.0.tgz#8fde15743413661fdc086c9f1f5d74a80b856113" + integrity sha512-WrVzGMzzCrgrpnQMQm4Tnf+dk+wdl/YbgIgd5hKGa2P+lnJ2MON+nQnbwgbxtN9QDLi8HO+JAq0/krMnjQK6Cw== dependencies: - "@typescript-eslint/experimental-utils" "4.3.0" - "@typescript-eslint/scope-manager" "4.3.0" + "@typescript-eslint/experimental-utils" "4.9.0" + "@typescript-eslint/scope-manager" "4.9.0" debug "^4.1.1" functional-red-black-tree "^1.0.1" regexpp "^3.0.0" semver "^7.3.2" tsutils "^3.17.1" -"@typescript-eslint/experimental-utils@4.3.0", "@typescript-eslint/experimental-utils@^4.0.1": - version "4.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.3.0.tgz#3f3c6c508e01b8050d51b016e7f7da0e3aefcb87" - integrity sha512-cmmIK8shn3mxmhpKfzMMywqiEheyfXLV/+yPDnOTvQX/ztngx7Lg/OD26J8gTZfkLKUmaEBxO2jYP3keV7h2OQ== +"@typescript-eslint/experimental-utils@4.9.0", "@typescript-eslint/experimental-utils@^4.0.1": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.9.0.tgz#23a296b85d243afba24e75a43fd55aceda5141f0" + integrity sha512-0p8GnDWB3R2oGhmRXlEnCvYOtaBCijtA5uBfH5GxQKsukdSQyI4opC4NGTUb88CagsoNQ4rb/hId2JuMbzWKFQ== dependencies: "@types/json-schema" "^7.0.3" - "@typescript-eslint/scope-manager" "4.3.0" - "@typescript-eslint/types" "4.3.0" - "@typescript-eslint/typescript-estree" "4.3.0" + "@typescript-eslint/scope-manager" "4.9.0" + "@typescript-eslint/types" "4.9.0" + "@typescript-eslint/typescript-estree" "4.9.0" eslint-scope "^5.0.0" eslint-utils "^2.0.0" -"@typescript-eslint/parser@^4.3.0": - version "4.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.3.0.tgz#684fc0be6551a2bfcb253991eec3c786a8c063a3" - integrity sha512-JyfRnd72qRuUwItDZ00JNowsSlpQGeKfl9jxwO0FHK1qQ7FbYdoy5S7P+5wh1ISkT2QyAvr2pc9dAemDxzt75g== +"@typescript-eslint/parser@^4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.9.0.tgz#bb65f1214b5e221604996db53ef77c9d62b09249" + integrity sha512-QRSDAV8tGZoQye/ogp28ypb8qpsZPV6FOLD+tbN4ohKUWHD2n/u0Q2tIBnCsGwQCiD94RdtLkcqpdK4vKcLCCw== dependencies: - "@typescript-eslint/scope-manager" "4.3.0" - "@typescript-eslint/types" "4.3.0" - "@typescript-eslint/typescript-estree" "4.3.0" + "@typescript-eslint/scope-manager" "4.9.0" + "@typescript-eslint/types" "4.9.0" + "@typescript-eslint/typescript-estree" "4.9.0" debug "^4.1.1" -"@typescript-eslint/scope-manager@4.3.0": - version "4.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.3.0.tgz#c743227e087545968080d2362cfb1273842cb6a7" - integrity sha512-cTeyP5SCNE8QBRfc+Lgh4Xpzje46kNUhXYfc3pQWmJif92sjrFuHT9hH4rtOkDTo/si9Klw53yIr+djqGZS1ig== +"@typescript-eslint/scope-manager@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.9.0.tgz#5eefe305d6b71d1c85af6587b048426bfd4d3708" + integrity sha512-q/81jtmcDtMRE+nfFt5pWqO0R41k46gpVLnuefqVOXl4QV1GdQoBWfk5REcipoJNQH9+F5l+dwa9Li5fbALjzg== dependencies: - "@typescript-eslint/types" "4.3.0" - "@typescript-eslint/visitor-keys" "4.3.0" + "@typescript-eslint/types" "4.9.0" + "@typescript-eslint/visitor-keys" "4.9.0" -"@typescript-eslint/types@4.3.0": - version "4.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.3.0.tgz#1f0b2d5e140543e2614f06d48fb3ae95193c6ddf" - integrity sha512-Cx9TpRvlRjOppGsU6Y6KcJnUDOelja2NNCX6AZwtVHRzaJkdytJWMuYiqi8mS35MRNA3cJSwDzXePfmhU6TANw== +"@typescript-eslint/types@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.9.0.tgz#3fe8c3632abd07095c7458f7451bd14c85d0033c" + integrity sha512-luzLKmowfiM/IoJL/rus1K9iZpSJK6GlOS/1ezKplb7MkORt2dDcfi8g9B0bsF6JoRGhqn0D3Va55b+vredFHA== -"@typescript-eslint/typescript-estree@4.3.0": - version "4.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.3.0.tgz#0edc1068e6b2e4c7fdc54d61e329fce76241cee8" - integrity sha512-ZAI7xjkl+oFdLV/COEz2tAbQbR3XfgqHEGy0rlUXzfGQic6EBCR4s2+WS3cmTPG69aaZckEucBoTxW9PhzHxxw== +"@typescript-eslint/typescript-estree@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.9.0.tgz#38a98df6ee281cfd6164d6f9d91795b37d9e508c" + integrity sha512-rmDR++PGrIyQzAtt3pPcmKWLr7MA+u/Cmq9b/rON3//t5WofNR4m/Ybft2vOLj0WtUzjn018ekHjTsnIyBsQug== dependencies: - "@typescript-eslint/types" "4.3.0" - "@typescript-eslint/visitor-keys" "4.3.0" + "@typescript-eslint/types" "4.9.0" + "@typescript-eslint/visitor-keys" "4.9.0" debug "^4.1.1" globby "^11.0.1" is-glob "^4.0.1" @@ -1771,12 +1747,12 @@ semver "^7.3.2" tsutils "^3.17.1" -"@typescript-eslint/visitor-keys@4.3.0": - version "4.3.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.3.0.tgz#0e5ab0a09552903edeae205982e8521e17635ae0" - integrity sha512-xZxkuR7XLM6RhvLkgv9yYlTcBHnTULzfnw4i6+z2TGBLy9yljAypQaZl9c3zFvy7PNI7fYWyvKYtohyF8au3cw== +"@typescript-eslint/visitor-keys@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.9.0.tgz#f284e9fac43f2d6d35094ce137473ee321f266c8" + integrity sha512-sV45zfdRqQo1A97pOSx3fsjR+3blmwtdCt8LDrXgCX36v4Vmz4KHrhpV6Fo2cRdXmyumxx11AHw0pNJqCNpDyg== dependencies: - "@typescript-eslint/types" "4.3.0" + "@typescript-eslint/types" "4.9.0" eslint-visitor-keys "^2.0.0" "@webassemblyjs/ast@1.9.0": @@ -1924,6 +1900,18 @@ "@webassemblyjs/wast-parser" "1.9.0" "@xtuc/long" "4.2.2" +"@webpack-cli/info@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.1.0.tgz#c596d5bc48418b39df00c5ed7341bf0f102dbff1" + integrity sha512-uNWSdaYHc+f3LdIZNwhdhkjjLDDl3jP2+XBqAq9H8DjrJUvlOKdP8TNruy1yEaDfgpAIgbSAN7pye4FEHg9tYQ== + dependencies: + envinfo "^7.7.3" + +"@webpack-cli/serve@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.1.0.tgz#13ad38f89b6e53d1133bac0006a128217a6ebf92" + integrity sha512-7RfnMXCpJ/NThrhq4gYQYILB18xWyoQcBey81oIyVbmgbc6m5ZHHyFK+DyH7pLHJf0p14MxL4mTsoPAgBSTpIg== + "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -2069,10 +2057,10 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4: - version "6.12.5" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.5.tgz#19b0e8bae8f476e5ba666300387775fb1a00a4da" - integrity sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag== +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" @@ -2205,6 +2193,11 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +array-back@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.1.tgz#9b80312935a52062e1a233a9c7abeb5481b30e90" + integrity sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg== + array-find@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-find/-/array-find-1.0.0.tgz#6c8e286d11ed768327f8e62ecee87353ca3e78b8" @@ -2221,12 +2214,14 @@ array-flatten@^2.1.0: integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== array-includes@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" - integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== + version "3.1.2" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.2.tgz#a8db03e0b88c8c6aeddc49cb132f9bcab4ebf9c8" + integrity sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0" + es-abstract "^1.18.0-next.1" + get-intrinsic "^1.0.1" is-string "^1.0.5" array-union@^1.0.1: @@ -2252,20 +2247,22 @@ array-unique@^0.3.2: integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= array.prototype.flat@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" - integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" + integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.18.0-next.1" array.prototype.flatmap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz#1c13f84a178566042dd63de4414440db9222e443" - integrity sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg== + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9" + integrity sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.18.0-next.1" function-bind "^1.1.1" arrify@^1.0.1: @@ -2273,11 +2270,6 @@ arrify@^1.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= -asap@~2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= - asn1.js@^5.2.0: version "5.4.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" @@ -2350,13 +2342,13 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autoprefixer@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.0.1.tgz#e2d9000f84ebd98d77b7bc16f8adb2ff1f7bb946" - integrity sha512-aQo2BDIsoOdemXUAOBpFv4ZQa2DrOtEufarYhtFsK1088Ca0TUwu/aQWf0M3mrILXZ3mTIVn1lR3hPW8acacsw== +autoprefixer@^10.0.4: + version "10.0.4" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.0.4.tgz#f87ac6105d7861e31af794b8ebb1c6d4390d3d55" + integrity sha512-hmjYejN/WTyPP9cdNmiwtwqM8/ACVJPD5ExtwoOceQohNbgnFNiwpL2+U4bXS8aXozBL00WvH6WhqbuHf0Fgfg== dependencies: - browserslist "^4.14.5" - caniuse-lite "^1.0.30001137" + browserslist "^4.14.7" + caniuse-lite "^1.0.30001161" colorette "^1.2.1" normalize-range "^0.1.2" num2fraction "^1.2.2" @@ -2381,33 +2373,32 @@ aws-sign2@~0.7.0: integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: - version "1.10.1" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428" - integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA== + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== -babel-jest@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.5.0.tgz#afe11a083b4e584f63e9de29d2075cb96f42d2a4" - integrity sha512-Cy16ZJrds81C+JASaOIGNlpCeqW3PTOq36owv+Zzwde5NiWz+zNduwxUNF57vxc/3SnIWo8HHqTczhN8GLoXTw== +babel-jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" + integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== dependencies: - "@jest/transform" "^26.5.0" - "@jest/types" "^26.5.0" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" "@types/babel__core" "^7.1.7" babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^26.5.0" + babel-preset-jest "^26.6.2" chalk "^4.0.0" graceful-fs "^4.2.4" slash "^3.0.0" -babel-loader@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" - integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== +babel-loader@^8.2.2: + version "8.2.2" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" + integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g== dependencies: - find-cache-dir "^2.1.0" + find-cache-dir "^3.3.1" loader-utils "^1.4.0" - mkdirp "^0.5.3" - pify "^4.0.1" + make-dir "^3.1.0" schema-utils "^2.6.5" babel-plugin-dynamic-import-node@^2.3.3: @@ -2428,20 +2419,20 @@ babel-plugin-istanbul@^6.0.0: istanbul-lib-instrument "^4.0.0" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.5.0.tgz#3916b3a28129c29528de91e5784a44680db46385" - integrity sha512-ck17uZFD3CDfuwCLATWZxkkuGGFhMij8quP8CNhwj8ek1mqFgbFzRJ30xwC04LLscj/aKsVFfRST+b5PT7rSuw== +babel-plugin-jest-hoist@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" + integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" -babel-preset-current-node-syntax@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.4.tgz#826f1f8e7245ad534714ba001f84f7e906c3b615" - integrity sha512-5/INNCYhUGqw7VbVjT/hb3ucjgkVHKXY7lX3ZjlN4gm565VyFmJUrJ/h+h16ECVB38R/9SF6aACydpKMLZ/c9w== +babel-preset-current-node-syntax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz#cf5feef29551253471cfa82fc8e0f5063df07a77" + integrity sha512-mGkvkpocWJes1CmMKtgGUwCeeq0pOhALyymozzDWYomHTbDLwueDYG6p4TK1YOeYHCzBzYPsWkgTto10JubI1Q== dependencies: "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-bigint" "^7.8.3" @@ -2454,22 +2445,15 @@ babel-preset-current-node-syntax@^0.1.3: "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.5.0.tgz#f1b166045cd21437d1188d29f7fba470d5bdb0e7" - integrity sha512-F2vTluljhqkiGSJGBg/jOruA8vIIIL11YrxRcO7nviNTMbbofPSHwnm8mgP7d/wS7wRSexRoI6X1A6T74d4LQA== - dependencies: - babel-plugin-jest-hoist "^26.5.0" - babel-preset-current-node-syntax "^0.1.3" - -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= +babel-preset-jest@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" + integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" + babel-plugin-jest-hoist "^26.6.2" + babel-preset-current-node-syntax "^1.0.0" bail@^1.0.0: version "1.0.5" @@ -2482,9 +2466,9 @@ balanced-match@^1.0.0: integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== base@^0.11.1: version "0.11.2" @@ -2548,7 +2532,7 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== -bn.js@^5.1.1: +bn.js@^5.0.0, bn.js@^5.1.1: version "5.1.3" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== @@ -2659,11 +2643,11 @@ browserify-des@^1.0.0: safe-buffer "^5.1.2" browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== dependencies: - bn.js "^4.1.0" + bn.js "^5.0.0" randombytes "^2.0.1" browserify-sign@^4.0.0: @@ -2688,15 +2672,16 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.8.5: - version "4.14.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.5.tgz#1c751461a102ddc60e40993639b709be7f2c4015" - integrity sha512-Z+vsCZIvCBvqLoYkBFTwEYH3v5MCQbsAjp50ERycpOjnPmolg1Gjy4+KaWWpm8QOJt9GHkhdqAl14NpCX73CWA== +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.14.7: + version "4.15.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.15.0.tgz#3d48bbca6a3f378e86102ffd017d9a03f122bdb0" + integrity sha512-IJ1iysdMkGmjjYeRlDU8PQejVwxvVO5QOfXH7ylW31GO6LwNRSmm/SgRXtNsEXqMLl2e+2H5eEJ7sfynF8TCaQ== dependencies: - caniuse-lite "^1.0.30001135" - electron-to-chromium "^1.3.571" - escalade "^3.1.0" - node-releases "^1.1.61" + caniuse-lite "^1.0.30001164" + colorette "^1.2.1" + electron-to-chromium "^1.3.612" + escalade "^3.1.1" + node-releases "^1.1.67" bser@2.1.1: version "2.1.1" @@ -2795,6 +2780,14 @@ caching-transform@^4.0.0: package-hash "^4.0.0" write-file-atomic "^3.0.0" +call-bind@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.0.tgz#24127054bb3f9bdcb4b1fb82418186072f77b8ce" + integrity sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.0" + caller-callsite@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" @@ -2820,12 +2813,12 @@ callsites@^3.0.0: integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camel-case@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.1.tgz#1fc41c854f00e2f7d0139dfeba1542d6896fe547" - integrity sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q== + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== dependencies: - pascal-case "^3.1.1" - tslib "^1.10.0" + pascal-case "^3.1.2" + tslib "^2.0.3" camelcase-keys@^6.2.2: version "6.2.2" @@ -2841,10 +2834,10 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.0.0.tgz#5259f7c30e35e278f1bdc2a4d91230b37cad981e" - integrity sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w== +camelcase@^6.0.0, camelcase@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== caniuse-api@^3.0.0: version "3.0.0" @@ -2856,10 +2849,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.30001109, caniuse-lite@^1.0.30001135, caniuse-lite@^1.0.30001137: - version "1.0.30001143" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001143.tgz#560f2cfb9f313d1d7e52eb8dac0e4e36c8821c0d" - integrity sha512-p/PO5YbwmCpBJPxjOiKBvAlUPgF8dExhfEpnsH+ys4N/791WHrYrGg0cyHiAURl5hSbx5vIcjKmQAP6sHDYH3w== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001161, caniuse-lite@^1.0.30001164: + version "1.0.30001164" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001164.tgz#5bbfd64ca605d43132f13cc7fdabb17c3036bfdc" + integrity sha512-G+A/tkf4bu0dSp9+duNiXc7bGds35DioCyC6vgK2m/rjA4Krpy5WeZgZyfH2f0wj2kI6yAWWucyap6oOwmY1mg== capture-exit@^2.0.0: version "2.0.0" @@ -2873,11 +2866,6 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -ccount@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.5.tgz#ac82a944905a65ce204eb03023157edf29425c17" - integrity sha512-MOli1W+nfbPLlKEhInaxhRdp7KVLFxLN5ykwzHgLsLI3H3gs5jjFAK4Eoj3OzzcxCtumDaI8onoVDeQyWaNTkw== - chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -2908,11 +2896,6 @@ char-regex@^1.0.2: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== -character-entities-html4@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.4.tgz#0e64b0a3753ddbf1fdc044c5fd01d0199a02e125" - integrity sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g== - character-entities-legacy@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" @@ -2929,9 +2912,9 @@ character-reference-invalid@^1.0.0: integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== "chokidar@>=2.0.0 <4.0.0", chokidar@^3.4.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d" - integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A== + version "3.4.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b" + integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ== dependencies: anymatch "~3.1.1" braces "~3.0.2" @@ -2939,7 +2922,7 @@ character-reference-invalid@^1.0.0: is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.4.0" + readdirp "~3.5.0" optionalDependencies: fsevents "~2.1.2" @@ -2987,6 +2970,11 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" +cjs-module-lexer@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" + integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== + class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -3040,15 +3028,6 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" -cliui@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.1.tgz#a4cb67aad45cd83d8d05128fc9f4d8fbb887e6b3" - integrity sha512-rcvHOWyGyid6I1WjT/3NatKj2kDt9OdSHSXpyLXaMWFbKpGACNW8pRhhdPUq9MWUOdwn8Rz9AVETjF4105rZZQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - clone-buffer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" @@ -3103,11 +3082,6 @@ coa@^2.0.2: chalk "^2.4.1" q "^1.1.2" -collapse-white-space@^1.0.2: - version "1.0.6" - resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" - integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== - collect-v8-coverage@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" @@ -3145,21 +3119,21 @@ color-name@^1.0.0, color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.5.2: - version "1.5.3" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" - integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== +color-string@^1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz#dd51cd25cfee953d138fe4002372cc3d0e504cb6" + integrity sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw== dependencies: color-name "^1.0.0" simple-swizzle "^0.2.2" color@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" - integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== + version "3.1.3" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" + integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== dependencies: color-convert "^1.9.1" - color-string "^1.5.2" + color-string "^1.5.4" colorette@^1.2.1: version "1.2.1" @@ -3173,6 +3147,16 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" +command-line-usage@^6.1.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.1.tgz#c908e28686108917758a49f45efb4f02f76bc03f" + integrity sha512-F59pEuAR9o1SF/bD0dQBDluhpT4jJQNWUHEuVBqpDmCUo6gPjCi+m9fCWnWZVR/oG6cMTUms4h+3NPl74wGXvA== + dependencies: + array-back "^4.0.1" + chalk "^2.4.2" + table-layout "^1.0.1" + typical "^5.2.0" + commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -3188,6 +3172,11 @@ commander@^4.1.1: resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== +commander@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.0.tgz#b990bfb8ac030aedc6d11bc04d1488ffef56db75" + integrity sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q== + commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -3299,33 +3288,23 @@ 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.6.2: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" - integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng== +core-js-compat@^3.7.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.8.0.tgz#3248c6826f4006793bd637db608bca6e4cd688b1" + integrity sha512-o9QKelQSxQMYWHXc/Gc4L8bx/4F7TTraE5rhuN8I7mKBt5dBIUpXpIR3omv70ebr8ST5R3PqbDQr+ZI3+Tt1FQ== dependencies: - browserslist "^4.8.5" + browserslist "^4.14.7" semver "7.0.0" core-js-pure@^3.0.0: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813" - integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA== - -core-js@^1.0.0: - version "1.2.7" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" - integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= - -core-js@^2.4.0: - version "2.6.11" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" - integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== + version "3.8.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.8.0.tgz#4cdd2eca37d49cda206b66e26204818dba77884a" + integrity sha512-fRjhg3NeouotRoIV0L1FdchA6CK7ZD+lyINyMoz19SyV+ROpC4noS1xItWHFtwZdlqfMfVPJEyEGdfri2bD1pA== -core-js@^3.0.0, core-js@^3.6.5: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" - integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== +core-js@^3.0.0, core-js@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.8.0.tgz#0fc2d4941cadf80538b030648bb64d230b4da0ce" + integrity sha512-W2VYNB0nwQQE7tKS7HzXd7r2y/y2SVJl4ga6oH/dnaLFzM0o2lB2P3zCkWj5Wc/zyMYjtgd5Hmhk0ObkQFZOIA== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -3396,11 +3375,10 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: sha.js "^2.4.8" create-react-class@^15.6.2, create-react-class@^15.6.3: - version "15.6.3" - resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036" - integrity sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg== + version "15.7.0" + resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.7.0.tgz#7499d7ca2e69bb51d13faf59bd04f0c65a1d6c1e" + integrity sha512-QZv4sFWG9S5RUvkTYWbflxeZX+JG7Cz0Tn33rQBJ+WFQTqTfUTjMjiv9tnfXazjsO5r0KhPs+AqCjyrQX6h2ng== dependencies: - fbjs "^0.8.9" loose-envify "^1.3.1" object-assign "^4.1.1" @@ -3454,22 +3432,22 @@ css-declaration-sorter@^4.0.1: postcss "^7.0.1" timsort "^0.3.0" -css-loader@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.3.0.tgz#c888af64b2a5b2e85462c72c0f4a85c7e2e0821e" - integrity sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg== +css-loader@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.0.1.tgz#9e4de0d6636a6266a585bd0900b422c85539d25f" + integrity sha512-cXc2ti9V234cq7rJzFKhirb2L2iPy8ZjALeVJAozXYz9te3r4eqLSixNAbMDJSgJEQywqXzs8gonxaboeKqwiw== dependencies: - camelcase "^6.0.0" + camelcase "^6.2.0" cssesc "^3.0.0" - icss-utils "^4.1.1" + icss-utils "^5.0.0" loader-utils "^2.0.0" - postcss "^7.0.32" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^3.0.3" - postcss-modules-scope "^2.2.0" - postcss-modules-values "^3.0.0" + postcss "^8.1.4" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" postcss-value-parser "^4.1.0" - schema-utils "^2.7.1" + schema-utils "^3.0.0" semver "^7.3.2" css-select-base-adapter@^0.1.1: @@ -3505,12 +3483,12 @@ css-tree@1.0.0-alpha.37: mdn-data "2.0.4" source-map "^0.6.1" -css-tree@1.0.0-alpha.39: - version "1.0.0-alpha.39" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb" - integrity sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA== +css-tree@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.2.tgz#9ae393b5dafd7dae8a622475caec78d3d8fbd7b5" + integrity sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ== dependencies: - mdn-data "2.0.6" + mdn-data "2.0.14" source-map "^0.6.1" css-what@2.1: @@ -3519,9 +3497,9 @@ css-what@2.1: integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== css-what@^3.2.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.1.tgz#81cb70b609e4b1351b1e54cbc90fd9c54af86e2e" - integrity sha512-wHOppVDKl4vTAOWzJt5Ek37Sgd9qq1Bmj/T1OjvicWbU5W7ru7Pqbn0Jdqii3Drx/h+dixHKXNhZYx7blthL7g== + version "3.4.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" + integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== css.escape@^1.5.1: version "1.5.1" @@ -3611,11 +3589,11 @@ cssnano@^4.1.10: postcss "^7.0.0" csso@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.0.3.tgz#0d9985dc852c7cc2b2cacfbbe1079014d1a8e903" - integrity sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ== + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== dependencies: - css-tree "1.0.0-alpha.39" + css-tree "^1.1.2" cssom@^0.4.4: version "0.4.4" @@ -3635,9 +3613,9 @@ cssstyle@^2.2.0: cssom "~0.3.6" csstype@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.3.tgz#2b410bbeba38ba9633353aff34b05d9755d065f8" - integrity sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag== + version "3.0.5" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.5.tgz#7fdec6a28a67ae18647c51668a9ff95bb2fa7bb8" + integrity sha512-uVDi8LpBUKQj6sdxNaTetL6FpeCqTjOvAQuQUa/qAqq8oOd4ivkbhgnqayl0dnPal8Tb/yB1tF+gOvCBiicaiQ== cyclist@^1.0.1: version "1.0.1" @@ -3673,16 +3651,16 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: ms "2.0.0" debug@^3.1.1, debug@^3.2.5: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" - integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== +debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: ms "2.1.2" @@ -3726,6 +3704,11 @@ deep-equal@^1.0.1: object-keys "^1.1.1" regexp.prototype.flags "^1.2.0" +deep-extend@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" @@ -3831,15 +3814,10 @@ detect-node@^2.0.4: resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== -diff-sequences@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" - integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg== - -diff-sequences@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.5.0.tgz#ef766cf09d43ed40406611f11c6d8d9dd8b2fefd" - integrity sha512-ZXx86srb/iYy6jG71k++wBN9P9J05UNQ5hQHQd9MtMPvcqXPx/vKU69jfHV637D00Q2gSgPk2D+jSx3l1lDW/Q== +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== diffie-hellman@^5.0.0: version "5.0.3" @@ -3899,10 +3877,10 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-accessibility-api@^0.5.1: - version "0.5.3" - resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.3.tgz#0ea493c924d4070dfbf531c4aaca3d7a2c601aab" - integrity sha512-yfqzAi1GFxK6EoJIZKgxqJyK6j/OjEFEUi2qkNThD/kUhoCFSG1izq31B5xuxzbJBGw9/67uPtkPMYAzWL7L7Q== +dom-accessibility-api@^0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.4.tgz#b06d059cdd4a4ad9a79275f9d414a5c126241166" + integrity sha512-TvrjBckDy2c6v6RLxPv5QXOnU+SmF9nBII5621Ve5fu6Z/BDrENurBEvlC1f44lKEUVqOpK4w9E5Idc5/EgkLQ== dom-converter@^0.2: version "0.2.0" @@ -3930,9 +3908,9 @@ domelementtype@1, domelementtype@^1.3.1: integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== domelementtype@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.2.tgz#f3b6e549201e46f588b59463dd77187131fe6971" - integrity sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA== + version "2.1.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" + integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== domexception@^2.0.1: version "2.0.1" @@ -3964,13 +3942,13 @@ domutils@^1.5.1, domutils@^1.7.0: dom-serializer "0" domelementtype "1" -dot-case@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.3.tgz#21d3b52efaaba2ea5fda875bb1aa8124521cf4aa" - integrity sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA== +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== dependencies: - no-case "^3.0.3" - tslib "^1.10.0" + no-case "^3.0.4" + tslib "^2.0.3" dot-prop@^5.2.0: version "5.3.0" @@ -4010,10 +3988,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.571: - version "1.3.576" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.576.tgz#2e70234484e03d7c7e90310d7d79fd3775379c34" - integrity sha512-uSEI0XZ//5ic+0NdOqlxp0liCD44ck20OAGyLMSymIWTEAtHKVJi6JM18acOnRgUgX7Q65QqnI+sNncNvIy8ew== +electron-to-chromium@^1.3.612: + version "1.3.613" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.613.tgz#5ad7ec1e19d28c81edb6d61b9d4990d1c9716182" + integrity sha512-c3gkahddiUalk7HLhTC7PsKzPZmovYFtgh+g3rZJ+dGokk4n4dzEoOBnoV8VU8ptvnGJMhrjM/lyXKSltqf2hQ== elliptic@^6.5.3: version "6.5.3" @@ -4029,9 +4007,9 @@ elliptic@^6.5.3: minimalistic-crypto-utils "^1.0.0" emittery@^0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.1.tgz#c02375a927a40948c0345cc903072597f5270451" - integrity sha512-d34LN4L6h18Bzz9xpoku2nPwKxCPlPMr3EEKTkoEBi+1/+b0lcRkRJ1UVyyZaKNeqGR3swcGl6s390DNO4YVgQ== + version "0.7.2" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" + integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== emoji-regex@^7.0.1: version "7.0.3" @@ -4053,13 +4031,6 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -encoding@^0.1.11: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -4085,7 +4056,7 @@ enhanced-resolve@^4.1.1, enhanced-resolve@^4.3.0: memory-fs "^0.5.0" tapable "^1.0.0" -enquirer@^2.3.5: +enquirer@^2.3.5, enquirer@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== @@ -4103,9 +4074,14 @@ entities@^1.1.1: integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== entities@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" - integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== + version "2.1.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" + integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== + +envinfo@^7.7.3: + version "7.7.3" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.3.tgz#4b2d8622e3e7366afb8091b23ed95569ea0208cc" + integrity sha512-46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA== eol@^0.9.1: version "0.9.1" @@ -4131,7 +4107,7 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5: +es-abstract@^1.17.0-next.1, es-abstract@^1.17.2: version "1.17.7" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== @@ -4180,10 +4156,10 @@ es6-error@^4.0.1: resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== -escalade@^3.0.2, escalade@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.0.tgz#e8e2d7c7a8b76f6ee64c2181d6b8151441602d4e" - integrity sha512-mAk+hPSO8fLDkhV7V0dXazH5pDc6MrjBTPyD3VeKzxnVFjH1MIxbCdqGZB9O8+EwWakZs3ZCbDS4IpRt79V1ig== +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-html@~1.0.3: version "1.0.3" @@ -4212,10 +4188,10 @@ escodegen@^1.14.1: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@^6.12.0: - version "6.12.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.12.0.tgz#9eb2bccff727db1c52104f0b49e87ea46605a0d2" - integrity sha512-9jWPlFlgNwRUYVoujvWTQ1aMO8o6648r+K7qU7K5Jmkbyqav1fuEZC0COYpGBxyiAJb65Ra9hrmFx19xRGwXWw== +eslint-config-prettier@^6.15.0: + version "6.15.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz#7f93f6cb7d45a92f1537a70ecc06366e1ac6fed9" + integrity sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw== dependencies: get-stdin "^6.0.0" @@ -4281,10 +4257,10 @@ eslint-plugin-import@^2.22.1: resolve "^1.17.0" tsconfig-paths "^3.9.0" -eslint-plugin-jest@^24.0.2: - version "24.0.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.0.2.tgz#4bf0fcdc86289d702a7dacb430b4363482af773b" - integrity sha512-DSBLNpkKDOpUJQkTGSs5sVJWsu0nDyQ2rYxkr0Eh7nrkc5bMUr/dlDbtTj3l8y6UaCVsem6rryF1OZrKnz1S5g== +eslint-plugin-jest@^24.1.3: + version "24.1.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.1.3.tgz#fa3db864f06c5623ff43485ca6c0e8fc5fe8ba0c" + integrity sha512-dNGGjzuEzCE3d5EPZQ/QGtmlMotqnYWD/QpCZ1UuZlrMAdhG5rldh0N0haCvhGnUkSeuORS5VNROwF9Hrgn3Lg== dependencies: "@typescript-eslint/experimental-utils" "^4.0.1" @@ -4295,32 +4271,32 @@ eslint-plugin-prettier@^3.1.4: dependencies: prettier-linter-helpers "^1.0.0" -eslint-plugin-react-hooks@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.1.2.tgz#2eb53731d11c95826ef7a7272303eabb5c9a271e" - integrity sha512-ykUeqkGyUGgwTtk78C0o8UG2fzwmgJ0qxBGPp2WqRKsTwcLuVf01kTDRAtOsd4u6whX2XOC8749n2vPydP82fg== +eslint-plugin-react-hooks@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556" + integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ== -eslint-plugin-react@^7.21.3: - version "7.21.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.21.3.tgz#71655d2af5155b19285ec929dd2cdc67a4470b52" - integrity sha512-OI4GwTCqyIb4ipaOEGLWdaOHCXZZydStAsBEPB2e1ZfNM37bojpgO1BoOQbFb0eLVz3QLDx7b+6kYcrxCuJfhw== +eslint-plugin-react@^7.21.5: + version "7.21.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.21.5.tgz#50b21a412b9574bfe05b21db176e8b7b3b15bff3" + integrity sha512-8MaEggC2et0wSF6bUeywF7qQ46ER81irOdWS4QWxnnlAEsnzeBevk1sWh7fhpCghPpXb+8Ks7hvaft6L/xsR6g== dependencies: array-includes "^3.1.1" array.prototype.flatmap "^1.2.3" doctrine "^2.1.0" has "^1.0.3" - jsx-ast-utils "^2.4.1" + jsx-ast-utils "^2.4.1 || ^3.0.0" object.entries "^1.1.2" object.fromentries "^2.0.2" object.values "^1.1.1" prop-types "^15.7.2" - resolve "^1.17.0" + resolve "^1.18.1" string.prototype.matchall "^4.0.2" -eslint-plugin-simple-import-sort@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-5.0.3.tgz#9ae258ddada6efffc55e47a134afbd279eb31fc6" - integrity sha512-1rf3AWiHeWNCQdAq0iXNnlccnH1UDnelGgrPbjBBHE8d2hXVtOudcmy0vTF4hri3iJ0MKz8jBhmH6lJ0ZWZLHQ== +eslint-plugin-simple-import-sort@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-6.0.1.tgz#24a3af3b745dcd389c060db28e22d0f5e3edf86e" + integrity sha512-RfFnoi7fQtv7z9sZNJidIcZgWc0ZJe8uOPC3ldmatai4Igr5iDpzTmSUDEZKYm4TnrR01N0X32kfKvax7bivHQ== eslint-scope@^4.0.3: version "4.0.3" @@ -4355,13 +4331,13 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== -eslint@^7.10.0: - version "7.10.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.10.0.tgz#494edb3e4750fb791133ca379e786a8f648c72b9" - integrity sha512-BDVffmqWl7JJXqCjAK6lWtcQThZB/aP1HXSH1JKwGwv0LQEdvpR7qzNrUT487RM39B5goWuboFad5ovMBmD8yA== +eslint@^7.14.0: + version "7.14.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.14.0.tgz#2d2cac1d28174c510a97b377f122a5507958e344" + integrity sha512-5YubdnPXrlrYAFCKybPuHIAH++PINe1pmKNc5wQRB9HSbqIK1ywAnntE3Wwua4giKu0bjligf1gLF6qxMGOYRA== dependencies: "@babel/code-frame" "^7.0.0" - "@eslint/eslintrc" "^0.1.3" + "@eslint/eslintrc" "^0.2.1" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -4370,7 +4346,7 @@ eslint@^7.10.0: enquirer "^2.3.5" eslint-scope "^5.1.1" eslint-utils "^2.1.0" - eslint-visitor-keys "^1.3.0" + eslint-visitor-keys "^2.0.0" espree "^7.3.0" esquery "^1.2.0" esutils "^2.0.2" @@ -4489,10 +4465,10 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.3.tgz#0a34dabbad6d66100bd6f2c576c8669403f317f2" - integrity sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A== +execa@^4.0.0, execa@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== dependencies: cross-spawn "^7.0.0" get-stream "^5.0.0" @@ -4541,16 +4517,16 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-26.5.0.tgz#089c0cc4d6c545c7388ddefffa0f1e2e8e38d282" - integrity sha512-oIOy3mHWjnF5ZICuaui5kdtJZQ+D7XHWyUQDxk1WhIRCkcIYc24X23bOfikgCNU6i9wcSqLQhwPOqeRp09naxg== +expect@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" + integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== dependencies: - "@jest/types" "^26.5.0" + "@jest/types" "^26.6.2" ansi-styles "^4.0.0" jest-get-type "^26.3.0" - jest-matcher-utils "^26.5.0" - jest-message-util "^26.5.0" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" jest-regex-util "^26.0.0" express@^4.17.1: @@ -4676,9 +4652,9 @@ fastest-levenshtein@^1.0.12: integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== fastq@^1.6.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481" - integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q== + version "1.9.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.9.0.tgz#e16a72f338eaca48e91b5c23593bcc2ef66b7947" + integrity sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w== dependencies: reusify "^1.0.4" @@ -4703,25 +4679,13 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -fbjs@^0.8.9: - version "0.8.17" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" - integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90= - dependencies: - core-js "^1.0.0" - isomorphic-fetch "^2.1.1" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - setimmediate "^1.0.5" - ua-parser-js "^0.7.18" - -fetch-mock@^9.10.7: - version "9.10.7" - resolved "https://registry.yarnpkg.com/fetch-mock/-/fetch-mock-9.10.7.tgz#9673717af181e1ecb791cf32315c13580d4571ea" - integrity sha512-YkiMHSL8CQ0vlWYpqGvlaZjViFk0Kar9jonPjSvaWoztkeHH6DENqUzBIsffzjVKhwchPI74SZRLRpIsEyNcZQ== +fetch-mock@^9.11.0: + version "9.11.0" + resolved "https://registry.yarnpkg.com/fetch-mock/-/fetch-mock-9.11.0.tgz#371c6fb7d45584d2ae4a18ee6824e7ad4b637a3f" + integrity sha512-PG1XUv+x7iag5p/iNHD4/jdpxL9FtVSqRMUQhPab4hVDt80T1MH5ehzVrL2IdXO9Q2iBggArFvPqjUbHFuI58Q== dependencies: - babel-runtime "^6.26.0" + "@babel/core" "^7.0.0" + "@babel/runtime" "^7.0.0" core-js "^3.0.0" debug "^4.1.1" glob-to-regexp "^0.4.0" @@ -4743,13 +4707,20 @@ file-entry-cache@^5.0.1: dependencies: flat-cache "^2.0.1" -file-loader@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.1.0.tgz#65b9fcfb0ea7f65a234a1f10cdd7f1ab9a33f253" - integrity sha512-26qPdHyTsArQ6gU4P1HJbAbnFTyT2r0pG7czh1GFAd9TZbj0n94wWbupgixZH/ET/meqi2/5+F7DhW4OAXD+Lg== +file-entry-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.0.tgz#7921a89c391c6d93efec2169ac6bf300c527ea0a" + integrity sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA== + dependencies: + flat-cache "^3.0.4" + +file-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== dependencies: loader-utils "^2.0.0" - schema-utils "^2.7.1" + schema-utils "^3.0.0" file-uri-to-path@1.0.0: version "1.0.0" @@ -4795,7 +4766,7 @@ find-cache-dir@^2.1.0: make-dir "^2.0.0" pkg-dir "^3.0.0" -find-cache-dir@^3.2.0: +find-cache-dir@^3.2.0, find-cache-dir@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== @@ -4850,11 +4821,24 @@ flat-cache@^2.0.1: rimraf "2.6.3" write "1.0.3" +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + flatted@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== +flatted@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz#a5d06b4a8b01e3a63771daa5cb7a1903e2e57067" + integrity sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA== + flush-write-stream@^1.0.0, flush-write-stream@^1.0.2: version "1.1.1" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" @@ -4921,9 +4905,9 @@ from2@^2.1.0: readable-stream "^2.0.0" fromentries@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/fromentries/-/fromentries-1.2.1.tgz#64c31665630479bc993cd800d53387920dc61b4d" - integrity sha512-Xu2Qh8yqYuDhQGOhD5iJGninErSfI9A3FrriD3tjUgV5VbJFeH8vfgZ9HnC6jWN80QDVNQK5vmxRAmEAp7Mevw== + version "1.3.2" + resolved "https://registry.yarnpkg.com/fromentries/-/fromentries-1.3.2.tgz#e4bca6808816bf8f93b52750f1127f5a6fd86e3a" + integrity sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg== fs-mkdirp-stream@^1.0.0: version "1.0.0" @@ -4956,7 +4940,12 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fsevents@^2.1.2, fsevents@~2.1.2: +fsevents@^2.1.2: + version "2.2.1" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.2.1.tgz#1fb02ded2036a8ac288d507a65962bd87b97628d" + integrity sha512-bTLYHSeC0UH/EFXS9KqWnXuOl/wHK5Z/d+ghd5AsFMYN7wIGkUCOJyzy88+wJKkZPGON8u4Z9f6U4FdgURE9qA== + +fsevents@~2.1.2: version "2.1.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== @@ -4972,15 +4961,24 @@ functional-red-black-tree@^1.0.1: integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= gensync@^1.0.0-beta.1: - version "1.0.0-beta.1" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" - integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.1, get-caller-file@^2.0.5: +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-intrinsic@^1.0.0, get-intrinsic@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.1.tgz#94a9768fcbdd0595a1c9273aacf4c89d075631be" + integrity sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" @@ -5264,9 +5262,9 @@ hash.js@^1.0.0, hash.js@^1.0.3: minimalistic-assert "^1.0.1" hasha@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.1.tgz#0e5b492aa40de3819e80955f221d2fccef55b5aa" - integrity sha512-x15jnRSHTi3VmH+oHtVb9kgU/HuKOK8mjK8iCL3dPQXh4YJlUb9YSI8ZLiiqLAIvY2wuDIlZYZppy8vB2XISkQ== + version "5.2.2" + resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1" + integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ== dependencies: is-stream "^2.0.0" type-fest "^0.8.0" @@ -5302,7 +5300,7 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0: +hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== @@ -5321,6 +5319,13 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== +hosted-git-info@^3.0.6: + version "3.0.7" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.7.tgz#a30727385ea85acfcee94e0aad9e368c792e036c" + integrity sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ== + dependencies: + lru-cache "^6.0.0" + hpack.js@^2.1.6: version "2.1.6" resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" @@ -5502,10 +5507,10 @@ i18next-browser-languagedetector@^6.0.1: dependencies: "@babel/runtime" "^7.5.5" -i18next-scanner-webpack@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/i18next-scanner-webpack/-/i18next-scanner-webpack-0.5.1.tgz#a59ad615c45bba5f6fa56a8fd1072aa97090bbb5" - integrity sha512-gPnWnOeyByyEInh4AFACzuF6E+SgXRtbXRcv0z5XjmDvncJc4qte1vP0LFT7rkhXbMpYRz9urR5bNyujmH72vQ== +i18next-scanner-webpack@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/i18next-scanner-webpack/-/i18next-scanner-webpack-0.6.0.tgz#8b14b3bcab080585dc3c373dbb2db50a5f47bdb8" + integrity sha512-BjDNS82Nfl7jllBn8cpApRwRcVwIiIzK/Wt+l2njBmYpVqoefC6hDN4twRIhIrz5ou3Hs1sD8LzDY4HXAnz10g== dependencies: i18next-scanner "^2.11.0" vinyl-fs "^3.0.3" @@ -5543,12 +5548,12 @@ i18next-xhr-backend@^3.2.2: dependencies: "@babel/runtime" "^7.5.5" -i18next@*, i18next@^19.8.1: - version "19.8.1" - resolved "https://registry.yarnpkg.com/i18next/-/i18next-19.8.1.tgz#25a5cd3a96d7f7174096e94a042eb4179643358f" - integrity sha512-uDOyiSExuqIOoF1G5hzgyaPkds5RgOlLmklw/wR7vlsbmQ8lBuzjoV2qiL2H0jMp+xkdrHHjt0w00H0fuHpVWw== +i18next@*, i18next@^19.8.4: + version "19.8.4" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-19.8.4.tgz#447718f2a26319b8debdbcc6fbc1a9761be7316b" + integrity sha512-FfVPNWv+felJObeZ6DSXZkj9QM1Ivvh7NcFCgA8XPtJWHz0iXVa9BUy+QY8EPrCLE+vWgDfV/sc96BgXVo6HAA== dependencies: - "@babel/runtime" "^7.10.1" + "@babel/runtime" "^7.12.0" iconv-lite@0.4.24: version "0.4.24" @@ -5557,24 +5562,15 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" - integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -icss-utils@^4.0.0, icss-utils@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" - integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== - dependencies: - postcss "^7.0.14" +icss-utils@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== iferr@^0.1.5: version "0.1.5" @@ -5600,9 +5596,9 @@ import-fresh@^2.0.0: resolve-from "^3.0.0" import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" - integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== + version "3.2.2" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.2.tgz#fc129c160c5d68235507f4331a6baad186bdbc3e" + integrity sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" @@ -5656,7 +5652,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -5698,7 +5694,12 @@ interpret@^1.2.0, interpret@^1.4.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== -invariant@^2.2.2, invariant@^2.2.4: +interpret@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" + integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== + +invariant@^2.2.2: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== @@ -5757,11 +5758,6 @@ is-alphabetical@^1.0.0: resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== -is-alphanumeric@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz#4a9cef71daf4c001c1d81d63d140cf53fd6889f4" - integrity sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ= - is-alphanumerical@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" @@ -5805,9 +5801,9 @@ is-buffer@^1.1.5: integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-buffer@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" - integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== is-callable@^1.1.4, is-callable@^1.2.2: version "1.2.2" @@ -5833,6 +5829,13 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" +is-core-module@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -5852,7 +5855,7 @@ is-date-object@^1.0.1: resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== -is-decimal@^1.0.0, is-decimal@^1.0.2: +is-decimal@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== @@ -5982,7 +5985,7 @@ is-path-inside@^2.1.0: dependencies: path-is-inside "^1.0.2" -is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: +is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= @@ -6028,7 +6031,7 @@ is-resolvable@^1.0.0: resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== -is-stream@^1.0.1, is-stream@^1.1.0: +is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -6084,21 +6087,11 @@ is-valid-glob@^1.0.0: resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= -is-whitespace-character@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" - integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== - is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== -is-word-character@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230" - integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== - is-wsl@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" @@ -6138,14 +6131,6 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -isomorphic-fetch@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" - integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk= - dependencies: - node-fetch "^1.0.1" - whatwg-fetch ">=0.10.0" - isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" @@ -6212,77 +6197,67 @@ istanbul-reports@^3.0.2: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.5.0.tgz#181b901368decb4fc21d3cace9b4c4819232b667" - integrity sha512-RAHoXqxa7gO1rZz88qpsLpzJ2mQU12UaFWadacKHuMbBZwFK+yl0j9YoD9Y/wBpv1ILG2SdCuxFHggX+9VU7qA== +jest-changed-files@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" + integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== dependencies: - "@jest/types" "^26.5.0" + "@jest/types" "^26.6.2" execa "^4.0.0" throat "^5.0.0" -jest-cli@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.5.0.tgz#4404fb5cbdfb250946160374d5e3fc9655f9b57f" - integrity sha512-bI0h6GQGbyN0SSZu3nPilwrkrZ8dBC93erwTiEoJ+kGjtNuXsB183hTZ0HCiHLzf88oE0SQB1hYp8RgyytH+Bg== +jest-cli@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" + integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== dependencies: - "@jest/core" "^26.5.0" - "@jest/test-result" "^26.5.0" - "@jest/types" "^26.5.0" + "@jest/core" "^26.6.3" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.4" import-local "^3.0.2" is-ci "^2.0.0" - jest-config "^26.5.0" - jest-util "^26.5.0" - jest-validate "^26.5.0" + jest-config "^26.6.3" + jest-util "^26.6.2" + jest-validate "^26.6.2" prompts "^2.0.1" - yargs "^16.0.3" + yargs "^15.4.1" -jest-config@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.5.0.tgz#3959e47223496e2ae2605e073578a359cab99445" - integrity sha512-OM6eXIEmQXAuonCk8aNPMRjPFcKWa3IIoSlq5BPgIflmQBzM/COcI7XsWSIEPWPa9WcYTJBWj8kNqEYjczmIFw== +jest-config@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" + integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^26.5.0" - "@jest/types" "^26.5.0" - babel-jest "^26.5.0" + "@jest/test-sequencer" "^26.6.3" + "@jest/types" "^26.6.2" + babel-jest "^26.6.3" chalk "^4.0.0" deepmerge "^4.2.2" glob "^7.1.1" graceful-fs "^4.2.4" - jest-environment-jsdom "^26.5.0" - jest-environment-node "^26.5.0" + jest-environment-jsdom "^26.6.2" + jest-environment-node "^26.6.2" jest-get-type "^26.3.0" - jest-jasmine2 "^26.5.0" + jest-jasmine2 "^26.6.3" jest-regex-util "^26.0.0" - jest-resolve "^26.5.0" - jest-util "^26.5.0" - jest-validate "^26.5.0" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" micromatch "^4.0.2" - pretty-format "^26.5.0" + pretty-format "^26.6.2" -jest-diff@^25.2.1: - version "25.5.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.5.0.tgz#1dd26ed64f96667c068cef026b677dfa01afcfa9" - integrity sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A== - dependencies: - chalk "^3.0.0" - diff-sequences "^25.2.6" - jest-get-type "^25.2.6" - pretty-format "^25.5.0" - -jest-diff@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.5.0.tgz#bd01cef2d00b2668a0207ef47ab8eb1e33613253" - integrity sha512-CmDMMPkVMxrrh0Dv/4M9kh1tsYsZnYTQMMTvIFpePBSk9wMVfcyfg30TCq+oR9AzGbw8vsI50Gk1HmlMMlhoJg== +jest-diff@^26.0.0, jest-diff@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== dependencies: chalk "^4.0.0" - diff-sequences "^26.5.0" + diff-sequences "^26.6.2" jest-get-type "^26.3.0" - pretty-format "^26.5.0" + pretty-format "^26.6.2" jest-docblock@^26.0.0: version "26.0.0" @@ -6291,95 +6266,90 @@ jest-docblock@^26.0.0: dependencies: detect-newline "^3.0.0" -jest-each@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.5.0.tgz#39197a9d1abdd32ff5b8a9931507ab117c551c02" - integrity sha512-+oO3ykDgypHSyyK2xOsh8XDUwMtg3HoJ4wMNFNHxhcACFbUgaCOfLy+eTCn5pIKhtigU3BmkYt7k3MtTb5pJOQ== +jest-each@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" + integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== dependencies: - "@jest/types" "^26.5.0" + "@jest/types" "^26.6.2" chalk "^4.0.0" jest-get-type "^26.3.0" - jest-util "^26.5.0" - pretty-format "^26.5.0" + jest-util "^26.6.2" + pretty-format "^26.6.2" -jest-environment-jsdom@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.5.0.tgz#f9a6726402fde787632a69df5ff3390ab04337a3" - integrity sha512-Xuqh3bx8egymaJR566ECkiztIIVOIWWPGIxo++ziWyCOqQChUguRCH1hRXBbfINPbb/SRFe7GCD+SunaUgTmCw== +jest-environment-jsdom@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" + integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== dependencies: - "@jest/environment" "^26.5.0" - "@jest/fake-timers" "^26.5.0" - "@jest/types" "^26.5.0" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" "@types/node" "*" - jest-mock "^26.5.0" - jest-util "^26.5.0" + jest-mock "^26.6.2" + jest-util "^26.6.2" jsdom "^16.4.0" -jest-environment-node@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.5.0.tgz#3f49ba40abe87209df96f7991015cac996e04563" - integrity sha512-LaYl/ek5mb1VDP1/+jMH2N1Ec4fFUhSYmc8EZqigBgMov/2US8U5l7D3IlOf78e+wARUxPxUpTcybVVzAOu3jg== +jest-environment-node@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" + integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== dependencies: - "@jest/environment" "^26.5.0" - "@jest/fake-timers" "^26.5.0" - "@jest/types" "^26.5.0" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" "@types/node" "*" - jest-mock "^26.5.0" - jest-util "^26.5.0" - -jest-get-type@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" - integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig== + jest-mock "^26.6.2" + jest-util "^26.6.2" jest-get-type@^26.3.0: version "26.3.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== -jest-haste-map@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.5.0.tgz#ba4c48dbf69e0529709bd0d76660d87eefce820a" - integrity sha512-AjB1b53uqN7Cf2VN80x0wJajVZ+BMZC+G2CmWoG143faaMw7IhIcs3FTPuSgOx7cn3/bag7lgCq93naAvLO6EQ== +jest-haste-map@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" + integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== dependencies: - "@jest/types" "^26.5.0" + "@jest/types" "^26.6.2" "@types/graceful-fs" "^4.1.2" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.4" jest-regex-util "^26.0.0" - jest-serializer "^26.5.0" - jest-util "^26.5.0" - jest-worker "^26.5.0" + jest-serializer "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" micromatch "^4.0.2" sane "^4.0.3" walker "^1.0.7" optionalDependencies: fsevents "^2.1.2" -jest-jasmine2@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.5.0.tgz#49d57db63f49a183813263b41e61e2a5f988e6a3" - integrity sha512-NOA6PLORHTRTROOp5VysKCUVpFAjMMXUS1Xw7FvTMeYK5Ewx4rpxhFqiJ7JT4pENap9g9OuXo4cWR/MwCDTEeQ== +jest-jasmine2@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" + integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^26.5.0" - "@jest/source-map" "^26.5.0" - "@jest/test-result" "^26.5.0" - "@jest/types" "^26.5.0" + "@jest/environment" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - expect "^26.5.0" + expect "^26.6.2" is-generator-fn "^2.0.0" - jest-each "^26.5.0" - jest-matcher-utils "^26.5.0" - jest-message-util "^26.5.0" - jest-runtime "^26.5.0" - jest-snapshot "^26.5.0" - jest-util "^26.5.0" - pretty-format "^26.5.0" + jest-each "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + pretty-format "^26.6.2" throat "^5.0.0" jest-junit@^12.0.0: @@ -6392,44 +6362,45 @@ jest-junit@^12.0.0: uuid "^3.3.3" xml "^1.0.1" -jest-leak-detector@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.5.0.tgz#a5671ffbc6308e45ad31b42cb2ef0722488a4e57" - integrity sha512-xZHvvTBbj3gUTtunLjPqP594BT6IUEpwA0AQpEQjVR8eBq8+R3qgU/KhoAcVcV0iqRM6pXtX7hKPZ5mLdynVSQ== +jest-leak-detector@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" + integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== dependencies: jest-get-type "^26.3.0" - pretty-format "^26.5.0" + pretty-format "^26.6.2" -jest-matcher-utils@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.5.0.tgz#1195d6a35c4c710ad286b775b966f3fdb7a2102d" - integrity sha512-QgbbxqFT8wiTi4o/7MWj2vHlcmMjACG8vnJ9pJ7svVDmkzEnTUGdHXWLKB1aZhbnyXetMNRF+TSMcDS9aGfuzA== +jest-matcher-utils@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" + integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== dependencies: chalk "^4.0.0" - jest-diff "^26.5.0" + jest-diff "^26.6.2" jest-get-type "^26.3.0" - pretty-format "^26.5.0" + pretty-format "^26.6.2" -jest-message-util@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.5.0.tgz#87f8c440dace55095d247442638c70b892836895" - integrity sha512-UEOqdoTfX0AFyReL4q5N3CfDBWt+AtQzeszZuuGapU39vwEk90rTSBghCA/3FFEZzvGfH2LE4+0NaBI81Cu2Ow== +jest-message-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" + integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== dependencies: "@babel/code-frame" "^7.0.0" - "@jest/types" "^26.5.0" + "@jest/types" "^26.6.2" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.4" micromatch "^4.0.2" + pretty-format "^26.6.2" slash "^3.0.0" stack-utils "^2.0.2" -jest-mock@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.5.0.tgz#56efcea2dfd550b77ceb5ef280cf8c6114ef32db" - integrity sha512-8D1UmbnmjdkvTdYygTW26KZr95Aw0/3gEmMZQWkxIEAgEESVDbwDG8ygRlXSY214x9hFjtKezvfQUp36Ogl75w== +jest-mock@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" + integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== dependencies: - "@jest/types" "^26.5.0" + "@jest/types" "^26.6.2" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -6442,171 +6413,172 @@ jest-regex-util@^26.0.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== -jest-resolve-dependencies@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.5.0.tgz#6c4a863685e6c63b225e903c6006a70fb8ecac0a" - integrity sha512-2e3YdS+dlTY00s0CEiMAa7Ap/mPfPaQV7d6Fzp7BQqHXO/2QhXn/yVTxnxR+dOIo/NOh7pqXZTQSn+2iWwPQQA== +jest-resolve-dependencies@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" + integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== dependencies: - "@jest/types" "^26.5.0" + "@jest/types" "^26.6.2" jest-regex-util "^26.0.0" - jest-snapshot "^26.5.0" + jest-snapshot "^26.6.2" -jest-resolve@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.5.0.tgz#31f68344dd88af70f00bc8bb531de6687565c680" - integrity sha512-c34L8Lrw4fFzRiCLzwePziKRfHitjsAnY15ID0e9Se4ISikmZ5T9icLEFAGHnfaxfb+9r8EKdrbg89gjRdrQvw== +jest-resolve@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" + integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== dependencies: - "@jest/types" "^26.5.0" + "@jest/types" "^26.6.2" chalk "^4.0.0" - escalade "^3.1.0" graceful-fs "^4.2.4" jest-pnp-resolver "^1.2.2" - jest-util "^26.5.0" - resolve "^1.17.0" + jest-util "^26.6.2" + read-pkg-up "^7.0.1" + resolve "^1.18.1" slash "^3.0.0" -jest-runner@^26.5.0: - version "26.5.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.5.1.tgz#a56c1e1fbed7470ae69ebd5456ba4d4443c8701f" - integrity sha512-gFHXehvMZD8qwNzaIl2MDFFI99m4kKk06H2xh2u4IkC+tHYIJjE5J175l9cbL3RuU2slfS2m57KZgcPZfbTavQ== +jest-runner@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" + integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== dependencies: - "@jest/console" "^26.5.0" - "@jest/environment" "^26.5.0" - "@jest/test-result" "^26.5.0" - "@jest/types" "^26.5.0" + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" "@types/node" "*" chalk "^4.0.0" emittery "^0.7.1" exit "^0.1.2" graceful-fs "^4.2.4" - jest-config "^26.5.0" + jest-config "^26.6.3" jest-docblock "^26.0.0" - jest-haste-map "^26.5.0" - jest-leak-detector "^26.5.0" - jest-message-util "^26.5.0" - jest-resolve "^26.5.0" - jest-runtime "^26.5.0" - jest-util "^26.5.0" - jest-worker "^26.5.0" + jest-haste-map "^26.6.2" + jest-leak-detector "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + jest-runtime "^26.6.3" + jest-util "^26.6.2" + jest-worker "^26.6.2" source-map-support "^0.5.6" throat "^5.0.0" -jest-runtime@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.5.0.tgz#c9b3eeb5ead70710ea17f6058df405cac31bb926" - integrity sha512-CujjQWpMcsvSg0L+G3iEz6s7Th5IbiZseAaw/5R7Eb+IfnJdyPdjJ+EoXNV8n07snvW5nZTwV9QIfy6Vjris8A== - dependencies: - "@jest/console" "^26.5.0" - "@jest/environment" "^26.5.0" - "@jest/fake-timers" "^26.5.0" - "@jest/globals" "^26.5.0" - "@jest/source-map" "^26.5.0" - "@jest/test-result" "^26.5.0" - "@jest/transform" "^26.5.0" - "@jest/types" "^26.5.0" +jest-runtime@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" + integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/globals" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" "@types/yargs" "^15.0.0" chalk "^4.0.0" + cjs-module-lexer "^0.6.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.2.4" - jest-config "^26.5.0" - jest-haste-map "^26.5.0" - jest-message-util "^26.5.0" - jest-mock "^26.5.0" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" jest-regex-util "^26.0.0" - jest-resolve "^26.5.0" - jest-snapshot "^26.5.0" - jest-util "^26.5.0" - jest-validate "^26.5.0" + jest-resolve "^26.6.2" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" slash "^3.0.0" strip-bom "^4.0.0" - yargs "^16.0.3" + yargs "^15.4.1" -jest-serializer@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.5.0.tgz#f5425cc4c5f6b4b355f854b5f0f23ec6b962bc13" - integrity sha512-+h3Gf5CDRlSLdgTv7y0vPIAoLgX/SI7T4v6hy+TEXMgYbv+ztzbg5PSN6mUXAT/hXYHvZRWm+MaObVfqkhCGxA== +jest-serializer@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" + integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== dependencies: "@types/node" "*" graceful-fs "^4.2.4" -jest-snapshot@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.5.0.tgz#2b76366e2d621775f39733e5764492b2e44b0bcd" - integrity sha512-WTNJef67o7cCvwAe5foVCNqG3MzIW/CyU4FZvMrhBPZsJeXwfBY7kfOlydZigxtcytnvmNE2pqznOfD5EcQgrQ== +jest-snapshot@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" + integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== dependencies: "@babel/types" "^7.0.0" - "@jest/types" "^26.5.0" + "@jest/types" "^26.6.2" "@types/babel__traverse" "^7.0.4" "@types/prettier" "^2.0.0" chalk "^4.0.0" - expect "^26.5.0" + expect "^26.6.2" graceful-fs "^4.2.4" - jest-diff "^26.5.0" + jest-diff "^26.6.2" jest-get-type "^26.3.0" - jest-haste-map "^26.5.0" - jest-matcher-utils "^26.5.0" - jest-message-util "^26.5.0" - jest-resolve "^26.5.0" + jest-haste-map "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" natural-compare "^1.4.0" - pretty-format "^26.5.0" + pretty-format "^26.6.2" semver "^7.3.2" -jest-util@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.5.0.tgz#f4e0fb80cf82db127d68c7c5b2749a427a80b450" - integrity sha512-CSQ0uzE7JdHDCQo3K8jlyWRIF2xNLdpu9nbjo8okGDanaNsF7WonhusFvjOg7QiWn1SThe7wFRh8Jx2ls1Gx4Q== +jest-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" + integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== dependencies: - "@jest/types" "^26.5.0" + "@jest/types" "^26.6.2" "@types/node" "*" chalk "^4.0.0" graceful-fs "^4.2.4" is-ci "^2.0.0" micromatch "^4.0.2" -jest-validate@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.5.0.tgz#6e417ec5066e315752da1350797a89fc5907f97a" - integrity sha512-603+CHUJD4nAZ+tY/A+wu3g8KEcBey2a7YOMU9W8e4u7mCezhaDasw20ITaZHoR2R2MZhThL6jApPSj0GvezrQ== +jest-validate@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" + integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== dependencies: - "@jest/types" "^26.5.0" + "@jest/types" "^26.6.2" camelcase "^6.0.0" chalk "^4.0.0" jest-get-type "^26.3.0" leven "^3.1.0" - pretty-format "^26.5.0" + pretty-format "^26.6.2" -jest-watcher@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.5.0.tgz#3aedd339ee3dfb5801e71ae9a00da08369679317" - integrity sha512-INLKhpc9QbO5zy2HkS1CJUncByrCLFDZQOY30d9ojiuGO02ofL1BygDRDRtFvT/oWSZ8Y0fbkrr1oXU2ay/MqA== +jest-watcher@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" + integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== dependencies: - "@jest/test-result" "^26.5.0" - "@jest/types" "^26.5.0" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - jest-util "^26.5.0" + jest-util "^26.6.2" string-length "^4.0.1" -jest-worker@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.5.0.tgz#87deee86dbbc5f98d9919e0dadf2c40e3152fa30" - integrity sha512-kTw66Dn4ZX7WpjZ7T/SUDgRhapFRKWmisVAF0Rv4Fu8SLFD7eLbqpLvbxVqYhSgaWa7I+bW7pHnbyfNsH6stug== +jest-worker@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^7.0.0" -jest@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-26.5.0.tgz#d973c13a3843587b89b02dab1fbcd1f3bf111f09" - integrity sha512-yW1QTkdpxVWTV2M5cOwVdEww8dRGqL5bb7FOG3YQoMtf7oReCEawmU0+tOKkZUSfcOymbXmCfdBQLzuwOLCx0w== +jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" + integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== dependencies: - "@jest/core" "^26.5.0" + "@jest/core" "^26.6.3" import-local "^3.0.2" - jest-cli "^26.5.0" + jest-cli "^26.6.3" js-cookie@^2.2.1: version "2.2.1" @@ -6739,13 +6711,13 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" -jsx-ast-utils@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz#1114a4c1209481db06c690c2b4f488cc665f657e" - integrity sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w== +"jsx-ast-utils@^2.4.1 || ^3.0.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.1.0.tgz#642f1d7b88aa6d7eb9d8f2210e166478444fa891" + integrity sha512-d4/UOjg+mxAWxCiF0c5UTSwyqbchkbqCvK87aBovhnh8GtysTjWmgC63tY0cJx/HzGgm9qnA147jVBdpOiQ2RA== dependencies: array-includes "^3.1.1" - object.assign "^4.1.0" + object.assign "^4.1.1" killable@^1.0.1: version "1.0.1" @@ -6781,15 +6753,15 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -klona@^2.0.3, klona@^2.0.4: +klona@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== -known-css-properties@^0.19.0: - version "0.19.0" - resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.19.0.tgz#5d92b7fa16c72d971bda9b7fe295bdf61836ee5b" - integrity sha512-eYboRV94Vco725nKMlpkn3nV2+96p9c3gKXRsYqAJSswSENvBhN7n5L+uDhY58xQa0UukWsDMTGELzmD8Q+wTA== +known-css-properties@^0.20.0: + version "0.20.0" + resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.20.0.tgz#0570831661b47dd835293218381166090ff60e96" + integrity sha512-URvsjaA9ypfreqJ2/ylDr5MUERhJZ+DhguoWRr2xgS5C7aGCalXo+ewL+GixgKBfhT2vuL02nbIgNGqVWgTOYw== last-call-webpack-plugin@^3.0.0: version "3.0.0" @@ -6823,13 +6795,6 @@ leven@^3.1.0: resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== -levenary@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" - integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== - dependencies: - leven "^3.1.0" - levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -6846,14 +6811,6 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -line-column@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/line-column/-/line-column-1.0.2.tgz#d25af2936b6f4849172b312e4792d1d987bc34a2" - integrity sha1-0lryk2tvSEkXKzEuR5LR2Ye8NKI= - dependencies: - isarray "^1.0.0" - isobject "^2.0.0" - lines-and-columns@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" @@ -7008,11 +6965,11 @@ log-symbols@^4.0.0: chalk "^4.0.0" loglevel@^1.6.8: - version "1.7.0" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.0.tgz#728166855a740d59d38db01cf46f042caa041bb0" - integrity sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ== + version "1.7.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" + integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== -longest-streak@^2.0.1: +longest-streak@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg== @@ -7024,12 +6981,12 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3 dependencies: js-tokens "^3.0.0 || ^4.0.0" -lower-case@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.1.tgz#39eeb36e396115cc05e29422eaea9e692c9408c7" - integrity sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ== +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== dependencies: - tslib "^1.10.0" + tslib "^2.0.3" lru-cache@^5.1.1: version "5.1.1" @@ -7038,6 +6995,18 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lz-string@^1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" + integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= + make-dir@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -7046,7 +7015,7 @@ make-dir@^2.0.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.0, make-dir@^3.0.2: +make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== @@ -7077,22 +7046,10 @@ map-obj@^4.0.0: map-visit@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -markdown-escapes@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" - integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== - -markdown-table@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-2.0.0.tgz#194a90ced26d31fe753d8b9434430214c011865b" - integrity sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A== + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= dependencies: - repeat-string "^1.0.0" + object-visit "^1.0.0" mathml-tag-names@^2.1.3: version "2.1.3" @@ -7108,23 +7065,48 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" -mdast-util-compact@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz#cabc69a2f43103628326f35b1acf735d55c99490" - integrity sha512-7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA== +mdast-util-from-markdown@^0.8.0: + version "0.8.1" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.1.tgz#781371d493cac11212947226190270c15dc97116" + integrity sha512-qJXNcFcuCSPqUF0Tb0uYcFDIq67qwB3sxo9RPdf9vG8T90ViKnksFqdB/Coq2a7sTnxL/Ify2y7aIQXDkQFH0w== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-string "^1.0.0" + micromark "~2.10.0" + parse-entities "^2.0.0" + +mdast-util-to-markdown@^0.5.0: + version "0.5.4" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.5.4.tgz#be680ed0c0e11a07d07c7adff9551eec09c1b0f9" + integrity sha512-0jQTkbWYx0HdEA/h++7faebJWr5JyBoBeiRf0u3F4F3QtnyyGaWIsOwo749kRb1ttKrLLr+wRtOkfou9yB0p6A== dependencies: - unist-util-visit "^2.0.0" + "@types/unist" "^2.0.0" + longest-streak "^2.0.0" + mdast-util-to-string "^2.0.0" + parse-entities "^2.0.0" + repeat-string "^1.0.0" + zwitch "^1.0.0" + +mdast-util-to-string@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz#27055500103f51637bd07d01da01eb1967a43527" + integrity sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A== + +mdast-util-to-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" + integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== mdn-data@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== -mdn-data@2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978" - integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA== - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -7156,22 +7138,22 @@ memorystream@^0.3.1: resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI= -meow@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/meow/-/meow-7.1.1.tgz#7c01595e3d337fcb0ec4e8eed1666ea95903d306" - integrity sha512-GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA== +meow@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-8.0.0.tgz#1aa10ee61046719e334ffdc038bb5069250ec99a" + integrity sha512-nbsTRz2fwniJBFgUkcdISq8y/q9n9VbiHYbfwklFh5V4V2uAcxtKQkDc0yCLPM/kP0d+inZBewn3zJqewHE7kg== dependencies: "@types/minimist" "^1.2.0" camelcase-keys "^6.2.2" decamelize-keys "^1.1.0" hard-rejection "^2.1.0" minimist-options "4.1.0" - normalize-package-data "^2.5.0" + normalize-package-data "^3.0.0" read-pkg-up "^7.0.1" redent "^3.0.0" trim-newlines "^3.0.0" - type-fest "^0.13.1" - yargs-parser "^18.1.3" + type-fest "^0.18.0" + yargs-parser "^20.2.3" merge-descriptors@1.0.1: version "1.0.1" @@ -7193,6 +7175,14 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= +micromark@~2.10.0: + version "2.10.1" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.10.1.tgz#cd73f54e0656f10e633073db26b663a221a442a7" + integrity sha512-fUuVF8sC1X7wsCS29SYQ2ZfIZYbTymp0EYr6sab3idFjigFFjGa5UwoniPlV9tAgntjuapW1t9U+S0yDYeGKHQ== + dependencies: + debug "^4.0.0" + parse-entities "^2.0.0" + micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" @@ -7238,7 +7228,7 @@ mime-db@1.44.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== -mime-types@^2.1.12, mime-types@^2.1.26, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.27" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== @@ -7266,21 +7256,20 @@ min-indent@^1.0.0: integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== mini-create-react-context@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.0.tgz#df60501c83151db69e28eac0ef08b4002efab040" - integrity sha512-b0TytUgFSbgFJGzJqXPKCFCBWigAjpjo+Fl7Vf7ZbKRDptszpppKxXH6DRXEABZ/gcEQczeb0iZ7JvL8e8jjCA== + version "0.4.1" + resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e" + integrity sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ== dependencies: - "@babel/runtime" "^7.5.5" + "@babel/runtime" "^7.12.1" tiny-warning "^1.0.3" -mini-css-extract-plugin@^0.11.3: - version "0.11.3" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.11.3.tgz#15b0910a7f32e62ffde4a7430cfefbd700724ea6" - integrity sha512-n9BA8LonkOkW1/zn+IbLPQmovsL0wMb9yx75fMJQZf2X1Zoec9yTZtyMePcyu19wPkmFbzZZA6fLTotpFhQsOA== +mini-css-extract-plugin@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.1.tgz#1375c88b2bc2a9d197670a55761edcd1b5d72f21" + integrity sha512-jIOheqh9EU98rqj6ZaFTYNNDSFqdakNqaUZfkYwaXPjI9batmXVXX+K71NrqRAgtoGefELBMld1EQ7dqSAD5SQ== dependencies: - loader-utils "^1.1.0" - normalize-url "1.9.1" - schema-utils "^1.0.0" + loader-utils "^2.0.0" + schema-utils "^3.0.0" webpack-sources "^1.1.0" minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: @@ -7391,19 +7380,19 @@ multicast-dns@^6.0.1: thunky "^1.0.2" nan@^2.12.1: - version "2.14.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== nanoid@^2.1.0: version "2.1.11" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280" integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA== -nanoid@^3.1.12: - version "3.1.12" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.12.tgz#6f7736c62e8d39421601e4a0c77623a97ea69654" - integrity sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A== +nanoid@^3.1.18: + version "3.1.20" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" + integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== nanomatch@^1.2.9: version "1.2.13" @@ -7442,21 +7431,13 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -no-case@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.3.tgz#c21b434c1ffe48b39087e86cfb4d2582e9df18f8" - integrity sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw== - dependencies: - lower-case "^2.0.1" - tslib "^1.10.0" - -node-fetch@^1.0.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" - integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" + lower-case "^2.0.2" + tslib "^2.0.3" node-fetch@^2.6.1: version "2.6.1" @@ -7526,10 +7507,10 @@ node-preload@^0.2.1: dependencies: process-on-spawn "^1.0.0" -node-releases@^1.1.61: - version "1.1.61" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.61.tgz#707b0fca9ce4e11783612ba4a2fcba09047af16e" - integrity sha512-DD5vebQLg8jLCOzwupn954fbIiZht05DAZs0k2u8NStSe6h9XdsuIQL8hSRKYiU8WUQRznmSDrKGbv3ObOmC7g== +node-releases@^1.1.67: + version "1.1.67" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.67.tgz#28ebfcccd0baa6aad8e8d4d8fe4cbc49ae239c12" + integrity sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg== normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" @@ -7541,6 +7522,16 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" +normalize-package-data@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.0.tgz#1f8a7c423b3d2e85eb36985eaf81de381d01301a" + integrity sha512-6lUjEI0d3v6kFrtgA/lOx4zHCWULXsFNIjHolnZCKCTLA6m/G625cdn3O7eNmT0iD3jfo6HZ9cdImGZwf21prw== + dependencies: + hosted-git-info "^3.0.6" + resolve "^1.17.0" + semver "^7.3.2" + validate-npm-package-license "^3.0.1" + normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" @@ -7563,16 +7554,6 @@ normalize-selector@^0.2.0: resolved "https://registry.yarnpkg.com/normalize-selector/-/normalize-selector-0.2.0.tgz#d0b145eb691189c63a78d201dc4fdb1293ef0c03" integrity sha1-0LFF62kRicY6eNIB3E/bEpPvDAM= -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" @@ -7669,7 +7650,7 @@ oauth-sign@~0.9.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.0.1, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -7684,17 +7665,17 @@ object-copy@^0.1.0: kind-of "^3.0.3" object-inspect@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" - integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== + version "1.9.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" + integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== object-is@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.3.tgz#2e3b9e65560137455ee3bd62aec4d90a2ea1cc81" - integrity sha512-teyqLvFWzLkq5B9ki8FVWA902UER2qkxmdA4nLf+wjOLAWgxzCWZNCxpDq9MvE8MmhWNr+I8w3BN49Vx36Y6Xg== + version "1.1.4" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.4.tgz#63d6c83c00a43f4cbc9434eb9757c8a5b8565068" + integrity sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" @@ -7709,41 +7690,43 @@ object-visit@^1.0.0: isobject "^3.0.0" object.assign@^4.0.4, object.assign@^4.1.0, object.assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.1.tgz#303867a666cdd41936ecdedfb1f8f3e32a478cdd" - integrity sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA== + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.18.0-next.0" has-symbols "^1.0.1" object-keys "^1.1.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== + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6" + integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.5" + es-abstract "^1.18.0-next.1" 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== + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.3.tgz#13cefcffa702dc67750314a3305e8cb3fad1d072" + integrity sha512-IDUSMXs6LOSJBWE++L0lzIbSqHl9KDCfff2x/JSEIDtEUavUnyMYC2ZGay/04Zq4UT8lvd4xNhU4/YHKibAOlw== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" + es-abstract "^1.18.0-next.1" has "^1.0.3" object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" - integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== + version "2.1.1" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz#0dfda8d108074d9c563e80490c883b6661091544" + integrity sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.18.0-next.1" object.pick@^1.3.0: version "1.3.0" @@ -7753,13 +7736,13 @@ object.pick@^1.3.0: isobject "^3.0.1" object.values@^1.1.0, 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== + version "1.1.2" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.2.tgz#7a2015e06fcb0f546bd652486ce8583a4731c731" + integrity sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" + es-abstract "^1.18.0-next.1" has "^1.0.3" obuf@^1.0.0, obuf@^1.1.2: @@ -7852,9 +7835,9 @@ os-browserify@^0.3.0: integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= p-each-series@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48" - integrity sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ== + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== p-finally@^1.0.0: version "1.0.0" @@ -7950,12 +7933,12 @@ parallel-transform@^1.1.0: readable-stream "^2.1.5" param-case@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.3.tgz#4be41f8399eff621c56eebb829a5e451d9801238" - integrity sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA== + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== dependencies: - dot-case "^3.0.3" - tslib "^1.10.0" + dot-case "^3.0.4" + tslib "^2.0.3" parent-module@^1.0.0: version "1.0.1" @@ -8027,13 +8010,13 @@ parseurl@~1.3.2, parseurl@~1.3.3: resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== -pascal-case@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.1.tgz#5ac1975133ed619281e88920973d2cd1f279de5f" - integrity sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA== +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== dependencies: - no-case "^3.0.3" - tslib "^1.10.0" + no-case "^3.0.4" + tslib "^2.0.3" pascalcase@^0.1.1: version "0.1.1" @@ -8291,15 +8274,15 @@ postcss-less@^3.1.4: dependencies: postcss "^7.0.14" -postcss-loader@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.0.3.tgz#337f51bbdfb02269fb42f7db9fc7f0a93c1b2e3f" - integrity sha512-jHboC/AOnJLPu8/974hODCJ/rNAa2YhhJOclUeuRlAmFpKmEcBY6az8y1ejHyYc2LThzPl8qPRekh2Yz3CiRKA== +postcss-loader@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.1.0.tgz#4647a6c8dad3cb6b253fbfaa21d62201086f6e39" + integrity sha512-vbCkP70F3Q9PIk6d47aBwjqAMI4LfkXCoyxj+7NPNuVIwfTGdzv2KVQes59/RuxMniIgsYQCFSY42P3+ykJfaw== dependencies: cosmiconfig "^7.0.0" klona "^2.0.4" loader-utils "^2.0.0" - schema-utils "^2.7.1" + schema-utils "^3.0.0" semver "^7.3.2" postcss-media-query-parser@^0.2.3: @@ -8369,38 +8352,33 @@ postcss-minify-selectors@^4.0.2: postcss "^7.0.0" postcss-selector-parser "^3.0.0" -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 "^7.0.5" +postcss-modules-extract-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== -postcss-modules-local-by-default@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" - integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== +postcss-modules-local-by-default@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" + integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== dependencies: - icss-utils "^4.1.1" - postcss "^7.0.32" + icss-utils "^5.0.0" postcss-selector-parser "^6.0.2" postcss-value-parser "^4.1.0" -postcss-modules-scope@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" - integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== +postcss-modules-scope@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" + postcss-selector-parser "^6.0.4" -postcss-modules-values@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" - integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== dependencies: - icss-utils "^4.0.0" - postcss "^7.0.6" + icss-utils "^5.0.0" postcss-normalize-charset@^4.0.1: version "4.0.1" @@ -8548,7 +8526,7 @@ postcss-selector-parser@^3.0.0: indexes-of "^1.0.1" uniq "^1.0.1" -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: version "6.0.4" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== @@ -8592,7 +8570,7 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.35, postcss@^7.0.6: version "7.0.35" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== @@ -8601,15 +8579,15 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.2, postcss@^7.0.21 source-map "^0.6.1" supports-color "^6.1.0" -postcss@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.1.1.tgz#c3a287dd10e4f6c84cb3791052b96a5d859c9389" - integrity sha512-9DGLSsjooH3kSNjTZUOt2eIj2ZTW0VI2PZ/3My+8TC7KIbH2OKwUlISfDsf63EP4aiRUt3XkEWMWvyJHvJelEg== +postcss@^8.1.10, postcss@^8.1.4: + version "8.1.10" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.1.10.tgz#129834f94c720554d2cfdaeb27d5542ac4a026ea" + integrity sha512-iBXEV5VTTYaRRdxiFYzTtuv2lGMQBExqkZKSzkJe+Fl6rvQrA/49UVGKqB+LG54hpW/TtDBMGds8j33GFNW7pg== dependencies: colorette "^1.2.1" - line-column "^1.0.2" - nanoid "^3.1.12" + nanoid "^3.1.18" source-map "^0.6.1" + vfile-location "^3.2.0" prelude-ls@^1.2.1: version "1.2.1" @@ -8621,11 +8599,6 @@ 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= - prettier-linter-helpers@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" @@ -8633,38 +8606,28 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.2.tgz#3050700dae2e4c8b67c4c3f666cdb8af405e1ce5" - integrity sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg== +prettier@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" + integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== 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= - dependencies: - renderkid "^2.0.1" - utila "~0.4" - -pretty-format@^25.2.1, pretty-format@^25.5.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" - integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ== + version "2.1.2" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" + integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== dependencies: - "@jest/types" "^25.5.0" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^16.12.0" + lodash "^4.17.20" + renderkid "^2.0.4" -pretty-format@^26.4.2, pretty-format@^26.5.0: - version "26.5.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.5.0.tgz#3320e4952f8e6918fc8c26c6df7aad9734818ac2" - integrity sha512-NcgRuuTutUJ9+Br4P19DFThpJYnYBiugfRmZEA6pXrUeG+IcMSmppb88rU+iPA+XAJcjTYlCb5Ed6miHg/Qqqw== +pretty-format@^26.0.0, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== dependencies: - "@jest/types" "^26.5.0" + "@jest/types" "^26.6.2" ansi-regex "^5.0.0" ansi-styles "^4.0.0" - react-is "^16.12.0" + react-is "^17.0.1" process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: version "2.0.1" @@ -8693,20 +8656,13 @@ promise-inflight@^1.0.1: resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= -promise@^7.1.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" - integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== - dependencies: - asap "~2.0.3" - prompts@^2.0.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068" - integrity sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA== + version "2.4.0" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.0.tgz#4aa5de0723a231d1ee9121c40fdf663df73f61d7" + integrity sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ== dependencies: kleur "^3.0.3" - sisteransi "^1.0.4" + sisteransi "^1.0.5" prop-types@>=15.7.2, prop-types@^15.5.10, prop-types@^15.5.6, prop-types@^15.5.7, prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.1, prop-types@^15.7.2: version "15.7.2" @@ -8807,14 +8763,6 @@ 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" @@ -8881,10 +8829,10 @@ react-document-title@^2.0.3: prop-types "^15.5.6" react-side-effect "^1.0.2" -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@^16.14.0: + version "16.14.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89" + integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -8909,19 +8857,24 @@ react-highlighter@^0.4.3: escape-string-regexp "^1.0.5" prop-types "^15.6.0" -react-i18next@^11.7.3: - version "11.7.3" - resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-11.7.3.tgz#256461c46baf5b3208c3c6860ca4e569fc7ed053" - integrity sha512-7sYZqVZgdaS9Z0ZH6nuJFErCD0zz5wK3jR4/xCrWjZcxHHF3GRu7BXdicbSPprZV4ZYz7LJzxxMHO7dg5Qb70A== +react-i18next@^11.7.4: + version "11.7.4" + resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-11.7.4.tgz#6c0142e15652d8dd80cd7d857e36efe2e9d4d09a" + integrity sha512-Aq0+QVW7NMYuAtk0Stcwp4jWeNTd1p5XefAfBPcjs/4c/2duG3v3G3zdtn8fC8L4EyA/coKLwdULHI+lYTbF8w== dependencies: "@babel/runtime" "^7.3.1" html-parse-stringify2 "2.0.1" -react-is@^16.12.0, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6, react-is@^16.9.0: +react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6: 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@^17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339" + integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA== + react-lifecycles-compat@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" @@ -8952,16 +8905,16 @@ react-onclickoutside@^6.9.0: resolved "https://registry.yarnpkg.com/react-onclickoutside/-/react-onclickoutside-6.9.0.tgz#a54bc317ae8cf6131a5d78acea55a11067f37a1f" integrity sha512-8ltIY3bC7oGhj2nPAvWOGi+xGFybPNhJM0V1H8hY/whNcXgmDeaeoCMPPd8VatrpTsUWjb/vGzrmu6SrXVty3A== -react-redux@^7.2.1: - version "7.2.1" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.1.tgz#8dedf784901014db2feca1ab633864dee68ad985" - integrity sha512-T+VfD/bvgGTUA74iW9d2i5THrDQWbweXP0AVNI8tNd1Rk5ch1rnMiJkDD67ejw7YBKM4+REvcvqRuWJb7BLuEg== +react-redux@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.2.tgz#03862e803a30b6b9ef8582dadcc810947f74b736" + integrity sha512-8+CQ1EvIVFkYL/vu6Olo7JFLWop1qRUeb46sGtIMDCSpgwPQq8fPLpirIB0iTqFe9XYEFPHssdX8/UwN6pAkEA== dependencies: - "@babel/runtime" "^7.5.5" - hoist-non-react-statics "^3.3.0" + "@babel/runtime" "^7.12.1" + hoist-non-react-statics "^3.3.2" loose-envify "^1.4.0" prop-types "^15.7.2" - react-is "^16.9.0" + react-is "^16.13.1" react-required-if@^1.0.3: version "1.0.3" @@ -9005,9 +8958,9 @@ react-side-effect@^1.0.2: shallowequal "^1.0.1" react-test-renderer@^16.13.1: - 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== + version "16.14.0" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.14.0.tgz#e98360087348e260c56d4fe2315e970480c228ae" + integrity sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg== dependencies: object-assign "^4.1.1" prop-types "^15.6.2" @@ -9021,10 +8974,10 @@ react-text-truncate@^0.14.1: dependencies: prop-types "^15.5.7" -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@^16.14.0: + version "16.14.0" + resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" + integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -9106,13 +9059,20 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@~3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" - integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== dependencies: picomatch "^2.2.1" +rechoir@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz#32650fd52c21ab252aa5d65b19310441c7e03aca" + integrity sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q== + dependencies: + resolve "^1.9.0" + redent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" @@ -9121,6 +9081,11 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" +reduce-flatten@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" + integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== + redux-devtools-extension@^2.13.8: version "2.13.8" resolved "https://registry.yarnpkg.com/redux-devtools-extension/-/redux-devtools-extension-2.13.8.tgz#37b982688626e5e4993ff87220c9bbb7cd2d96e1" @@ -9161,14 +9126,9 @@ regenerate-unicode-properties@^8.2.0: regenerate "^1.4.0" regenerate@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" - integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A== - -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== + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== regenerator-runtime@^0.13.4: version "0.13.7" @@ -9203,7 +9163,7 @@ regexpp@^3.0.0, regexpp@^3.1.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== -regexpu-core@^4.7.0: +regexpu-core@^4.7.1: version "4.7.1" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== @@ -9239,56 +9199,28 @@ release-zalgo@^1.0.0: dependencies: es6-error "^4.0.1" -remark-parse@^8.0.0: - version "8.0.3" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-8.0.3.tgz#9c62aa3b35b79a486454c690472906075f40c7e1" - integrity sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q== +remark-parse@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-9.0.0.tgz#4d20a299665880e4f4af5d90b7c7b8a935853640" + integrity sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw== dependencies: - ccount "^1.0.0" - collapse-white-space "^1.0.2" - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - is-whitespace-character "^1.0.0" - is-word-character "^1.0.0" - markdown-escapes "^1.0.0" - parse-entities "^2.0.0" - repeat-string "^1.5.4" - state-toggle "^1.0.0" - trim "0.0.1" - trim-trailing-lines "^1.0.0" - unherit "^1.0.4" - unist-util-remove-position "^2.0.0" - vfile-location "^3.0.0" - xtend "^4.0.1" - -remark-stringify@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-8.1.1.tgz#e2a9dc7a7bf44e46a155ec78996db896780d8ce5" - integrity sha512-q4EyPZT3PcA3Eq7vPpT6bIdokXzFGp9i85igjmhRyXWmPs0Y6/d2FYwUNotKAWyLch7g0ASZJn/KHHcHZQ163A== - dependencies: - ccount "^1.0.0" - is-alphanumeric "^1.0.0" - is-decimal "^1.0.0" - is-whitespace-character "^1.0.0" - longest-streak "^2.0.1" - markdown-escapes "^1.0.0" - markdown-table "^2.0.0" - mdast-util-compact "^2.0.0" - parse-entities "^2.0.0" - repeat-string "^1.5.4" - state-toggle "^1.0.0" - stringify-entities "^3.0.0" - unherit "^1.0.4" - xtend "^4.0.1" + mdast-util-from-markdown "^0.8.0" + +remark-stringify@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-9.0.0.tgz#8ba0c9e4167c42733832215a81550489759e3793" + integrity sha512-8x29DpTbVzEc6Dwb90qhxCtbZ6hmj3BxWWDpMhA+1WM4dOEGH5U5/GFe3Be5Hns5MvPSFAr1e2KSVtKZkK5nUw== + dependencies: + mdast-util-to-markdown "^0.5.0" -remark@^12.0.0: - version "12.0.1" - resolved "https://registry.yarnpkg.com/remark/-/remark-12.0.1.tgz#f1ddf68db7be71ca2bad0a33cd3678b86b9c709f" - integrity sha512-gS7HDonkdIaHmmP/+shCPejCEEW+liMp/t/QwmF0Xt47Rpuhl32lLtDV1uKWvGoq+kxr5jSgg5oAIpGuyULjUw== +remark@^13.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/remark/-/remark-13.0.0.tgz#d15d9bf71a402f40287ebe36067b66d54868e425" + integrity sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA== dependencies: - remark-parse "^8.0.0" - remark-stringify "^8.0.0" - unified "^9.0.0" + remark-parse "^9.0.0" + remark-stringify "^9.0.0" + unified "^9.1.0" remove-bom-buffer@^3.0.0: version "3.0.0" @@ -9312,23 +9244,23 @@ remove-trailing-separator@^1.0.1: resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= -renderkid@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.3.tgz#380179c2ff5ae1365c522bf2fcfcff01c5b74149" - integrity sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA== +renderkid@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.4.tgz#d325e532afb28d3f8796ffee306be8ffd6fc864c" + integrity sha512-K2eXrSOJdq+HuKzlcjOlGoOarUu5SDguDEhE7+Ah4zuOWL40j8A/oHvLlLob9PSTNvVnBd+/q0Er1QfpEuem5g== dependencies: css-select "^1.1.0" dom-converter "^0.2" htmlparser2 "^3.3.0" + lodash "^4.17.20" strip-ansi "^3.0.0" - utila "^0.4.0" repeat-element@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== -repeat-string@^1.0.0, repeat-string@^1.5.4, repeat-string@^1.6.1: +repeat-string@^1.0.0, 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= @@ -9459,11 +9391,12 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.10.0, resolve@^1.13.1, resolve@^1.17.0, resolve@^1.3.2: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== +resolve@^1.10.0, resolve@^1.13.1, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.3.2, resolve@^1.9.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== dependencies: + is-core-module "^2.1.0" path-parse "^1.0.6" ret@~0.1.10: @@ -9505,7 +9438,7 @@ rimraf@^2.5.4, rimraf@^2.6.3: dependencies: glob "^7.1.3" -rimraf@^3.0.0: +rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== @@ -9526,9 +9459,9 @@ rsvp@^4.8.4: integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== run-parallel@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" - integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + version "1.1.10" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef" + integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw== run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" @@ -9554,7 +9487,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -9574,21 +9507,21 @@ sane@^4.0.3: minimist "^1.1.1" walker "~1.0.5" -sass-loader@^10.0.2: - version "10.0.2" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.0.2.tgz#c7b73010848b264792dd45372eea0b87cba4401e" - integrity sha512-wV6NDUVB8/iEYMalV/+139+vl2LaRFlZGEd5/xmdcdzQcgmis+npyco6NsDTVOlNA3y2NV9Gcz+vHyFMIT+ffg== +sass-loader@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.1.0.tgz#1727fcc0c32ab3eb197cda61d78adf4e9174a4b3" + integrity sha512-ZCKAlczLBbFd3aGAhowpYEy69Te3Z68cg8bnHHl6WnSCvnKpbM6pQrz957HWMa8LKVuhnD9uMplmMAHwGQtHeg== dependencies: - klona "^2.0.3" + klona "^2.0.4" loader-utils "^2.0.0" neo-async "^2.6.2" - schema-utils "^2.7.1" + schema-utils "^3.0.0" semver "^7.3.2" -sass@^1.26.11: - version "1.26.11" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.26.11.tgz#0f22cc4ab2ba27dad1d4ca30837beb350b709847" - integrity sha512-W1l/+vjGjIamsJ6OnTe0K37U2DBO/dgsv2Z4c89XQ8ZOO6l/VwkqwLSqoYzJeJs6CLuGSTRWc91GbQFL3lvrvw== +sass@^1.29.0: + version "1.29.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.29.0.tgz#ec4e1842c146d8ea9258c28c141b8c2b7c6ab7f1" + integrity sha512-ZpwAUFgnvAUCdkjwPREny+17BpUj8nh5Yr6zKPGtLNTLrmtoRYIjm7njP24COhjJldjwW1dcv52Lpf4tNZVVRA== dependencies: chokidar ">=2.0.0 <4.0.0" @@ -9621,7 +9554,7 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.6.5, schema-utils@^2.7.1: +schema-utils@^2.6.5: version "2.7.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== @@ -9630,6 +9563,15 @@ schema-utils@^2.6.5, schema-utils@^2.7.1: ajv "^6.12.4" ajv-keywords "^3.5.2" +schema-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" + integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== + dependencies: + "@types/json-schema" "^7.0.6" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" @@ -9658,9 +9600,11 @@ semver@^6.0.0, semver@^6.3.0: integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== semver@^7.2.1, semver@^7.3.2: - version "7.3.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" - integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + version "7.3.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" + integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== + dependencies: + lru-cache "^6.0.0" send@0.17.1: version "0.17.1" @@ -9726,7 +9670,7 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.4, setimmediate@^1.0.5: +setimmediate@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= @@ -9796,13 +9740,13 @@ shellwords@^0.1.1: integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== shortid@^2.2.15: - version "2.2.15" - resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.15.tgz#2b902eaa93a69b11120373cd42a1f1fe4437c122" - integrity sha512-5EaCy2mx2Jgc/Fdn9uuDuNIIfWBpzY4XIlhoqtXF6qsf+/+SGZ+FxDdX/ZsMZiWupIWNqAEmiNY4RC+LSmCeOw== + version "2.2.16" + resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.16.tgz#b742b8f0cb96406fd391c76bfc18a67a57fe5608" + integrity sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g== dependencies: nanoid "^2.1.0" -side-channel@^1.0.2: +side-channel@^1.0.2, side-channel@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.3.tgz#cdc46b057550bbab63706210838df5d4c19519c3" integrity sha512-A6+ByhlLkksFoUepsGxfj5x1gTSrs+OydsRptUxeNCabQpCFUvcwIczgOigI8vhY/OJCnPnyE9rGiwgvr9cS1g== @@ -9827,7 +9771,7 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" -sisteransi@^1.0.4: +sisteransi@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== @@ -9911,13 +9855,6 @@ sockjs@0.3.20: uuid "^3.4.0" websocket-driver "0.6.5" -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" - sortobject@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/sortobject/-/sortobject-1.3.0.tgz#bc8ce57014c567bdbf78e89ae6c484e64d51e9dc" @@ -10011,9 +9948,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.6" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz#c80757383c28abf7296744998cbc106ae8b854ce" - integrity sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw== + version "3.0.7" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" + integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== spdy-transport@^3.0.0: version "3.0.0" @@ -10083,17 +10020,12 @@ stable@^0.1.8: integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== stack-utils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.2.tgz#5cf48b4557becb4638d0bc4f21d23f5d19586593" - integrity sha512-0H7QK2ECz3fyZMzQ8rH0j2ykpfbnd20BFtfg/SqVC2+sCTtcw0aDTGB7dk+de4U4uUeuz6nOtJcrkFFLG1B0Rg== + version "2.0.3" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" + integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== dependencies: escape-string-regexp "^2.0.0" -state-toggle@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" - integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== - static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" @@ -10144,11 +10076,6 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== -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-convert@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97" @@ -10181,40 +10108,42 @@ string-width@^4.1.0, string-width@^4.2.0: strip-ansi "^6.0.0" string.prototype.matchall@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e" - integrity sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg== + version "4.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.3.tgz#24243399bc31b0a49d19e2b74171a15653ec996a" + integrity sha512-OBxYDA2ifZQ2e13cP82dWFMaCV9CGF8GzmN4fljBVw5O5wep0lu4gacm1OL6MjROoUnB8VbkWRThqkV2YFLNxw== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0" + es-abstract "^1.18.0-next.1" has-symbols "^1.0.1" internal-slot "^1.0.2" regexp.prototype.flags "^1.3.0" - side-channel "^1.0.2" + side-channel "^1.0.3" string.prototype.padend@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.0.tgz#dc08f57a8010dc5c153550318f67e13adbb72ac3" - integrity sha512-3aIv8Ffdp8EZj8iLwREGpQaUZiPyrWrpzMBHvkiSW/bK/EGve9np07Vwy7IJ5waydpGXzQZu/F8Oze2/IWkBaA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.1.tgz#824c84265dbac46cade2b957b38b6a5d8d1683c5" + integrity sha512-eCzTASPnoCr5Ht+Vn1YXgm8SB015hHKgEIMu9Nr9bQmLhRBxKRfmzSj/IQsxDFc8JInJDDFA0qXwK+xxI7wDkg== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.18.0-next.1" 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== + version "1.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b" + integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== dependencies: + call-bind "^1.0.0" 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== + version "1.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa" + integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.5" string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" @@ -10230,17 +10159,6 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -stringify-entities@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-3.0.1.tgz#32154b91286ab0869ab2c07696223bd23b6dbfc0" - integrity sha512-Lsk3ISA2++eJYqBMPKcr/8eby1I6L0gP0NlxF8Zja6c05yr/yCYyb2c9PwXjd08Ib3If1vn1rbs1H5ZtVuOfvQ== - dependencies: - character-entities-html4 "^1.0.0" - character-entities-legacy "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.2" - is-hexadecimal "^1.0.0" - strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -10336,22 +10254,22 @@ stylelint-scss@^3.18.0: postcss-selector-parser "^6.0.2" postcss-value-parser "^4.1.0" -stylelint@^13.7.2: - version "13.7.2" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.7.2.tgz#6f3c58eea4077680ed0ceb0d064b22b100970486" - integrity sha512-mmieorkfmO+ZA6CNDu1ic9qpt4tFvH2QUB7vqXgrMVHe5ENU69q7YDq0YUg/UHLuCsZOWhUAvcMcLzLDIERzSg== +stylelint@^13.8.0: + version "13.8.0" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.8.0.tgz#446765dbe25e3617f819a0165956faf2563ddc23" + integrity sha512-iHH3dv3UI23SLDrH4zMQDjLT9/dDIz/IpoFeuNxZmEx86KtfpjDOscxLTFioQyv+2vQjPlRZnK0UoJtfxLICXQ== dependencies: "@stylelint/postcss-css-in-js" "^0.37.2" - "@stylelint/postcss-markdown" "^0.36.1" + "@stylelint/postcss-markdown" "^0.36.2" autoprefixer "^9.8.6" balanced-match "^1.0.0" chalk "^4.1.0" cosmiconfig "^7.0.0" - debug "^4.1.1" + debug "^4.2.0" execall "^2.0.0" fast-glob "^3.2.4" fastest-levenshtein "^1.0.12" - file-entry-cache "^5.0.1" + file-entry-cache "^6.0.0" get-stdin "^8.0.0" global-modules "^2.0.0" globby "^11.0.1" @@ -10360,14 +10278,14 @@ stylelint@^13.7.2: ignore "^5.1.8" import-lazy "^4.0.0" imurmurhash "^0.1.4" - known-css-properties "^0.19.0" + known-css-properties "^0.20.0" lodash "^4.17.20" log-symbols "^4.0.0" mathml-tag-names "^2.1.3" - meow "^7.1.1" + meow "^8.0.0" micromatch "^4.0.2" normalize-selector "^0.2.0" - postcss "^7.0.32" + postcss "^7.0.35" postcss-html "^0.36.0" postcss-less "^3.1.4" postcss-media-query-parser "^0.2.3" @@ -10375,7 +10293,7 @@ stylelint@^13.7.2: postcss-safe-parser "^4.0.2" postcss-sass "^0.4.4" postcss-scss "^2.1.1" - postcss-selector-parser "^6.0.2" + postcss-selector-parser "^6.0.4" postcss-syntax "^0.36.2" postcss-value-parser "^4.1.0" resolve-from "^5.0.0" @@ -10386,8 +10304,8 @@ stylelint@^13.7.2: style-search "^0.1.0" sugarss "^2.0.0" svg-tags "^1.0.0" - table "^6.0.1" - v8-compile-cache "^2.1.1" + table "^6.0.3" + v8-compile-cache "^2.2.0" write-file-atomic "^3.0.3" sugarss@^2.0.0: @@ -10469,6 +10387,16 @@ symbol-tree@^3.2.4: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== +table-layout@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.1.tgz#8411181ee951278ad0638aea2f779a9ce42894f9" + integrity sha512-dEquqYNJiGwY7iPfZ3wbXDI944iqanTSchrACLL2nOB+1r+h1Nzu2eH+DuPPvWvm5Ry7iAPeFlgEtP5bIp5U7Q== + dependencies: + array-back "^4.0.1" + deep-extend "~0.6.0" + typical "^5.2.0" + wordwrapjs "^4.0.0" + table@^5.2.3: version "5.4.6" resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" @@ -10479,10 +10407,10 @@ table@^5.2.3: slice-ansi "^2.1.0" string-width "^3.0.0" -table@^6.0.1: - version "6.0.3" - resolved "https://registry.yarnpkg.com/table/-/table-6.0.3.tgz#e5b8a834e37e27ad06de2e0fda42b55cfd8a0123" - integrity sha512-8321ZMcf1B9HvVX/btKv8mMZahCjn2aYrDlpqHaBFCfnox64edeH9kEid0vTLTRR8gWR2A20aDgeuTTea4sVtw== +table@^6.0.3: + version "6.0.4" + resolved "https://registry.yarnpkg.com/table/-/table-6.0.4.tgz#c523dd182177e926c723eb20e1b341238188aa0d" + integrity sha512-sBT4xRLdALd+NFBvwOz8bw4b15htyythha+q+DVZqy2RS08PPC8O2sZFgJYEY7bJvbCFKccs+WIZ/cd+xxTWCw== dependencies: ajv "^6.12.4" lodash "^4.17.20" @@ -10580,9 +10508,9 @@ thunky@^1.0.2: integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== timers-browserify@^2.0.4: - version "2.0.11" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" - integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== + version "2.0.12" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== dependencies: setimmediate "^1.0.4" @@ -10704,16 +10632,6 @@ trim-newlines@^3.0.0: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30" integrity sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA== -trim-trailing-lines@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.3.tgz#7f0739881ff76657b7776e10874128004b625a94" - integrity sha512-4ku0mmjXifQcTVfYDfR5lpgV7zVqPg6zV9rdZmwOPqq0+Zq19xDqEgagqVbc4pOOShbncuAOIs59R3+3gcF3ZA== - -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.5" resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" @@ -10729,10 +10647,15 @@ tsconfig-paths@^3.9.0: minimist "^1.2.0" strip-bom "^3.0.0" -tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: - version "1.13.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" - integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== +tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" + integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ== tsutils@^3.17.1: version "3.17.1" @@ -10782,10 +10705,10 @@ type-fest@^0.11.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== -type-fest@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" - integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== +type-fest@^0.18.0: + version "0.18.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" + integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== type-fest@^0.6.0: version "0.6.0" @@ -10817,29 +10740,21 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.3.tgz#153bbd468ef07725c1df9c77e8b453f8d36abba5" - integrity sha512-tEu6DGxGgRJPb/mVPIZ48e69xCn2yRmCgYmDugAVwmJ6o+0u1RI18eO7E7WBTLYLaEVVOhwQmcdhQHweux/WPg== +typescript@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.2.tgz#6369ef22516fe5e10304aae5a5c4862db55380e9" + integrity sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ== -ua-parser-js@^0.7.18: - version "0.7.22" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.22.tgz#960df60a5f911ea8f1c818f3747b99c6e177eae3" - integrity sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q== +typical@^5.0.0, typical@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" + integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== unc-path-regex@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= -unherit@^1.0.4: - version "1.1.3" - resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22" - integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ== - dependencies: - inherits "^2.0.0" - xtend "^4.0.0" - unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" @@ -10863,7 +10778,7 @@ unicode-property-aliases-ecmascript@^1.0.4: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== -unified@^9.0.0: +unified@^9.1.0: version "9.2.0" resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8" integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg== @@ -10917,24 +10832,17 @@ unique-stream@^2.0.2: json-stable-stringify-without-jsonify "^1.0.1" through2-filter "^3.0.0" -unist-util-find-all-after@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-3.0.1.tgz#95cc62f48812d879b4685a0512bf1b838da50e9a" - integrity sha512-0GICgc++sRJesLwEYDjFVJPJttBpVQaTNgc6Jw0Jhzvfs+jtKePEMu+uD+PqkRUrAvGQqwhpDwLGWo1PK8PDEw== +unist-util-find-all-after@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz#fdfecd14c5b7aea5e9ef38d5e0d5f774eeb561f6" + integrity sha512-xaTC/AGZ0rIM2gM28YVRAFPIZpzbpDtU3dRmp7EXlNVA8ziQc4hY3H7BHXM1J49nEmiqc3svnqMReW+PGqbZKQ== dependencies: unist-util-is "^4.0.0" unist-util-is@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.2.tgz#c7d1341188aa9ce5b3cff538958de9895f14a5de" - integrity sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ== - -unist-util-remove-position@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz#5d19ca79fdba712301999b2b73553ca8f3b352cc" - integrity sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA== - dependencies: - unist-util-visit "^2.0.0" + version "4.0.4" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.4.tgz#3e9e8de6af2eb0039a59f50c9b3e99698a924f50" + integrity sha512-3dF39j/u423v4BBQrk1AQ2Ve1FxY5W3JKwXxVFzBODQ6WEvccguhgp802qQLKSnxPODE6WuRZtV+ohlUg4meBA== unist-util-stringify-position@^2.0.0: version "2.0.3" @@ -10943,23 +10851,6 @@ unist-util-stringify-position@^2.0.0: dependencies: "@types/unist" "^2.0.2" -unist-util-visit-parents@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.0.tgz#4dd262fb9dcfe44f297d53e882fc6ff3421173d5" - integrity sha512-0g4wbluTF93npyPrp/ymd3tCDTMnP0yo2akFD2FIBAYXq/Sga3lwaU1D8OYKbtpioaI6CkDcQ6fsMnmtzt7htw== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^4.0.0" - -unist-util-visit@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" - integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^4.0.0" - unist-util-visit-parents "^3.0.0" - unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" @@ -10995,14 +10886,14 @@ urix@^0.1.0: resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url-loader@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.0.tgz#c7d6b0d6b0fccd51ab3ffc58a78d32b8d89a7be2" - integrity sha512-IzgAAIC8wRrg6NYkFIJY09vtktQcsvU8V6HhtQj9PTefbYImzLB1hufqo4m+RyM5N3mLx5BqJKccgxJS+W3kqw== +url-loader@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" + integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== dependencies: loader-utils "^2.0.0" - mime-types "^2.1.26" - schema-utils "^2.6.5" + mime-types "^2.1.27" + schema-utils "^3.0.0" url-parse@^1.4.3: version "1.4.7" @@ -11062,7 +10953,7 @@ util@^0.11.0: dependencies: inherits "2.0.3" -utila@^0.4.0, utila@~0.4: +utila@~0.4: version "0.4.0" resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= @@ -11082,15 +10973,15 @@ uuid@^8.3.0, uuid@^8.3.1: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.1.tgz#2ba2e6ca000da60fce5a196954ab241131e05a31" integrity sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg== -v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745" - integrity sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ== +v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1, v8-compile-cache@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" + integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== -v8-to-istanbul@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-5.0.1.tgz#0608f5b49a481458625edb058488607f25498ba5" - integrity sha512-mbDNjuDajqYe3TXFk5qxcQy8L1msXNE37WTlLoqqpBfRsimbNcrlhQlDPntmECEcUvdC+AQ8CyMMf6EUx1r74Q== +v8-to-istanbul@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz#b4fe00e35649ef7785a9b7fcebcea05f37c332fc" + integrity sha512-fLL2rFuQpMtm9r8hrAV2apXX/WqHJ6+IC4/eQVdMDGBUgH/YMV4Gv3duk3kjmyg6uiQWBAA9nJwue4iJUOkHeA== dependencies: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" @@ -11133,10 +11024,10 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vfile-location@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.1.0.tgz#81cd8a04b0ac935185f4fce16f270503fc2f692f" - integrity sha512-FCZ4AN9xMcjFIG1oGmZKo61PjwJHRVA+0/tPUP2ul4uIwjGGndIxavEMRpWn5p4xwm/ZsdXp9YNygf1ZyE4x8g== +vfile-location@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c" + integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA== vfile-message@^2.0.0: version "2.0.4" @@ -11250,23 +11141,23 @@ warning@^4.0.3: dependencies: loose-envify "^1.0.0" -watchpack-chokidar2@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" - integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== +watchpack-chokidar2@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== dependencies: chokidar "^2.1.8" watchpack@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b" - integrity sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg== + version "1.7.5" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" + integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== dependencies: graceful-fs "^4.1.2" neo-async "^2.5.0" optionalDependencies: chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.0" + watchpack-chokidar2 "^2.0.1" wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" @@ -11290,7 +11181,7 @@ webidl-conversions@^6.1.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== -webpack-cli@^3.3.12, webpack-cli@^3.x: +webpack-cli@^3.x: version "3.3.12" resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz#94e9ada081453cd0aa609c99e500012fd3ad2d4a" integrity sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag== @@ -11307,6 +11198,25 @@ webpack-cli@^3.3.12, webpack-cli@^3.x: v8-compile-cache "^2.1.1" yargs "^13.3.2" +webpack-cli@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.2.0.tgz#10a09030ad2bd4d8b0f78322fba6ea43ec56aaaa" + integrity sha512-EIl3k88vaF4fSxWSgtAQR+VwicfLMTZ9amQtqS4o+TDPW9HGaEpbFBbAZ4A3ZOT5SOnMxNOzROsSTPiE8tBJPA== + dependencies: + "@webpack-cli/info" "^1.1.0" + "@webpack-cli/serve" "^1.1.0" + colorette "^1.2.1" + command-line-usage "^6.1.0" + commander "^6.2.0" + enquirer "^2.3.6" + execa "^4.1.0" + import-local "^3.0.2" + interpret "^2.2.0" + leven "^3.1.0" + rechoir "^0.7.0" + v8-compile-cache "^2.2.0" + webpack-merge "^4.2.2" + webpack-dev-middleware@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" @@ -11365,10 +11275,17 @@ webpack-log@^2.0.0: ansi-colors "^3.0.0" uuid "^3.3.2" -webpack-merge@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.1.4.tgz#a2c3a0c38ac2c02055c47bb1d42de1f072f1aea4" - integrity sha512-LSmRD59mxREGkCBm9PCW3AaV4doDqxykGlx1NvioEE0FgkT2GQI54Wyvg39ptkiq2T11eRVoV39udNPsQvK+QQ== +webpack-merge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" + integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== + dependencies: + lodash "^4.17.15" + +webpack-merge@^5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.4.0.tgz#81bef0a7d23fc1e6c24b06ad8bf22ddeb533a3a3" + integrity sha512-/scBgu8LVPlHDgqH95Aw1xS+L+PHrpHKOwYVGFaNOQl4Q4wwwWDarwB1WdZAbLQ24SKhY3Awe7VZGYAdp+N+gQ== dependencies: clone-deep "^4.0.1" wildcard "^2.0.0" @@ -11438,10 +11355,10 @@ whatwg-encoding@^1.0.5: dependencies: iconv-lite "0.4.24" -whatwg-fetch@>=0.10.0, whatwg-fetch@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.4.1.tgz#e5f871572d6879663fa5674c8f833f15a8425ab3" - integrity sha512-sofZVzE1wKwO+EYPbWfiwzaKovWiZXf4coEzjGP9b2GBVgQRLQUZ2QcuPpQExGDAW5GItpEm6Tl4OU5mywnAoQ== +whatwg-fetch@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.5.0.tgz#605a2cd0a7146e5db141e29d1c62ab84c0c4c868" + integrity sha512-jXkLtsR42xhXg7akoDKvKWE40eJeI+2KZqcp2h3NsOrRnDvtWX36KcKl30dy+hxECivdk2BVUHVNrPtoMBUx6A== whatwg-mimetype@^2.3.0: version "2.3.0" @@ -11458,9 +11375,9 @@ whatwg-url@^6.5.0: webidl-conversions "^4.0.2" whatwg-url@^8.0.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.3.0.tgz#d1e11e565334486cdb280d3101b9c3fd1c867582" - integrity sha512-BQRf/ej5Rp3+n7k0grQXZj9a1cHtsp4lqj01p59xBWFKdezR8sO37XnpafwNqiFac/v2Il12EIMjX/Y4VZtT8Q== + version "8.4.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.4.0.tgz#50fb9615b05469591d2b2bd6dfaed2942ed72837" + integrity sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw== dependencies: lodash.sortby "^4.7.0" tr46 "^2.0.2" @@ -11495,6 +11412,14 @@ word-wrap@^1.2.3, word-wrap@~1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== +wordwrapjs@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.0.tgz#9aa9394155993476e831ba8e59fb5795ebde6800" + integrity sha512-Svqw723a3R34KvsMgpjFBYCgNOSdcW3mQFK4wIfhGQhtaFVOJmdYoXgi63ne3dTlWgatVcUc7t4HtQ/+bUVIzQ== + dependencies: + reduce-flatten "^2.0.0" + typical "^5.0.0" + worker-farm@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" @@ -11520,15 +11445,6 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -11559,9 +11475,9 @@ ws@^6.2.1: async-limiter "~1.0.0" ws@^7.2.3: - version "7.3.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8" - integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== + version "7.4.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.0.tgz#a5dd76a24197940d4a8bb9e0e152bb4503764da7" + integrity sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ== xml-name-validator@^3.0.0: version "3.0.0" @@ -11578,26 +11494,26 @@ xmlchars@^2.2.0: resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: +xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== 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== - -y18n@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.2.tgz#48218df5da2731b4403115c39a1af709c873f829" - integrity sha512-CkwaeZw6dQgqgPGeTWKMXCRmMcBgETFlTml1+ZOO+q7kGst8NREJ+eWwFNPVUQ4QGdAaklbqCZHH6Zuep1RjiA== + version "4.0.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" + integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + yaml@^1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" @@ -11611,7 +11527,7 @@ yargs-parser@^13.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^18.1.2, yargs-parser@^18.1.3: +yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== @@ -11619,10 +11535,10 @@ yargs-parser@^18.1.2, yargs-parser@^18.1.3: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^20.0.0: - version "20.2.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.1.tgz#28f3773c546cdd8a69ddae68116b48a5da328e77" - integrity sha512-yYsjuSkjbLMBp16eaOt7/siKTjNVjMm3SoJnIg3sEh/JsvqVVDyjRKmaJV4cl+lNIgq6QEco2i3gDebJl7/vLA== +yargs-parser@^20.2.3: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== yargs@^13.3.2: version "13.3.2" @@ -11640,7 +11556,7 @@ yargs@^13.3.2: y18n "^4.0.0" yargs-parser "^13.1.2" -yargs@^15.0.2: +yargs@^15.0.2, yargs@^15.4.1: version "15.4.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== @@ -11657,15 +11573,7 @@ yargs@^15.0.2: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^16.0.3: - version "16.0.3" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.0.3.tgz#7a919b9e43c90f80d4a142a89795e85399a7e54c" - integrity sha512-6+nLw8xa9uK1BOEOykaiYAJVh6/CjxWXK/q9b5FpRgNslt8s22F2xMBqVIKgCRjNgGvGPBy8Vog7WN7yh4amtA== - dependencies: - cliui "^7.0.0" - escalade "^3.0.2" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.1" - yargs-parser "^20.0.0" +zwitch@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" + integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw== From 1efa40e02340b8cbe7e22a1124063d79016a8849 Mon Sep 17 00:00:00 2001 From: Jonny Gerig Meyer Date: Wed, 2 Dec 2020 13:08:34 -0500 Subject: [PATCH 07/12] Fix test. --- metecho/api/tests/serializers.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/metecho/api/tests/serializers.py b/metecho/api/tests/serializers.py index ea610213e..9fd8c2458 100644 --- a/metecho/api/tests/serializers.py +++ b/metecho/api/tests/serializers.py @@ -293,10 +293,9 @@ def test_update(self, rf, user_factory, task_factory, scratch_org_factory): assert serializer.is_valid(), serializer.errors with ExitStack() as stack: - jwt_session = stack.enter_context( - patch("metecho.api.sf_run_flow.jwt_session") - ) - jwt_session.return_value = {"access_token": None} + OrgConfig = stack.enter_context(patch("metecho.api.sf_run_flow.OrgConfig")) + org_config = MagicMock(config={"access_token": None}) + OrgConfig.return_value = org_config serializer.update(task, serializer.validated_data) so1.refresh_from_db() so2.refresh_from_db() From 2d586a48b980222e7ace9d9782d4428f219d5bb4 Mon Sep 17 00:00:00 2001 From: Jonny Gerig Meyer Date: Thu, 3 Dec 2020 11:20:02 -0500 Subject: [PATCH 08/12] Address review; pin back redis/postgres versions. --- .circleci/config.yml | 5 +-- Dockerfile | 1 + config/settings/base.py | 2 ++ docker-compose.yml | 4 +-- metecho/api/sf_run_flow.py | 67 ++++++++++++++++++++------------------ 5 files changed, 43 insertions(+), 36 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 72b407086..1482bc938 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -91,8 +91,9 @@ jobs: SFDX_CLIENT_CALLBACK_URL: circle_test SFDX_CLIENT_ID: circle_test SFDX_CLIENT_SECRET: circle_test - - image: circleci/redis:6.0 - - image: circleci/postgres:13.1 + SFDX_HUB_KEY: circle_test + - image: circleci/redis:5.0 + - image: circleci/postgres:12.5 environment: POSTGRES_DB: circle_test POSTGRES_PASSWORD: circle_test diff --git a/Dockerfile b/Dockerfile index 2bc702d0c..fa4b20283 100644 --- a/Dockerfile +++ b/Dockerfile @@ -42,6 +42,7 @@ RUN DATABASE_URL="" \ SFDX_CLIENT_SECRET="sample secret" \ SFDX_CLIENT_CALLBACK_URL="sample callback" \ SFDX_CLIENT_ID="sample id" \ + SFDX_HUB_KEY="sample key" \ python manage.py collectstatic --noinput CMD /start-server.sh diff --git a/config/settings/base.py b/config/settings/base.py index 6fbe57826..7b03a8ab8 100644 --- a/config/settings/base.py +++ b/config/settings/base.py @@ -368,6 +368,8 @@ def env(name, default=NoDefaultValue, type_=str): ) if not SFDX_CLIENT_ID: raise ImproperlyConfigured("Missing environment variable: SFDX_CLIENT_ID.") +if not SFDX_HUB_KEY: + raise ImproperlyConfigured("Missing environment variable: SFDX_HUB_KEY.") # CCI expects these env vars to be set to refresh org oauth tokens environ["SFDX_CLIENT_ID"] = SFDX_CLIENT_ID diff --git a/docker-compose.yml b/docker-compose.yml index e02783a2c..6e422ac2a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -35,7 +35,7 @@ services: # Runs the database process: postgres: - image: postgres:13.1 + image: postgres:12.5 restart: always environment: POSTGRES_USER: metecho @@ -45,4 +45,4 @@ services: # Runs the queue process: redis: - image: redis:6.0 + image: redis:5.0 diff --git a/metecho/api/sf_run_flow.py b/metecho/api/sf_run_flow.py index 87fd2c1f5..80d3ddec0 100644 --- a/metecho/api/sf_run_flow.py +++ b/metecho/api/sf_run_flow.py @@ -1,3 +1,4 @@ +import contextlib import json import logging import os @@ -51,30 +52,36 @@ class ScratchOrgError(Exception): pass -def handle_sf_error(err, scratch_org=None, originating_user_id=None): - if get_current_job(): - job_id = get_current_job().id - # This error is user-facing, and so for makemessages to - # pick it up correctly, we need it to be a single, - # unbroken, string literal (even though adjacent string - # literals should be parsed by the AST into a single - # string literal and picked up by makemessages, but - # that's a gripe for another day). We have relatively - # few errors that propagate directly from the backend - # like this, but when we do, this is the pattern we - # should use. - # - # This is also why we repeat the first sentence. - error_msg = _( - f"Are you certain that the org still exists? If you need support, your job ID is {job_id}." # noqa: B950 - ) - else: - error_msg = _(f"Are you certain that the org still exists? {err.args[0]}") - - error = ScratchOrgError(error_msg) - if scratch_org: - scratch_org.remove_scratch_org(error, originating_user_id=originating_user_id) - raise error +@contextlib.contextmanager +def delete_org_on_error(scratch_org=None, originating_user_id=None): + try: + yield + except HTTPError as err: + if get_current_job(): + job_id = get_current_job().id + # This error is user-facing, and so for makemessages to + # pick it up correctly, we need it to be a single, + # unbroken, string literal (even though adjacent string + # literals should be parsed by the AST into a single + # string literal and picked up by makemessages, but + # that's a gripe for another day). We have relatively + # few errors that propagate directly from the backend + # like this, but when we do, this is the pattern we + # should use. + # + # This is also why we repeat the first sentence. + error_msg = _( + f"Are you certain that the org still exists? If you need support, your job ID is {job_id}." # noqa: B950 + ) + else: + error_msg = _(f"Are you certain that the org still exists? {err.args[0]}") + + error = ScratchOrgError(error_msg) + if scratch_org: + scratch_org.remove_scratch_org( + error, originating_user_id=originating_user_id + ) + raise error def capitalize(s): @@ -105,14 +112,12 @@ def refresh_access_token( which we don't want now -- this is a total hack which I'll try to smooth over with some improvements in CumulusCI """ - try: + with delete_org_on_error( + scratch_org=scratch_org, originating_user_id=originating_user_id + ): org_config = OrgConfig(config, org_name, keychain=keychain) org_config.refresh_oauth_token(keychain) return org_config - except HTTPError as err: - handle_sf_error( - err, scratch_org=scratch_org, originating_user_id=originating_user_id - ) def get_devhub_api(*, devhub_username, scratch_org=None): @@ -121,7 +126,7 @@ def get_devhub_api(*, devhub_username, scratch_org=None): This only works if the user has already authorized the connected app via an interactive login flow, such as the django-allauth login. """ - try: + with delete_org_on_error(scratch_org=scratch_org): jwt = jwt_session(SF_CLIENT_ID, SF_CLIENT_KEY, devhub_username) return SimpleSalesforce( instance_url=jwt["instance_url"], @@ -129,8 +134,6 @@ def get_devhub_api(*, devhub_username, scratch_org=None): client_id="Metecho", version="49.0", ) - except HTTPError as err: - handle_sf_error(err, scratch_org=scratch_org) def get_org_details(*, cci, org_name, project_path): From 4d004913506f32b63e8e78938c07177088f16b18 Mon Sep 17 00:00:00 2001 From: Jonny Gerig Meyer Date: Tue, 8 Dec 2020 15:39:18 -0500 Subject: [PATCH 09/12] Rename Project -> Epic. --- Dockerfile | 3 +- docs/api/{projects.rst => epics.rst} | 22 +- docs/api/index.rst | 2 +- docs/api/tasks.rst | 8 +- email_templates/pr_created_for_task.txt | 2 +- email_templates/scratch_org_expiry_email.txt | 4 +- email_templates/user_assigned_to_task.txt | 4 +- locales/en/translation.json | 64 +-- locales_dev/en/translation.json | 64 +-- metecho/api/admin.py | 16 +- metecho/api/filters.py | 8 +- metecho/api/gh.py | 2 +- metecho/api/hook_serializers.py | 16 +- metecho/api/jobs.py | 124 +++--- .../api/management/commands/populate_data.py | 18 +- .../commands/resync_all_gh_commit_data.py | 2 +- .../tests/resync_all_gh_commit_data.py | 2 +- .../api/management/commands/truncate_data.py | 8 +- .../migrations/0088_rename_project_epic.py | 21 + .../0089_rename_project_fks_epic.py | 28 ++ metecho/api/models.py | 88 ++-- metecho/api/push.py | 8 +- metecho/api/serializers.py | 44 +- metecho/api/sf_org_changes.py | 4 +- metecho/api/tests/admin.py | 22 +- metecho/api/tests/filters.py | 16 +- metecho/api/tests/hook_serializers.py | 36 +- metecho/api/tests/jobs.py | 102 +++-- metecho/api/tests/models.py | 114 +++--- metecho/api/tests/serializers.py | 141 ++++--- metecho/api/tests/sf_run_flow.py | 6 +- metecho/api/tests/views.py | 16 +- metecho/api/urls.py | 4 +- metecho/api/views.py | 41 +- metecho/conftest.py | 12 +- metecho/consumers.py | 2 +- metecho/tests/consumers.py | 16 +- .../confirmRemoveUserModal.tsx | 4 +- .../{projects => epics}/createForm.tsx | 36 +- .../components/{projects => epics}/detail.tsx | 191 +++++---- .../project404.tsx => epics/epic404.tsx} | 12 +- .../components/{projects => epics}/path.tsx | 14 +- .../{projects => epics}/progress.tsx | 6 +- .../components/{projects => epics}/steps.tsx | 35 +- .../table/collaboratorCell.tsx | 4 +- .../{projects => epics}/table/detailCell.tsx | 8 +- .../{projects => epics}/table/index.tsx | 28 +- .../{projects => epics}/table/statusCell.tsx | 12 +- src/js/components/repositories/detail.tsx | 64 +-- src/js/components/tasks/cards/card.tsx | 20 +- src/js/components/tasks/cards/index.tsx | 16 +- src/js/components/tasks/createForm.tsx | 16 +- src/js/components/tasks/detail.tsx | 54 +-- src/js/components/tasks/selectFlowType.tsx | 14 +- src/js/components/tasks/table.tsx | 57 ++- src/js/components/tasks/task404.tsx | 10 +- src/js/components/user/githubUser.tsx | 14 +- src/js/components/user/login.tsx | 4 +- src/js/components/utils/deleteModal.tsx | 14 +- src/js/components/utils/editModal.tsx | 18 +- ...Found.tsx => getEpicLoadingOrNotFound.tsx} | 20 +- .../utils/getTaskLoadingOrNotFound.tsx | 14 +- src/js/components/utils/index.tsx | 6 +- src/js/components/utils/pageOptions.tsx | 8 +- src/js/components/utils/submitModal.tsx | 12 +- .../utils/useFetchEpicIfMissing.tsx | 38 ++ ...Missing.tsx => useFetchEpicsIfMissing.tsx} | 18 +- .../utils/useFetchProjectIfMissing.tsx | 38 -- .../utils/useFetchTasksIfMissing.tsx | 14 +- src/js/index.tsx | 6 +- src/js/store/actions.ts | 6 +- src/js/store/{projects => epics}/actions.ts | 46 +-- src/js/store/epics/reducer.ts | 255 ++++++++++++ src/js/store/epics/selectors.ts | 55 +++ src/js/store/index.ts | 6 +- src/js/store/projects/reducer.ts | 263 ------------ src/js/store/projects/selectors.ts | 55 --- src/js/store/tasks/reducer.ts | 42 +- src/js/store/tasks/selectors.ts | 14 +- src/js/utils/constants.ts | 14 +- src/js/utils/helpers.ts | 4 +- src/js/utils/routes.ts | 15 +- src/js/utils/websockets.ts | 50 +-- .../{_project-table.scss => _epic-table.scss} | 6 +- src/sass/components/_manifest.scss | 2 +- src/sass/components/_repo-images.scss | 2 +- src/sass/patterns/_data-tables.scss | 2 +- src/sass/patterns/_form-elements.scss | 2 +- .../__snapshots__/path.test.jsx.snap | 10 +- .../__snapshots__/steps.test.jsx.snap | 300 +++++++------- .../{projects => epics}/createForm.test.jsx | 52 ++- .../{projects => epics}/detail.test.jsx | 212 +++++----- test/js/components/epics/path.test.jsx | 26 ++ .../{projects => epics}/progress.test.jsx | 8 +- test/js/components/epics/steps.test.jsx | 87 ++++ test/js/components/projects/path.test.jsx | 29 -- test/js/components/projects/steps.test.jsx | 90 ----- .../components/repositories/detail.test.jsx | 106 ++--- test/js/components/tasks/cards.test.jsx | 20 +- test/js/components/tasks/createForm.test.jsx | 24 +- test/js/components/tasks/detail.test.jsx | 82 ++-- test/js/components/utils/deleteModal.test.jsx | 18 +- test/js/components/utils/editModal.test.jsx | 34 +- test/js/setupTests.js | 10 +- test/js/store/actions.test.js | 38 +- .../store/{projects => epics}/actions.test.js | 66 +-- .../store/{projects => epics}/reducer.test.js | 376 +++++++++--------- test/js/store/index.test.js | 2 +- test/js/store/orgs/actions.test.js | 48 +-- test/js/store/tasks/reducer.test.js | 108 ++--- test/js/utils/routes.test.js | 14 +- test/js/utils/websockets.test.js | 24 +- 112 files changed, 2249 insertions(+), 2289 deletions(-) rename docs/api/{projects.rst => epics.rst} (78%) create mode 100644 metecho/api/migrations/0088_rename_project_epic.py create mode 100644 metecho/api/migrations/0089_rename_project_fks_epic.py rename src/js/components/{projects => epics}/confirmRemoveUserModal.tsx (95%) rename src/js/components/{projects => epics}/createForm.tsx (91%) rename src/js/components/{projects => epics}/detail.tsx (72%) rename src/js/components/{projects/project404.tsx => epics/epic404.tsx} (51%) rename src/js/components/{projects => epics}/path.tsx (69%) rename src/js/components/{projects => epics}/progress.tsx (86%) rename src/js/components/{projects => epics}/steps.tsx (59%) rename src/js/components/{projects => epics}/table/collaboratorCell.tsx (84%) rename src/js/components/{projects => epics}/table/detailCell.tsx (91%) rename src/js/components/{projects => epics}/table/index.tsx (68%) rename src/js/components/{projects => epics}/table/statusCell.tsx (83%) rename src/js/components/utils/{getProjectLoadingOrNotFound.tsx => getEpicLoadingOrNotFound.tsx} (58%) create mode 100644 src/js/components/utils/useFetchEpicIfMissing.tsx rename src/js/components/utils/{useFetchProjectsIfMissing.tsx => useFetchEpicsIfMissing.tsx} (60%) delete mode 100644 src/js/components/utils/useFetchProjectIfMissing.tsx rename src/js/store/{projects => epics}/actions.ts (66%) create mode 100644 src/js/store/epics/reducer.ts create mode 100644 src/js/store/epics/selectors.ts delete mode 100644 src/js/store/projects/reducer.ts delete mode 100644 src/js/store/projects/selectors.ts rename src/sass/components/{_project-table.scss => _epic-table.scss} (69%) rename test/js/components/{projects => epics}/__snapshots__/path.test.jsx.snap (98%) rename test/js/components/{projects => epics}/__snapshots__/steps.test.jsx.snap (94%) rename test/js/components/{projects => epics}/createForm.test.jsx (85%) rename test/js/components/{projects => epics}/detail.test.jsx (75%) create mode 100644 test/js/components/epics/path.test.jsx rename test/js/components/{projects => epics}/progress.test.jsx (54%) create mode 100644 test/js/components/epics/steps.test.jsx delete mode 100644 test/js/components/projects/path.test.jsx delete mode 100644 test/js/components/projects/steps.test.jsx rename test/js/store/{projects => epics}/actions.test.js (73%) rename test/js/store/{projects => epics}/reducer.test.js (59%) diff --git a/Dockerfile b/Dockerfile index fa4b20283..ec088d788 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,8 +15,7 @@ COPY ./requirements /requirements RUN pip install --no-cache-dir --upgrade pip \ && pip install --no-cache-dir -r requirements/prod.txt RUN if [ "${BUILD_ENV}" = "development" ] ; then \ - pip install --no-cache-dir --upgrade pip \ - && pip install --no-cache-dir -r requirements/dev.txt; \ + pip install --no-cache-dir -r requirements/dev.txt; \ fi # Install sfdx diff --git a/docs/api/projects.rst b/docs/api/epics.rst similarity index 78% rename from docs/api/projects.rst rename to docs/api/epics.rst index 27271cb79..c58f439ae 100644 --- a/docs/api/projects.rst +++ b/docs/api/epics.rst @@ -1,15 +1,15 @@ -======== -Projects -======== +===== +Epics +===== -This allows list, retrieve, create, update, and delete of Projects. +This allows list, retrieve, create, update, and delete of Epics. Retrieve -------- .. sourcecode:: http - GET /api/projects/ HTTP/1.1 + GET /api/epics/ HTTP/1.1 .. sourcecode:: http @@ -17,20 +17,20 @@ Retrieve { "count": 150, - "next": "https://.../api/projects/?page=2", + "next": "https://.../api/epics/?page=2", "previous": null, "results": [ { "id": "3Lw7OwK", - "name": "Test Project", + "name": "Test Epic", "description": "This is *safely* rendered Markdown.", "description_rendered": "

This is safely rendered Markdown.

", - "slug": "test-project", + "slug": "test-epic", "old_slugs": [], "repository": "zVQYrye", - "branch_name": "feature/test-project", - "branch_url": "https://github.com/SFDO-Tooling/test-repository/tree/feature/test-project", - "branch_diff_url": "https://github.com/SFDO-Tooling/test-repository/compare/main...feature/test-project", + "branch_name": "feature/test-epic", + "branch_url": "https://github.com/SFDO-Tooling/test-repository/tree/feature/test-epic", + "branch_diff_url": "https://github.com/SFDO-Tooling/test-repository/compare/main...feature/test-epic", "has_unmerged_commits": true, "currently_creating_pr": false, "currently_fetching_org_config_names": false, diff --git a/docs/api/index.rst b/docs/api/index.rst index d2a83d7ee..d8105103a 100644 --- a/docs/api/index.rst +++ b/docs/api/index.rst @@ -7,6 +7,6 @@ API Reference user repositories - projects + epics tasks scratch-orgs diff --git a/docs/api/tasks.rst b/docs/api/tasks.rst index 6e15a8de2..a31ab2992 100644 --- a/docs/api/tasks.rst +++ b/docs/api/tasks.rst @@ -21,7 +21,7 @@ Retrieve "name": "Test Task", "description": "This is *safely* rendered Markdown.", "description_rendered": "

This is safely rendered Markdown.

", - "project": "3Lw7OwK", + "epic": "3Lw7OwK", "assigned_dev": { "id": "12345", "login": "username", @@ -32,9 +32,9 @@ Retrieve "old_slugs": [], "has_unmerged_commits": true, "currently_creating_pr": false, - "branch_name": "feature/test-project__test-task", - "branch_url": "https://github.com/SFDO-Tooling/test-repository/tree/feature/test-project__test-task", - "branch_diff_url": "https://github.com/SFDO-Tooling/test-repository/compare/feature/test-project...feature/test-project__test-task", + "branch_name": "feature/test-epic__test-task", + "branch_url": "https://github.com/SFDO-Tooling/test-repository/tree/feature/test-epic__test-task", + "branch_diff_url": "https://github.com/SFDO-Tooling/test-repository/compare/feature/test-epic...feature/test-epic__test-task", "commits": [ { "id": "617a512", diff --git a/email_templates/pr_created_for_task.txt b/email_templates/pr_created_for_task.txt index 52762975a..b065950ff 100644 --- a/email_templates/pr_created_for_task.txt +++ b/email_templates/pr_created_for_task.txt @@ -1,7 +1,7 @@ {% load i18n %}{% trans "Task Submitted For Testing on Metecho" %} {% blocktrans trimmed %} -You are the assigned Tester for "{{ task_name }}" on {{ repo_name }} project "{{ project_name }}", and this task has been submitted for testing. To view this task, please log into Metecho as user "{{ assigned_user_name }}". We appreciate your contribution to the Salesforce community. Thanks! +You are the assigned Tester for "{{ task_name }}" on {{ repo_name }} epic "{{ epic_name }}", and this task has been submitted for testing. To view this task, please log into Metecho as user "{{ assigned_user_name }}". We appreciate your contribution to the Salesforce community. Thanks! {% endblocktrans %} {{ metecho_link }} diff --git a/email_templates/scratch_org_expiry_email.txt b/email_templates/scratch_org_expiry_email.txt index 0cf9ebe5e..8ba60985e 100644 --- a/email_templates/scratch_org_expiry_email.txt +++ b/email_templates/scratch_org_expiry_email.txt @@ -1,9 +1,9 @@ {% load i18n %}{% trans "Expiry Alert from Metecho" %} {% blocktrans trimmed count counter=days %} -Your development scratch org for "{{ task_name }}" on {{ repo_name }} project "{{ project_name }}" is set to expire in one day on {{ expiry_date }} You have uncommitted changes on your org that will be deleted. If you do not want to lose these changes, please log into Metecho as user "{{ user_name }}", navigate to the task, and click the "Retrieve Changes from Dev Org" button. We appreciate your contribution to the Salesforce community. Thanks! +Your development scratch org for "{{ task_name }}" on {{ repo_name }} epic "{{ epic_name }}" is set to expire in one day on {{ expiry_date }} You have uncommitted changes on your org that will be deleted. If you do not want to lose these changes, please log into Metecho as user "{{ user_name }}", navigate to the task, and click the "Retrieve Changes from Dev Org" button. We appreciate your contribution to the Salesforce community. Thanks! {% plural %} -Your development scratch org for "{{ task_name }}" on {{ repo_name }} project "{{ project_name }}" is set to expire in {{ days }} days on {{ expiry_date }} You have uncommitted changes on your org that will be deleted. If you do not want to lose these changes, please log into Metecho as user "{{ user_name }}", navigate to the task, and click the "Retrieve Changes from Dev Org" button. We appreciate your contribution to the Salesforce community. Thanks! +Your development scratch org for "{{ task_name }}" on {{ repo_name }} epic "{{ epic_name }}" is set to expire in {{ days }} days on {{ expiry_date }} You have uncommitted changes on your org that will be deleted. If you do not want to lose these changes, please log into Metecho as user "{{ user_name }}", navigate to the task, and click the "Retrieve Changes from Dev Org" button. We appreciate your contribution to the Salesforce community. Thanks! {% endblocktrans %} {{ metecho_link }} diff --git a/email_templates/user_assigned_to_task.txt b/email_templates/user_assigned_to_task.txt index d6748053e..05b49838a 100644 --- a/email_templates/user_assigned_to_task.txt +++ b/email_templates/user_assigned_to_task.txt @@ -1,9 +1,9 @@ {% load i18n %}{% trans "Task Assignment Alert from Metecho" %} {% if user_name %}{% blocktrans trimmed %} -You have been assigned as the {{ role }} for "{{ task_name }}" on {{ repo_name }} project "{{ project_name }}" by user "{{ user_name }}". To view this task, please log into Metecho as user "{{ assigned_user_name }}". We appreciate your contribution to the Salesforce community. Thanks! +You have been assigned as the {{ role }} for "{{ task_name }}" on {{ repo_name }} epic "{{ epic_name }}" by user "{{ user_name }}". To view this task, please log into Metecho as user "{{ assigned_user_name }}". We appreciate your contribution to the Salesforce community. Thanks! {% endblocktrans %}{% else %}{% blocktrans trimmed %} -You have been assigned as the {{ role }} for "{{ task_name }}" on {{ repo_name }} project "{{ project_name }}". To view this task, please log into Metecho as user "{{ assigned_user_name }}". We appreciate your contribution to the Salesforce community. Thanks! +You have been assigned as the {{ role }} for "{{ task_name }}" on {{ repo_name }} epic "{{ epic_name }}". To view this task, please log into Metecho as user "{{ assigned_user_name }}". We appreciate your contribution to the Salesforce community. Thanks! {% endblocktrans %}{% endif %} {{ metecho_link }} diff --git a/locales/en/translation.json b/locales/en/translation.json index 5726ea509..886973e71 100644 --- a/locales/en/translation.json +++ b/locales/en/translation.json @@ -5,7 +5,7 @@ "Active": "Active", "Add": "Add", "Add & New": "Add & New", - "Add Project Collaborators": "Add Project Collaborators", + "Add Epic Collaborators": "Add Epic Collaborators", "Add a Task": "Add a Task", "Add a Task for": "Add a Task for", "Add a task": "Add a task", @@ -23,7 +23,7 @@ "Assign a Developer": "Assign a Developer", "Assign a Developer to a task": "Assign a Developer to a task", "Assign a Tester": "Assign a Tester", - "Assign projects and tasks to members of your team.": "Assign projects and tasks to members of your team.", + "Assign epics and tasks to members of your team.": "Assign epics and tasks to members of your team.", "Authentication Error": "Authentication Error", "Author": "Author", "Back": "Back", @@ -50,8 +50,8 @@ "Completed item": "Completed item", "Confirm": "Confirm", "Confirm Changing Developer and Deleting Dev Org": "Confirm Changing Developer and Deleting Dev Org", + "Confirm Deleting Epic": "Confirm Deleting Epic", "Confirm Deleting Org With Unretrieved Changes": "Confirm Deleting Org With Unretrieved Changes", - "Confirm Deleting Project": "Confirm Deleting Project", "Confirm Deleting Task": "Confirm Deleting Task", "Confirm Removing Developer and Deleting Dev Org": "Confirm Removing Developer and Deleting Dev Org", "Connect to Salesforce": "Connect to Salesforce", @@ -62,10 +62,10 @@ "Create": "Create", "Create Org": "Create Org", "Create Repository": "Create Repository", - "Create a Project": "Create a Project", - "Create a Project for": "Create a Project for", "Create a Scratch Org for development": "Create a Scratch Org for development", "Create a Scratch Org for testing": "Create a Scratch Org for testing", + "Create an Epic": "Create an Epic", + "Create an Epic for": "Create an Epic for", "Create new branch on GitHub": "Create new branch on GitHub", "Creating Org…": "Creating Org…", "Creating a Scratch Org for development…": "Creating a Scratch Org for development…", @@ -76,8 +76,8 @@ "Currently Assigned": "Currently Assigned", "Custom Domain": "Custom Domain", "Delete": "Delete", + "Delete Epic": "Delete Epic", "Delete Org": "Delete Org", - "Delete Project": "Delete Project", "Delete Task": "Delete Task", "Deleting Org…": "Deleting Org…", "Deleting…": "Deleting…", @@ -93,11 +93,16 @@ "Developer notes": "Developer notes", "Disconnect from Salesforce": "Disconnect from Salesforce", "Double space to nest": "Double space to nest", - "Easily create a scratch org with the existing project.": "Easily create a scratch org with the existing project.", - "Edit Project": "Edit Project", + "Easily create a scratch org with the existing epic.": "Easily create a scratch org with the existing epic.", + "Edit Epic": "Edit Epic", "Edit Task": "Edit Task", "Enable Dev Hub": "Enable Dev Hub", "Enabled": "Enabled", + "Epic": "Epic", + "Epic Branch": "Epic Branch", + "Epic Name": "Epic Name", + "Epic Options": "Epic Options", + "Epics for": "Epics for", "Error": "Error", "Example": "Example", "Expires:": "Expires:", @@ -124,14 +129,14 @@ "Metecho": "Metecho", "Metecho Terms of Service": "Metecho Terms of Service", "Metecho is a tool to help collaborate on sharable Salesforce projects.": "Metecho is a tool to help collaborate on sharable Salesforce projects.", - "Next Steps for this Project": "Next Steps for this Project", + "Next Steps for this Epic": "Next Steps for this Epic", "Next Steps for this Task": "Next Steps for this Task", "No matching branches found.": "No matching branches found.", "Not Enabled": "Not Enabled", "Notify": "Notify", "Notify Assigned Developer by Email": "Notify Assigned Developer by Email", "Notify Assigned Tester by Email": "Notify Assigned Tester by Email", - "Only project collaborators appear in the list below.": "Only project collaborators appear in the list below.", + "Only epic collaborators appear in the list below.": "Only epic collaborators appear in the list below.", "Optional Configuration Directories": "Optional Configuration Directories", "Org Actions": "Org Actions", "Org Type": "Org Type", @@ -147,11 +152,6 @@ "Prevents fire from building": "Prevents fire from building", "Prevents fire spread": "Prevents fire spread", "Proceed to Outdated Org": "Proceed to Outdated Org", - "Project": "Project", - "Project Branch": "Project Branch", - "Project Name": "Project Name", - "Project Options": "Project Options", - "Projects for": "Projects for", "Re-Sync Collaborators": "Re-Sync Collaborators", "Re-Sync GitHub Repositories": "Re-Sync GitHub Repositories", "Reassigning Org Ownership…": "Reassigning Org Ownership…", @@ -179,7 +179,7 @@ "Saving Ignored Changes…": "Saving Ignored Changes…", "Saving…": "Saving…", "Select a Repository": "Select a Repository", - "Select a branch to use for this project": "Select a branch to use for this project", + "Select a branch to use for this epic": "Select a branch to use for this epic", "Select the changes to retrieve or ignore": "Select the changes to retrieve or ignore", "Select the location to retrieve changes": "Select the location to retrieve changes", "Selected Changes": "Selected Changes", @@ -188,21 +188,21 @@ "Status:": "Status:", "Stops widget from refreshing": "Stops widget from refreshing", "Subheading": "Subheading", - "Submit Project for Review on GitHub": "Submit Project for Review on GitHub", + "Submit Epic for Review on GitHub": "Submit Epic for Review on GitHub", "Submit Review": "Submit Review", "Submit Task Review": "Submit Task Review", "Submit Task for Testing": "Submit Task for Testing", "Submit a review": "Submit a review", "Submit changes for testing": "Submit changes for testing", - "Submit this project for review on GitHub": "Submit this project for review on GitHub", + "Submit this epic for review on GitHub": "Submit this epic for review on GitHub", "Submit this task for testing": "Submit this task for testing", "Submitted review": "Submitted review", - "Submitting Project for Review on GitHub…": "Submitting Project for Review on GitHub…", + "Submitting Epic for Review on GitHub…": "Submitting Epic for Review on GitHub…", "Submitting Review…": "Submitting Review…", "Submitting Task for Testing…": "Submitting Task for Testing…", "Submitting a review…": "Submitting a review…", "Submitting changes for testing…": "Submitting changes for testing…", - "Submitting project for review on GitHub…": "Submitting project for review on GitHub…", + "Submitting epic for review on GitHub…": "Submitting epic for review on GitHub…", "Submitting review…": "Submitting review…", "Successfully created Dev Org for task": "Successfully created Dev Org for task", "Successfully created Dev Org.": "Successfully created Dev Org.", @@ -216,7 +216,7 @@ "Successfully refreshed your scratch org.": "Successfully refreshed your scratch org.", "Successfully retrieved changes from your scratch org on task": "Successfully retrieved changes from your scratch org on task", "Successfully retrieved changes from your scratch org.": "Successfully retrieved changes from your scratch org.", - "Successfully submitted project for review on GitHub:": "Successfully submitted project for review on GitHub:", + "Successfully submitted epic for review on GitHub:": "Successfully submitted epic for review on GitHub:", "Successfully submitted review for task:": "Successfully submitted review for task:", "Successfully submitted task for testing:": "Successfully submitted task for testing:", "Syncing Collaborators…": "Syncing Collaborators…", @@ -236,7 +236,7 @@ "Tester": "Tester", "The existing Dev Org for this task has unretrieved changes. Changing the assigned developer will also delete the org, and any changes will be lost. Are you sure you want to do that?": "The existing Dev Org for this task has unretrieved changes. Changing the assigned developer will also delete the org, and any changes will be lost. Are you sure you want to do that?", "The existing Dev Org for this task has unretrieved changes. Removing the assigned developer will also delete the org, and any changes will be lost. Are you sure you want to do that?": "The existing Dev Org for this task has unretrieved changes. Removing the assigned developer will also delete the org, and any changes will be lost. Are you sure you want to do that?", - "There are no collaborators on this project. Add collaborators to the project before assigning them to this task.": "There are no collaborators on this project. Add collaborators to the project before assigning them to this task.", + "There are no collaborators on this epic. Add collaborators to the epic before assigning them to this task.": "There are no collaborators on this epic. Add collaborators to the epic before assigning them to this task.", "There aren't any available branches at this time.": "There aren't any available branches at this time.", "This becomes bold text": "This becomes bold text", "This becomes italic text": "This becomes italic text", @@ -266,7 +266,7 @@ "Uh oh. There was an error refreshing your scratch org.": "Uh oh. There was an error refreshing your scratch org.", "Uh oh. There was an error retrieving changes from your scratch org on task": "Uh oh. There was an error retrieving changes from your scratch org on task", "Uh oh. There was an error retrieving changes from your scratch org.": "Uh oh. There was an error retrieving changes from your scratch org.", - "Uh oh. There was an error submitting project for review on GitHub": "Uh oh. There was an error submitting project for review on GitHub", + "Uh oh. There was an error submitting epic for review on GitHub": "Uh oh. There was an error submitting epic for review on GitHub", "Uh oh. There was an error submitting review for task": "Uh oh. There was an error submitting review for task", "Uh oh. There was an error submitting task for testing": "Uh oh. There was an error submitting task for testing", "Un-ignore Selected Changes": "Un-ignore Selected Changes", @@ -279,11 +279,11 @@ "User:": "User:", "View Branch": "View Branch", "View Changes": "View Changes", + "View Epic to Add Collaborators": "View Epic to Add Collaborators", "View Org": "View Org", - "View Project to Add Collaborators": "View Project to Add Collaborators", "View Pull Request": "View Pull Request", "View pull request.": "View pull request.", - "View the project to add collaborators.": "View the project to add collaborators.", + "View the epic to add collaborators.": "View the epic to add collaborators.", "View your new org.": "View your new org.", "Welcome to Metecho!": "Welcome to Metecho!", "What can I do with Metecho?": "What can I do with Metecho?", @@ -293,15 +293,17 @@ "avatar for user": "avatar for user", "by email": "by email", "check again": "check again", - "confirmDeleteProject": "Are you sure you want to delete project “<1>{{name}}”? This will also delete any tasks and scratch orgs in this project.", + "confirmDeleteEpic": "Are you sure you want to delete epic “<1>{{name}}”? This will also delete any tasks and scratch orgs in this epic.", "confirmDeleteTask": "Are you sure you want to delete task “<1>{{name}}”? This will also delete any scratch orgs in this task.", "confirmRemoveCollaboratorsHeading": "Confirm Removing Collaborator", "confirmRemoveCollaboratorsHeading_plural": "Confirm Removing Collaborators", - "confirmRemoveCollaboratorsMessage": "The following user is being removed from this project, but is already assigned to at least one task. Removing this user will not remove them from any assigned tasks. Are you sure you want to remove this user from the project?", - "confirmRemoveCollaboratorsMessage_plural": "The following users are being removed from this project, but are already assigned to at least one task. Removing them will not remove them from any assigned tasks. Are you sure you want to remove them from the project?", - "createProjectHelpText": "Projects in Metecho are the high-level features that can be broken down into smaller parts by creating Tasks. You can create a new project or create a project based on an existing GitHub branch. Every project requires a unique project name, which becomes the branch name in GitHub unless you choose to use an existing branch.", + "confirmRemoveCollaboratorsMessage": "The following user is being removed from this epic, but is already assigned to at least one task. Removing this user will not remove them from any assigned tasks. Are you sure you want to remove this user from the epic?", + "confirmRemoveCollaboratorsMessage_plural": "The following users are being removed from this epic, but are already assigned to at least one task. Removing them will not remove them from any assigned tasks. Are you sure you want to remove them from the epic?", + "createEpicHelpText": "Epics in Metecho are the high-level features that can be broken down into smaller parts by creating Tasks. You can create a new epic or create an epic based on an existing GitHub branch. Every epic requires a unique epic name, which becomes the branch name in GitHub unless you choose to use an existing branch.", "devHubInfo": "Connection to a Salesforce org with Dev Hub enabled is required to create a Dev or Test scratch org. Learn how to <2>create a Developer Edition org and <6>enable Dev Hub.", "devHubNotEnabled": "This Salesforce org does not have Dev Hub enabled or your user does not have permission to create scratch orgs. Learn how to <2>enable Dev Hub.", + "epicCollaborators": "Only users who have access to the GitHub repository for this epic will appear in the list below. Visit GitHub to invite additional collaborators to this repository.", + "epicNotFound": "We can’t find the epic you’re looking for. Try <2>another epic from that repository?", "errorWithAccount": "An error occurred with your account. Try the <2>home page?", "ignored": "ignored", "markdownGuide": "For more options, view this <2>Markdown Guide.", @@ -316,8 +318,6 @@ "orgStatusMsg": "{{count}} unretrieved change", "orgStatusMsg_plural": "{{count}} unretrieved changes", "pageCannotBeFound": "That page cannot be found. Try the <2>home page?", - "projectCollaborators": "Only users who have access to the GitHub repository for this project will appear in the list below. Visit GitHub to invite additional collaborators to this repository.", - "projectNotFound": "We can’t find the project you’re looking for. Try <2>another project from that repository?", "refresh list of available org types": "refresh list of available org types", "refreshTestOrgMsg": "<0>[Recommended] This option will re-create your Test Org with the latest changes, allowing you to test the most recent version.", "releaseNotesInfo": "Details entered will be used when publishing release notes. Please use Markdown to format your notes.", @@ -331,7 +331,7 @@ "targetDirectoryPostInfo": "Post-Install Directories are for unmanaged metadata components that should always be deployed after deploying or installing the package.", "targetDirectoryPreInfo": "Pre-Install Directories are for unmanaged metadata components that should always be deployed prior to deploying or installing the package.", "targetDirectorySourceInfo": "Package Directories hold the main metadata components of the package you are building. These components will be deployed as an unmanaged package during development, but installed as a managed or unlocked package in production.", - "taskNotFound": "We can’t find the task you’re looking for. Try <2>another task from that project?", + "taskNotFound": "We can’t find the task you’re looking for. Try <2>another task from that epic?", "tasksComplete": "<0>{{complete}} of <2>{{total}} Complete", "to refresh this list or": "to refresh this list or", "up to date": "up to date", diff --git a/locales_dev/en/translation.json b/locales_dev/en/translation.json index ef1ec6bb9..a77668e30 100644 --- a/locales_dev/en/translation.json +++ b/locales_dev/en/translation.json @@ -5,7 +5,7 @@ "Active": "Active", "Add": "Add", "Add & New": "Add & New", - "Add Project Collaborators": "Add Project Collaborators", + "Add Epic Collaborators": "Add Epic Collaborators", "Add a Task": "Add a Task", "Add a Task for": "Add a Task for", "Add a task": "Add a task", @@ -23,7 +23,7 @@ "Assign a Developer": "Assign a Developer", "Assign a Developer to a task": "Assign a Developer to a task", "Assign a Tester": "Assign a Tester", - "Assign projects and tasks to members of your team.": "Assign projects and tasks to members of your team.", + "Assign epics and tasks to members of your team.": "Assign epics and tasks to members of your team.", "Authentication Error": "Authentication Error", "Author": "Author", "Back": "Back", @@ -50,8 +50,8 @@ "Completed item": "Completed item", "Confirm": "Confirm", "Confirm Changing Developer and Deleting Dev Org": "Confirm Changing Developer and Deleting Dev Org", + "Confirm Deleting Epic": "Confirm Deleting Epic", "Confirm Deleting Org With Unretrieved Changes": "Confirm Deleting Org With Unretrieved Changes", - "Confirm Deleting Project": "Confirm Deleting Project", "Confirm Deleting Task": "Confirm Deleting Task", "Confirm Removing Developer and Deleting Dev Org": "Confirm Removing Developer and Deleting Dev Org", "Connect to Salesforce": "Connect to Salesforce", @@ -62,10 +62,10 @@ "Create": "Create", "Create Org": "Create Org", "Create Repository": "Create Repository", - "Create a Project": "Create a Project", - "Create a Project for": "Create a Project for", "Create a Scratch Org for development": "Create a Scratch Org for development", "Create a Scratch Org for testing": "Create a Scratch Org for testing", + "Create an Epic": "Create an Epic", + "Create an Epic for": "Create an Epic for", "Create new branch on GitHub": "Create new branch on GitHub", "Creating Org…": "Creating Org…", "Creating a Scratch Org for development…": "Creating a Scratch Org for development…", @@ -76,8 +76,8 @@ "Currently Assigned": "Currently Assigned", "Custom Domain": "Custom Domain", "Delete": "Delete", + "Delete Epic": "Delete Epic", "Delete Org": "Delete Org", - "Delete Project": "Delete Project", "Delete Task": "Delete Task", "Deleting Org…": "Deleting Org…", "Deleting…": "Deleting…", @@ -93,11 +93,16 @@ "Developer notes": "Developer notes", "Disconnect from Salesforce": "Disconnect from Salesforce", "Double space to nest": "Double space to nest", - "Easily create a scratch org with the existing project.": "Easily create a scratch org with the existing project.", - "Edit Project": "Edit Project", + "Easily create a scratch org with the existing epic.": "Easily create a scratch org with the existing epic.", + "Edit Epic": "Edit Epic", "Edit Task": "Edit Task", "Enable Dev Hub": "Enable Dev Hub", "Enabled": "Enabled", + "Epic": "Epic", + "Epic Branch": "Epic Branch", + "Epic Name": "Epic Name", + "Epic Options": "Epic Options", + "Epics for": "Epics for", "Error": "Error", "Example": "Example", "Expires:": "Expires:", @@ -124,14 +129,14 @@ "Metecho": "Metecho", "Metecho Terms of Service": "Metecho Terms of Service", "Metecho is a tool to help collaborate on sharable Salesforce projects.": "Metecho is a tool to help collaborate on sharable Salesforce projects.", - "Next Steps for this Project": "Next Steps for this Project", + "Next Steps for this Epic": "Next Steps for this Epic", "Next Steps for this Task": "Next Steps for this Task", "No matching branches found.": "No matching branches found.", "Not Enabled": "Not Enabled", "Notify": "Notify", "Notify Assigned Developer by Email": "Notify Assigned Developer by Email", "Notify Assigned Tester by Email": "Notify Assigned Tester by Email", - "Only project collaborators appear in the list below.": "Only project collaborators appear in the list below.", + "Only epic collaborators appear in the list below.": "Only epic collaborators appear in the list below.", "Optional Configuration Directories": "Optional Configuration Directories", "Org Actions": "Org Actions", "Org Type": "Org Type", @@ -147,11 +152,6 @@ "Prevents fire from building": "Prevents fire from building", "Prevents fire spread": "Prevents fire spread", "Proceed to Outdated Org": "Proceed to Outdated Org", - "Project": "Project", - "Project Branch": "Project Branch", - "Project Name": "Project Name", - "Project Options": "Project Options", - "Projects for": "Projects for", "Re-Sync Collaborators": "Re-Sync Collaborators", "Re-Sync GitHub Repositories": "Re-Sync GitHub Repositories", "Reassigning Org Ownership…": "Reassigning Org Ownership…", @@ -179,7 +179,7 @@ "Saving Ignored Changes…": "Saving Ignored Changes…", "Saving…": "Saving…", "Select a Repository": "Select a Repository", - "Select a branch to use for this project": "Select a branch to use for this project", + "Select a branch to use for this epic": "Select a branch to use for this epic", "Select the changes to retrieve or ignore": "Select the changes to retrieve or ignore", "Select the location to retrieve changes": "Select the location to retrieve changes", "Selected Changes": "Selected Changes", @@ -188,21 +188,21 @@ "Status:": "Status:", "Stops widget from refreshing": "Stops widget from refreshing", "Subheading": "Subheading", - "Submit Project for Review on GitHub": "Submit Project for Review on GitHub", + "Submit Epic for Review on GitHub": "Submit Epic for Review on GitHub", "Submit Review": "Submit Review", "Submit Task Review": "Submit Task Review", "Submit Task for Testing": "Submit Task for Testing", "Submit a review": "Submit a review", "Submit changes for testing": "Submit changes for testing", - "Submit this project for review on GitHub": "Submit this project for review on GitHub", + "Submit this epic for review on GitHub": "Submit this epic for review on GitHub", "Submit this task for testing": "Submit this task for testing", "Submitted review": "Submitted review", - "Submitting Project for Review on GitHub…": "Submitting Project for Review on GitHub…", + "Submitting Epic for Review on GitHub…": "Submitting Epic for Review on GitHub…", "Submitting Review…": "Submitting Review…", "Submitting Task for Testing…": "Submitting Task for Testing…", "Submitting a review…": "Submitting a review…", "Submitting changes for testing…": "Submitting changes for testing…", - "Submitting project for review on GitHub…": "Submitting project for review on GitHub…", + "Submitting epic for review on GitHub…": "Submitting epic for review on GitHub…", "Submitting review…": "Submitting review…", "Successfully created Dev Org for task": "Successfully created Dev Org for task", "Successfully created Dev Org.": "Successfully created Dev Org.", @@ -216,7 +216,7 @@ "Successfully refreshed your scratch org.": "Successfully refreshed your scratch org.", "Successfully retrieved changes from your scratch org on task": "Successfully retrieved changes from your scratch org on task", "Successfully retrieved changes from your scratch org.": "Successfully retrieved changes from your scratch org.", - "Successfully submitted project for review on GitHub:": "Successfully submitted project for review on GitHub:", + "Successfully submitted epic for review on GitHub:": "Successfully submitted epic for review on GitHub:", "Successfully submitted review for task:": "Successfully submitted review for task:", "Successfully submitted task for testing:": "Successfully submitted task for testing:", "Syncing Collaborators…": "Syncing Collaborators…", @@ -236,7 +236,7 @@ "Tester": "Tester", "The existing Dev Org for this task has unretrieved changes. Changing the assigned developer will also delete the org, and any changes will be lost. Are you sure you want to do that?": "The existing Dev Org for this task has unretrieved changes. Changing the assigned developer will also delete the org, and any changes will be lost. Are you sure you want to do that?", "The existing Dev Org for this task has unretrieved changes. Removing the assigned developer will also delete the org, and any changes will be lost. Are you sure you want to do that?": "The existing Dev Org for this task has unretrieved changes. Removing the assigned developer will also delete the org, and any changes will be lost. Are you sure you want to do that?", - "There are no collaborators on this project. Add collaborators to the project before assigning them to this task.": "There are no collaborators on this project. Add collaborators to the project before assigning them to this task.", + "There are no collaborators on this epic. Add collaborators to the epic before assigning them to this task.": "There are no collaborators on this epic. Add collaborators to the epic before assigning them to this task.", "There aren't any available branches at this time.": "There aren't any available branches at this time.", "This becomes bold text": "This becomes bold text", "This becomes italic text": "This becomes italic text", @@ -266,7 +266,7 @@ "Uh oh. There was an error refreshing your scratch org.": "Uh oh. There was an error refreshing your scratch org.", "Uh oh. There was an error retrieving changes from your scratch org on task": "Uh oh. There was an error retrieving changes from your scratch org on task", "Uh oh. There was an error retrieving changes from your scratch org.": "Uh oh. There was an error retrieving changes from your scratch org.", - "Uh oh. There was an error submitting project for review on GitHub": "Uh oh. There was an error submitting project for review on GitHub", + "Uh oh. There was an error submitting epic for review on GitHub": "Uh oh. There was an error submitting epic for review on GitHub", "Uh oh. There was an error submitting review for task": "Uh oh. There was an error submitting review for task", "Uh oh. There was an error submitting task for testing": "Uh oh. There was an error submitting task for testing", "Un-ignore Selected Changes": "Un-ignore Selected Changes", @@ -279,11 +279,11 @@ "User:": "User:", "View Branch": "View Branch", "View Changes": "View Changes", + "View Epic to Add Collaborators": "View Epic to Add Collaborators", "View Org": "View Org", - "View Project to Add Collaborators": "View Project to Add Collaborators", "View Pull Request": "View Pull Request", "View pull request.": "View pull request.", - "View the project to add collaborators.": "View the project to add collaborators.", + "View the epic to add collaborators.": "View the epic to add collaborators.", "View your new org.": "View your new org.", "Welcome to Metecho!": "Welcome to Metecho!", "What can I do with Metecho?": "What can I do with Metecho?", @@ -293,15 +293,17 @@ "avatar for user": "avatar for user", "by email": "by email", "check again": "check again", - "confirmDeleteProject": "Are you sure you want to delete project “<1>{{name}}”? This will also delete any tasks and scratch orgs in this project.", + "confirmDeleteEpic": "Are you sure you want to delete epic “<1>{{name}}”? This will also delete any tasks and scratch orgs in this epic.", "confirmDeleteTask": "Are you sure you want to delete task “<1>{{name}}”? This will also delete any scratch orgs in this task.", "confirmRemoveCollaboratorsHeading": "Confirm Removing Collaborator", "confirmRemoveCollaboratorsHeading_plural": "Confirm Removing Collaborator", - "confirmRemoveCollaboratorsMessage": "The following user is being removed from this project, but is already assigned to at least one task. Removing this user will not remove them from any assigned tasks. Are you sure you want to remove this user from the project?", - "confirmRemoveCollaboratorsMessage_plural": "The following user is being removed from this project, but is already assigned to at least one task. Removing this user will not remove them from any assigned tasks. Are you sure you want to remove this user from the project?", - "createProjectHelpText": "Projects in Metecho are the high-level features that can be broken down into smaller parts by creating Tasks. You can create a new project or create a project based on an existing GitHub branch. Every project requires a unique project name, which becomes the branch name in GitHub unless you choose to use an existing branch.", + "confirmRemoveCollaboratorsMessage": "The following user is being removed from this epic, but is already assigned to at least one task. Removing this user will not remove them from any assigned tasks. Are you sure you want to remove this user from the epic?", + "confirmRemoveCollaboratorsMessage_plural": "The following user is being removed from this epic, but is already assigned to at least one task. Removing this user will not remove them from any assigned tasks. Are you sure you want to remove this user from the epic?", + "createEpicHelpText": "Epics in Metecho are the high-level features that can be broken down into smaller parts by creating Tasks. You can create a new epic or create an epic based on an existing GitHub branch. Every epic requires a unique epic name, which becomes the branch name in GitHub unless you choose to use an existing branch.", "devHubInfo": "Connection to a Salesforce org with Dev Hub enabled is required to create a Dev or Test scratch org. Learn how to <2>create a Developer Edition org and <6>enable Dev Hub.", "devHubNotEnabled": "This Salesforce org does not have Dev Hub enabled or your user does not have permission to create scratch orgs. Learn how to <2>enable Dev Hub.", + "epicCollaborators": "Only users who have access to the GitHub repository for this epic will appear in the list below. Visit GitHub to invite additional collaborators to this repository.", + "epicNotFound": "We can’t find the epic you’re looking for. Try <2>another epic from that repository?", "errorWithAccount": "An error occurred with your account. Try the <2>home page?", "ignored": "ignored", "markdownGuide": "For more options, view this <2>Markdown Guide.", @@ -312,8 +314,6 @@ "orgStatusMsg": "orgStatusMsg", "orgStatusMsg_plural": "orgStatusMsg", "pageCannotBeFound": "That page cannot be found. Try the <2>home page?", - "projectCollaborators": "Only users who have access to the GitHub repository for this project will appear in the list below. Visit GitHub to invite additional collaborators to this repository.", - "projectNotFound": "We can’t find the project you’re looking for. Try <2>another project from that repository?", "refresh list of available org types": "refresh list of available org types", "refreshTestOrgMsg": "<0>[Recommended] This option will re-create your Test Org with the latest changes, allowing you to test the most recent version.", "releaseNotesInfo": "Details entered will be used when publishing release notes. Please use Markdown to format your notes.", @@ -327,7 +327,7 @@ "targetDirectoryPostInfo": "Post-Install Directories are for unmanaged metadata components that should always be deployed after deploying or installing the package.", "targetDirectoryPreInfo": "Pre-Install Directories are for unmanaged metadata components that should always be deployed prior to deploying or installing the package.", "targetDirectorySourceInfo": "Package Directories hold the main metadata components of the package you are building. These components will be deployed as an unmanaged package during development, but installed as a managed or unlocked package in production.", - "taskNotFound": "We can’t find the task you’re looking for. Try <2>another task from that project?", + "taskNotFound": "We can’t find the task you’re looking for. Try <2>another task from that epic?", "tasksComplete": "<0>{{complete}} of <2>{{total}} Complete", "to refresh this list or": "to refresh this list or", "up to date": "up to date", diff --git a/metecho/api/admin.py b/metecho/api/admin.py index 9250c4dee..a606f09ea 100644 --- a/metecho/api/admin.py +++ b/metecho/api/admin.py @@ -9,9 +9,9 @@ from . import gh from .models import ( + Epic, + EpicSlug, GitHubRepository, - Project, - ProjectSlug, Repository, RepositorySlug, ScratchOrg, @@ -100,23 +100,23 @@ class GitHubRepositoryAdmin(admin.ModelAdmin): list_display = ("repo_url", "user") -@admin.register(Project) -class ProjectAdmin(admin.ModelAdmin): +@admin.register(Epic) +class EpicAdmin(admin.ModelAdmin): list_display = ("name", "repository", "deleted_at") list_filter = (SoftDeletedListFilter,) -@admin.register(ProjectSlug) -class ProjectSlugAdmin(admin.ModelAdmin): +@admin.register(EpicSlug) +class EpicSlugAdmin(admin.ModelAdmin): list_display = ("slug", "parent") @admin.register(Task) class TaskAdmin(admin.ModelAdmin): - list_display = ("name", "project", "deleted_at") + list_display = ("name", "epic", "deleted_at") list_filter = (SoftDeletedListFilter,) fields = ( - ("name", "project"), + ("name", "epic"), "description", ("branch_name", "org_config_name"), "commits", diff --git a/metecho/api/filters.py b/metecho/api/filters.py index 65c54449f..bce0f0dc7 100644 --- a/metecho/api/filters.py +++ b/metecho/api/filters.py @@ -1,6 +1,6 @@ from django_filters import rest_framework as filters -from .models import Project, Repository, ScratchOrg, Task +from .models import Epic, Repository, ScratchOrg, Task def slug_is_active(queryset, name, value): @@ -15,11 +15,11 @@ class Meta: fields = ("slug",) -class ProjectFilter(filters.FilterSet): +class EpicFilter(filters.FilterSet): slug = filters.CharFilter(field_name="slugs", method=slug_is_active) class Meta: - model = Project + model = Epic fields = ("repository", "slug") @@ -28,7 +28,7 @@ class TaskFilter(filters.FilterSet): class Meta: model = Task - fields = ("project", "slug") + fields = ("epic", "slug") class ScratchOrgFilter(filters.FilterSet): diff --git a/metecho/api/gh.py b/metecho/api/gh.py index 03355fca4..b93e84056 100644 --- a/metecho/api/gh.py +++ b/metecho/api/gh.py @@ -162,7 +162,7 @@ def get_source_format(**kwargs): def try_to_make_branch(repository, *, new_branch, base_branch): branch_name = new_branch counter = 0 - max_length = 100 # From models.Project.branch_name + max_length = 100 # From models.Epic.branch_name while True: suffix = f"-{counter}" if counter else "" branch_name = f"{new_branch[:max_length-len(suffix)]}{suffix}" diff --git a/metecho/api/hook_serializers.py b/metecho/api/hook_serializers.py index 71a1f7af6..cd2d24a6f 100644 --- a/metecho/api/hook_serializers.py +++ b/metecho/api/hook_serializers.py @@ -3,7 +3,7 @@ from rest_framework import serializers from rest_framework.exceptions import NotFound -from .models import Project, Repository, Task +from .models import Epic, Repository, Task logger = logging.getLogger(__name__) @@ -62,17 +62,15 @@ def _get_matching_instance(self, repository): pr_base_ref = self.validated_data["pull_request"]["base"]["ref"] return ( Task.objects.filter( - project__repository=repository, pr_number=pr_number - ).first() - or Project.objects.filter( - repository=repository, pr_number=pr_number + epic__repository=repository, pr_number=pr_number ).first() + or Epic.objects.filter(repository=repository, pr_number=pr_number).first() or Task.objects.filter( - project__repository=repository, + epic__repository=repository, branch_name=pr_head_ref, - project__branch_name=pr_base_ref, + epic__branch_name=pr_base_ref, ).first() - or Project.objects.filter( + or Epic.objects.filter( repository=repository, branch_name=pr_head_ref, repository__branch_name=pr_base_ref, @@ -164,7 +162,7 @@ def process_hook(self): pr_number = self.validated_data["pull_request"]["number"] task = Task.objects.filter( - project__repository=repository, pr_number=pr_number + epic__repository=repository, pr_number=pr_number ).first() if not task: raise NotFound("No matching task.") diff --git a/metecho/api/jobs.py b/metecho/api/jobs.py index 32520feb0..cefbcf1ee 100644 --- a/metecho/api/jobs.py +++ b/metecho/api/jobs.py @@ -42,19 +42,19 @@ class TaskReviewIntegrityError(Exception): pass -def project_create_branch( +def epic_create_branch( *, user, - project, + epic, repository, repo_id, originating_user_id, should_finalize=True, ): - if project.branch_name: - project_branch_name = project.branch_name + if epic.branch_name: + epic_branch_name = epic.branch_name else: - branch_prefix = project.repository.branch_prefix + branch_prefix = epic.repository.branch_prefix if branch_prefix: prefix = branch_prefix elif settings.BRANCH_PREFIX: @@ -71,28 +71,28 @@ def project_create_branch( repository.default_branch ).latest_sha(), ) - project_branch_name = f"{prefix}{slugify(project.name)}" - project_branch_name = try_to_make_branch( + epic_branch_name = f"{prefix}{slugify(epic.name)}" + epic_branch_name = try_to_make_branch( repository, - new_branch=project_branch_name, + new_branch=epic_branch_name, base_branch=repository.default_branch, ) - project.branch_name = project_branch_name + epic.branch_name = epic_branch_name if should_finalize: - project.finalize_project_update(originating_user_id=originating_user_id) - return project_branch_name + epic.finalize_epic_update(originating_user_id=originating_user_id) + return epic_branch_name -def _create_branches_on_github(*, user, repo_id, project, task, originating_user_id): +def _create_branches_on_github(*, user, repo_id, epic, task, originating_user_id): """ Expects to be called in the context of a local github checkout. """ repository = get_repo_info(user, repo_id=repo_id) - # Make project branch, with latest from project: - project.refresh_from_db() - project_branch_name = project_create_branch( - project=project, + # Make epic branch, with latest from epic: + epic.refresh_from_db() + epic_branch_name = epic_create_branch( + epic=epic, repository=repository, user=user, repo_id=repo_id, @@ -105,11 +105,11 @@ def _create_branches_on_github(*, user, repo_id, project, task, originating_user else: task_branch_name = try_to_make_branch( repository, - new_branch=f"{project_branch_name}__{slugify(task.name)}", - base_branch=project_branch_name, + new_branch=f"{epic_branch_name}__{slugify(task.name)}", + base_branch=epic_branch_name, ) task.branch_name = task_branch_name - task.origin_sha = repository.branch(project_branch_name).latest_sha() + task.origin_sha = repository.branch(epic_branch_name).latest_sha() task.finalize_task_update(originating_user_id=originating_user_id) return task_branch_name @@ -135,10 +135,10 @@ def alert_user_about_expiring_org(*, org, days): get_unsaved_changes(org, originating_user_id=None) if org.unsaved_changes: task = org.task - project = task.project - repo = project.repository + epic = task.epic + repo = epic.repository metecho_link = get_user_facing_url( - path=["repositories", repo.slug, project.slug, task.slug] + path=["repositories", repo.slug, epic.slug, task.slug] ) # email user @@ -147,7 +147,7 @@ def alert_user_about_expiring_org(*, org, days): "scratch_org_expiry_email.txt", { "repo_name": repo.name, - "project_name": project.name, + "epic_name": epic.name, "task_name": task.name, "days": days, "expiry_date": org.expires_at, @@ -250,14 +250,14 @@ def create_branches_on_github_then_create_scratch_org( scratch_org.refresh_from_db() user = scratch_org.owner task = scratch_org.task - project = task.project + epic = task.epic try: repo_id = task.get_repo_id() commit_ish = _create_branches_on_github( user=user, repo_id=repo_id, - project=project, + epic=epic, task=task, originating_user_id=originating_user_id, ) @@ -561,7 +561,7 @@ def refresh_commits(*, repository, branch_name, originating_user_id): # that limit. commits = list(repo.commits(repo.branch(branch_name).latest_sha(), number=1000)) - tasks = Task.objects.filter(project__repository=repository, branch_name=branch_name) + tasks = Task.objects.filter(epic__repository=repository, branch_name=branch_name) for task in tasks: origin_sha_index = [commit.sha for commit in commits].index(task.origin_sha) task.commits = [ @@ -645,8 +645,8 @@ def submit_review(*, user, task, data, originating_user_id): target_url = get_user_facing_url( path=[ "repositories", - task.project.repository.slug, - task.project.slug, + task.epic.repository.slug, + task.epic.slug, task.slug, ] ) @@ -688,29 +688,29 @@ def submit_review(*, user, task, data, originating_user_id): submit_review_job = job(submit_review) -def create_gh_branch_for_new_project(project, *, user): +def create_gh_branch_for_new_epic(epic, *, user): try: - project.refresh_from_db() - repo_id = project.get_repo_id() + epic.refresh_from_db() + repo_id = epic.get_repo_id() repository = get_repo_info(user, repo_id=repo_id) - if project.branch_name: + if epic.branch_name: try: - head = repository.branch(project.branch_name).commit.sha + head = repository.branch(epic.branch_name).commit.sha except NotFoundError: try_to_make_branch( repository, - new_branch=project.branch_name, + new_branch=epic.branch_name, base_branch=repository.default_branch, ) else: base = repository.branch(repository.default_branch).commit.sha - project.has_unmerged_commits = ( + epic.has_unmerged_commits = ( repository.compare_commits(base, head).ahead_by > 0 ) # Check if has PR try: - head_str = f"{repository.owner}:{project.branch_name}" + head_str = f"{repository.owner}:{epic.branch_name}" # Defaults to descending order, so we'll find # the most recent one, if there is one to be # found: @@ -720,14 +720,14 @@ def create_gh_branch_for_new_project(project, *, user): ) ) # Check PR status - project.pr_number = pr.number - project.pr_is_merged = pr.merged_at is not None - project.pr_is_open = pr.closed_at is None and pr.merged_at is None + epic.pr_number = pr.number + epic.pr_is_merged = pr.merged_at is not None + epic.pr_is_open = pr.closed_at is None and pr.merged_at is None except StopIteration: pass else: - project_create_branch( - project=project, + epic_create_branch( + epic=epic, repository=repository, repo_id=repo_id, user=user, @@ -735,31 +735,31 @@ def create_gh_branch_for_new_project(project, *, user): should_finalize=False, ) except Exception: - project.refresh_from_db() - project.branch_name = "" - project.pr_number = None - project.pr_is_merged = False - project.pr_is_open = False - project.has_unmerged_commits = False - project.finalize_project_update(originating_user_id=str(user.id)) + epic.refresh_from_db() + epic.branch_name = "" + epic.pr_number = None + epic.pr_is_merged = False + epic.pr_is_open = False + epic.has_unmerged_commits = False + epic.finalize_epic_update(originating_user_id=str(user.id)) tb = traceback.format_exc() logger.error(tb) raise else: - project.finalize_project_update(originating_user_id=str(user.id)) + epic.finalize_epic_update(originating_user_id=str(user.id)) -create_gh_branch_for_new_project_job = job(create_gh_branch_for_new_project) +create_gh_branch_for_new_epic_job = job(create_gh_branch_for_new_epic) -def available_task_org_config_names(project, *, user): +def available_task_org_config_names(epic, *, user): try: - project.refresh_from_db() - repo_id = project.get_repo_id() + epic.refresh_from_db() + repo_id = epic.get_repo_id() repo = get_repo_info( None, - repo_owner=project.repository.repo_owner, - repo_name=project.repository.repo_name, + repo_owner=epic.repository.repo_owner, + repo_name=epic.repository.repo_name, ) with local_github_checkout(user, repo_id) as repo_root: config = get_project_config( @@ -767,23 +767,19 @@ def available_task_org_config_names(project, *, user): repo_name=repo.name, repo_url=repo.html_url, repo_owner=repo.owner.login, - repo_branch=project.branch_name, - repo_commit=repo.branch(project.branch_name).latest_sha(), + repo_branch=epic.branch_name, + repo_commit=repo.branch(epic.branch_name).latest_sha(), ) - project.available_task_org_config_names = [ + epic.available_task_org_config_names = [ {"key": key, **value} for key, value in config.orgs__scratch.items() ] except Exception: - project.finalize_available_task_org_config_names( - originating_user_id=str(user.id) - ) + epic.finalize_available_task_org_config_names(originating_user_id=str(user.id)) tb = traceback.format_exc() logger.error(tb) raise else: - project.finalize_available_task_org_config_names( - originating_user_id=str(user.id) - ) + epic.finalize_available_task_org_config_names(originating_user_id=str(user.id)) available_task_org_config_names_job = job(available_task_org_config_names) diff --git a/metecho/api/management/commands/populate_data.py b/metecho/api/management/commands/populate_data.py index 12b8692c4..710a36131 100644 --- a/metecho/api/management/commands/populate_data.py +++ b/metecho/api/management/commands/populate_data.py @@ -1,6 +1,6 @@ from django.core.management.base import BaseCommand -from ...models import Project, Repository, Task +from ...models import Epic, Repository, Task class Command(BaseCommand): @@ -26,8 +26,8 @@ def create_repository(self, **kwargs): ) return repository - def create_project(self, **kwargs): - name = kwargs.pop("name", "Sample Project") + def create_epic(self, **kwargs): + name = kwargs.pop("name", "Sample Epic") description = kwargs.pop( "description", ( @@ -41,7 +41,7 @@ def create_project(self, **kwargs): "dictumst. Nulla facilisi etiam dignissim diam." ), ) - return Project.objects.create(name=name, description=description, **kwargs) + return Epic.objects.create(name=name, description=description, **kwargs) def create_task(self, **kwargs): name = kwargs.pop("name", "Sample Task") @@ -114,13 +114,13 @@ def handle(self, *args, **options): ) for i in range(55): - self.create_project(name=f"Sample Project {i+1}", repository=metecho) + self.create_epic(name=f"Sample Epic {i+1}", repository=metecho) - project = self.create_project( - name="Project With Tasks", - description="This project has tasks.", + epic = self.create_epic( + name="Epic With Tasks", + description="This epic has tasks.", repository=metecho, ) for i in range(5): - self.create_task(name=f"Sample Task {i+1}", project=project) + self.create_task(name=f"Sample Task {i+1}", epic=epic) diff --git a/metecho/api/management/commands/resync_all_gh_commit_data.py b/metecho/api/management/commands/resync_all_gh_commit_data.py index 3121eae24..38c3e0669 100644 --- a/metecho/api/management/commands/resync_all_gh_commit_data.py +++ b/metecho/api/management/commands/resync_all_gh_commit_data.py @@ -11,7 +11,7 @@ class Command(BaseCommand): def handle(self, *args, **options): for task in Task.objects.exclude(Q(branch_name="") | Q(origin_sha="")): refresh_commits( - repository=task.project.repository, + repository=task.epic.repository, branch_name=task.branch_name, originating_user_id=None, ) diff --git a/metecho/api/management/commands/tests/resync_all_gh_commit_data.py b/metecho/api/management/commands/tests/resync_all_gh_commit_data.py index 18c72fa80..8528b99f8 100644 --- a/metecho/api/management/commands/tests/resync_all_gh_commit_data.py +++ b/metecho/api/management/commands/tests/resync_all_gh_commit_data.py @@ -14,7 +14,7 @@ def test_resync_all_gh_commit_data(task_factory): task_factory( branch_name="test", origin_sha="1234567sha", - project__repository__repo_id=1234, + epic__repository__repo_id=1234, ) call_command("resync_all_gh_commit_data") diff --git a/metecho/api/management/commands/truncate_data.py b/metecho/api/management/commands/truncate_data.py index 04e7c2bec..5fa05f9c7 100644 --- a/metecho/api/management/commands/truncate_data.py +++ b/metecho/api/management/commands/truncate_data.py @@ -1,9 +1,9 @@ from django.core.management.base import BaseCommand from ...models import ( + Epic, + EpicSlug, GitHubRepository, - Project, - ProjectSlug, Repository, RepositorySlug, ScratchOrg, @@ -20,8 +20,8 @@ def handle(self, *args, **options): ScratchOrg, TaskSlug, Task, - ProjectSlug, - Project, + EpicSlug, + Epic, GitHubRepository, RepositorySlug, Repository, diff --git a/metecho/api/migrations/0088_rename_project_epic.py b/metecho/api/migrations/0088_rename_project_epic.py new file mode 100644 index 000000000..2c88448db --- /dev/null +++ b/metecho/api/migrations/0088_rename_project_epic.py @@ -0,0 +1,21 @@ +# Generated by Django 3.1.4 on 2020-12-08 20:25 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("api", "0087_django_3_1"), + ] + + operations = [ + migrations.RenameModel( + old_name="Project", + new_name="Epic", + ), + migrations.RenameModel( + old_name="ProjectSlug", + new_name="EpicSlug", + ), + ] diff --git a/metecho/api/migrations/0089_rename_project_fks_epic.py b/metecho/api/migrations/0089_rename_project_fks_epic.py new file mode 100644 index 000000000..b3fcb1124 --- /dev/null +++ b/metecho/api/migrations/0089_rename_project_fks_epic.py @@ -0,0 +1,28 @@ +# Generated by Django 3.1.4 on 2020-12-08 20:27 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("api", "0088_rename_project_epic"), + ] + + operations = [ + migrations.RenameField( + model_name="task", + old_name="project", + new_name="epic", + ), + migrations.AlterField( + model_name="epic", + name="repository", + field=models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + related_name="epics", + to="api.repository", + ), + ), + ] diff --git a/metecho/api/models.py b/metecho/api/models.py index 9a769305b..9440ce35c 100644 --- a/metecho/api/models.py +++ b/metecho/api/models.py @@ -45,7 +45,7 @@ ORG_TYPES = Choices("Production", "Scratch", "Sandbox", "Developer") SCRATCH_ORG_TYPES = Choices("Dev", "QA") -PROJECT_STATUSES = Choices("Planned", "In progress", "Review", "Merged") +EPIC_STATUSES = Choices("Planned", "In progress", "Review", "Merged") TASK_STATUSES = Choices( ("Planned", "Planned"), ("In progress", "In progress"), ("Completed", "Completed") ) @@ -365,7 +365,7 @@ def queue_refresh_commits(self, *, ref, originating_user_id): @transaction.atomic def add_commits(self, *, commits, ref, sender): - matching_tasks = Task.objects.filter(branch_name=ref, project__repository=self) + matching_tasks = Task.objects.filter(branch_name=ref, epic__repository=self) for task in matching_tasks: task.add_commits(commits, sender) @@ -386,13 +386,11 @@ def __str__(self): return self.repo_url -class ProjectSlug(AbstractSlug): - parent = models.ForeignKey( - "Project", on_delete=models.CASCADE, related_name="slugs" - ) +class EpicSlug(AbstractSlug): + parent = models.ForeignKey("Epic", on_delete=models.CASCADE, related_name="slugs") -class Project( +class Epic( CreatePrMixin, PushMixin, HashIdMixin, @@ -412,7 +410,7 @@ class Project( pr_is_open = models.BooleanField(default=False) pr_is_merged = models.BooleanField(default=False) status = models.CharField( - max_length=20, choices=PROJECT_STATUSES, default=PROJECT_STATUSES.Planned + max_length=20, choices=EPIC_STATUSES, default=EPIC_STATUSES.Planned ) # List of { # "key": str, @@ -423,7 +421,7 @@ class Project( currently_fetching_org_config_names = models.BooleanField(default=False) repository = models.ForeignKey( - Repository, on_delete=models.PROTECT, related_name="projects" + Repository, on_delete=models.PROTECT, related_name="epics" ) # User data is shaped like this: @@ -434,7 +432,7 @@ class Project( # } github_users = models.JSONField(default=list, blank=True) - slug_class = ProjectSlug + slug_class = EpicSlug tracker = FieldTracker(fields=["name"]) def __str__(self): @@ -454,20 +452,18 @@ def soft_delete_child_class(self): # end SoftDeleteMixin configuration # begin PushMixin configuration: - push_update_type = "PROJECT_UPDATE" - push_error_type = "PROJECT_CREATE_PR_FAILED" + push_update_type = "EPIC_UPDATE" + push_error_type = "EPIC_CREATE_PR_FAILED" def get_serialized_representation(self, user): - from .serializers import ProjectSerializer + from .serializers import EpicSerializer - return ProjectSerializer( - self, context=self._create_context_with_user(user) - ).data + return EpicSerializer(self, context=self._create_context_with_user(user)).data # end PushMixin configuration # begin CreatePrMixin configuration: - create_pr_event = "PROJECT_CREATE_PR" + create_pr_event = "EPIC_CREATE_PR" def get_repo_id(self): return self.repository.get_repo_id() @@ -485,9 +481,9 @@ def try_to_notify_assigned_user(self): # pragma: nocover # end CreatePrMixin configuration def create_gh_branch(self, user): - from .jobs import create_gh_branch_for_new_project_job + from .jobs import create_gh_branch_for_new_epic_job - create_gh_branch_for_new_project_job.delay(self, user=user) + create_gh_branch_for_new_epic_job.delay(self, user=user) def should_update_in_progress(self): task_statuses = self.tasks.values_list("status", flat=True) @@ -506,20 +502,20 @@ def should_update_merged(self): def should_update_status(self): if self.should_update_merged(): - return self.status != PROJECT_STATUSES.Merged + return self.status != EPIC_STATUSES.Merged elif self.should_update_review(): - return self.status != PROJECT_STATUSES.Review + return self.status != EPIC_STATUSES.Review elif self.should_update_in_progress(): - return self.status != PROJECT_STATUSES["In progress"] + return self.status != EPIC_STATUSES["In progress"] return False def update_status(self): if self.should_update_merged(): - self.status = PROJECT_STATUSES.Merged + self.status = EPIC_STATUSES.Merged elif self.should_update_review(): - self.status = PROJECT_STATUSES.Review + self.status = EPIC_STATUSES.Review elif self.should_update_in_progress(): - self.status = PROJECT_STATUSES["In progress"] + self.status = EPIC_STATUSES["In progress"] def finalize_pr_closed(self, pr_number, *, originating_user_id): self.pr_number = pr_number @@ -534,7 +530,7 @@ def finalize_pr_opened(self, pr_number, *, originating_user_id): self.save() self.notify_changed(originating_user_id=originating_user_id) - def finalize_project_update(self, *, originating_user_id): + def finalize_epic_update(self, *, originating_user_id): self.save() self.notify_changed(originating_user_id=originating_user_id) @@ -562,7 +558,7 @@ def finalize_available_task_org_config_names(self, originating_user_id=None): class Meta: ordering = ("-created_at", "name") # We enforce this in business logic, not in the database, as we - # need to limit this constraint only to active Projects, and + # need to limit this constraint only to active Epics, and # make the name column case-insensitive: # unique_together = (("name", "repository"),) @@ -581,7 +577,7 @@ class Task( models.Model, ): name = StringField() - project = models.ForeignKey(Project, on_delete=models.PROTECT, related_name="tasks") + epic = models.ForeignKey(Epic, on_delete=models.PROTECT, related_name="tasks") description = MarkdownField(blank=True, property_suffix="_markdown") branch_name = models.CharField( max_length=100, blank=True, default="", validators=[validate_unicode_branch] @@ -625,12 +621,12 @@ class Task( def __str__(self): return self.name - def save(self, *args, force_project_save=False, **kwargs): + def save(self, *args, force_epic_save=False, **kwargs): ret = super().save(*args, **kwargs) - # To update the project's status: - if force_project_save or self.project.should_update_status(): - self.project.save() - self.project.notify_changed(originating_user_id=None) + # To update the epic's status: + if force_epic_save or self.epic.should_update_status(): + self.epic.save() + self.epic.notify_changed(originating_user_id=None) return ret def subscribable_by(self, user): # pragma: nocover @@ -671,10 +667,10 @@ def add_reviewer(self, user): self.save() def get_repo_id(self): - return self.project.repository.get_repo_id() + return self.epic.repository.get_repo_id() def get_base(self): - return self.project.branch_name + return self.epic.branch_name def get_head(self): return self.branch_name @@ -688,17 +684,17 @@ def try_to_notify_assigned_user(self): user = getattr(sa, "user", None) if user: task = self - project = task.project - repo = project.repository + epic = task.epic + repo = epic.repository metecho_link = get_user_facing_url( - path=["repositories", repo.slug, project.slug, task.slug] + path=["repositories", repo.slug, epic.slug, task.slug] ) subject = _("Metecho Task Submitted for Testing") body = render_to_string( "pr_created_for_task.txt", { "task_name": task.name, - "project_name": project.name, + "epic_name": epic.name, "repo_name": repo.name, "assigned_user_name": user.username, "metecho_link": metecho_link, @@ -722,8 +718,8 @@ def update_has_unmerged_commits(self): if head and base: repo = gh.get_repo_info( None, - repo_owner=self.project.repository.repo_owner, - repo_name=self.project.repository.repo_name, + repo_owner=self.epic.repository.repo_owner, + repo_name=self.epic.repository.repo_name, ) base_sha = repo.branch(base).commit.sha head_sha = repo.branch(head).commit.sha @@ -740,9 +736,9 @@ def finalize_status_completed(self, pr_number, *, originating_user_id): self.has_unmerged_commits = False self.pr_number = pr_number self.pr_is_open = False - self.project.has_unmerged_commits = True - # This will save the project, too: - self.save(force_project_save=True) + self.epic.has_unmerged_commits = True + # This will save the epic, too: + self.save(force_epic_save=True) self.notify_changed(originating_user_id=originating_user_id) def finalize_pr_closed(self, pr_number, *, originating_user_id): @@ -832,7 +828,7 @@ class Meta: # We enforce this in business logic, not in the database, as we # need to limit this constraint only to active Tasks, and # make the name column case-insensitive: - # unique_together = (("name", "project"),) + # unique_together = (("name", "epic"),) class ScratchOrg( @@ -1156,5 +1152,5 @@ def ensure_slug_handler(sender, *, created, instance, **kwargs): post_save.connect(ensure_slug_handler, sender=Repository) -post_save.connect(ensure_slug_handler, sender=Project) +post_save.connect(ensure_slug_handler, sender=Epic) post_save.connect(ensure_slug_handler, sender=Task) diff --git a/metecho/api/push.py b/metecho/api/push.py index 6c5d1a6c1..1b0ebf5d3 100644 --- a/metecho/api/push.py +++ b/metecho/api/push.py @@ -9,10 +9,10 @@ REPOSITORY_UPDATE REPOSITORY_UPDATE_ERROR - project.:id - PROJECT_UPDATE - PROJECT_CREATE_PR - PROJECT_CREATE_PR_FAILED + epic.:id + EPIC_UPDATE + EPIC_CREATE_PR + EPIC_CREATE_PR_FAILED SOFT_DELETE task.:id diff --git a/metecho/api/serializers.py b/metecho/api/serializers.py index a9a4eaaeb..acaad4e09 100644 --- a/metecho/api/serializers.py +++ b/metecho/api/serializers.py @@ -12,7 +12,7 @@ from .models import ( SCRATCH_ORG_TYPES, TASK_REVIEW_STATUS, - Project, + Epic, Repository, ScratchOrg, SiteProfile, @@ -116,7 +116,7 @@ def get_repo_image_url(self, obj) -> Optional[str]: return obj.repo_image_url if obj.include_repo_image_url else "" -class ProjectSerializer(serializers.ModelSerializer): +class EpicSerializer(serializers.ModelSerializer): id = serializers.CharField(read_only=True) description_rendered = MarkdownField(source="description", read_only=True) repository = serializers.PrimaryKeyRelatedField( @@ -127,7 +127,7 @@ class ProjectSerializer(serializers.ModelSerializer): pr_url = serializers.SerializerMethodField() class Meta: - model = Project + model = Epic fields = ( "id", "name", @@ -163,10 +163,10 @@ class Meta: } validators = ( CaseInsensitiveUniqueTogetherValidator( - queryset=Project.objects.all(), + queryset=Epic.objects.all(), fields=("name", "repository"), message=FormattableDict( - "name", _("A project with this name already exists.") + "name", _("An epic with this name already exists.") ), ), GitHubUserValidator(parent="repository"), @@ -200,13 +200,13 @@ def validate(self, data): raise serializers.ValidationError( { "branch_name": _( - "Cannot create a project from the repository default branch." + "Cannot create an epic from the repository default branch." ) } ) already_used_branch_name = ( - Project.objects.active() + Epic.objects.active() .exclude(pk=getattr(self.instance, "pk", None)) .filter(branch_name=branch_name) .exists() @@ -253,8 +253,8 @@ def get_pr_url(self, obj) -> Optional[str]: class TaskSerializer(serializers.ModelSerializer): id = serializers.CharField(read_only=True) description_rendered = MarkdownField(source="description", read_only=True) - project = serializers.PrimaryKeyRelatedField( - queryset=Project.objects.all(), pk_field=serializers.CharField() + epic = serializers.PrimaryKeyRelatedField( + queryset=Epic.objects.all(), pk_field=serializers.CharField() ) branch_url = serializers.SerializerMethodField() branch_diff_url = serializers.SerializerMethodField() @@ -270,7 +270,7 @@ class Meta: "name", "description", "description_rendered", - "project", + "epic", "slug", "old_slugs", "has_unmerged_commits", @@ -315,7 +315,7 @@ class Meta: validators = ( CaseInsensitiveUniqueTogetherValidator( queryset=Task.objects.all(), - fields=("name", "project"), + fields=("name", "epic"), message=FormattableDict( "name", _("A task with this name already exists.") ), @@ -323,7 +323,7 @@ class Meta: ) def get_branch_url(self, obj) -> Optional[str]: - repo = obj.project.repository + repo = obj.epic.repository repo_owner = repo.repo_owner repo_name = repo.repo_name branch = obj.branch_name @@ -332,21 +332,21 @@ def get_branch_url(self, obj) -> Optional[str]: return None def get_branch_diff_url(self, obj) -> Optional[str]: - project = obj.project - project_branch = project.branch_name - repo = project.repository + epic = obj.epic + epic_branch = epic.branch_name + repo = epic.repository repo_owner = repo.repo_owner repo_name = repo.repo_name branch = obj.branch_name - if repo_owner and repo_name and project_branch and branch: + if repo_owner and repo_name and epic_branch and branch: return ( f"https://github.com/{repo_owner}/{repo_name}/compare/" - f"{project_branch}...{branch}" + f"{epic_branch}...{branch}" ) return None def get_pr_url(self, obj) -> Optional[str]: - repo = obj.project.repository + repo = obj.epic.repository repo_owner = repo.repo_owner repo_name = repo.repo_name pr_number = obj.pr_number @@ -428,10 +428,10 @@ def try_send_assignment_emails(self, instance, type_, validated_data, user): assigned_user = self.get_matching_assigned_user(type_, validated_data) if assigned_user: task = instance - project = task.project - repo = project.repository + epic = task.epic + repo = epic.repository metecho_link = get_user_facing_url( - path=["repositories", repo.slug, project.slug, task.slug] + path=["repositories", repo.slug, epic.slug, task.slug] ) subject = _("Metecho Task Assigned to You") body = render_to_string( @@ -439,7 +439,7 @@ def try_send_assignment_emails(self, instance, type_, validated_data, user): { "role": "Tester" if type_ == "qa" else "Developer", "task_name": task.name, - "project_name": project.name, + "epic_name": epic.name, "repo_name": repo.name, "assigned_user_name": assigned_user.username, "user_name": user.username if user else None, diff --git a/metecho/api/sf_org_changes.py b/metecho/api/sf_org_changes.py index 317b88e59..1f0ffa96c 100644 --- a/metecho/api/sf_org_changes.py +++ b/metecho/api/sf_org_changes.py @@ -18,7 +18,7 @@ def get_valid_target_directories(user, scratch_org, repo_root): Expects to be called from within a `local_github_checkout`. """ package_directories = {} - repository = scratch_org.task.project.repository + repository = scratch_org.task.epic.repository repo = get_repo_info( None, repo_owner=repository.repo_owner, repo_name=repository.repo_name ) @@ -85,7 +85,7 @@ def run_retrieve_task( target_directory, originating_user_id, ): - repo_id = scratch_org.task.project.repository.get_repo_id() + repo_id = scratch_org.task.epic.repository.get_repo_id() org_config = refresh_access_token( config=scratch_org.config, org_name="dev", diff --git a/metecho/api/tests/admin.py b/metecho/api/tests/admin.py index 770436473..ae47474f8 100644 --- a/metecho/api/tests/admin.py +++ b/metecho/api/tests/admin.py @@ -7,7 +7,7 @@ from github3.exceptions import NotFoundError from ..admin import JSONWidget, RepositoryForm, SiteAdminForm, SoftDeletedListFilter -from ..models import Project +from ..models import Epic @pytest.mark.django_db @@ -22,9 +22,9 @@ def test_lookups(self): lookups = SoftDeletedListFilter(*args).lookups(None, None) assert lookups == (("true", _("Deleted")),) - def test_queryset__not_deleted(self, project_factory): - project = project_factory() - project_factory(deleted_at=now()) + def test_queryset__not_deleted(self, epic_factory): + epic = epic_factory() + epic_factory(deleted_at=now()) args = ( None, @@ -32,12 +32,12 @@ def test_queryset__not_deleted(self, project_factory): None, None, ) - actual = SoftDeletedListFilter(*args).queryset(None, Project.objects.all()) - assert list(actual) == [project] + actual = SoftDeletedListFilter(*args).queryset(None, Epic.objects.all()) + assert list(actual) == [epic] - def test_queryset__deleted(self, project_factory): - project_factory() - project = project_factory(deleted_at=now()) + def test_queryset__deleted(self, epic_factory): + epic_factory() + epic = epic_factory(deleted_at=now()) args = ( None, @@ -45,8 +45,8 @@ def test_queryset__deleted(self, project_factory): None, None, ) - actual = SoftDeletedListFilter(*args).queryset(None, Project.objects.all()) - assert list(actual) == [project] + actual = SoftDeletedListFilter(*args).queryset(None, Epic.objects.all()) + assert list(actual) == [epic] def test_choices(self): args = ( diff --git a/metecho/api/tests/filters.py b/metecho/api/tests/filters.py index c7600c00a..adff143a7 100644 --- a/metecho/api/tests/filters.py +++ b/metecho/api/tests/filters.py @@ -1,14 +1,14 @@ import pytest from ..filters import slug_is_active -from ..models import Project +from ..models import Epic @pytest.mark.django_db -def test_slug_is_active(project_factory): - project1 = project_factory(name="Apple") - project2 = project_factory(name="Banana") - project1.slugs.update(is_active=False) - projects = Project.objects.all() - assert list(slug_is_active(projects, "slugs", "apple")) == [] - assert list(slug_is_active(projects, "slugs", "banana")) == [project2] +def test_slug_is_active(epic_factory): + epic1 = epic_factory(name="Apple") + epic2 = epic_factory(name="Banana") + epic1.slugs.update(is_active=False) + epics = Epic.objects.all() + assert list(slug_is_active(epics, "slugs", "apple")) == [] + assert list(slug_is_active(epics, "slugs", "banana")) == [epic2] diff --git a/metecho/api/tests/hook_serializers.py b/metecho/api/tests/hook_serializers.py index 65c911ced..7cad956eb 100644 --- a/metecho/api/tests/hook_serializers.py +++ b/metecho/api/tests/hook_serializers.py @@ -86,7 +86,7 @@ def test_process_hook__mark_matching_tasks_as_completed( repository = repository_factory(repo_id=123) task = task_factory( pr_number=456, - project__repository=repository, + epic__repository=repository, status=TASK_STATUSES["In progress"], ) data = { @@ -111,7 +111,7 @@ def test_process_hook__closed_not_merged(self, repository_factory, task_factory) repository = repository_factory(repo_id=123) task = task_factory( pr_number=456, - project__repository=repository, + epic__repository=repository, status=TASK_STATUSES["In progress"], ) data = { @@ -137,7 +137,7 @@ def test_process_hook__reopened(self, repository_factory, task_factory): repository = repository_factory(repo_id=123) task = task_factory( pr_number=456, - project__repository=repository, + epic__repository=repository, status=TASK_STATUSES["In progress"], ) data = { @@ -159,11 +159,9 @@ def test_process_hook__reopened(self, repository_factory, task_factory): assert task.status == TASK_STATUSES["In progress"] assert task.pr_is_open - def test_process_hook__close_matching_projects( - self, repository_factory, project_factory - ): + def test_process_hook__close_matching_epics(self, repository_factory, epic_factory): repository = repository_factory(repo_id=123) - project = project_factory(pr_number=456, repository=repository, pr_is_open=True) + epic = epic_factory(pr_number=456, repository=repository, pr_is_open=True) data = { "action": "closed", "number": 456, @@ -179,14 +177,14 @@ def test_process_hook__close_matching_projects( assert serializer.is_valid(), serializer.errors serializer.process_hook() - project.refresh_from_db() - assert not project.pr_is_open + epic.refresh_from_db() + assert not epic.pr_is_open - def test_process_hook__project_closed_not_merged( - self, repository_factory, project_factory + def test_process_hook__epic_closed_not_merged( + self, repository_factory, epic_factory ): repository = repository_factory(repo_id=123) - project = project_factory( + epic = epic_factory( pr_number=456, repository=repository, pr_is_open=True, @@ -206,12 +204,12 @@ def test_process_hook__project_closed_not_merged( assert serializer.is_valid(), serializer.errors serializer.process_hook() - project.refresh_from_db() - assert not project.pr_is_open + epic.refresh_from_db() + assert not epic.pr_is_open - def test_process_hook__project_reopened(self, repository_factory, project_factory): + def test_process_hook__epic_reopened(self, repository_factory, epic_factory): repository = repository_factory(repo_id=123) - project = project_factory( + epic = epic_factory( pr_number=456, repository=repository, pr_is_open=True, @@ -231,8 +229,8 @@ def test_process_hook__project_reopened(self, repository_factory, project_factor assert serializer.is_valid(), serializer.errors serializer.process_hook() - project.refresh_from_db() - assert project.pr_is_open + epic.refresh_from_db() + assert epic.pr_is_open @pytest.mark.django_db @@ -273,7 +271,7 @@ def test_no_task(self, repository_factory): serializer.process_hook() def test_good(self, task_factory): - task = task_factory(project__repository__repo_id=123, pr_number=123) + task = task_factory(epic__repository__repo_id=123, pr_number=123) data = { "sender": {"login": "login", "avatar_url": "https://example.com"}, "repository": {"id": 123}, diff --git a/metecho/api/tests/jobs.py b/metecho/api/tests/jobs.py index c4162df22..79aa28799 100644 --- a/metecho/api/tests/jobs.py +++ b/metecho/api/tests/jobs.py @@ -16,7 +16,7 @@ available_task_org_config_names, commit_changes_from_org, create_branches_on_github_then_create_scratch_org, - create_gh_branch_for_new_project, + create_gh_branch_for_new_epic, create_pr, delete_scratch_org, get_social_image, @@ -44,7 +44,7 @@ class TestCreateBranchesOnGitHub: def test_create_branches_on_github(self, user_factory, task_factory): user = user_factory() task = task_factory() - project = task.project + epic = task.epic with ExitStack() as stack: stack.enter_context(patch(f"{PATCH_ROOT}.local_github_checkout")) @@ -61,14 +61,14 @@ def test_create_branches_on_github(self, user_factory, task_factory): _create_branches_on_github( user=user, repo_id=123, - project=project, + epic=epic, task=task, originating_user_id="123abc", ) assert repository.create_branch_ref.called - def test_create_branches_on_github__missing(self, user_factory, project_factory): + def test_create_branches_on_github__missing(self, user_factory, epic_factory): user = user_factory() with ExitStack() as stack: try_to_make_branch = stack.enter_context( @@ -78,8 +78,8 @@ def test_create_branches_on_github__missing(self, user_factory, project_factory) get_repo_info.return_value = MagicMock( **{"branch.side_effect": NotFoundError(MagicMock())} ) - project = project_factory(branch_name="placeholder") - create_gh_branch_for_new_project(project, user=user) + epic = epic_factory(branch_name="placeholder") + create_gh_branch_for_new_epic(epic, user=user) assert try_to_make_branch.called def test_create_branches_on_github__settings( @@ -88,7 +88,7 @@ def test_create_branches_on_github__settings( settings.BRANCH_PREFIX = "test_prefix" user = user_factory() task = task_factory() - project = task.project + epic = task.epic with ExitStack() as stack: local_github_checkout = stack.enter_context( @@ -108,7 +108,7 @@ def test_create_branches_on_github__settings( _create_branches_on_github( user=user, repo_id=123, - project=project, + epic=epic, task=task, originating_user_id="123abc", ) @@ -120,8 +120,8 @@ def test_create_branches_on_github__repo_branch_prefix( self, user_factory, task_factory ): user = user_factory() - task = task_factory(project__repository__branch_prefix="test_prefix") - project = task.project + task = task_factory(epic__repository__branch_prefix="test_prefix") + epic = task.epic with ExitStack() as stack: local_github_checkout = stack.enter_context( @@ -141,7 +141,7 @@ def test_create_branches_on_github__repo_branch_prefix( _create_branches_on_github( user=user, repo_id=123, - project=project, + epic=epic, task=task, originating_user_id="123abc", ) @@ -150,7 +150,7 @@ def test_create_branches_on_github__repo_branch_prefix( assert not local_github_checkout.called def test_create_branches_on_github__already_there( - self, user_factory, project_factory, task_factory + self, user_factory, epic_factory, task_factory ): user = user_factory() with ExitStack() as stack: @@ -158,7 +158,7 @@ def test_create_branches_on_github__already_there( patch(f"{PATCH_ROOT}.try_to_make_branch") ) get_repo_info = stack.enter_context(patch(f"{PATCH_ROOT}.get_repo_info")) - stack.enter_context(patch(f"{PATCH_ROOT}.project_create_branch")) + stack.enter_context(patch(f"{PATCH_ROOT}.epic_create_branch")) get_repo_info.return_value = MagicMock( **{ "pull_requests.return_value": ( @@ -173,11 +173,11 @@ def test_create_branches_on_github__already_there( } ) - project = project_factory(branch_name="pepin") - create_gh_branch_for_new_project(project, user=user) + epic = epic_factory(branch_name="pepin") + create_gh_branch_for_new_epic(epic, user=user) assert not try_to_make_branch.called - task = task_factory(branch_name="charlemagne", project=project) + task = task_factory(branch_name="charlemagne", epic=epic) with ExitStack() as stack: get_repo_info = stack.enter_context(patch(f"{PATCH_ROOT}.get_repo_info")) @@ -187,7 +187,7 @@ def test_create_branches_on_github__already_there( _create_branches_on_github( user=user, repo_id=123, - project=project, + epic=epic, task=task, originating_user_id="123abc", ) @@ -529,15 +529,15 @@ def test_task__user( self, user_factory, repository_factory, - project_factory, + epic_factory, task_factory, git_hub_repository_factory, ): user = user_factory() repository = repository_factory(repo_id=123) git_hub_repository_factory(repo_id=123, user=user) - project = project_factory(repository=repository) - task = task_factory(project=project, branch_name="task", origin_sha="1234abcd") + epic = epic_factory(repository=repository) + task = task_factory(epic=epic, branch_name="task", origin_sha="1234abcd") with ExitStack() as stack: commit1 = Commit( **{ @@ -730,7 +730,7 @@ def test_good__has_org(self, task_factory, scratch_org_factory, user_factory): task = task_factory(pr_is_open=True, review_valid=True, review_sha="none") scratch_org = scratch_org_factory(task=task, latest_commit="test_sha") task.finalize_submit_review = MagicMock() - task.project.repository.get_repo_id = MagicMock() + task.epic.repository.get_repo_id = MagicMock() pr = MagicMock() repository = MagicMock(**{"pull_request.return_value": pr}) get_repo_info.return_value = repository @@ -768,7 +768,7 @@ def test_good__review_invalid(self, task_factory, user_factory): pr_is_open=True, review_valid=False, review_sha="test_sha" ) task.finalize_submit_review = MagicMock() - task.project.repository.get_repo_id = MagicMock() + task.epic.repository.get_repo_id = MagicMock() pr = MagicMock() repository = MagicMock(**{"pull_request.return_value": pr}) get_repo_info.return_value = repository @@ -817,12 +817,12 @@ def test_bad(self): @pytest.mark.django_db -class TestCreateGhBranchForNewProject: - def test_no_pr(self, user_factory, project_factory): +class TestCreateGhBranchForNewEpic: + def test_no_pr(self, user_factory, epic_factory): user = user_factory() with ExitStack() as stack: get_repo_info = stack.enter_context(patch(f"{PATCH_ROOT}.get_repo_info")) - stack.enter_context(patch(f"{PATCH_ROOT}.project_create_branch")) + stack.enter_context(patch(f"{PATCH_ROOT}.epic_create_branch")) get_repo_info.return_value = MagicMock( **{ "pull_requests.return_value": ( @@ -832,45 +832,45 @@ def test_no_pr(self, user_factory, project_factory): } ) - project = project_factory(branch_name="pepin") - create_gh_branch_for_new_project(project, user=user) - assert project.pr_number is None + epic = epic_factory(branch_name="pepin") + create_gh_branch_for_new_epic(epic, user=user) + assert epic.pr_number is None - def test_no_branch_name(self, user_factory, project_factory): + def test_no_branch_name(self, user_factory, epic_factory): user = user_factory() with ExitStack() as stack: get_repo_info = stack.enter_context(patch(f"{PATCH_ROOT}.get_repo_info")) - project_create_branch = stack.enter_context( - patch(f"{PATCH_ROOT}.project_create_branch") + epic_create_branch = stack.enter_context( + patch(f"{PATCH_ROOT}.epic_create_branch") ) get_repo_info.return_value = MagicMock() - project = project_factory() - create_gh_branch_for_new_project(project, user=user) - assert project_create_branch.called + epic = epic_factory() + create_gh_branch_for_new_epic(epic, user=user) + assert epic_create_branch.called - def test_exception(self, user_factory, project_factory): + def test_exception(self, user_factory, epic_factory): user = user_factory() with ExitStack() as stack: get_repo_info = stack.enter_context(patch(f"{PATCH_ROOT}.get_repo_info")) - project_create_branch = stack.enter_context( - patch(f"{PATCH_ROOT}.project_create_branch") + epic_create_branch = stack.enter_context( + patch(f"{PATCH_ROOT}.epic_create_branch") ) get_repo_info.side_effect = ValueError() - project = project_factory() + epic = epic_factory() with pytest.raises(ValueError): - create_gh_branch_for_new_project(project, user=user) + create_gh_branch_for_new_epic(epic, user=user) - assert not project_create_branch.called + assert not epic_create_branch.called @pytest.mark.django_db class TestAvailableTaskOrgConfigNames: - def test_available_task_org_config_names(self, project_factory, user_factory): - project = project_factory() + def test_available_task_org_config_names(self, epic_factory, user_factory): + epic = epic_factory() user = user_factory() - project.finalize_available_task_org_config_names = MagicMock() + epic.finalize_available_task_org_config_names = MagicMock() with ExitStack() as stack: stack.enter_context(patch(f"{PATCH_ROOT}.local_github_checkout")) get_repo_info = stack.enter_context(patch(f"{PATCH_ROOT}.get_repo_info")) @@ -892,24 +892,22 @@ def test_available_task_org_config_names(self, project_factory, user_factory): **{"project_config.orgs__scratch": {}} ) - available_task_org_config_names(project, user=user) + available_task_org_config_names(epic, user=user) - assert project.finalize_available_task_org_config_names.called + assert epic.finalize_available_task_org_config_names.called - def test_available_task_org_config_names__error( - self, project_factory, user_factory - ): - project = project_factory() + def test_available_task_org_config_names__error(self, epic_factory, user_factory): + epic = epic_factory() user = user_factory() - project.finalize_available_task_org_config_names = MagicMock() + epic.finalize_available_task_org_config_names = MagicMock() with ExitStack() as stack: get_repo_info = stack.enter_context(patch(f"{PATCH_ROOT}.get_repo_info")) get_repo_info.side_effect = ValueError with pytest.raises(ValueError): - available_task_org_config_names(project, user=user) + available_task_org_config_names(epic, user=user) - assert project.finalize_available_task_org_config_names.called + assert epic.finalize_available_task_org_config_names.called @pytest.mark.django_db diff --git a/metecho/api/tests/models.py b/metecho/api/tests/models.py index 47ae2bcb0..f02e29a3a 100644 --- a/metecho/api/tests/models.py +++ b/metecho/api/tests/models.py @@ -7,10 +7,10 @@ from simple_salesforce.exceptions import SalesforceError from ..models import ( - PROJECT_STATUSES, + EPIC_STATUSES, SCRATCH_ORG_TYPES, TASK_STATUSES, - Project, + Epic, Repository, Task, user_logged_in_handler, @@ -87,58 +87,58 @@ def test_finalize_populate_github_users__error(self, repository_factory): @pytest.mark.django_db -class TestProject: +class TestEpic: def test_signal(self, repository_factory): repository = repository_factory() - project = Project(name="Test Project", repository=repository) - project.save() + epic = Epic(name="Test Epic", repository=repository) + epic.save() - assert project.slug == "test-project" + assert epic.slug == "test-epic" def test_str(self, repository_factory): repository = repository_factory() - project = Project(name="Test Project", repository=repository) - assert str(project) == "Test Project" + epic = Epic(name="Test Epic", repository=repository) + assert str(epic) == "Test Epic" - def test_get_repo_id(self, repository_factory, project_factory): + def test_get_repo_id(self, repository_factory, epic_factory): repo = repository_factory(repo_id=123) - project = project_factory(repository=repo) + epic = epic_factory(repository=repo) - assert project.get_repo_id() == 123 + assert epic.get_repo_id() == 123 - def test_finalize_status_completed(self, project_factory): + def test_finalize_status_completed(self, epic_factory): with ExitStack() as stack: - project = project_factory(has_unmerged_commits=True) + epic = epic_factory(has_unmerged_commits=True) async_to_sync = stack.enter_context( patch("metecho.api.model_mixins.async_to_sync") ) - project.finalize_status_completed(123, originating_user_id=None) - project.refresh_from_db() - assert project.pr_number == 123 - assert not project.has_unmerged_commits + epic.finalize_status_completed(123, originating_user_id=None) + epic.refresh_from_db() + assert epic.pr_number == 123 + assert not epic.has_unmerged_commits assert async_to_sync.called - def test_should_update_status(self, project_factory): - project = project_factory() - assert not project.should_update_status() + def test_should_update_status(self, epic_factory): + epic = epic_factory() + assert not epic.should_update_status() - def test_should_update_status__already_merged(self, project_factory): - project = project_factory(status=PROJECT_STATUSES.Merged, pr_is_merged=True) - assert not project.should_update_status() + def test_should_update_status__already_merged(self, epic_factory): + epic = epic_factory(status=EPIC_STATUSES.Merged, pr_is_merged=True) + assert not epic.should_update_status() - def test_should_update_status__already_review(self, project_factory, task_factory): - project = project_factory(status=PROJECT_STATUSES.Review) - task_factory(project=project, status=TASK_STATUSES.Completed) - assert not project.should_update_status() + def test_should_update_status__already_review(self, epic_factory, task_factory): + epic = epic_factory(status=EPIC_STATUSES.Review) + task_factory(epic=epic, status=TASK_STATUSES.Completed) + assert not epic.should_update_status() - def test_queue_create_pr(self, project_factory, user_factory): + def test_queue_create_pr(self, epic_factory, user_factory): with ExitStack() as stack: create_pr_job = stack.enter_context(patch("metecho.api.jobs.create_pr_job")) - project = project_factory() + epic = epic_factory() user = user_factory() - project.queue_create_pr( + epic.queue_create_pr( user, title="My PR", critical_changes="", @@ -151,49 +151,49 @@ def test_queue_create_pr(self, project_factory, user_factory): assert create_pr_job.delay.called - def test_soft_delete(self, project_factory, task_factory): - project = project_factory() - task_factory(project=project) - task_factory(project=project) + def test_soft_delete(self, epic_factory, task_factory): + epic = epic_factory() + task_factory(epic=epic) + task_factory(epic=epic) - project.delete() - project.refresh_from_db() - assert project.deleted_at is not None - assert project.tasks.active().count() == 0 + epic.delete() + epic.refresh_from_db() + assert epic.deleted_at is not None + assert epic.tasks.active().count() == 0 - def test_queryset_soft_delete(self, project_factory, task_factory): - project1 = project_factory() - project2 = project_factory() - project_factory() + def test_queryset_soft_delete(self, epic_factory, task_factory): + epic1 = epic_factory() + epic2 = epic_factory() + epic_factory() - task_factory(project=project1) - task_factory(project=project2) + task_factory(epic=epic1) + task_factory(epic=epic2) - assert Project.objects.count() == 3 - assert Project.objects.active().count() == 3 + assert Epic.objects.count() == 3 + assert Epic.objects.active().count() == 3 assert Task.objects.active().count() == 2 - Project.objects.all().delete() + Epic.objects.all().delete() - assert Project.objects.count() == 3 - assert Project.objects.active().count() == 0 + assert Epic.objects.count() == 3 + assert Epic.objects.active().count() == 0 assert Task.objects.active().count() == 0 - def test_queue_available_task_org_config_names(self, user_factory, project_factory): + def test_queue_available_task_org_config_names(self, user_factory, epic_factory): user = user_factory() - project = project_factory() + epic = epic_factory() with ExitStack() as stack: available_task_org_config_names_job = stack.enter_context( patch("metecho.api.jobs.available_task_org_config_names_job") ) - project.queue_available_task_org_config_names(user) + epic.queue_available_task_org_config_names(user) assert available_task_org_config_names_job.delay.called - def test_finalize_available_task_org_config_names(self, project_factory): - project = project_factory() - project.notify_changed = MagicMock() - project.finalize_available_task_org_config_names() - assert project.notify_changed.called + def test_finalize_available_task_org_config_names(self, epic_factory): + epic = epic_factory() + epic.notify_changed = MagicMock() + epic.finalize_available_task_org_config_names() + assert epic.notify_changed.called @pytest.mark.django_db diff --git a/metecho/api/tests/serializers.py b/metecho/api/tests/serializers.py index 9fd8c2458..4b93db7c8 100644 --- a/metecho/api/tests/serializers.py +++ b/metecho/api/tests/serializers.py @@ -6,9 +6,9 @@ from ..models import SCRATCH_ORG_TYPES, Task from ..serializers import ( + EpicSerializer, FullUserSerializer, HashidPrimaryKeyRelatedField, - ProjectSerializer, ScratchOrgSerializer, TaskSerializer, ) @@ -38,15 +38,15 @@ def test_without_pk_field(self): @pytest.mark.django_db -class TestProjectSerializer: +class TestEpicSerializer: def test_markdown_fields_input(self, rf, user_factory, repository_factory): request = rf.post("/") request.user = user_factory() repository = repository_factory() - serializer = ProjectSerializer( + serializer = EpicSerializer( data={ - "name": "Test project", - "description": "Test `project`", + "name": "Test epic", + "description": "Test `epic`", "branch_name": "some-branch", "repository": str(repository.id), "github_users": [], @@ -76,21 +76,20 @@ def test_markdown_fields_input(self, rf, user_factory, repository_factory): } ) - project = serializer.save() + epic = serializer.save() - assert project.description_markdown == "

Test project

" + assert epic.description_markdown == "

Test epic

" - def test_markdown_fields_output(self, project_factory): - project = project_factory(name="Test project", description="Test `project`") - serializer = ProjectSerializer(project) + def test_markdown_fields_output(self, epic_factory): + epic = epic_factory(name="Test epic", description="Test `epic`") + serializer = EpicSerializer(epic) assert ( - serializer.data["description_rendered"] - == "

Test project

" + serializer.data["description_rendered"] == "

Test epic

" ) def test_validate_branch_name__non_feature(self, repository_factory): repo = repository_factory() - serializer = ProjectSerializer( + serializer = EpicSerializer( data={ "branch_name": "test__non-feature", "name": "Test", @@ -100,9 +99,7 @@ def test_validate_branch_name__non_feature(self, repository_factory): assert not serializer.is_valid() assert "branch_name" in serializer.errors - def test_validate_branch_name__already_used( - self, repository_factory, project_factory - ): + def test_validate_branch_name__already_used(self, repository_factory, epic_factory): with ExitStack() as stack: gh = stack.enter_context(patch("metecho.api.models.gh")) gh.get_repo_info.return_value = MagicMock( @@ -119,9 +116,9 @@ def test_validate_branch_name__already_used( ) repo = repository_factory() - project_factory(branch_name="test") + epic_factory(branch_name="test") - serializer = ProjectSerializer( + serializer = EpicSerializer( data={"branch_name": "test", "name": "Test", "repository": str(repo.id)} ) assert not serializer.is_valid() @@ -129,7 +126,7 @@ def test_validate_branch_name__already_used( def test_validate_branch_name__repo_default_branch(self, repository_factory): repo = repository_factory() - serializer = ProjectSerializer( + serializer = EpicSerializer( data={ "branch_name": repo.branch_name, "name": "Test", @@ -139,7 +136,7 @@ def test_validate_branch_name__repo_default_branch(self, repository_factory): assert not serializer.is_valid() assert "branch_name" in serializer.errors - def test_branch_url__present(self, project_factory): + def test_branch_url__present(self, epic_factory): with ExitStack() as stack: gh = stack.enter_context(patch("metecho.api.models.gh")) gh.get_repo_info.return_value = MagicMock( @@ -155,26 +152,26 @@ def test_branch_url__present(self, project_factory): } ) - project = project_factory( - name="Test project", - description="Test `project`", - branch_name="test-project", + epic = epic_factory( + name="Test epic", + description="Test `epic`", + branch_name="test-epic", ) - serializer = ProjectSerializer(project) - owner = project.repository.repo_owner - name = project.repository.repo_name - expected = f"https://github.com/{owner}/{name}/tree/test-project" + serializer = EpicSerializer(epic) + owner = epic.repository.repo_owner + name = epic.repository.repo_name + expected = f"https://github.com/{owner}/{name}/tree/test-epic" assert serializer.data["branch_url"] == expected - def test_branch_url__missing(self, project_factory): - project = project_factory(name="Test project", description="Test `project`") - serializer = ProjectSerializer(project) + def test_branch_url__missing(self, epic_factory): + epic = epic_factory(name="Test epic", description="Test `epic`") + serializer = EpicSerializer(epic) assert serializer.data["branch_url"] is None - def test_unique_name_for_repository(self, repository_factory, project_factory): + def test_unique_name_for_repository(self, repository_factory, epic_factory): repository = repository_factory() - project_factory(repository=repository, name="Duplicate me") - serializer = ProjectSerializer( + epic_factory(repository=repository, name="Duplicate me") + serializer = EpicSerializer( data={ "repository": str(repository.id), "name": "Duplicate Me", @@ -184,15 +181,15 @@ def test_unique_name_for_repository(self, repository_factory, project_factory): ) assert not serializer.is_valid() assert [str(err) for err in serializer.errors["name"]] == [ - "A project with this name already exists." + "An epic with this name already exists." ] def test_unique_name_for_repository__case_insensitive( - self, repository_factory, project_factory + self, repository_factory, epic_factory ): repository = repository_factory() - project_factory(repository=repository, name="Duplicate me") - serializer = ProjectSerializer( + epic_factory(repository=repository, name="Duplicate me") + serializer = EpicSerializer( data={ "repository": str(repository.id), "name": "duplicate me", @@ -202,16 +199,16 @@ def test_unique_name_for_repository__case_insensitive( ) assert not serializer.is_valid() assert [str(err) for err in serializer.errors["name"]] == [ - "A project with this name already exists." + "An epic with this name already exists." ] def test_unique_name_for_repository__case_insensitive__update( - self, repository_factory, project_factory + self, repository_factory, epic_factory ): repository = repository_factory() - project = project_factory(repository=repository, name="Duplicate me") - serializer = ProjectSerializer( - instance=project, + epic = epic_factory(repository=repository, name="Duplicate me") + serializer = EpicSerializer( + instance=epic, data={ "repository": str(repository.id), "description": "Blorp", @@ -221,11 +218,11 @@ def test_unique_name_for_repository__case_insensitive__update( ) assert serializer.is_valid(), serializer.errors - def test_invalid_github_user_value(self, repository_factory, project_factory): + def test_invalid_github_user_value(self, repository_factory, epic_factory): repository = repository_factory() - project = project_factory(repository=repository, name="Duplicate me") - serializer = ProjectSerializer( - instance=project, + epic = epic_factory(repository=repository, name="Duplicate me") + serializer = EpicSerializer( + instance=epic, data={ "repository": str(repository.id), "description": "Blorp", @@ -236,29 +233,29 @@ def test_invalid_github_user_value(self, repository_factory, project_factory): assert not serializer.is_valid() assert "non_field_errors" in serializer.errors - def test_pr_url__present(self, project_factory): - project = project_factory(name="Test project", pr_number=123) - serializer = ProjectSerializer(project) - owner = project.repository.repo_owner - name = project.repository.repo_name + def test_pr_url__present(self, epic_factory): + epic = epic_factory(name="Test epic", pr_number=123) + serializer = EpicSerializer(epic) + owner = epic.repository.repo_owner + name = epic.repository.repo_name expected = f"https://github.com/{owner}/{name}/pull/123" assert serializer.data["pr_url"] == expected - def test_pr_url__missing(self, project_factory): - project = project_factory(name="Test project") - serializer = ProjectSerializer(project) + def test_pr_url__missing(self, epic_factory): + epic = epic_factory(name="Test epic") + serializer = EpicSerializer(epic) assert serializer.data["pr_url"] is None @pytest.mark.django_db class TestTaskSerializer: - def test_create(self, rf, user_factory, project_factory): + def test_create(self, rf, user_factory, epic_factory): user = user_factory() - project = project_factory() + epic = epic_factory() data = { "name": "Test Task", "description": "Description.", - "project": str(project.id), + "epic": str(epic.id), "assigned_dev": {"test": "id"}, "assigned_qa": {"test": "id"}, "should_alert_dev": False, @@ -280,7 +277,7 @@ def test_update(self, rf, user_factory, task_factory, scratch_org_factory): data = { "name": task.name, "description": task.description, - "project": str(task.project.id), + "epic": str(task.epic.id), "assigned_dev": {"test": "id"}, "assigned_qa": {"test": "id"}, "should_alert_dev": False, @@ -309,7 +306,7 @@ def test_update__no_user(self, task_factory, scratch_org_factory): data = { "name": task.name, "description": task.description, - "project": str(task.project.id), + "epic": str(task.epic.id), "assigned_dev": {}, "assigned_qa": {}, "should_alert_dev": False, @@ -327,8 +324,8 @@ def test_update__no_user(self, task_factory, scratch_org_factory): def test_branch_url__present(self, task_factory): task = task_factory(name="Test task", branch_name="test-task") serializer = TaskSerializer(task) - owner = task.project.repository.repo_owner - name = task.project.repository.repo_name + owner = task.epic.repository.repo_owner + name = task.epic.repository.repo_name expected = f"https://github.com/{owner}/{name}/tree/test-task" assert serializer.data["branch_url"] == expected @@ -337,7 +334,7 @@ def test_branch_url__missing(self, task_factory): serializer = TaskSerializer(task) assert serializer.data["branch_url"] is None - def test_branch_diff_url__present(self, project_factory, task_factory): + def test_branch_diff_url__present(self, epic_factory, task_factory): with ExitStack() as stack: gh = stack.enter_context(patch("metecho.api.models.gh")) gh.get_repo_info.return_value = MagicMock( @@ -353,12 +350,12 @@ def test_branch_diff_url__present(self, project_factory, task_factory): } ) - project = project_factory(branch_name="test-project") - task = task_factory(project=project, branch_name="test-task") + epic = epic_factory(branch_name="test-epic") + task = task_factory(epic=epic, branch_name="test-task") serializer = TaskSerializer(task) - owner = task.project.repository.repo_owner - name = task.project.repository.repo_name - expected = f"https://github.com/{owner}/{name}/compare/test-project...test-task" + owner = task.epic.repository.repo_owner + name = task.epic.repository.repo_name + expected = f"https://github.com/{owner}/{name}/compare/test-epic...test-task" assert serializer.data["branch_diff_url"] == expected def test_branch_diff_url__missing(self, task_factory): @@ -369,8 +366,8 @@ def test_branch_diff_url__missing(self, task_factory): def test_pr_url__present(self, task_factory): task = task_factory(name="Test task", pr_number=123) serializer = TaskSerializer(task) - owner = task.project.repository.repo_owner - name = task.project.repository.repo_name + owner = task.epic.repository.repo_owner + name = task.epic.repository.repo_name expected = f"https://github.com/{owner}/{name}/pull/123" assert serializer.data["pr_url"] == expected @@ -405,7 +402,7 @@ def test_queues_reassign(self, task_factory, scratch_org_factory, user_factory): data = { "name": task.name, "description": task.description, - "project": str(task.project.id), + "epic": str(task.epic.id), "assigned_dev": {"id": new_id}, "assigned_qa": {"id": new_id}, "org_config_name": "dev", @@ -434,7 +431,7 @@ def test_try_send_assignment_emails(self, mailoutbox, user_factory, task_factory "should_alert_dev": True, "should_alert_qa": True, "name": task.name, - "project": str(task.project.id), + "epic": str(task.epic.id), "org_config_name": task.org_config_name, }, ) diff --git a/metecho/api/tests/sf_run_flow.py b/metecho/api/tests/sf_run_flow.py index 19cdbcc28..37e2b33ed 100644 --- a/metecho/api/tests/sf_run_flow.py +++ b/metecho/api/tests/sf_run_flow.py @@ -199,14 +199,14 @@ def test_org_preference_settings(self): @pytest.mark.django_db class TestRunFlow: - def test_create_org_and_run_flow__exception(self, user_factory, project_factory): + def test_create_org_and_run_flow__exception(self, user_factory, epic_factory): user = user_factory() org_config = MagicMock( org_id="org_id", instance_url="instance_url", access_token="access_token", ) - project = project_factory() + epic = epic_factory() with ExitStack() as stack: stack.enter_context(patch(f"{PATCH_ROOT}.os")) subprocess = stack.enter_context(patch(f"{PATCH_ROOT}.subprocess")) @@ -240,7 +240,7 @@ def test_create_org_and_run_flow__exception(self, user_factory, project_factory) cci=MagicMock(), org_config=org_config, flow_name=MagicMock(), - project_path=project, + project_path=epic, user=user, ) diff --git a/metecho/api/tests/views.py b/metecho/api/tests/views.py index deea73aca..22f26f59d 100644 --- a/metecho/api/tests/views.py +++ b/metecho/api/tests/views.py @@ -178,7 +178,7 @@ def test_202__push_not_forced( client, repository_factory, git_hub_repository_factory, - project_factory, + epic_factory, task_factory, ): settings.GITHUB_HOOK_SECRET = b"" @@ -201,8 +201,8 @@ def test_202__push_not_forced( repo = repository_factory(repo_id=123) git_hub_repository_factory(repo_id=123) - project = project_factory(repository=repo, branch_name="test-project") - task = task_factory(project=project, branch_name="test-task") + epic = epic_factory(repository=repo, branch_name="test-epic") + task = task_factory(epic=epic, branch_name="test-task") refresh_commits_job = stack.enter_context( patch("metecho.api.jobs.refresh_commits_job") @@ -740,18 +740,16 @@ def test_can_reassign__bad(self, client, task_factory): @pytest.mark.django_db -class TestProjectView: - def test_refresh_org_config_names(self, client, project_factory): +class TestEpicView: + def test_refresh_org_config_names(self, client, epic_factory): with ExitStack() as stack: - project = project_factory() + epic = epic_factory() available_task_org_config_names_job = stack.enter_context( patch("metecho.api.jobs.available_task_org_config_names_job") ) response = client.post( - reverse( - "project-refresh-org-config-names", kwargs={"pk": str(project.id)} - ) + reverse("epic-refresh-org-config-names", kwargs={"pk": str(epic.id)}) ) assert response.status_code == 202, response.json() diff --git a/metecho/api/urls.py b/metecho/api/urls.py index a911085ab..781a27422 100644 --- a/metecho/api/urls.py +++ b/metecho/api/urls.py @@ -3,8 +3,8 @@ from .views import ( AgreeToTosView, + EpicViewSet, HookView, - ProjectViewSet, RepositoryViewSet, ScratchOrgViewSet, TaskViewSet, @@ -17,7 +17,7 @@ router = routers.DefaultRouter() router.register("users", UserViewSet, basename="user") router.register("repositories", RepositoryViewSet, basename="repository") -router.register("projects", ProjectViewSet, basename="project") +router.register("epics", EpicViewSet, basename="epic") router.register("tasks", TaskViewSet, basename="task") router.register("scratch-orgs", ScratchOrgViewSet, basename="scratch-org") urlpatterns = router.urls + [ diff --git a/metecho/api/views.py b/metecho/api/views.py index 33a589175..df4464996 100644 --- a/metecho/api/views.py +++ b/metecho/api/views.py @@ -16,28 +16,21 @@ from . import gh from .authentication import GitHubHookAuthentication -from .filters import ProjectFilter, RepositoryFilter, ScratchOrgFilter, TaskFilter +from .filters import EpicFilter, RepositoryFilter, ScratchOrgFilter, TaskFilter from .hook_serializers import ( PrHookSerializer, PrReviewHookSerializer, PushHookSerializer, ) -from .models import ( - PROJECT_STATUSES, - SCRATCH_ORG_TYPES, - Project, - Repository, - ScratchOrg, - Task, -) +from .models import EPIC_STATUSES, SCRATCH_ORG_TYPES, Epic, Repository, ScratchOrg, Task from .paginators import CustomPaginator from .serializers import ( CanReassignSerializer, CommitSerializer, CreatePrSerializer, + EpicSerializer, FullUserSerializer, MinimalUserSerializer, - ProjectSerializer, RepositorySerializer, ReviewSerializer, ScratchOrgSerializer, @@ -181,7 +174,7 @@ def feature_branches(self, request, pk=None): None, repo_owner=instance.repo_owner, repo_name=instance.repo_name ) existing_branches = set( - Project.objects.active() + Epic.objects.active() .exclude(branch_name="") .values_list("branch_name", flat=True) ) @@ -197,22 +190,22 @@ def feature_branches(self, request, pk=None): return Response(data) -class ProjectViewSet(CreatePrMixin, ModelViewSet): +class EpicViewSet(CreatePrMixin, ModelViewSet): permission_classes = (IsAuthenticated,) - serializer_class = ProjectSerializer + serializer_class = EpicSerializer pagination_class = CustomPaginator - queryset = Project.objects.active() + queryset = Epic.objects.active() filter_backends = (DjangoFilterBackend,) - filterset_class = ProjectFilter - error_pr_exists = _("Project has already been submitted for testing.") + filterset_class = EpicFilter + error_pr_exists = _("Epic has already been submitted for testing.") def get_queryset(self): qs = super().get_queryset() whens = [ - When(status=PROJECT_STATUSES.Review, then=0), - When(status=PROJECT_STATUSES["In progress"], then=1), - When(status=PROJECT_STATUSES.Planned, then=2), - When(status=PROJECT_STATUSES.Merged, then=3), + When(status=EPIC_STATUSES.Review, then=0), + When(status=EPIC_STATUSES["In progress"], then=1), + When(status=EPIC_STATUSES.Planned, then=2), + When(status=EPIC_STATUSES.Merged, then=3), ] return qs.annotate(ordering=Case(*whens, output_field=IntegerField())).order_by( "ordering", "-created_at", "name" @@ -220,11 +213,9 @@ def get_queryset(self): @action(detail=True, methods=["POST"]) def refresh_org_config_names(self, request, pk=None): - project = self.get_object() - project.queue_available_task_org_config_names(request.user) - return Response( - self.get_serializer(project).data, status=status.HTTP_202_ACCEPTED - ) + epic = self.get_object() + epic.queue_available_task_org_config_names(request.user) + return Response(self.get_serializer(epic).data, status=status.HTTP_202_ACCEPTED) class TaskViewSet(CreatePrMixin, ModelViewSet): diff --git a/metecho/conftest.py b/metecho/conftest.py index 6571ae6a4..69eac6de3 100644 --- a/metecho/conftest.py +++ b/metecho/conftest.py @@ -6,7 +6,7 @@ from rest_framework.test import APIClient from sfdo_template_helpers.crypto import fernet_encrypt -from .api.models import GitHubRepository, Project, Repository, ScratchOrg, Task +from .api.models import Epic, GitHubRepository, Repository, ScratchOrg, Task User = get_user_model() @@ -85,11 +85,11 @@ class Meta: @register -class ProjectFactory(factory.django.DjangoModelFactory): +class EpicFactory(factory.django.DjangoModelFactory): class Meta: - model = Project + model = Epic - name = factory.Sequence("Project {}".format) + name = factory.Sequence("Epic {}".format) repository = factory.SubFactory(RepositoryFactory) @@ -98,8 +98,8 @@ class TaskFactory(factory.django.DjangoModelFactory): class Meta: model = Task - name = factory.Sequence("Project {}".format) - project = factory.SubFactory(ProjectFactory) + name = factory.Sequence("Epic {}".format) + epic = factory.SubFactory(EpicFactory) org_config_name = "dev" diff --git a/metecho/consumers.py b/metecho/consumers.py index 09eccb1db..d322a50d4 100644 --- a/metecho/consumers.py +++ b/metecho/consumers.py @@ -10,7 +10,7 @@ from .api.constants import CHANNELS_GROUP_NAME, LIST from .consumer_utils import clear_message_semaphore -KNOWN_MODELS = {"user", "repository", "project", "task", "scratchorg"} +KNOWN_MODELS = {"user", "repository", "epic", "task", "scratchorg"} class Actions(Enum): diff --git a/metecho/tests/consumers.py b/metecho/tests/consumers.py index f1b4d4c74..28319d279 100644 --- a/metecho/tests/consumers.py +++ b/metecho/tests/consumers.py @@ -5,7 +5,7 @@ from ..api.model_mixins import Request from ..api.push import push_message_about_instance, report_error from ..api.serializers import ( - ProjectSerializer, + EpicSerializer, RepositorySerializer, ScratchOrgSerializer, TaskSerializer, @@ -85,9 +85,9 @@ async def test_push_notification_consumer__scratch_org__list( @pytest.mark.django_db -async def test_push_notification_consumer__project(user_factory, project_factory): +async def test_push_notification_consumer__epic(user_factory, epic_factory): user = await database_sync_to_async(user_factory)() - project = await database_sync_to_async(project_factory)(repository__repo_id=1234) + epic = await database_sync_to_async(epic_factory)(repository__repo_id=1234) communicator = WebsocketCommunicator(websockets, "/ws/notifications/") communicator.scope["user"] = user @@ -95,16 +95,16 @@ async def test_push_notification_consumer__project(user_factory, project_factory assert connected await communicator.send_json_to( - {"model": "project", "id": str(project.id), "action": "SUBSCRIBE"} + {"model": "epic", "id": str(epic.id), "action": "SUBSCRIBE"} ) response = await communicator.receive_json_from() assert "ok" in response await push_message_about_instance( - project, {"type": "TEST_MESSAGE", "payload": {"originating_user_id": "abc"}} + epic, {"type": "TEST_MESSAGE", "payload": {"originating_user_id": "abc"}} ) response = await communicator.receive_json_from() - model = await serialize_model(ProjectSerializer, project, user) + model = await serialize_model(EpicSerializer, epic, user) assert response == { "type": "TEST_MESSAGE", "payload": {"originating_user_id": "abc", "model": model}, @@ -116,7 +116,7 @@ async def test_push_notification_consumer__project(user_factory, project_factory @pytest.mark.django_db async def test_push_notification_consumer__task(user_factory, task_factory): user = await database_sync_to_async(user_factory)() - task = await database_sync_to_async(task_factory)(project__repository__repo_id=4321) + task = await database_sync_to_async(task_factory)(epic__repository__repo_id=4321) communicator = WebsocketCommunicator(websockets, "/ws/notifications/") communicator.scope["user"] = user @@ -148,7 +148,7 @@ async def test_push_notification_consumer__scratch_org( ): user = await database_sync_to_async(user_factory)() scratch_org = await database_sync_to_async(scratch_org_factory)( - task__project__repository__repo_id=2468 + task__epic__repository__repo_id=2468 ) communicator = WebsocketCommunicator(websockets, "/ws/notifications/") diff --git a/src/js/components/projects/confirmRemoveUserModal.tsx b/src/js/components/epics/confirmRemoveUserModal.tsx similarity index 95% rename from src/js/components/projects/confirmRemoveUserModal.tsx rename to src/js/components/epics/confirmRemoveUserModal.tsx index 12b581d26..2745d2e64 100644 --- a/src/js/components/projects/confirmRemoveUserModal.tsx +++ b/src/js/components/epics/confirmRemoveUserModal.tsx @@ -56,10 +56,10 @@ const ConfirmRemoveUserModal = ({ >
- The following user is being removed from this project, but is already + The following user is being removed from this epic, but is already assigned to at least one task. Removing this user will not remove them from any assigned tasks. Are you sure you want to remove this user - from the project? + from the epic?
    {(confirmRemoveUsers as GitHubUser[]).map((user) => ( diff --git a/src/js/components/projects/createForm.tsx b/src/js/components/epics/createForm.tsx similarity index 91% rename from src/js/components/projects/createForm.tsx rename to src/js/components/epics/createForm.tsx index 2d82b422e..7b6a0be6f 100644 --- a/src/js/components/projects/createForm.tsx +++ b/src/js/components/epics/createForm.tsx @@ -32,7 +32,7 @@ interface Props extends RouteComponentProps { closeCreateModal: () => void; } -const CreateProjectModal = ({ +const CreateEpicModal = ({ user, repository, isOpen, @@ -41,7 +41,7 @@ const CreateProjectModal = ({ }: Props) => { const isMounted = useIsMounted(); const [isSaving, setIsSaving] = useState(false); - // state related to setting base branch on project creation + // state related to setting base branch on epic creation const [fromBranchChecked, setFromBranchChecked] = useState(false); const [fetchingBranches, setFetchingBranches] = useState(false); const [repoBranches, setRepoBranches] = useState([]); @@ -62,10 +62,10 @@ const CreateProjectModal = ({ } if ( type === 'CREATE_OBJECT_SUCCEEDED' && - objectType === OBJECT_TYPES.PROJECT && + objectType === OBJECT_TYPES.EPIC && object?.slug ) { - const url = routes.project_detail(repository.slug, object.slug); + const url = routes.epic_detail(repository.slug, object.slug); history.push(url); } }; @@ -89,7 +89,7 @@ const CreateProjectModal = ({ resetForm, } = useForm({ fields: { name: '', description: '', branch_name: '' }, - objectType: OBJECT_TYPES.PROJECT, + objectType: OBJECT_TYPES.EPIC, additionalData: { repository: repository.id, github_users: githubUser ? [githubUser] : [], @@ -220,7 +220,7 @@ const CreateProjectModal = ({ isOpen={isOpen} size="small" disableClose={isSaving} - heading={`${i18n.t('Create a Project for')} ${repository.name}`} + heading={`${i18n.t('Create an Epic for')} ${repository.name}`} onRequestClose={closeForm} footer={[