Commit 993538de21dbb9e54e308afb40ff096ba0ab0e19

Authored by vben
1 parent d7531554

feat: added brotli|gzip compression and related test commands

.env.production
@@ -7,8 +7,10 @@ VITE_PUBLIC_PATH = / @@ -7,8 +7,10 @@ VITE_PUBLIC_PATH = /
7 # Delete console 7 # Delete console
8 VITE_DROP_CONSOLE = true 8 VITE_DROP_CONSOLE = true
9 9
10 -# Whether to output gz file for packaging  
11 -VITE_BUILD_GZIP = false 10 +# Whether to enable gizp or brotli compression
  11 +# Optional: gzip | brotli | none
  12 +# If you need multiple forms, you can use `,` to separate
  13 +VITE_BUILD_COMPRESS = 'gzip'
12 14
13 # Basic interface address SPA 15 # Basic interface address SPA
14 VITE_GLOB_API_URL=/api 16 VITE_GLOB_API_URL=/api
CHANGELOG.zh_CN.md
@@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
4 4
5 - useModal 新增返回值函数 `redoModalHeight`,用于在 modal 内为动态内容时刷新 modal 高度 5 - useModal 新增返回值函数 `redoModalHeight`,用于在 modal 内为动态内容时刷新 modal 高度
6 - 升级 husky 到 5.0 6 - 升级 husky 到 5.0
  7 +- 新增 `brotli`|`gzip`压缩及相关测试命令
