From f68e75f8eb9b93034512ea07d3dc3f44bdac5657 Mon Sep 17 00:00:00 2001 From: Ben Merckx Date: Tue, 7 May 2019 15:04:38 +0200 Subject: [PATCH] Setup stylable --- .vscode/settings.json | 8 + package.json | 1 + src/index.js | 388 +++++++++++++++++++++--------------------- yarn.lock | 159 ++++++++++++++++- 4 files changed, 363 insertions(+), 193 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..a76140e --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,8 @@ +{ + "prettier.tabWidth": 2, + "prettier.useTabs": false, + "prettier.semi": false, + "prettier.singleQuote": true, + "prettier.bracketSpacing": false, + "prettier.printWidth": 80 +} \ No newline at end of file diff --git a/package.json b/package.json index bf70611..72b689b 100755 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "@babel/plugin-transform-proto-to-assign": "^7.2.0", "@babel/plugin-transform-react-jsx": "^7.2.0", "@babel/preset-env": "^7.2.3", + "@stylable/webpack-plugin": "^1.1.4", "autoprefixer": "^9.3.1", "babel-loader": "^8.0.4", "core-js": "^3.0.1", diff --git a/src/index.js b/src/index.js index 4c11d32..629edb0 100755 --- a/src/index.js +++ b/src/index.js @@ -3,205 +3,211 @@ const path = require('path') const webpack = require('webpack') const {BundleAnalyzerPlugin} = require('webpack-bundle-analyzer') const autoprefixer = require('autoprefixer') -const MiniCssExtractPlugin = require('mini-css-extract-plugin') +const ExtractTextPlugin = require('extract-text-webpack-plugin') +const IconfontWebpackPlugin = require('iconfont-webpack-plugin') const cssNano = require('cssnano') const pxtorem = require('postcss-pxtorem') +const StylableWebpackPlugin = require('@stylable/webpack-plugin') const strip = (str, end) => str.substr(0, str.length - end.length) const config = context => { - const {mode, entry, out, outPath} = context - const plugins = transpilers.slice() - if (process.env.ANALYZE) - plugins.push( - new BundleAnalyzerPlugin({ - analyzerHost: '0.0.0.0', - analyzerPort: process.env.ANALYZE - }) - ) - return { - devtool: mode !== 'production' && '#inline-source-map', - output: { - path: path.resolve(outPath), - filename: out, - publicPath: '/' - }, - entry: path.resolve(entry), - mode, - plugins - } + const {mode, entry, out, outPath} = context + const plugins = transpilers.slice() + if (process.env.ANALYZE) + plugins.push( + new BundleAnalyzerPlugin({ + analyzerHost: '0.0.0.0', + analyzerPort: process.env.ANALYZE + }) + ) + return { + devtool: mode !== 'production' && '#inline-source-map', + output: { + path: path.resolve(outPath), + filename: out, + publicPath: '/' + }, + entry: path.resolve(entry), + mode, + plugins + } } +const css = ({isProd, pxToRem, srcPath}) => [ + { + loader: 'css-loader', + options: { + sourceMap: !isProd + } + }, + { + loader: 'postcss-loader', + options: { + sourceMap: !isProd, + plugins: loader => + [] + .concat( + pxToRem + ? pxtorem({ + propList: ['*'], + minPixelValue: 2 + }) + : [] + ) + .concat([ + autoprefixer({grid: true}), + new IconfontWebpackPlugin(loader) + ]) + .concat(isProd ? cssNano({preset: 'default'}) : []) + } + }, + { + loader: 'less-loader', + options: { + rewriteUrls: 'local', + sourceMap: !isProd, + paths: [srcPath, 'node_modules'] + } + } +] + module.exports = function(entry, output, options = {}) { - const src = path.basename(entry) - const srcPath = strip(entry, src) - const out = path.basename(output) - const outPath = strip(output, out) - const include = [ - ...(options.include ? options.include : []), - path.resolve(srcPath), - path.resolve('node_modules/@codeurs') - ] - const context = {entry, output, src, srcPath, out, outPath, include} + const src = path.basename(entry) + const srcPath = strip(entry, src) + const out = path.basename(output) + const outPath = strip(output, out) + const include = [ + ...(options.include ? options.include : []), + path.resolve(srcPath), + path.resolve('node_modules/@codeurs') + ] + const context = {entry, output, src, srcPath, out, outPath, include} - return (env, argv) => { - const mode = argv.mode || process.env.NODE_ENV - const devServer = process.env.DEV_SERVER - console.log(`Compiling for ${mode}`) - const isProd = mode == 'production' - const target = config({mode, ...context}) - const plugins = target.plugins - const less = new MiniCssExtractPlugin({ - filename: path.parse(output).name + '.css' - }) - const extract = loaders => { - if (!devServer) - return [{loader: MiniCssExtractPlugin.loader}].concat(loaders) - return ['style-loader'].concat(loaders) - } - if (!devServer) plugins.push(less) - return { - ...target, - plugins: [ - new webpack.DefinePlugin({ - 'process.env.NODE_ENV': JSON.stringify(mode) - }), - new webpack.EnvironmentPlugin({ - DEBUG: 'false', - SENTRY_CONNECTION: '', - SENTRY_DSN: '', - PROJECT_RELEASE: '' - }), - new webpack.ProvidePlugin({ - m: 'mithril' - }), - ...plugins - ], - stats: { - colors: true, - hash: false, - version: false, - timings: true, - assets: false, - chunks: false, - modules: true, - reasons: false, - children: false, - source: false, - errors: true, - errorDetails: true, - warnings: true, - publicPath: false - }, - resolve: { - symlinks: false, - extensions: ['.js', '.mjs', '.ts', '.tsx', '.less', '.css'], - modules: [srcPath, 'node_modules'] - }, - module: { - rules: [ - { - test: /\.(ts|tsx)$/, - include, - use: 'happypack/loader?id=ts', - sideEffects: false - }, - { - test: /\.js$/, - include, - use: 'happypack/loader?id=babel', - sideEffects: false - }, - { - test: /\.mjs$/, - type: 'javascript/auto' - }, - { - test: /\.font\.js$/, - use: extract(['css-loader', 'webfonts-loader']), - sideEffects: true - }, - { - test: /\.(css|less)$/, - include, - use: extract([ - { - loader: 'css-loader', - options: { - sourceMap: !isProd - } - }, - { - loader: 'postcss-loader', - options: { - sourceMap: !isProd, - plugins: loader => - [] - .concat( - options.pxToRem - ? pxtorem({ - propList: ['*'], - minPixelValue: 2 - }) - : [] - ) - .concat([ - autoprefixer({grid: true}) - ]) - .concat(isProd ? cssNano({preset: 'default'}) : []) - } - }, - { - loader: 'less-loader', - options: { - sourceMap: !isProd, - paths: [srcPath, 'node_modules'] - } - } - ]), - sideEffects: true - }, - { - test: /\.(eot|ttf|woff|woff2)$/, - include, - use: { - loader: 'file-loader', - options: { - name: 'assets/fonts/[name].[ext]' - } - }, - sideEffects: true - }, - { - test: /\.(svg|jpg|png|gif)$/, - include, - use: { - loader: 'sizeof-loader', - options: { - useFileLoader: true, - name: 'assets/images/[name].[ext]' - } - }, - sideEffects: true - }, - { - test: /\.(ico|webp|mp4|webm)$/, - include, - use: { - loader: 'file-loader', - options: { - name: 'assets/data/[name].[ext]' - } - }, - sideEffects: true - }, - { - test: /\.(glsl|obj|html)$/, - include, - use: 'raw-loader' - } - ] - } - } - } + return (env, argv) => { + const mode = argv.mode || process.env.NODE_ENV + const devServer = process.env.DEV_SERVER + console.log(`Compiling for ${mode}`) + const isProd = mode == 'production' + const target = config({mode, ...context}) + const plugins = target.plugins + const less = new ExtractTextPlugin({ + filename: path.parse(output).name + '.css', + allChunks: true + }) + const extract = loaders => { + if (!devServer) return less.extract({use: loaders}) + return ['style-loader'].concat(loaders) + } + if (!devServer) plugins.push(less) + return { + ...target, + plugins: [ + new webpack.DefinePlugin({ + 'process.env.NODE_ENV': JSON.stringify(mode) + }), + new webpack.EnvironmentPlugin({ + DEBUG: 'false', + SENTRY_CONNECTION: '', + PROJECT_RELEASE: '' + }), + new webpack.ProvidePlugin({ + m: 'mithril' + }), + new StylableWebpackPlugin(), + ...plugins + ], + stats: { + colors: true, + hash: false, + version: false, + timings: true, + assets: false, + chunks: false, + modules: true, + reasons: false, + children: false, + source: false, + errors: true, + errorDetails: true, + warnings: true, + publicPath: false + }, + resolve: { + symlinks: false, + extensions: ['.js', '.mjs', '.ts', '.tsx', '.less', '.css'], + modules: [srcPath, 'node_modules'] + }, + module: { + rules: [ + { + test: /\.(ts|tsx)$/, + include, + use: 'happypack/loader?id=ts', + sideEffects: false + }, + { + test: /\.js$/, + include, + use: 'happypack/loader?id=babel', + sideEffects: false + }, + { + test: /\.mjs$/, + type: 'javascript/auto' + }, + { + test: /\.font\.js$/, + use: extract(['css-loader', 'webfonts-loader']), + sideEffects: true + }, + { + test: /(^((?!\.st).)*\.css$)|\.less$/, + include, + use: extract(css({...options, isProd, srcPath})), + sideEffects: true + }, + { + test: /\.(eot|ttf|woff|woff2)$/, + include, + use: { + loader: 'file-loader', + options: { + name: 'assets/fonts/[name].[ext]' + } + }, + sideEffects: true + }, + { + test: /\.(svg|jpg|png|gif)$/, + include, + use: { + loader: 'sizeof-loader', + options: { + limit: 2048, + name: 'assets/images/[name].[ext]' + } + }, + sideEffects: true + }, + { + test: /\.(ico|webp|mp4|webm)$/, + include, + use: { + loader: 'file-loader', + options: { + name: 'assets/data/[name].[ext]' + } + }, + sideEffects: true + }, + { + test: /\.(glsl|obj|html)$/, + include, + use: 'raw-loader' + } + ] + } + } + } } diff --git a/yarn.lock b/yarn.lock index 3a3c1ba..c85e6ff 100644 --- a/yarn.lock +++ b/yarn.lock @@ -693,6 +693,50 @@ lodash "^4.17.11" to-fast-properties "^2.0.0" +"@stylable/core@^1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@stylable/core/-/core-1.0.6.tgz#a6675362bfda6276af516f3bee7c6627eac351fe" + integrity sha512-5NpFaWSaRFrAJ7KhdxEmcrpwfxeynFuk1Stopgm/Tqcx3C+xTDRWk/+nhMDnyfyhItq/QBT9UhrOXWEtJo/6jw== + dependencies: + clean-css "^4.2.1" + css-selector-tokenizer "^0.7.1" + deindent "^0.1.0" + enhanced-resolve "^4.1.0" + is-vendor-prefixed "^1.0.0" + lodash.clonedeep "^4.5.0" + murmurhash "^0.0.2" + postcss "^7.0.14" + postcss-js "^2.0.0" + postcss-nested "^4.1.2" + postcss-safe-parser "^4.0.1" + postcss-selector-matches "^4.0.0" + postcss-value-parser "^3.3.1" + url-regex "^4.1.1" + +"@stylable/node@^1.0.7": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@stylable/node/-/node-1.0.7.tgz#f8a9a0a429317eb6c045ad0f99a940044011189b" + integrity sha512-5UOhFWp0JLEk0jq5CUwmCCwrIO0r7/8AowiSh9bg4iVfnw/TEJ0XZ9yrKfgxsExQD6m8YHtbDI4z4xmaIrcVQg== + dependencies: + "@stylable/core" "^1.0.6" + find-config "^1.0.0" + murmurhash "^0.0.2" + +"@stylable/runtime@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@stylable/runtime/-/runtime-1.0.4.tgz#364011921a31a276d94b4afff6c22096e9d825be" + integrity sha512-JGxmxe1UmMVNy9YpS8R4TV6LZhE6ucfSB4ueMuHgVYzXn/ZPmzIQ3ZpEvxAZpcMFRrNFzMjCkb7eSNEJBEY59g== + +"@stylable/webpack-plugin@^1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@stylable/webpack-plugin/-/webpack-plugin-1.1.4.tgz#507d6a90de909391bb729243f5bf232f116f7b7c" + integrity sha512-1fGRAMaOgibIAa1lOiDQ6YowyMafL0JTGVWjaEmpagePY+SG1BCDPepC/hlccIJplY4kwhIObwfirgYIbKB6gw== + dependencies: + "@stylable/node" "^1.0.7" + "@stylable/runtime" "^1.0.4" + find-config "^1.0.0" + webpack-sources "^1.3.0" + "@types/q@^1.5.1": version "1.5.2" resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" @@ -1393,6 +1437,11 @@ callsites@^2.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= +camelcase-css@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + camelcase@^5.0.0: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" @@ -1492,6 +1541,13 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" +clean-css@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.1.tgz#2d411ef76b8569b6d0c84068dabe85b0aa5e5c17" + integrity sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g== + dependencies: + source-map "~0.6.0" + cliui@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" @@ -1819,7 +1875,7 @@ css-select@^2.0.0: domutils "^1.7.0" nth-check "^1.0.2" -css-selector-tokenizer@^0.7.0: +css-selector-tokenizer@^0.7.0, css-selector-tokenizer@^0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz#a177271a8bca5019172f4f891fc6eed9cbf68d5d" integrity sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA== @@ -2024,6 +2080,11 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" +deindent@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/deindent/-/deindent-0.1.0.tgz#62e1dcdd1d849709e5c7403c890e47e3cebe399d" + integrity sha1-YuHc3R2Elwnlx0A8iQ5H486+OZ0= + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -2480,6 +2541,13 @@ find-cache-dir@^2.0.0: make-dir "^2.0.0" pkg-dir "^3.0.0" +find-config@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/find-config/-/find-config-1.0.0.tgz#eafa2b9bc07fa9c90e9a0c3ef9cecf1cc800f530" + integrity sha1-6vorm8B/qckOmgw++c7PHMgA9TA= + dependencies: + user-home "^2.0.0" + find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -3039,6 +3107,11 @@ invert-kv@^2.0.0: resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== +ip-regex@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd" + integrity sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0= + ipaddr.js@1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" @@ -3247,6 +3320,13 @@ is-typedarray@~1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= +is-vendor-prefixed@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-vendor-prefixed/-/is-vendor-prefixed-1.0.0.tgz#d1043053f4d14cd7807ebe288621a6a0ead1adf8" + integrity sha1-0QQwU/TRTNeAfr4ohiGmoOrRrfg= + dependencies: + vendor-prefixes "1.0.0" + is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -3468,6 +3548,11 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + lodash.get@^4.0.0: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" @@ -3759,6 +3844,11 @@ ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== +murmurhash@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/murmurhash/-/murmurhash-0.0.2.tgz#6f07bd8a1105e709c26fc89420cb5930c24585fe" + integrity sha1-bwe9ihEF5wnCb8iUIMtZMMJFhf4= + nan@^2.1.0, nan@^2.12.1: version "2.13.2" resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7" @@ -4320,6 +4410,14 @@ postcss-discard-overridden@^4.0.1: dependencies: postcss "^7.0.0" +postcss-js@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-2.0.1.tgz#4154e906ff410930afab63a24210be1b831e89a9" + integrity sha512-8XQGohCbj6+kq8e3w6WlexkGaSjb5S8zoXnH49eB8JC6+qN2kQW+ib6fTjRgCpRRN9eeFOhMlD0NDjThW1DCBg== + dependencies: + camelcase-css "^2.0.1" + postcss "^7.0.14" + postcss-load-config@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.0.0.tgz#f1312ddbf5912cd747177083c5ef7a19d62ee484" @@ -4431,6 +4529,14 @@ postcss-modules-values@^1.3.0: icss-replace-symbols "^1.1.0" postcss "^6.0.1" +postcss-nested@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-4.1.2.tgz#8e0570f736bfb4be5136e31901bf2380b819a561" + integrity sha512-9bQFr2TezohU3KRSu9f6sfecXmf/x6RXDedl8CHF6fyuyVW7UqgNMRdWMHZQWuFY6Xqs2NYk+Fj4Z4vSOf7PQg== + dependencies: + postcss "^7.0.14" + postcss-selector-parser "^5.0.0" + postcss-normalize-charset@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" @@ -4549,6 +4655,21 @@ postcss-reduce-transforms@^4.0.2: postcss "^7.0.0" postcss-value-parser "^3.0.0" +postcss-safe-parser@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz#8756d9e4c36fdce2c72b091bbc8ca176ab1fcdea" + integrity sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ== + dependencies: + postcss "^7.0.0" + +postcss-selector-matches@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" + integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww== + dependencies: + balanced-match "^1.0.0" + postcss "^7.0.2" + postcss-selector-parser@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865" @@ -4558,7 +4679,7 @@ postcss-selector-parser@^3.0.0: indexes-of "^1.0.1" uniq "^1.0.1" -postcss-selector-parser@^5.0.0-rc.4: +postcss-selector-parser@^5.0.0, postcss-selector-parser@^5.0.0-rc.4: version "5.0.0" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== @@ -4619,6 +4740,15 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.5: source-map "^0.6.1" supports-color "^6.1.0" +postcss@^7.0.2: + version "7.0.16" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.16.tgz#48f64f1b4b558cb8b52c88987724359acb010da2" + integrity sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + prepend-http@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" @@ -5630,6 +5760,11 @@ timsort@^0.3.0: resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= +tlds@^1.187.0: + version "1.203.1" + resolved "https://registry.yarnpkg.com/tlds/-/tlds-1.203.1.tgz#4dc9b02f53de3315bc98b80665e13de3edfc1dfc" + integrity sha512-7MUlYyGJ6rSitEZ3r1Q1QNV8uSIzapS8SmmhSusBuIc7uIxPPwsKllEP0GRp1NS6Ik6F+fRZvnjDWm3ecv2hDw== + to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" @@ -5906,6 +6041,14 @@ url-loader@^0.6.2: mime "^1.4.1" schema-utils "^0.3.0" +url-regex@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-4.1.1.tgz#a5617b22e15e26dac57ce74c3f52088bcdfec995" + integrity sha512-ViSDgDPNKkrQHI81GLCjdDN+Rsk3tAW/uLXlBOJxtcHzWZjta58Z0APXhfXzS89YszsheMnEvXeDXsWUB53wwA== + dependencies: + ip-regex "^1.0.1" + tlds "^1.187.0" + url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" @@ -5919,6 +6062,13 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== +user-home@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" + integrity sha1-nHC/2Babwdy/SGBODwS4tJzenp8= + dependencies: + os-homedir "^1.0.0" + util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -5978,6 +6128,11 @@ vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= +vendor-prefixes@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/vendor-prefixes/-/vendor-prefixes-1.0.0.tgz#1c7b92ece46e2f1a06c5a907613f5d50045df531" + integrity sha1-HHuS7ORuLxoGxakHYT9dUARd9TE= + vendors@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.2.tgz#7fcb5eef9f5623b156bcea89ec37d63676f21801"