diff --git a/.eslintrc.json b/.eslintrc.json index 27eed9e..6ca321a 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -67,7 +67,6 @@ "extends": [ "eslint:recommended", "plugin:@typescript-eslint/recommended", - "prettier/@typescript-eslint", "plugin:react/recommended", "plugin:react-hooks/recommended" ] diff --git a/.vscode/settings.json b/.vscode/settings.json index 7b088fe..061c562 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -22,6 +22,7 @@ "appendhashes", "arraybuffer", "authorised", + "behaviour", "chartjs", "clientside", "commonmeta", diff --git a/package.json b/package.json index 34fde37..ae59b10 100644 --- a/package.json +++ b/package.json @@ -18,25 +18,26 @@ "@ant-design/icons": "^4.5.0", "@testing-library/jest-dom": "^5.11.9", "@testing-library/react": "^11.2.5", - "@testing-library/user-event": "^12.7.1", - "antd": "^4.12.3", - "async-mutex": "^0.3.0", + "@testing-library/user-event": "^12.8.0", + "antd": "^4.13.0", + "async-mutex": "^0.3.1", "base64-arraybuffer": "^0.2.0", "chart.js": "^2.9.4", "classnames": "^2.2.6", - "csv-stringify": "^5.6.1", + "csv-stringify": "^5.6.2", "dayjs": "^1.10.4", "debug": "^4.3.1", "file-saver": "^2.0.5", - "i18next": "^19.7.0", + "i18next": "^19.9.0", "i18next-browser-languagedetector": "^6.0.1", - "i18next-http-backend": "^1.0.20", + "i18next-http-backend": "^1.1.1", "lodash-es": "^4.17.21", "lru-cache": "^6.0.0", "react": "^17.0.1", "react-chartjs-2": "^2.11.1", "react-dom": "^17.0.1", - "react-i18next": "^11.8.6", + "react-hotkeys": "^2.0.0", + "react-i18next": "^11.8.8", "react-redux": "^7.2.2", "react-router-dom": "^5.2.0", "react-timeago": "^5.2.0", @@ -81,48 +82,33 @@ "@types/jest": "^26.0.20", "@types/lodash-es": "^4.17.4", "@types/lru-cache": "^5.1.0", - "@types/node": "^12.19.16", - "@types/react": "^17.0.1", - "@types/react-dom": "^17.0.0", + "@types/node": "^14.14.31", + "@types/react": "^17.0.2", + "@types/react-dom": "^17.0.1", "@types/react-redux": "^7.1.16", "@types/react-router-dom": "^5.1.7", "@types/react-timeago": "^4.1.2", "@types/semver": "^7.3.4", "@types/uuid": "^8.3.0", "@types/webpack-env": "^1.16.0", - "@typescript-eslint/eslint-plugin": "^4.15.0", - "@typescript-eslint/parser": "^4.15.0", + "@typescript-eslint/eslint-plugin": "4.15.3-alpha.17", + "@typescript-eslint/parser": "4.15.3-alpha.17", "antd-dayjs-webpack-plugin": "^1.0.6", "babel-plugin-lodash": "^3.3.4", "craco-less": "^1.17.1", - "eslint": "^7.20.0", - "eslint-config-prettier": "^7.2.0", + "eslint": "^7.21.0", "eslint-plugin-react": "^7.22.0", "eslint-plugin-react-hooks": "^4.2.0", "eslint-plugin-tsdoc": "^0.2.11", - "prettier": "^2.2.1", "react-refresh": "^0.9.0", - "react-scripts": "4.0.2", + "react-scripts": "^4.0.3", "redux-devtools-extension": "^2.13.8", "rimraf": "^3.0.2", - "typescript": "^4.1.5", + "typescript": "4.1.5", "utility-types": "^3.10.0", "webpack-bundle-analyzer": "^4.4.0", "webpackbar": "^5.0.0-3" }, - "stylelint": { - "extends": "stylelint-config-recommended", - "rules": { - "at-rule-no-unknown": [ - true, - { - "ignoreAtRules": [ - "import-normalize" - ] - } - ] - } - }, "jest": { "transformIgnorePatterns": [ "/node_modules/(?!antd|@ant-design|rc-.+?|@babel/runtime).+(js|jsx)$" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8595b52..9ff071a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2,25 +2,26 @@ '@ant-design/icons': 4.5.0_react-dom@17.0.1+react@17.0.1 '@testing-library/jest-dom': 5.11.9 '@testing-library/react': 11.2.5_react-dom@17.0.1+react@17.0.1 - '@testing-library/user-event': 12.7.1 - antd: 4.12.3_89622fd8e4ec221151a62783d49305af - async-mutex: 0.3.0 + '@testing-library/user-event': 12.8.0 + antd: 4.13.0_89622fd8e4ec221151a62783d49305af + async-mutex: 0.3.1 base64-arraybuffer: 0.2.0 chart.js: 2.9.4 classnames: 2.2.6 - csv-stringify: 5.6.1 + csv-stringify: 5.6.2 dayjs: 1.10.4 debug: 4.3.1 file-saver: 2.0.5 - i18next: 19.8.7 + i18next: 19.9.0 i18next-browser-languagedetector: 6.0.1 - i18next-http-backend: 1.1.0 + i18next-http-backend: 1.1.1 lodash-es: 4.17.21 lru-cache: 6.0.0 react: 17.0.1 react-chartjs-2: 2.11.1_6c446a34f83b2a92e3214f8b711c141a react-dom: 17.0.1_react@17.0.1 - react-i18next: 11.8.6_i18next@19.8.7+react@17.0.1 + react-hotkeys: 2.0.0_react@17.0.1 + react-i18next: 11.8.8_i18next@19.9.0+react@17.0.1 react-redux: 7.2.2_380dc38591053d98779d1f25fc7202b9 react-router-dom: 5.2.0_react@17.0.1 react-timeago: 5.2.0_react@17.0.1 @@ -33,14 +34,14 @@ web-vitals: 1.1.0 websocket-as-promised: 2.0.1 devDependencies: - '@craco/craco': 6.1.1_react-scripts@4.0.2 + '@craco/craco': 6.1.1_react-scripts@4.0.3 '@types/classnames': 2.2.11 '@types/debug': 4.1.5 '@types/file-saver': 2.0.1 '@types/jest': 26.0.20 '@types/lodash-es': 4.17.4 '@types/lru-cache': 5.1.0 - '@types/node': 12.20.0 + '@types/node': 14.14.31 '@types/react': 17.0.2 '@types/react-dom': 17.0.1 '@types/react-redux': 7.1.16 @@ -49,19 +50,17 @@ '@types/semver': 7.3.4 '@types/uuid': 8.3.0 '@types/webpack-env': 1.16.0 - '@typescript-eslint/eslint-plugin': 4.15.0_bc16c4564afe16e3219e549b81836acd - '@typescript-eslint/parser': 4.15.0_eslint@7.20.0+typescript@4.1.5 + '@typescript-eslint/eslint-plugin': 4.15.3-alpha.17_bcfedfa8b2673ad3028fc37ce1448d88 + '@typescript-eslint/parser': 4.15.3-alpha.17_eslint@7.21.0+typescript@4.1.5 antd-dayjs-webpack-plugin: 1.0.6_dayjs@1.10.4 babel-plugin-lodash: 3.3.4 - craco-less: 1.17.1_8837222c0261ea4582cefd2e7a5e3032 - eslint: 7.20.0 - eslint-config-prettier: 7.2.0_eslint@7.20.0 - eslint-plugin-react: 7.22.0_eslint@7.20.0 - eslint-plugin-react-hooks: 4.2.0_eslint@7.20.0 + craco-less: 1.17.1_077094f002a207b28261f7f7ea13418e + eslint: 7.21.0 + eslint-plugin-react: 7.22.0_eslint@7.21.0 + eslint-plugin-react-hooks: 4.2.0_eslint@7.21.0 eslint-plugin-tsdoc: 0.2.11 - prettier: 2.2.1 react-refresh: 0.9.0 - react-scripts: 4.0.2_react@17.0.1+typescript@4.1.5 + react-scripts: 4.0.3_react@17.0.1+typescript@4.1.5 redux-devtools-extension: 2.13.8_redux@4.0.5 rimraf: 3.0.2 typescript: 4.1.5 @@ -84,10 +83,10 @@ dependencies: '@ant-design/colors': 6.0.0 '@ant-design/icons-svg': 4.1.0 - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 insert-css: 2.0.0 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 dev: false engines: @@ -97,53 +96,53 @@ react-dom: '*' resolution: integrity: sha512-ZAKJcmr4DBV3NWr8wm2dCxNKN4eFrX+qCaPsuFejP6FRsf+m5OKxvCVi9bSp1lmKWeOI5yECAx5s0uFm4QHuPw== - /@ant-design/react-slick/0.28.1: + /@ant-design/react-slick/0.28.2: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 json2mq: 0.2.0 - lodash: 4.17.20 + lodash: 4.17.21 resize-observer-polyfill: 1.5.1 dev: false resolution: - integrity: sha512-Uk+GNexHOmiK3BMk/xvliNsNt+LYnN49u5o4lqeuMKXJlNqE9kGpEF03KpxDqu/zybO0/0yAJALha8oPtR5iHA== + integrity: sha512-nkrvXsO29pLToFaBb3MlJY4McaUFR4UHtXTz6A5HBzYmxH4SwKerX54mWdGc/6tKpHvS3vUwjEOt2T5XqZEo8Q== /@babel/code-frame/7.10.4: dependencies: - '@babel/highlight': 7.12.13 + '@babel/highlight': 7.13.8 dev: true resolution: integrity: sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== /@babel/code-frame/7.12.11: dependencies: - '@babel/highlight': 7.12.13 + '@babel/highlight': 7.13.8 dev: true resolution: integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== /@babel/code-frame/7.12.13: dependencies: - '@babel/highlight': 7.12.13 + '@babel/highlight': 7.13.8 resolution: integrity: sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== - /@babel/compat-data/7.12.13: + /@babel/compat-data/7.13.8: dev: true resolution: - integrity: sha512-U/hshG5R+SIoW7HVWIdmy1cB7s3ki+r3FpyEZiCgpi4tFgPnX/vynY80ZGSASOIrUM6O7VxOgCZgdt7h97bUGg== + integrity: sha512-EaI33z19T4qN3xLXsGf48M2cDqa6ei9tPZlfLdb2HC+e/cFtREiRd8hdSqDbwdLB0/+gLwqJmCYASH0z2bUdog== /@babel/core/7.12.3: dependencies: '@babel/code-frame': 7.12.13 - '@babel/generator': 7.12.15 - '@babel/helper-module-transforms': 7.12.13 - '@babel/helpers': 7.12.13 - '@babel/parser': 7.12.16 + '@babel/generator': 7.13.0 + '@babel/helper-module-transforms': 7.13.0 + '@babel/helpers': 7.13.0 + '@babel/parser': 7.13.4 '@babel/template': 7.12.13 - '@babel/traverse': 7.12.13 - '@babel/types': 7.12.13 + '@babel/traverse': 7.13.0 + '@babel/types': 7.13.0 convert-source-map: 1.7.0 debug: 4.3.1 gensync: 1.0.0-beta.2 json5: 2.2.0 - lodash: 4.17.20 - resolve: 1.18.1 + lodash: 4.17.21 + resolve: 1.20.0 semver: 5.7.1 source-map: 0.5.7 dev: true @@ -151,53 +150,53 @@ node: '>=6.9.0' resolution: integrity: sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g== - /@babel/generator/7.12.15: + /@babel/generator/7.13.0: dependencies: - '@babel/types': 7.12.13 + '@babel/types': 7.13.0 jsesc: 2.5.2 source-map: 0.5.7 dev: true resolution: - integrity: sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ== + integrity: sha512-zBZfgvBB/ywjx0Rgc2+BwoH/3H+lDtlgD4hBOpEv5LxRnYsm/753iRuLepqnYlynpjC3AdQxtxsoeHJoEEwOAw== /@babel/helper-annotate-as-pure/7.12.13: dependencies: - '@babel/types': 7.12.13 + '@babel/types': 7.13.0 dev: true resolution: integrity: sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw== /@babel/helper-builder-binary-assignment-operator-visitor/7.12.13: dependencies: - '@babel/helper-explode-assignable-expression': 7.12.13 - '@babel/types': 7.12.13 + '@babel/helper-explode-assignable-expression': 7.13.0 + '@babel/types': 7.13.0 dev: true resolution: integrity: sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA== - /@babel/helper-compilation-targets/7.12.16_@babel+core@7.12.3: + /@babel/helper-compilation-targets/7.13.8_@babel+core@7.12.3: dependencies: - '@babel/compat-data': 7.12.13 + '@babel/compat-data': 7.13.8 '@babel/core': 7.12.3 - '@babel/helper-validator-option': 7.12.16 + '@babel/helper-validator-option': 7.12.17 browserslist: 4.16.3 - semver: 5.7.1 + semver: 6.3.0 dev: true peerDependencies: '@babel/core': ^7.0.0 resolution: - integrity: sha512-dBHNEEaZx7F3KoUYqagIhRIeqyyuI65xMndMZ3WwGwEBI609I4TleYQHcrS627vbKyNTXqShoN+fvYD9HuQxAg== - /@babel/helper-create-class-features-plugin/7.12.16_@babel+core@7.12.3: + integrity: sha512-pBljUGC1y3xKLn1nrx2eAhurLMA8OqBtBP/JwG4U8skN7kf8/aqwwxpV1N6T0e7r6+7uNitIa/fUxPFagSXp3A== + /@babel/helper-create-class-features-plugin/7.13.8_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 '@babel/helper-function-name': 7.12.13 - '@babel/helper-member-expression-to-functions': 7.12.16 + '@babel/helper-member-expression-to-functions': 7.13.0 '@babel/helper-optimise-call-expression': 7.12.13 - '@babel/helper-replace-supers': 7.12.13 + '@babel/helper-replace-supers': 7.13.0 '@babel/helper-split-export-declaration': 7.12.13 dev: true peerDependencies: '@babel/core': ^7.0.0 resolution: - integrity: sha512-KbSEj8l9zYkMVHpQqM3wJNxS1d9h3U9vm/uE5tpjMbaj3lTp+0noe3KPsV5dSD9jxKnf9jO9Ip9FX5PKNZCKow== - /@babel/helper-create-regexp-features-plugin/7.12.16_@babel+core@7.12.3: + integrity: sha512-qioaRrKHQbn4hkRKDHbnuQ6kAxmmOF+kzKGnIfxPK4j2rckSJCpKzr/SSTlohSCiE3uAQpNDJ9FIh4baeE8W+w== + /@babel/helper-create-regexp-features-plugin/7.12.17_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 '@babel/helper-annotate-as-pure': 7.12.13 @@ -206,13 +205,29 @@ peerDependencies: '@babel/core': ^7.0.0 resolution: - integrity: sha512-jAcQ1biDYZBdaAxB4yg46/XirgX7jBDiMHDbwYQOgtViLBXGxJpZQ24jutmBqAIB/q+AwB6j+NbBXjKxEY8vqg== - /@babel/helper-explode-assignable-expression/7.12.13: + integrity: sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg== + /@babel/helper-define-polyfill-provider/0.1.4_@babel+core@7.12.3: dependencies: - '@babel/types': 7.12.13 + '@babel/core': 7.12.3 + '@babel/helper-compilation-targets': 7.13.8_@babel+core@7.12.3 + '@babel/helper-module-imports': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/traverse': 7.13.0 + debug: 4.3.1 + lodash.debounce: 4.0.8 + resolve: 1.20.0 + semver: 6.3.0 + dev: true + peerDependencies: + '@babel/core': ^7.4.0-0 + resolution: + integrity: sha512-K5V2GaQZ1gpB+FTXM4AFVG2p1zzhm67n9wrQCJYNzvuLzQybhJyftW7qeDd2uUxPDNdl5Rkon1rOAeUeNDZ28Q== + /@babel/helper-explode-assignable-expression/7.13.0: + dependencies: + '@babel/types': 7.13.0 dev: true resolution: - integrity: sha512-5loeRNvMo9mx1dA/d6yNi+YiKziJZFylZnCo1nmFF4qPU4yJ14abhWESuSMQSlQxWdxdOFzxXjk/PpfudTtYyw== + integrity: sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA== /@babel/helper-function-name/7.12.13: dependencies: '@babel/helper-get-function-arity': 7.12.13 @@ -227,65 +242,66 @@ dev: true resolution: integrity: sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== - /@babel/helper-hoist-variables/7.12.13: + /@babel/helper-hoist-variables/7.13.0: dependencies: - '@babel/types': 7.12.13 + '@babel/traverse': 7.13.0 + '@babel/types': 7.13.0 dev: true resolution: - integrity: sha512-KSC5XSj5HreRhYQtZ3cnSnQwDzgnbdUDEFsxkN0m6Q3WrCRt72xrnZ8+h+pX7YxM7hr87zIO3a/v5p/H3TrnVw== - /@babel/helper-member-expression-to-functions/7.12.16: + integrity: sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g== + /@babel/helper-member-expression-to-functions/7.13.0: dependencies: - '@babel/types': 7.12.13 + '@babel/types': 7.13.0 dev: true resolution: - integrity: sha512-zYoZC1uvebBFmj1wFAlXwt35JLEgecefATtKp20xalwEK8vHAixLBXTGxNrVGEmTT+gzOThUgr8UEdgtalc1BQ== + integrity: sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ== /@babel/helper-module-imports/7.12.13: dependencies: '@babel/types': 7.13.0 dev: true resolution: integrity: sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g== - /@babel/helper-module-transforms/7.12.13: + /@babel/helper-module-transforms/7.13.0: dependencies: '@babel/helper-module-imports': 7.12.13 - '@babel/helper-replace-supers': 7.12.13 + '@babel/helper-replace-supers': 7.13.0 '@babel/helper-simple-access': 7.12.13 '@babel/helper-split-export-declaration': 7.12.13 '@babel/helper-validator-identifier': 7.12.11 '@babel/template': 7.12.13 - '@babel/traverse': 7.12.13 - '@babel/types': 7.12.13 - lodash: 4.17.20 + '@babel/traverse': 7.13.0 + '@babel/types': 7.13.0 + lodash: 4.17.21 dev: true resolution: - integrity: sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA== + integrity: sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw== /@babel/helper-optimise-call-expression/7.12.13: dependencies: '@babel/types': 7.13.0 dev: true resolution: integrity: sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== - /@babel/helper-plugin-utils/7.12.13: + /@babel/helper-plugin-utils/7.13.0: dev: true resolution: - integrity: sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA== - /@babel/helper-remap-async-to-generator/7.12.13: + integrity: sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== + /@babel/helper-remap-async-to-generator/7.13.0: dependencies: '@babel/helper-annotate-as-pure': 7.12.13 - '@babel/helper-wrap-function': 7.12.13 - '@babel/types': 7.12.13 + '@babel/helper-wrap-function': 7.13.0 + '@babel/types': 7.13.0 dev: true resolution: - integrity: sha512-Qa6PU9vNcj1NZacZZI1Mvwt+gXDH6CTfgAkSjeRMLE8HxtDK76+YDId6NQR+z7Rgd5arhD2cIbS74r0SxD6PDA== - /@babel/helper-replace-supers/7.12.13: + integrity: sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg== + /@babel/helper-replace-supers/7.13.0: dependencies: - '@babel/helper-member-expression-to-functions': 7.12.16 + '@babel/helper-member-expression-to-functions': 7.13.0 '@babel/helper-optimise-call-expression': 7.12.13 - '@babel/traverse': 7.12.13 - '@babel/types': 7.12.13 + '@babel/traverse': 7.13.0 + '@babel/types': 7.13.0 dev: true resolution: - integrity: sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg== + integrity: sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw== /@babel/helper-simple-access/7.12.13: dependencies: '@babel/types': 7.13.0 @@ -294,7 +310,7 @@ integrity: sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA== /@babel/helper-skip-transparent-expression-wrappers/7.12.1: dependencies: - '@babel/types': 7.12.13 + '@babel/types': 7.13.0 dev: true resolution: integrity: sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== @@ -307,154 +323,147 @@ /@babel/helper-validator-identifier/7.12.11: resolution: integrity: sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== - /@babel/helper-validator-option/7.12.16: + /@babel/helper-validator-option/7.12.17: dev: true resolution: - integrity: sha512-uCgsDBPUQDvzr11ePPo4TVEocxj8RXjUVSC/Y8N1YpVAI/XDdUwGJu78xmlGhTxj2ntaWM7n9LQdRtyhOzT2YQ== - /@babel/helper-wrap-function/7.12.13: + integrity: sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== + /@babel/helper-wrap-function/7.13.0: dependencies: '@babel/helper-function-name': 7.12.13 '@babel/template': 7.12.13 - '@babel/traverse': 7.12.13 - '@babel/types': 7.12.13 + '@babel/traverse': 7.13.0 + '@babel/types': 7.13.0 dev: true resolution: - integrity: sha512-t0aZFEmBJ1LojdtJnhOaQEVejnzYhyjWHSsNSNo8vOYRbAJNh6r6GQF7pd36SqG7OKGbn+AewVQ/0IfYfIuGdw== - /@babel/helpers/7.12.13: + integrity: sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA== + /@babel/helpers/7.13.0: dependencies: '@babel/template': 7.12.13 - '@babel/traverse': 7.12.13 - '@babel/types': 7.12.13 + '@babel/traverse': 7.13.0 + '@babel/types': 7.13.0 dev: true resolution: - integrity: sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ== - /@babel/highlight/7.12.13: + integrity: sha512-aan1MeFPxFacZeSz6Ld7YZo5aPuqnKlD7+HZY75xQsueczFccP9A7V05+oe0XpLwHK3oLorPe9eaAUljL7WEaQ== + /@babel/highlight/7.13.8: dependencies: '@babel/helper-validator-identifier': 7.12.11 chalk: 2.4.2 js-tokens: 4.0.0 resolution: - integrity: sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww== - /@babel/parser/7.12.16: + integrity: sha512-4vrIhfJyfNf+lCtXC2ck1rKSzDwciqF7IWFhXXrSOUC2O5DrVp+w4c6ed4AllTxhTkUP5x2tYj41VaxdVMMRDw== + /@babel/parser/7.13.4: dev: true engines: node: '>=6.0.0' hasBin: true resolution: - integrity: sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw== - /@babel/parser/7.13.0: - dev: true - engines: - node: '>=6.0.0' - hasBin: true - resolution: - integrity: sha512-w80kxEMFhE3wjMOQkfdTvv0CSdRSJZptIlLhU4eU/coNJeWjduspUFz+IRnBbAq6m5XYBFMoT1TNkk9K9yf10g== - /@babel/plugin-proposal-async-generator-functions/7.12.13_@babel+core@7.12.3: + integrity: sha512-uvoOulWHhI+0+1f9L4BoozY7U5cIkZ9PgJqvb041d6vypgUmtVPG4vmGm4pSggjl8BELzvHyUeJSUyEMY6b+qA== + /@babel/plugin-proposal-async-generator-functions/7.13.8_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 - '@babel/helper-remap-async-to-generator': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/helper-remap-async-to-generator': 7.13.0 '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.12.3 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-1KH46Hx4WqP77f978+5Ye/VUbuwQld2hph70yaw2hXS2v7ER2f3nlpNMu909HO2rbvP0NKLlMVDPh9KXklVMhA== - /@babel/plugin-proposal-class-properties/7.12.13_@babel+core@7.12.3: - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-create-class-features-plugin': 7.12.16_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.12.13 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-8SCJ0Ddrpwv4T7Gwb33EmW1V9PY5lggTO+A8WjyIwxrSHDUyBw4MtF96ifn1n8H806YlxbVCoKXbbmzD6RD+cA== + integrity: sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA== /@babel/plugin-proposal-class-properties/7.12.1_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-create-class-features-plugin': 7.12.16_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-create-class-features-plugin': 7.13.8_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w== + /@babel/plugin-proposal-class-properties/7.13.0_@babel+core@7.12.3: + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-create-class-features-plugin': 7.13.8_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.13.0 + dev: true + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg== /@babel/plugin-proposal-decorators/7.12.1_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-create-class-features-plugin': 7.12.16_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-create-class-features-plugin': 7.13.8_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.13.0 '@babel/plugin-syntax-decorators': 7.12.13_@babel+core@7.12.3 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-knNIuusychgYN8fGJHONL0RbFxLGawhXOJNLBk75TniTsZZeA+wdkDuv6wp4lGwzQEKjZi6/WYtnb3udNPmQmQ== - /@babel/plugin-proposal-dynamic-import/7.12.16_@babel+core@7.12.3: + /@babel/plugin-proposal-dynamic-import/7.13.8_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.12.3 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-yiDkYFapVxNOCcBfLnsb/qdsliroM+vc3LHiZwS4gh7pFjo5Xq3BDhYBNn3H3ao+hWPvqeeTdU+s+FIvokov+w== + integrity: sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ== /@babel/plugin-proposal-export-namespace-from/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.12.3 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw== - /@babel/plugin-proposal-json-strings/7.12.13_@babel+core@7.12.3: + /@babel/plugin-proposal-json-strings/7.13.8_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.12.3 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-v9eEi4GiORDg8x+Dmi5r8ibOe0VXoKDeNPYcTTxdGN4eOWikrJfDJCJrr1l5gKGvsNyGJbrfMftC2dTL6oz7pg== - /@babel/plugin-proposal-logical-assignment-operators/7.12.13_@babel+core@7.12.3: + integrity: sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q== + /@babel/plugin-proposal-logical-assignment-operators/7.13.8_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.12.3 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-fqmiD3Lz7jVdK6kabeSr1PZlWSUVqSitmHEe3Z00dtGTKieWnX9beafvavc32kjORa5Bai4QNHgFDwWJP+WtSQ== - /@babel/plugin-proposal-nullish-coalescing-operator/7.12.13_@babel+core@7.12.3: - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.12.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-Qoxpy+OxhDBI5kRqliJFAl4uWXk3Bn24WeFstPH0iLymFehSAUR8MHpqU7njyXv/qbo7oN6yTy5bfCmXdKpo1Q== + integrity: sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A== /@babel/plugin-proposal-nullish-coalescing-operator/7.12.1_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.12.3 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg== + /@babel/plugin-proposal-nullish-coalescing-operator/7.13.8_@babel+core@7.12.3: + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.12.3 + dev: true + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A== /@babel/plugin-proposal-numeric-separator/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.12.3 dev: true peerDependencies: @@ -464,49 +473,40 @@ /@babel/plugin-proposal-numeric-separator/7.12.1_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.12.3 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-MR7Ok+Af3OhNTCxYVjJZHS0t97ydnJZt/DbR4WISO39iDnhiD8XHrY12xuSJ90FFEGjir0Fzyyn7g/zY6hxbxA== - /@babel/plugin-proposal-object-rest-spread/7.12.13_@babel+core@7.12.3: + /@babel/plugin-proposal-object-rest-spread/7.13.8_@babel+core@7.12.3: dependencies: + '@babel/compat-data': 7.13.8 '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-compilation-targets': 7.13.8_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.13.0 '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-transform-parameters': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-parameters': 7.13.0_@babel+core@7.12.3 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-WvA1okB/0OS/N3Ldb3sziSrXg6sRphsBgqiccfcQq7woEn5wQLNX82Oc4PlaFcdwcWHuQXAtb8ftbS8Fbsg/sg== - /@babel/plugin-proposal-optional-catch-binding/7.12.13_@babel+core@7.12.3: + integrity: sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g== + /@babel/plugin-proposal-optional-catch-binding/7.13.8_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.12.3 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-9+MIm6msl9sHWg58NvqpNpLtuFbmpFYk37x8kgnGzAHvX35E1FyAwSUt5hIkSoWJFSAH+iwU8bJ4fcD1zKXOzg== - /@babel/plugin-proposal-optional-chaining/7.12.16_@babel+core@7.12.3: - dependencies: - '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 - '@babel/helper-skip-transparent-expression-wrappers': 7.12.1 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.12.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-O3ohPwOhkwji5Mckb7F/PJpJVJY3DpPsrt/F0Bk40+QMk9QpAIqeGusHWqu/mYqsM8oBa6TziL/2mbERWsUZjg== + integrity: sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA== /@babel/plugin-proposal-optional-chaining/7.12.1_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 '@babel/helper-skip-transparent-expression-wrappers': 7.12.1 '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.12.3 dev: true @@ -514,21 +514,32 @@ '@babel/core': ^7.0.0-0 resolution: integrity: sha512-c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw== - /@babel/plugin-proposal-private-methods/7.12.13_@babel+core@7.12.3: + /@babel/plugin-proposal-optional-chaining/7.13.8_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-create-class-features-plugin': 7.12.16_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.12.1 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.12.3 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-sV0V57uUwpauixvR7s2o75LmwJI6JECwm5oPUY5beZB1nBl2i37hc7CJGqB5G+58fur5Y6ugvl3LRONk5x34rg== + integrity: sha512-hpbBwbTgd7Cz1QryvwJZRo1U0k1q8uyBmeXOSQUjdg/A2TASkhR/rz7AyqZ/kS8kbpsNA80rOYbxySBJAqmhhQ== + /@babel/plugin-proposal-private-methods/7.13.0_@babel+core@7.12.3: + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-create-class-features-plugin': 7.13.8_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.13.0 + dev: true + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q== /@babel/plugin-proposal-unicode-property-regex/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-create-regexp-features-plugin': 7.12.16_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-create-regexp-features-plugin': 7.12.17_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.13.0 dev: true engines: node: '>=4' @@ -539,7 +550,7 @@ /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -548,7 +559,7 @@ /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -557,7 +568,7 @@ /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -566,7 +577,7 @@ /@babel/plugin-syntax-decorators/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -575,7 +586,7 @@ /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -584,7 +595,7 @@ /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -593,7 +604,7 @@ /@babel/plugin-syntax-flow/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -602,7 +613,7 @@ /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -611,7 +622,7 @@ /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -620,7 +631,7 @@ /@babel/plugin-syntax-jsx/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -629,7 +640,7 @@ /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -638,7 +649,7 @@ /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -647,7 +658,7 @@ /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -656,7 +667,7 @@ /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -665,7 +676,7 @@ /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -674,7 +685,7 @@ /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -683,7 +694,7 @@ /@babel/plugin-syntax-top-level-await/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -692,36 +703,36 @@ /@babel/plugin-syntax-typescript/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w== - /@babel/plugin-transform-arrow-functions/7.12.13_@babel+core@7.12.3: + /@babel/plugin-transform-arrow-functions/7.13.0_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-tBtuN6qtCTd+iHzVZVOMNp+L04iIJBpqkdY42tWbmjIT5wvR2kx7gxMBsyhQtFzHwBbyGi9h8J8r9HgnOpQHxg== - /@babel/plugin-transform-async-to-generator/7.12.13_@babel+core@7.12.3: + integrity: sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg== + /@babel/plugin-transform-async-to-generator/7.13.0_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 '@babel/helper-module-imports': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 - '@babel/helper-remap-async-to-generator': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/helper-remap-async-to-generator': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-psM9QHcHaDr+HZpRuJcE1PXESuGWSCcbiGFFhhwfzdbTxaGDVzuVtdNYliAwcRo3GFg0Bc8MmI+AvIGYIJG04A== + integrity: sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg== /@babel/plugin-transform-block-scoped-functions/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -730,50 +741,50 @@ /@babel/plugin-transform-block-scoping/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ== - /@babel/plugin-transform-classes/7.12.13_@babel+core@7.12.3: + /@babel/plugin-transform-classes/7.13.0_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 '@babel/helper-annotate-as-pure': 7.12.13 '@babel/helper-function-name': 7.12.13 '@babel/helper-optimise-call-expression': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 - '@babel/helper-replace-supers': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/helper-replace-supers': 7.13.0 '@babel/helper-split-export-declaration': 7.12.13 globals: 11.12.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-cqZlMlhCC1rVnxE5ZGMtIb896ijL90xppMiuWXcwcOAuFczynpd3KYemb91XFFPi3wJSe/OcrX9lXoowatkkxA== - /@babel/plugin-transform-computed-properties/7.12.13_@babel+core@7.12.3: + integrity: sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g== + /@babel/plugin-transform-computed-properties/7.13.0_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-dDfuROUPGK1mTtLKyDPUavmj2b6kFu82SmgpztBFEO974KMjJT+Ytj3/oWsTUMBmgPcp9J5Pc1SlcAYRpJ2hRA== - /@babel/plugin-transform-destructuring/7.12.13_@babel+core@7.12.3: + integrity: sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg== + /@babel/plugin-transform-destructuring/7.13.0_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-Dn83KykIFzjhA3FDPA1z4N+yfF3btDGhjnJwxIj0T43tP0flCujnU8fKgEkf0C1biIpSv9NZegPBQ1J6jYkwvQ== + integrity: sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA== /@babel/plugin-transform-dotall-regex/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-create-regexp-features-plugin': 7.12.16_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-create-regexp-features-plugin': 7.12.17_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -782,7 +793,7 @@ /@babel/plugin-transform-duplicate-keys/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -792,7 +803,7 @@ dependencies: '@babel/core': 7.12.3 '@babel/helper-builder-binary-assignment-operator-visitor': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -801,27 +812,27 @@ /@babel/plugin-transform-flow-strip-types/7.12.1_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 '@babel/plugin-syntax-flow': 7.12.13_@babel+core@7.12.3 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-8hAtkmsQb36yMmEtk2JZ9JnVyDSnDOdlB+0nEGzIDLuK4yR3JcEjfuFPYkdEPSh8Id+rAMeBEn+X0iVEyho6Hg== - /@babel/plugin-transform-for-of/7.12.13_@babel+core@7.12.3: + /@babel/plugin-transform-for-of/7.13.0_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-xCbdgSzXYmHGyVX3+BsQjcd4hv4vA/FDy7Kc8eOpzKmBBPEOTurt0w5fCRQaGl+GSBORKgJdstQ1rHl4jbNseQ== + integrity: sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg== /@babel/plugin-transform-function-name/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 '@babel/helper-function-name': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -830,7 +841,7 @@ /@babel/plugin-transform-literals/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -839,62 +850,62 @@ /@babel/plugin-transform-member-expression-literals/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg== - /@babel/plugin-transform-modules-amd/7.12.13_@babel+core@7.12.3: + /@babel/plugin-transform-modules-amd/7.13.0_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-module-transforms': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-module-transforms': 7.13.0 + '@babel/helper-plugin-utils': 7.13.0 babel-plugin-dynamic-import-node: 2.3.3 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-JHLOU0o81m5UqG0Ulz/fPC68/v+UTuGTWaZBUwpEk1fYQ1D9LfKV6MPn4ttJKqRo5Lm460fkzjLTL4EHvCprvA== - /@babel/plugin-transform-modules-commonjs/7.12.13_@babel+core@7.12.3: + integrity: sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ== + /@babel/plugin-transform-modules-commonjs/7.13.8_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-module-transforms': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-module-transforms': 7.13.0 + '@babel/helper-plugin-utils': 7.13.0 '@babel/helper-simple-access': 7.12.13 babel-plugin-dynamic-import-node: 2.3.3 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-OGQoeVXVi1259HjuoDnsQMlMkT9UkZT9TpXAsqWplS/M0N1g3TJAn/ByOCeQu7mfjc5WpSsRU+jV1Hd89ts0kQ== - /@babel/plugin-transform-modules-systemjs/7.12.13_@babel+core@7.12.3: + integrity: sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw== + /@babel/plugin-transform-modules-systemjs/7.13.8_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-hoist-variables': 7.12.13 - '@babel/helper-module-transforms': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-hoist-variables': 7.13.0 + '@babel/helper-module-transforms': 7.13.0 + '@babel/helper-plugin-utils': 7.13.0 '@babel/helper-validator-identifier': 7.12.11 babel-plugin-dynamic-import-node: 2.3.3 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-aHfVjhZ8QekaNF/5aNdStCGzwTbU7SI5hUybBKlMzqIMC7w7Ho8hx5a4R/DkTHfRfLwHGGxSpFt9BfxKCoXKoA== - /@babel/plugin-transform-modules-umd/7.12.13_@babel+core@7.12.3: + integrity: sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A== + /@babel/plugin-transform-modules-umd/7.13.0_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-module-transforms': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-module-transforms': 7.13.0 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-BgZndyABRML4z6ibpi7Z98m4EVLFI9tVsZDADC14AElFaNHHBcJIovflJ6wtCqFxwy2YJ1tJhGRsr0yLPKoN+w== + integrity: sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw== /@babel/plugin-transform-named-capturing-groups-regex/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-create-regexp-features-plugin': 7.12.16_@babel+core@7.12.3 + '@babel/helper-create-regexp-features-plugin': 7.12.17_@babel+core@7.12.3 dev: true peerDependencies: '@babel/core': ^7.0.0 @@ -903,7 +914,7 @@ /@babel/plugin-transform-new-target/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -912,26 +923,26 @@ /@babel/plugin-transform-object-super/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 - '@babel/helper-replace-supers': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/helper-replace-supers': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ== - /@babel/plugin-transform-parameters/7.12.13_@babel+core@7.12.3: + /@babel/plugin-transform-parameters/7.13.0_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-e7QqwZalNiBRHCpJg/P8s/VJeSRYgmtWySs1JwvfwPqhBbiWfOcHDKdeAi6oAyIimoKWBlwc8oTgbZHdhCoVZA== + integrity: sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw== /@babel/plugin-transform-property-literals/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -940,7 +951,7 @@ /@babel/plugin-transform-react-constant-elements/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -949,7 +960,7 @@ /@babel/plugin-transform-react-display-name/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -958,25 +969,25 @@ /@babel/plugin-transform-react-display-name/7.12.1_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-cAzB+UzBIrekfYxyLlFqf/OagTvHLcVBb5vpouzkYkBclRPraiygVnafvAoipErZLI8ANv8Ecn6E/m5qPXD26w== - /@babel/plugin-transform-react-jsx-development/7.12.16_@babel+core@7.12.3: + /@babel/plugin-transform-react-jsx-development/7.12.17_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/plugin-transform-react-jsx': 7.12.16_@babel+core@7.12.3 + '@babel/plugin-transform-react-jsx': 7.12.17_@babel+core@7.12.3 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-GOp5SkMC4zhHwLbOSYhF+WpIZSf5bGzaKQTT9jWkemJRDM/CE6FtPydXjEYO3pHcna2Zjvg4mQ1lfjOR/4jsaQ== + integrity: sha512-BPjYV86SVuOaudFhsJR1zjgxxOhJDt6JHNoD48DxWEIxUCAMjV1ys6DYw4SDYZh0b1QsS2vfIA9t/ZsQGsDOUQ== /@babel/plugin-transform-react-jsx-self/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -985,30 +996,30 @@ /@babel/plugin-transform-react-jsx-source/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-O5JJi6fyfih0WfDgIJXksSPhGP/G0fQpfxYy87sDc+1sFmsCS6wr3aAn+whbzkhbjtq4VMqLRaSzR6IsshIC0Q== - /@babel/plugin-transform-react-jsx/7.12.16_@babel+core@7.12.3: + /@babel/plugin-transform-react-jsx/7.12.17_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 '@babel/helper-annotate-as-pure': 7.12.13 '@babel/helper-module-imports': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 '@babel/plugin-syntax-jsx': 7.12.13_@babel+core@7.12.3 - '@babel/types': 7.12.13 + '@babel/types': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-dNu0vAbIk8OkqJfGtYF6ADk6jagoyAl+Ks5aoltbAlfoKv8d6yooi3j+kObeSQaCj9PgN6KMZPB90wWyek5TmQ== + integrity: sha512-mwaVNcXV+l6qJOuRhpdTEj8sT/Z0owAVWf9QujTZ0d2ye9X/K+MTOTSizcgKOj18PGnTc/7g1I4+cIUjsKhBcw== /@babel/plugin-transform-react-pure-annotations/7.12.1_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 '@babel/helper-annotate-as-pure': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -1026,7 +1037,7 @@ /@babel/plugin-transform-reserved-words/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -1036,8 +1047,8 @@ dependencies: '@babel/core': 7.12.3 '@babel/helper-module-imports': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 - resolve: 1.18.1 + '@babel/helper-plugin-utils': 7.13.0 + resolve: 1.20.0 semver: 5.7.1 dev: true peerDependencies: @@ -1047,64 +1058,64 @@ /@babel/plugin-transform-shorthand-properties/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw== - /@babel/plugin-transform-spread/7.12.13_@babel+core@7.12.3: + /@babel/plugin-transform-spread/7.13.0_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 '@babel/helper-skip-transparent-expression-wrappers': 7.12.1 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-dUCrqPIowjqk5pXsx1zPftSq4sT0aCeZVAxhdgs3AMgyaDmoUT0G+5h3Dzja27t76aUEIJWlFgPJqJ/d4dbTtg== + integrity: sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg== /@babel/plugin-transform-sticky-regex/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg== - /@babel/plugin-transform-template-literals/7.12.13_@babel+core@7.12.3: + /@babel/plugin-transform-template-literals/7.13.0_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-arIKlWYUgmNsF28EyfmiQHJLJFlAJNYkuQO10jL46ggjBpeb2re1P9K9YGxNJB45BqTbaslVysXDYm/g3sN/Qg== + integrity: sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw== /@babel/plugin-transform-typeof-symbol/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ== - /@babel/plugin-transform-typescript/7.12.16_@babel+core@7.12.3: + /@babel/plugin-transform-typescript/7.13.0_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-create-class-features-plugin': 7.12.16_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-create-class-features-plugin': 7.13.8_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.13.0 '@babel/plugin-syntax-typescript': 7.12.13_@babel+core@7.12.3 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: - integrity: sha512-88hep+B6dtDOiEqtRzwHp2TYO+CN8nbAV3eh5OpBGPsedug9J6y1JwLKzXRIGGQZDC8NlpxpQMIIxcfIW96Wgw== + integrity: sha512-elQEwluzaU8R8dbVuW2Q2Y8Nznf7hnjM7+DSCd14Lo5fF63C9qNLbwZYbmZrtV9/ySpSUpkRpQXvJb6xyu4hCQ== /@babel/plugin-transform-unicode-escapes/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 @@ -1113,107 +1124,33 @@ /@babel/plugin-transform-unicode-regex/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-create-regexp-features-plugin': 7.12.16_@babel+core@7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-create-regexp-features-plugin': 7.12.17_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.13.0 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA== - /@babel/preset-env/7.12.16_@babel+core@7.12.3: - dependencies: - '@babel/compat-data': 7.12.13 - '@babel/core': 7.12.3 - '@babel/helper-compilation-targets': 7.12.16_@babel+core@7.12.3 - '@babel/helper-module-imports': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 - '@babel/helper-validator-option': 7.12.16 - '@babel/plugin-proposal-async-generator-functions': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-proposal-class-properties': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-proposal-dynamic-import': 7.12.16_@babel+core@7.12.3 - '@babel/plugin-proposal-export-namespace-from': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-proposal-json-strings': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-proposal-logical-assignment-operators': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-proposal-nullish-coalescing-operator': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-proposal-numeric-separator': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-proposal-object-rest-spread': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-proposal-optional-catch-binding': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-proposal-optional-chaining': 7.12.16_@babel+core@7.12.3 - '@babel/plugin-proposal-private-methods': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-proposal-unicode-property-regex': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.12.3 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.12.3 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.12.3 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.12.3 - '@babel/plugin-syntax-top-level-await': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-arrow-functions': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-async-to-generator': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-block-scoped-functions': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-block-scoping': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-classes': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-computed-properties': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-destructuring': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-dotall-regex': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-duplicate-keys': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-exponentiation-operator': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-for-of': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-function-name': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-literals': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-member-expression-literals': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-modules-amd': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-modules-commonjs': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-modules-systemjs': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-modules-umd': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-named-capturing-groups-regex': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-new-target': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-object-super': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-parameters': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-property-literals': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-regenerator': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-reserved-words': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-shorthand-properties': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-spread': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-sticky-regex': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-template-literals': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-typeof-symbol': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-unicode-escapes': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-unicode-regex': 7.12.13_@babel+core@7.12.3 - '@babel/preset-modules': 0.1.4_@babel+core@7.12.3 - '@babel/types': 7.12.13 - core-js-compat: 3.8.3 - semver: 5.7.1 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-BXCAXy8RE/TzX416pD2hsVdkWo0G+tYd16pwnRV4Sc0fRwTLRS/Ssv8G5RLXUGQv7g4FG7TXkdDJxCjQ5I+Zjg== /@babel/preset-env/7.12.1_@babel+core@7.12.3: dependencies: - '@babel/compat-data': 7.12.13 + '@babel/compat-data': 7.13.8 '@babel/core': 7.12.3 - '@babel/helper-compilation-targets': 7.12.16_@babel+core@7.12.3 + '@babel/helper-compilation-targets': 7.13.8_@babel+core@7.12.3 '@babel/helper-module-imports': 7.12.13 - '@babel/helper-plugin-utils': 7.12.13 - '@babel/helper-validator-option': 7.12.16 - '@babel/plugin-proposal-async-generator-functions': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-proposal-class-properties': 7.12.1_@babel+core@7.12.3 - '@babel/plugin-proposal-dynamic-import': 7.12.16_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/helper-validator-option': 7.12.17 + '@babel/plugin-proposal-async-generator-functions': 7.13.8_@babel+core@7.12.3 + '@babel/plugin-proposal-class-properties': 7.13.0_@babel+core@7.12.3 + '@babel/plugin-proposal-dynamic-import': 7.13.8_@babel+core@7.12.3 '@babel/plugin-proposal-export-namespace-from': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-proposal-json-strings': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-proposal-logical-assignment-operators': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-proposal-nullish-coalescing-operator': 7.12.1_@babel+core@7.12.3 - '@babel/plugin-proposal-numeric-separator': 7.12.1_@babel+core@7.12.3 - '@babel/plugin-proposal-object-rest-spread': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-proposal-optional-catch-binding': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-proposal-optional-chaining': 7.12.1_@babel+core@7.12.3 - '@babel/plugin-proposal-private-methods': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-proposal-json-strings': 7.13.8_@babel+core@7.12.3 + '@babel/plugin-proposal-logical-assignment-operators': 7.13.8_@babel+core@7.12.3 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.13.8_@babel+core@7.12.3 + '@babel/plugin-proposal-numeric-separator': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-proposal-object-rest-spread': 7.13.8_@babel+core@7.12.3 + '@babel/plugin-proposal-optional-catch-binding': 7.13.8_@babel+core@7.12.3 + '@babel/plugin-proposal-optional-chaining': 7.13.8_@babel+core@7.12.3 + '@babel/plugin-proposal-private-methods': 7.13.0_@babel+core@7.12.3 '@babel/plugin-proposal-unicode-property-regex': 7.12.13_@babel+core@7.12.3 '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.12.3 '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.12.3 @@ -1227,54 +1164,130 @@ '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.12.3 '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.12.3 '@babel/plugin-syntax-top-level-await': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-arrow-functions': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-async-to-generator': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-arrow-functions': 7.13.0_@babel+core@7.12.3 + '@babel/plugin-transform-async-to-generator': 7.13.0_@babel+core@7.12.3 '@babel/plugin-transform-block-scoped-functions': 7.12.13_@babel+core@7.12.3 '@babel/plugin-transform-block-scoping': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-classes': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-computed-properties': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-destructuring': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-classes': 7.13.0_@babel+core@7.12.3 + '@babel/plugin-transform-computed-properties': 7.13.0_@babel+core@7.12.3 + '@babel/plugin-transform-destructuring': 7.13.0_@babel+core@7.12.3 '@babel/plugin-transform-dotall-regex': 7.12.13_@babel+core@7.12.3 '@babel/plugin-transform-duplicate-keys': 7.12.13_@babel+core@7.12.3 '@babel/plugin-transform-exponentiation-operator': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-for-of': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-for-of': 7.13.0_@babel+core@7.12.3 '@babel/plugin-transform-function-name': 7.12.13_@babel+core@7.12.3 '@babel/plugin-transform-literals': 7.12.13_@babel+core@7.12.3 '@babel/plugin-transform-member-expression-literals': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-modules-amd': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-modules-commonjs': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-modules-systemjs': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-modules-umd': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-modules-amd': 7.13.0_@babel+core@7.12.3 + '@babel/plugin-transform-modules-commonjs': 7.13.8_@babel+core@7.12.3 + '@babel/plugin-transform-modules-systemjs': 7.13.8_@babel+core@7.12.3 + '@babel/plugin-transform-modules-umd': 7.13.0_@babel+core@7.12.3 '@babel/plugin-transform-named-capturing-groups-regex': 7.12.13_@babel+core@7.12.3 '@babel/plugin-transform-new-target': 7.12.13_@babel+core@7.12.3 '@babel/plugin-transform-object-super': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-parameters': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-parameters': 7.13.0_@babel+core@7.12.3 '@babel/plugin-transform-property-literals': 7.12.13_@babel+core@7.12.3 '@babel/plugin-transform-regenerator': 7.12.13_@babel+core@7.12.3 '@babel/plugin-transform-reserved-words': 7.12.13_@babel+core@7.12.3 '@babel/plugin-transform-shorthand-properties': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-spread': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-spread': 7.13.0_@babel+core@7.12.3 '@babel/plugin-transform-sticky-regex': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-template-literals': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-template-literals': 7.13.0_@babel+core@7.12.3 '@babel/plugin-transform-typeof-symbol': 7.12.13_@babel+core@7.12.3 '@babel/plugin-transform-unicode-escapes': 7.12.13_@babel+core@7.12.3 '@babel/plugin-transform-unicode-regex': 7.12.13_@babel+core@7.12.3 '@babel/preset-modules': 0.1.4_@babel+core@7.12.3 - '@babel/types': 7.12.13 - core-js-compat: 3.8.3 + '@babel/types': 7.13.0 + core-js-compat: 3.9.1 semver: 5.7.1 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg== + /@babel/preset-env/7.13.8_@babel+core@7.12.3: + dependencies: + '@babel/compat-data': 7.13.8 + '@babel/core': 7.12.3 + '@babel/helper-compilation-targets': 7.13.8_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/helper-validator-option': 7.12.17 + '@babel/plugin-proposal-async-generator-functions': 7.13.8_@babel+core@7.12.3 + '@babel/plugin-proposal-class-properties': 7.13.0_@babel+core@7.12.3 + '@babel/plugin-proposal-dynamic-import': 7.13.8_@babel+core@7.12.3 + '@babel/plugin-proposal-export-namespace-from': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-proposal-json-strings': 7.13.8_@babel+core@7.12.3 + '@babel/plugin-proposal-logical-assignment-operators': 7.13.8_@babel+core@7.12.3 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.13.8_@babel+core@7.12.3 + '@babel/plugin-proposal-numeric-separator': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-proposal-object-rest-spread': 7.13.8_@babel+core@7.12.3 + '@babel/plugin-proposal-optional-catch-binding': 7.13.8_@babel+core@7.12.3 + '@babel/plugin-proposal-optional-chaining': 7.13.8_@babel+core@7.12.3 + '@babel/plugin-proposal-private-methods': 7.13.0_@babel+core@7.12.3 + '@babel/plugin-proposal-unicode-property-regex': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.12.3 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.12.3 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.12.3 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.12.3 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.12.3 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.12.3 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.12.3 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.12.3 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.12.3 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.12.3 + '@babel/plugin-syntax-top-level-await': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-arrow-functions': 7.13.0_@babel+core@7.12.3 + '@babel/plugin-transform-async-to-generator': 7.13.0_@babel+core@7.12.3 + '@babel/plugin-transform-block-scoped-functions': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-block-scoping': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-classes': 7.13.0_@babel+core@7.12.3 + '@babel/plugin-transform-computed-properties': 7.13.0_@babel+core@7.12.3 + '@babel/plugin-transform-destructuring': 7.13.0_@babel+core@7.12.3 + '@babel/plugin-transform-dotall-regex': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-duplicate-keys': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-exponentiation-operator': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-for-of': 7.13.0_@babel+core@7.12.3 + '@babel/plugin-transform-function-name': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-literals': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-member-expression-literals': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-modules-amd': 7.13.0_@babel+core@7.12.3 + '@babel/plugin-transform-modules-commonjs': 7.13.8_@babel+core@7.12.3 + '@babel/plugin-transform-modules-systemjs': 7.13.8_@babel+core@7.12.3 + '@babel/plugin-transform-modules-umd': 7.13.0_@babel+core@7.12.3 + '@babel/plugin-transform-named-capturing-groups-regex': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-new-target': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-object-super': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-parameters': 7.13.0_@babel+core@7.12.3 + '@babel/plugin-transform-property-literals': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-regenerator': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-reserved-words': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-shorthand-properties': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-spread': 7.13.0_@babel+core@7.12.3 + '@babel/plugin-transform-sticky-regex': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-template-literals': 7.13.0_@babel+core@7.12.3 + '@babel/plugin-transform-typeof-symbol': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-unicode-escapes': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-unicode-regex': 7.12.13_@babel+core@7.12.3 + '@babel/preset-modules': 0.1.4_@babel+core@7.12.3 + '@babel/types': 7.13.0 + babel-plugin-polyfill-corejs2: 0.1.8_@babel+core@7.12.3 + babel-plugin-polyfill-corejs3: 0.1.6_@babel+core@7.12.3 + babel-plugin-polyfill-regenerator: 0.1.5_@babel+core@7.12.3 + core-js-compat: 3.9.1 + semver: 6.3.0 + dev: true + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-Sso1xOpV4S3ofnxW2DsWTE5ziRk62jEAKLGuQ+EJHC+YHTbFG38QUTixO3JVa1cYET9gkJhO1pMu+/+2dDhKvw== /@babel/preset-modules/0.1.4_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 '@babel/plugin-proposal-unicode-property-regex': 7.12.13_@babel+core@7.12.3 '@babel/plugin-transform-dotall-regex': 7.12.13_@babel+core@7.12.3 - '@babel/types': 7.12.13 + '@babel/types': 7.13.0 esutils: 2.0.3 dev: true peerDependencies: @@ -1284,10 +1297,10 @@ /@babel/preset-react/7.12.13_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 '@babel/plugin-transform-react-display-name': 7.12.13_@babel+core@7.12.3 - '@babel/plugin-transform-react-jsx': 7.12.16_@babel+core@7.12.3 - '@babel/plugin-transform-react-jsx-development': 7.12.16_@babel+core@7.12.3 + '@babel/plugin-transform-react-jsx': 7.12.17_@babel+core@7.12.3 + '@babel/plugin-transform-react-jsx-development': 7.12.17_@babel+core@7.12.3 '@babel/plugin-transform-react-pure-annotations': 7.12.1_@babel+core@7.12.3 dev: true peerDependencies: @@ -1297,10 +1310,10 @@ /@babel/preset-react/7.12.1_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 - '@babel/plugin-transform-react-display-name': 7.12.1_@babel+core@7.12.3 - '@babel/plugin-transform-react-jsx': 7.12.16_@babel+core@7.12.3 - '@babel/plugin-transform-react-jsx-development': 7.12.16_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/plugin-transform-react-display-name': 7.12.13_@babel+core@7.12.3 + '@babel/plugin-transform-react-jsx': 7.12.17_@babel+core@7.12.3 + '@babel/plugin-transform-react-jsx-development': 7.12.17_@babel+core@7.12.3 '@babel/plugin-transform-react-jsx-self': 7.12.13_@babel+core@7.12.3 '@babel/plugin-transform-react-jsx-source': 7.12.13_@babel+core@7.12.3 '@babel/plugin-transform-react-pure-annotations': 7.12.1_@babel+core@7.12.3 @@ -1312,60 +1325,52 @@ /@babel/preset-typescript/7.12.1_@babel+core@7.12.3: dependencies: '@babel/core': 7.12.3 - '@babel/helper-plugin-utils': 7.12.13 - '@babel/plugin-transform-typescript': 7.12.16_@babel+core@7.12.3 + '@babel/helper-plugin-utils': 7.13.0 + '@babel/plugin-transform-typescript': 7.13.0_@babel+core@7.12.3 dev: true peerDependencies: '@babel/core': ^7.0.0-0 resolution: integrity: sha512-hNK/DhmoJPsksdHuI/RVrcEws7GN5eamhi28JkO52MqIxU8Z0QpmiSOQxZHWOHV7I3P4UjHV97ay4TcamMA6Kw== - /@babel/runtime-corejs3/7.12.13: + /@babel/runtime-corejs3/7.13.8: dependencies: - core-js-pure: 3.8.3 + core-js-pure: 3.9.1 regenerator-runtime: 0.13.7 resolution: - integrity: sha512-8fSpqYRETHATtNitsCXq8QQbKJP31/KnDl2Wz2Vtui9nKzjss2ysuZtyVsWjBtvkeEFo346gkwjYPab1hvrXkQ== + integrity: sha512-iaInhjy1BbDnqc7pZiIXAfWvBnczgWobHceR4Wkhs5tWZG8aIazBYH0Vo73lixecHKh3Vy9yqbQBqVDrmcVDlQ== /@babel/runtime/7.12.1: dependencies: regenerator-runtime: 0.13.7 dev: true resolution: integrity: sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA== - /@babel/runtime/7.12.13: + /@babel/runtime/7.13.8: dependencies: regenerator-runtime: 0.13.7 resolution: - integrity: sha512-8+3UMPBrjFa/6TtKi/7sehPKqfAm4g6K+YQjyyFOLUTxzOngcRZTlAVY8sc2CORJYqdHQY8gRPHmn+qo15rCBw== + integrity: sha512-CwQljpw6qSayc0fRG1soxHAKs1CnQMOChm4mlQP6My0kf9upVGizj/KhlTTgyUnETmHpcUXjaluNAkteRFuafg== /@babel/template/7.12.13: dependencies: '@babel/code-frame': 7.12.13 - '@babel/parser': 7.13.0 + '@babel/parser': 7.13.4 '@babel/types': 7.13.0 dev: true resolution: integrity: sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== - /@babel/traverse/7.12.13: + /@babel/traverse/7.13.0: dependencies: '@babel/code-frame': 7.12.13 - '@babel/generator': 7.12.15 + '@babel/generator': 7.13.0 '@babel/helper-function-name': 7.12.13 '@babel/helper-split-export-declaration': 7.12.13 - '@babel/parser': 7.12.16 - '@babel/types': 7.12.13 + '@babel/parser': 7.13.4 + '@babel/types': 7.13.0 debug: 4.3.1 globals: 11.12.0 - lodash: 4.17.20 + lodash: 4.17.21 dev: true resolution: - integrity: sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA== - /@babel/types/7.12.13: - dependencies: - '@babel/helper-validator-identifier': 7.12.11 - lodash: 4.17.20 - to-fast-properties: 2.0.0 - dev: true - resolution: - integrity: sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ== + integrity: sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ== /@babel/types/7.13.0: dependencies: '@babel/helper-validator-identifier': 7.12.11 @@ -1388,11 +1393,11 @@ hasBin: true resolution: integrity: sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== - /@craco/craco/6.1.1_react-scripts@4.0.2: + /@craco/craco/6.1.1_react-scripts@4.0.3: dependencies: cross-spawn: 7.0.3 - lodash: 4.17.20 - react-scripts: 4.0.2_react@17.0.1+typescript@4.1.5 + lodash: 4.17.21 + react-scripts: 4.0.3_react@17.0.1+typescript@4.1.5 semver: 7.3.4 webpack-merge: 4.2.2 dev: true @@ -1419,7 +1424,7 @@ node: '>=10' resolution: integrity: sha512-JZButFdZ1+/xAfpguQHoabIXkcqRRKpMrWKBkpEZZyxfY9C1DpADFB8PEqGSTeFr135SaTRfKqGKx5xSCLI7ZQ== - /@eslint/eslintrc/0.3.0: + /@eslint/eslintrc/0.4.0: dependencies: ajv: 6.12.6 debug: 4.3.1 @@ -1428,14 +1433,13 @@ ignore: 4.0.6 import-fresh: 3.3.0 js-yaml: 3.14.1 - lodash: 4.17.20 minimatch: 3.0.4 strip-json-comments: 3.1.1 dev: true engines: node: ^10.12.0 || >=12.0.0 resolution: - integrity: sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg== + integrity: sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog== /@hapi/address/2.1.4: deprecated: Moved to 'npm install @sideway/address' dev: true @@ -1489,7 +1493,7 @@ /@jest/console/26.6.2: dependencies: '@jest/types': 26.6.2 - '@types/node': 12.20.0 + '@types/node': 14.14.31 chalk: 4.1.0 jest-message-util: 26.6.2 jest-util: 26.6.2 @@ -1506,7 +1510,7 @@ '@jest/test-result': 26.6.2 '@jest/transform': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 12.20.0 + '@types/node': 14.14.31 ansi-escapes: 4.3.1 chalk: 4.1.0 exit: 0.1.2 @@ -1538,7 +1542,7 @@ dependencies: '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 12.20.0 + '@types/node': 14.14.31 jest-mock: 26.6.2 dev: true engines: @@ -1549,7 +1553,7 @@ dependencies: '@jest/types': 26.6.2 '@sinonjs/fake-timers': 6.0.1 - '@types/node': 12.20.0 + '@types/node': 14.14.31 jest-message-util: 26.6.2 jest-mock: 26.6.2 jest-util: 26.6.2 @@ -1660,7 +1664,7 @@ dependencies: '@types/istanbul-lib-coverage': 2.0.3 '@types/istanbul-reports': 3.0.0 - '@types/node': 12.20.1 + '@types/node': 14.14.31 '@types/yargs': 15.0.13 chalk: 4.1.0 engines: @@ -1698,7 +1702,7 @@ /@nodelib/fs.walk/1.2.6: dependencies: '@nodelib/fs.scandir': 2.1.4 - fastq: 1.10.1 + fastq: 1.11.0 dev: true engines: node: '>= 8' @@ -1713,7 +1717,7 @@ node: '>=10' resolution: integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== - /@pmmmwh/react-refresh-webpack-plugin/0.4.3_d00fcc46a48175a4e289da7534b00e9a: + /@pmmmwh/react-refresh-webpack-plugin/0.4.3_9f0995138d24e525eb86c097d82409c0: dependencies: ansi-html: 0.0.7 error-stack-parser: 2.0.6 @@ -1723,7 +1727,7 @@ schema-utils: 2.7.1 source-map: 0.7.3 webpack: 4.44.2 - webpack-dev-server: 3.11.0_webpack@4.44.2 + webpack-dev-server: 3.11.1_webpack@4.44.2 dev: true engines: node: '>= 10.x' @@ -1761,7 +1765,7 @@ '@types/resolve': 0.0.8 builtin-modules: 3.2.0 is-module: 1.0.0 - resolve: 1.18.1 + resolve: 1.20.0 rollup: 1.32.1 dev: true engines: @@ -1770,7 +1774,7 @@ rollup: ^1.20.0||^2.0.0 resolution: integrity: sha512-RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q== - /@rollup/plugin-replace/2.3.4_rollup@1.32.1: + /@rollup/plugin-replace/2.4.1_rollup@1.32.1: dependencies: '@rollup/pluginutils': 3.1.0_rollup@1.32.1 magic-string: 0.25.7 @@ -1779,7 +1783,7 @@ peerDependencies: rollup: ^1.20.0 || ^2.0.0 resolution: - integrity: sha512-waBhMzyAtjCL1GwZes2jaE9MjuQ/DQF2BatH3fRivUF3z0JBFrU0U6iBNC/4WR+2rLKhaAhPWDNPYp4mI6RqdQ== + integrity: sha512-XwC1oK5rrtRJ0tn1ioLHS6OV5JTluJF7QE1J/q1hN3bquwjnVxjtMyY9iCnoyH9DQbf92CxajB3o98wZbP3oAQ== /@rollup/pluginutils/3.1.0_rollup@1.32.1: dependencies: '@types/estree': 0.0.39 @@ -1887,7 +1891,7 @@ integrity: sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ== /@svgr/hast-util-to-babel-ast/5.5.0: dependencies: - '@babel/types': 7.12.13 + '@babel/types': 7.13.0 dev: true engines: node: '>=10' @@ -1918,7 +1922,7 @@ dependencies: '@babel/core': 7.12.3 '@babel/plugin-transform-react-constant-elements': 7.12.13_@babel+core@7.12.3 - '@babel/preset-env': 7.12.16_@babel+core@7.12.3 + '@babel/preset-env': 7.13.8_@babel+core@7.12.3 '@babel/preset-react': 7.12.13_@babel+core@7.12.3 '@svgr/core': 5.5.0 '@svgr/plugin-jsx': 5.5.0 @@ -1929,10 +1933,10 @@ node: '>=10' resolution: integrity: sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g== - /@testing-library/dom/7.29.4: + /@testing-library/dom/7.29.6: dependencies: '@babel/code-frame': 7.12.13 - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 '@types/aria-query': 4.2.1 aria-query: 4.2.2 chalk: 4.1.0 @@ -1943,16 +1947,16 @@ engines: node: '>=10' resolution: - integrity: sha512-CtrJRiSYEfbtNGtEsd78mk1n1v2TUbeABlNIcOCJdDfkN5/JTOwQEbbQpoSRxGqzcWPgStMvJ4mNolSuBRv1NA== + integrity: sha512-vzTsAXa439ptdvav/4lsKRcGpAQX7b6wBIqia7+iNzqGJ5zjswApxA6jDAsexrc6ue9krWcbh8o+LYkBXW+GCQ== /@testing-library/jest-dom/5.11.9: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 '@types/testing-library__jest-dom': 5.9.5 aria-query: 4.2.2 chalk: 3.0.0 css: 3.0.0 css.escape: 1.5.1 - lodash: 4.17.20 + lodash: 4.17.21 redent: 3.0.0 dev: false engines: @@ -1963,8 +1967,8 @@ integrity: sha512-Mn2gnA9d1wStlAIT2NU8J15LNob0YFBVjs2aEQ3j8rsfRQo+lAs7/ui1i2TGaJjapLmuNPLTsrm+nPjmZDwpcQ== /@testing-library/react/11.2.5_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 - '@testing-library/dom': 7.29.4 + '@babel/runtime': 7.13.8 + '@testing-library/dom': 7.29.6 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 dev: false @@ -1975,9 +1979,9 @@ react-dom: '*' resolution: integrity: sha512-yEx7oIa/UWLe2F2dqK0FtMF9sJWNXD+2PPtp39BvE0Kh9MJ9Kl0HrZAgEuhUJR+Lx8Di6Xz+rKwSdEPY2UV8ZQ== - /@testing-library/user-event/12.7.1: + /@testing-library/user-event/12.8.0: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 dev: false engines: node: '>=10' @@ -1985,7 +1989,7 @@ peerDependencies: '@testing-library/dom': '>=7.21.4' resolution: - integrity: sha512-COfCkYgcxc+P9+pEAIGlmBuIDjO91Chf9GOBHI8AhIiMyaoOrKVPQny1uf0HIAYNoHKL5slhkqOPP2ZyNaVQGw== + integrity: sha512-5+k4U3X6XaFDSBSu6tsD02HVfzuOiPcygQmmYFE2aQQ0e5wRSxWRoU80UH1msa9Q6wuxa0BQsAmwAAAMydcscg== /@types/anymatch/1.3.1: dev: true resolution: @@ -1996,8 +2000,8 @@ integrity: sha512-S6oPal772qJZHoRZLFc/XoZW2gFvwXusYUmXPXkgxJLuEk2vOt7jc4Yo6z/vtI0EBkbPBVrJJ0B+prLIKiWqHg== /@types/babel__core/7.1.12: dependencies: - '@babel/parser': 7.12.16 - '@babel/types': 7.12.13 + '@babel/parser': 7.13.4 + '@babel/types': 7.13.0 '@types/babel__generator': 7.6.2 '@types/babel__template': 7.4.0 '@types/babel__traverse': 7.11.0 @@ -2006,20 +2010,20 @@ integrity: sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ== /@types/babel__generator/7.6.2: dependencies: - '@babel/types': 7.12.13 + '@babel/types': 7.13.0 dev: true resolution: integrity: sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== /@types/babel__template/7.4.0: dependencies: - '@babel/parser': 7.12.16 - '@babel/types': 7.12.13 + '@babel/parser': 7.13.4 + '@babel/types': 7.13.0 dev: true resolution: integrity: sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== /@types/babel__traverse/7.11.0: dependencies: - '@babel/types': 7.12.13 + '@babel/types': 7.13.0 dev: true resolution: integrity: sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg== @@ -2053,13 +2057,13 @@ /@types/glob/7.1.3: dependencies: '@types/minimatch': 3.0.3 - '@types/node': 12.20.0 + '@types/node': 14.14.31 dev: true resolution: integrity: sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== /@types/graceful-fs/4.1.5: dependencies: - '@types/node': 12.20.0 + '@types/node': 14.14.31 dev: true resolution: integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== @@ -2123,13 +2127,9 @@ dev: true resolution: integrity: sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== - /@types/node/12.20.0: - dev: true + /@types/node/14.14.31: resolution: - integrity: sha512-0/41wHcurotvSOTHQUFkgL702c3pyWR1mToSrrX3pGPvGfpHTv3Ksx0M4UVuU5VJfjVb62Eyr1eKO1tWNUCg2Q== - /@types/node/12.20.1: - resolution: - integrity: sha512-tCkE96/ZTO+cWbln2xfyvd6ngHLanvVlJ3e5BeirJ3BYI5GbAyubIrmV4JjjugDly5D9fHjOL5MNsqsCnqwW6g== + integrity: sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g== /@types/normalize-package-data/2.4.0: dev: true resolution: @@ -2189,13 +2189,13 @@ /@types/react/17.0.2: dependencies: '@types/prop-types': 15.7.3 - csstype: 3.0.6 + csstype: 3.0.7 dev: true resolution: integrity: sha512-Xt40xQsrkdvjn1EyWe1Bc0dJLcil/9x2vAuW7ya+PuQip4UYUaXyhzWmAbwRsdMgwOFHpfp7/FFZebDU6Y8VHA== /@types/resolve/0.0.8: dependencies: - '@types/node': 12.20.0 + '@types/node': 14.14.31 dev: true resolution: integrity: sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ== @@ -2237,7 +2237,7 @@ integrity: sha512-Fx+NpfOO0CpeYX2g9bkvX8O5qh9wrU1sOF4g8sft4Mu7z+qfe387YlyY8w8daDyDsKY5vUxM0yxkAYnbkRbZEw== /@types/webpack-sources/2.1.0: dependencies: - '@types/node': 12.20.1 + '@types/node': 14.14.31 '@types/source-list-map': 0.1.2 source-map: 0.7.3 dev: true @@ -2246,7 +2246,7 @@ /@types/webpack/4.41.26: dependencies: '@types/anymatch': 1.3.1 - '@types/node': 12.20.1 + '@types/node': 14.14.31 '@types/tapable': 1.0.6 '@types/uglify-js': 3.12.0 '@types/webpack-sources': 2.1.0 @@ -2262,15 +2262,15 @@ '@types/yargs-parser': 20.2.0 resolution: integrity: sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ== - /@typescript-eslint/eslint-plugin/4.15.0_bc16c4564afe16e3219e549b81836acd: + /@typescript-eslint/eslint-plugin/4.15.2_82d802bc1360aa6114c0ff047240d01c: dependencies: - '@typescript-eslint/experimental-utils': 4.15.0_eslint@7.20.0+typescript@4.1.5 - '@typescript-eslint/parser': 4.15.0_eslint@7.20.0+typescript@4.1.5 - '@typescript-eslint/scope-manager': 4.15.0 + '@typescript-eslint/experimental-utils': 4.15.2_eslint@7.21.0+typescript@4.1.5 + '@typescript-eslint/parser': 4.15.2_eslint@7.21.0+typescript@4.1.5 + '@typescript-eslint/scope-manager': 4.15.2 debug: 4.3.1 - eslint: 7.20.0 + eslint: 7.21.0 functional-red-black-tree: 1.0.1 - lodash: 4.17.20 + lodash: 4.17.21 regexpp: 3.1.0 semver: 7.3.4 tsutils: 3.20.0_typescript@4.1.5 @@ -2286,13 +2286,38 @@ typescript: optional: true resolution: - integrity: sha512-DJgdGZW+8CFUTz5C/dnn4ONcUm2h2T0itWD85Ob5/V27Ndie8hUoX5HKyGssvR8sUMkAIlUc/AMK67Lqa3kBIQ== - /@typescript-eslint/experimental-utils/3.10.1_eslint@7.20.0+typescript@4.1.5: + integrity: sha512-uiQQeu9tWl3f1+oK0yoAv9lt/KXO24iafxgQTkIYO/kitruILGx3uH+QtIAHqxFV+yIsdnJH+alel9KuE3J15Q== + /@typescript-eslint/eslint-plugin/4.15.3-alpha.17_bcfedfa8b2673ad3028fc37ce1448d88: + dependencies: + '@typescript-eslint/experimental-utils': 4.15.3-alpha.17_eslint@7.21.0+typescript@4.1.5 + '@typescript-eslint/parser': 4.15.3-alpha.17_eslint@7.21.0+typescript@4.1.5 + '@typescript-eslint/scope-manager': 4.15.3-alpha.17 + debug: 4.3.1 + eslint: 7.21.0 + functional-red-black-tree: 1.0.1 + lodash: 4.17.21 + regexpp: 3.1.0 + semver: 7.3.4 + tsutils: 3.20.0_typescript@4.1.5 + typescript: 4.1.5 + dev: true + engines: + node: ^10.12.0 || >=12.0.0 + peerDependencies: + '@typescript-eslint/parser': ^4.0.0 + eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + resolution: + integrity: sha512-gyG/9a5FRxAEDOMJvsu/dBOAnXobwV21SG2cmOT/hT1Pu8vbwiRNOsGQbWIlrM9z0NJC6mM/EsN9nSjzVDnXcw== + /@typescript-eslint/experimental-utils/3.10.1_eslint@7.21.0+typescript@4.1.5: dependencies: '@types/json-schema': 7.0.7 '@typescript-eslint/types': 3.10.1 '@typescript-eslint/typescript-estree': 3.10.1_typescript@4.1.5 - eslint: 7.20.0 + eslint: 7.21.0 eslint-scope: 5.1.1 eslint-utils: 2.1.0 dev: true @@ -2303,13 +2328,13 @@ typescript: '*' resolution: integrity: sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw== - /@typescript-eslint/experimental-utils/4.15.0_eslint@7.20.0+typescript@4.1.5: + /@typescript-eslint/experimental-utils/4.15.2_eslint@7.21.0+typescript@4.1.5: dependencies: '@types/json-schema': 7.0.7 - '@typescript-eslint/scope-manager': 4.15.0 - '@typescript-eslint/types': 4.15.0 - '@typescript-eslint/typescript-estree': 4.15.0_typescript@4.1.5 - eslint: 7.20.0 + '@typescript-eslint/scope-manager': 4.15.2 + '@typescript-eslint/types': 4.15.2 + '@typescript-eslint/typescript-estree': 4.15.2_typescript@4.1.5 + eslint: 7.21.0 eslint-scope: 5.1.1 eslint-utils: 2.1.0 dev: true @@ -2319,14 +2344,31 @@ eslint: '*' typescript: '*' resolution: - integrity: sha512-V4vaDWvxA2zgesg4KPgEGiomWEBpJXvY4ZX34Y3qxK8LUm5I87L+qGIOTd9tHZOARXNRt9pLbblSKiYBlGMawg== - /@typescript-eslint/parser/4.15.0_eslint@7.20.0+typescript@4.1.5: + integrity: sha512-Fxoshw8+R5X3/Vmqwsjc8nRO/7iTysRtDqx6rlfLZ7HbT8TZhPeQqbPjTyk2RheH3L8afumecTQnUc9EeXxohQ== + /@typescript-eslint/experimental-utils/4.15.3-alpha.17_eslint@7.21.0+typescript@4.1.5: dependencies: - '@typescript-eslint/scope-manager': 4.15.0 - '@typescript-eslint/types': 4.15.0 - '@typescript-eslint/typescript-estree': 4.15.0_typescript@4.1.5 + '@types/json-schema': 7.0.7 + '@typescript-eslint/scope-manager': 4.15.3-alpha.17 + '@typescript-eslint/types': 4.15.3-alpha.17 + '@typescript-eslint/typescript-estree': 4.15.3-alpha.17_typescript@4.1.5 + eslint: 7.21.0 + eslint-scope: 5.1.1 + eslint-utils: 2.1.0 + dev: true + engines: + node: ^10.12.0 || >=12.0.0 + peerDependencies: + eslint: '*' + typescript: '*' + resolution: + integrity: sha512-m/F2+wq9Ijfdce7GMicfmNn1WAlp5xAT0+wDx3iVU5+uQfWuw0eA42IdlOPHsG7cnWRAFHhMP2ptXJR0lI3oPQ== + /@typescript-eslint/parser/4.15.2_eslint@7.21.0+typescript@4.1.5: + dependencies: + '@typescript-eslint/scope-manager': 4.15.2 + '@typescript-eslint/types': 4.15.2 + '@typescript-eslint/typescript-estree': 4.15.2_typescript@4.1.5 debug: 4.3.1 - eslint: 7.20.0 + eslint: 7.21.0 typescript: 4.1.5 dev: true engines: @@ -2338,28 +2380,62 @@ typescript: optional: true resolution: - integrity: sha512-L6Dtbq8Bc7g2aZwnIBETpmUa9XDKCMzKVwAArnGp5Mn7PRNFjf3mUzq8UeBjL3K8t311hvevnyqXAMSmxO8Gpg== - /@typescript-eslint/scope-manager/4.15.0: + integrity: sha512-SHeF8xbsC6z2FKXsaTb1tBCf0QZsjJ94H6Bo51Y1aVEZ4XAefaw5ZAilMoDPlGghe+qtq7XdTiDlGfVTOmvA+Q== + /@typescript-eslint/parser/4.15.3-alpha.17_eslint@7.21.0+typescript@4.1.5: dependencies: - '@typescript-eslint/types': 4.15.0 - '@typescript-eslint/visitor-keys': 4.15.0 + '@typescript-eslint/scope-manager': 4.15.3-alpha.17 + '@typescript-eslint/types': 4.15.3-alpha.17 + '@typescript-eslint/typescript-estree': 4.15.3-alpha.17_typescript@4.1.5 + debug: 4.3.1 + eslint: 7.21.0 + typescript: 4.1.5 + dev: true + engines: + node: ^10.12.0 || >=12.0.0 + peerDependencies: + eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + resolution: + integrity: sha512-J7c6MXTnPM48ofQfba/3hd3wYuo1LmYW9F6RMscD3WdScpljMQ8XDL0XGg1js4184aywG2NgnKQT35+kELgS4Q== + /@typescript-eslint/scope-manager/4.15.2: + dependencies: + '@typescript-eslint/types': 4.15.2 + '@typescript-eslint/visitor-keys': 4.15.2 dev: true engines: node: ^8.10.0 || ^10.13.0 || >=11.10.1 resolution: - integrity: sha512-CSNBZnCC2jEA/a+pR9Ljh8Y+5TY5qgbPz7ICEk9WCpSEgT6Pi7H2RIjxfrrbUXvotd6ta+i27sssKEH8Azm75g== + integrity: sha512-Zm0tf/MSKuX6aeJmuXexgdVyxT9/oJJhaCkijv0DvJVT3ui4zY6XYd6iwIo/8GEZGy43cd7w1rFMiCLHbRzAPQ== + /@typescript-eslint/scope-manager/4.15.3-alpha.17: + dependencies: + '@typescript-eslint/types': 4.15.3-alpha.17 + '@typescript-eslint/visitor-keys': 4.15.3-alpha.17 + dev: true + engines: + node: ^8.10.0 || ^10.13.0 || >=11.10.1 + resolution: + integrity: sha512-kyn1Q44UWK0c/Y+SwZl4bmH59nRA7nG7YHNZvt+hVuCJOpaAgBYVKDMGZnwFTOCBRCUyyjksH145a2Xucdh72A== /@typescript-eslint/types/3.10.1: dev: true engines: node: ^8.10.0 || ^10.13.0 || >=11.10.1 resolution: integrity: sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ== - /@typescript-eslint/types/4.15.0: + /@typescript-eslint/types/4.15.2: dev: true engines: node: ^8.10.0 || ^10.13.0 || >=11.10.1 resolution: - integrity: sha512-su4RHkJhS+iFwyqyXHcS8EGPlUVoC+XREfy5daivjLur9JP8GhvTmDipuRpcujtGC4M+GYhUOJCPDE3rC5NJrg== + integrity: sha512-r7lW7HFkAarfUylJ2tKndyO9njwSyoy6cpfDKWPX6/ctZA+QyaYscAHXVAfJqtnY6aaTwDYrOhp+ginlbc7HfQ== + /@typescript-eslint/types/4.15.3-alpha.17: + dev: true + engines: + node: ^8.10.0 || ^10.13.0 || >=11.10.1 + resolution: + integrity: sha512-xM7Ico8kknqkFpbkIEQeagwR2DlHQbWAXKivzyDPbQFuntQ2Hv/rTthnUP88aCiD7gUJCz/IXofKD79Ky3U5dg== /@typescript-eslint/typescript-estree/3.10.1_typescript@4.1.5: dependencies: '@typescript-eslint/types': 3.10.1 @@ -2367,7 +2443,7 @@ debug: 4.3.1 glob: 7.1.6 is-glob: 4.0.1 - lodash: 4.17.20 + lodash: 4.17.21 semver: 7.3.4 tsutils: 3.20.0_typescript@4.1.5 typescript: 4.1.5 @@ -2381,10 +2457,10 @@ optional: true resolution: integrity: sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w== - /@typescript-eslint/typescript-estree/4.15.0_typescript@4.1.5: + /@typescript-eslint/typescript-estree/4.15.2_typescript@4.1.5: dependencies: - '@typescript-eslint/types': 4.15.0 - '@typescript-eslint/visitor-keys': 4.15.0 + '@typescript-eslint/types': 4.15.2 + '@typescript-eslint/visitor-keys': 4.15.2 debug: 4.3.1 globby: 11.0.2 is-glob: 4.0.1 @@ -2400,7 +2476,27 @@ typescript: optional: true resolution: - integrity: sha512-jG6xTmcNbi6xzZq0SdWh7wQ9cMb2pqXaUp6bUZOMsIlu5aOlxGxgE/t6L/gPybybQGvdguajXGkZKSndZJpksA== + integrity: sha512-cGR8C2g5SPtHTQvAymEODeqx90pJHadWsgTtx6GbnTWKqsg7yp6Eaya9nFzUd4KrKhxdYTTFBiYeTPQaz/l8bw== + /@typescript-eslint/typescript-estree/4.15.3-alpha.17_typescript@4.1.5: + dependencies: + '@typescript-eslint/types': 4.15.3-alpha.17 + '@typescript-eslint/visitor-keys': 4.15.3-alpha.17 + debug: 4.3.1 + globby: 11.0.2 + is-glob: 4.0.1 + semver: 7.3.4 + tsutils: 3.20.0_typescript@4.1.5 + typescript: 4.1.5 + dev: true + engines: + node: ^10.12.0 || >=12.0.0 + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + resolution: + integrity: sha512-kH7r/enZ98KxNfFg7C3VqswVHmp47ZNlYzzGG77NoFPaHVEtOl2aIULH7FrHYn+/mydeqKRWIk/Gpff1/cbVkg== /@typescript-eslint/visitor-keys/3.10.1: dependencies: eslint-visitor-keys: 1.3.0 @@ -2409,15 +2505,24 @@ node: ^8.10.0 || ^10.13.0 || >=11.10.1 resolution: integrity: sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ== - /@typescript-eslint/visitor-keys/4.15.0: + /@typescript-eslint/visitor-keys/4.15.2: dependencies: - '@typescript-eslint/types': 4.15.0 + '@typescript-eslint/types': 4.15.2 eslint-visitor-keys: 2.0.0 dev: true engines: node: ^8.10.0 || ^10.13.0 || >=11.10.1 resolution: - integrity: sha512-RnDtJwOwFucWFAMjG3ghCG/ikImFJFEg20DI7mn4pHEx3vC48lIAoyjhffvfHmErRDboUPC7p9Z2il4CLb7qxA== + integrity: sha512-TME1VgSb7wTwgENN5KVj4Nqg25hP8DisXxNBojM4Nn31rYaNDIocNm5cmjOFfh42n7NVERxWrDFoETO/76ePyg== + /@typescript-eslint/visitor-keys/4.15.3-alpha.17: + dependencies: + '@typescript-eslint/types': 4.15.3-alpha.17 + eslint-visitor-keys: 2.0.0 + dev: true + engines: + node: ^8.10.0 || ^10.13.0 || >=11.10.1 + resolution: + integrity: sha512-koywimhlOO1y5TtoiM9W5D7uxeGchhbvw28+4l3OiaC6MJ9qwqW0XpaPFsziR6M+vy4LijZLpkiUmUZwDh+xrw== /@webassemblyjs/ast/1.9.0: dependencies: '@webassemblyjs/helper-module-context': 1.9.0 @@ -2559,7 +2664,7 @@ integrity: sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== /accepts/1.3.7: dependencies: - mime-types: 2.1.28 + mime-types: 2.1.29 negotiator: 0.6.2 dev: true engines: @@ -2663,7 +2768,7 @@ dev: true resolution: integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - /ajv/7.1.0: + /ajv/7.1.1: dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 @@ -2671,7 +2776,7 @@ uri-js: 4.4.1 dev: true resolution: - integrity: sha512-svS9uILze/cXbH0z2myCK2Brqprx/+JJYK5pHicT/GQiBfzzhUVAIT6MwqJg8y4xV/zoGsUeuPuwtoiKSGE15g== + integrity: sha512-ga/aqDYnUy/o7vbsRTFhhTsNeXiYb5JWDIcRIeZfwRNCefwjNTVYCGdGSUrEmiu3yDK3vFvNbgJxvrQW4JXrYQ== /alphanum-sort/1.0.2: dev: true resolution: @@ -2742,32 +2847,32 @@ dayjs: '*' resolution: integrity: sha512-UlK3BfA0iE2c5+Zz/Bd2iPAkT6cICtrKG4/swSik5MZweBHtgmu1aUQCHvICdiv39EAShdZy/edfP6mlkS/xXg== - /antd/4.12.3_89622fd8e4ec221151a62783d49305af: + /antd/4.13.0_89622fd8e4ec221151a62783d49305af: dependencies: '@ant-design/colors': 6.0.0 '@ant-design/icons': 4.5.0_react-dom@17.0.1+react@17.0.1 - '@ant-design/react-slick': 0.28.1 - '@babel/runtime': 7.12.13 + '@ant-design/react-slick': 0.28.2 + '@babel/runtime': 7.13.8 array-tree-filter: 2.1.0 classnames: 2.2.6 copy-to-clipboard: 3.3.1 - lodash: 4.17.20 + lodash: 4.17.21 moment: 2.29.1 rc-cascader: 1.4.2_react-dom@17.0.1+react@17.0.1 rc-checkbox: 2.3.2_react-dom@17.0.1+react@17.0.1 rc-collapse: 3.1.0_react-dom@17.0.1+react@17.0.1 rc-dialog: 8.5.1_react-dom@17.0.1+react@17.0.1 - rc-drawer: 4.2.2_react-dom@17.0.1+react@17.0.1 + rc-drawer: 4.3.1_react-dom@17.0.1+react@17.0.1 rc-dropdown: 3.2.0_react-dom@17.0.1+react@17.0.1 - rc-field-form: 1.18.1_react-dom@17.0.1+react@17.0.1 - rc-image: 5.2.2_react-dom@17.0.1+react@17.0.1 - rc-input-number: 6.2.0_react-dom@17.0.1+react@17.0.1 + rc-field-form: 1.19.0_react-dom@17.0.1+react@17.0.1 + rc-image: 5.2.3_react-dom@17.0.1+react@17.0.1 + rc-input-number: 7.0.0_react-dom@17.0.1+react@17.0.1 rc-mentions: 1.5.3_react-dom@17.0.1+react@17.0.1 - rc-menu: 8.10.5_react-dom@17.0.1+react@17.0.1 + rc-menu: 8.10.6_react-dom@17.0.1+react@17.0.1 rc-motion: 2.4.1_react-dom@17.0.1+react@17.0.1 rc-notification: 4.5.4_react-dom@17.0.1+react@17.0.1 rc-pagination: 3.1.3_react-dom@17.0.1+react@17.0.1 - rc-picker: 2.5.5_89622fd8e4ec221151a62783d49305af + rc-picker: 2.5.7_89622fd8e4ec221151a62783d49305af rc-progress: 3.1.3_react-dom@17.0.1+react@17.0.1 rc-rate: 2.9.1_react-dom@17.0.1+react@17.0.1 rc-resize-observer: 1.0.0_react-dom@17.0.1+react@17.0.1 @@ -2779,14 +2884,14 @@ rc-tabs: 11.7.3_react-dom@17.0.1+react@17.0.1 rc-textarea: 0.3.4_react-dom@17.0.1+react@17.0.1 rc-tooltip: 5.0.2_react-dom@17.0.1+react@17.0.1 - rc-tree: 4.1.1_react-dom@17.0.1+react@17.0.1 + rc-tree: 4.1.2_react-dom@17.0.1+react@17.0.1 rc-tree-select: 4.3.0_react-dom@17.0.1+react@17.0.1 - rc-trigger: 5.2.1_react-dom@17.0.1+react@17.0.1 - rc-upload: 3.3.4_react-dom@17.0.1+react@17.0.1 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-trigger: 5.2.3_react-dom@17.0.1+react@17.0.1 + rc-upload: 4.0.0-alpha.6_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 - scroll-into-view-if-needed: 2.2.26 + scroll-into-view-if-needed: 2.2.27 warning: 4.0.3 dev: false peerDependencies: @@ -2794,7 +2899,7 @@ react: '>=16.9.0' react-dom: '>=16.9.0' resolution: - integrity: sha512-opzbxm6jZB+Pc9M0Kuo6+4WmniB59NJ4i/qBr6ExyMtl9hMgsGNH8GuDXsp2xgTzfq5hyobdLci2DAuPMrf0Zg== + integrity: sha512-+lwc8QmBh4g3VxXeIiMUTXc2u2HeKUC2RKUyK2mUBtOBmT8aqs/oEDdj7g146vQk2M/WHnqNo4cfBlDQk5rbMg== /anymatch/2.0.0: dependencies: micromatch: 3.1.10 @@ -2823,8 +2928,8 @@ integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== /aria-query/4.2.2: dependencies: - '@babel/runtime': 7.12.13 - '@babel/runtime-corejs3': 7.12.13 + '@babel/runtime': 7.13.8 + '@babel/runtime-corejs3': 7.13.8 engines: node: '>=6.0' resolution: @@ -2859,7 +2964,7 @@ dev: true resolution: integrity: sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - /array-includes/3.1.2: + /array-includes/3.1.3: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 @@ -2870,7 +2975,7 @@ engines: node: '>= 0.4' resolution: - integrity: sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw== + integrity: sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== /array-tree-filter/2.1.0: dev: false resolution: @@ -2934,7 +3039,7 @@ integrity: sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= /asn1.js/5.4.1: dependencies: - bn.js: 4.11.9 + bn.js: 4.12.0 inherits: 2.0.4 minimalistic-assert: 1.0.1 safer-buffer: 2.1.2 @@ -2984,19 +3089,19 @@ dev: true resolution: integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - /async-mutex/0.3.0: + /async-mutex/0.3.1: dependencies: tslib: 2.1.0 dev: false resolution: - integrity: sha512-6VIpUM7s37EMXvnO3TvujgaS6gx4yJby13BhxovMYSap7nrbS0gJ1UzGcjD+HElNSdTz/+IlAIqj7H48N0ZlyQ== + integrity: sha512-vRfQwcqBnJTLzVQo72Sf7KIUbcSUP5hNchx6udI1U6LuPQpfePgdjJzlCe76yFZ8pxlLjn9lwcl/Ya0TSOv0Tw== /async-validator/3.5.1: dev: false resolution: integrity: sha512-DDmKA7sdSAJtTVeNZHrnr2yojfFaoeW8MfQN8CeuXg8DDQHTqKk9Fdv38dSvnesHoO8MUwMI2HphOeSyIF+wmQ== /async/2.6.3: dependencies: - lodash: 4.17.20 + lodash: 4.17.21 dev: true resolution: integrity: sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== @@ -3019,8 +3124,8 @@ /autoprefixer/9.8.6: dependencies: browserslist: 4.16.3 - caniuse-lite: 1.0.30001187 - colorette: 1.2.1 + caniuse-lite: 1.0.30001192 + colorette: 1.2.2 normalize-range: 0.1.2 num2fraction: 1.2.2 postcss: 7.0.35 @@ -3047,15 +3152,15 @@ dev: true resolution: integrity: sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== - /babel-eslint/10.1.0_eslint@7.20.0: + /babel-eslint/10.1.0_eslint@7.21.0: dependencies: '@babel/code-frame': 7.12.13 - '@babel/parser': 7.12.16 - '@babel/traverse': 7.12.13 - '@babel/types': 7.12.13 - eslint: 7.20.0 + '@babel/parser': 7.13.4 + '@babel/traverse': 7.13.0 + '@babel/types': 7.13.0 + eslint: 7.21.0 eslint-visitor-keys: 1.3.0 - resolve: 1.18.1 + resolve: 1.20.0 deprecated: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates. dev: true engines: @@ -3115,7 +3220,7 @@ integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== /babel-plugin-istanbul/6.0.0: dependencies: - '@babel/helper-plugin-utils': 7.12.13 + '@babel/helper-plugin-utils': 7.13.0 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 4.0.3 @@ -3128,7 +3233,7 @@ /babel-plugin-jest-hoist/26.6.2: dependencies: '@babel/template': 7.12.13 - '@babel/types': 7.12.13 + '@babel/types': 7.13.0 '@types/babel__core': 7.1.12 '@types/babel__traverse': 7.11.0 dev: true @@ -3148,9 +3253,9 @@ integrity: sha512-yDZLjK7TCkWl1gpBeBGmuaDIFhZKmkoL+Cu2MUUjv5VxUZx/z7tBGBCBcQs5RI1Bkz5LLmNdjx7paOyQtMovyg== /babel-plugin-macros/2.8.0: dependencies: - '@babel/runtime': 7.12.1 + '@babel/runtime': 7.13.8 cosmiconfig: 6.0.0 - resolve: 1.18.1 + resolve: 1.20.0 dev: true resolution: integrity: sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg== @@ -3162,6 +3267,36 @@ '@babel/core': ^7.1.0 resolution: integrity: sha512-squySRkf+6JGnvjoUtDEjSREJEBirnXi9NqP6rjSYsylxQxqBTz+pkmf395i9E2zsvmYUaI40BHo6SqZUdydlw== + /babel-plugin-polyfill-corejs2/0.1.8_@babel+core@7.12.3: + dependencies: + '@babel/compat-data': 7.13.8 + '@babel/core': 7.12.3 + '@babel/helper-define-polyfill-provider': 0.1.4_@babel+core@7.12.3 + semver: 6.3.0 + dev: true + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-kB5/xNR9GYDuRmVlL9EGfdKBSUVI/9xAU7PCahA/1hbC2Jbmks9dlBBYjHF9IHMNY2jV/G2lIG7z0tJIW27Rog== + /babel-plugin-polyfill-corejs3/0.1.6_@babel+core@7.12.3: + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-define-polyfill-provider': 0.1.4_@babel+core@7.12.3 + core-js-compat: 3.9.1 + dev: true + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-IkYhCxPrjrUWigEmkMDXYzM5iblzKCdCD8cZrSAkQOyhhJm26DcG+Mxbx13QT//Olkpkg/AlRdT2L+Ww4Ciphw== + /babel-plugin-polyfill-regenerator/0.1.5_@babel+core@7.12.3: + dependencies: + '@babel/core': 7.12.3 + '@babel/helper-define-polyfill-provider': 0.1.4_@babel+core@7.12.3 + dev: true + peerDependencies: + '@babel/core': ^7.0.0-0 + resolution: + integrity: sha512-EyhBA6uN94W97lR7ecQVTvH9F5tIIdEw3ZqHuU4zekMlW82k5cXNXniiB7PRxQm06BqAjVr4sDT1mOy4RcphIA== /babel-plugin-syntax-object-rest-spread/6.13.0: dev: true resolution: @@ -3318,14 +3453,14 @@ dev: true resolution: integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - /bn.js/4.11.9: + /bn.js/4.12.0: dev: true resolution: - integrity: sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== - /bn.js/5.1.3: + integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + /bn.js/5.2.0: dev: true resolution: - integrity: sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== + integrity: sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== /body-parser/1.19.0: dependencies: bytes: 3.1.0 @@ -3428,14 +3563,14 @@ integrity: sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== /browserify-rsa/4.1.0: dependencies: - bn.js: 5.1.3 + bn.js: 5.2.0 randombytes: 2.1.0 dev: true resolution: integrity: sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== /browserify-sign/4.2.1: dependencies: - bn.js: 5.1.3 + bn.js: 5.2.0 browserify-rsa: 4.1.0 create-hash: 1.2.0 create-hmac: 1.1.7 @@ -3455,10 +3590,10 @@ integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== /browserslist/4.14.2: dependencies: - caniuse-lite: 1.0.30001187 - electron-to-chromium: 1.3.664 + caniuse-lite: 1.0.30001192 + electron-to-chromium: 1.3.675 escalade: 3.1.1 - node-releases: 1.1.70 + node-releases: 1.1.71 dev: true engines: node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 @@ -3467,11 +3602,11 @@ integrity: sha512-HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw== /browserslist/4.16.3: dependencies: - caniuse-lite: 1.0.30001191 - colorette: 1.2.1 - electron-to-chromium: 1.3.672 + caniuse-lite: 1.0.30001192 + colorette: 1.2.2 + electron-to-chromium: 1.3.675 escalade: 3.1.1 - node-releases: 1.1.70 + node-releases: 1.1.71 dev: true engines: node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 @@ -3642,20 +3777,16 @@ /caniuse-api/3.0.0: dependencies: browserslist: 4.16.3 - caniuse-lite: 1.0.30001187 + caniuse-lite: 1.0.30001192 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: true resolution: integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - /caniuse-lite/1.0.30001187: + /caniuse-lite/1.0.30001192: dev: true resolution: - integrity: sha512-w7/EP1JRZ9552CyrThUnay2RkZ1DXxKe/Q2swTC4+LElLh9RRYrL1Z+27LlakB8kzY0fSmHw9mc7XYDUKAKWMA== - /caniuse-lite/1.0.30001191: - dev: true - resolution: - integrity: sha512-xJJqzyd+7GCJXkcoBiQ1GuxEiOBCLQ0aVW9HMekifZsAVGdj5eJ4mFB9fEhSHipq9IOk/QXFJUiIr9lZT+EsGw== + integrity: sha512-63OrUnwJj5T1rUmoyqYTdRWBqFFxZFlyZnRRjDR8NSUQFB6A+j/uBORU/SyJ5WzDLg4SPiZH40hQCBNdZ/jmAw== /capture-exit/2.0.0: dependencies: rsvp: 4.8.5 @@ -3846,7 +3977,7 @@ integrity: sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== /cliui/6.0.0: dependencies: - string-width: 4.2.0 + string-width: 4.2.2 strip-ansi: 6.0.0 wrap-ansi: 6.2.0 dev: true @@ -3920,10 +4051,10 @@ dev: true resolution: integrity: sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== - /colorette/1.2.1: + /colorette/1.2.2: dev: true resolution: - integrity: sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== + integrity: sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== /combined-stream/1.0.8: dependencies: delayed-stream: 1.0.0 @@ -3990,10 +4121,10 @@ node: '>= 0.8.0' resolution: integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - /compute-scroll-into-view/1.0.16: + /compute-scroll-into-view/1.0.17: dev: false resolution: - integrity: sha512-a85LHKY81oQnikatZYA90pufpZ6sQx++BoCxOEMsjpZx+ZnaKGQnCyCehTRr/1p9GBIAHTjcU9k71kSYWloLiQ== + integrity: sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg== /concat-map/0.0.1: dev: true resolution: @@ -4073,7 +4204,7 @@ integrity: sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== /copy-anything/2.0.3: dependencies: - is-what: 3.12.0 + is-what: 3.14.1 dev: true resolution: integrity: sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ== @@ -4100,28 +4231,28 @@ dev: false resolution: integrity: sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw== - /core-js-compat/3.8.3: + /core-js-compat/3.9.1: dependencies: browserslist: 4.16.3 semver: 7.0.0 dev: true resolution: - integrity: sha512-1sCb0wBXnBIL16pfFG1Gkvei6UzvKyTNYpiC41yrdjEv0UoJoq9E/abTMzyYJ6JpTkAj15dLjbqifIzEBDVvog== - /core-js-pure/3.8.3: + integrity: sha512-jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA== + /core-js-pure/3.9.1: requiresBuild: true resolution: - integrity: sha512-V5qQZVAr9K0xu7jXg1M7qTEwuxUgqr7dUOezGaNa7i+Xn9oXAU/d1fzqD9ObuwpVQOaorO5s70ckyi1woP9lVA== + integrity: sha512-laz3Zx0avrw9a4QEIdmIblnVuJz8W51leY9iLThatCsFawWxC3sE4guASC78JbCin+DkwMpCdp1AVAuzL/GN7A== /core-js/2.6.12: deprecated: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3. dev: true requiresBuild: true resolution: integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== - /core-js/3.8.3: + /core-js/3.9.1: dev: true requiresBuild: true resolution: - integrity: sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q== + integrity: sha512-gSjRvzkxQc1zjM/5paAmL4idJBFzuJoo+jDjF1tStYFMV2ERfD02HhahhCGXUyHxQRG4yFKVSdO6g62eoRMcDg== /core-util-is/1.0.2: dev: true resolution: @@ -4161,12 +4292,12 @@ node: '>=10' resolution: integrity: sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== - /craco-less/1.17.1_8837222c0261ea4582cefd2e7a5e3032: + /craco-less/1.17.1_077094f002a207b28261f7f7ea13418e: dependencies: - '@craco/craco': 6.1.1_react-scripts@4.0.2 + '@craco/craco': 6.1.1_react-scripts@4.0.3 less: 3.13.1 less-loader: 6.2.0 - react-scripts: 4.0.2_react@17.0.1+typescript@4.1.5 + react-scripts: 4.0.3_react@17.0.1+typescript@4.1.5 dev: true peerDependencies: '@craco/craco': ^5.5.0 @@ -4175,7 +4306,7 @@ integrity: sha512-T6V1aF3+eQZ22gUigHInX/i+ExPbWrnmdAhtuEXc4mOyhneDifmEzZFseq/BdRy1aUEs9s4z26jTxP+1I6P//g== /create-ecdh/4.0.4: dependencies: - bn.js: 4.11.9 + bn.js: 4.12.0 elliptic: 6.5.4 dev: true resolution: @@ -4482,14 +4613,14 @@ node: '>=8' resolution: integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - /csstype/3.0.6: + /csstype/3.0.7: dev: true resolution: - integrity: sha512-+ZAmfyWMT7TiIlzdqJgjMb7S4f1beorDbWbsocyK4RaiqA5RTX3K14bnBWmmA9QEM0gRdsjyyrEmcyga8Zsxmw== - /csv-stringify/5.6.1: + integrity: sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g== + /csv-stringify/5.6.2: dev: false resolution: - integrity: sha512-JlQlNZMiuRGSFbLXFNGoBtsORXlkqf4Dfq8Ee0Jo4RVJj3YAUzevagUx24mDrQJLDF7aYz6Ne8kqA8WWBaYt2A== + integrity: sha512-n3rIVbX6ylm1YsX2NEug9IaPV8xRnT+9/NNZbrA/bcHgOSSeqtWla6XnI/xmyu57wIw+ASCAoX1oM6EZtqJV0A== /cyclist/1.0.1: dev: true resolution: @@ -4716,7 +4847,7 @@ integrity: sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== /diffie-hellman/5.0.3: dependencies: - bn.js: 4.11.9 + bn.js: 4.12.0 miller-rabin: 4.0.1 randombytes: 2.1.0 dev: true @@ -4885,17 +5016,13 @@ requiresBuild: true resolution: integrity: sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== - /electron-to-chromium/1.3.664: + /electron-to-chromium/1.3.675: dev: true resolution: - integrity: sha512-yb8LrTQXQnh9yhnaIHLk6CYugF/An50T20+X0h++hjjhVfgSp1DGoMSYycF8/aD5eiqS4QwaNhiduFvK8rifRg== - /electron-to-chromium/1.3.672: - dev: true - resolution: - integrity: sha512-gFQe7HBb0lbOMqK2GAS5/1F+B0IMdYiAgB9OT/w1F4M7lgJK2aNOMNOM622aEax+nS1cTMytkiT0uMOkbtFmHw== + integrity: sha512-GEQw+6dNWjueXGkGfjgm7dAMtXfEqrfDG3uWcZdeaD4cZ3dKYdPRQVruVXQRXtPLtOr5GNVVlNLRMChOZ611pQ== /elliptic/6.5.4: dependencies: - bn.js: 4.11.9 + bn.js: 4.12.0 brorand: 1.1.0 hash.js: 1.1.7 hmac-drbg: 1.0.1 @@ -4997,14 +5124,14 @@ es-to-primitive: 1.2.1 function-bind: 1.1.1 has: 1.0.3 - has-symbols: 1.0.1 + has-symbols: 1.0.2 is-callable: 1.2.3 is-regex: 1.1.2 object-inspect: 1.9.0 object-keys: 1.1.1 object.assign: 4.1.2 - string.prototype.trimend: 1.0.3 - string.prototype.trimstart: 1.0.3 + string.prototype.trimend: 1.0.4 + string.prototype.trimstart: 1.0.4 engines: node: '>= 0.4' resolution: @@ -5016,15 +5143,15 @@ function-bind: 1.1.1 get-intrinsic: 1.1.1 has: 1.0.3 - has-symbols: 1.0.1 + has-symbols: 1.0.2 is-callable: 1.2.3 is-negative-zero: 2.0.1 is-regex: 1.1.2 object-inspect: 1.9.0 object-keys: 1.1.1 object.assign: 4.1.2 - string.prototype.trimend: 1.0.3 - string.prototype.trimstart: 1.0.3 + string.prototype.trimend: 1.0.4 + string.prototype.trimstart: 1.0.4 dev: true engines: node: '>= 0.4' @@ -5097,29 +5224,20 @@ source-map: 0.6.1 resolution: integrity: sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== - /eslint-config-prettier/7.2.0_eslint@7.20.0: + /eslint-config-react-app/6.0.0_4dcbf14bc95f25066c0a020f0b482e8c: dependencies: - eslint: 7.20.0 - dev: true - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - resolution: - integrity: sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg== - /eslint-config-react-app/6.0.0_ddc0ef906ac43542cb55db6faba1824c: - dependencies: - '@typescript-eslint/eslint-plugin': 4.15.0_bc16c4564afe16e3219e549b81836acd - '@typescript-eslint/parser': 4.15.0_eslint@7.20.0+typescript@4.1.5 - babel-eslint: 10.1.0_eslint@7.20.0 + '@typescript-eslint/eslint-plugin': 4.15.2_82d802bc1360aa6114c0ff047240d01c + '@typescript-eslint/parser': 4.15.2_eslint@7.21.0+typescript@4.1.5 + babel-eslint: 10.1.0_eslint@7.21.0 confusing-browser-globals: 1.0.10 - eslint: 7.20.0 - eslint-plugin-flowtype: 5.2.0_eslint@7.20.0 - eslint-plugin-import: 2.22.1_eslint@7.20.0 - eslint-plugin-jest: 24.1.3_eslint@7.20.0+typescript@4.1.5 - eslint-plugin-jsx-a11y: 6.4.1_eslint@7.20.0 - eslint-plugin-react: 7.22.0_eslint@7.20.0 - eslint-plugin-react-hooks: 4.2.0_eslint@7.20.0 - eslint-plugin-testing-library: 3.10.1_eslint@7.20.0+typescript@4.1.5 + eslint: 7.21.0 + eslint-plugin-flowtype: 5.3.1_eslint@7.21.0 + eslint-plugin-import: 2.22.1_eslint@7.21.0 + eslint-plugin-jest: 24.1.5_eslint@7.21.0+typescript@4.1.5 + eslint-plugin-jsx-a11y: 6.4.1_eslint@7.21.0 + eslint-plugin-react: 7.22.0_eslint@7.21.0 + eslint-plugin-react-hooks: 4.2.0_eslint@7.21.0 + eslint-plugin-testing-library: 3.10.1_eslint@7.21.0+typescript@4.1.5 dev: true engines: node: ^10.12.0 || >=12.0.0 @@ -5145,7 +5263,7 @@ /eslint-import-resolver-node/0.3.4: dependencies: debug: 2.6.9 - resolve: 1.18.1 + resolve: 1.20.0 dev: true resolution: integrity: sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== @@ -5158,10 +5276,10 @@ node: '>=4' resolution: integrity: sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== - /eslint-plugin-flowtype/5.2.0_eslint@7.20.0: + /eslint-plugin-flowtype/5.3.1_eslint@7.21.0: dependencies: - eslint: 7.20.0 - lodash: 4.17.20 + eslint: 7.21.0 + lodash: 4.17.21 string-natural-compare: 3.0.1 dev: true engines: @@ -5169,22 +5287,22 @@ peerDependencies: eslint: ^7.1.0 resolution: - integrity: sha512-z7ULdTxuhlRJcEe1MVljePXricuPOrsWfScRXFhNzVD5dmTHWjIF57AxD0e7AbEoLSbjSsaA5S+hCg43WvpXJQ== - /eslint-plugin-import/2.22.1_eslint@7.20.0: + integrity: sha512-mziJD+zw+VTwLtF9qLIxYac0GJCbSEDyqMLP5ENzQeNY5EOxbAfitMFLo+UItjYOISQdh1BCobwE2d4i1o+9Rw== + /eslint-plugin-import/2.22.1_eslint@7.21.0: dependencies: - array-includes: 3.1.2 + array-includes: 3.1.3 array.prototype.flat: 1.2.4 contains-path: 0.1.0 debug: 2.6.9 doctrine: 1.5.0 - eslint: 7.20.0 + eslint: 7.21.0 eslint-import-resolver-node: 0.3.4 eslint-module-utils: 2.6.0 has: 1.0.3 minimatch: 3.0.4 - object.values: 1.1.2 + object.values: 1.1.3 read-pkg-up: 2.0.0 - resolve: 1.18.1 + resolve: 1.20.0 tsconfig-paths: 3.9.0 dev: true engines: @@ -5193,10 +5311,10 @@ eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 resolution: integrity: sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw== - /eslint-plugin-jest/24.1.3_eslint@7.20.0+typescript@4.1.5: + /eslint-plugin-jest/24.1.5_eslint@7.21.0+typescript@4.1.5: dependencies: - '@typescript-eslint/experimental-utils': 4.15.0_eslint@7.20.0+typescript@4.1.5 - eslint: 7.20.0 + '@typescript-eslint/experimental-utils': 4.15.2_eslint@7.21.0+typescript@4.1.5 + eslint: 7.21.0 dev: true engines: node: '>=10' @@ -5204,18 +5322,18 @@ eslint: '>=5' typescript: '*' resolution: - integrity: sha512-dNGGjzuEzCE3d5EPZQ/QGtmlMotqnYWD/QpCZ1UuZlrMAdhG5rldh0N0haCvhGnUkSeuORS5VNROwF9Hrgn3Lg== - /eslint-plugin-jsx-a11y/6.4.1_eslint@7.20.0: + integrity: sha512-FIP3lwC8EzEG+rOs1y96cOJmMVpdFNreoDJv29B5vIupVssRi8zrSY3QadogT0K3h1Y8TMxJ6ZSAzYUmFCp2hg== + /eslint-plugin-jsx-a11y/6.4.1_eslint@7.21.0: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 aria-query: 4.2.2 - array-includes: 3.1.2 + array-includes: 3.1.3 ast-types-flow: 0.0.7 axe-core: 4.1.2 axobject-query: 2.2.0 damerau-levenshtein: 1.0.6 emoji-regex: 9.2.1 - eslint: 7.20.0 + eslint: 7.21.0 has: 1.0.3 jsx-ast-utils: 3.2.0 language-tags: 1.0.5 @@ -5226,9 +5344,9 @@ eslint: ^3 || ^4 || ^5 || ^6 || ^7 resolution: integrity: sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg== - /eslint-plugin-react-hooks/4.2.0_eslint@7.20.0: + /eslint-plugin-react-hooks/4.2.0_eslint@7.21.0: dependencies: - eslint: 7.20.0 + eslint: 7.21.0 dev: true engines: node: '>=10' @@ -5236,20 +5354,20 @@ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 resolution: integrity: sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ== - /eslint-plugin-react/7.22.0_eslint@7.20.0: + /eslint-plugin-react/7.22.0_eslint@7.21.0: dependencies: - array-includes: 3.1.2 + array-includes: 3.1.3 array.prototype.flatmap: 1.2.4 doctrine: 2.1.0 - eslint: 7.20.0 + eslint: 7.21.0 has: 1.0.3 jsx-ast-utils: 3.2.0 object.entries: 1.1.3 - object.fromentries: 2.0.3 - object.values: 1.1.2 + object.fromentries: 2.0.4 + object.values: 1.1.3 prop-types: 15.7.2 resolve: 1.20.0 - string.prototype.matchall: 4.0.3 + string.prototype.matchall: 4.0.4 dev: true engines: node: '>=4' @@ -5257,10 +5375,10 @@ eslint: ^3 || ^4 || ^5 || ^6 || ^7 resolution: integrity: sha512-p30tuX3VS+NWv9nQot9xIGAHBXR0+xJVaZriEsHoJrASGCJZDJ8JLNM0YqKqI0AKm6Uxaa1VUHoNEibxRCMQHA== - /eslint-plugin-testing-library/3.10.1_eslint@7.20.0+typescript@4.1.5: + /eslint-plugin-testing-library/3.10.1_eslint@7.21.0+typescript@4.1.5: dependencies: - '@typescript-eslint/experimental-utils': 3.10.1_eslint@7.20.0+typescript@4.1.5 - eslint: 7.20.0 + '@typescript-eslint/experimental-utils': 3.10.1_eslint@7.21.0+typescript@4.1.5 + eslint: 7.21.0 dev: true engines: node: ^10.12.0 || >=12.0.0 @@ -5315,11 +5433,11 @@ node: '>=10' resolution: integrity: sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== - /eslint-webpack-plugin/2.5.1_eslint@7.20.0+webpack@4.44.2: + /eslint-webpack-plugin/2.5.2_eslint@7.21.0+webpack@4.44.2: dependencies: '@types/eslint': 7.2.6 arrify: 2.0.1 - eslint: 7.20.0 + eslint: 7.21.0 jest-worker: 26.6.2 micromatch: 4.0.2 schema-utils: 3.0.0 @@ -5331,11 +5449,11 @@ eslint: ^7.0.0 webpack: ^4.0.0 || ^5.0.0 resolution: - integrity: sha512-LB6baXTm62IwSu5gxj4xQ8URsMc1Wk95WLcK8pFklLvk4i66lS5v5knpVzCLG9u7NXYThfIMdvr/lYe2A3ZbWw== - /eslint/7.20.0: + integrity: sha512-ndD9chZ/kaGnjjx7taRg7c6FK/YKb29SSYzaLtPBIYLYJQmZtuKqtQbAvTS2ymiMQT6X0VW9vZIHK0KLstv93Q== + /eslint/7.21.0: dependencies: '@babel/code-frame': 7.12.11 - '@eslint/eslintrc': 0.3.0 + '@eslint/eslintrc': 0.4.0 ajv: 6.12.6 chalk: 4.1.0 cross-spawn: 7.0.3 @@ -5348,7 +5466,7 @@ espree: 7.3.1 esquery: 1.4.0 esutils: 2.0.3 - file-entry-cache: 6.0.0 + file-entry-cache: 6.0.1 functional-red-black-tree: 1.0.1 glob-parent: 5.1.1 globals: 12.4.0 @@ -5359,7 +5477,7 @@ js-yaml: 3.14.1 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 - lodash: 4.17.20 + lodash: 4.17.21 minimatch: 3.0.4 natural-compare: 1.4.0 optionator: 0.9.1 @@ -5376,7 +5494,7 @@ node: ^10.12.0 || >=12.0.0 hasBin: true resolution: - integrity: sha512-qGi0CTcOGP2OtCQBgWZlQjcTuP0XkIpYFj25XtRTQSHC+umNnp7UMshr2G8SLsRFYDdAPFeHOsiteadmMH02Yw== + integrity: sha512-W2aJbXpMNofUp0ztQaF40fveSsJBjlSCSWpy//gzfTvwC+USs/nceBrKmlJOiM8r1bLwP2EuYkCqArn/6QTIgg== /espree/7.3.1: dependencies: acorn: 7.4.1 @@ -5446,12 +5564,12 @@ dev: true resolution: integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - /events/3.2.0: + /events/3.3.0: dev: true engines: node: '>=0.8.x' resolution: - integrity: sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== + integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== /eventsource/1.0.7: dependencies: original: 1.0.2 @@ -5573,7 +5691,7 @@ integrity: sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== /ext/1.4.0: dependencies: - type: 2.2.0 + type: 2.3.0 dev: true resolution: integrity: sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== @@ -5644,20 +5762,12 @@ dev: true resolution: integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - /fastq/1.10.1: + /fastq/1.11.0: dependencies: reusify: 1.0.4 dev: true resolution: - integrity: sha512-AWuv6Ery3pM+dY7LYS8YIaCiQvUaos9OB1RyNgaOWnaX+Tik7Onvcsf8x8c+YtDeT0maYLniBip2hox5KtEXXA== - /faye-websocket/0.10.0: - dependencies: - websocket-driver: 0.6.5 - dev: true - engines: - node: '>=0.4.0' - resolution: - integrity: sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= + integrity: sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g== /faye-websocket/0.11.3: dependencies: websocket-driver: 0.7.4 @@ -5684,14 +5794,14 @@ node: '>=8' resolution: integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - /file-entry-cache/6.0.0: + /file-entry-cache/6.0.1: dependencies: flat-cache: 3.0.4 dev: true engines: node: ^10.12.0 || >=12.0.0 resolution: - integrity: sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA== + integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== /file-loader/6.1.1_webpack@4.44.2: dependencies: loader-utils: 2.0.0 @@ -5821,7 +5931,7 @@ dev: true resolution: integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - /follow-redirects/1.13.2_debug@4.3.1: + /follow-redirects/1.13.3_debug@4.3.1: dependencies: debug: 4.3.1_supports-color@6.1.0 dev: true @@ -5833,7 +5943,7 @@ debug: optional: true resolution: - integrity: sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA== + integrity: sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA== /for-in/1.0.2: dev: true engines: @@ -5846,7 +5956,7 @@ integrity: sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= /fork-ts-checker-webpack-plugin/4.1.6: dependencies: - '@babel/code-frame': 7.10.4 + '@babel/code-frame': 7.12.13 chalk: 2.4.2 micromatch: 3.1.10 minimatch: 3.0.4 @@ -5863,7 +5973,7 @@ dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 - mime-types: 2.1.28 + mime-types: 2.1.29 dev: true engines: node: '>= 0.12' @@ -5994,7 +6104,7 @@ dependencies: function-bind: 1.1.1 has: 1.0.3 - has-symbols: 1.0.1 + has-symbols: 1.0.2 resolution: integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== /get-own-enumerable-property-symbols/3.0.2: @@ -6191,11 +6301,11 @@ node: '>=8' resolution: integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - /has-symbols/1.0.1: + /has-symbols/1.0.2: engines: node: '>= 0.4' resolution: - integrity: sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== /has-value/0.3.1: dependencies: get-value: 2.0.6 @@ -6266,7 +6376,7 @@ integrity: sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== /history/4.10.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 loose-envify: 1.4.0 resolve-pathname: 3.0.0 tiny-invariant: 1.1.0 @@ -6363,7 +6473,7 @@ '@types/webpack': 4.41.26 html-minifier-terser: 5.1.1 loader-utils: 1.4.0 - lodash: 4.17.20 + lodash: 4.17.21 pretty-error: 2.1.2 tapable: 1.1.3 util.promisify: 1.0.0 @@ -6433,7 +6543,7 @@ dependencies: http-proxy: 1.18.1_debug@4.3.1 is-glob: 4.0.1 - lodash: 4.17.20 + lodash: 4.17.21 micromatch: 3.1.10 dev: true engines: @@ -6445,7 +6555,7 @@ /http-proxy/1.18.1_debug@4.3.1: dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.13.2_debug@4.3.1 + follow-redirects: 1.13.3_debug@4.3.1 requires-port: 1.0.0 dev: true engines: @@ -6477,22 +6587,22 @@ integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== /i18next-browser-languagedetector/6.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 dev: false resolution: integrity: sha512-3H+OsNQn3FciomUU0d4zPFHsvJv4X66lBelXk9hnIDYDsveIgT7dWZ3/VvcSlpKk9lvCK770blRZ/CwHMXZqWw== - /i18next-http-backend/1.1.0: + /i18next-http-backend/1.1.1: dependencies: node-fetch: 2.6.1 dev: false resolution: - integrity: sha512-utp3MyUQpIUD5Jxkf5xz0GWYWDSte7uuf1F4qaLtVtIqlcFcyYQ2l22el1JPK3rAL44+sjhB7+ct0Qr2WpbxNA== - /i18next/19.8.7: + integrity: sha512-li3Un71yBu1uCfgJrCg8DOEtljse1er0ja1pM/rFmWLihrD2RFqyrglOsYUHokvzZ53mJB2Mmu4DYgd8/t3R0A== + /i18next/19.9.0: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 dev: false resolution: - integrity: sha512-ezo1gb7QO4OQ5gQCdZMUxopwQSoqpRp6whdEjm1grxMSmkGj1NJ+kYS0UQd4NnpPIVqsgqTQ2L2eqSQYQ+U3Fw== + integrity: sha512-5zRG3aFl+e+LsdpVUp0dKkVhYH2iCv+gxyzXP1q2oJUc3BV26fqX87cBE3AHkMOir1X0liOaSoxS/Kg95iEcEQ== /iconv-lite/0.4.24: dependencies: safer-buffer: 2.1.2 @@ -6545,10 +6655,10 @@ optional: true resolution: integrity: sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= - /immer/7.0.9: + /immer/8.0.1: dev: true resolution: - integrity: sha512-Vs/gxoM4DqNAYR7pugIxi0Xc8XAun/uy7AQu4fLLqaTBHxjOP9pJ266Q9MWA/ly4z6rAFZbvViOtihxUZ7O28A== + integrity: sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA== /import-cwd/2.1.0: dependencies: import-from: 2.1.0 @@ -6964,7 +7074,7 @@ /is-regex/1.1.2: dependencies: call-bind: 1.0.2 - has-symbols: 1.0.1 + has-symbols: 1.0.2 engines: node: '>= 0.4' resolution: @@ -7013,7 +7123,7 @@ integrity: sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== /is-symbol/1.0.3: dependencies: - has-symbols: 1.0.1 + has-symbols: 1.0.2 engines: node: '>= 0.4' resolution: @@ -7022,10 +7132,10 @@ dev: true resolution: integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - /is-what/3.12.0: + /is-what/3.14.1: dev: true resolution: - integrity: sha512-2ilQz5/f/o9V7WRWJQmpFYNmQFZ9iM+OXRonZKcYgTkCzjb949Vi4h282PD1UfmgHk666rcWonbRJ++KI41VGw== + integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA== /is-windows/1.0.2: dev: true engines: @@ -7134,12 +7244,12 @@ integrity: sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== /jest-circus/26.6.0: dependencies: - '@babel/traverse': 7.12.13 + '@babel/traverse': 7.13.0 '@jest/environment': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 '@types/babel__traverse': 7.11.0 - '@types/node': 12.20.0 + '@types/node': 14.14.31 chalk: 4.1.0 co: 4.6.0 dedent: 0.7.0 @@ -7246,7 +7356,7 @@ '@jest/environment': 26.6.2 '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 12.20.0 + '@types/node': 14.14.31 jest-mock: 26.6.2 jest-util: 26.6.2 jsdom: 16.4.0 @@ -7260,7 +7370,7 @@ '@jest/environment': 26.6.2 '@jest/fake-timers': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 12.20.0 + '@types/node': 14.14.31 jest-mock: 26.6.2 jest-util: 26.6.2 dev: true @@ -7277,7 +7387,7 @@ dependencies: '@jest/types': 26.6.2 '@types/graceful-fs': 4.1.5 - '@types/node': 12.20.0 + '@types/node': 14.14.31 anymatch: 3.1.1 fb-watchman: 2.0.1 graceful-fs: 4.2.6 @@ -7297,12 +7407,12 @@ integrity: sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== /jest-jasmine2/26.6.3: dependencies: - '@babel/traverse': 7.12.13 + '@babel/traverse': 7.13.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': 12.20.0 + '@types/node': 14.14.31 chalk: 4.1.0 co: 4.6.0 expect: 26.6.2 @@ -7359,7 +7469,7 @@ /jest-mock/26.6.2: dependencies: '@jest/types': 26.6.2 - '@types/node': 12.20.0 + '@types/node': 14.14.31 dev: true engines: node: '>= 10.14.2' @@ -7415,7 +7525,7 @@ jest-pnp-resolver: 1.2.2_jest-resolve@26.6.0 jest-util: 26.6.2 read-pkg-up: 7.0.1 - resolve: 1.18.1 + resolve: 1.20.0 slash: 3.0.0 dev: true engines: @@ -7430,7 +7540,7 @@ jest-pnp-resolver: 1.2.2_jest-resolve@26.6.2 jest-util: 26.6.2 read-pkg-up: 7.0.1 - resolve: 1.18.1 + resolve: 1.20.0 slash: 3.0.0 dev: true engines: @@ -7443,7 +7553,7 @@ '@jest/environment': 26.6.2 '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 12.20.0 + '@types/node': 14.14.31 chalk: 4.1.0 emittery: 0.7.2 exit: 0.1.2 @@ -7501,7 +7611,7 @@ integrity: sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== /jest-serializer/26.6.2: dependencies: - '@types/node': 12.20.0 + '@types/node': 14.14.31 graceful-fs: 4.2.6 dev: true engines: @@ -7510,7 +7620,7 @@ integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== /jest-snapshot/26.6.2: dependencies: - '@babel/types': 7.12.13 + '@babel/types': 7.13.0 '@jest/types': 26.6.2 '@types/babel__traverse': 7.11.0 '@types/prettier': 2.2.1 @@ -7534,7 +7644,7 @@ /jest-util/26.6.2: dependencies: '@jest/types': 26.6.2 - '@types/node': 12.20.0 + '@types/node': 14.14.31 chalk: 4.1.0 graceful-fs: 4.2.6 is-ci: 2.0.0 @@ -7578,7 +7688,7 @@ dependencies: '@jest/test-result': 26.6.2 '@jest/types': 26.6.2 - '@types/node': 12.20.0 + '@types/node': 14.14.31 ansi-escapes: 4.3.1 chalk: 4.1.0 jest-util: 26.6.2 @@ -7599,7 +7709,7 @@ integrity: sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== /jest-worker/26.6.2: dependencies: - '@types/node': 12.20.0 + '@types/node': 14.14.31 merge-stream: 2.0.0 supports-color: 7.2.0 dev: true @@ -7768,7 +7878,7 @@ integrity: sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= /jsx-ast-utils/3.2.0: dependencies: - array-includes: 3.1.2 + array-includes: 3.1.3 object.assign: 4.1.2 dev: true engines: @@ -7831,7 +7941,7 @@ integrity: sha1-0yHbxNowuovzAk4ED6XBRmH5GTo= /last-call-webpack-plugin/3.0.0: dependencies: - lodash: 4.17.20 + lodash: 4.17.21 webpack-sources: 1.4.3 dev: true resolution: @@ -7976,6 +8086,10 @@ dev: true resolution: integrity: sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= + /lodash.debounce/4.0.8: + dev: true + resolution: + integrity: sha1-gteb/zCmfEAF/9XiUVMArZyk168= /lodash.memoize/4.1.2: dev: true resolution: @@ -8001,9 +8115,6 @@ dev: true resolution: integrity: sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= - /lodash/4.17.20: - resolution: - integrity: sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== /lodash/4.17.21: resolution: integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -8179,32 +8290,26 @@ integrity: sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== /miller-rabin/4.0.1: dependencies: - bn.js: 4.11.9 + bn.js: 4.12.0 brorand: 1.1.0 dev: true hasBin: true resolution: integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - /mime-db/1.45.0: - dev: true - engines: - node: '>= 0.6' - resolution: - integrity: sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== /mime-db/1.46.0: dev: true engines: node: '>= 0.6' resolution: integrity: sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ== - /mime-types/2.1.28: + /mime-types/2.1.29: dependencies: - mime-db: 1.45.0 + mime-db: 1.46.0 dev: true engines: node: '>= 0.6' resolution: - integrity: sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ== + integrity: sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ== /mime/1.6.0: dev: true engines: @@ -8212,13 +8317,6 @@ hasBin: true resolution: integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - /mime/2.5.0: - dev: true - engines: - node: '>=4.0.0' - hasBin: true - resolution: - integrity: sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag== /mime/2.5.2: dev: true engines: @@ -8240,7 +8338,7 @@ integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== /mini-create-react-context/0.4.1_prop-types@15.7.2+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 prop-types: 15.7.2 react: 17.0.1 tiny-warning: 1.0.3 @@ -8454,7 +8552,7 @@ integrity: sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag== /native-url/0.2.6: dependencies: - querystring: 0.2.0 + querystring: 0.2.1 dev: true resolution: integrity: sha512-k4bDC87WtgrdD362gZz6zoiXQrl40kYlBmpfmSjwRO1VU0V5ccwJTlxuE72F6m3V0vc1xOf6n3UCP9QyerRqmA== @@ -8512,7 +8610,7 @@ constants-browserify: 1.0.0 crypto-browserify: 3.12.0 domain-browser: 1.2.0 - events: 3.2.0 + events: 3.3.0 https-browserify: 1.0.0 os-browserify: 0.3.0 path-browserify: 0.0.1 @@ -8549,14 +8647,14 @@ optional: true resolution: integrity: sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA== - /node-releases/1.1.70: + /node-releases/1.1.71: dev: true resolution: - integrity: sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw== + integrity: sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== /normalize-package-data/2.5.0: dependencies: hosted-git-info: 2.8.8 - resolve: 1.18.1 + resolve: 1.20.0 semver: 5.7.1 validate-npm-package-license: 3.0.4 dev: true @@ -8677,7 +8775,7 @@ dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - has-symbols: 1.0.1 + has-symbols: 1.0.2 object-keys: 1.1.1 engines: node: '>= 0.4' @@ -8694,7 +8792,7 @@ node: '>= 0.4' resolution: integrity: sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== - /object.fromentries/2.0.3: + /object.fromentries/2.0.4: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 @@ -8704,8 +8802,8 @@ engines: node: '>= 0.4' resolution: - integrity: sha512-IDUSMXs6LOSJBWE++L0lzIbSqHl9KDCfff2x/JSEIDtEUavUnyMYC2ZGay/04Zq4UT8lvd4xNhU4/YHKibAOlw== - /object.getownpropertydescriptors/2.1.1: + integrity: sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== + /object.getownpropertydescriptors/2.1.2: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 @@ -8714,7 +8812,7 @@ engines: node: '>= 0.8' resolution: - integrity: sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng== + integrity: sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== /object.pick/1.3.0: dependencies: isobject: 3.0.1 @@ -8723,7 +8821,7 @@ node: '>=0.10.0' resolution: integrity: sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - /object.values/1.1.2: + /object.values/1.1.3: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 @@ -8733,7 +8831,7 @@ engines: node: '>= 0.4' resolution: - integrity: sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag== + integrity: sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== /obuf/1.1.2: dev: true resolution: @@ -8766,7 +8864,7 @@ node: '>=6' resolution: integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - /open/7.4.1: + /open/7.4.2: dependencies: is-docker: 2.1.1 is-wsl: 2.2.0 @@ -8774,7 +8872,7 @@ engines: node: '>=8' resolution: - integrity: sha512-Pxv+fKRsd/Ozflgn2Gjev1HZveJJeKR6hKKmdaImJMuEZ6htAvCTbcMABJo+qevlAelTLCrEK3YTKZ9fVTcSPw== + integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== /opener/1.5.2: dev: true hasBin: true @@ -8826,7 +8924,7 @@ integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== /original/1.0.2: dependencies: - url-parse: 1.4.7 + url-parse: 1.5.1 dev: true resolution: integrity: sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== @@ -9727,7 +9825,7 @@ dependencies: autoprefixer: 9.8.6 browserslist: 4.16.3 - caniuse-lite: 1.0.30001187 + caniuse-lite: 1.0.30001192 css-blank-pseudo: 0.1.4 css-has-pseudo: 0.10.0 css-prefers-color-scheme: 3.1.1 @@ -9918,7 +10016,7 @@ integrity: sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== /postcss/8.2.6: dependencies: - colorette: 1.2.1 + colorette: 1.2.2 nanoid: 3.1.20 source-map: 0.6.1 dev: true @@ -9944,22 +10042,15 @@ node: '>=0.10.0' resolution: integrity: sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= - /prettier/2.2.1: - dev: true - engines: - node: '>=10.13.0' - hasBin: true - resolution: - integrity: sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== - /pretty-bytes/5.5.0: + /pretty-bytes/5.6.0: dev: true engines: node: '>=6' resolution: - integrity: sha512-p+T744ZyjjiaFlMUZZv6YPC5JrkNj8maRmPaQCWFJFplUAzpIUTRaTcS+7wmZtUoFXHtESJb23ISliaWyz3SHA== + integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== /pretty-error/2.1.2: dependencies: - lodash: 4.17.20 + lodash: 4.17.21 renderkid: 2.0.5 dev: true resolution: @@ -10063,7 +10154,7 @@ integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== /public-encrypt/4.0.3: dependencies: - bn.js: 4.11.9 + bn.js: 4.12.0 browserify-rsa: 4.1.0 create-hash: 1.2.0 parse-asn1: 5.1.6 @@ -10148,6 +10239,12 @@ node: '>=0.4.x' resolution: integrity: sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + /querystring/0.2.1: + dev: true + engines: + node: '>=0.4.x' + resolution: + integrity: sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== /querystringify/2.2.0: dev: true resolution: @@ -10194,10 +10291,10 @@ integrity: sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== /rc-align/4.0.9_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 dom-align: 1.12.0 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 resize-observer-polyfill: 1.5.1 @@ -10209,10 +10306,10 @@ integrity: sha512-myAM2R4qoB6LqBul0leaqY8gFaiECDJ3MtQDmzDo9xM9NRT/04TvWOYd2YHU9zvGzqk9QXF6S9/MifzSKDZeMw== /rc-cascader/1.4.2_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 array-tree-filter: 2.1.0 - rc-trigger: 5.2.1_react-dom@17.0.1+react@17.0.1 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-trigger: 5.2.3_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 warning: 4.0.3 @@ -10224,7 +10321,7 @@ integrity: sha512-JVuLGrSi+3G8DZyPvlKlGVWJjhoi9NTz6REHIgRspa5WnznRkKGm2ejb0jJtz0m2IL8Q9BG4ZA2sXuqAu71ltQ== /rc-checkbox/2.3.2_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 @@ -10236,10 +10333,10 @@ integrity: sha512-afVi1FYiGv1U0JlpNH/UaEXdh6WUJjcWokj/nUN2TgG80bfG+MDdbfHKlLcNNba94mbjy2/SXJ1HDgrOkXGAjg== /rc-collapse/3.1.0_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 rc-motion: 2.4.1_react-dom@17.0.1+react@17.0.1 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 shallowequal: 1.1.0 @@ -10251,10 +10348,10 @@ integrity: sha512-EwpNPJcLe7b+5JfyaxM9ZNnkCgqArt3QQO0Cr5p5plwz/C9h8liAmjYY5I4+hl9lAjBqb7ZwLu94+z+rt5g1WQ== /rc-dialog/8.5.1_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 rc-motion: 2.4.1_react-dom@17.0.1+react@17.0.1 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 dev: false @@ -10263,11 +10360,11 @@ react-dom: '>=16.9.0' resolution: integrity: sha512-EcLgHHjF3Jp4C+TFceO2j7gIrpx0YIhY6ronki5QJDL/z+qWYozY5RNh4rnv4a6R21SPVhV+SK+gMMlMHZ/YRQ== - /rc-drawer/4.2.2_react-dom@17.0.1+react@17.0.1: + /rc-drawer/4.3.1_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 dev: false @@ -10275,12 +10372,12 @@ react: '>=16.9.0' react-dom: '>=16.9.0' resolution: - integrity: sha512-zw48FATkAmJrEnfeRWiMqvKAzqGzUDLN1UXlluB7q7GgbR6mJFvc+QsmNrgxsFuMz86Lh9mKSIi7rXlPINmuzw== + integrity: sha512-GMfFy4maqxS9faYXEhQ+0cA1xtkddEQzraf6SAdzWbn444DrrLogwYPk1NXSpdXjLCLxgxOj9MYtyYG42JsfXg== /rc-dropdown/3.2.0_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 - rc-trigger: 5.2.1_react-dom@17.0.1+react@17.0.1 + rc-trigger: 5.2.3_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 dev: false @@ -10289,11 +10386,11 @@ react-dom: '*' resolution: integrity: sha512-j1HSw+/QqlhxyTEF6BArVZnTmezw2LnSmRk6I9W7BCqNCKaRwleRmMMs1PHbuaG8dKHVqP6e21RQ7vPBLVnnNw== - /rc-field-form/1.18.1_react-dom@17.0.1+react@17.0.1: + /rc-field-form/1.19.0_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 async-validator: 3.5.1 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 dev: false @@ -10303,13 +10400,13 @@ react: '>= 16.9.0' react-dom: '>= 16.9.0' resolution: - integrity: sha512-/YRnelnHLxygl/ROGhFqfCT+uAZ5xLvu3qjtlETOneb7fXKk7tqp+RGfYqZ4uNViXlsfxox3qqMMTVet6wYfEA== - /rc-image/5.2.2_react-dom@17.0.1+react@17.0.1: + integrity: sha512-FZFyE6FmhR4xGO3MVo86J2sHIM6t/W4UqN94nVqZC/9PLhzSaKuM0i9UfwFMtuENP2hxFANEQZMBrD/2Zd43pg== + /rc-image/5.2.3_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 rc-dialog: 8.5.1_react-dom@17.0.1+react@17.0.1 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 dev: false @@ -10317,12 +10414,12 @@ react: '>=16.9.0' react-dom: '>=16.9.0' resolution: - integrity: sha512-Zv8Qyftw5P2nbqaueUOX1Fq1c5XlY/hTEWzUxINQh+qt/K1e5vF5sriTy1KH9B6GY4LVwIk4oHweDJemCWYDcw== - /rc-input-number/6.2.0_react-dom@17.0.1+react@17.0.1: + integrity: sha512-8qWNerW1rN0s4zAF6oEa+Zm7UzM+PwTxbGdufvnR3Gcp2M0bcfoEPk9V+RgTxmzGNNELxmrMHloPL4LV5BZu3Q== + /rc-input-number/7.0.0_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 dev: false @@ -10330,15 +10427,15 @@ react: '>=16.9.0' react-dom: '>=16.9.0' resolution: - integrity: sha512-EaDkGvJN1YZdLntY2isYjHejgX6hDCcW8Te7hIGsVp3Egzn179s1PVVLQmSEfT1YC+bf+SE5EZOpw0IH7dq33w== + integrity: sha512-79ZAKz1OE7RTlfrSOhe/jAifFoMsKQ/u9M8qw5PLzEO2FGthtFcxoQTCTs5WPjs9tElG5HPG/YCP5Ugb3XRGEA== /rc-mentions/1.5.3_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 - rc-menu: 8.10.5_react-dom@17.0.1+react@17.0.1 + rc-menu: 8.10.6_react-dom@17.0.1+react@17.0.1 rc-textarea: 0.3.4_react-dom@17.0.1+react@17.0.1 - rc-trigger: 5.2.1_react-dom@17.0.1+react@17.0.1 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-trigger: 5.2.3_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 dev: false @@ -10347,14 +10444,14 @@ react-dom: '>=16.9.0' resolution: integrity: sha512-NG/KB8YiKBCJPHHvr/QapAb4f9YzLJn7kDHtmI1K6t7ZMM5YgrjIxNNhoRKKP9zJvb9PdPts69Hbg4ZMvLVIFQ== - /rc-menu/8.10.5_react-dom@17.0.1+react@17.0.1: + /rc-menu/8.10.6_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 mini-store: 3.0.6_react-dom@17.0.1+react@17.0.1 rc-motion: 2.4.1_react-dom@17.0.1+react@17.0.1 - rc-trigger: 5.2.1_react-dom@17.0.1+react@17.0.1 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-trigger: 5.2.3_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 resize-observer-polyfill: 1.5.1 @@ -10364,12 +10461,12 @@ react: '>=16.9.0' react-dom: '>=16.9.0' resolution: - integrity: sha512-8Ets93wQFy9IysmgRUm1VGdrEz6XfZTM0jQOqOPLYNXah5HgAmCh4xT0UOygfHB3IWiQeqDgr2uPB4uVhwI2+Q== + integrity: sha512-RVkd8XChwSmVOdNULbqLNnABthRZWnhqct1Q74onEXTClsXvsLADMhlIJtw/umglVSECM+14TJdIli9rl2Bzlw== /rc-motion/2.4.1_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 dev: false @@ -10380,10 +10477,10 @@ integrity: sha512-TWLvymfMu8SngPx5MDH8dQ0D2RYbluNTfam4hY/dNNx9RQ3WtGuZ/GXHi2ymLMzH+UNd6EEFYkOuR5JTTtm8Xg== /rc-notification/4.5.4_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 rc-motion: 2.4.1_react-dom@17.0.1+react@17.0.1 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 dev: false @@ -10396,10 +10493,10 @@ integrity: sha512-VsN0ouF4uglE5g3C9oDsXLNYX0Sz++ZNUFYCswkxhpImYJ9u6nJOpyA71uOYDVCu6bAF54Y5Hi/b+EcnMzkepg== /rc-overflow/1.0.2_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 rc-resize-observer: 1.0.0_react-dom@17.0.1+react@17.0.1 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 dev: false @@ -10410,7 +10507,7 @@ integrity: sha512-GXj4DAyNxm4f57LvXLwhJaZoJHzSge2l2lQq64MZP7NJAfLpQqOLD+v9JMV9ONTvDPZe8kdzR+UMmkAn7qlzFA== /rc-pagination/3.1.3_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 @@ -10420,15 +10517,15 @@ react-dom: '>=16.9.0' resolution: integrity: sha512-Z7CdC4xGkedfAwcUHPtfqNhYwVyDgkmhkvfsmoByCOwAd89p42t5O5T3ORar1wRmVWf3jxk/Bf4k0atenNvlFA== - /rc-picker/2.5.5_89622fd8e4ec221151a62783d49305af: + /rc-picker/2.5.7_89622fd8e4ec221151a62783d49305af: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 date-fns: 2.17.0 dayjs: 1.10.4 moment: 2.29.1 - rc-trigger: 5.2.1_react-dom@17.0.1+react@17.0.1 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-trigger: 5.2.3_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 shallowequal: 1.1.0 @@ -10440,10 +10537,10 @@ react: '>=16.9.0' react-dom: '>=16.9.0' resolution: - integrity: sha512-HZDBDDDqCkw7RiFQI9yxuQb1G9/z2KS66+0moJ3jSNVWTGZwTGa8bmdEabds7WtEZEHPDH5EGlWAJU72iimxUg== + integrity: sha512-b5ZWCKds1u4H9fP0EpJ8YUX16VhueK6E7TxgK+rRjpbKwI1bOUy59F/OkUXjdACJdDmbsDMDZogpW7KzoqtzvA== /rc-progress/3.1.3_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 @@ -10455,9 +10552,9 @@ integrity: sha512-Jl4fzbBExHYMoC6HBPzel0a9VmhcSXx24LVt/mdhDM90MuzoMCJjXZAlhA0V0CJi+SKjMhfBoIQ6Lla1nD4QNw== /rc-rate/2.9.1_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 dev: false @@ -10470,9 +10567,9 @@ integrity: sha512-MmIU7FT8W4LYRRHJD1sgG366qKtSaKb67D0/vVvJYR0lrCuRrCiVQ5qhfT5ghVO4wuVIORGpZs7ZKaYu+KMUzA== /rc-resize-observer/1.0.0_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 resize-observer-polyfill: 1.5.1 @@ -10484,12 +10581,12 @@ integrity: sha512-RgKGukg1mlzyGdvzF7o/LGFC8AeoMH9aGzXTUdp6m+OApvmRdUuOscq/Y2O45cJA+rXt1ApWlpFoOIioXL3AGg== /rc-select/12.1.3_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 rc-motion: 2.4.1_react-dom@17.0.1+react@17.0.1 rc-overflow: 1.0.2_react-dom@17.0.1+react@17.0.1 - rc-trigger: 5.2.1_react-dom@17.0.1+react@17.0.1 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-trigger: 5.2.3_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 rc-virtual-list: 3.2.6_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 @@ -10503,10 +10600,10 @@ integrity: sha512-pMJ27VQRh5QbyGLSE+by4tORYucNFbZxON+Ywj81qjXAGMjvhMcOOvlv1RZRNdnZxaMwH//3iDPOf80b0AJxZg== /rc-slider/9.7.1_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 rc-tooltip: 5.0.2_react-dom@17.0.1+react@17.0.1 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 shallowequal: 1.1.0 @@ -10520,9 +10617,9 @@ integrity: sha512-r9r0dpFA3PEvxBhIfVi1lVzxuSogWxeY+tGvi2AqMM1rPgaOXQ7WbtT+9kVFkJ9K8TntA/vYPgiCCKfN29KTkw== /rc-steps/4.1.3_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 dev: false @@ -10535,9 +10632,9 @@ integrity: sha512-GXrMfWQOhN3sVze3JnzNboHpQdNHcdFubOETUHyDpa/U3HEKBZC3xJ8XK4paBgF4OJ3bdUVLC+uBPc6dCxvDYA== /rc-switch/3.2.2_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 dev: false @@ -10548,10 +10645,10 @@ integrity: sha512-+gUJClsZZzvAHGy1vZfnwySxj+MjLlGRyXKXScrtCTcmiYNPzxDFOxdQ/3pK1Kt/0POvwJ/6ALOR8gwdXGhs+A== /rc-table/7.13.1_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 rc-resize-observer: 1.0.0_react-dom@17.0.1+react@17.0.1 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 shallowequal: 1.1.0 @@ -10565,12 +10662,12 @@ integrity: sha512-zg2ldSRHj1ENGsSykSKV5axnWkSaaly+wjRcD1Bspx4WHrf3m/I1WYjpVvOeer2e06bfKb6lmkK0HLxQ1cZtsg== /rc-tabs/11.7.3_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 rc-dropdown: 3.2.0_react-dom@17.0.1+react@17.0.1 - rc-menu: 8.10.5_react-dom@17.0.1+react@17.0.1 + rc-menu: 8.10.6_react-dom@17.0.1+react@17.0.1 rc-resize-observer: 1.0.0_react-dom@17.0.1+react@17.0.1 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 dev: false @@ -10583,10 +10680,10 @@ integrity: sha512-5nd2NVss9TprPRV9r8N05SjQyAE7zDrLejxFLcbJ+BdLxSwnGnk3ws/Iq0smqKZUnPQC0XEvnpF3+zlllUUT2w== /rc-textarea/0.3.4_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 rc-resize-observer: 1.0.0_react-dom@17.0.1+react@17.0.1 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 dev: false @@ -10597,8 +10694,8 @@ integrity: sha512-ILUYx831ZukQPv3m7R4RGRtVVWmL1LV4ME03L22mvT56US0DGCJJaRTHs4vmpcSjFHItph5OTmhodY4BOwy81A== /rc-tooltip/5.0.2_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 - rc-trigger: 5.2.1_react-dom@17.0.1+react@17.0.1 + '@babel/runtime': 7.13.8 + rc-trigger: 5.2.3_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 dev: false @@ -10609,11 +10706,11 @@ integrity: sha512-A4FejSG56PzYtSNUU4H1pVzfhtkV/+qMT2clK0CsSj+9mbc4USEtpWeX6A/jjVL+goBOMKj8qlH7BCZmZWh/Nw== /rc-tree-select/4.3.0_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 rc-select: 12.1.3_react-dom@17.0.1+react@17.0.1 - rc-tree: 4.1.1_react-dom@17.0.1+react@17.0.1 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-tree: 4.1.2_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 dev: false @@ -10622,12 +10719,12 @@ react-dom: '*' resolution: integrity: sha512-EEXB9dKBsJNJuKIU5NERZsaJ71GDGIj5uWLl7A4XiYr2jXM4JICfScvvp3O5jHMDfhqmgpqNc0z90mHkgh3hKg== - /rc-tree/4.1.1_react-dom@17.0.1+react@17.0.1: + /rc-tree/4.1.2_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 rc-motion: 2.4.1_react-dom@17.0.1+react@17.0.1 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 rc-virtual-list: 3.2.6_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 @@ -10638,14 +10735,14 @@ react: '*' react-dom: '*' resolution: - integrity: sha512-ufq7CkWfvTQa+xMPzEWYfOjTfsEALlPr0/IyujEG4+4d8NdaR3e+0dc8LkkVWoe1VCcXV2FQqAsgr2z/ThFUrQ== - /rc-trigger/5.2.1_react-dom@17.0.1+react@17.0.1: + integrity: sha512-9yhhDqHxG8gOZfkZeHYT6oarzarzi37lDe5c2r72tq5dflvoayGqD2bMkL2KC7GQJPLknZrtCwAbewqvD/T6NQ== + /rc-trigger/5.2.3_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 rc-align: 4.0.9_react-dom@17.0.1+react@17.0.1 rc-motion: 2.4.1_react-dom@17.0.1+react@17.0.1 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 dev: false @@ -10655,12 +10752,12 @@ react: '>=16.9.0' react-dom: '>=16.9.0' resolution: - integrity: sha512-XZilSlSDnb0L/R3Ff2xo9C0Fho2aBDoAn8u3coM60XdLqTCo24nsOh1bfAMm0uIB1qVjh5eqeyFqnBPmXi8pJg== - /rc-upload/3.3.4_react-dom@17.0.1+react@17.0.1: + integrity: sha512-6Fokao07HUbqKIDkDRFEM0AGZvsvK0Fbp8A/KFgl1ngaqfO1nY037cISCG1Jm5fxImVsXp9awdkP7Vu5cxjjog== + /rc-upload/4.0.0-alpha.6_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 classnames: 2.2.6 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 dev: false @@ -10668,10 +10765,10 @@ react: '>=16.9.0' react-dom: '>=16.9.0' resolution: - integrity: sha512-v2sirR4JL31UTHD/f0LGUdd+tpFaOVUTPeIEjAXRP9kRN8TFhqOgcXl5ixtyqj90FmtRUmKmafCv0EmhBQUHqQ== - /rc-util/5.8.0_react-dom@17.0.1+react@17.0.1: + integrity: sha512-LgcHy0PL5HyVmOEhOXjYzljpXgfFTFmTlraLv4j0Gy9F2owNNt/Mkiu2NJTj+RVZoi7QnxzZeGWoRa1rVdPV4Q== + /rc-util/5.8.1_react-dom@17.0.1+react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 react-is: 16.13.1 @@ -10681,12 +10778,12 @@ react: '>=16.9.0' react-dom: '>=16.9.0' resolution: - integrity: sha512-x8UGbURS1/9mMyqNMsRdCq+nBLefjcubfS++d/P/oAKZ2b0X2Zo6TPPPS4nKyZIK8Xvo4DFx5zfwJ9hUm9CRYQ== + integrity: sha512-kXV/QjL+azh3AxMk68gm8+nltVoL6bjeJJULAZLRCLus2Fhvo/aaMZokxYov/E0dbfjo31I78pF4yVljqQB7bA== /rc-virtual-list/3.2.6_react-dom@17.0.1+react@17.0.1: dependencies: classnames: 2.2.6 rc-resize-observer: 1.0.0_react-dom@17.0.1+react@17.0.1 - rc-util: 5.8.0_react-dom@17.0.1+react@17.0.1 + rc-util: 5.8.1_react-dom@17.0.1+react@17.0.1 react: 17.0.1 react-dom: 17.0.1_react@17.0.1 dev: false @@ -10699,12 +10796,12 @@ integrity: sha512-8FiQLDzm3c/tMX0d62SQtKDhLH7zFlSI6pWBAPt+TUntEqd3Lz9zFAmpvTu8gkvUom/HCsDSZs4wfV4wDPWC0Q== /react-app-polyfill/2.0.0: dependencies: - core-js: 3.8.3 + core-js: 3.9.1 object-assign: 4.1.1 promise: 8.1.0 raf: 3.4.1 regenerator-runtime: 0.13.7 - whatwg-fetch: 3.5.0 + whatwg-fetch: 3.6.2 dev: true engines: node: '>=10' @@ -10724,7 +10821,7 @@ react-dom: ^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 resolution: integrity: sha512-G7cNq/n2Bkh/v4vcI+GKx7Q1xwZexKYhOSj2HmrFXlvNeaURWXun6KlOUpEQwi1cv9Tgs4H3kGywDWMrX2kxfA== - /react-dev-utils/11.0.2: + /react-dev-utils/11.0.3: dependencies: '@babel/code-frame': 7.10.4 address: 1.1.2 @@ -10739,10 +10836,10 @@ global-modules: 2.0.0 globby: 11.0.1 gzip-size: 5.1.1 - immer: 7.0.9 + immer: 8.0.1 is-root: 2.1.0 loader-utils: 2.0.0 - open: 7.4.1 + open: 7.4.2 pkg-up: 3.1.0 prompts: 2.4.0 react-error-overlay: 6.0.9 @@ -10754,7 +10851,7 @@ engines: node: '>=10' resolution: - integrity: sha512-xG7GlMoYkrgc2M1kDCHKRywXMDbFnjOB+/VzpytQyYBusEzR8NlGTMmUbvN86k94yyKu5XReHB8eZC2JZrNchQ== + integrity: sha512-4lEA5gF4OHrcJLMUV1t+4XbNDiJbsAWCH5Z2uqlTqW6dD7Cf5nEASkeXrCI/Mz83sI2o527oBIFKVMXtRf1Vtg== /react-dom/17.0.1_react@17.0.1: dependencies: loose-envify: 1.4.0 @@ -10770,18 +10867,27 @@ dev: true resolution: integrity: sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew== - /react-i18next/11.8.6_i18next@19.8.7+react@17.0.1: + /react-hotkeys/2.0.0_react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + prop-types: 15.7.2 + react: 17.0.1 + dev: false + peerDependencies: + react: '>= 0.14.0' + resolution: + integrity: sha512-3n3OU8vLX/pfcJrR3xJ1zlww6KS1kEJt0Whxc4FiGV+MJrQ1mYSYI3qS/11d2MJDFm8IhOXMTFQirfu6AVOF6Q== + /react-i18next/11.8.8_i18next@19.9.0+react@17.0.1: + dependencies: + '@babel/runtime': 7.13.8 html-parse-stringify2: 2.0.1 - i18next: 19.8.7 + i18next: 19.9.0 react: 17.0.1 dev: false peerDependencies: i18next: '>= 19.0.0' react: '>= 16.8.0' resolution: - integrity: sha512-Nr4Fq7BvzDLJQmaDyJRkPPINgMW1Y1qeT4STBoY/ePGmYlCZGShTYqqyBm0ly6M8dV1X0twt7M5dfmDzfi9yGQ== + integrity: sha512-Z8Daifh+FRpcQsCp48mWQViYSlojv0WiL2bf6e9DOzpfVMDaTT6qsYRbHCjLEeDeEioxoaWHMiWu2JPTW3Ni4w== /react-is/16.13.1: resolution: integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -10790,7 +10896,7 @@ integrity: sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA== /react-redux/7.2.2_380dc38591053d98779d1f25fc7202b9: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 hoist-non-react-statics: 3.3.2 loose-envify: 1.4.0 prop-types: 15.7.2 @@ -10825,7 +10931,7 @@ integrity: sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ== /react-router-dom/5.2.0_react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 history: 4.10.1 loose-envify: 1.4.0 prop-types: 15.7.2 @@ -10840,7 +10946,7 @@ integrity: sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA== /react-router/5.2.0_react@17.0.1: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 history: 4.10.1 hoist-non-react-statics: 3.3.2 loose-envify: 1.4.0 @@ -10856,14 +10962,14 @@ react: '>=15' resolution: integrity: sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw== - /react-scripts/4.0.2_react@17.0.1+typescript@4.1.5: + /react-scripts/4.0.3_react@17.0.1+typescript@4.1.5: dependencies: '@babel/core': 7.12.3 - '@pmmmwh/react-refresh-webpack-plugin': 0.4.3_d00fcc46a48175a4e289da7534b00e9a + '@pmmmwh/react-refresh-webpack-plugin': 0.4.3_9f0995138d24e525eb86c097d82409c0 '@svgr/webpack': 5.5.0 - '@typescript-eslint/eslint-plugin': 4.15.0_bc16c4564afe16e3219e549b81836acd - '@typescript-eslint/parser': 4.15.0_eslint@7.20.0+typescript@4.1.5 - babel-eslint: 10.1.0_eslint@7.20.0 + '@typescript-eslint/eslint-plugin': 4.15.2_82d802bc1360aa6114c0ff047240d01c + '@typescript-eslint/parser': 4.15.2_eslint@7.21.0+typescript@4.1.5 + babel-eslint: 10.1.0_eslint@7.21.0 babel-jest: 26.6.3_@babel+core@7.12.3 babel-loader: 8.1.0_427212bc1158d185e577033f19ca0757 babel-plugin-named-asset-import: 0.3.7_@babel+core@7.12.3 @@ -10874,16 +10980,16 @@ css-loader: 4.3.0_webpack@4.44.2 dotenv: 8.2.0 dotenv-expand: 5.1.0 - eslint: 7.20.0 - eslint-config-react-app: 6.0.0_ddc0ef906ac43542cb55db6faba1824c - eslint-plugin-flowtype: 5.2.0_eslint@7.20.0 - eslint-plugin-import: 2.22.1_eslint@7.20.0 - eslint-plugin-jest: 24.1.3_eslint@7.20.0+typescript@4.1.5 - eslint-plugin-jsx-a11y: 6.4.1_eslint@7.20.0 - eslint-plugin-react: 7.22.0_eslint@7.20.0 - eslint-plugin-react-hooks: 4.2.0_eslint@7.20.0 - eslint-plugin-testing-library: 3.10.1_eslint@7.20.0+typescript@4.1.5 - eslint-webpack-plugin: 2.5.1_eslint@7.20.0+webpack@4.44.2 + eslint: 7.21.0 + eslint-config-react-app: 6.0.0_4dcbf14bc95f25066c0a020f0b482e8c + eslint-plugin-flowtype: 5.3.1_eslint@7.21.0 + eslint-plugin-import: 2.22.1_eslint@7.21.0 + eslint-plugin-jest: 24.1.5_eslint@7.21.0+typescript@4.1.5 + eslint-plugin-jsx-a11y: 6.4.1_eslint@7.21.0 + eslint-plugin-react: 7.22.0_eslint@7.21.0 + eslint-plugin-react-hooks: 4.2.0_eslint@7.21.0 + eslint-plugin-testing-library: 3.10.1_eslint@7.21.0+typescript@4.1.5 + eslint-webpack-plugin: 2.5.2_eslint@7.21.0+webpack@4.44.2 file-loader: 6.1.1_webpack@4.44.2 fs-extra: 9.1.0 html-webpack-plugin: 4.5.0_webpack@4.44.2 @@ -10903,7 +11009,7 @@ prompts: 2.4.0 react: 17.0.1 react-app-polyfill: 2.0.0 - react-dev-utils: 11.0.2 + react-dev-utils: 11.0.3 react-refresh: 0.8.3 resolve: 1.18.1 resolve-url-loader: 3.1.2 @@ -10915,7 +11021,7 @@ typescript: 4.1.5 url-loader: 4.1.1_file-loader@6.1.1+webpack@4.44.2 webpack: 4.44.2 - webpack-dev-server: 3.11.0_webpack@4.44.2 + webpack-dev-server: 3.11.1_webpack@4.44.2 webpack-manifest-plugin: 2.2.0_webpack@4.44.2 workbox-webpack-plugin: 5.1.4_webpack@4.44.2 dev: true @@ -10931,7 +11037,7 @@ typescript: optional: true resolution: - integrity: sha512-okaWNaGDGtnXyM2CLMUl8gYZnAubgxEulC40FYjsxn5bbj+G/mDINdy24wHz4Vypb/LWtIe8rdBU78k/74v8Mw== + integrity: sha512-S5eO4vjUzUisvkIPB7jVsKtuH2HhWcASREYWHAQ1FP5HyCv3xgn+wpILAEWkmy+A+tTNbSZClhxjT3qz6g4L1A== /react-timeago/5.2.0_react@17.0.1: dependencies: react: 17.0.1 @@ -11092,7 +11198,7 @@ integrity: sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== /regenerator-transform/0.14.5: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 dev: true resolution: integrity: sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== @@ -11163,7 +11269,7 @@ css-select: 2.1.0 dom-converter: 0.2.0 htmlparser2: 3.10.1 - lodash: 4.17.20 + lodash: 4.17.21 strip-ansi: 3.0.1 dev: true resolution: @@ -11182,7 +11288,7 @@ integrity: sha1-jcrkcOHIirwtYA//Sndihtp15jc= /request-promise-core/1.1.4_request@2.88.2: dependencies: - lodash: 4.17.20 + lodash: 4.17.21 request: 2.88.2 dev: true engines: @@ -11219,7 +11325,7 @@ is-typedarray: 1.0.0 isstream: 0.1.2 json-stringify-safe: 5.0.1 - mime-types: 2.1.28 + mime-types: 2.1.29 oauth-sign: 0.9.0 performance-now: 2.1.0 qs: 6.5.2 @@ -11436,7 +11542,7 @@ /rollup/1.32.1: dependencies: '@types/estree': 0.0.46 - '@types/node': 12.20.0 + '@types/node': 14.14.31 acorn: 7.4.1 dev: true hasBin: true @@ -11573,12 +11679,12 @@ node: '>= 10.13.0' resolution: integrity: sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== - /scroll-into-view-if-needed/2.2.26: + /scroll-into-view-if-needed/2.2.27: dependencies: - compute-scroll-into-view: 1.0.16 + compute-scroll-into-view: 1.0.17 dev: false resolution: - integrity: sha512-SQ6AOKfABaSchokAmmaxVnL9IArxEnLEX9j4wAZw+x4iUTb40q7irtHG3z4GtAWz5veVZcCnubXDBRyLVQaohw== + integrity: sha512-BKiRstRm4u1bZvw+Wu9TxXhyMZ9fskb/9fbuSGuRzwHhlbKlDetL4dBdYaPfQbEFTttQmpkNtFH7sQpk4rZf9w== /select-hose/2.0.0: dev: true resolution: @@ -11658,7 +11764,7 @@ debug: 2.6.9 escape-html: 1.0.3 http-errors: 1.6.3 - mime-types: 2.1.28 + mime-types: 2.1.29 parseurl: 1.3.3 dev: true engines: @@ -11833,25 +11939,25 @@ node: '>=0.10.0' resolution: integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - /sockjs-client/1.4.0: + /sockjs-client/1.5.0: dependencies: debug: 3.2.7 eventsource: 1.0.7 faye-websocket: 0.11.3 inherits: 2.0.4 json3: 3.3.3 - url-parse: 1.4.7 + url-parse: 1.5.1 dev: true resolution: - integrity: sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== - /sockjs/0.3.20: + integrity: sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q== + /sockjs/0.3.21: dependencies: - faye-websocket: 0.10.0 + faye-websocket: 0.11.3 uuid: 3.4.0 - websocket-driver: 0.6.5 + websocket-driver: 0.7.4 dev: true resolution: - integrity: sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA== + integrity: sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== /sort-keys/1.1.2: dependencies: is-plain-obj: 1.1.0 @@ -12113,7 +12219,7 @@ node: '>=6' resolution: integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - /string-width/4.2.0: + /string-width/4.2.2: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 @@ -12122,31 +12228,31 @@ engines: node: '>=8' resolution: - integrity: sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== - /string.prototype.matchall/4.0.3: + integrity: sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== + /string.prototype.matchall/4.0.4: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 es-abstract: 1.18.0-next.2 - has-symbols: 1.0.1 + has-symbols: 1.0.2 internal-slot: 1.0.3 regexp.prototype.flags: 1.3.1 side-channel: 1.0.4 dev: true resolution: - integrity: sha512-OBxYDA2ifZQ2e13cP82dWFMaCV9CGF8GzmN4fljBVw5O5wep0lu4gacm1OL6MjROoUnB8VbkWRThqkV2YFLNxw== - /string.prototype.trimend/1.0.3: + integrity: sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ== + /string.prototype.trimend/1.0.4: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 resolution: - integrity: sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== - /string.prototype.trimstart/1.0.3: + integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== + /string.prototype.trimstart/1.0.4: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 resolution: - integrity: sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== + integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== /string_decoder/1.1.1: dependencies: safe-buffer: 5.1.2 @@ -12311,7 +12417,7 @@ csso: 4.2.0 js-yaml: 3.14.1 mkdirp: 0.5.5 - object.values: 1.1.2 + object.values: 1.1.3 sax: 1.2.4 stable: 0.1.8 unquote: 1.1.1 @@ -12333,10 +12439,10 @@ integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== /table/6.0.7: dependencies: - ajv: 7.1.0 - lodash: 4.17.20 + ajv: 7.1.1 + lodash: 4.17.21 slice-ansi: 4.0.0 - string-width: 4.2.0 + string-width: 4.2.2 dev: true engines: node: '>=10.0.0' @@ -12695,7 +12801,7 @@ /type-is/1.6.18: dependencies: media-typer: 0.3.0 - mime-types: 2.1.28 + mime-types: 2.1.29 dev: true engines: node: '>= 0.6' @@ -12705,10 +12811,10 @@ dev: true resolution: integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - /type/2.2.0: + /type/2.3.0: dev: true resolution: - integrity: sha512-M/u37b4oSGlusaU8ZB96BfFPWQ8MbsZYXB+kXGMiDj6IKinkcNaQvmirBuWj8mAXqP6LYn1rQvbTYum3yPhaOA== + integrity: sha512-rgPIqOdfK/4J9FhiVrZ3cveAjRRo5rsQBAIhnylX874y1DX/kEKSVdLsnuHB6l1KTjHyU01VjiMBHgU2adejyg== /typedarray-to-buffer/3.1.5: dependencies: is-typedarray: 1.0.0 @@ -12850,7 +12956,7 @@ dependencies: file-loader: 6.1.1_webpack@4.44.2 loader-utils: 2.0.0 - mime-types: 2.1.28 + mime-types: 2.1.29 schema-utils: 3.0.0 webpack: 4.44.2 dev: true @@ -12864,13 +12970,13 @@ optional: true resolution: integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== - /url-parse/1.4.7: + /url-parse/1.5.1: dependencies: querystringify: 2.2.0 requires-port: 1.0.0 dev: true resolution: - integrity: sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== + integrity: sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q== /url/0.11.0: dependencies: punycode: 1.3.2 @@ -12891,7 +12997,7 @@ /util.promisify/1.0.0: dependencies: define-properties: 1.1.3 - object.getownpropertydescriptors: 2.1.1 + object.getownpropertydescriptors: 2.1.2 dev: true resolution: integrity: sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== @@ -12899,8 +13005,8 @@ dependencies: define-properties: 1.1.3 es-abstract: 1.17.7 - has-symbols: 1.0.1 - object.getownpropertydescriptors: 2.1.1 + has-symbols: 1.0.2 + object.getownpropertydescriptors: 2.1.2 dev: true resolution: integrity: sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== @@ -13081,7 +13187,7 @@ /webpack-dev-middleware/3.7.3_webpack@4.44.2: dependencies: memory-fs: 0.4.1 - mime: 2.5.0 + mime: 2.5.2 mkdirp: 0.5.5 range-parser: 1.2.1 webpack: 4.44.2 @@ -13093,7 +13199,7 @@ webpack: ^4.0.0 || ^5.0.0 resolution: integrity: sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== - /webpack-dev-server/3.11.0_webpack@4.44.2: + /webpack-dev-server/3.11.1_webpack@4.44.2: dependencies: ansi-html: 0.0.7 bonjour: 3.5.0 @@ -13118,8 +13224,8 @@ selfsigned: 1.10.8 semver: 6.3.0 serve-index: 1.9.1 - sockjs: 0.3.20 - sockjs-client: 1.4.0 + sockjs: 0.3.21 + sockjs-client: 1.5.0 spdy: 4.0.2_supports-color@6.1.0 strip-ansi: 3.0.1 supports-color: 6.1.0 @@ -13140,7 +13246,7 @@ webpack-cli: optional: true resolution: - integrity: sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg== + integrity: sha512-u4R3mRzZkbxQVa+MBWi2uVpB5W59H3ekZAJsQlKUTdl7Elcah2EhygTPLmeFXybQkf9i2+L0kn7ik9SnXa6ihQ== /webpack-log/2.0.0: dependencies: ansi-colors: 3.2.4 @@ -13153,7 +13259,7 @@ /webpack-manifest-plugin/2.2.0_webpack@4.44.2: dependencies: fs-extra: 7.0.1 - lodash: 4.17.20 + lodash: 4.17.21 object.entries: 1.1.3 tapable: 1.1.3 webpack: 4.44.2 @@ -13166,7 +13272,7 @@ integrity: sha512-9S6YyKKKh/Oz/eryM1RyLVDVmy3NSPV0JXMRhZ18fJsq+AwGxUY34X54VNwkzYcEmEkDwNxuEOboCZEebJXBAQ== /webpack-merge/4.2.2: dependencies: - lodash: 4.17.20 + lodash: 4.17.21 dev: true resolution: integrity: sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== @@ -13244,14 +13350,6 @@ node: '>=6' resolution: integrity: sha512-ePV26D/D37ughXU9j+DjGmwUbelWJrC/vi+6GK++fRlBJmS7aU9T8ABu47KFF0O7r6XN2NAuqJRpegbUwXZxQg== - /websocket-driver/0.6.5: - dependencies: - websocket-extensions: 0.1.4 - dev: true - engines: - node: '>=0.6.0' - resolution: - integrity: sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY= /websocket-driver/0.7.4: dependencies: http-parser-js: 0.5.3 @@ -13274,10 +13372,10 @@ dev: true resolution: integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - /whatwg-fetch/3.5.0: + /whatwg-fetch/3.6.2: dev: true resolution: - integrity: sha512-jXkLtsR42xhXg7akoDKvKWE40eJeI+2KZqcp2h3NsOrRnDvtWX36KcKl30dy+hxECivdk2BVUHVNrPtoMBUx6A== + integrity: sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== /whatwg-mimetype/2.3.0: dev: true resolution: @@ -13333,18 +13431,18 @@ /workbox-build/5.1.4: dependencies: '@babel/core': 7.12.3 - '@babel/preset-env': 7.12.16_@babel+core@7.12.3 - '@babel/runtime': 7.12.13 + '@babel/preset-env': 7.13.8_@babel+core@7.12.3 + '@babel/runtime': 7.13.8 '@hapi/joi': 15.1.1 '@rollup/plugin-node-resolve': 7.1.3_rollup@1.32.1 - '@rollup/plugin-replace': 2.3.4_rollup@1.32.1 + '@rollup/plugin-replace': 2.4.1_rollup@1.32.1 '@surma/rollup-plugin-off-main-thread': 1.4.2 common-tags: 1.8.0 fast-json-stable-stringify: 2.1.0 fs-extra: 8.1.0 glob: 7.1.6 lodash.template: 4.5.0 - pretty-bytes: 5.5.0 + pretty-bytes: 5.6.0 rollup: 1.32.1 rollup-plugin-babel: 4.4.0_@babel+core@7.12.3+rollup@1.32.1 rollup-plugin-terser: 5.3.1_rollup@1.32.1 @@ -13442,7 +13540,7 @@ integrity: sha512-9xKnKw95aXwSNc8kk8gki4HU0g0W6KXu+xks7wFuC7h0sembFnTrKtckqZxbSod41TDaGh+gWUA5IRXrL0ECRA== /workbox-webpack-plugin/5.1.4_webpack@4.44.2: dependencies: - '@babel/runtime': 7.12.13 + '@babel/runtime': 7.13.8 fast-json-stable-stringify: 2.1.0 source-map-url: 0.4.1 upath: 1.2.0 @@ -13491,7 +13589,7 @@ /wrap-ansi/6.2.0: dependencies: ansi-styles: 4.3.0 - string-width: 4.2.0 + string-width: 4.2.2 strip-ansi: 6.0.0 dev: true engines: @@ -13501,7 +13599,7 @@ /wrap-ansi/7.0.0: dependencies: ansi-styles: 4.3.0 - string-width: 4.2.0 + string-width: 4.2.2 strip-ansi: 6.0.0 dev: true engines: @@ -13612,7 +13710,7 @@ require-directory: 2.1.1 require-main-filename: 2.0.0 set-blocking: 2.0.0 - string-width: 4.2.0 + string-width: 4.2.2 which-module: 2.0.0 y18n: 4.0.1 yargs-parser: 18.1.3 @@ -13632,55 +13730,54 @@ '@craco/craco': ^6.1.1 '@testing-library/jest-dom': ^5.11.9 '@testing-library/react': ^11.2.5 - '@testing-library/user-event': ^12.7.1 + '@testing-library/user-event': ^12.8.0 '@types/classnames': ^2.2.11 '@types/debug': ^4.1.5 '@types/file-saver': ^2.0.1 '@types/jest': ^26.0.20 '@types/lodash-es': ^4.17.4 '@types/lru-cache': ^5.1.0 - '@types/node': ^12.19.16 - '@types/react': ^17.0.1 - '@types/react-dom': ^17.0.0 + '@types/node': ^14.14.31 + '@types/react': ^17.0.2 + '@types/react-dom': ^17.0.1 '@types/react-redux': ^7.1.16 '@types/react-router-dom': ^5.1.7 '@types/react-timeago': ^4.1.2 '@types/semver': ^7.3.4 '@types/uuid': ^8.3.0 '@types/webpack-env': ^1.16.0 - '@typescript-eslint/eslint-plugin': ^4.15.0 - '@typescript-eslint/parser': ^4.15.0 - antd: ^4.12.3 + '@typescript-eslint/eslint-plugin': 4.15.3-alpha.17 + '@typescript-eslint/parser': 4.15.3-alpha.17 + antd: ^4.13.0 antd-dayjs-webpack-plugin: ^1.0.6 - async-mutex: ^0.3.0 + async-mutex: ^0.3.1 babel-plugin-lodash: ^3.3.4 base64-arraybuffer: ^0.2.0 chart.js: ^2.9.4 classnames: ^2.2.6 craco-less: ^1.17.1 - csv-stringify: ^5.6.1 + csv-stringify: ^5.6.2 dayjs: ^1.10.4 debug: ^4.3.1 - eslint: ^7.20.0 - eslint-config-prettier: ^7.2.0 + eslint: ^7.21.0 eslint-plugin-react: ^7.22.0 eslint-plugin-react-hooks: ^4.2.0 eslint-plugin-tsdoc: ^0.2.11 file-saver: ^2.0.5 - i18next: ^19.7.0 + i18next: ^19.9.0 i18next-browser-languagedetector: ^6.0.1 - i18next-http-backend: ^1.0.20 + i18next-http-backend: ^1.1.1 lodash-es: ^4.17.21 lru-cache: ^6.0.0 - prettier: ^2.2.1 react: ^17.0.1 react-chartjs-2: ^2.11.1 react-dom: ^17.0.1 - react-i18next: ^11.8.6 + react-hotkeys: ^2.0.0 + react-i18next: ^11.8.8 react-redux: ^7.2.2 react-refresh: ^0.9.0 react-router-dom: ^5.2.0 - react-scripts: 4.0.2 + react-scripts: ^4.0.3 react-timeago: ^5.2.0 react-world-flags: ^1.4.0 redux: ^4.0.5 @@ -13689,7 +13786,7 @@ semver: ^7.3.4 spu-md5: 0.0.4 typesafe-actions: ^5.1.0 - typescript: ^4.1.5 + typescript: 4.1.5 utility-types: ^3.10.0 uuid: ^8.3.2 web-vitals: ^1.1.0 diff --git a/public/locales/en.json b/public/locales/en.json index 88b3f79..c4d1284 100644 --- a/public/locales/en.json +++ b/public/locales/en.json @@ -12,6 +12,7 @@ "search": { "placeholder": "Search the Krist network", + "placeholderShortcut": "Search the Krist network ({{shortcut}})", "rateLimitHit": "Please slow down.", "noResults": "No results.", @@ -327,5 +328,30 @@ }, "rateLimitTitle": "Rate limit hit", - "rateLimitDescription": "Too many requests were sent to the Krist server in a short period of time. This is probably caused by a bug!" + "rateLimitDescription": "Too many requests were sent to the Krist server in a short period of time. This is probably caused by a bug!", + + "address": { + "title": "Address", + "balance": "Current balance", + "names": "Names", + "nameCount": "{{count, number}} name", + "nameCount_plural": "{{count, number}} names", + "firstSeen": "First seen", + + "buttonSendKrist": "Send Krist to {{address}}", + "buttonTransferKrist": "Transfer Krist to {{address}}", + "buttonAddFriend": "Add to address book", + "buttonEditFriend": "Edit in address book", + "buttonEditWallet": "Edit wallet", + + "cardRecentTransactionsTitle": "Recent transactions", + "cardNamesTitle": "Names", + + "resultInvalidTitle": "Invalid address", + "resultInvalid": "That does not look like a valid Krist address.", + "resultNotFoundTitle": "Address not found", + "resultNotFound": "That address does not exist.", + "resultUnknownTitle": "Unknown error", + "resultUnknown": "See console for details." + } } diff --git a/src/App.tsx b/src/App.tsx index 8f41e80..ca7d842 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -4,52 +4,35 @@ import React, { Suspense } from "react"; import { BrowserRouter as Router } from "react-router-dom"; -import { createStore } from "redux"; import { Provider } from "react-redux"; -import { devToolsEnhancer } from "redux-devtools-extension"; -import rootReducer from "./store/reducers/RootReducer"; +import { initStore } from "./store/init"; -import { getInitialWalletManagerState } from "./store/reducers/WalletManagerReducer"; -import { getInitialWalletsState } from "./store/reducers/WalletsReducer"; -import { getInitialSettingsState } from "./store/reducers/SettingsReducer"; -import { getInitialNodeState } from "./store/reducers/NodeReducer"; +import { HotKeys } from "react-hotkeys"; +import { keyMap } from "./global/AppHotkeys"; // Set up localisation import "./utils/i18n"; +// FIXME: Apparently the import order of my CSS is important. Who knew! import "./App.less"; -import { SyncWallets } from "./components/wallets/SyncWallets"; -import { ForcedAuth } from "./components/auth/ForcedAuth"; -import { WebsocketService } from "./components/ws/WebsocketService"; -import { SyncWork } from "./components/ws/SyncWork"; -import { SyncMOTD } from "./components/ws/SyncMOTD"; -import { CheckStatus } from "./pages/CheckStatus"; -export const store = createStore( - rootReducer, - { - walletManager: getInitialWalletManagerState(), - wallets: getInitialWalletsState(), - settings: getInitialSettingsState(), - node: getInitialNodeState() - }, - devToolsEnhancer({}) -); +import { CheckStatus } from "./pages/CheckStatus"; +import { AppServices } from "./global/AppServices"; + +export const store = initStore(); export type AppDispatch = typeof store.dispatch; function App(): JSX.Element { return {/* TODO */} - - + + + - {/* Services, etc. */} - - - - - - + {/* Services, etc. */} + + + ; } diff --git a/src/components/KristValue.tsx b/src/components/KristValue.tsx index 763b45b..bce8348 100644 --- a/src/components/KristValue.tsx +++ b/src/components/KristValue.tsx @@ -17,7 +17,7 @@ hideNullish?: boolean; green?: boolean; highlightZero?: boolean; -}; +} type Props = React.HTMLProps & OwnProps; export const KristValue = ({ value, long, hideNullish, green, highlightZero, ...props }: Props): JSX.Element | null => { diff --git a/src/components/SmallResult.tsx b/src/components/SmallResult.tsx index f26ea36..2247891 100644 --- a/src/components/SmallResult.tsx +++ b/src/components/SmallResult.tsx @@ -6,6 +6,7 @@ * images that we don't even use */ import React from "react"; +import classNames from "classnames"; import CheckCircleFilled from "@ant-design/icons/CheckCircleFilled"; import CloseCircleFilled from "@ant-design/icons/CloseCircleFilled"; @@ -28,6 +29,7 @@ extra?: React.ReactNode; className?: string; style?: React.CSSProperties; + fullPage?: boolean; } /** @@ -50,9 +52,14 @@ status = "info", icon, extra, + fullPage, }) => { + const classes = classNames("ant-result", "ant-result-" + status, customizeClassName, { + "full-page-result": fullPage + }); + return ( -
+
{renderIcon({ status, icon })}
{title}
{subTitle &&
{subTitle}
} diff --git a/src/components/Statistic.less b/src/components/Statistic.less new file mode 100644 index 0000000..d34cbff --- /dev/null +++ b/src/components/Statistic.less @@ -0,0 +1,15 @@ +// Copyright (c) 2020-2021 Drew Lemmy +// This file is part of KristWeb 2 under GPL-3.0. +// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt +@import (reference) "../App.less"; + +.kw-statistic { + &-title { + color: @kw-text-secondary; + display: block; + } + + &-value { + font-size: @heading-3-size; + } +} diff --git a/src/components/Statistic.tsx b/src/components/Statistic.tsx new file mode 100644 index 0000000..8596ebb --- /dev/null +++ b/src/components/Statistic.tsx @@ -0,0 +1,23 @@ +// Copyright (c) 2020-2021 Drew Lemmy +// This file is part of KristWeb 2 under GPL-3.0. +// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt +import React from "react"; + +import { useTranslation } from "react-i18next"; + +import "./Statistic.less"; + +interface Props { + title?: string; + titleKey?: string; + value?: React.ReactNode; +} + +export function Statistic({ title, titleKey, value }: Props): JSX.Element { + const { t } = useTranslation(); + + return
+ {titleKey ? t(titleKey) : title} + {value} +
; +} diff --git a/src/components/wallets/SelectWalletCategory.tsx b/src/components/wallets/SelectWalletCategory.tsx index 76d9a6e..fa82d1f 100644 --- a/src/components/wallets/SelectWalletCategory.tsx +++ b/src/components/wallets/SelectWalletCategory.tsx @@ -42,8 +42,8 @@ setCategories(newCategories); setInput(undefined); - // TODO: fix bug where hitting enter will _sometimes_ not set the right - // category name on the form + // FIXME: hitting enter will _sometimes_ not set the right category name on + // the form if (onNewCategory) onNewCategory(categoryName); } diff --git a/src/components/ws/SyncMOTD.tsx b/src/components/ws/SyncMOTD.tsx index 761d532..d8bcb73 100644 --- a/src/components/ws/SyncMOTD.tsx +++ b/src/components/ws/SyncMOTD.tsx @@ -28,7 +28,7 @@ /** Sync the MOTD with the Krist node on startup. */ export function SyncMOTD(): JSX.Element | null { - const syncNode = useSelector((s: RootState) => s.node.syncNode); + const syncNode = api.useSyncNode(); const connectionState = useSelector((s: RootState) => s.websocket.connectionState); // All these are used to determine if we need to recalculate the addresses diff --git a/src/components/ws/WebsocketService.tsx b/src/components/ws/WebsocketService.tsx index ff5eef1..9405e6e 100644 --- a/src/components/ws/WebsocketService.tsx +++ b/src/components/ws/WebsocketService.tsx @@ -227,7 +227,7 @@ export function WebsocketService(): JSX.Element | null { const { wallets } = useSelector((s: RootState) => s.wallets, shallowEqual); - const syncNode = useSelector((s: RootState) => s.node.syncNode); + const syncNode = api.useSyncNode(); const [connection, setConnection] = useState(); diff --git a/src/global/AppHotkeys.tsx b/src/global/AppHotkeys.tsx new file mode 100644 index 0000000..39547a5 --- /dev/null +++ b/src/global/AppHotkeys.tsx @@ -0,0 +1,4 @@ +// Copyright (c) 2020-2021 Drew Lemmy +// This file is part of KristWeb 2 under GPL-3.0. +// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt +export const keyMap = {}; diff --git a/src/global/AppRouter.tsx b/src/global/AppRouter.tsx new file mode 100644 index 0000000..a173c64 --- /dev/null +++ b/src/global/AppRouter.tsx @@ -0,0 +1,46 @@ +// Copyright (c) 2020-2021 Drew Lemmy +// This file is part of KristWeb 2 under GPL-3.0. +// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt +import React from "react"; +import { Switch, Route } from "react-router-dom"; + +import { DashboardPage } from "../pages/dashboard/DashboardPage"; +import { WalletsPage } from "../pages/wallets/WalletsPage"; + +import { AddressPage } from "../pages/addresses/AddressPage"; + +import { SettingsPage } from "../pages/settings/SettingsPage"; +import { SettingsTranslations } from "../pages/settings/SettingsTranslations"; + +import { CreditsPage } from "../pages/credits/CreditsPage"; + +import { NotFoundPage } from "../pages/NotFoundPage"; + +interface AppRoute { + path: string; + name: string; + component?: React.ReactNode; +} + +export const APP_ROUTES: AppRoute[] = [ + { path: "/", name: "dashboard", component: }, + { path: "/wallets", name: "wallets", component: }, + + { path: "/network/addresses/:address", name: "address", component: }, + + { path: "/settings", name: "settings", component: }, + { path: "/settings/debug", name: "settingsDebug" }, + { path: "/settings/debug/translations", name: "settings", component: }, + + { path: "/credits", name: "credits", component: }, +]; + +export function AppRouter(): JSX.Element { + return + {APP_ROUTES.map(({ path, component }, key) => ( + component && {component} + ))} + + + ; +} diff --git a/src/global/AppServices.tsx b/src/global/AppServices.tsx new file mode 100644 index 0000000..7b52a52 --- /dev/null +++ b/src/global/AppServices.tsx @@ -0,0 +1,18 @@ +// Copyright (c) 2020-2021 Drew Lemmy +// This file is part of KristWeb 2 under GPL-3.0. +// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt +import { SyncWallets } from "../components/wallets/SyncWallets"; +import { ForcedAuth } from "../components/auth/ForcedAuth"; +import { WebsocketService } from "../components/ws/WebsocketService"; +import { SyncWork } from "../components/ws/SyncWork"; +import { SyncMOTD } from "../components/ws/SyncMOTD"; + +export function AppServices(): JSX.Element { + return <> + + + + + + ; +} diff --git a/src/krist/api/index.ts b/src/krist/api/index.ts index 87dc5f1..956417b 100644 --- a/src/krist/api/index.ts +++ b/src/krist/api/index.ts @@ -4,6 +4,8 @@ import { notification } from "antd"; import i18n from "../../utils/i18n"; +import { useSelector } from "react-redux"; +import { RootState } from "../../store"; import { store } from "../../App"; import { APIResponse } from "./types"; @@ -58,3 +60,7 @@ request("GET", endpoint, options); export const post = (endpoint: string, options?: RequestOptions): Promise> => request("POST", endpoint, options); + +/** Re-usable syncNode hook, usually for refreshing things when the syncNode + * changes. */ +export const useSyncNode = (): string => useSelector((s: RootState) => s.node.syncNode); diff --git a/src/krist/api/lookup.ts b/src/krist/api/lookup.ts index 58fe729..c006236 100644 --- a/src/krist/api/lookup.ts +++ b/src/krist/api/lookup.ts @@ -32,6 +32,20 @@ return {}; } +/** Uses the lookup API to retrieve a single address. */ +export async function lookupAddress(address: string, fetchNames?: boolean): Promise { + const data = await api.get( + "lookup/addresses/" + + encodeURIComponent(address) + + (fetchNames ? "?fetchNames" : "") + ); + + const kristAddress = data.addresses[address]; + if (!kristAddress) throw new api.APIError("address_not_found"); + + return kristAddress; +} + interface LookupTransactionsOptions { includeMined?: boolean; limit?: number; diff --git a/src/layout/AppLayout.less b/src/layout/AppLayout.less index d737903..65ff30b 100644 --- a/src/layout/AppLayout.less +++ b/src/layout/AppLayout.less @@ -316,6 +316,8 @@ } .site-layout { + min-height: calc(100vh - @layout-header-height); + margin-left: @kw-sidebar-width; &.site-layout-mobile { diff --git a/src/layout/AppLayout.tsx b/src/layout/AppLayout.tsx index 7a77da5..09d8b57 100644 --- a/src/layout/AppLayout.tsx +++ b/src/layout/AppLayout.tsx @@ -6,7 +6,7 @@ import { AppHeader } from "./nav/AppHeader"; import { Sidebar } from "./sidebar/Sidebar"; -import { AppRouter } from "./AppRouter"; +import { AppRouter } from "../global/AppRouter"; import "./AppLayout.less"; diff --git a/src/layout/AppRouter.tsx b/src/layout/AppRouter.tsx deleted file mode 100644 index 3bf16ed..0000000 --- a/src/layout/AppRouter.tsx +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright (c) 2020-2021 Drew Lemmy -// This file is part of KristWeb 2 under GPL-3.0. -// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt -import React from "react"; -import { Switch, Route } from "react-router-dom"; - -import { DashboardPage } from "../pages/dashboard/DashboardPage"; -import { WalletsPage } from "../pages/wallets/WalletsPage"; - -import { SettingsPage } from "../pages/settings/SettingsPage"; -import { SettingsTranslations } from "../pages/settings/SettingsTranslations"; - -import { CreditsPage } from "../pages/credits/CreditsPage"; - -import { NotFoundPage } from "../pages/NotFoundPage"; - -interface AppRoute { - path: string; - name: string; - component?: React.ReactNode; -} - -export const APP_ROUTES: AppRoute[] = [ - { path: "/", name: "dashboard", component: }, - { path: "/wallets", name: "wallets", component: }, - - { path: "/settings", name: "settings", component: }, - { path: "/settings/debug", name: "settingsDebug" }, - { path: "/settings/debug/translations", name: "settings", component: }, - - { path: "/credits", name: "credits", component: }, -]; - -export function AppRouter(): JSX.Element { - return - {APP_ROUTES.map(({ path, component }, key) => ( - component && {component} - ))} - - - ; -} diff --git a/src/layout/PageLayout.less b/src/layout/PageLayout.less index c673197..a659af1 100644 --- a/src/layout/PageLayout.less +++ b/src/layout/PageLayout.less @@ -4,11 +4,17 @@ @import (reference) "../App.less"; .page-layout { + height: 100%; + .page-layout-header.ant-page-header { + height: @kw-page-header-height; + padding-bottom: 0; } .page-layout-contents { + height: calc(100% - @kw-page-header-height); + padding: @padding-lg; } } diff --git a/src/layout/nav/Search.tsx b/src/layout/nav/Search.tsx index fb2b1e6..b320223 100644 --- a/src/layout/nav/Search.tsx +++ b/src/layout/nav/Search.tsx @@ -1,10 +1,15 @@ // Copyright (c) 2020-2021 Drew Lemmy // This file is part of KristWeb 2 under GPL-3.0. // Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt -import React, { useState, useMemo, useRef, MutableRefObject, Dispatch, SetStateAction, ReactNode } from "react"; +import React, { useState, useMemo, useRef, useEffect, useCallback, MutableRefObject, Dispatch, SetStateAction, ReactNode } from "react"; import { AutoComplete, Input } from "antd"; +import { RefSelectProps } from "antd/lib/select"; import { useTranslation } from "react-i18next"; +import { useHistory } from "react-router-dom"; + +import { GlobalHotKeys } from "react-hotkeys"; +import { ctrl } from "../../utils"; import { RateLimitError } from "../../krist/api"; import { SearchResult, search, searchExtended, SearchExtendedResult } from "../../krist/api/search"; @@ -21,6 +26,8 @@ async function performAutocomplete( query: string, + fetchResults: boolean, + fetchExtended: boolean, waitingForRef: MutableRefObject, setResults: (query: string, results: SearchResult | undefined) => void, setExtendedResults: (query: string, results: SearchExtendedResult | undefined) => void, @@ -34,8 +41,8 @@ try { await Promise.all([ - search(query).then(r => setResults(query, r)), - searchExtended(query).then(r => setExtendedResults(query, r)), + fetchResults ? search(query).then(r => setResults(query, r)) : undefined, + fetchExtended ? searchExtended(query).then(r => setExtendedResults(query, r)) : undefined, ]); } catch (err) { // Most likely error is `rate_limit_hit`: @@ -46,31 +53,37 @@ export function Search(): JSX.Element { const { t } = useTranslation(); + const history = useHistory(); const [value, setValue] = useState(""); const [results, setResults] = useState(); const [extendedResults, setExtendedResults] = useState(); const [loading, setLoading] = useState(false); const [rateLimitHit, setRateLimitHit] = useState(false); + const [options, setOptions] = useState<{ value: string; label: ReactNode }[]>([]); // The latest input that we're waiting for a network request for; this avoids // out of order search results due to network latency const waitingForRef = useRef(""); + // Used to focus the search when the hotkey is received, or de-focus it when + // a search result is selected + const autocompleteRef = useRef(null); + const debouncedAutocomplete = useMemo(() => debounce(performAutocomplete, SEARCH_THROTTLE), []); const throttledAutocomplete = useMemo(() => throttle(performAutocomplete, SEARCH_THROTTLE), []); // LRU cache used to keep track of known search results. This avoids // re-fetching search results when the user hits backspaces several times. - // The cache is cleared each time the search is focused to keep the results - // fresh. - const searchCache = useMemo(() => new LRU({ max: 100, maxAge : 300000 }), []); - const searchExtendedCache = useMemo(() => new LRU({ max: 100, maxAge : 300000 }), []); + const searchCache = useMemo(() => new LRU({ max: 100, maxAge : 180000 }), []); + const searchExtendedCache = useMemo(() => new LRU({ max: 100, maxAge : 180000 }), []); // Create a function to set the results for a given result type const cachedSetResultsBase = (cache: LRU, setResultsFn: Dispatch>) => (query: string, results: T | undefined) => { + debug("setting results for %s", query, results); + // Cowardly refuse to perform any search if the rate limit was hit if (!results || rateLimitHit) return setResultsFn(undefined); @@ -104,7 +117,7 @@ } function onSearch(query: string) { - debug("query: %s", query); + debug("onSearch: %s", query); // Cowardly refuse to perform any search if the rate limit was hit if (rateLimitHit) return; @@ -120,7 +133,7 @@ const cached = searchCache.get(cleanQuery); const cachedExtended = searchExtendedCache.get(cleanQuery); if (cached || cachedExtended) { - debug("using cached result for %s", query); + debug("using cached result for %s (results: %b) (extended: %b)", query, !cached, !cachedExtended, cached, cachedExtended); // Ensure that an out of order request doesn't overwrite our cached result waitingForRef.current = query; @@ -133,34 +146,113 @@ if (cachedExtended) setExtendedResults(cachedExtended); setLoading(false); - return; } - setLoading(true); + // If we're missing one or both of the cached result sets, fetch them + if (!cached || !cachedExtended) { + debug("nothing cached for %s, (results: %b) (extended: %b), considering a fetch", query, !cached, !cachedExtended); - // Based on this article: - // https://www.peterbe.com/plog/how-to-throttle-and-debounce-an-autocomplete-input-in-react - // Eagerly use `throttle` for short inputs, and patiently use `debounce` for - // longer inputs. - const fn = cleanQuery.length < 5 ? throttledAutocomplete : debouncedAutocomplete; - fn(cleanQuery, waitingForRef, cachedSetResults, cachedSetExtendedResults, onRateLimitHit); + setLoading(true); + + // Based on this article: + // https://www.peterbe.com/plog/how-to-throttle-and-debounce-an-autocomplete-input-in-react + // Eagerly use `throttle` for short inputs, and patiently use `debounce` + // for longer inputs. + const fn = cleanQuery.length < 5 + ? throttledAutocomplete + : debouncedAutocomplete; + + fn( + cleanQuery, + !cached, !cachedExtended, + waitingForRef, + cachedSetResults, cachedSetExtendedResults, + onRateLimitHit + ); + } } - const staticResult = (value: string, label: ReactNode) => [{ value, label }]; + /** Navigate to the selected search result. */ + function onSelect(query: string) { + debug("onSelect %s", query); - function renderResults(): { value: string; label: ReactNode }[] { + // Reset the search value when a result is selected. This is because, + // otherwise, the internal value (e.g. `exactAddress`) would remain in + // there, which would look pretty odd. + // REVIEW: Would be nice to avoid having to do it this way entirely. + setValue(""); + + // If we're still loading the results, don't search just yet. + // TODO: is it possible to defer this instead? + if (loading || !results) return; + + const resultsMatches = results.matches; + const { exactAddress, exactName, exactBlock, exactTransaction } = resultsMatches; + + debug("search selected value %s", query); + + // Whether or not we actually matched a value. This should pretty much + // always be true. + let matched = true; + + // Using the internal result type, navigate to the relevant page. + // FIXME: this is kinda wack + if (query === "exactAddress" && exactAddress) { + history.push(`/network/addresses/${encodeURIComponent(exactAddress.address)}`); + } else if (query === "exactName" && exactName) { + history.push(`/network/names/${encodeURIComponent(exactName.name)}`); + } else if (query === "exactBlock" && exactBlock) { + history.push(`/network/blocks/${encodeURIComponent(exactBlock.height)}`); + } else if (query === "exactTransaction" && exactTransaction) { + history.push(`/network/transactions/${encodeURIComponent(exactTransaction.id)}`); + } else if (extendedResults) { + if (query === "extendedTransactionsAddress") { + // TODO + } else if (query === "extendedTransactionsName") { + // TODO + } else if (query === "extendedTransactionsMetadata") { + // TODO + } else { + matched = false; + debug("warn: unknown search type %s", query); + } + } else { + matched = false; + debug("warn: unknown search type %s", query); + } + + // De-focus the search textbox when an item is selected. + if (matched && autocompleteRef.current) + autocompleteRef.current.blur(); + } + + // When the 'enter' key is pressed while an autocomplete option isn't focused, + // or the user clicks the 'search' button, the autocomplete has no way of + // knowing which option to search with. So, we look at the first option in the + // list and send that to onSelect. + function onInputSearch() { + // If we're still loading the results, don't search just yet. + // TODO: is it possible to defer this instead? + if (loading || !results) return; + + if (!options || !options.length) return; + onSelect(options[0].value); + } + + const staticOption = (value: string, label: ReactNode) => [{ value, label }]; + const renderOptions = useCallback(function(): { value: string; label: ReactNode }[] { const cleanQuery = value.trim(); - debug("current state: %b %b %b %b", rateLimitHit, !cleanQuery, loading, results); + // debug("current state: %b %b %b %b", rateLimitHit, !cleanQuery, loading, results); // Show a warning instead of the results if the rate limit was hit - if (rateLimitHit) return staticResult("rateLimitHit", ); + if (rateLimitHit) return staticOption("rateLimitHit", ); // Don't return anything if there's no query at all if (!cleanQuery) return []; if (!results) { // Loading spinner, only if we don't already have some results - if (loading) return staticResult("loading", ); - else return staticResult("noResults", ); + if (loading) return staticOption("loading", ); + else return staticOption("noResults", ); } const resultsMatches = results.matches; @@ -173,19 +265,19 @@ const { exactAddress, exactName, exactBlock, exactTransaction } = resultsMatches; if (exactAddress) options.push({ - value: "address-" + exactAddress.address, + value: "exactAddress", label: }); if (exactName) options.push({ - value: "name-" + exactName.name, + value: "exactName", label: }); if (exactBlock) options.push({ - value: "block-" + exactBlock.height, + value: "exactBlock", label: }); if (exactTransaction) options.push({ - value: "transaction-" + exactTransaction.id, + value: "exactTransaction", label: }); @@ -210,7 +302,7 @@ && exactName; // We definitely know the name exists if (showAddress) options.push({ - value: "transactions-address-" + value, + value: "extendedTransactionsAddress", label: { + setOptions(renderOptions()); + }, [renderOptions]); return
+ { + console.log(e); + e?.preventDefault(); + autocompleteRef.current?.focus(); + } + }} + /> + true} onChange={value => { + // debug("search onChange %s", value); setLoading(true); setValue(value); }} onSearch={onSearch} - onFocus={() => { + onSelect={onSelect} + + // NOTE: This was removed and the LRU expiry time was lowered; a definite + // decision on whether or not the cache should be cleared every time + // the search is opened hasn't been reached, but at the moment it + // seems to be better to just keep the cached entries around, as + // speed and lack of network spam is better than accuracy of the + // result hints. Besides, pressing enter will always take you to the + // up-to-date data anyway. + /* onFocus={() => { debug("clearing search cache"); searchCache.reset(); - }} + }} */ - options={renderResults()} + options={options} > - +
; } diff --git a/src/layout/sidebar/Sidebar.tsx b/src/layout/sidebar/Sidebar.tsx index 4a9c00f..1a66859 100644 --- a/src/layout/sidebar/Sidebar.tsx +++ b/src/layout/sidebar/Sidebar.tsx @@ -23,17 +23,17 @@ group?: "network"; } const sidebarItems: SidebarItemProps[] = [ - { icon: , name: "dashboard", to: "/" }, - { icon: , name: "myWallets", to: "/wallets" }, - { icon: , name: "addressBook", to: "/friends", nyi: true }, - { icon: , name: "transactions", to: "/me/transactions", nyi: true }, - { icon: , name: "names", to: "/me/names", nyi: true }, - { icon: , name: "mining", to: "/mining", nyi: true }, + { icon: , name: "dashboard", to: "/" }, + { icon: , name: "myWallets", to: "/wallets" }, + { icon: , name: "addressBook", to: "/friends", nyi: true }, + { icon: , name: "transactions", to: "/me/transactions", nyi: true }, + { icon: , name: "names", to: "/me/names", nyi: true }, + { icon: , name: "mining", to: "/mining", nyi: true }, - { group: "network", icon: , name: "blocks", to: "/network/blocks", nyi: true }, - { group: "network", icon: , name: "transactions", to: "/network/transactions", nyi: true }, - { group: "network", icon: , name: "names", to: "/network/names", nyi: true }, - { group: "network", icon: , name: "statistics", to: "/network/statistics", nyi: true }, + { group: "network", icon: , name: "blocks", to: "/network/blocks", nyi: true }, + { group: "network", icon: , name: "transactions", to: "/network/transactions", nyi: true }, + { group: "network", icon: , name: "names", to: "/network/names", nyi: true }, + { group: "network", icon: , name: "statistics", to: "/network/statistics", nyi: true }, ]; function getSidebarItems(t: TFunction, group?: string) { diff --git a/src/pages/NotFoundPage.less b/src/pages/NotFoundPage.less deleted file mode 100644 index 544062e..0000000 --- a/src/pages/NotFoundPage.less +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) 2020-2021 Drew Lemmy -// This file is part of KristWeb 2 under GPL-3.0. -// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt -@import (reference) "../App.less"; - -.page-not-found { - display: flex; - align-items: center; - justify-content: center; - - height: calc(100vh - @layout-header-height); -} diff --git a/src/pages/NotFoundPage.tsx b/src/pages/NotFoundPage.tsx index a73f95b..d07066f 100644 --- a/src/pages/NotFoundPage.tsx +++ b/src/pages/NotFoundPage.tsx @@ -10,22 +10,19 @@ import { SmallResult } from "../components/SmallResult"; -import "./NotFoundPage.less"; - export function NotFoundPage(): JSX.Element { const { t } = useTranslation(); const history = useHistory(); - return
- } - status="error" - title={t("pageNotFound.resultTitle")} - extra={( - - )} - /> -
; + return } + status="error" + title={t("pageNotFound.resultTitle")} + extra={( + + )} + fullPage + />; } diff --git a/src/pages/addresses/AddressPage.less b/src/pages/addresses/AddressPage.less new file mode 100644 index 0000000..51af0a0 --- /dev/null +++ b/src/pages/addresses/AddressPage.less @@ -0,0 +1,30 @@ +// Copyright (c) 2020-2021 Drew Lemmy +// This file is part of KristWeb 2 under GPL-3.0. +// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt +@import (reference) "../../App.less"; + +.address-page { + .top-address-row { + display: flex; + align-items: center; + + margin-bottom: @margin-lg; + + h1.address { + display: inline-block; + margin-right: @margin-lg; + margin-bottom: 0; + + font-size: @font-size-base * 2; + } + + .ant-btn { + margin-right: @margin-md; + &:last-child { margin-right: 0; } + } + } + + .address-info-row { + max-width: 768px; + } +} diff --git a/src/pages/addresses/AddressPage.tsx b/src/pages/addresses/AddressPage.tsx new file mode 100644 index 0000000..e077b4d --- /dev/null +++ b/src/pages/addresses/AddressPage.tsx @@ -0,0 +1,121 @@ +// Copyright (c) 2020-2021 Drew Lemmy +// This file is part of KristWeb 2 under GPL-3.0. +// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt +import React, { useState, useEffect } from "react"; +import { Row, Col, Skeleton, Button } from "antd"; +import { SendOutlined, UserAddOutlined } from "@ant-design/icons"; + +import { useTranslation } from "react-i18next"; +import { useParams } from "react-router-dom"; + +import { PageLayout } from "../../layout/PageLayout"; +import { AddressResult } from "./AddressResult"; + +import { Statistic } from "../../components/Statistic"; +import { KristValue } from "../../components/KristValue"; +import { DateTime } from "../../components/DateTime"; + +import * as api from "../../krist/api"; +import { lookupAddress, KristAddressWithNames } from "../../krist/api/lookup"; + +import "./AddressPage.less"; + +interface ParamTypes { + address: string; +} + +function Page({ address }: { address: KristAddressWithNames }): JSX.Element { + const { t } = useTranslation(); + + return <> + {/* Address and buttons */} + + {/* Address */} +