7 8
8 ### 🐛 Bug Fixes 9 ### 🐛 Bug Fixes
9 10
README.md
@@ -257,3 +257,4 @@ If these plugins are helpful to you, you can give a star @@ -257,3 +257,4 @@ If these plugins are helpful to you, you can give a star
257 - [vite-plugin-style-import](https://github.com/anncwb/vite-plugin-style-import) 257 - [vite-plugin-style-import](https://github.com/anncwb/vite-plugin-style-import)
258 - [vite-plugin-theme](https://github.com/anncwb/vite-plugin-theme) 258 - [vite-plugin-theme](https://github.com/anncwb/vite-plugin-theme)
259 - [vite-plugin-imagemin](https://github.com/anncwb/vite-plugin-imagemin) 259 - [vite-plugin-imagemin](https://github.com/anncwb/vite-plugin-imagemin)
  260 +- [vite-plugin-compression](https://github.com/anncwb/vite-plugin-compression)
README.zh-CN.md
@@ -260,6 +260,7 @@ yarn clean:lib # 删除node_modules,兼容window系统 @@ -260,6 +260,7 @@ yarn clean:lib # 删除node_modules,兼容window系统
260 - [vite-plugin-style-import](https://github.com/anncwb/vite-plugin-style-import) 260 - [vite-plugin-style-import](https://github.com/anncwb/vite-plugin-style-import)
261 - [vite-plugin-theme](https://github.com/anncwb/vite-plugin-theme) 261 - [vite-plugin-theme](https://github.com/anncwb/vite-plugin-theme)
262 - [vite-plugin-imagemin](https://github.com/anncwb/vite-plugin-imagemin) 262 - [vite-plugin-imagemin](https://github.com/anncwb/vite-plugin-imagemin)
  263 +- [vite-plugin-compression](https://github.com/anncwb/vite-plugin-compression)
263 264
264 ## 加入我们 265 ## 加入我们
265 266
build/utils.ts
@@ -23,13 +23,6 @@ export function isReportMode(): boolean { @@ -23,13 +23,6 @@ export function isReportMode(): boolean {
23 return process.env.REPORT === 'true'; 23 return process.env.REPORT === 'true';
24 } 24 }
25 25
26 -/**  
27 - * Whether to generate gzip for packaging  
28 - */  
29 -export function isBuildGzip(): boolean {  
30 - return process.env.VITE_BUILD_GZIP === 'true';  
31 -}  
32 -  
33 export interface ViteEnv { 26 export interface ViteEnv {
34 VITE_PORT: number; 27 VITE_PORT: number;
35 VITE_USE_MOCK: boolean; 28 VITE_USE_MOCK: boolean;
@@ -40,7 +33,7 @@ export interface ViteEnv { @@ -40,7 +33,7 @@ export interface ViteEnv {
40 VITE_GLOB_APP_SHORT_NAME: string; 33 VITE_GLOB_APP_SHORT_NAME: string;
41 VITE_USE_CDN: boolean; 34 VITE_USE_CDN: boolean;
42 VITE_DROP_CONSOLE: boolean; 35 VITE_DROP_CONSOLE: boolean;
43 - VITE_BUILD_GZIP: boolean; 36 + VITE_BUILD_COMPRESS: 'gzip' | 'brotli' | 'none';
44 VITE_DYNAMIC_IMPORT: boolean; 37 VITE_DYNAMIC_IMPORT: boolean;
45 VITE_LEGACY: boolean; 38 VITE_LEGACY: boolean;
46 VITE_USE_IMAGEMIN: boolean; 39 VITE_USE_IMAGEMIN: boolean;
build/vite/plugin/compress.ts 0 → 100644
  1 +/**
  2 + * Used to package and output gzip. Note that this does not work properly in Vite, the specific reason is still being investigated
  3 + */
  4 +import type { Plugin } from 'vite';
  5 +
  6 +import compressPlugin from 'vite-plugin-compression';
  7 +
  8 +export function configCompressPlugin(compress: 'gzip' | 'brotli' | 'none'): Plugin | Plugin[] {
  9 + const compressList = compress.split(',');
  10 +
  11 + const plugins: Plugin[] = [];
  12 +
  13 + if (compressList.includes('gzip')) {
  14 + plugins.push(
  15 + compressPlugin({
  16 + ext: '.gz',
  17 + })
  18 + );
  19 + }
  20 + if (compressList.includes('brotli')) {
  21 + plugins.push(
  22 + compressPlugin({
  23 + ext: '.br',
  24 + algorithm: 'brotliCompress',
  25 + })
  26 + );
  27 + }
  28 + return plugins;
  29 +}
build/vite/plugin/gzip.ts deleted 100644 → 0
1 -/**  
2 - * Used to package and output gzip. Note that this does not work properly in Vite, the specific reason is still being investigated  
3 - */  
4 -import type { Plugin } from 'vite';  
5 -  
6 -import gzipPlugin from 'rollup-plugin-gzip';  
7 -import { isBuildGzip } from '../../utils';  
8 -  
9 -export function configGzipPlugin(isBuild: boolean): Plugin | Plugin[] {  
10 - const useGzip = isBuild && isBuildGzip();  
11 -  
12 - if (useGzip) {  
13 - return gzipPlugin();  
14 - }  
15 -  
16 - return [];  
17 -}  
build/vite/plugin/index.ts
@@ -9,14 +9,14 @@ import { ViteEnv } from '../../utils'; @@ -9,14 +9,14 @@ import { ViteEnv } from '../../utils';
9 import { configHtmlPlugin } from './html'; 9 import { configHtmlPlugin } from './html';
10 import { configPwaConfig } from './pwa'; 10 import { configPwaConfig } from './pwa';
11 import { configMockPlugin } from './mock'; 11 import { configMockPlugin } from './mock';
12 -import { configGzipPlugin } from './gzip'; 12 +import { configCompressPlugin } from './compress';
13 import { configStyleImportPlugin } from './styleImport'; 13 import { configStyleImportPlugin } from './styleImport';
14 import { configVisualizerConfig } from './visualizer'; 14 import { configVisualizerConfig } from './visualizer';
15 import { configThemePlugin } from './theme'; 15 import { configThemePlugin } from './theme';
16 import { configImageminPlugin } from './imagemin'; 16 import { configImageminPlugin } from './imagemin';
17 17
18 export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) { 18 export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) {
19 - const { VITE_USE_IMAGEMIN, VITE_USE_MOCK, VITE_LEGACY } = viteEnv; 19 + const { VITE_USE_IMAGEMIN, VITE_USE_MOCK, VITE_LEGACY, VITE_BUILD_COMPRESS } = viteEnv;
20 20
21 const vitePlugins: (Plugin | Plugin[])[] = [ 21 const vitePlugins: (Plugin | Plugin[])[] = [
22 // have to 22 // have to
@@ -52,7 +52,7 @@ export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) { @@ -52,7 +52,7 @@ export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) {
52 VITE_USE_IMAGEMIN && vitePlugins.push(configImageminPlugin()); 52 VITE_USE_IMAGEMIN && vitePlugins.push(configImageminPlugin());
53 53
54 // rollup-plugin-gzip 54 // rollup-plugin-gzip
55 - vitePlugins.push(configGzipPlugin(isBuild)); 55 + vitePlugins.push(configCompressPlugin(VITE_BUILD_COMPRESS));
56 56
57 // vite-plugin-pwa 57 // vite-plugin-pwa
58 vitePlugins.push(configPwaConfig(viteEnv)); 58 vitePlugins.push(configPwaConfig(viteEnv));
package.json
@@ -19,6 +19,8 @@ @@ -19,6 +19,8 @@
19 "lint:stylelint": "stylelint --fix \"**/*.{vue,less,postcss,css,scss}\" --cache --cache-location node_modules/.cache/stylelint/", 19 "lint:stylelint": "stylelint --fix \"**/*.{vue,less,postcss,css,scss}\" --cache --cache-location node_modules/.cache/stylelint/",
20 "lint:ls-lint": "ls-lint", 20 "lint:ls-lint": "ls-lint",
21 "lint:lint-staged": "lint-staged -c ./.husky/lintstagedrc.js", 21 "lint:lint-staged": "lint-staged -c ./.husky/lintstagedrc.js",
  22 + "test:gzip": "http-server dist --cors --gzip -c-1",
  23 + "test:br": "http-server dist --cors --brotli -c-1",
22 "reinstall": "rimraf yarn.lock && rimraf package.lock.json && rimraf node_modules && npm run bootstrap", 24 "reinstall": "rimraf yarn.lock && rimraf package.lock.json && rimraf node_modules && npm run bootstrap",
23 "postinstall": "is-ci || husky install" 25 "postinstall": "is-ci || husky install"
24 }, 26 },
@@ -53,7 +55,7 @@ @@ -53,7 +55,7 @@
53 "@ls-lint/ls-lint": "^1.9.2", 55 "@ls-lint/ls-lint": "^1.9.2",
54 "@purge-icons/generated": "^0.6.0", 56 "@purge-icons/generated": "^0.6.0",
55 "@types/echarts": "^4.9.3", 57 "@types/echarts": "^4.9.3",
56 - "@types/fs-extra": "^9.0.6", 58 + "@types/fs-extra": "^9.0.7",
57 "@types/http-proxy": "^1.17.5", 59 "@types/http-proxy": "^1.17.5",
58 "@types/koa-static": "^4.0.1", 60 "@types/koa-static": "^4.0.1",
59 "@types/lodash-es": "^4.17.4", 61 "@types/lodash-es": "^4.17.4",
@@ -66,9 +68,9 @@ @@ -66,9 +68,9 @@
66 "@types/zxcvbn": "^4.4.0", 68 "@types/zxcvbn": "^4.4.0",
67 "@typescript-eslint/eslint-plugin": "^4.15.0", 69 "@typescript-eslint/eslint-plugin": "^4.15.0",
68 "@typescript-eslint/parser": "^4.15.0", 70 "@typescript-eslint/parser": "^4.15.0",
69 - "@vitejs/plugin-legacy": "^1.2.3", 71 + "@vitejs/plugin-legacy": "^1.3.0",
70 "@vitejs/plugin-vue": "^1.1.4", 72 "@vitejs/plugin-vue": "^1.1.4",
71 - "@vitejs/plugin-vue-jsx": "^1.0.3", 73 + "@vitejs/plugin-vue-jsx": "^1.1.0",
72 "@vue/compiler-sfc": "^3.0.5", 74 "@vue/compiler-sfc": "^3.0.5",
73 "@vuedx/typecheck": "^0.6.3", 75 "@vuedx/typecheck": "^0.6.3",
74 "@vuedx/typescript-plugin-vue": "^0.6.3", 76 "@vuedx/typescript-plugin-vue": "^0.6.3",
@@ -83,28 +85,29 @@ @@ -83,28 +85,29 @@
83 "eslint-plugin-vue": "^7.5.0", 85 "eslint-plugin-vue": "^7.5.0",
84 "esno": "^0.4.3", 86 "esno": "^0.4.3",
85 "fs-extra": "^9.1.0", 87 "fs-extra": "^9.1.0",
  88 + "http-server": "^0.12.3",
86 "husky": "^5.0.9", 89 "husky": "^5.0.9",
87 "is-ci": "^2.0.0", 90 "is-ci": "^2.0.0",
88 "less": "^4.1.1", 91 "less": "^4.1.1",
89 "lint-staged": "^10.5.4", 92 "lint-staged": "^10.5.4",
90 "prettier": "^2.2.1", 93 "prettier": "^2.2.1",
91 "rimraf": "^3.0.2", 94 "rimraf": "^3.0.2",
92 - "rollup-plugin-gzip": "^2.5.0",  
93 "rollup-plugin-visualizer": "^4.2.0", 95 "rollup-plugin-visualizer": "^4.2.0",
94 - "stylelint": "^13.9.0", 96 + "stylelint": "^13.10.0",
95 "stylelint-config-prettier": "^8.0.2", 97 "stylelint-config-prettier": "^8.0.2",
96 "stylelint-config-standard": "^20.0.0", 98 "stylelint-config-standard": "^20.0.0",
97 "stylelint-order": "^4.1.0", 99 "stylelint-order": "^4.1.0",
98 "ts-node": "^9.1.1", 100 "ts-node": "^9.1.1",
99 - "typescript": "^4.1.3",  
100 - "vite": "2.0.0-beta.66", 101 + "typescript": "^4.1.5",
  102 + "vite": "2.0.0-beta.69",
  103 + "vite-plugin-compression": "^0.2.1",
101 "vite-plugin-html": "^2.0.0", 104 "vite-plugin-html": "^2.0.0",
102 - "vite-plugin-imagemin": "^0.2.5", 105 + "vite-plugin-imagemin": "^0.2.6",
103 "vite-plugin-mock": "^2.1.4", 106 "vite-plugin-mock": "^2.1.4",
104 "vite-plugin-purge-icons": "^0.6.0", 107 "vite-plugin-purge-icons": "^0.6.0",
105 "vite-plugin-pwa": "^0.4.6", 108 "vite-plugin-pwa": "^0.4.6",
106 "vite-plugin-style-import": "^0.7.2", 109 "vite-plugin-style-import": "^0.7.2",
107 - "vite-plugin-theme": "^0.4.2", 110 + "vite-plugin-theme": "^0.4.3",
108 "vue-eslint-parser": "^7.4.1", 111 "vue-eslint-parser": "^7.4.1",
109 "yargs": "^16.2.0" 112 "yargs": "^16.2.0"
110 }, 113 },
vite.config.ts
@@ -30,13 +30,15 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { @@ -30,13 +30,15 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
30 return { 30 return {
31 base: VITE_PUBLIC_PATH, 31 base: VITE_PUBLIC_PATH,
32 root, 32 root,
33 - alias: [  
34 - {  
35 - // /@/xxxx => src/xxx  
36 - find: /^\/@\//,  
37 - replacement: pathResolve('src') + '/',  
38 - },  
39 - ], 33 + resolve: {
  34 + alias: [
  35 + {
  36 + // /@/xxxx => src/xxx
  37 + find: /^\/@\//,
  38 + replacement: pathResolve('src') + '/',
  39 + },
  40 + ],
  41 + },
40 server: { 42 server: {
41 port: VITE_PORT, 43 port: VITE_PORT,
42 // Load proxy configuration from .env 44 // Load proxy configuration from .env
@@ -88,6 +90,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { @@ -88,6 +90,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
88 optimizeDeps: { 90 optimizeDeps: {
89 // @iconify/iconify: The dependency is dynamically and virtually loaded by @purge-icons/generated, so it needs to be specified explicitly 91 // @iconify/iconify: The dependency is dynamically and virtually loaded by @purge-icons/generated, so it needs to be specified explicitly
90 include: ['@iconify/iconify'], 92 include: ['@iconify/iconify'],
  93 + exclude: ['vue-demi'],
91 }, 94 },
92 }; 95 };
93 }; 96 };
yarn.lock
@@ -1478,10 +1478,10 @@ @@ -1478,10 +1478,10 @@
1478 "@types/qs" "*" 1478 "@types/qs" "*"
1479 "@types/serve-static" "*" 1479 "@types/serve-static" "*"
1480 1480
1481 -"@types/fs-extra@^9.0.6":  
1482 - version "9.0.6"  
1483 - resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.6.tgz#488e56b77299899a608b8269719c1d133027a6ab"  
1484 - integrity sha512-ecNRHw4clCkowNOBJH1e77nvbPxHYnWIXMv1IAoG/9+MYGkgoyr3Ppxr7XYFNL41V422EDhyV4/4SSK8L2mlig== 1481 +"@types/fs-extra@^9.0.7":
  1482 + version "9.0.7"
  1483 + resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.7.tgz#a9ef2ffdab043def080c5bec94c03402f793577f"
  1484 + integrity sha512-YGq2A6Yc3bldrLUlm17VNWOnUbnEzJ9CMgOeLFtQF3HOCN5lQBO8VyjG00a5acA5NNSM30kHVGp1trZgnVgi1Q==
1485 dependencies: 1485 dependencies:
1486 "@types/node" "*" 1486 "@types/node" "*"
1487 1487
@@ -1829,20 +1829,21 @@ @@ -1829,20 +1829,21 @@
1829 "@typescript-eslint/types" "4.15.0" 1829 "@typescript-eslint/types" "4.15.0"
1830 eslint-visitor-keys "^2.0.0" 1830 eslint-visitor-keys "^2.0.0"
1831 1831
1832 -"@vitejs/plugin-legacy@^1.2.3":  
1833 - version "1.2.3"  
1834 - resolved "https://registry.npmjs.org/@vitejs/plugin-legacy/-/plugin-legacy-1.2.3.tgz#1007033b0a328e5c0d8d21683383dc40d8fed6a3"  
1835 - integrity sha512-DOceNUiGkN/Iv3dFJGDwJMdIFv4N+5vDt96MdBFOFMlktt1fumOuNJvyCBE8TKc0qC0K5YSxUXpfKeKZhkkyLQ== 1832 +"@vitejs/plugin-legacy@^1.3.0":
  1833 + version "1.3.0"
  1834 + resolved "https://registry.npmjs.org/@vitejs/plugin-legacy/-/plugin-legacy-1.3.0.tgz#1b4f5d46e0cc3eb7d415f7aa9a9b655c2f593325"
  1835 + integrity sha512-lNNNuFIZ3bTnAPlu/dvqi383+mpqVuoo0XpM4WtgxMQHNxK1rTk2liwlxxQk0/ivUJuvYo67YKq0GD1JkrQk5Q==
1836 dependencies: 1836 dependencies:
1837 "@babel/standalone" "^7.12.12" 1837 "@babel/standalone" "^7.12.12"
1838 core-js "^3.8.2" 1838 core-js "^3.8.2"
  1839 + magic-string "^0.25.7"
1839 regenerator-runtime "^0.13.7" 1840 regenerator-runtime "^0.13.7"
1840 systemjs "^6.8.3" 1841 systemjs "^6.8.3"
1841 1842
1842 -"@vitejs/plugin-vue-jsx@^1.0.3":  
1843 - version "1.0.3"  
1844 - resolved "https://registry.npmjs.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-1.0.3.tgz#3f59884ce47886cd6e6cd794877e3e9e0df98cb4"  
1845 - integrity sha512-ZidQqRkb3BoH0xhYZ8gO+F+DVYEirg+MafzOJ1WUXXGn5peRIiy+k22KsuyC3bguL37SN6rx5ypjeef1r/qqOw== 1843 +"@vitejs/plugin-vue-jsx@^1.1.0":
  1844 + version "1.1.0"
  1845 + resolved "https://registry.npmjs.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-1.1.0.tgz#9bd45834db9e8d29a569e330917142c073dab347"
  1846 + integrity sha512-7fpB9rdhWZ7DSdcK/w2sEuSaeOiSyhwu/2ojwl8qz1pshWEPQj9F2g9TaZtEBz298nOKBM0hUOCcKKRUO8Ga8A==
1846 dependencies: 1847 dependencies:
1847 "@babel/core" "^7.12.10" 1848 "@babel/core" "^7.12.10"
1848 "@babel/plugin-syntax-import-meta" "^7.10.4" 1849 "@babel/plugin-syntax-import-meta" "^7.10.4"
@@ -2341,6 +2342,13 @@ async@0.9.x: @@ -2341,6 +2342,13 @@ async@0.9.x:
2341 resolved "https://registry.npmjs.org/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" 2342 resolved "https://registry.npmjs.org/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
2342 integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= 2343 integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=
2343 2344
  2345 +async@^2.6.2:
  2346 + version "2.6.3"
  2347 + resolved "https://registry.npmjs.org/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
  2348 + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==
  2349 + dependencies:
  2350 + lodash "^4.17.14"
  2351 +
2344 at-least-node@^1.0.0: 2352 at-least-node@^1.0.0:
2345 version "1.0.0" 2353 version "1.0.0"
2346 resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" 2354 resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
@@ -2418,6 +2426,11 @@ base@^0.11.1: @@ -2418,6 +2426,11 @@ base@^0.11.1:
2418 mixin-deep "^1.2.0" 2426 mixin-deep "^1.2.0"
2419 pascalcase "^0.1.1" 2427 pascalcase "^0.1.1"
2420 2428
  2429 +basic-auth@^1.0.3:
  2430 + version "1.1.0"
  2431 + resolved "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz#45221ee429f7ee1e5035be3f51533f1cdfd29884"
  2432 + integrity sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ=
  2433 +
2421 big.js@^5.2.2: 2434 big.js@^5.2.2:
2422 version "5.2.2" 2435 version "5.2.2"
2423 resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" 2436 resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
@@ -2970,6 +2983,11 @@ colorette@^1.2.1: @@ -2970,6 +2983,11 @@ colorette@^1.2.1:
2970 resolved "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" 2983 resolved "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b"
2971 integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== 2984 integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==
2972 2985
  2986 +colors@^1.4.0:
  2987 + version "1.4.0"
  2988 + resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
  2989 + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==
  2990 +
2973 commander@*: 2991 commander@*:
2974 version "7.0.0" 2992 version "7.0.0"
2975 resolved "https://registry.npmjs.org/commander/-/commander-7.0.0.tgz#3e2bbfd8bb6724760980988fb5b22b7ee6b71ab2" 2993 resolved "https://registry.npmjs.org/commander/-/commander-7.0.0.tgz#3e2bbfd8bb6724760980988fb5b22b7ee6b71ab2"
@@ -3304,6 +3322,11 @@ core-util-is@~1.0.0: @@ -3304,6 +3322,11 @@ core-util-is@~1.0.0:
3304 resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 3322 resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
3305 integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 3323 integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
3306 3324
  3325 +corser@^2.0.1:
  3326 + version "2.0.1"
  3327 + resolved "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz#8eda252ecaab5840dcd975ceb90d9370c819ff87"
  3328 + integrity sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=
  3329 +
3307 cosmiconfig@^7.0.0: 3330 cosmiconfig@^7.0.0:
3308 version "7.0.0" 3331 version "7.0.0"
3309 resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" 3332 resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3"
@@ -3498,7 +3521,7 @@ debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, d @@ -3498,7 +3521,7 @@ debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, d
3498 dependencies: 3521 dependencies:
3499 ms "2.1.2" 3522 ms "2.1.2"
3500 3523
3501 -debug@^3.2.6: 3524 +debug@^3.1.1, debug@^3.2.6:
3502 version "3.2.7" 3525 version "3.2.7"
3503 resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" 3526 resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
3504 integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== 3527 integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
@@ -3788,6 +3811,16 @@ echarts@^4.9.0: @@ -3788,6 +3811,16 @@ echarts@^4.9.0:
3788 dependencies: 3811 dependencies:
3789 zrender "4.3.2" 3812 zrender "4.3.2"
3790 3813
  3814 +ecstatic@^3.3.2:
  3815 + version "3.3.2"
  3816 + resolved "https://registry.npmjs.org/ecstatic/-/ecstatic-3.3.2.tgz#6d1dd49814d00594682c652adb66076a69d46c48"
  3817 + integrity sha512-fLf9l1hnwrHI2xn9mEDT7KIi22UDqA2jaCwyCbSUJh9a1V+LEUSL/JO/6TIz/QyuBURWUHrFL5Kg2TtO1bkkog==
  3818 + dependencies:
  3819 + he "^1.1.1"
  3820 + mime "^1.6.0"
  3821 + minimist "^1.1.0"
  3822 + url-join "^2.0.5"
  3823 +
3791 ee-first@1.1.1: 3824 ee-first@1.1.1:
3792 version "1.1.1" 3825 version "1.1.1"
3793 resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 3826 resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
@@ -4119,6 +4152,11 @@ esutils@^2.0.2: @@ -4119,6 +4152,11 @@ esutils@^2.0.2:
4119 resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 4152 resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
4120 integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 4153 integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
4121 4154
  4155 +eventemitter3@^4.0.0:
  4156 + version "4.0.7"
  4157 + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
  4158 + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
  4159 +
4122 exec-buffer@^3.0.0: 4160 exec-buffer@^3.0.0:
4123 version "3.2.0" 4161 version "3.2.0"
4124 resolved "https://registry.npmjs.org/exec-buffer/-/exec-buffer-3.2.0.tgz#b1686dbd904c7cf982e652c1f5a79b1e5573082b" 4162 resolved "https://registry.npmjs.org/exec-buffer/-/exec-buffer-3.2.0.tgz#b1686dbd904c7cf982e652c1f5a79b1e5573082b"
@@ -4520,6 +4558,11 @@ flatted@^3.1.0: @@ -4520,6 +4558,11 @@ flatted@^3.1.0:
4520 resolved "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" 4558 resolved "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469"
4521 integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== 4559 integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==
4522 4560
  4561 +follow-redirects@^1.0.0:
  4562 + version "1.13.2"
  4563 + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.2.tgz#dd73c8effc12728ba5cf4259d760ea5fb83e3147"
  4564 + integrity sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA==
  4565 +
4523 follow-redirects@^1.10.0: 4566 follow-redirects@^1.10.0:
4524 version "1.13.1" 4567 version "1.13.1"
4525 resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz#5f69b813376cee4fd0474a3aba835df04ab763b7" 4568 resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz#5f69b813376cee4fd0474a3aba835df04ab763b7"
@@ -5010,7 +5053,7 @@ hash-sum@^2.0.0: @@ -5010,7 +5053,7 @@ hash-sum@^2.0.0:
5010 resolved "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" 5053 resolved "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a"
5011 integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== 5054 integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==
5012 5055
5013 -he@^1.2.0: 5056 +he@^1.1.1, he@^1.2.0:
5014 version "1.2.0" 5057 version "1.2.0"
5015 resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" 5058 resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
5016 integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== 5059 integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
@@ -5098,6 +5141,31 @@ http-errors@1.7.2: @@ -5098,6 +5141,31 @@ http-errors@1.7.2:
5098 statuses ">= 1.5.0 < 2" 5141 statuses ">= 1.5.0 < 2"
5099 toidentifier "1.0.0" 5142 toidentifier "1.0.0"
5100 5143
  5144 +http-proxy@^1.18.0:
  5145 + version "1.18.1"
  5146 + resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549"
  5147 + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==
  5148 + dependencies:
  5149 + eventemitter3 "^4.0.0"
  5150 + follow-redirects "^1.0.0"
  5151 + requires-port "^1.0.0"
  5152 +
  5153 +http-server@^0.12.3:
  5154 + version "0.12.3"
  5155 + resolved "https://registry.npmjs.org/http-server/-/http-server-0.12.3.tgz#ba0471d0ecc425886616cb35c4faf279140a0d37"
  5156 + integrity sha512-be0dKG6pni92bRjq0kvExtj/NrrAd28/8fCXkaI/4piTwQMSDSLMhWyW0NI1V+DBI3aa1HMlQu46/HjVLfmugA==
  5157 + dependencies:
  5158 + basic-auth "^1.0.3"
  5159 + colors "^1.4.0"
  5160 + corser "^2.0.1"
  5161 + ecstatic "^3.3.2"
  5162 + http-proxy "^1.18.0"
  5163 + minimist "^1.2.5"
  5164 + opener "^1.5.1"
  5165 + portfinder "^1.0.25"
  5166 + secure-compare "3.0.1"
  5167 + union "~0.5.0"
  5168 +
5101 https-proxy-agent@^5.0.0: 5169 https-proxy-agent@^5.0.0:
5102 version "5.0.0" 5170 version "5.0.0"
5103 resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" 5171 resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2"
@@ -5834,10 +5902,10 @@ kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: @@ -5834,10 +5902,10 @@ kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3:
5834 resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" 5902 resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
5835 integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== 5903 integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
5836 5904
5837 -known-css-properties@^0.20.0:  
5838 - version "0.20.0"  
5839 - resolved "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.20.0.tgz#0570831661b47dd835293218381166090ff60e96"  
5840 - integrity sha512-URvsjaA9ypfreqJ2/ylDr5MUERhJZ+DhguoWRr2xgS5C7aGCalXo+ewL+GixgKBfhT2vuL02nbIgNGqVWgTOYw== 5905 +known-css-properties@^0.21.0:
  5906 + version "0.21.0"
  5907 + resolved "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.21.0.tgz#15fbd0bbb83447f3ce09d8af247ed47c68ede80d"
  5908 + integrity sha512-sZLUnTqimCkvkgRS+kbPlYW5o8q5w1cu+uIisKpEWkj31I8mx8kNG162DwRav8Zirkva6N5uoFsm9kzK4mUXjw==
5841 5909
5842 less@^4.1.1: 5910 less@^4.1.1:
5843 version "4.1.1" 5911 version "4.1.1"
@@ -6348,7 +6416,7 @@ mime-types@~2.1.24: @@ -6348,7 +6416,7 @@ mime-types@~2.1.24:
6348 dependencies: 6416 dependencies:
6349 mime-db "1.45.0" 6417 mime-db "1.45.0"
6350 6418
6351 -mime@^1.4.1: 6419 +mime@^1.4.1, mime@^1.6.0:
6352 version "1.6.0" 6420 version "1.6.0"
6353 resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 6421 resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
6354 integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== 6422 integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
@@ -6389,7 +6457,7 @@ minimist-options@4.1.0: @@ -6389,7 +6457,7 @@ minimist-options@4.1.0:
6389 is-plain-obj "^1.1.0" 6457 is-plain-obj "^1.1.0"
6390 kind-of "^6.0.3" 6458 kind-of "^6.0.3"
6391 6459
6392 -minimist@1.2.5, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: 6460 +minimist@1.2.5, minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5:
6393 version "1.2.5" 6461 version "1.2.5"
6394 resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 6462 resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
6395 integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 6463 integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
@@ -6402,7 +6470,7 @@ mixin-deep@^1.2.0: @@ -6402,7 +6470,7 @@ mixin-deep@^1.2.0:
6402 for-in "^1.0.2" 6470 for-in "^1.0.2"
6403 is-extendable "^1.0.1" 6471 is-extendable "^1.0.1"
6404 6472
6405 -mkdirp@~0.5.1: 6473 +mkdirp@^0.5.5, mkdirp@~0.5.1:
6406 version "0.5.5" 6474 version "0.5.5"
6407 resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" 6475 resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
6408 integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== 6476 integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
@@ -6736,6 +6804,11 @@ open@^7.0.3: @@ -6736,6 +6804,11 @@ open@^7.0.3:
6736 is-docker "^2.0.0" 6804 is-docker "^2.0.0"
6737 is-wsl "^2.1.1" 6805 is-wsl "^2.1.1"
6738 6806
  6807 +opener@^1.5.1:
  6808 + version "1.5.2"
  6809 + resolved "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598"
  6810 + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==
  6811 +
6739 optionator@^0.9.1: 6812 optionator@^0.9.1:
6740 version "0.9.1" 6813 version "0.9.1"
6741 resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" 6814 resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
@@ -7146,6 +7219,15 @@ pngquant-bin@^6.0.0: @@ -7146,6 +7219,15 @@ pngquant-bin@^6.0.0:
7146 execa "^4.0.0" 7219 execa "^4.0.0"
7147 logalot "^2.0.0" 7220 logalot "^2.0.0"
7148 7221
  7222 +portfinder@^1.0.25:
  7223 + version "1.0.28"
  7224 + resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778"
  7225 + integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==
  7226 + dependencies:
  7227 + async "^2.6.2"
  7228 + debug "^3.1.1"
  7229 + mkdirp "^0.5.5"
  7230 +
7149 posix-character-classes@^0.1.0: 7231 posix-character-classes@^0.1.0:
7150 version "0.1.1" 7232 version "0.1.1"
7151 resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" 7233 resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
@@ -7389,6 +7471,11 @@ qs@6.7.0: @@ -7389,6 +7471,11 @@ qs@6.7.0:
7389 resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" 7471 resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
7390 integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== 7472 integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
7391 7473
  7474 +qs@^6.4.0:
  7475 + version "6.9.6"
  7476 + resolved "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz#26ed3c8243a431b2924aca84cc90471f35d5a0ee"
  7477 + integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==
  7478 +
7392 query-string@^5.0.1: 7479 query-string@^5.0.1:
7393 version "5.1.1" 7480 version "5.1.1"
7394 resolved "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" 7481 resolved "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb"
@@ -7656,6 +7743,11 @@ require-main-filename@^2.0.0: @@ -7656,6 +7743,11 @@ require-main-filename@^2.0.0:
7656 resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" 7743 resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
7657 integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== 7744 integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
7658 7745
  7746 +requires-port@^1.0.0:
  7747 + version "1.0.0"
  7748 + resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
  7749 + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=
  7750 +
7659 resize-observer-polyfill@^1.5.1: 7751 resize-observer-polyfill@^1.5.1:
7660 version "1.5.1" 7752 version "1.5.1"
7661 resolved "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" 7753 resolved "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464"
@@ -7755,11 +7847,6 @@ rollup-plugin-esbuild@^2.6.1: @@ -7755,11 +7847,6 @@ rollup-plugin-esbuild@^2.6.1:
7755 joycon "^2.2.5" 7847 joycon "^2.2.5"
7756 strip-json-comments "^3.1.1" 7848 strip-json-comments "^3.1.1"
7757 7849
7758 -rollup-plugin-gzip@^2.5.0:  
7759 - version "2.5.0"  
7760 - resolved "https://registry.npmjs.org/rollup-plugin-gzip/-/rollup-plugin-gzip-2.5.0.tgz#786650e7bddf86d7f723c205c3e3018ea727388c"  
7761 - integrity sha512-1N0xtJJ8XfZYklZN1QcMLe+Mos2Vaccy3YUarE/AB1RkH7mkeppkFAz9srh+9KWOC3I2LWJeAYwFabO0rJ4mxg==  
7762 -  
7763 rollup-plugin-purge-icons@^0.6.0: 7850 rollup-plugin-purge-icons@^0.6.0:
7764 version "0.6.0" 7851 version "0.6.0"
7765 resolved "https://registry.npmjs.org/rollup-plugin-purge-icons/-/rollup-plugin-purge-icons-0.6.0.tgz#cfddf4935107180bdb14385228449c0d8b0557a2" 7852 resolved "https://registry.npmjs.org/rollup-plugin-purge-icons/-/rollup-plugin-purge-icons-0.6.0.tgz#cfddf4935107180bdb14385228449c0d8b0557a2"
@@ -7861,6 +7948,11 @@ scroll-into-view-if-needed@^2.2.25: @@ -7861,6 +7948,11 @@ scroll-into-view-if-needed@^2.2.25:
7861 dependencies: 7948 dependencies:
7862 compute-scroll-into-view "^1.0.16" 7949 compute-scroll-into-view "^1.0.16"
7863 7950
  7951 +secure-compare@3.0.1:
  7952 + version "3.0.1"
  7953 + resolved "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz#f1a0329b308b221fae37b9974f3d578d0ca999e3"
  7954 + integrity sha1-8aAymzCLIh+uN7mXTz1XjQypmeM=
  7955 +
7864 seek-bzip@^1.0.5: 7956 seek-bzip@^1.0.5:
7865 version "1.0.6" 7957 version "1.0.6"
7866 resolved "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz#35c4171f55a680916b52a07859ecf3b5857f21c4" 7958 resolved "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz#35c4171f55a680916b52a07859ecf3b5857f21c4"
@@ -8436,10 +8528,10 @@ stylelint-order@^4.1.0: @@ -8436,10 +8528,10 @@ stylelint-order@^4.1.0:
8436 postcss "^7.0.31" 8528 postcss "^7.0.31"
8437 postcss-sorting "^5.0.1" 8529 postcss-sorting "^5.0.1"
8438 8530
8439 -stylelint@^13.9.0:  
8440 - version "13.9.0"  
8441 - resolved "https://registry.npmjs.org/stylelint/-/stylelint-13.9.0.tgz#93921ee6e11d4556b9f31131f485dc813b68e32a"  
8442 - integrity sha512-VVWH2oixOAxpWL1vH+V42ReCzBjW2AeqskSAbi8+3OjV1Xg3VZkmTcAqBZfRRvJeF4BvYuDLXebW3tIHxgZDEg== 8531 +stylelint@^13.10.0:
  8532 + version "13.10.0"
  8533 + resolved "https://registry.npmjs.org/stylelint/-/stylelint-13.10.0.tgz#67b0c6f378c3fa61aa569a55d38feb8570b0b587"
  8534 + integrity sha512-eDuLrL0wzPKbl5/TbNGZcbw0lTIGbDEr5W6lCODvb1gAg0ncbgCRt7oU0C2VFDvbrcY0A3MFZOwltwTRmc0XCw==
8443 dependencies: 8535 dependencies:
8444 "@stylelint/postcss-css-in-js" "^0.37.2" 8536 "@stylelint/postcss-css-in-js" "^0.37.2"
8445 "@stylelint/postcss-markdown" "^0.36.2" 8537 "@stylelint/postcss-markdown" "^0.36.2"
@@ -8460,7 +8552,7 @@ stylelint@^13.9.0: @@ -8460,7 +8552,7 @@ stylelint@^13.9.0:
8460 ignore "^5.1.8" 8552 ignore "^5.1.8"
8461 import-lazy "^4.0.0" 8553 import-lazy "^4.0.0"
8462 imurmurhash "^0.1.4" 8554 imurmurhash "^0.1.4"
8463 - known-css-properties "^0.20.0" 8555 + known-css-properties "^0.21.0"
8464 lodash "^4.17.20" 8556 lodash "^4.17.20"
8465 log-symbols "^4.0.0" 8557 log-symbols "^4.0.0"
8466 mathml-tag-names "^2.1.3" 8558 mathml-tag-names "^2.1.3"
@@ -8909,11 +9001,16 @@ typedarray-to-buffer@^3.1.5: @@ -8909,11 +9001,16 @@ typedarray-to-buffer@^3.1.5:
8909 dependencies: 9001 dependencies:
8910 is-typedarray "^1.0.0" 9002 is-typedarray "^1.0.0"
8911 9003
8912 -typescript@^4.0.3, typescript@^4.1.3: 9004 +typescript@^4.0.3:
8913 version "4.1.3" 9005 version "4.1.3"
8914 resolved "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7" 9006 resolved "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7"
8915 integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg== 9007 integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==
8916 9008
  9009 +typescript@^4.1.5:
  9010 + version "4.1.5"
  9011 + resolved "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz#123a3b214aaff3be32926f0d8f1f6e704eb89a72"
  9012 + integrity sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==
  9013 +
8917 uglify-js@^3.1.4: 9014 uglify-js@^3.1.4:
8918 version "3.12.5" 9015 version "3.12.5"
8919 resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.12.5.tgz#83241496087c640efe9dfc934832e71725aba008" 9016 resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.12.5.tgz#83241496087c640efe9dfc934832e71725aba008"
@@ -8972,6 +9069,13 @@ union-value@^1.0.0: @@ -8972,6 +9069,13 @@ union-value@^1.0.0:
8972 is-extendable "^0.1.1" 9069 is-extendable "^0.1.1"
8973 set-value "^2.0.1" 9070 set-value "^2.0.1"
8974 9071
  9072 +union@~0.5.0:
  9073 + version "0.5.0"
  9074 + resolved "https://registry.npmjs.org/union/-/union-0.5.0.tgz#b2c11be84f60538537b846edb9ba266ba0090075"
  9075 + integrity sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==
  9076 + dependencies:
  9077 + qs "^6.4.0"
  9078 +
8975 uniq@^1.0.1: 9079 uniq@^1.0.1:
8976 version "1.0.1" 9080 version "1.0.1"
8977 resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" 9081 resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
@@ -9062,6 +9166,11 @@ urix@^0.1.0: @@ -9062,6 +9166,11 @@ urix@^0.1.0:
9062 resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" 9166 resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
9063 integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= 9167 integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
9064 9168
  9169 +url-join@^2.0.5:
  9170 + version "2.0.5"
  9171 + resolved "https://registry.npmjs.org/url-join/-/url-join-2.0.5.tgz#5af22f18c052a000a48d7b82c5e9c2e2feeda728"
  9172 + integrity sha1-WvIvGMBSoACkjXuCxenC4v7tpyg=
  9173 +
9065 url-parse-lax@^1.0.0: 9174 url-parse-lax@^1.0.0:
9066 version "1.0.0" 9175 version "1.0.0"
9067 resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" 9176 resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73"
@@ -9154,6 +9263,15 @@ vfile@^4.0.0: @@ -9154,6 +9263,15 @@ vfile@^4.0.0:
9154 unist-util-stringify-position "^2.0.0" 9263 unist-util-stringify-position "^2.0.0"
9155 vfile-message "^2.0.0" 9264 vfile-message "^2.0.0"
9156 9265
  9266 +vite-plugin-compression@^0.2.1:
  9267 + version "0.2.1"
  9268 + resolved "https://registry.npmjs.org/vite-plugin-compression/-/vite-plugin-compression-0.2.1.tgz#9519f2838c9945fa5f64dda2e9a7c354e86a6d43"
  9269 + integrity sha512-wZilE9pm1qV3PNVzMxCrJkhmnpwtXrf8kC1NekNcvP5lxFbGMwhj0fqedds1ujFSBHripknQaPwLsSXRtFen/Q==
  9270 + dependencies:
  9271 + chalk "^4.1.0"
  9272 + debug "^4.3.2"
  9273 + fs-extra "^9.1.0"
  9274 +
9157 vite-plugin-html@^2.0.0: 9275 vite-plugin-html@^2.0.0:
9158 version "2.0.0" 9276 version "2.0.0"
9159 resolved "https://registry.npmjs.org/vite-plugin-html/-/vite-plugin-html-2.0.0.tgz#de39b99ce7df4d0e1234bfae5c23215647d71a28" 9277 resolved "https://registry.npmjs.org/vite-plugin-html/-/vite-plugin-html-2.0.0.tgz#de39b99ce7df4d0e1234bfae5c23215647d71a28"
@@ -9163,10 +9281,10 @@ vite-plugin-html@^2.0.0: @@ -9163,10 +9281,10 @@ vite-plugin-html@^2.0.0:
9163 fs-extra "^9.1.0" 9281 fs-extra "^9.1.0"
9164 html-minifier-terser "^5.1.1" 9282 html-minifier-terser "^5.1.1"
9165 9283
9166 -vite-plugin-imagemin@^0.2.5:  
9167 - version "0.2.5"  
9168 - resolved "https://registry.npmjs.org/vite-plugin-imagemin/-/vite-plugin-imagemin-0.2.5.tgz#926b57f570f55d29081ebbea5c073298e411ef42"  
9169 - integrity sha512-wweK2QLJTNIkqEoCXuKJJP1Y+Duu2tA0CKtST6ovzXra4kMx6BQ3nWCRkr66Ye6fQii5yPSuE1ZtTNVLSi9mmw== 9284 +vite-plugin-imagemin@^0.2.6:
  9285 + version "0.2.6"
  9286 + resolved "https://registry.npmjs.org/vite-plugin-imagemin/-/vite-plugin-imagemin-0.2.6.tgz#e8c3f2e4dcd9c8017d5624b52868bbfa60374d0b"
  9287 + integrity sha512-fnMFMQjQGYdvIEkISkVawFiyttgfjcAzBbDDVR2ThSnV4NHhCh8Y3WuduyH1kpEJLdJ4H83vP+94CkJZy7RP9Q==
9170 dependencies: 9288 dependencies:
9171 "@types/imagemin" "^7.0.0" 9289 "@types/imagemin" "^7.0.0"
9172 "@types/imagemin-gifsicle" "^7.0.0" 9290 "@types/imagemin-gifsicle" "^7.0.0"
@@ -9234,22 +9352,22 @@ vite-plugin-style-import@^0.7.2: @@ -9234,22 +9352,22 @@ vite-plugin-style-import@^0.7.2:
9234 es-module-lexer "^0.3.26" 9352 es-module-lexer "^0.3.26"
9235 magic-string "^0.25.7" 9353 magic-string "^0.25.7"
9236 9354
9237 -vite-plugin-theme@^0.4.2:  
9238 - version "0.4.2"  
9239 - resolved "https://registry.npmjs.org/vite-plugin-theme/-/vite-plugin-theme-0.4.2.tgz#bb4791ddd88205f2fd07ae9aff7a92d5d427b516"  
9240 - integrity sha512-NOk56zCYloaVmqWh8o+OShJLVTNVsDZRLEeToHsv0yGXd94gCiYTflguGtcmsSQjQfQYOz/gGKjLAU4KPH/FKA== 9355 +vite-plugin-theme@^0.4.3:
  9356 + version "0.4.3"
  9357 + resolved "https://registry.npmjs.org/vite-plugin-theme/-/vite-plugin-theme-0.4.3.tgz#d1d92a7d0d63aa0af4703e50ae2cdc0285295bd2"
  9358 + integrity sha512-5qychnrG+iN6+YJmGJT853IT2elr5TIF6I9GkRStVs5GWemR3f/OllLN/AjO1j8vnTG58mttYpyD8N5zGQ/P8w==
9241 dependencies: 9359 dependencies:
9242 "@types/tinycolor2" "^1.4.2" 9360 "@types/tinycolor2" "^1.4.2"
9243 chalk "^4.1.0" 9361 chalk "^4.1.0"
9244 clean-css "^4.2.3" 9362 clean-css "^4.2.3"
9245 - debug "^4.3.1" 9363 + debug "^4.3.2"
9246 es-module-lexer "^0.3.26" 9364 es-module-lexer "^0.3.26"
9247 tinycolor2 "^1.4.2" 9365 tinycolor2 "^1.4.2"
9248 9366
9249 -vite@2.0.0-beta.66:  
9250 - version "2.0.0-beta.66"  
9251 - resolved "https://registry.npmjs.org/vite/-/vite-2.0.0-beta.66.tgz#f9fbb3490bb235efd73366d8d0974f3e7a3e3d54"  
9252 - integrity sha512-tUn708PIWHCrj83t09OAiJ2YU5EJGz5VOSivKTPq+s5I48rN4B2B3ZTRpg4n8WMw2ZQLWnrQOXWfqXoMBEJd9g== 9367 +vite@2.0.0-beta.69:
  9368 + version "2.0.0-beta.69"
  9369 + resolved "https://registry.npmjs.org/vite/-/vite-2.0.0-beta.69.tgz#dd10b4c366d64e670a0da612097fe9645c40212b"
  9370 + integrity sha512-Wf4bWOK/b6Q+06Wyk7uJIBy/LiENGx26do6tn9gOMRRZLEuLizN/cDzGqnQkGVVevbb18xdilyxhnTes0lFjZg==
9253 dependencies: 9371 dependencies:
9254 esbuild "^0.8.34" 9372 esbuild "^0.8.34"
9255 postcss "^8.2.1" 9373 postcss "^8.2.1"