diff --git a/packages/plugin-locale/src/index.ts b/packages/plugin-locale/src/index.ts index d9091d7b..e38fe307 100644 --- a/packages/plugin-locale/src/index.ts +++ b/packages/plugin-locale/src/index.ts @@ -78,7 +78,7 @@ export default (api: IApi) => { })); } - const addAntdLocales: IAddAntdLocales = async args => + const addAntdLocales: IAddAntdLocales = async (args) => await api.applyPlugins({ key: 'addAntdLocales', type: api.ApplyPluginsType.add, @@ -117,10 +117,10 @@ export default (api: IApi) => { const localeList = await getList(); const momentLocales = localeList .map(({ momentLocale }) => momentLocale) - .filter(locale => locale); + .filter((locale) => locale); const antdLocales = localeList .map(({ antdLocale }) => antdLocale) - .filter(locale => locale); + .filter((locale) => locale); let MomentLocales = momentLocales; let DefaultMomentLocale = ''; @@ -211,7 +211,9 @@ export default (api: IApi) => { }); // Runtime Plugin - api.addRuntimePlugin(() => join(paths.absTmpPath!, 'plugin-locale/runtime.tsx')); + api.addRuntimePlugin(() => + join(paths.absTmpPath!, 'plugin-locale/runtime.tsx'), + ); // Modify entry js api.addEntryCodeAhead(() => diff --git a/packages/plugin-svg-icon/CHANGELOG.md b/packages/plugin-svg-icon/CHANGELOG.md new file mode 100644 index 00000000..109cfd98 --- /dev/null +++ b/packages/plugin-svg-icon/CHANGELOG.md @@ -0,0 +1,5 @@ +# 1.0.0 (2021-03-09) + +### Features + +- add plugin-svg-icon diff --git a/packages/plugin-svg-icon/README.md b/packages/plugin-svg-icon/README.md new file mode 100644 index 00000000..5c804219 --- /dev/null +++ b/packages/plugin-svg-icon/README.md @@ -0,0 +1,75 @@ +# @umijs/plugin-svg-icon + +> @umijs/plugin-svg-icon. + +See our website [@umijs/plugin-svg-icon](https://umijs.org/plugins/plugin-svg-icon) for more information. + +## 安装 + +使用 npm: + +```bash +$ npm install --save-dev @umijs/plugin-svg-icon +``` + +使用 yarn: + +```bash +$ yarn add @umijs/plugin-svg-icon --dev +``` + +## 功能 + +自动配置 svgo 并将 svg 打包为 svg 雪碧图 + +## 使用方法 + +**注意 svg 文件只有放置在 svgs 的文件夹才会应用此配置!** + +安装即可开启 + +如果想要自己配置 svgo 配置,可以在.umirc 配置文件同级下增加 svgo-config.json + +实际使用: + +- 1. 需要声明一个通用组件 ICON + +```jsx +import { SvgIcon } from 'umi'; +``` + +- 2. 使用此组件 + +```jsx + +``` + +## TODO + +- [ ] 1.将示例的 jsx 代码整合到插件内部。 + +- [ ] 2.升级 svgo 与 svg-sprite-loader 到最新版本 + +- [ ] 3.暴露 svg-sprite-loader 选项入口 + +## 为什么要使用此插件 + +- svg 优点多多,其在移动端有很强的适配能力,在 pc 端也可以防止图片变糊,可以多 svg 图片拼接组合等等,高效易用。但是,通常我们获得的 svg 图片并不能直接使用,它们可能来自第三方 svg 组件库,或者来自设计师的原稿输出,这些 svg 如果直接使用 svg as component 可能存在以下痛点: + + 1. 我们需要 svg 图标携带 hover 样式,但是 svg 被填充了 fill 属性 + + 2. 内置的样式可能需要我们手动删除 + + 3. 携带一些内部敏感信息需要屏蔽 + + 4. 一个 svg 中的某部分全局中基本都有运用,但由于包裹的 svg 父元素不同可能会被多次请求。 + + 当 icon 变得非常多的时候这将是重复的体力劳动。 + +- 目前推荐对 svg 使用的是本插件的 svg-icon 与 url-loader 结合使用: + + 1. svg 确实需要内联样式的效果需要定制,请使用 svg as component。 + + 2. 有些 svg 不是全局 icon,而是单个引用,并且非常庞大还是需要使用 svg as component。 + +更多可以参考:[svg-sprite-loader](https://github.com/JetBrains/svg-sprite-loader) 与 [svgo](https://github.com/svg/svgo) diff --git a/packages/plugin-svg-icon/package.json b/packages/plugin-svg-icon/package.json new file mode 100644 index 00000000..8b231dd7 --- /dev/null +++ b/packages/plugin-svg-icon/package.json @@ -0,0 +1,36 @@ +{ + "name": "@umijs/plugin-svg-icon", + "version": "1.0.0", + "description": "@umijs/plugin-svg-icon", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "files": [ + "lib", + "src" + ], + "repository": { + "type": "git", + "url": "https://github.com/umijs/plugins" + }, + "keywords": [ + "umi" + ], + "authors": [ + "Cyberhan123 <255542417@qq.com> (https://github.com/Cyberhan123)" + ], + "license": "MIT", + "bugs": "http://github.com/umijs/plugins/issues", + "homepage": "https://github.com/umijs/plugins/tree/master/packages/plugin-svg-icon#readme", + "peerDependencies": { + "umi": "3.x" + }, + "publishConfig": { + "access": "public" + }, + "dependencies": { + "classnames": "^2.3.1", + "svg-sprite-loader": "^6.0.6", + "svgo": "^2.3.0", + "svgo-loader": "^3.0.0" + } +} diff --git a/packages/plugin-svg-icon/src/fixtures/normal/.umirc.ts b/packages/plugin-svg-icon/src/fixtures/normal/.umirc.ts new file mode 100644 index 00000000..3d4e04d1 --- /dev/null +++ b/packages/plugin-svg-icon/src/fixtures/normal/.umirc.ts @@ -0,0 +1,7 @@ +export default { + routes: [{ path: '/', component: 'index' }], + // svgIcon: {}, + plugins: [ + require.resolve('../../'), + ], +}; diff --git a/packages/plugin-svg-icon/src/fixtures/normal/assets/svg/wechat.svg b/packages/plugin-svg-icon/src/fixtures/normal/assets/svg/wechat.svg new file mode 100644 index 00000000..f64676d6 --- /dev/null +++ b/packages/plugin-svg-icon/src/fixtures/normal/assets/svg/wechat.svg @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/packages/plugin-svg-icon/src/fixtures/normal/assets/svgs/alipay.svg b/packages/plugin-svg-icon/src/fixtures/normal/assets/svgs/alipay.svg new file mode 100644 index 00000000..cbdce726 --- /dev/null +++ b/packages/plugin-svg-icon/src/fixtures/normal/assets/svgs/alipay.svg @@ -0,0 +1,12 @@ + + + + + + + diff --git a/packages/plugin-svg-icon/src/fixtures/normal/assets/svgs/love.svg b/packages/plugin-svg-icon/src/fixtures/normal/assets/svgs/love.svg new file mode 100644 index 00000000..b2b6f580 --- /dev/null +++ b/packages/plugin-svg-icon/src/fixtures/normal/assets/svgs/love.svg @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/packages/plugin-svg-icon/src/fixtures/normal/pages/index.tsx b/packages/plugin-svg-icon/src/fixtures/normal/pages/index.tsx new file mode 100644 index 00000000..0c1a5164 --- /dev/null +++ b/packages/plugin-svg-icon/src/fixtures/normal/pages/index.tsx @@ -0,0 +1,33 @@ +import React, { forwardRef } from 'react'; + +import '../assets/svgs/love.svg'; +import '../assets/svgs/alipay.svg'; +// @ts-ignore +import { ReactComponent as Wechat } from '../assets/svg/wechat.svg'; +// import { SvgIcon } from 'umi'; + +const Icon = forwardRef((props: any, ref) => { + const { type, className, link, ...htmlProps } = props; + const iconName = `#icon-${type}`; + const Parent = link ? 'a' : 'i'; + return ( + + + + ); +}); +const App = () => { + return ( + <> + {/**/} + {/**/} + + + + + + ); +}; +export default App; diff --git a/packages/plugin-svg-icon/src/index.test.ts b/packages/plugin-svg-icon/src/index.test.ts new file mode 100644 index 00000000..96efd4ce --- /dev/null +++ b/packages/plugin-svg-icon/src/index.test.ts @@ -0,0 +1,26 @@ +import { join } from 'path'; +import { generateTmp, render } from '@umijs/test-utils'; +import { cleanup } from '@testing-library/react'; + +const fixtures = join(__dirname, 'fixtures'); + +afterEach(cleanup); + +test('normal', async () => { + const cwd = join(fixtures, 'normal'); + await generateTmp({ cwd }); + const { container } = render({ cwd }); + expect(container.innerHTML).toEqual( + '' + + '' + + '' + + '' + + '' + + '' + + 'wechat.svg', + ); +}); diff --git a/packages/plugin-svg-icon/src/index.ts b/packages/plugin-svg-icon/src/index.ts new file mode 100644 index 00000000..e32c4341 --- /dev/null +++ b/packages/plugin-svg-icon/src/index.ts @@ -0,0 +1,94 @@ +import { IApi, utils } from 'umi'; +import { join } from 'path'; +import { readFileSync } from 'fs'; + +const { Mustache, lodash, winPath } = utils; +export default (api: IApi) => { + const { logger } = api; + api.describe({ + config: { + schema(Joi) { + return Joi.object({ + // svgoConfig: Joi.string(), + }); + }, + }, + }); + //src 路径 + const srcDir = api.paths.absSrcPath; + + function getSvgDir(path: string) { + return join(srcDir!, path); + } + + // svg 文件夹路径 + const svgsDir = getSvgDir('assets/svgs'); + + //获取svgoConfig 路径 + function getConfigPath() { + let svgoConfigDirFile = null; + //项目根目录位置 + const svgoConfigDirFilePath = api.utils.winPath( + join(srcDir!, '../svgo-config.json'), + ); + //插件根目录位置 + const svgoConfigDefaultFilePath = api.utils.winPath('../svgo-config.json'); + try { + svgoConfigDirFile = require.resolve(svgoConfigDirFilePath); + } catch (e) { + console.log( + api.utils.chalk.yellow( + `[svg-icon]svgo-config.json doesn't find at ${svgoConfigDirFilePath}, svg-icon auto use default config`, + ), + ); + } + const svgoConfigDefaultFile = require.resolve(svgoConfigDefaultFilePath); + //如果配置文件不存在使用默认配置 + const svgoConfigFile = svgoConfigDirFile ?? svgoConfigDefaultFile; + return require(svgoConfigFile); + } + + // 生成svgIcon 组件 + api.onGenerateFiles(() => { + const svgIcon = readFileSync(join(__dirname, 'svgIcon.tpl'), 'utf-8'); + api.writeTmpFile({ + path: 'plugin-svg-icon/svgIcon.tsx', + content: Mustache.render(svgIcon, { + // + SSR: !!api.config?.ssr, + }), + }); + }); + + // // 增加 svgIcon 运行时配置 + // api.addRuntimePlugin(() => + // [join(api.paths.absTmpPath!, 'plugin-svg-icon/svgIcon.tsx')], + // ); + + // 导出内容 + api.addUmiExports(() => [ + { + exportAll: true, + source: '../plugin-svg-icon/svgIcon', + }, + ]); + api.chainWebpack((config) => { + // 默认的svg的模块规则中不去匹配src/assets/svgs,避免此文件中的内容使用默认的url-loader的加载形式 + config.module.rule('svg').exclude.add(svgsDir).end(); + config.module + .rule('svg-sprite-svgo-loader') + .test(/\.svg$/) + .include.add(svgsDir) //处理svg目录 + .end() + .use('svg-sprite-loader') + .loader('svg-sprite-loader') + .options({ + symbolId: 'icon-[name]', + }) + .end() + .use('svgo-loader') + .loader('svgo-loader') + .options(getConfigPath()); + return config; + }); +}; diff --git a/packages/plugin-svg-icon/src/svgIcon.tpl b/packages/plugin-svg-icon/src/svgIcon.tpl new file mode 100644 index 00000000..474a6d5b --- /dev/null +++ b/packages/plugin-svg-icon/src/svgIcon.tpl @@ -0,0 +1,49 @@ +import React, { AnchorHTMLAttributes, ClassAttributes, forwardRef } from 'react'; +import classNames from 'classnames'; + +const requireAll = (requireContext: any) => { + requireContext?.keys()?.map(requireContext); +}; + +// @ts-ignore +try { + const req = require.context('./assets/svgs', false, /\.svg$/); + requireAll(req); +} catch (e) { + console.warn("[svg-icon] doesn't find svg files at './assets/svgs'!"); +} + +export type SvgIconProps = { + type: string, + className: string, + link: boolean, + ref: React.Ref; +} & ClassAttributes & AnchorHTMLAttributes +/** + * @description SvgIcon 组件,自动引入./assets/svgs目录下的所有svg文件并生成svg雪碧图

+ * + * @param type string svg文件名称 + * + * @param className string svg的文件名称 + * + * @param link boolean 是非为链接 如果为链接父组件将有 i 变成 a 标签 + * + * @param ref svg包裹的父层级的svg样式 + */ +export const SvgIcon = forwardRef((props: SvgIconProps, ref) => { + const { type, className, link, ...htmlProps } = props; + const iconName = `#icon-${type}`; + const iconClassName = classNames( + 'svg-icon', + `svg-icon-${props.type}`, + className, + ); + const Parent = link ? 'a' : 'i'; + return ( + + + + ); +}); diff --git a/packages/plugin-svg-icon/svgo-config.json b/packages/plugin-svg-icon/svgo-config.json new file mode 100644 index 00000000..7a42d37a --- /dev/null +++ b/packages/plugin-svg-icon/svgo-config.json @@ -0,0 +1,40 @@ +{ + "plugins": [ + { "cleanupAttrs": true }, + { "cleanupEnableBackground": true }, + { "cleanupIDs": true }, + { "cleanupListOfValues": true }, + { "cleanupNumericValues": true }, + { "collapseGroups": true }, + { "convertColors": true }, + { "convertPathData": true }, + { "convertShapeToPath": true }, + { "convertStyleToAttrs": true }, + { "convertTransform": true }, + { "mergePaths": true }, + { "removeComments": true }, + { "removeDesc": true }, + { "removeDimensions": true }, + { "removeDoctype": true }, + { "removeEditorsNSData": true }, + { "removeEmptyAttrs": true }, + { "removeEmptyContainers": true }, + { "removeEmptyText": true }, + { "removeHiddenElems": true }, + { "removeMetadata": true }, + { "removeNonInheritableGroupAttrs": true }, + { "removeRasterImages": true }, + { "removeTitle": true }, + { "removeUnknownsAndDefaults": true }, + { "removeUselessDefs": true }, + { "removeUnusedNS": true }, + { "removeUselessStrokeAndFill": true }, + { + "removeAttrs": { "attrs": "fill" } + }, + { "removeXMLProcInst": true }, + { "removeStyleElement": true }, + { "removeUnknownsAndDefaults": true }, + { "sortAttrs": true } + ] +} diff --git a/yarn.lock b/yarn.lock index a13f6e78..60232cff 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4211,6 +4211,11 @@ "@testing-library/dom" "^6.15.0" "@types/testing-library__react" "^9.1.2" +"@trysound/sax@0.1.1": + version "0.1.1" + resolved "http://registry.yarnpkg.com/@trysound%2fsax/-/sax-0.1.1.tgz#3348564048e7a2d7398c935d466c0414ebb6a669" + integrity sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow== + "@types/anymatch@*": version "1.3.1" resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" @@ -6956,7 +6961,7 @@ blob-util@^2.0.2: resolved "https://registry.yarnpkg.com/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb" integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ== -bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5, bluebird@^3.7.2: +bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5, bluebird@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -7014,7 +7019,7 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^2.3.1, braces@^2.3.2: +braces@^2.2.2, braces@^2.3.1, braces@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== @@ -7674,6 +7679,11 @@ classnames@2.x, classnames@^2.2.0, classnames@^2.2.1, classnames@^2.2.3, classna resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== +classnames@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" + integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== + clean-regexp@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clean-regexp/-/clean-regexp-1.0.0.tgz#8df7c7aae51fd36874e8f8d05b9180bc11a3fed7" @@ -8032,6 +8042,11 @@ commander@^5.1.0: resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== +commander@^7.1.0: + version "7.2.0" + resolved "http://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + common-tags@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" @@ -8637,6 +8652,17 @@ css-select@^2.0.0: domutils "^1.7.0" nth-check "^1.0.2" +css-select@^3.1.2: + version "3.1.2" + resolved "http://registry.yarnpkg.com/css-select/-/css-select-3.1.2.tgz#d52cbdc6fee379fba97fb0d3925abbd18af2d9d8" + integrity sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA== + dependencies: + boolbase "^1.0.0" + css-what "^4.0.0" + domhandler "^4.0.0" + domutils "^2.4.3" + nth-check "^2.0.0" + css-select@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" @@ -8679,6 +8705,14 @@ css-tree@1.0.0-alpha.39: mdn-data "2.0.6" source-map "^0.6.1" +css-tree@^1.1.2: + version "1.1.3" + resolved "http://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + css-what@2.1: version "2.1.3" resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" @@ -8689,6 +8723,11 @@ css-what@^3.2.1: resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.3.0.tgz#10fec696a9ece2e591ac772d759aacabac38cd39" integrity sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg== +css-what@^4.0.0: + version "4.0.0" + resolved "http://registry.yarnpkg.com/css-what/-/css-what-4.0.0.tgz#35e73761cab2eeb3d3661126b23d7aa0e8432233" + integrity sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A== + css.escape@1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" @@ -8784,6 +8823,13 @@ csso@^4.0.2: dependencies: css-tree "1.0.0-alpha.39" +csso@^4.2.0: + version "4.2.0" + resolved "http://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + cssom@0.3.x, cssom@^0.3.4, cssom@~0.3.6: version "0.3.8" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" @@ -9028,6 +9074,11 @@ deep-is@^0.1.3, deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= +deepmerge@1.3.2: + version "1.3.2" + resolved "http://registry.yarnpkg.com/deepmerge/-/deepmerge-1.3.2.tgz#1663691629d4dbfe364fa12a2a4f0aa86aa3a050" + integrity sha1-FmNpFinU2/42T6EqKk8KqGqjoFA= + deepmerge@4.2.2, deepmerge@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" @@ -9243,6 +9294,15 @@ dom-serializer@0: domelementtype "^2.0.1" entities "^2.0.0" +dom-serializer@^1.0.1: + version "1.3.1" + resolved "http://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.1.tgz#d845a1565d7c041a95e5dab62184ab41e3a519be" + integrity sha512-Pv2ZluG5ife96udGgEDovOOOA5UELkltfJpnIExPrAk1LTvecolUGn6lIaoLh86d83GiB86CjzciMd9BuRB71Q== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.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" @@ -9271,6 +9331,11 @@ domelementtype@^2.0.1: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== +domelementtype@^2.2.0: + version "2.2.0" + resolved "http://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + domexception@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" @@ -9285,11 +9350,23 @@ domhandler@^2.3.0: dependencies: domelementtype "1" +domhandler@^4.0.0, domhandler@^4.2.0: + version "4.2.0" + resolved "http://registry.yarnpkg.com/domhandler/-/domhandler-4.2.0.tgz#f9768a5f034be60a89a27c2e4d0f74eba0d8b059" + integrity sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA== + dependencies: + domelementtype "^2.2.0" + dompurify@^2.2.6: version "2.2.6" resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.2.6.tgz#54945dc5c0b45ce5ae228705777e8e59d7b2edc4" integrity sha1-VJRdxcC0XOWuIocFd36OWdey7cQ= +domready@1.0.8: + version "1.0.8" + resolved "http://registry.yarnpkg.com/domready/-/domready-1.0.8.tgz#91f252e597b65af77e745ae24dd0185d5e26d58c" + integrity sha1-kfJS5Ze2Wvd+dFriTdAYXV4m1Yw= + domutils@1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" @@ -9306,6 +9383,15 @@ domutils@^1.5.1, domutils@^1.7.0: dom-serializer "0" domelementtype "1" +domutils@^2.4.3: + version "2.6.0" + resolved "http://registry.yarnpkg.com/domutils/-/domutils-2.6.0.tgz#2e15c04185d43fb16ae7057cb76433c6edb938b7" + integrity sha512-y0BezHuy4MDYxh6OvolXYsH+1EMGmFbwv5FKW7ovwMG6zTPWqNPq3WF9ayZssFq+UlKdffGLbOEaghNdaOm1WA== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + dot-prop@^4.1.0, dot-prop@^4.2.0: version "4.2.1" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.1.tgz#45884194a71fc2cda71cbb4bceb3a4dd2f433ba4" @@ -9711,7 +9797,7 @@ escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= @@ -10526,7 +10612,7 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" -extglob@^2.0.4: +extglob@^2.0.2, extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== @@ -11793,6 +11879,11 @@ hastscript@^6.0.0: property-information "^5.0.0" space-separated-tokens "^1.0.0" +he@^1.1.1: + version "1.2.0" + resolved "http://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + hex-color-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" @@ -11913,7 +12004,7 @@ html-tags@^3.0.0, html-tags@^3.1.0: resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140" integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg== -htmlparser2@^3.10.0, htmlparser2@^3.9.1: +htmlparser2@^3.10.0, htmlparser2@^3.8.3, htmlparser2@^3.9.1: version "3.10.1" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== @@ -12110,7 +12201,7 @@ ignore@^5.0.4, ignore@^5.0.5, ignore@^5.0.6, ignore@^5.1.1, ignore@^5.1.4, ignor resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== -image-size@~0.5.0: +image-size@^0.5.1, image-size@~0.5.0: version "0.5.5" resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= @@ -12748,7 +12839,7 @@ is-plain-obj@2.1.0, is-plain-obj@^2.0.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: +is-plain-obj@^1.0.0, is-plain-obj@^1.1, is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= @@ -12938,7 +13029,7 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -isobject@^2.0.0: +isobject@^2.0.0, isobject@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= @@ -13519,6 +13610,11 @@ joycon@^2.2.5: resolved "https://registry.yarnpkg.com/joycon/-/joycon-2.2.5.tgz#8d4cf4cbb2544d7b7583c216fcdfec19f6be1615" integrity sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ== +js-base64@^2.1.9: + version "2.6.4" + resolved "http://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" + integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== + js-file-download@^0.4.12: version "0.4.12" resolved "https://registry.yarnpkg.com/js-file-download/-/js-file-download-0.4.12.tgz#10c70ef362559a5b23cdbdc3bd6f399c3d91d821" @@ -13822,7 +13918,7 @@ kind-of@^4.0.0: dependencies: is-buffer "^1.1.5" -kind-of@^5.0.0: +kind-of@^5.0.0, kind-of@^5.0.2: version "5.1.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== @@ -14171,7 +14267,7 @@ loader-runner@^2.4.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== -loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: +loader-utils@^1.0.2, loader-utils@^1.0.3, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== @@ -14693,6 +14789,11 @@ mdn-browser-compat-data@^1.0.28: dependencies: extend "3.0.2" +mdn-data@2.0.14: + version "2.0.14" + resolved "http://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" @@ -14882,6 +14983,13 @@ merge-descriptors@1.0.1: resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= +merge-options@1.0.1: + version "1.0.1" + resolved "http://registry.yarnpkg.com/merge-options/-/merge-options-1.0.1.tgz#2a64b24457becd4e4dc608283247e94ce589aa32" + integrity sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg== + dependencies: + is-plain-obj "^1.1" + merge-stream@2.0.0, merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -14912,6 +15020,25 @@ micromark@~2.11.0: debug "^4.0.0" parse-entities "^2.0.0" +micromatch@3.1.0: + version "3.1.0" + resolved "http://registry.yarnpkg.com/micromatch/-/micromatch-3.1.0.tgz#5102d4eaf20b6997d6008e3acfe1c44a3fa815e2" + integrity sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.2.2" + define-property "^1.0.0" + extend-shallow "^2.0.1" + extglob "^2.0.2" + fragment-cache "^0.2.1" + kind-of "^5.0.2" + nanomatch "^1.2.1" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" @@ -15127,6 +15254,11 @@ mississippi@^3.0.0: stream-each "^1.1.0" through2 "^2.0.0" +mitt@1.1.2: + version "1.1.2" + resolved "http://registry.yarnpkg.com/mitt/-/mitt-1.1.2.tgz#380e61480d6a615b660f07abb60d51e0a4e4bed6" + integrity sha1-OA5hSA1qYVtmDwertg1R4KTkvtY= + mixin-deep@^1.2.0: version "1.3.2" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" @@ -15301,7 +15433,7 @@ nanoid@^3.1.20: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz?cache=0&sync_timestamp=1606834232543&other_urls=https%3A%2F%2Fregistry.yarnpkg.com%2Fnanoid%2Fdownload%2Fnanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" integrity sha1-utwmPGsdzxS3HvqoX2q0wdbPx4g= -nanomatch@^1.2.9: +nanomatch@^1.2.1, nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== @@ -15693,6 +15825,13 @@ nth-check@^1.0.2, nth-check@~1.0.1: dependencies: boolbase "~1.0.0" +nth-check@^2.0.0: + version "2.0.0" + resolved "http://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125" + integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q== + dependencies: + boolbase "^1.0.0" + num2fraction@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" @@ -17167,6 +17306,13 @@ postcss-place@^4.0.1: postcss "^7.0.2" postcss-values-parser "^2.0.0" +postcss-prefix-selector@^1.6.0: + version "1.9.0" + resolved "http://registry.yarnpkg.com/postcss-prefix-selector/-/postcss-prefix-selector-1.9.0.tgz#db549802b79f9f91f7419c8c1f86d31d974aff5e" + integrity sha512-tTUHUNP+/Qfgg+fvbljUIeLs1ijICWb8+CT3bZM2joE2pkd+EnuBzSfZNHY2RMmozNRp44yEFv+I+6IIiLcoCg== + dependencies: + postcss "^7.0.0" + postcss-preset-env@6.7.0: version "6.7.0" resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz#c34ddacf8f902383b35ad1e030f178f4cdf118a5" @@ -17420,6 +17566,16 @@ postcss@7.0.32, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.13, postcss@^7.0.14 source-map "^0.6.1" supports-color "^6.1.0" +postcss@^5.2.17: + version "5.2.18" + resolved "http://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + postcss@^6.0.1: version "6.0.23" resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" @@ -17447,6 +17603,44 @@ postcss@^8.1.4, postcss@^8.1.6: nanoid "^3.1.20" source-map "^0.6.1" +posthtml-parser@^0.2.0, posthtml-parser@^0.2.1: + version "0.2.1" + resolved "http://registry.yarnpkg.com/posthtml-parser/-/posthtml-parser-0.2.1.tgz#35d530de386740c2ba24ff2eb2faf39ccdf271dd" + integrity sha1-NdUw3jhnQMK6JP8usvrznM3ycd0= + dependencies: + htmlparser2 "^3.8.3" + isobject "^2.1.0" + +posthtml-rename-id@^1.0: + version "1.0.12" + resolved "http://registry.yarnpkg.com/posthtml-rename-id/-/posthtml-rename-id-1.0.12.tgz#cf7f6eb37146bf1afac31e68f18c6cc19ae61433" + integrity sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw== + dependencies: + escape-string-regexp "1.0.5" + +posthtml-render@^1.0.5, posthtml-render@^1.0.6: + version "1.4.0" + resolved "http://registry.yarnpkg.com/posthtml-render/-/posthtml-render-1.4.0.tgz#40114070c45881cacb93347dae3eff53afbcff13" + integrity sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw== + +posthtml-svg-mode@^1.0.3: + version "1.0.3" + resolved "http://registry.yarnpkg.com/posthtml-svg-mode/-/posthtml-svg-mode-1.0.3.tgz#abd554face81223cab0cb367e18e4efd2a4e74b0" + integrity sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ== + dependencies: + merge-options "1.0.1" + posthtml "^0.9.2" + posthtml-parser "^0.2.1" + posthtml-render "^1.0.6" + +posthtml@^0.9.2: + version "0.9.2" + resolved "http://registry.yarnpkg.com/posthtml/-/posthtml-0.9.2.tgz#f4c06db9f67b61fd17c4e256e7e3d9515bf726fd" + integrity sha1-9MBtufZ7Yf0XxOJW5+PZUVv3Jv0= + dependencies: + posthtml-parser "^0.2.0" + posthtml-render "^1.0.5" + preact@^10.5.7: version "10.5.7" resolved "https://registry.yarnpkg.com/preact/-/preact-10.5.7.tgz#f1d84725539e18f7ccbea937cf3db5895661dbd3" @@ -17763,7 +17957,7 @@ qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== -query-string@^4.1.0: +query-string@^4.1.0, query-string@^4.3.2: version "4.3.4" resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= @@ -21060,16 +21254,66 @@ supports-hyperlinks@^2.0.0, supports-hyperlinks@^2.1.0: has-flag "^4.0.0" supports-color "^7.0.0" +svg-baker-runtime@^1.4.7: + version "1.4.7" + resolved "http://registry.yarnpkg.com/svg-baker-runtime/-/svg-baker-runtime-1.4.7.tgz#f4720637f5b6202eef6378d81f1fead0815f8a4e" + integrity sha512-Zorfwwj5+lWjk/oxwSMsRdS2sPQQdTmmsvaSpzU+i9ZWi3zugHLt6VckWfnswphQP0LmOel3nggpF5nETbt6xw== + dependencies: + deepmerge "1.3.2" + mitt "1.1.2" + svg-baker "^1.7.0" + +svg-baker@^1.5.0, svg-baker@^1.7.0: + version "1.7.0" + resolved "http://registry.yarnpkg.com/svg-baker/-/svg-baker-1.7.0.tgz#8367f78d875550c52fe4756f7303d5c5d7c2e9a7" + integrity sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg== + dependencies: + bluebird "^3.5.0" + clone "^2.1.1" + he "^1.1.1" + image-size "^0.5.1" + loader-utils "^1.1.0" + merge-options "1.0.1" + micromatch "3.1.0" + postcss "^5.2.17" + postcss-prefix-selector "^1.6.0" + posthtml-rename-id "^1.0" + posthtml-svg-mode "^1.0.3" + query-string "^4.3.2" + traverse "^0.6.6" + svg-parser@^2.0.0, svg-parser@^2.0.2: version "2.0.4" resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== +svg-sprite-loader@^6.0.6: + version "6.0.6" + resolved "http://registry.yarnpkg.com/svg-sprite-loader/-/svg-sprite-loader-6.0.6.tgz#8514cc52c472e53551a3f6bbc00065c8026e60b8" + integrity sha512-AcGvAH19iNuqGZ+DItYo0WOSl+TjTTGvx2pli9xNAFrGZ3UmO50rQRVt2+YJHPrvIAzdvxVv1EyIu/gEePAMCg== + dependencies: + bluebird "^3.5.0" + deepmerge "1.3.2" + domready "1.0.8" + escape-string-regexp "1.0.5" + loader-utils "^1.1.0" + svg-baker "^1.5.0" + svg-baker-runtime "^1.4.7" + url-slug "2.0.0" + svg-tags@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= +svgo-loader@^3.0.0: + version "3.0.0" + resolved "http://registry.yarnpkg.com/svgo-loader/-/svgo-loader-3.0.0.tgz#9112db53005bf3432dbb020542cd69b20a0d1e52" + integrity sha512-gwyFuzTxZ8hEWYKQ9GodudSKRHzW8CUqgdfsdNpu1U5Keow5dPIgxT4DoHUEVXQRolefgSCeBtW3y12CyhIGxw== + dependencies: + loader-utils "^1.0.3" + svgo "^2.2.0" + svgo@^1.0.0, svgo@^1.2.2: version "1.3.2" resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" @@ -21089,6 +21333,19 @@ svgo@^1.0.0, svgo@^1.2.2: unquote "~1.1.1" util.promisify "~1.0.0" +svgo@^2.2.0, svgo@^2.3.0: + version "2.3.0" + resolved "http://registry.yarnpkg.com/svgo/-/svgo-2.3.0.tgz#6b3af81d0cbd1e19c83f5f63cec2cb98c70b5373" + integrity sha512-fz4IKjNO6HDPgIQxu4IxwtubtbSfGEAJUq/IXyTPIkGhWck/faiiwfkvsB8LnBkKLvSoyNNIY6d13lZprJMc9Q== + dependencies: + "@trysound/sax" "0.1.1" + chalk "^4.1.0" + commander "^7.1.0" + css-select "^3.1.2" + css-tree "^1.1.2" + csso "^4.2.0" + stable "^0.1.8" + swagger-client@^3.12.2: version "3.12.2" resolved "https://registry.yarnpkg.com/swagger-client/-/swagger-client-3.12.2.tgz#c6d1148d749507d328a1647bd71f33166147387d" @@ -21615,7 +21872,7 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" -traverse@~0.6.6: +traverse@^0.6.6, traverse@~0.6.6: version "0.6.6" resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= @@ -21987,6 +22244,11 @@ unicode-property-aliases-ecmascript@^1.0.4: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== +unidecode@0.1.8: + version "0.1.8" + resolved "http://registry.yarnpkg.com/unidecode/-/unidecode-0.1.8.tgz#efbb301538bc45246a9ac8c559d72f015305053e" + integrity sha1-77swFTi8RSRqmsjFWdcvAVMFBT4= + unified@^6.1.2: version "6.2.0" resolved "https://registry.yarnpkg.com/unified/-/unified-6.2.0.tgz#7fbd630f719126d67d40c644b7e3f617035f6dba" @@ -22247,6 +22509,13 @@ url-parse@^1.4.3, url-parse@^1.4.7: querystringify "^2.1.1" requires-port "^1.0.0" +url-slug@2.0.0: + version "2.0.0" + resolved "http://registry.yarnpkg.com/url-slug/-/url-slug-2.0.0.tgz#a789d5aed4995c0d95af33377ad1d5c68d4d7027" + integrity sha1-p4nVrtSZXA2VrzM3etHVxo1NcCc= + dependencies: + unidecode "0.1.8" + url@^0.11.0, url@~0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"