{address.address}

+ + {/* Send Krist button */} + {/* TODO: If this is one of our own wallets then say 'Transfer krist' */} + + + {/* Add friend button */} + {/* TODO: Change this to edit if they're already a friend, and if it is + one of our own wallets then say 'Edit wallet' */} + +
+ + {/* Main address info */} + + {/* Current balance */} + + } + /> + + + {/* Names */} + + + + + {/* First seen */} + + } + /> + + + ; +} + +export function AddressPage(): JSX.Element { + // Used to refresh the address data on syncNode change + const syncNode = api.useSyncNode(); + + const { address } = useParams(); + const [kristAddress, setKristAddress] = useState(); + const [error, setError] = useState(); + + // Load the address on page load + // TODO: passthrough router state to pre-load from search + // REVIEW: The search no longer clears the LRU cache on each open, meaning it + // is possible for an address's information to be up to 3 minutes + // out-of-date in the search box. If we passed through the state from + // the search and directly used it here, it would definitely be too + // outdated to display. It could be possible to show that state data + // and still lookup the most recent data, but is it worth it? The page + // would appear 10-200ms faster, sure, but if the data _has_ changed, + // then it would cause a jarring re-render, just to save a single + // cheap network request. Will definitely require some further + // usability testing. + useEffect(() => { + lookupAddress(address, true) + .then(setKristAddress) + .catch(setError); + }, [syncNode, address]); + + // Change the page title depending on whether or not the address has loaded + const title = kristAddress + ? { siteTitle: kristAddress.address, subTitle: kristAddress.address } + : { siteTitleKey: "address.title" }; + + return + {error + ? + : (kristAddress + ? + : )} + ; +} diff --git a/src/pages/addresses/AddressResult.tsx b/src/pages/addresses/AddressResult.tsx new file mode 100644 index 0000000..4ebfcf0 --- /dev/null +++ b/src/pages/addresses/AddressResult.tsx @@ -0,0 +1,52 @@ +// Copyright (c) 2020-2021 Drew Lemmy +// This file is part of KristWeb 2 under GPL-3.0. +// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt +import React from "react"; +import { FrownOutlined, ExclamationCircleOutlined, QuestionCircleOutlined } from "@ant-design/icons"; + +import { useTranslation } from "react-i18next"; + +import { SmallResult } from "../../components/SmallResult"; +import { APIError } from "../../krist/api"; + +interface Props { + error: Error; +} + +export function AddressResult({ error }: Props): JSX.Element { + const { t } = useTranslation(); + + // Handle the most commonly expected errors from the API + if (error instanceof APIError) { + // Invalid address + if (error.message === "invalid_parameter") { + return } + title={t("address.resultInvalidTitle")} + subTitle={t("address.resultInvalid")} + fullPage + />; + } + + // Address not found + if (error.message === "address_not_found") { + return } + title={t("address.resultNotFoundTitle")} + subTitle={t("address.resultNotFound")} + fullPage + />; + } + } + + // Unknown error + return } + title={t("address.resultUnknownTitle")} + subTitle={t("address.resultUnknown")} + fullPage + />; +} diff --git a/src/pages/dashboard/BlockDifficultyCard.tsx b/src/pages/dashboard/BlockDifficultyCard.tsx index 6a0f763..771bc7a 100644 --- a/src/pages/dashboard/BlockDifficultyCard.tsx +++ b/src/pages/dashboard/BlockDifficultyCard.tsx @@ -2,6 +2,7 @@ // This file is part of KristWeb 2 under GPL-3.0. // Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt import React, { useState, useEffect, useMemo } from "react"; +import classNames from "classnames"; import { Card, Skeleton, Empty, Row, Col, Tooltip, Select } from "antd"; import { useSelector, shallowEqual } from "react-redux"; @@ -16,7 +17,7 @@ import { trailingThrottleState } from "../../utils/promiseThrottle"; import { SmallResult } from "../../components/SmallResult"; -import { Statistic } from "./Statistic"; +import { Statistic } from "../../components/Statistic"; import Debug from "debug"; const debug = Debug("kristweb:block-difficulty-card"); @@ -123,7 +124,7 @@ export function BlockDifficultyCard(): JSX.Element { const { t } = useTranslation(); - const syncNode = useSelector((s: RootState) => s.node.syncNode); + const syncNode = api.useSyncNode(); const lastBlockID = useSelector((s: RootState) => s.node.lastBlockID); const work = useSelector((s: RootState) => s.node.detailedWork?.work); const constants = useSelector((s: RootState) => s.node.constants, shallowEqual); @@ -221,8 +222,11 @@ } const isEmpty = !loading && error; + const classes = classNames("kw-card", "dashboard-card-block-difficulty", { + "empty": isEmpty + }); - return + return {error ? diff --git a/src/pages/dashboard/BlockValueCard.tsx b/src/pages/dashboard/BlockValueCard.tsx index bd04348..d6c36f2 100644 --- a/src/pages/dashboard/BlockValueCard.tsx +++ b/src/pages/dashboard/BlockValueCard.tsx @@ -20,7 +20,7 @@ const work = useSelector((s: RootState) => s.node.detailedWork); const hasNames = (work?.unpaid || 0) > 0; - return + return {work && <> {/* Main block value */} diff --git a/src/pages/dashboard/DashboardPage.less b/src/pages/dashboard/DashboardPage.less index 121561d..3922a74 100644 --- a/src/pages/dashboard/DashboardPage.less +++ b/src/pages/dashboard/DashboardPage.less @@ -10,74 +10,6 @@ & > .ant-col { margin-bottom: @margin-md; } - - & > .ant-col > .ant-card { - display: flex; - flex-direction: column; - - height: 100%; - - border: none; - border-radius: @kw-big-card-border-radius; - - .ant-card-head { - border-bottom: 0; - margin-bottom: 0; - - border-radius: @kw-big-card-border-radius @kw-big-card-border-radius 0 0; - - .ant-card-head-title { - padding-bottom: 0; - } - } - - .ant-card-body { - padding-top: @padding-sm; - } - - &.empty .ant-card-body { - height: 100%; - padding-top: 0; - padding: 0; - - display: flex; - align-items: center; - justify-content: center; - - &::before, &::after { - content: none; - } - - .ant-empty-normal { - margin: 0; - } - - .ant-result { - padding: @padding-sm; - - .ant-result-icon { - margin-bottom: @margin-xs; - - .anticon { font-size: 48px; } - } - } - - @media (max-width: @screen-lg) { - padding: @margin-md 0; - } - } - } - } - - .dashboard-statistic { - &-title { - color: @kw-text-secondary; - display: block; - } - - &-value { - font-size: @heading-3-size; - } } .dashboard-card-wallets { diff --git a/src/pages/dashboard/Statistic.tsx b/src/pages/dashboard/Statistic.tsx deleted file mode 100644 index a1f5b4a..0000000 --- a/src/pages/dashboard/Statistic.tsx +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) 2020-2021 Drew Lemmy -// This file is part of KristWeb 2 under GPL-3.0. -// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt -import React from "react"; - -import { useTranslation } from "react-i18next"; - -interface Props { - title?: string; - titleKey?: string; - value?: React.ReactNode; -} - -export function Statistic({ title, titleKey, value }: Props): JSX.Element { - const { t } = useTranslation(); - - return
- {titleKey ? t(titleKey) : title} - {value} -
; -} diff --git a/src/pages/dashboard/TransactionsCard.tsx b/src/pages/dashboard/TransactionsCard.tsx index bb1e6bf..b6cc518 100644 --- a/src/pages/dashboard/TransactionsCard.tsx +++ b/src/pages/dashboard/TransactionsCard.tsx @@ -2,6 +2,7 @@ // This file is part of KristWeb 2 under GPL-3.0. // Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt import React, { useState, useEffect, useMemo } from "react"; +import classNames from "classnames"; import { Card, Skeleton, Empty, Row } from "antd"; import { useSelector, shallowEqual } from "react-redux"; @@ -11,6 +12,7 @@ import { TransactionItem } from "./TransactionItem"; import { WalletMap } from "../../store/reducers/WalletsReducer"; +import { useSyncNode } from "../../krist/api"; import { lookupTransactions, LookupTransactionsResponse } from "../../krist/api/lookup"; import { SmallResult } from "../../components/SmallResult"; @@ -28,10 +30,10 @@ Object.values(wallets).map(w => w.address), { includeMined: true, limit: 5, orderBy: "id", order: "DESC" } ); -}; +} export function TransactionsCard(): JSX.Element { - const syncNode = useSelector((s: RootState) => s.node.syncNode); + const syncNode = useSyncNode(); const { wallets } = useSelector((s: RootState) => s.wallets, shallowEqual); const { t } = useTranslation(); @@ -68,8 +70,11 @@ } const isEmpty = !loading && (error || !res || res.count === 0); + const classes = classNames("kw-card", "dashboard-card-transactions", { + "empty": isEmpty + }); - return + return {error ? diff --git a/src/pages/dashboard/WalletOverviewCard.tsx b/src/pages/dashboard/WalletOverviewCard.tsx index b04f7ee..0c92327 100644 --- a/src/pages/dashboard/WalletOverviewCard.tsx +++ b/src/pages/dashboard/WalletOverviewCard.tsx @@ -12,7 +12,7 @@ import { Wallet } from "../../krist/wallets/Wallet"; import { KristValue } from "../../components/KristValue"; -import { Statistic } from "./Statistic"; +import { Statistic } from "../../components/Statistic"; import { WalletItem } from "./WalletItem"; import { keyedNullSort } from "../../utils"; @@ -34,7 +34,7 @@ topWallets.reverse(); const top4Wallets = topWallets.slice(0, 4); - return + return ({ password }))(); @@ -14,7 +14,7 @@ salt: string; tester: string; password: string; -}; +} export const setMasterPassword = createAction(constants.SET_MASTER_PASSWORD, (salt, tester, password): SetMasterPasswordPayload => ({ salt, tester, password }))(); diff --git a/src/store/actions/WalletsActions.ts b/src/store/actions/WalletsActions.ts index 793354f..26eea35 100644 --- a/src/store/actions/WalletsActions.ts +++ b/src/store/actions/WalletsActions.ts @@ -8,30 +8,30 @@ import { WalletMap } from "../reducers/WalletsReducer"; import { Wallet, WalletSyncable, WalletUpdatable } from "../../krist/wallets/Wallet"; -export interface LoadWalletsPayload { wallets: WalletMap }; +export interface LoadWalletsPayload { wallets: WalletMap } export const loadWallets = createAction(constants.LOAD_WALLETS, (wallets): LoadWalletsPayload => ({ wallets }))(); -export interface AddWalletPayload { wallet: Wallet }; +export interface AddWalletPayload { wallet: Wallet } export const addWallet = createAction(constants.ADD_WALLET, (wallet): AddWalletPayload => ({ wallet }))(); -export interface RemoveWalletPayload { id: string }; +export interface RemoveWalletPayload { id: string } export const removeWallet = createAction(constants.REMOVE_WALLET, (id): RemoveWalletPayload => ({ id }))(); -export interface UpdateWalletPayload { id: string; wallet: WalletUpdatable }; +export interface UpdateWalletPayload { id: string; wallet: WalletUpdatable } export const updateWallet = createAction(constants.UPDATE_WALLET, (id, wallet): UpdateWalletPayload => ({ id, wallet }))(); -export interface SyncWalletPayload { id: string; wallet: WalletSyncable }; +export interface SyncWalletPayload { id: string; wallet: WalletSyncable } export const syncWallet = createAction(constants.SYNC_WALLET, (id, wallet): SyncWalletPayload => ({ id, wallet }))(); -export interface SyncWalletsPayload { wallets: Record }; +export interface SyncWalletsPayload { wallets: Record } export const syncWallets = createAction(constants.SYNC_WALLETS, (wallets): SyncWalletsPayload => ({ wallets }))(); -export interface RecalculateWalletsPayload { wallets: Record }; +export interface RecalculateWalletsPayload { wallets: Record } export const recalculateWallets = createAction(constants.RECALCULATE_WALLETS, (wallets): RecalculateWalletsPayload => ({ wallets }))(); diff --git a/src/store/init.ts b/src/store/init.ts new file mode 100644 index 0000000..08e93bb --- /dev/null +++ b/src/store/init.ts @@ -0,0 +1,22 @@ +// Copyright (c) 2020-2021 Drew Lemmy +// This file is part of KristWeb 2 under GPL-3.0. +// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt +import { getInitialWalletManagerState } from "./reducers/WalletManagerReducer"; +import { getInitialWalletsState } from "./reducers/WalletsReducer"; +import { getInitialSettingsState } from "./reducers/SettingsReducer"; +import { getInitialNodeState } from "./reducers/NodeReducer"; + +import { createStore } from "redux"; +import { devToolsEnhancer } from "redux-devtools-extension"; +import rootReducer from "./reducers/RootReducer"; + +export const initStore = () => createStore( + rootReducer, + { + walletManager: getInitialWalletManagerState(), + wallets: getInitialWalletsState(), + settings: getInitialSettingsState(), + node: getInitialNodeState() + }, + devToolsEnhancer({}) +); diff --git a/src/style/card.less b/src/style/card.less new file mode 100644 index 0000000..d4f3cef --- /dev/null +++ b/src/style/card.less @@ -0,0 +1,61 @@ +// Copyright (c) 2020-2021 Drew Lemmy +// This file is part of KristWeb 2 under GPL-3.0. +// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt +@import (reference) "../App.less"; + +.kw-card { + display: flex; + flex-direction: column; + + height: 100%; + + border: none; + border-radius: @kw-big-card-border-radius; + + .ant-card-head { + border-bottom: 0; + margin-bottom: 0; + + border-radius: @kw-big-card-border-radius @kw-big-card-border-radius 0 0; + + .ant-card-head-title { + padding-bottom: 0; + } + } + + .ant-card-body { + padding-top: @padding-sm; + } + + &.empty .ant-card-body { + height: 100%; + padding-top: 0; + padding: 0; + + display: flex; + align-items: center; + justify-content: center; + + &::before, &::after { + content: none; + } + + .ant-empty-normal { + margin: 0; + } + + .ant-result { + padding: @padding-sm; + + .ant-result-icon { + margin-bottom: @margin-xs; + + .anticon { font-size: 48px; } + } + } + + @media (max-width: @screen-lg) { + padding: @margin-md 0; + } + } +} diff --git a/src/style/components.less b/src/style/components.less index cbc0adf..67cc0d4 100644 --- a/src/style/components.less +++ b/src/style/components.less @@ -1,6 +1,8 @@ // Copyright (c) 2020-2021 Drew Lemmy // This file is part of KristWeb 2 under GPL-3.0. // Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt +@import "./card.less"; + .big-menu.ant-menu.ant-menu-inline { width: 100%; @@ -168,3 +170,13 @@ opacity: 0.5 !important; } } + +.ant-result.full-page-result { + display: flex; + flex-direction: column; + + align-items: center; + justify-content: center; + + height: 100%; +} diff --git a/src/style/theme.less b/src/style/theme.less index eca2fe9..6c03583 100644 --- a/src/style/theme.less +++ b/src/style/theme.less @@ -114,6 +114,8 @@ @kw-sidebar-collapse-duration: 350ms; @kw-sidebar-backdrop-bg: @modal-mask-bg; +@kw-page-header-height: 56px; + // header search @kw-header-search-bg: @kw-light; @kw-header-search-color: fade(@text-color, 50%); diff --git a/src/utils/index.ts b/src/utils/index.ts index a1d3f38..090ba07 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -87,3 +87,14 @@ // eslint-disable-next-line react-hooks/exhaustive-deps export const useMountEffect = (fn: EffectCallback): void => useEffect(fn, []); + + +/** + * Returns the ⌘ (command) symbol on macOS, and "Ctrl" everywhere else. + * + * NOTE: This is only evaluated on initial page load. + * + * REVIEW: This is a rather crude way to detect the platform, but it's the only + * method I could find online (with an admittedly non-exhaustive search) + */ +export const ctrl = /mac/i.test(navigator.platform) ? "\u2318" : "Ctrl";