diff --git a/.eslintrc.js b/.eslintrc.js index db0568c7ca7de2..d6534af4c7e686 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -38,8 +38,10 @@ module.exports = { 'consistent-this': ['error', 'self'], // just as bad as "max components per file" 'max-classes-per-file': 'off', - 'no-alert': 'error', // Too much interruptive - 'no-console': ['error', { allow: ['warn', 'error'] }], // Allow warn and error for production events + // Too interruptive + 'no-alert': 'error', + // Allow warn and error for dev environments + 'no-console': ['error', { allow: ['warn', 'error'] }], 'no-param-reassign': 'off', // It's fine. 'no-restricted-imports': [ 'error', @@ -48,31 +50,60 @@ module.exports = { }, ], 'no-constant-condition': 'error', - 'no-prototype-builtins': 'off', // Use the proptype inheritance chain + // Use the proptype inheritance chain + 'no-prototype-builtins': 'off', 'no-underscore-dangle': 'error', 'nonblock-statement-body-position': 'error', 'prefer-arrow-callback': ['error', { allowNamedFunctions: true }], - 'prefer-destructuring': 'off', // Destructuring harm grep potential. - '@typescript-eslint/dot-notation': 'off', // TODO performance consideration - '@typescript-eslint/no-implied-eval': 'off', // TODO performance consideration - '@typescript-eslint/no-throw-literal': 'off', // TODO performance consideration - 'import/named': 'off', // Not sure why it doesn't work - 'import/no-extraneous-dependencies': 'off', // Missing yarn workspace support - 'jsx-a11y/label-has-associated-control': 'off', // doesn't work? - 'jsx-a11y/no-autofocus': 'off', // We are a library, we need to support it too + // Destructuring harm grep potential. + 'prefer-destructuring': 'off', + + // TODO performance consideration + '@typescript-eslint/dot-notation': 'off', + // TODO performance consideration + '@typescript-eslint/no-implied-eval': 'off', + // TODO performance consideration + '@typescript-eslint/no-throw-literal': 'off', + + // Not sure why it doesn't work + 'import/named': 'off', + // Missing yarn workspace support + 'import/no-extraneous-dependencies': 'off', + + // doesn't work? + 'jsx-a11y/label-has-associated-control': [ + 'error', + { + // airbnb uses 'both' which requires nesting i.e. + // 'either' allows `htmlFor` + assert: 'either', + }, + ], + // We are a library, we need to support it too + 'jsx-a11y/no-autofocus': 'off', + 'material-ui/docgen-ignore-before-comment': 'error', + 'material-ui/rules-of-use-theme-variants': 'error', + 'react-hooks/exhaustive-deps': ['error', { additionalHooks: 'useEnhancedEffect' }], 'react-hooks/rules-of-hooks': 'error', - 'react/destructuring-assignment': 'off', // It's fine. + // Can add verbosity to small functions making them harder to grok. + // Though we have to manually enforce it for function components with default values. + 'react/destructuring-assignment': 'off', 'react/forbid-prop-types': 'off', // Too strict, no time for that 'react/jsx-curly-brace-presence': 'off', // broken - 'react/jsx-filename-extension': ['error', { extensions: ['.js', '.tsx'] }], // airbnb is using .jsx - 'react/jsx-fragments': ['error', 'element'], // Prefer over <>. - 'react/jsx-props-no-spreading': 'off', // We are a UI library. - 'react/no-array-index-key': 'off', // This rule is great for raising people awareness of what a key is and how it works. + // airbnb is using .jsx + 'react/jsx-filename-extension': ['error', { extensions: ['.js', '.tsx'] }], + // Prefer over <>. + 'react/jsx-fragments': ['error', 'element'], + // We are a UI library. + 'react/jsx-props-no-spreading': 'off', + // This rule is great for raising people awareness of what a key is and how it works. + 'react/no-array-index-key': 'off', 'react/no-danger': 'error', 'react/no-direct-mutation-state': 'error', - 'react/require-default-props': 'off', // Not always relevant + // Not always relevant + 'react/require-default-props': 'off', 'react/sort-prop-types': 'error', // This depends entirely on what you're doing. There's no universal pattern 'react/state-in-constructor': 'off', @@ -165,9 +196,10 @@ module.exports = { 'no-restricted-imports': [ 'error', { + // Allow deeper imports for TypeScript types. TODO? patterns: ['@material-ui/*/*/*/*', '!@material-ui/utils/macros/*.macro'], }, - ], // Allow deeper imports for TypeScript types. TODO? + ], 'react/prop-types': 'off', }, }, @@ -179,14 +211,19 @@ module.exports = { 'no-empty-pattern': 'off', 'no-lone-blocks': 'off', 'no-shadow': 'off', + '@typescript-eslint/no-unused-expressions': 'off', '@typescript-eslint/no-unused-vars': 'off', '@typescript-eslint/no-use-before-define': 'off', - 'import/export': 'off', // Not sure why it doesn't work + + // Not sure why it doesn't work + 'import/export': 'off', 'import/prefer-default-export': 'off', + 'jsx-a11y/anchor-has-content': 'off', 'jsx-a11y/anchor-is-valid': 'off', 'jsx-a11y/tabindex-no-positive': 'off', + 'react/default-props-match-prop-types': 'off', 'react/no-access-state-in-setstate': 'off', 'react/no-unused-prop-types': 'off', diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 582c9813c51135..58b8efff6f2cf0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -201,10 +201,12 @@ Tests can be run with `yarn test`. ### Updating the component API documentation -To update the component API documentation (auto-generated from component PropTypes comments), run: +The component API in the component `propTypes` and under `docs/pages/api-docs` is auto-generated from the JSDOC in the TypeScript declarations. +Be sure to update the documentation in the corresponding `.d.ts` files (e.g. `packages/material-ui/src/Button/Button.d.ts` for ` } defaultExpandIcon={} expanded={expanded} diff --git a/docs/src/pages/components/tree-view/ControlledTreeView.tsx b/docs/src/pages/components/tree-view/ControlledTreeView.tsx index 90b5b27e150bcd..9820225d9d2125 100644 --- a/docs/src/pages/components/tree-view/ControlledTreeView.tsx +++ b/docs/src/pages/components/tree-view/ControlledTreeView.tsx @@ -57,6 +57,7 @@ export default function ControlledTreeView() { } defaultExpandIcon={} expanded={expanded} diff --git a/docs/src/pages/components/tree-view/CustomizedTreeView.js b/docs/src/pages/components/tree-view/CustomizedTreeView.js index 66c3e07486f6b4..1f7a656accf781 100644 --- a/docs/src/pages/components/tree-view/CustomizedTreeView.js +++ b/docs/src/pages/components/tree-view/CustomizedTreeView.js @@ -93,6 +93,7 @@ export default function CustomizedTreeView() { return ( } diff --git a/docs/src/pages/components/tree-view/CustomizedTreeView.tsx b/docs/src/pages/components/tree-view/CustomizedTreeView.tsx index ffaa368e828430..6b0caee8a5c978 100644 --- a/docs/src/pages/components/tree-view/CustomizedTreeView.tsx +++ b/docs/src/pages/components/tree-view/CustomizedTreeView.tsx @@ -96,6 +96,7 @@ export default function CustomizedTreeView() { return ( } diff --git a/docs/src/pages/components/tree-view/FileSystemNavigator.js b/docs/src/pages/components/tree-view/FileSystemNavigator.js index ea87bcf3197333..2a3397222f8b20 100644 --- a/docs/src/pages/components/tree-view/FileSystemNavigator.js +++ b/docs/src/pages/components/tree-view/FileSystemNavigator.js @@ -18,6 +18,7 @@ export default function FileSystemNavigator() { return ( } defaultExpandIcon={} diff --git a/docs/src/pages/components/tree-view/FileSystemNavigator.tsx b/docs/src/pages/components/tree-view/FileSystemNavigator.tsx index ea87bcf3197333..2a3397222f8b20 100644 --- a/docs/src/pages/components/tree-view/FileSystemNavigator.tsx +++ b/docs/src/pages/components/tree-view/FileSystemNavigator.tsx @@ -18,6 +18,7 @@ export default function FileSystemNavigator() { return ( } defaultExpandIcon={} diff --git a/docs/src/pages/components/tree-view/GmailTreeView.js b/docs/src/pages/components/tree-view/GmailTreeView.js index bc5ec2774e0491..4066e3251aa16e 100644 --- a/docs/src/pages/components/tree-view/GmailTreeView.js +++ b/docs/src/pages/components/tree-view/GmailTreeView.js @@ -125,6 +125,7 @@ export default function GmailTreeView() { return ( } diff --git a/docs/src/pages/components/tree-view/GmailTreeView.tsx b/docs/src/pages/components/tree-view/GmailTreeView.tsx index 0dba1910ecbfca..028b44adbcd959 100644 --- a/docs/src/pages/components/tree-view/GmailTreeView.tsx +++ b/docs/src/pages/components/tree-view/GmailTreeView.tsx @@ -136,6 +136,7 @@ export default function GmailTreeView() { return ( } diff --git a/docs/src/pages/components/tree-view/MultiSelectTreeView.js b/docs/src/pages/components/tree-view/MultiSelectTreeView.js index 5b539bbed6b111..6935bc25b3a3bc 100644 --- a/docs/src/pages/components/tree-view/MultiSelectTreeView.js +++ b/docs/src/pages/components/tree-view/MultiSelectTreeView.js @@ -18,6 +18,7 @@ export default function MultiSelectTreeView() { return ( } defaultExpandIcon={} diff --git a/docs/src/pages/components/tree-view/MultiSelectTreeView.tsx b/docs/src/pages/components/tree-view/MultiSelectTreeView.tsx index 5b539bbed6b111..6935bc25b3a3bc 100644 --- a/docs/src/pages/components/tree-view/MultiSelectTreeView.tsx +++ b/docs/src/pages/components/tree-view/MultiSelectTreeView.tsx @@ -18,6 +18,7 @@ export default function MultiSelectTreeView() { return ( } defaultExpandIcon={} diff --git a/docs/src/pages/components/tree-view/RecursiveTreeView.js b/docs/src/pages/components/tree-view/RichObjectTreeView.js similarity index 93% rename from docs/src/pages/components/tree-view/RecursiveTreeView.js rename to docs/src/pages/components/tree-view/RichObjectTreeView.js index 25c5ca03d453d0..60663f5fe1e31b 100644 --- a/docs/src/pages/components/tree-view/RecursiveTreeView.js +++ b/docs/src/pages/components/tree-view/RichObjectTreeView.js @@ -34,7 +34,7 @@ const useStyles = makeStyles({ }, }); -export default function RecursiveTreeView() { +export default function RichObjectTreeView() { const classes = useStyles(); const renderTree = (nodes) => ( @@ -47,6 +47,7 @@ export default function RecursiveTreeView() { return ( } defaultExpanded={['root']} diff --git a/docs/src/pages/components/tree-view/RecursiveTreeView.tsx b/docs/src/pages/components/tree-view/RichObjectTreeView.tsx similarity index 94% rename from docs/src/pages/components/tree-view/RecursiveTreeView.tsx rename to docs/src/pages/components/tree-view/RichObjectTreeView.tsx index 95a603ca4222f7..010566b87c3285 100644 --- a/docs/src/pages/components/tree-view/RecursiveTreeView.tsx +++ b/docs/src/pages/components/tree-view/RichObjectTreeView.tsx @@ -40,7 +40,7 @@ const useStyles = makeStyles({ }, }); -export default function RecursiveTreeView() { +export default function RichObjectTreeView() { const classes = useStyles(); const renderTree = (nodes: RenderTree) => ( @@ -53,6 +53,7 @@ export default function RecursiveTreeView() { return ( } defaultExpanded={['root']} diff --git a/docs/src/pages/components/tree-view/tree-view.md b/docs/src/pages/components/tree-view/tree-view.md index 091f43a584dfb5..9df1901de8f70c 100644 --- a/docs/src/pages/components/tree-view/tree-view.md +++ b/docs/src/pages/components/tree-view/tree-view.md @@ -45,7 +45,7 @@ const data = { }; ``` -{{"demo": "pages/components/tree-view/RecursiveTreeView.js", "defaultCodeOpen": false}} +{{"demo": "pages/components/tree-view/RichObjectTreeView.js", "defaultCodeOpen": false}} ## Customized tree view @@ -62,3 +62,5 @@ const data = { (WAI-ARIA: https://www.w3.org/TR/wai-aria-practices/#TreeView) The component follows the WAI-ARIA authoring practices. + +To have an accessible tree view you must use `aria-labelledby` or `aria-label` to reference or provide a label on the TreeView, otherwise screen readers will announce it as "tree", making it hard to understand the context of a specific tree item. diff --git a/docs/tsconfig.json b/docs/tsconfig.json index f011537479b882..2c10e5735fb6df 100644 --- a/docs/tsconfig.json +++ b/docs/tsconfig.json @@ -11,5 +11,6 @@ "skipLibCheck": false, "esModuleInterop": true, "types": ["react"] - } + }, + "exclude": ["node_modules"] } diff --git a/package.json b/package.json index 642ed5a73f274d..a2bef89707d038 100644 --- a/package.json +++ b/package.json @@ -166,6 +166,7 @@ "**/@babel/preset-typescript": "^7.10.4", "**/@babel/runtime": "^7.10.2", "**/@babel/types": "^7.10.2", + "**/cross-fetch": "^3.0.5", "**/hoist-non-react-statics": "^3.3.2", "**/terser": "^4.1.2" }, diff --git a/packages/eslint-plugin-material-ui/README.md b/packages/eslint-plugin-material-ui/README.md index 2b503947e0710b..a9f2ed702e6460 100644 --- a/packages/eslint-plugin-material-ui/README.md +++ b/packages/eslint-plugin-material-ui/README.md @@ -40,3 +40,8 @@ Removed in favor of [`no-restricted-imports`](https://eslint.org/docs/rules/no-r } } ``` + +### rules-of-use-theme-variants + +Ensures correct usage of `useThemeVariants` so that all props are passed as well +as their resolved default values. diff --git a/packages/eslint-plugin-material-ui/src/index.js b/packages/eslint-plugin-material-ui/src/index.js index 8bfc6c79735012..f8073ee3d55d2c 100644 --- a/packages/eslint-plugin-material-ui/src/index.js +++ b/packages/eslint-plugin-material-ui/src/index.js @@ -3,4 +3,5 @@ module.exports.rules = { 'disallow-active-element-as-key-event-target': require('./rules/disallow-active-element-as-key-event-target'), 'docgen-ignore-before-comment': require('./rules/docgen-ignore-before-comment'), 'no-hardcoded-labels': require('./rules/no-hardcoded-labels'), + 'rules-of-use-theme-variants': require('./rules/rules-of-use-theme-variants'), }; diff --git a/packages/eslint-plugin-material-ui/src/rules/rules-of-use-theme-variants.js b/packages/eslint-plugin-material-ui/src/rules/rules-of-use-theme-variants.js new file mode 100644 index 00000000000000..8a8f92337478c3 --- /dev/null +++ b/packages/eslint-plugin-material-ui/src/rules/rules-of-use-theme-variants.js @@ -0,0 +1,108 @@ +module.exports = { + meta: { + type: 'problem', + }, + create(context) { + function getComponentProps(componentBlockNode) { + // finds the declarator in `const {...} = props;` + let componentPropsDeclarator = null; + componentBlockNode.body.forEach((node) => { + if (node.type === 'VariableDeclaration') { + const propsDeclarator = node.declarations.find((declarator) => { + return declarator.init.name === 'props'; + }); + if (propsDeclarator !== undefined) { + componentPropsDeclarator = propsDeclarator; + } + } + }); + + return componentPropsDeclarator !== null ? componentPropsDeclarator.id : undefined; + } + + function getComponentBlockNode(hookCallNode) { + let node = hookCallNode.parent; + while (node !== undefined) { + if (node.type === 'BlockStatement') { + return node; + } + node = node.parent; + } + return null; + } + + return { + CallExpression(node) { + if (node.callee.name === 'useThemeVariants') { + const componentBlockNode = getComponentBlockNode(node); + + const componentProps = getComponentProps(componentBlockNode); + const defaultProps = + componentProps === undefined + ? [] + : componentProps.properties.filter((objectProperty) => { + return ( + objectProperty.type === 'Property' && + objectProperty.value.type === 'AssignmentPattern' + ); + }); + + const [variantProps] = node.arguments; + + const unsupportedComponentPropsNode = + componentProps !== undefined && componentProps.type !== 'ObjectPattern'; + + if (unsupportedComponentPropsNode) { + context.report({ + node: componentProps, + message: `Can only analyze object patterns but found '${componentProps.type}'. Prefer \`const {...} = props;\``, + }); + } + + if (defaultProps.length === 0) { + return; + } + + if (variantProps.type !== 'ObjectExpression') { + context.report({ + node: variantProps, + message: `Can only analyze object patterns but found '${variantProps.type}'. Prefer \`{...props}\`.`, + }); + return; + } + + const variantPropsRestNode = variantProps.properties.find((objectProperty) => { + return objectProperty.type === 'SpreadElement'; + }); + + if ( + variantPropsRestNode !== undefined && + variantProps.properties.indexOf(variantPropsRestNode) !== 0 && + defaultProps.length > 0 + ) { + context.report({ + node: variantPropsRestNode, + message: + 'The props spread must come first in the `useThemeVariants` props. Otherwise destructured props with default values could be overridden.', + }); + } + + defaultProps.forEach((componentProp) => { + const isPassedToVariantProps = + variantProps.properties.find((variantProp) => { + return ( + variantProp.type === 'Property' && componentProp.key.name === variantProp.key.name + ); + }) !== undefined; + if (!isPassedToVariantProps) { + context.report({ + node: variantProps, + message: `Prop \`${componentProp.key.name}\` is not passed to \`useThemeVariants\` props.`, + }); + } + }); + } + }, + }; + }, +}; diff --git a/packages/eslint-plugin-material-ui/src/rules/rules-of-use-theme-variants.test.js b/packages/eslint-plugin-material-ui/src/rules/rules-of-use-theme-variants.test.js new file mode 100644 index 00000000000000..243bbdf5b23aa8 --- /dev/null +++ b/packages/eslint-plugin-material-ui/src/rules/rules-of-use-theme-variants.test.js @@ -0,0 +1,123 @@ +const eslint = require('eslint'); +const rule = require('./rules-of-use-theme-variants'); + +const ruleTester = new eslint.RuleTester({ + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + ecmaFeatures: { jsx: true }, + }, +}); +ruleTester.run('rules-of-use-theme-variants', rule, { + valid: [ + // allowed but dangerous + ` +{ + const useCustomThemeVariants = props => useThemeVariants(props); +}`, + ` +{ + useThemeVariants(props); +} +`, + ` +{ + const { className, value: valueProp, ...other } = props; + useThemeVariants(props); +} +`, + ` +{ + const { className, disabled = false, value: valueProp, ...other } = props; + useThemeVariants({ ...props, disabled }); +} +`, + ` +{ + const { className, value: valueProp, ...other } = props; + const [stateA, setStateA] = React.useState(0); + const [stateB, setStateB] = React.useState(0); + useThemeVariants({ stateA, ...props, stateB }); +} +`, + // unneccessary spread but it's not the responsibility of this rule to catch "unnecessary" spread + ` +{ + const { className, value: valueProp, ...other } = props; + useThemeVariants({ ...props}); +} + `, + ], + invalid: [ + { + code: ` +{ + const { disabled = false, ...other } = props; + useThemeVariants({ ...props}); +} + `, + errors: [ + { + message: 'Prop `disabled` is not passed to `useThemeVariants` props.', + line: 4, + column: 20, + endLine: 4, + endColumn: 31, + }, + ], + }, + { + code: ` +{ + const { disabled = false, variant = 'text', ...other } = props; + useThemeVariants({ ...props, disabled }); +} + `, + errors: [ + { + message: 'Prop `variant` is not passed to `useThemeVariants` props.', + line: 4, + column: 20, + endLine: 4, + endColumn: 42, + }, + ], + }, + { + code: ` +{ + const { disabled = false, ...other } = props; + useThemeVariants({ disabled, ...props }); +} + `, + errors: [ + { + message: + 'The props spread must come first in the `useThemeVariants` props. Otherwise destructured props with default values could be overridden.', + line: 4, + column: 32, + endLine: 4, + endColumn: 40, + }, + ], + }, + // this is valid code but not analyzeable by this rule + { + code: ` +{ + const { disabled = false, ...other } = props; + const themeVariantProps = { ...props, disabled }; + useThemeVariants(themeVariantProps); +} + `, + errors: [ + { + message: "Can only analyze object patterns but found 'Identifier'. Prefer `{...props}`.", + line: 5, + column: 20, + endLine: 5, + endColumn: 37, + }, + ], + }, + ], +}); diff --git a/scripts/sizeSnapshot/create.js b/scripts/sizeSnapshot/create.js index 6c8c6a144aa75b..ed83ca2e7a49d4 100644 --- a/scripts/sizeSnapshot/create.js +++ b/scripts/sizeSnapshot/create.js @@ -104,13 +104,13 @@ async function getNextPagesSize() { // used to be tracked with custom logic hence the different ids if (pageUrl === '/') { snapshotId = 'docs.landing'; - } else if (pageUrl === 'static/pages/_app.js') { - snapshotId = 'docs.main'; // chunks contain a content hash that makes the names // unsuitable for tracking. Using stable name instead: - } else if (/^runtime\/main\.(.+)\.js$/.test(pageUrl)) { + } else if (/^chunks\/pages\/_app\.(.+)\.js$/.test(pageUrl)) { + snapshotId = 'docs.main'; + } else if (/^chunks\/main\.(.+)\.js$/.test(pageUrl)) { snapshotId = 'docs:shared:runtime/main'; - } else if (/^runtime\/webpack\.(.+)\.js$/.test(pageUrl)) { + } else if (/^chunks\/webpack\.(.+)\.js$/.test(pageUrl)) { snapshotId = 'docs:shared:runtime/webpack'; } else if (/^chunks\/commons\.(.+)\.js$/.test(pageUrl)) { snapshotId = 'docs:shared:chunk/commons'; diff --git a/yarn.lock b/yarn.lock index 53b550995c0af1..c6a85cad694ad5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,7 +2,7 @@ # yarn lockfile v1 -"@ampproject/toolbox-core@^2.4.0-alpha.1", "@ampproject/toolbox-core@^2.5.4": +"@ampproject/toolbox-core@^2.5.1", "@ampproject/toolbox-core@^2.5.4": version "2.5.4" resolved "https://registry.yarnpkg.com/@ampproject/toolbox-core/-/toolbox-core-2.5.4.tgz#8554c5398b6d65d240085a6b0abb94f9a3276dce" integrity sha512-KjHyR0XpQyloTu59IaatU2NCGT5zOhWJtVXQ4Uj/NUaRriN6LlJlzHBxtXmPIb0YHETdD63ITtDvqZizZPYFag== @@ -10,25 +10,30 @@ cross-fetch "3.0.5" lru-cache "5.1.1" -"@ampproject/toolbox-optimizer@2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@ampproject/toolbox-optimizer/-/toolbox-optimizer-2.4.0.tgz#16bde73913f8b58a9bf617d37cdc1f21a1222f38" - integrity sha512-Bmb+eMF9/VB3H0qPdZy0V5yPSkWe5RwuGbXiMxzqYdJgmMat+NL75EtozQnlpa0uBlESnOGe7bMojm/SA1ImrA== +"@ampproject/toolbox-optimizer@2.5.3": + version "2.5.3" + resolved "https://registry.yarnpkg.com/@ampproject/toolbox-optimizer/-/toolbox-optimizer-2.5.3.tgz#da24e0bad9350fded8a923c9e1c2402f0fe01e5b" + integrity sha512-D6j7nU02sLRaW+ZKd1UNyUESu9GVLhVrtGHQ/rORj87ZJS5s0DCpoIDbq1slKQDCDHl7RknQ3A6CVm14ihXV2A== dependencies: - "@ampproject/toolbox-core" "^2.4.0-alpha.1" - "@ampproject/toolbox-runtime-version" "^2.4.0-alpha.1" + "@ampproject/toolbox-core" "^2.5.1" + "@ampproject/toolbox-runtime-version" "^2.5.1" "@ampproject/toolbox-script-csp" "^2.3.0" "@ampproject/toolbox-validator-rules" "^2.3.0" + abort-controller "3.0.0" + cross-fetch "3.0.4" cssnano "4.1.10" + dom-serializer "1.0.1" domhandler "3.0.0" domutils "2.1.0" htmlparser2 "4.1.0" lru-cache "5.1.1" + node-fetch "2.6.0" normalize-html-whitespace "1.0.0" + postcss "7.0.32" postcss-safe-parser "4.0.2" - terser "4.6.13" + terser "4.7.0" -"@ampproject/toolbox-runtime-version@^2.4.0-alpha.1": +"@ampproject/toolbox-runtime-version@^2.5.1": version "2.5.4" resolved "https://registry.yarnpkg.com/@ampproject/toolbox-runtime-version/-/toolbox-runtime-version-2.5.4.tgz#ed6e77df3832f551337bca3706b5a4e2f36d66f9" integrity sha512-7vi/F91Zb+h1CwR8/on/JxZhp3Hhz6xJOOHxRA025aUFEFHV5c35B4QbTdt2MObWZrysogXFOT8M95dgU/hsKw== @@ -2082,10 +2087,10 @@ call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" -"@next/react-dev-overlay@9.4.4": - version "9.4.4" - resolved "https://registry.yarnpkg.com/@next/react-dev-overlay/-/react-dev-overlay-9.4.4.tgz#4ae03ac839ff022b3ce5c695bd24b179d4ef459d" - integrity sha512-UUAa8RbH7BeWDPCkagIkR4sUsyvTPlEdFrPZ9kGjf2+p8HkLHpcVY7y+XRnNvJQs4PsAF0Plh20FBz7t54U2iQ== +"@next/react-dev-overlay@9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@next/react-dev-overlay/-/react-dev-overlay-9.5.0.tgz#0cf9b5b843d7520919c0c6f887799b3eb848d900" + integrity sha512-Ds+sQnyeYWq07QIJ7bbYE6WI6ZdPSa+3S+cysvdy0zLLaHemp/Ew8OteXvgNtZYo9OGYBbngxHVUORDcQHaCng== dependencies: "@babel/code-frame" "7.8.3" ally.js "1.4.1" @@ -2098,10 +2103,10 @@ stacktrace-parser "0.1.10" strip-ansi "6.0.0" -"@next/react-refresh-utils@9.4.4": - version "9.4.4" - resolved "https://registry.yarnpkg.com/@next/react-refresh-utils/-/react-refresh-utils-9.4.4.tgz#d94cbb3b354a07f1f5b80e554d6b9e34aba99e41" - integrity sha512-9nKENeWRI6kQk44TbeqleIVtNLfcS3klVUepzl/ZCqzR5Bi06uqBCD277hdVvG/wL1pxA+R/pgJQLqnF5E2wPQ== +"@next/react-refresh-utils@9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@next/react-refresh-utils/-/react-refresh-utils-9.5.0.tgz#5d3923bc5520f355c3a70b72673c92d23719cf4b" + integrity sha512-YaLBsyAQuEDTyzEuTzg/VwwSqpfNkJ5fiQNIBSGY+UmSpg1+1OHIyMRURzLKO1K7ad3w6kZ+ykgGcMLToR33EQ== "@nodelib/fs.stat@^1.1.2": version "1.1.3" @@ -3093,7 +3098,7 @@ abbrev@1: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== -abort-controller@^3.0.0: +abort-controller@3.0.0, abort-controller@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== @@ -4184,17 +4189,7 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@4.12.0: - version "4.12.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz#06c6d5715a1ede6c51fc39ff67fd647f740b656d" - integrity sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg== - dependencies: - caniuse-lite "^1.0.30001043" - electron-to-chromium "^1.3.413" - node-releases "^1.1.53" - pkg-up "^2.0.0" - -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.8.3: +browserslist@4.13.0, browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.8.3: version "4.13.0" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.13.0.tgz#42556cba011e1b0a2775b611cba6a8eca18e940d" integrity sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ== @@ -4555,7 +4550,7 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001043, caniuse-lite@^1.0.30001093, caniuse-lite@^1.0.30001097: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001093, caniuse-lite@^1.0.30001097: version "1.0.30001099" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001099.tgz#540118fcc6842d1fde62f4ee5521d1ec6afdb40e" integrity sha512-sdS9A+sQTk7wKoeuZBN/YMAHVztUfVnjDi4/UV3sDE8xoh7YR12hKW+pIdB3oqKGwr9XaFL2ovfzt9w8eUI5CA== @@ -4721,7 +4716,7 @@ chokidar@2.1.8, chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@3.3.1, chokidar@^3.0.0, chokidar@^3.3.0: +chokidar@3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.1.tgz#c84e5b3d18d9a4d77558fef466b1bf16bbeb3450" integrity sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg== @@ -4736,6 +4731,21 @@ chokidar@3.3.1, chokidar@^3.0.0, chokidar@^3.3.0: optionalDependencies: fsevents "~2.1.2" +chokidar@^3.0.0, chokidar@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.1.tgz#e905bdecf10eaa0a0b1db0c664481cc4cbc22ba1" + integrity sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.4.0" + optionalDependencies: + fsevents "~2.1.2" + chownr@^1.1.1, chownr@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -5424,7 +5434,7 @@ cross-env@^7.0.0: dependencies: cross-spawn "^7.0.1" -cross-fetch@3.0.5: +cross-fetch@3.0.4, cross-fetch@3.0.5, cross-fetch@^3.0.5: version "3.0.5" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.5.tgz#2739d2981892e7ab488a7ad03b92df2816e03f4c" integrity sha512-FFLcLtraisj5eteosnX1gf01qYDCOc4fDy0+euOt8Kn9YBY2NtXL/pCoYPavw24NIQkQqm5ZOLsGD5Zzj0gyew== @@ -5701,6 +5711,21 @@ cssnano-preset-default@^4.0.7: postcss-svgo "^4.0.2" postcss-unique-selectors "^4.0.1" +cssnano-preset-simple@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/cssnano-preset-simple/-/cssnano-preset-simple-1.1.4.tgz#7b287a31df786348565d02342df71af8f758ac82" + integrity sha512-EYKDo65W+AxMViUijv/hvhbEnxUjmu3V7omcH1MatPOwjRLrAgVArUOE8wTUyc1ePFEtvV8oCT4/QSRJDorm/A== + dependencies: + postcss "^7.0.32" + +cssnano-simple@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/cssnano-simple/-/cssnano-simple-1.0.5.tgz#66ee528f3a4e60754e2625ea9f51ac315f5f0a92" + integrity sha512-NJjx2Er1C3pa75v1GwMKm0w6xAp1GsW2Ql1As4CWPNFxTgYFN5e8wblYeHfna13sANAhyIdSIPqKJjBO4CU5Eg== + dependencies: + cssnano-preset-simple "1.1.4" + postcss "^7.0.32" + cssnano-util-get-arguments@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" @@ -6305,6 +6330,15 @@ dom-serializer@0, dom-serializer@^0.2.1: domelementtype "^2.0.1" entities "^2.0.0" +dom-serializer@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.0.1.tgz#79695eb49af3cd8abc8d93a73da382deb1ca0795" + integrity sha512-1Aj1Qy3YLbdslkI75QEOfdp9TkQ3o8LRISAzxOibjBs/xWwr1WxZFOQphFkZuepHFGo+kB8e5FVJSS0faAJ4Rw== + dependencies: + domelementtype "^2.0.1" + domhandler "^3.0.0" + entities "^2.0.0" + dom-serializer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" @@ -6479,7 +6513,7 @@ ejs@^2.5.5, ejs@^2.6.1: resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0" integrity sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ== -electron-to-chromium@^1.3.413, electron-to-chromium@^1.3.488: +electron-to-chromium@^1.3.488: version "1.3.496" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.496.tgz#3f43d32930481d82ad3663d79658e7c59a58af0b" integrity sha512-TXY4mwoyowwi4Lsrq9vcTUYBThyc1b2hXaTZI13p8/FRhY2CTaq5lK+DVjhYkKiTLsKt569Xes+0J5JsVXFurQ== @@ -6614,10 +6648,10 @@ enhanced-resolve@^0.9.1: memory-fs "^0.2.0" tapable "^0.1.8" -enhanced-resolve@^4.1.0, enhanced-resolve@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.2.0.tgz#5d43bda4a0fd447cb0ebbe71bef8deff8805ad0d" - integrity sha512-S7eiFb/erugyd1rLb6mQ3Vuq+EXHv5cpCkNqqIkYkBgN2QdFnyCZzFBleqwGEx4lgNGYij81BWnCrFNK7vxvjQ== +enhanced-resolve@^4.1.1, enhanced-resolve@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" + integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== dependencies: graceful-fs "^4.1.2" memory-fs "^0.5.0" @@ -7582,20 +7616,6 @@ forever-agent@~0.6.1: resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= -fork-ts-checker-webpack-plugin@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-3.1.1.tgz#a1642c0d3e65f50c2cc1742e9c0a80f441f86b19" - integrity sha512-DuVkPNrM12jR41KM2e+N+styka0EgLkTnXmNcXdgOM37vtGeY+oCBK/Jx0hzSeEU6memFCtWb4htrHPMDfwwUQ== - dependencies: - babel-code-frame "^6.22.0" - chalk "^2.4.1" - chokidar "^3.3.0" - micromatch "^3.1.10" - minimatch "^3.0.4" - semver "^5.6.0" - tapable "^1.0.0" - worker-rpc "^0.1.0" - form-data@^2.3.3: version "2.5.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" @@ -10692,11 +10712,6 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= -microevent.ts@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" - integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g== - micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" @@ -11097,10 +11112,10 @@ napi-build-utils@^1.0.1: resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.1.tgz#1381a0f92c39d66bf19852e7873432fc2123e508" integrity sha512-boQj1WFgQH3v4clhu3mTNfP+vOBxorDlE8EKiMjUlLG3C4qAESnn9AxIOkFgTR2c9LtzNjPrjS60cT27ZKBhaA== -native-url@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/native-url/-/native-url-0.3.1.tgz#5045c65d0eb4c3ee548d48e3cb50797eec5a3c54" - integrity sha512-VL0XRW8nNBdSpxqZCbLJKrLHmIMn82FZ8pJzriJgyBmErjdEtrUX6eZAJbtHjlkMooEWUV+EtJ0D5tOP3+1Piw== +native-url@0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/native-url/-/native-url-0.3.4.tgz#29c943172aed86c63cee62c8c04db7f5756661f8" + integrity sha512-6iM8R99ze45ivyH8vybJ7X0yekIcPf5GgLV5K0ENCbmRcaRIDoj37BC8iLEmaaBfqqb8enuZ5p0uhY+lVAbAcA== dependencies: querystring "^0.2.0" @@ -11149,12 +11164,12 @@ next-tick@~1.0.0: resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= -next@^9.4.4: - version "9.4.4" - resolved "https://registry.yarnpkg.com/next/-/next-9.4.4.tgz#02ad9fea7f7016b6b42fc83b67835e4a0dd0c99a" - integrity sha512-ZT8bU2SAv5jkFQ+y8py+Rl5RJRJ6DnZDS+VUnB1cIscmtmUhDi7LYED7pYm4MCKkYhPbEEM1Lbpo7fnoZJGWNQ== +next@^9.5.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/next/-/next-9.5.0.tgz#964c35db00f9938443a53858e16bba31d234fb4b" + integrity sha512-kb6QnrbMyS/h4bvryZSQKgRqLtFVL2NZQed4jxrFZ15yxtwdsSCf5+LNfS7bcpVxh7HeD5Ddwh55l9+nOGkEBQ== dependencies: - "@ampproject/toolbox-optimizer" "2.4.0" + "@ampproject/toolbox-optimizer" "2.5.3" "@babel/code-frame" "7.8.3" "@babel/core" "7.7.7" "@babel/plugin-proposal-class-properties" "7.8.3" @@ -11172,25 +11187,25 @@ next@^9.4.4: "@babel/preset-typescript" "7.9.0" "@babel/runtime" "7.9.6" "@babel/types" "7.9.6" - "@next/react-dev-overlay" "9.4.4" - "@next/react-refresh-utils" "9.4.4" + "@next/react-dev-overlay" "9.5.0" + "@next/react-refresh-utils" "9.5.0" babel-plugin-syntax-jsx "6.18.0" babel-plugin-transform-define "2.0.0" babel-plugin-transform-react-remove-prop-types "0.4.24" - browserslist "4.12.0" + browserslist "4.13.0" cacache "13.0.1" chokidar "2.1.8" css-loader "3.5.3" + cssnano-simple "1.0.5" find-cache-dir "3.3.1" - fork-ts-checker-webpack-plugin "3.1.1" jest-worker "24.9.0" loader-utils "2.0.0" mini-css-extract-plugin "0.8.0" mkdirp "0.5.3" - native-url "0.3.1" + native-url "0.3.4" neo-async "2.6.1" pnp-webpack-plugin "1.6.4" - postcss "7.0.29" + postcss "7.0.32" prop-types "15.7.2" prop-types-exact "1.2.0" react-is "16.13.1" @@ -11203,7 +11218,7 @@ next@^9.4.4: use-subscription "1.4.1" watchpack "2.0.0-beta.13" web-vitals "0.2.1" - webpack "4.43.0" + webpack "4.44.0" webpack-sources "1.4.3" nice-try@^1.0.4: @@ -11338,7 +11353,7 @@ node-preload@^0.2.1: dependencies: process-on-spawn "^1.0.0" -node-releases@^1.1.53, node-releases@^1.1.58: +node-releases@^1.1.58: version "1.1.58" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.58.tgz#8ee20eef30fa60e52755fcc0942def5a734fe935" integrity sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg== @@ -12229,7 +12244,7 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.0.7: +picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.0.7, picomatch@^2.2.1: version "2.2.2" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== @@ -12294,13 +12309,6 @@ pkg-dir@^4.1.0, pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" - integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= - dependencies: - find-up "^2.1.0" - pkg-up@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" @@ -12698,16 +12706,7 @@ postcss@7.0.21: source-map "^0.6.1" supports-color "^6.1.0" -postcss@7.0.29: - version "7.0.29" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.29.tgz#d3a903872bd52280b83bce38cdc83ce55c06129e" - integrity sha512-ba0ApvR3LxGvRMMiUa9n0WR4HjzcYm7tS+ht4/2Nd0NLtHpPIH77fuB9Xh1/yJVz9O/E/95Y/dn8ygWsyffXtw== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.18, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: +postcss@7.0.32, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.18, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: version "7.0.32" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== @@ -13605,6 +13604,13 @@ readdirp@~3.3.0: dependencies: picomatch "^2.0.7" +readdirp@~3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" + integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== + dependencies: + picomatch "^2.2.1" + readline-sync@^1.4.9: version "1.4.10" resolved "https://registry.yarnpkg.com/readline-sync/-/readline-sync-1.4.10.tgz#41df7fbb4b6312d673011594145705bf56d8873b" @@ -15510,7 +15516,7 @@ terser-webpack-plugin@^1.4.3: webpack-sources "^1.4.0" worker-farm "^1.7.0" -terser@4.6.13, terser@^4.1.2, terser@^4.7.0: +terser@4.7.0, terser@^4.1.2, terser@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/terser/-/terser-4.7.0.tgz#15852cf1a08e3256a80428e865a2fa893ffba006" integrity sha512-Lfb0RiZcjRDXCC3OSHJpEkxJ9Qeqs6mp2v4jf2MHfy8vGERmVDuvjXdd/EnP5Deme5F2yBRBymKmKHCBg2echw== @@ -16426,6 +16432,13 @@ warning@^4.0.1: dependencies: loose-envify "^1.0.0" +watchpack-chokidar2@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" + integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== + dependencies: + chokidar "^2.1.8" + watchpack@2.0.0-beta.13: version "2.0.0-beta.13" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.0.0-beta.13.tgz#9d9b0c094b8402139333e04eb6194643c8384f55" @@ -16434,14 +16447,16 @@ watchpack@2.0.0-beta.13: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" -watchpack@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.1.tgz#280da0a8718592174010c078c7585a74cd8cd0e2" - integrity sha512-+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA== +watchpack@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b" + integrity sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg== dependencies: - chokidar "^2.1.8" graceful-fs "^4.1.2" neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.0" wcwidth@^1.0.0: version "1.0.1" @@ -16537,10 +16552,10 @@ webpack-sources@1.4.3, webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-s source-list-map "^2.0.0" source-map "~0.6.1" -webpack@4.43.0, webpack@^4.28.2, webpack@^4.41.0, webpack@^4.43.0: - version "4.43.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.43.0.tgz#c48547b11d563224c561dad1172c8aa0b8a678e6" - integrity sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g== +webpack@4.44.0, webpack@^4.28.2, webpack@^4.41.0, webpack@^4.43.0: + version "4.44.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.0.tgz#3b08f88a89470175f036f4a9496b8a0428668802" + integrity sha512-wAuJxK123sqAw31SpkPiPW3iKHgFUiKvO7E7UZjtdExcsRe3fgav4mvoMM7vvpjLHVoJ6a0Mtp2fzkoA13e0Zw== dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-module-context" "1.9.0" @@ -16550,7 +16565,7 @@ webpack@4.43.0, webpack@^4.28.2, webpack@^4.41.0, webpack@^4.43.0: ajv "^6.10.2" ajv-keywords "^3.4.1" chrome-trace-event "^1.0.2" - enhanced-resolve "^4.1.0" + enhanced-resolve "^4.3.0" eslint-scope "^4.0.3" json-parse-better-errors "^1.0.2" loader-runner "^2.4.0" @@ -16563,7 +16578,7 @@ webpack@4.43.0, webpack@^4.28.2, webpack@^4.41.0, webpack@^4.43.0: schema-utils "^1.0.0" tapable "^1.1.3" terser-webpack-plugin "^1.4.3" - watchpack "^1.6.1" + watchpack "^1.7.4" webpack-sources "^1.4.1" whatwg-encoding@^1.0.5: @@ -16658,13 +16673,6 @@ worker-farm@^1.7.0: dependencies: errno "~0.1.7" -worker-rpc@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5" - integrity sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg== - dependencies: - microevent.ts "~0.1.1" - workerpool@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.0.0.tgz#85aad67fa1a2c8ef9386a1b43539900f61d03d58"