diff --git a/index.js b/index.js index 408ba7e5..a75e9ecb 100644 --- a/index.js +++ b/index.js @@ -192,25 +192,22 @@ class Encore { } /** - * Allows you to configure the options passed to the optimize-css-assets-webpack-plugin. - * A list of available options can be found at https://github.com/NMFR/optimize-css-assets-webpack-plugin + * Allows you to configure the options passed to the css-minimizer-webpack-plugin. + * A list of available options can be found at https://github.com/webpack-contrib/css-minimizer-webpack-plugin * * For example: * * ``` - * Encore.configureOptimizeCssPlugin((options) => { - * options.cssProcessor = require('cssnano'); - * options.cssProcessorPluginOptions = { - * preset: ['default', { discardComments: { removeAll: true } }], - * } + * Encore.configureCssMinimizerPlugin((options) => { + * options.parallel = false; * }) * ``` * - * @param {function} optimizeCssPluginOptionsCallback + * @param {function} cssMinimizerPluginOptionsCallback * @returns {Encore} */ - configureOptimizeCssPlugin(optimizeCssPluginOptionsCallback = () => {}) { - webpackConfig.configureOptimizeCssPlugin(optimizeCssPluginOptionsCallback); + configureCssMinimizerPlugin(cssMinimizerPluginOptionsCallback = () => {}) { + webpackConfig.configureCssMinimizerPlugin(cssMinimizerPluginOptionsCallback); return this; } diff --git a/lib/WebpackConfig.js b/lib/WebpackConfig.js index a58e0d07..08d0e3e5 100644 --- a/lib/WebpackConfig.js +++ b/lib/WebpackConfig.js @@ -187,7 +187,7 @@ class WebpackConfig { this.friendlyErrorsPluginOptionsCallback = () => {}; this.manifestPluginOptionsCallback = () => {}; this.terserPluginOptionsCallback = () => {}; - this.optimizeCssPluginOptionsCallback = () => {}; + this.cssMinimizerPluginOptionsCallback = () => {}; this.notifierPluginOptionsCallback = () => {}; } @@ -299,12 +299,12 @@ class WebpackConfig { this.terserPluginOptionsCallback = terserPluginOptionsCallback; } - configureOptimizeCssPlugin(optimizeCssPluginOptionsCallback = () => {}) { - if (typeof optimizeCssPluginOptionsCallback !== 'function') { - throw new Error('Argument 1 to configureOptimizeCssPlugin() must be a callback function'); + configureCssMinimizerPlugin(cssMinimizerPluginOptionsCallback = () => {}) { + if (typeof cssMinimizerPluginOptionsCallback !== 'function') { + throw new Error('Argument 1 to configureCssMinimizerPlugin() must be a callback function'); } - this.optimizeCssPluginOptionsCallback = optimizeCssPluginOptionsCallback; + this.cssMinimizerPluginOptionsCallback = cssMinimizerPluginOptionsCallback; } /** diff --git a/lib/plugins/optimize-css-assets.js b/lib/plugins/optimize-css-assets.js index b10c2f1b..6cc61112 100644 --- a/lib/plugins/optimize-css-assets.js +++ b/lib/plugins/optimize-css-assets.js @@ -10,7 +10,7 @@ 'use strict'; const WebpackConfig = require('../WebpackConfig'); //eslint-disable-line no-unused-vars -const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin'); +const CssMinimizerPlugin = require('css-minimizer-webpack-plugin'); const applyOptionsCallback = require('../utils/apply-options-callback'); /** @@ -18,23 +18,11 @@ const applyOptionsCallback = require('../utils/apply-options-callback'); * @return {object} */ module.exports = function(webpackConfig) { - const optimizePluginOptions = { - // see: https://github.com/NMFR/optimize-css-assets-webpack-plugin/issues/53#issuecomment-400294569 - // we always use annotations: true, which is the setting if you're - // outputting to a separate file. This plugin is only - // used in production, and, in production, we always use the - // source-map option (a separate file) in config-generator. - cssProcessorOptions: {} + const minimizerPluginOptions = { + sourceMap: webpackConfig.useSourceMaps }; - if (webpackConfig.useSourceMaps) { - optimizePluginOptions.cssProcessorOptions.map = { - inline: false, - annotation: true, - }; - } - - return new OptimizeCSSAssetsPlugin( - applyOptionsCallback(webpackConfig.optimizeCssPluginOptionsCallback, optimizePluginOptions) + return new CssMinimizerPlugin( + applyOptionsCallback(webpackConfig.cssMinimizerPluginOptionsCallback, minimizerPluginOptions) ); }; diff --git a/package.json b/package.json index c2d63271..f8c591c2 100644 --- a/package.json +++ b/package.json @@ -33,12 +33,12 @@ "chalk": "^4.0.0", "clean-webpack-plugin": "^3.0.0", "css-loader": "^3.5.2", + "css-minimizer-webpack-plugin": "^1.1.5", "fast-levenshtein": "^2.0.6", "file-loader": "^6.0.0", "friendly-errors-webpack-plugin": "^2.0.0-beta.1", "loader-utils": "^2.0.0", "mini-css-extract-plugin": "^1.0.0", - "optimize-css-assets-webpack-plugin": "^5.0.4", "pkg-up": "^3.1.0", "pretty-error": "^2.1.1", "resolve-url-loader": "^3.1.2", diff --git a/test/WebpackConfig.js b/test/WebpackConfig.js index a006111a..c9f78e4a 100644 --- a/test/WebpackConfig.js +++ b/test/WebpackConfig.js @@ -322,21 +322,21 @@ describe('WebpackConfig object', () => { }); }); - describe('configureOptimizeCssPlugin', () => { + describe('configureCssMinimizerPlugin', () => { it('Setting callback', () => { const config = createConfig(); const callback = () => {}; - config.configureOptimizeCssPlugin(callback); + config.configureCssMinimizerPlugin(callback); - expect(config.optimizeCssPluginOptionsCallback).to.equal(callback); + expect(config.cssMinimizerPluginOptionsCallback).to.equal(callback); }); it('Setting invalid callback argument', () => { const config = createConfig(); expect(() => { - config.configureOptimizeCssPlugin('foo'); - }).to.throw('Argument 1 to configureOptimizeCssPlugin() must be a callback function'); + config.configureCssMinimizerPlugin('foo'); + }).to.throw('Argument 1 to configureCssMinimizerPlugin() must be a callback function'); }); }); diff --git a/test/functional.js b/test/functional.js index 3f9efaa3..656ced04 100644 --- a/test/functional.js +++ b/test/functional.js @@ -2291,13 +2291,13 @@ module.exports = { config.setPublicPath('/build'); config.copyFiles({ from: './copy' }); - // By default the optimize-css-assets-webpack-plugin will + // By default the css-minimizer-webpack-plugin will // run on ALL emitted CSS files, which includes the ones // handled by `Encore.copyFiles()`. // We disable it for this test since our CSS file will // not be valid and can't be handled by this plugin. - config.configureOptimizeCssPlugin(options => { - options.assetNameRegExp = /^$/; + config.configureCssMinimizerPlugin(options => { + options.include = /^$/; }); // By default the terser-webpack-plugin will run on @@ -2353,13 +2353,13 @@ module.exports = { pattern: /\.(?!(css|js)$)([^.]+$)/ }); - // By default the optimize-css-assets-webpack-plugin will + // By default the css-minimizer-webpack-plugin will // run on ALL emitted CSS files, which includes the ones // handled by `Encore.copyFiles()`. // We disable it for this test since our CSS file will // not be valid and can't be handled by this plugin. - config.configureOptimizeCssPlugin(options => { - options.assetNameRegExp = /^$/; + config.configureCssMinimizerPlugin(options => { + options.include = /^$/; }); // By default the terser-webpack-plugin will run on diff --git a/test/index.js b/test/index.js index 8ffc24b4..a1f6ddcd 100644 --- a/test/index.js +++ b/test/index.js @@ -416,10 +416,10 @@ describe('Public API', () => { }); - describe('configureOptimizeCssPlugin', () => { + describe('configureCssMinimizerPlugin', () => { it('should return the API object', () => { - const returnedValue = api.configureOptimizeCssPlugin(() => {}); + const returnedValue = api.configureCssMinimizerPlugin(() => {}); expect(returnedValue).to.equal(api); }); diff --git a/yarn.lock b/yarn.lock index 2a6e8dbe..fef81ff5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2334,7 +2334,18 @@ browserslist@^3.2.8: caniuse-lite "^1.0.30000844" electron-to-chromium "^1.3.47" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.3: +browserslist@^4.0.0: + version "4.14.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.7.tgz#c071c1b3622c1c2e790799a37bb09473a4351cb6" + integrity sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ== + dependencies: + caniuse-lite "^1.0.30001157" + colorette "^1.2.1" + electron-to-chromium "^1.3.591" + escalade "^3.1.1" + node-releases "^1.1.66" + +browserslist@^4.12.0, browserslist@^4.14.3: version "4.14.5" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.5.tgz#1c751461a102ddc60e40993639b709be7f2c4015" integrity sha512-Z+vsCZIvCBvqLoYkBFTwEYH3v5MCQbsAjp50ERycpOjnPmolg1Gjy4+KaWWpm8QOJt9GHkhdqAl14NpCX73CWA== @@ -2433,6 +2444,14 @@ cacheable-request@^7.0.1: normalize-url "^4.1.0" responselike "^2.0.0" +call-bind@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.0.tgz#24127054bb3f9bdcb4b1fb82418186072f77b8ce" + integrity sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.0" + call-me-maybe@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" @@ -2500,10 +2519,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001135: - version "1.0.30001148" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001148.tgz#dc97c7ed918ab33bf8706ddd5e387287e015d637" - integrity sha512-E66qcd0KMKZHNJQt9hiLZGE3J4zuTqE1OnU53miEVtylFbwOEmeA5OsRu90noZful+XGSQOni1aT2tiqu/9yYw== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001157: + version "1.0.30001159" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001159.tgz#bebde28f893fa9594dadcaa7d6b8e2aa0299df20" + integrity sha512-w9Ph56jOsS8RL20K9cLND3u/+5WASWdhC/PPrf+V3/HsM3uHOavWOR1Xzakbv4Puo/srmPHudkmCRWM7Aq+/UA== caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000864: version "1.0.30001046" @@ -2515,6 +2534,11 @@ caniuse-lite@^1.0.30001125: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001125.tgz#2a1a51ee045a0a2207474b086f628c34725e997b" integrity sha512-9f+r7BW8Qli917mU3j0fUaTweT3f3vnX/Lcs+1C73V+RADmFme+Ih0Br8vONQi3X0lseOe6ZHfsZLCA8MSjxUA== +caniuse-lite@^1.0.30001135: + version "1.0.30001148" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001148.tgz#dc97c7ed918ab33bf8706ddd5e387287e015d637" + integrity sha512-E66qcd0KMKZHNJQt9hiLZGE3J4zuTqE1OnU53miEVtylFbwOEmeA5OsRu90noZful+XGSQOni1aT2tiqu/9yYw== + capture-stack-trace@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" @@ -3081,6 +3105,21 @@ css-loader@^3.5.2: schema-utils "^2.7.0" semver "^6.3.0" +css-minimizer-webpack-plugin@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-1.1.5.tgz#f6f41358518d0f28b7a2d6819dfe1e410bc404f6" + integrity sha512-mXgaoFjNpIudZfxD49N1aPtLxfXGJt+BVPVjQ+H66I48b5n4wJtFpYfffVr7izK8W6fD01J7K0kUcP6HGjw90w== + dependencies: + cacache "^15.0.5" + cssnano "^4.1.10" + find-cache-dir "^3.3.1" + jest-worker "^26.3.0" + p-limit "^3.0.2" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" + source-map "^0.6.1" + webpack-sources "^1.4.3" + css-parse@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-2.0.0.tgz#a468ee667c16d81ccf05c58c38d2a97c780dbfd4" @@ -3121,12 +3160,12 @@ css-tree@1.0.0-alpha.37: mdn-data "2.0.4" source-map "^0.6.1" -css-tree@1.0.0-alpha.39: - version "1.0.0-alpha.39" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb" - integrity sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA== +css-tree@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.0.tgz#9b8559e0169c0f678f49a6e045e2c3101f7aa36f" + integrity sha512-SKwwAnwRPotiopzQBpK4o+W6Uu8PA759iWdJ1EXy3zkj+sSUcsdhnhvdv4dy5AtjcX0OGXxS7h73YAMXu8QXBw== dependencies: - mdn-data "2.0.6" + mdn-data "2.0.14" source-map "^0.6.1" css-what@2.1: @@ -3223,11 +3262,11 @@ cssnano@^4.1.10: postcss "^7.0.0" csso@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.0.3.tgz#0d9985dc852c7cc2b2cacfbbe1079014d1a8e903" - integrity sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ== + version "4.1.1" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.1.1.tgz#e0cb02d6eb3af1df719222048e4359efd662af13" + integrity sha512-Rvq+e1e0TFB8E8X+8MQjHSY6vtol45s5gxtLI/018UsAn2IBMmwNEZRM/h+HVnAJRHjasLIKKUO3uvoMM28LvA== dependencies: - css-tree "1.0.0-alpha.39" + css-tree "^1.0.0" cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": version "0.3.8" @@ -3652,6 +3691,11 @@ electron-to-chromium@^1.3.571: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.578.tgz#e6671936f4571a874eb26e2e833aa0b2c0b776e0" integrity sha512-z4gU6dA1CbBJsAErW5swTGAaU2TBzc2mPAonJb00zqW1rOraDo2zfBMDRvaz9cVic+0JEZiYbHWPw/fTaZlG2Q== +electron-to-chromium@^1.3.591: + version "1.3.598" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.598.tgz#8f757018902ab6190323a8c5f6124d854893a35b" + integrity sha512-G5Ztk23/ubLYVPxPXnB1uu105uzIPd4xB/D8ld8x1GaSC9+vU9NZL16nYZya8H77/7CCKKN7dArzJL3pBs8N7A== + emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" @@ -3790,24 +3834,6 @@ es-abstract@^1.17.2: string.prototype.trimend "^1.0.1" string.prototype.trimstart "^1.0.1" -es-abstract@^1.18.0-next.0: - version "1.18.0-next.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68" - integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.2" - is-negative-zero "^2.0.0" - is-regex "^1.1.1" - object-inspect "^1.8.0" - object-keys "^1.1.1" - object.assign "^4.1.1" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" - es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" @@ -3858,6 +3884,11 @@ escalade@^3.1.0: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.0.tgz#e8e2d7c7a8b76f6ee64c2181d6b8151441602d4e" integrity sha512-mAk+hPSO8fLDkhV7V0dXazH5pDc6MrjBTPyD3VeKzxnVFjH1MIxbCdqGZB9O8+EwWakZs3ZCbDS4IpRt79V1ig== +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -4639,6 +4670,15 @@ get-func-name@^2.0.0: resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= +get-intrinsic@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.1.tgz#94a9768fcbdd0595a1c9273aacf4c89d075631be" + integrity sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + get-stdin@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" @@ -5566,11 +5606,6 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-negative-zero@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461" - integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE= - is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -5760,6 +5795,15 @@ jake@^10.6.1: filelist "^1.0.1" minimatch "^3.0.4" +jest-worker@^26.3.0: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + jest-worker@^26.5.0: version "26.5.0" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.5.0.tgz#87deee86dbbc5f98d9919e0dadf2c40e3152fa30" @@ -6002,14 +6046,6 @@ klona@^2.0.4: resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== -last-call-webpack-plugin@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" - integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== - dependencies: - lodash "^4.17.5" - webpack-sources "^1.1.0" - lazy-cache@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-2.0.2.tgz#b9190a4f913354694840859f8a8f7084d8822264" @@ -6212,7 +6248,7 @@ lodash@^4, lodash@^4.0.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lod resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== -lodash@^4.17.13, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.5, lodash@~4.17.10: +lodash@^4.17.13, lodash@^4.17.19, lodash@^4.17.20, lodash@~4.17.10: version "4.17.20" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== @@ -6329,16 +6365,16 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + mdn-data@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== -mdn-data@2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978" - integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA== - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -6804,6 +6840,11 @@ node-releases@^1.1.61: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.61.tgz#707b0fca9ce4e11783612ba4a2fcba09047af16e" integrity sha512-DD5vebQLg8jLCOzwupn954fbIiZht05DAZs0k2u8NStSe6h9XdsuIQL8hSRKYiU8WUQRznmSDrKGbv3ObOmC7g== +node-releases@^1.1.66: + version "1.1.67" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.67.tgz#28ebfcccd0baa6aad8e8d4d8fe4cbc49ae239c12" + integrity sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg== + node-sass@^4.5.3: version "4.14.0" resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.14.0.tgz#a8e9d7720f8e15b4a1072719dcf04006f5648eeb" @@ -6999,12 +7040,12 @@ object.assign@4.1.0, object.assign@^4.1.0: object-keys "^1.0.11" object.assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.1.tgz#303867a666cdd41936ecdedfb1f8f3e32a478cdd" - integrity sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA== + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.18.0-next.0" has-symbols "^1.0.1" object-keys "^1.1.1" @@ -7076,14 +7117,6 @@ opn@^5.5.0: dependencies: is-wsl "^1.1.0" -optimize-css-assets-webpack-plugin@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz#85883c6528aaa02e30bbad9908c92926bb52dc90" - integrity sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A== - dependencies: - cssnano "^4.1.10" - last-call-webpack-plugin "^3.0.0" - optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"