Commit 8a1bfdf13de966acc5eb41718ccb085d3efc4581

Authored by vben
1 parent aca07d4c

feat: auto import route

.env.development
... ... @@ -4,11 +4,14 @@ VITE_USE_MOCK = true
4 4 # public path
5 5 VITE_PUBLIC_PATH = /
6 6  
  7 +# Cross-domain proxy, you can configure multiple
  8 +VITE_PROXY=[["/api","http://localhost:3000"]]
  9 +
  10 +# Delete console
  11 +VITE_DROP_CONSOLE = false
  12 +
7 13 # Basic interface address SPA
8 14 VITE_GLOB_API_URL=/api
9 15  
10 16 # Interface prefix
11 17 VITE_GLOB_API_URL_PREFIX=
12   -
13   -# Cross-domain proxy, you can configure multiple
14   -VITE_PROXY=[["/api","http://localhost:3000"]]
... ...
.env.production
... ... @@ -4,12 +4,17 @@ VITE_USE_MOCK = true
4 4 # public path
5 5 VITE_PUBLIC_PATH = ./
6 6  
  7 +# Delete console
  8 +VITE_DROP_CONSOLE = true
  9 +
  10 +# Delete console
  11 +VITE_BUILD_GZIP = false
  12 +
7 13 # Basic interface address SPA
8 14 VITE_GLOB_API_URL=/api
9 15  
10 16 # Interface prefix
11 17 VITE_GLOB_API_URL_PREFIX=
12 18  
13   -
14 19 # TODO use Cdn
15 20 VITE_USE_CDN = true
... ...
CHANGELOG.zh_CN.md
  1 +# wip
  2 +
  3 +### ✨ Features
  4 +
  5 +- 打包可以配置输出`gizp`
  6 +- 打包可以配置删除`console`
  7 +- 路由及菜单不需要在手动引入,改为自动引入
  8 +
  9 +### 🎫 Chores
  10 +
  11 +- 升级 vue 到`3.0.1`
  12 +- 将`vite`版本改为每日构建版本
  13 +
  14 +### 🐛 Bug Fixes
  15 +
  16 +- 修复菜单报错
  17 +- 修复表格自适应高度问题
  18 +- 修复`window系统`执行 script 报错问题
  19 +
  20 +### ⚡ Performance Improvements
  21 +
  22 +- 删除菜单最小化背景
  23 +- 阻止页面刷新重新渲染菜单
  24 +- 其他一些细节优化
  25 +
1 26 # 2.0.0-rc.1 (2020-10-14)
2 27  
3 28 ### ✨ Features
... ...
README.en-US.md
... ... @@ -92,7 +92,6 @@ The documentation for 2.0 hasn't started yet, it will be provided later.
92 92 - [vite-plugin-mock](https://github.com/anncwb/vite-plugin-mock) - Mock plugin base on vite
93 93 - [vue-i18n](https://github.com/intlify/vue-i18n-next) - Internationalization
94 94 - [lodash-es](https://github.com/lodash/lodash) - JavaScript utility library
95   -- [moment](https://github.com/moment/moment) - Time operation library
96 95 - [axios](https://github.com/axios/axios) - Http data interaction
97 96 - [TypeScript](https://www.typescriptlang.org/)
98 97  
... ... @@ -225,6 +224,7 @@ yarn clean:lib # Delete node_modules, supported window
225 224 - [x] Digital animation
226 225 - [x] First screen loading waiting animation
227 226 - [x] Extract the production environment profile
  227 +- [x] Build Gzip
228 228  
229 229 ## Developing features
230 230  
... ... @@ -234,7 +234,6 @@ yarn clean:lib # Delete node_modules, supported window
234 234 - [ ] Global error handling
235 235 - [ ] Theme configuration
236 236 - [ ] Dark theme
237   -- [ ] Build Gzip
238 237 - [ ] Build CDN
239 238 - [ ] System performance optimization
240 239  
... ... @@ -246,6 +245,8 @@ It is recommended to use the `Chrome` browser for local development. Development
246 245  
247 246 Support modern browsers, Not currently supported ie11,Follow-up consideration support ie11
248 247  
249   -| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE / Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari |
250   -| :-: | :-: | :-: | :-: |
251   -| Not currently supported | last 2 versions | last 2 versions | last 2 versions |
  248 +| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt=" Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt=" Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari |
  249 +| :-: | :-: | :-: | :-: | :-: |
  250 +| not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions |
  251 +
  252 +More browsers can view [Can I Use Es Module](https://caniuse.com/?search=ES%20Module)
... ...
README.md
... ... @@ -35,10 +35,6 @@
35 35  
36 36 ## 介绍
37 37  
38   -该分支为 2.0 新分支,使用 vue3 进行开发。
39   -
40   -1.0 分支请切换到`master`分支。1.0 采用`vue2.6`+`vue-composition-api`+`vue-cli`开发
41   -
42 38 项目基于`ant-design-vue`,`typescript`,`vue3.0`,`vite`,`tsx`实现的 vue3 风格的后台管理系统,
43 39  
44 40 ## gitHub 地址
... ... @@ -65,7 +61,7 @@
65 61  
66 62 ## 文档
67 63  
68   -2.0 文档还没开始写。后续补上
  64 +2.0 文档很快完成,请耐心等待
69 65  
70 66 ## 预安装
71 67  
... ... @@ -93,7 +89,6 @@
93 89 - [vite-plugin-mock](https://github.com/anncwb/vite-plugin-mock) - 基于 vite 的 mock 插件.
94 90 - [vue-i18n](https://github.com/intlify/vue-i18n-next) - 国际化
95 91 - [lodash-es](https://github.com/lodash/lodash) - JavaScript 实用程序库
96   -- [moment](https://github.com/moment/moment) - 时间操作库
97 92 - [axios](https://github.com/axios/axios) - Http 数据交互
98 93 - [TypeScript](https://www.typescriptlang.org/)
99 94  
... ... @@ -227,6 +222,7 @@ yarn clean:lib # 删除node_modules,兼容window系统
227 222 - [x] 数字动画
228 223 - [x] 首屏加载等待动画
229 224 - [x] 抽取生产环境配置文件
  225 +- [x] 打包 Gzip
230 226  
231 227 ## 正在开发的功能
232 228  
... ... @@ -236,7 +232,6 @@ yarn clean:lib # 删除node_modules,兼容window系统
236 232 - [ ] 全局错误处理
237 233 - [ ] 主题配置
238 234 - [ ] 黑暗主题
239   -- [ ] 打包 Gzip
240 235 - [ ] 打包 CDN
241 236 - [ ] 系统性能优化
242 237  
... ... @@ -248,9 +243,11 @@ yarn clean:lib # 删除node_modules,兼容window系统
248 243  
249 244 支持现代浏览器, IE 暂不支持,后续考虑支持 ie11
250 245  
251   -| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE / Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari |
252   -| :-: | :-: | :-: | :-: |
253   -| not support | last 2 versions | last 2 versions | last 2 versions |
  246 +| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt=" Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt=" Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari |
  247 +| :-: | :-: | :-: | :-: | :-: |
  248 +| not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions |
  249 +
  250 +更多浏览器可以查看 [Can I Use Es Module](https://caniuse.com/?search=ES%20Module)
254 251  
255 252 ## 加入我们
256 253  
... ...
build/gzip/index.ts deleted 100644 → 0
1   -// Build gzip after packaging
2   -// import { readFile, writeFile } from 'fs';
3   -import viteConfig from '../../vite.config';
4   -import {
5   - // basename,
6   - join,
7   -} from 'path';
8   -// import { promisify } from 'util';
9   -// import { gzip, ZlibOptions } from 'zlib';
10   -import { readAllFile } from '../utils';
11   -
12   -// const readFilePromise = promisify(readFile);
13   -// const writeFilePromise = promisify(writeFile);
14   -
15   -// function createGzip() {}
16   -
17   -const FILE_REG = /\.(js|mjs|json|css|html)$/;
18   -
19   -const OUT_DIR = viteConfig.outDir || 'dist';
20   -
21   -// TODO 待开发
22   -const files = readAllFile(join(process.cwd(), OUT_DIR), FILE_REG);
build/plugin/gzip/compress.ts 0 → 100644
  1 +import { gzip } from 'zlib';
  2 +import { readFileSync, writeFileSync } from 'fs';
  3 +import { GzipPluginOptions } from './types';
  4 +import viteConfig from '../../vite.config';
  5 +import { readAllFile, getCwdPath, isBuildGzip, isSiteMode } from '../utils';
  6 +
  7 +export function startGzip(
  8 + fileContent: string | Buffer,
  9 + options: GzipPluginOptions = {}
  10 +): Promise<Buffer> {
  11 + return new Promise((resolve, reject) => {
  12 + gzip(fileContent, options.gzipOptions || {}, (err, result) => {
  13 + if (err) {
  14 + reject(err);
  15 + } else {
  16 + resolve(result);
  17 + }
  18 + });
  19 + });
  20 +}
  21 +
  22 +// 手动压缩css
  23 +export async function startGzipStyle() {
  24 + if (isBuildGzip() || isSiteMode()) {
  25 + const outDir = viteConfig.outDir || 'dist';
  26 + const assets = viteConfig.assetsDir || '_assets';
  27 + const allCssFile = readAllFile(getCwdPath(outDir, assets), /\.(css)$/);
  28 + for (const path of allCssFile) {
  29 + const source = readFileSync(path);
  30 + const content = await startGzip(source);
  31 + const ds = path.split('/');
  32 + const fileName = ds[ds.length - 1];
  33 + writeFileSync(getCwdPath(outDir, assets, `${fileName}.gz`), content);
  34 + }
  35 + }
  36 +}
... ...
build/plugin/gzip/index.ts 0 → 100644
  1 +// 修改自https://github.com/kryops/rollup-plugin-gzip
  2 +// 因为rollup-plugin-gzip不支持vite
  3 +// vite对css打包独立的。所以不能在打包的时候顺带打包css
  4 +
  5 +import { readFile, writeFile } from 'fs';
  6 +import { basename } from 'path';
  7 +import { promisify } from 'util';
  8 +import { gzip } from 'zlib';
  9 +
  10 +import { OutputAsset, OutputChunk, OutputOptions, Plugin } from 'rollup';
  11 +import { GzipPluginOptions } from './types';
  12 +
  13 +const isFunction = (arg: unknown): arg is (...args: any[]) => any => typeof arg === 'function';
  14 +const isRegExp = (arg: unknown): arg is RegExp =>
  15 + Object.prototype.toString.call(arg) === '[object RegExp]';
  16 +
  17 +export type StringMappingOption = (originalString: string) => string;
  18 +export type CustomCompressionOption = (
  19 + content: string | Buffer
  20 +) => string | Buffer | Promise<string | Buffer>;
  21 +
  22 +const readFilePromise = promisify(readFile);
  23 +const writeFilePromise = promisify(writeFile);
  24 +
  25 +// functionality partially copied from rollup
  26 +
  27 +/**
  28 + * copied from https://github.com/rollup/rollup/blob/master/src/rollup/index.ts#L450
  29 + */
  30 +function isOutputChunk(file: OutputAsset | OutputChunk): file is OutputChunk {
  31 + return typeof (file as OutputChunk).code === 'string';
  32 +}
  33 +
  34 +/**
  35 + * Gets the string/buffer content from a file object.
  36 + * Important for adding source map comments
  37 + *
  38 + * Copied partially from rollup.writeOutputFile
  39 + * https://github.com/rollup/rollup/blob/master/src/rollup/index.ts#L454
  40 + */
  41 +function getOutputFileContent(
  42 + outputFileName: string,
  43 + outputFile: OutputAsset | OutputChunk,
  44 + outputOptions: OutputOptions
  45 +): string | Buffer {
  46 + if (isOutputChunk(outputFile)) {
  47 + let source: string | Buffer;
  48 + source = outputFile.code;
  49 + if (outputOptions.sourcemap && outputFile.map) {
  50 + const url =
  51 + outputOptions.sourcemap === 'inline'
  52 + ? outputFile.map.toUrl()
  53 + : `${basename(outputFileName)}.map`;
  54 +
  55 + // https://github.com/rollup/rollup/blob/master/src/utils/sourceMappingURL.ts#L1
  56 + source += `//# source` + `MappingURL=${url}\n`;
  57 + }
  58 + return source;
  59 + } else {
  60 + return typeof outputFile.source === 'string'
  61 + ? outputFile.source
  62 + : // just to be sure, as it is typed string | Uint8Array in rollup 2.0.0
  63 + Buffer.from(outputFile.source);
  64 + }
  65 +}
  66 +
  67 +// actual plugin code
  68 +
  69 +function gzipPlugin(options: GzipPluginOptions = {}): Plugin {
  70 + // check for old options
  71 + if ('algorithm' in options) {
  72 + console.warn(
  73 + '[rollup-plugin-gzip] The "algorithm" option is not supported any more! ' +
  74 + 'Use "customCompression" instead to specify a different compression algorithm.'
  75 + );
  76 + }
  77 + if ('options' in options) {
  78 + console.warn('[rollup-plugin-gzip] The "options" option was renamed to "gzipOptions"!');
  79 + }
  80 + if ('additional' in options) {
  81 + console.warn('[rollup-plugin-gzip] The "additional" option was renamed to "additionalFiles"!');
  82 + }
  83 + if ('delay' in options) {
  84 + console.warn('[rollup-plugin-gzip] The "delay" option was renamed to "additionalFilesDelay"!');
  85 + }
  86 +
  87 + const compressGzip: CustomCompressionOption = (fileContent) => {
  88 + return new Promise((resolve, reject) => {
  89 + gzip(fileContent, options.gzipOptions || {}, (err, result) => {
  90 + if (err) {
  91 + reject(err);
  92 + } else {
  93 + resolve(result);
  94 + }
  95 + });
  96 + });
  97 + };
  98 +
  99 + const doCompress = options.customCompression || compressGzip;
  100 +
  101 + const mapFileName: StringMappingOption = isFunction(options.fileName)
  102 + ? (options.fileName as StringMappingOption)
  103 + : (fileName: string) => fileName + (options.fileName || '.gz');
  104 +
  105 + const plugin: Plugin = {
  106 + name: 'gzip',
  107 +
  108 + generateBundle(outputOptions, bundle) {
  109 + return Promise.all(
  110 + Object.keys(bundle)
  111 + .map((fileName) => {
  112 + const fileEntry = bundle[fileName];
  113 +
  114 + // file name filter option check
  115 +
  116 + const fileNameFilter = options.filter || /\.(js|mjs|json|css|html)$/;
  117 +
  118 + if (isRegExp(fileNameFilter) && !fileName.match(fileNameFilter)) {
  119 + return Promise.resolve();
  120 + }
  121 +
  122 + if (
  123 + isFunction(fileNameFilter) &&
  124 + !(fileNameFilter as (x: string) => boolean)(fileName)
  125 + ) {
  126 + return Promise.resolve();
  127 + }
  128 +
  129 + const fileContent = getOutputFileContent(fileName, fileEntry, outputOptions);
  130 +
  131 + // minSize option check
  132 + if (options.minSize && options.minSize > fileContent.length) {
  133 + return Promise.resolve();
  134 + }
  135 +
  136 + return Promise.resolve(doCompress(fileContent))
  137 + .then((compressedContent) => {
  138 + const compressedFileName = mapFileName(fileName);
  139 + bundle[compressedFileName] = {
  140 + type: 'asset', // Rollup >= 1.21
  141 + name: compressedFileName,
  142 + fileName: compressedFileName,
  143 + isAsset: true, // Rollup < 1.21
  144 + source: compressedContent,
  145 + };
  146 + })
  147 + .catch((err: any) => {
  148 + console.error(err);
  149 + return Promise.reject('[rollup-plugin-gzip] Error compressing file ' + fileName);
  150 + });
  151 + })
  152 + .concat([
  153 + (() => {
  154 + if (!options.additionalFiles || !options.additionalFiles.length)
  155 + return Promise.resolve();
  156 +
  157 + const compressAdditionalFiles = () =>
  158 + Promise.all(
  159 + options.additionalFiles!.map((filePath) =>
  160 + readFilePromise(filePath)
  161 + .then((fileContent) => doCompress(fileContent))
  162 + .then((compressedContent) => {
  163 + return writeFilePromise(mapFileName(filePath), compressedContent);
  164 + })
  165 + .catch(() => {
  166 + return Promise.reject(
  167 + '[rollup-plugin-gzip] Error compressing additional file ' +
  168 + filePath +
  169 + '. Please check the spelling of your configured additionalFiles. ' +
  170 + 'You might also have to increase the value of the additionalFilesDelay option.'
  171 + );
  172 + })
  173 + )
  174 + ) as Promise<any>;
  175 +
  176 + // additional files can be processed outside of rollup after a delay
  177 + // for older plugins or plugins that write to disk (curcumventing rollup) without awaiting
  178 + const additionalFilesDelay = options.additionalFilesDelay || 0;
  179 +
  180 + if (additionalFilesDelay) {
  181 + setTimeout(compressAdditionalFiles, additionalFilesDelay);
  182 + return Promise.resolve();
  183 + } else {
  184 + return compressAdditionalFiles();
  185 + }
  186 + })(),
  187 + ])
  188 + ) as Promise<any>;
  189 + },
  190 + };
  191 +
  192 + return plugin;
  193 +}
  194 +
  195 +export default gzipPlugin;
... ...
build/gzip/types.ts renamed to build/plugin/gzip/types.ts
build/plugin/vite-plugin-context-plugin/transform.ts
... ... @@ -49,8 +49,9 @@ const globbyTransform = function (config: SharedConfig): Transform {
49 49 let result = cache.get(path);
50 50 if (!result) {
51 51 const reg = /import\s+([\w\s{}*]+)\s+from\s+(['"])globby(\?path)?!([^'"]+)\2/g;
52   - const lastImport = urlMap.get(path);
53 52 const match = code.match(reg);
  53 + if (!match) return code;
  54 + const lastImport = urlMap.get(path);
54 55 if (lastImport && match) {
55 56 code = code.replace(lastImport, match[0]);
56 57 }
... ...
build/script/build.ts
... ... @@ -6,6 +6,7 @@ import { argv } from &#39;yargs&#39;;
6 6 import { runBuildConfig } from './buildConf';
7 7 import { runUpdateHtml } from './updateHtml';
8 8 import { errorConsole, successConsole } from '../utils';
  9 +import { startGzipStyle } from '../plugin/gzip/compress';
9 10  
10 11 export const runBuild = async () => {
11 12 try {
... ... @@ -22,6 +23,7 @@ export const runBuild = async () =&gt; {
22 23 await runBuildConfig();
23 24 }
24 25 await runUpdateHtml();
  26 + await startGzipStyle();
25 27 successConsole('Vite Build successfully!');
26 28 } catch (error) {
27 29 errorConsole('Vite Build Error\n' + error);
... ...
build/script/preview.ts
1 1 import chalk from 'chalk';
2 2 import Koa from 'koa';
3 3 import inquirer from 'inquirer';
4   -import { sh } from 'tasksfile';
5 4 import staticServer from 'koa-static';
6 5 import portfinder from 'portfinder';
7 6 import { resolve } from 'path';
8 7 import viteConfig from '../../vite.config';
9 8 import { getIPAddress } from '../utils';
  9 +import { runBuild } from './build';
10 10  
11 11 const BUILD = 1;
12 12 const NO_BUILD = 2;
... ... @@ -53,10 +53,7 @@ export const runPreview = async () =&gt; {
53 53 });
54 54 const { type } = await prompt;
55 55 if (type === BUILD) {
56   - await sh('npm run build', {
57   - async: true,
58   - nopipe: true,
59   - });
  56 + runBuild();
60 57 }
61 58 startApp();
62 59 };
... ...
build/utils.ts
... ... @@ -70,6 +70,12 @@ export function isProdFn(): boolean {
70 70 export function isReportMode(): boolean {
71 71 return process.env.REPORT === 'true';
72 72 }
  73 +export function isBuildGzip(): boolean {
  74 + return process.env.VITE_BUILD_GZIP === 'true';
  75 +}
  76 +export function isSiteMode(): boolean {
  77 + return process.env.SITE === 'true';
  78 +}
73 79  
74 80 export interface ViteEnv {
75 81 VITE_PORT: number;
... ... @@ -78,6 +84,8 @@ export interface ViteEnv {
78 84 VITE_PROXY: [string, string][];
79 85 VITE_GLOB_APP_TITLE: string;
80 86 VITE_USE_CDN: boolean;
  87 + VITE_DROP_CONSOLE: boolean;
  88 + VITE_BUILD_GZIP: boolean;
81 89 }
82 90  
83 91 export function loadEnv(): ViteEnv {
... ...
package.json
... ... @@ -91,7 +91,7 @@
91 91 "tasksfile": "^5.1.1",
92 92 "ts-node": "^9.0.0",
93 93 "typescript": "^4.0.3",
94   - "vite": "^1.0.0-rc.4",
  94 + "vite": "npm:@knightly/vite",
95 95 "vite-plugin-mock": "^1.0.2",
96 96 "vite-plugin-purge-icons": "^0.4.4",
97 97 "vue-eslint-parser": "^7.1.1",
... ...
src/components/Menu/src/BasicMenu.tsx
... ... @@ -91,7 +91,7 @@ export default defineComponent({
91 91 });
92 92  
93 93 watch(
94   - () => currentRoute.value.path,
  94 + () => currentRoute.value.name,
95 95 (name: string) => {
96 96 name !== 'Redirect' && handleMenuChange();
97 97 getParentPath();
... ...
src/components/Transition/src/ExpandTransition.ts
... ... @@ -48,7 +48,9 @@ export default function (expandedParentClass = &#39;&#39;, x = false) {
48 48 if (expandedParentClass && el._parent) {
49 49 el._parent.classList.add(expandedParentClass);
50 50 }
51   -
  51 + console.log('======================');
  52 + console.log(sizeProperty, offset);
  53 + console.log('======================');
52 54 requestAnimationFrame(() => {
53 55 el.style[sizeProperty] = offset;
54 56 });
... ...
src/router/menus/index.ts
1   -import type { Menu } from '/@/router/types';
  1 +import type { Menu, MenuModule } from '/@/router/types';
2 2 import type { RouteRecordNormalized } from 'vue-router';
3 3 import { appStore } from '/@/store/modules/app';
4 4 import { permissionStore } from '/@/store/modules/permission';
... ... @@ -7,35 +7,40 @@ import { filter } from &#39;/@/utils/helper/treeHelper&#39;;
7 7 import router from '/@/router';
8 8 import { PermissionModeEnum } from '/@/enums/appEnum';
9 9 import { pathToRegexp } from 'path-to-regexp';
  10 +import modules from 'globby!/@/router/menus/modules/**/*.@(ts)';
10 11  
11 12 // ===========================
12 13 // ==========module import====
13 14 // ===========================
14   -import dashboard from './modules/dashboard';
15   -
16   -import exceptionDemo from './modules/demo/exception';
17   -import iframeDemo from './modules/demo/iframe';
18   -import compDemo from './modules/demo/comp';
19   -import permissionDemo from './modules/demo/permission';
20   -import featDemo from './modules/demo/feat';
21   -import chartsDemo from './modules/demo/charts';
22   -import tableDemo from './modules/demo/table';
23   -import formDemo from './modules/demo/form';
24   -import treeDemo from './modules/demo/tree';
25   -
26   -const menuModules = [
27   - dashboard,
28   - featDemo,
29   - exceptionDemo,
30   - iframeDemo,
31   - compDemo,
32   - permissionDemo,
33   - chartsDemo,
34   - tableDemo,
35   - formDemo,
36   - treeDemo,
  15 +// import dashboard from './modules/dashboard';
  16 +
  17 +// import exceptionDemo from './modules/demo/exception';
  18 +// import iframeDemo from './modules/demo/iframe';
  19 +// import compDemo from './modules/demo/comp';
  20 +// import permissionDemo from './modules/demo/permission';
  21 +// import featDemo from './modules/demo/feat';
  22 +// import chartsDemo from './modules/demo/charts';
  23 +// import tableDemo from './modules/demo/table';
  24 +// import formDemo from './modules/demo/form';
  25 +// import treeDemo from './modules/demo/tree';
  26 +
  27 +const menuModules: MenuModule[] = [
  28 + // dashboard,
  29 + // featDemo,
  30 + // exceptionDemo,
  31 + // iframeDemo,
  32 + // compDemo,
  33 + // permissionDemo,
  34 + // chartsDemo,
  35 + // tableDemo,
  36 + // formDemo,
  37 + // treeDemo,
37 38 ];
38 39  
  40 +Object.keys(modules).forEach((key) => {
  41 + menuModules.push(modules[key]);
  42 +});
  43 +
39 44 // ===========================
40 45 // ==========Helper===========
41 46 // ===========================
... ...
src/router/routes/index.ts
... ... @@ -2,33 +2,37 @@ import type { AppRouteRecordRaw, AppRouteModule } from &#39;/@/router/types&#39;;
2 2  
3 3 import { DEFAULT_LAYOUT_COMPONENT, PAGE_NOT_FOUND_ROUTE, REDIRECT_ROUTE } from '../constant';
4 4 import { genRouteModule } from '/@/utils/helper/routeHelper';
  5 +import modules from 'globby!/@/router/routes/modules/**/*.@(ts)';
5 6  
6   -import dashboard from './modules/dashboard';
7   -
  7 +// import dashboard from './modules/dashboard';
8 8 // demo
9   -import exceptionDemo from './modules/demo/exception';
10   -import iframeDemo from './modules/demo/iframe';
11   -import compDemo from './modules/demo/comp';
12   -import permissionDemo from './modules/demo/permission';
13   -import featDemo from './modules/demo/feat';
14   -import chartsDemo from './modules/demo/charts';
15   -import tableDemo from './modules/demo/table';
16   -import formDemo from './modules/demo/form';
17   -import treeDemo from './modules/demo/tree';
  9 +// import exceptionDemo from './modules/demo/exception';
  10 +// import iframeDemo from './modules/demo/iframe';
  11 +// import compDemo from './modules/demo/comp';
  12 +// import permissionDemo from './modules/demo/permission';
  13 +// import featDemo from './modules/demo/feat';
  14 +// import chartsDemo from './modules/demo/charts';
  15 +// import tableDemo from './modules/demo/table';
  16 +// import formDemo from './modules/demo/form';
  17 +// import treeDemo from './modules/demo/tree';
18 18  
19 19 const routeModuleList: AppRouteModule[] = [
20   - exceptionDemo,
21   - dashboard,
22   - iframeDemo,
23   - compDemo,
24   - featDemo,
25   - permissionDemo,
26   - chartsDemo,
27   - tableDemo,
28   - formDemo,
29   - treeDemo,
  20 + // exceptionDemo,
  21 + // dashboard,
  22 + // iframeDemo,
  23 + // compDemo,
  24 + // featDemo,
  25 + // permissionDemo,
  26 + // chartsDemo,
  27 + // tableDemo,
  28 + // formDemo,
  29 + // treeDemo,
30 30 ];
31 31  
  32 +Object.keys(modules).forEach((key) => {
  33 + routeModuleList.push(modules[key]);
  34 +});
  35 +
32 36 export const asyncRoutes = [
33 37 REDIRECT_ROUTE,
34 38 PAGE_NOT_FOUND_ROUTE,
... ...
vite.config.ts
... ... @@ -12,8 +12,10 @@ import {
12 12 import { createProxy } from './build/config/vite/proxy';
13 13 import { createMockServer } from 'vite-plugin-mock';
14 14 import PurgeIcons from 'vite-plugin-purge-icons';
  15 +import gzipPlugin from './build/plugin/gzip/index';
  16 +import globbyTransform from './build/plugin/vite-plugin-context-plugin/transform';
15 17  
16   -import { isDevFn, isReportMode, isProdFn, loadEnv } from './build/utils';
  18 +import { isDevFn, isReportMode, isProdFn, loadEnv, isBuildGzip, isSiteMode } from './build/utils';
17 19 const pkg = require('./package.json');
18 20  
19 21 const {
... ... @@ -22,6 +24,7 @@ const {
22 24 VITE_PUBLIC_PATH,
23 25 VITE_PROXY,
24 26 VITE_GLOB_APP_TITLE,
  27 + VITE_DROP_CONSOLE,
25 28 // VITE_USE_CDN,
26 29 } = loadEnv();
27 30  
... ... @@ -33,12 +36,18 @@ const rollupPlugins: any[] = [];
33 36 const vitePlugins: VitePlugin[] = [];
34 37  
35 38 (() => {
36   - if (isReportMode() && isProdFn()) {
37   - // report
38   - rollupPlugins.push(
39   - visualizer({ filename: './node_modules/.cache/stats.html', open: true }) as Plugin
40   - );
  39 + if (isProdFn()) {
  40 + if (isReportMode()) {
  41 + // report
  42 + rollupPlugins.push(
  43 + visualizer({ filename: './node_modules/.cache/stats.html', open: true }) as Plugin
  44 + );
  45 + }
  46 + if (isBuildGzip() || isSiteMode()) {
  47 + rollupPlugins.push(gzipPlugin());
  48 + }
41 49 }
  50 +
42 51 if (isDevFn() && VITE_USE_MOCK) {
43 52 // open mock
44 53 vitePlugins.push(
... ... @@ -99,14 +108,21 @@ const viteConfig: UserConfig = {
99 108 assetsInlineLimit: 4096,
100 109 /**
101 110 * esbuild转换目标。
102   - * @default 'es2019'
  111 + * @default 'es2020'
103 112 */
104   - esbuildTarget: 'es2019',
  113 + esbuildTarget: 'es2020',
105 114 silent: false,
106 115 // 别名
107 116 alias: {
108 117 '/@/': pathResolve('src'),
109 118 },
  119 + // terser配置
  120 + terserOption: {
  121 + compress: {
  122 + // 是否删除console
  123 + drop_console: VITE_DROP_CONSOLE,
  124 + },
  125 + },
110 126 define: {
111 127 __VERSION__: pkg.version,
112 128 },
... ... @@ -128,6 +144,7 @@ const viteConfig: UserConfig = {
128 144 'moment/locale/zh-cn',
129 145 ],
130 146 },
  147 +
131 148 // 本地跨域代理
132 149 proxy: createProxy(VITE_PROXY),
133 150  
... ... @@ -140,8 +157,6 @@ const viteConfig: UserConfig = {
140 157 },
141 158 };
142 159  
143   -// 用于打包部署站点使用。实际项目可以删除
144   -const isSite = process.env.SITE === 'true';
145 160 // 扩展配置, 往打包后的html注入内容
146 161 // 只针对生产环境
147 162 // TODO 目前只是简单手动注入实现,后续vite应该会提供配置项
... ... @@ -164,7 +179,8 @@ export const htmlConfig: {
164 179 // html title
165 180 title: VITE_GLOB_APP_TITLE,
166 181 // 百度统计,不需要可以删除
167   - addHm: isSite,
  182 + // 用于打包部署站点使用。实际项目可以删除
  183 + addHm: isSiteMode(),
168 184 // 使用cdn打包
169 185 // TODO Cdn esm使用方式需要只能支持google,暂时关闭,后续查询更好的方式
170 186 useCdn: false,
... ... @@ -179,4 +195,7 @@ export const htmlConfig: {
179 195 minifyCSS: true,
180 196 },
181 197 };
182   -export default viteConfig;
  198 +export default {
  199 + ...viteConfig,
  200 + transforms: [globbyTransform(viteConfig)],
  201 +} as UserConfig;
... ...
yarn.lock
... ... @@ -34,7 +34,7 @@
34 34 "@babel/runtime" "^7.10.4"
35 35 lodash "^4.17.15"
36 36  
37   -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.5.5":
  37 +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4":
38 38 version "7.10.4"
39 39 resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a"
40 40 integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==
... ... @@ -170,7 +170,7 @@
170 170 chalk "^2.0.0"
171 171 js-tokens "^4.0.0"
172 172  
173   -"@babel/parser@^7.10.4", "@babel/parser@^7.11.5", "@babel/parser@^7.9.4":
  173 +"@babel/parser@^7.10.4", "@babel/parser@^7.11.5":
174 174 version "7.11.5"
175 175 resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz#c7ff6303df71080ec7a4f5b8c003c58f1cf51037"
176 176 integrity sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==
... ... @@ -460,39 +460,26 @@
460 460 dependencies:
461 461 "@iconify/iconify" ">=2.0.0-rc.1"
462 462  
463   -"@rollup/plugin-commonjs@^14.0.0":
464   - version "14.0.0"
465   - resolved "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-14.0.0.tgz#4285f9ec2db686a31129e5a2b415c94aa1f836f0"
466   - integrity sha512-+PSmD9ePwTAeU106i9FRdc+Zb3XUWyW26mo5Atr2mk82hor8+nPwkztEjFo8/B1fJKfaQDg9aM2bzQkjhi7zOw==
  463 +"@rollup/plugin-commonjs@^15.0.0":
  464 + version "15.1.0"
  465 + resolved "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-15.1.0.tgz#1e7d076c4f1b2abf7e65248570e555defc37c238"
  466 + integrity sha512-xCQqz4z/o0h2syQ7d9LskIMvBSH4PX5PjYdpSSvgS+pQik3WahkQVNWg3D8XJeYjZoVWnIUQYDghuEMRGrmQYQ==
467 467 dependencies:
468   - "@rollup/pluginutils" "^3.0.8"
  468 + "@rollup/pluginutils" "^3.1.0"
469 469 commondir "^1.0.1"
470   - estree-walker "^1.0.1"
471   - glob "^7.1.2"
472   - is-reference "^1.1.2"
473   - magic-string "^0.25.2"
474   - resolve "^1.11.0"
  470 + estree-walker "^2.0.1"
  471 + glob "^7.1.6"
  472 + is-reference "^1.2.1"
  473 + magic-string "^0.25.7"
  474 + resolve "^1.17.0"
475 475  
476   -"@rollup/plugin-json@^4.0.3":
  476 +"@rollup/plugin-json@^4.1.0":
477 477 version "4.1.0"
478 478 resolved "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3"
479 479 integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==
480 480 dependencies:
481 481 "@rollup/pluginutils" "^3.0.8"
482 482  
483   -"@rollup/plugin-node-resolve@^8.4.0":
484   - version "8.4.0"
485   - resolved "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz#261d79a680e9dc3d86761c14462f24126ba83575"
486   - integrity sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ==
487   - dependencies:
488   - "@rollup/pluginutils" "^3.1.0"
489   - "@types/resolve" "1.17.1"
490   - builtin-modules "^3.1.0"
491   - deep-freeze "^0.0.1"
492   - deepmerge "^4.2.2"
493   - is-module "^1.0.0"
494   - resolve "^1.17.0"
495   -
496 483 "@rollup/plugin-node-resolve@^9.0.0":
497 484 version "9.0.0"
498 485 resolved "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-9.0.0.tgz#39bd0034ce9126b39c1699695f440b4b7d2b62e6"
... ... @@ -700,7 +687,7 @@
700 687 "@types/koa" "*"
701 688 "@types/koa-send" "*"
702 689  
703   -"@types/koa@*", "@types/koa@^2.11.3":
  690 +"@types/koa@*":
704 691 version "2.11.4"
705 692 resolved "https://registry.npmjs.org/@types/koa/-/koa-2.11.4.tgz#8af02a069a9f8e08fa47b8da28d982e652f69cfb"
706 693 integrity sha512-Etqs0kdqbuAsNr5k6mlZQelpZKVwMu9WPRHVVTLnceZlhr0pYmblRNJbCgoCMzKWWePldydU0AYEOX4Q9fnGUQ==
... ... @@ -714,6 +701,20 @@
714 701 "@types/koa-compose" "*"
715 702 "@types/node" "*"
716 703  
  704 +"@types/koa@^2.11.4":
  705 + version "2.11.5"
  706 + resolved "https://registry.npmjs.org/@types/koa/-/koa-2.11.5.tgz#a2b81382bf65d72bdc3bd906abdee259fefdebc2"
  707 + integrity sha512-egP+ceD3+v9PnFW+DLTFO8mt6wa5sDqfGOBIwOAZ61Wzsq4bGZc5kMpJgcCwq7ARGIBfHBY+KkK/1RsMftV/qQ==
  708 + dependencies:
  709 + "@types/accepts" "*"
  710 + "@types/content-disposition" "*"
  711 + "@types/cookies" "*"
  712 + "@types/http-assert" "*"
  713 + "@types/http-errors" "*"
  714 + "@types/keygrip" "*"
  715 + "@types/koa-compose" "*"
  716 + "@types/node" "*"
  717 +
717 718 "@types/lodash-es@^4.17.3":
718 719 version "4.17.3"
719 720 resolved "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.3.tgz#87eb0b3673b076b8ee655f1890260a136af09a2d"
... ... @@ -935,17 +936,6 @@
935 936 "@typescript-eslint/types" "4.4.1"
936 937 eslint-visitor-keys "^2.0.0"
937 938  
938   -"@vue/compiler-core@3.0.0":
939   - version "3.0.0"
940   - resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.0.tgz#25e4f079cf6c39f83bad23700f814c619105a0f2"
941   - integrity sha512-XqPC7vdv4rFE77S71oCHmT1K4Ks3WE2Gi6Lr4B5wn0Idmp+NyQQBUHsCNieMDRiEpgtJrw+yOHslrsV0AfAsfQ==
942   - dependencies:
943   - "@babel/parser" "^7.11.5"
944   - "@babel/types" "^7.11.5"
945   - "@vue/shared" "3.0.0"
946   - estree-walker "^2.0.1"
947   - source-map "^0.6.1"
948   -
949 939 "@vue/compiler-core@3.0.1":
950 940 version "3.0.1"
951 941 resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.1.tgz#3ce57531078c6220be7ea458e41e4bab3522015b"
... ... @@ -957,15 +947,7 @@
957 947 estree-walker "^2.0.1"
958 948 source-map "^0.6.1"
959 949  
960   -"@vue/compiler-dom@3.0.0", "@vue/compiler-dom@^3.0.0-rc.5":
961   - version "3.0.0"
962   - resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.0.tgz#4cbb48fcf1f852daef2babcf9953b681ac463526"
963   - integrity sha512-ukDEGOP8P7lCPyStuM3F2iD5w2QPgUu2xwCW2XNeqPjFKIlR2xMsWjy4raI/cLjN6W16GtlMFaZdK8tLj5PRog==
964   - dependencies:
965   - "@vue/compiler-core" "3.0.0"
966   - "@vue/shared" "3.0.0"
967   -
968   -"@vue/compiler-dom@3.0.1":
  950 +"@vue/compiler-dom@3.0.1", "@vue/compiler-dom@^3.0.0-rc.10":
969 951 version "3.0.1"
970 952 resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.1.tgz#00b12f2e4aa55e624e2a5257e4bed93cf7555f0b"
971 953 integrity sha512-8cjgswVU2YmV35H9ARZmSlDr1P9VZxUihRwefkrk6Vrsb7kui5C3d/WQ2/su34FSDpyMU1aacUOiL2CV/vdX6w==
... ... @@ -973,29 +955,7 @@
973 955 "@vue/compiler-core" "3.0.1"
974 956 "@vue/shared" "3.0.1"
975 957  
976   -"@vue/compiler-sfc@^3.0.0-rc.5":
977   - version "3.0.0"
978   - resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.0.0.tgz#efa38037984bd64aae315828aa5c1248c6eadca9"
979   - integrity sha512-1Bn4L5jNRm6tlb79YwqYUGGe+Yc9PRoRSJi67NJX6icdhf84+tRMtESbx1zCLL9QixQXu2+7aLkXHxvh4RpqAA==
980   - dependencies:
981   - "@babel/parser" "^7.11.5"
982   - "@babel/types" "^7.11.5"
983   - "@vue/compiler-core" "3.0.0"
984   - "@vue/compiler-dom" "3.0.0"
985   - "@vue/compiler-ssr" "3.0.0"
986   - "@vue/shared" "3.0.0"
987   - consolidate "^0.16.0"
988   - estree-walker "^2.0.1"
989   - hash-sum "^2.0.0"
990   - lru-cache "^5.1.1"
991   - magic-string "^0.25.7"
992   - merge-source-map "^1.1.0"
993   - postcss "^7.0.32"
994   - postcss-modules "^3.2.2"
995   - postcss-selector-parser "^6.0.2"
996   - source-map "^0.6.1"
997   -
998   -"@vue/compiler-sfc@^3.0.1":
  958 +"@vue/compiler-sfc@^3.0.0-rc.10", "@vue/compiler-sfc@^3.0.1":
999 959 version "3.0.1"
1000 960 resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.0.1.tgz#f340f8f75b5c1c4509e0f3a12c79d1544899b663"
1001 961 integrity sha512-VO5gJ7SyHw0hf1rkKXRlxjXI9+Q4ngcuUWYnyjOSDch7Wtt2IdOEiC82KFWIkfWMpHqA5HPzL2nDmys3y9d19w==
... ... @@ -1017,14 +977,6 @@
1017 977 postcss-selector-parser "^6.0.4"
1018 978 source-map "^0.6.1"
1019 979  
1020   -"@vue/compiler-ssr@3.0.0":
1021   - version "3.0.0"
1022   - resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.0.0.tgz#d717abcd23a89fb38d1497228633a21bcf9a0e28"
1023   - integrity sha512-Er41F9ZFyKB3YnNbE6JSTIGCVWve3NAQimgDOk4uP42OnckxBYKGBTutDeFNeqUZBMu/9vRHYrxlGFC9Z5jBVQ==
1024   - dependencies:
1025   - "@vue/compiler-dom" "3.0.0"
1026   - "@vue/shared" "3.0.0"
1027   -
1028 980 "@vue/compiler-ssr@3.0.1":
1029 981 version "3.0.1"
1030 982 resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.0.1.tgz#0455b011d72d4ed02faa93610f14981c3d44a079"
... ... @@ -1063,15 +1015,6 @@
1063 1015 "@vue/reactivity" "3.0.1"
1064 1016 "@vue/shared" "3.0.1"
1065 1017  
1066   -"@vue/runtime-dom@3.0.0", "@vue/runtime-dom@^3.0.0-rc.1":
1067   - version "3.0.0"
1068   - resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.0.tgz#e0d1f7c7e22e1318696014cc3501e06b288c2e11"
1069   - integrity sha512-f312n5w9gK6mVvkDSj6/Xnot1XjlKXzFBYybmoy6ahAVC8ExbQ+LOWti1IZM/adU8VMNdKaw7Q53Hxz3y5jX8g==
1070   - dependencies:
1071   - "@vue/runtime-core" "3.0.0"
1072   - "@vue/shared" "3.0.0"
1073   - csstype "^2.6.8"
1074   -
1075 1018 "@vue/runtime-dom@3.0.1":
1076 1019 version "3.0.1"
1077 1020 resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.1.tgz#2cc74550a635f38eb5f61f35f374d5bdb55156b0"
... ... @@ -1081,6 +1024,15 @@
1081 1024 "@vue/shared" "3.0.1"
1082 1025 csstype "^2.6.8"
1083 1026  
  1027 +"@vue/runtime-dom@^3.0.0-rc.1":
  1028 + version "3.0.0"
  1029 + resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.0.tgz#e0d1f7c7e22e1318696014cc3501e06b288c2e11"
  1030 + integrity sha512-f312n5w9gK6mVvkDSj6/Xnot1XjlKXzFBYybmoy6ahAVC8ExbQ+LOWti1IZM/adU8VMNdKaw7Q53Hxz3y5jX8g==
  1031 + dependencies:
  1032 + "@vue/runtime-core" "3.0.0"
  1033 + "@vue/shared" "3.0.0"
  1034 + csstype "^2.6.8"
  1035 +
1084 1036 "@vue/shared@3.0.0":
1085 1037 version "3.0.0"
1086 1038 resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.0.0.tgz#ec089236629ecc0f10346b92f101ff4339169f1a"
... ... @@ -1226,7 +1178,7 @@ ant-design-vue@^2.0.0-beta.10:
1226 1178 shallowequal "^1.0.2"
1227 1179 warning "^4.0.0"
1228 1180  
1229   -any-promise@^1.0.0, any-promise@^1.1.0:
  1181 +any-promise@^1.1.0:
1230 1182 version "1.3.0"
1231 1183 resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
1232 1184 integrity sha1-q8av7tzqUugJzcA3au0845Y10X8=
... ... @@ -1644,14 +1596,6 @@ chalk@4.1.0, chalk@^4.0.0, chalk@^4.1.0:
1644 1596 ansi-styles "^4.1.0"
1645 1597 supports-color "^7.1.0"
1646 1598  
1647   -chalk@^3.0.0:
1648   - version "3.0.0"
1649   - resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
1650   - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
1651   - dependencies:
1652   - ansi-styles "^4.1.0"
1653   - supports-color "^7.1.0"
1654   -
1655 1599 character-entities-html4@^1.0.0:
1656 1600 version "1.1.4"
1657 1601 resolved "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz#0e64b0a3753ddbf1fdc044c5fd01d0199a02e125"
... ... @@ -1677,7 +1621,7 @@ chardet@^0.7.0:
1677 1621 resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
1678 1622 integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
1679 1623  
1680   -chokidar@^3.3.1, chokidar@^3.4.2:
  1624 +chokidar@^3.4.2:
1681 1625 version "3.4.2"
1682 1626 resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d"
1683 1627 integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==
... ... @@ -1733,10 +1677,10 @@ cli-cursor@^3.1.0:
1733 1677 dependencies:
1734 1678 restore-cursor "^3.1.0"
1735 1679  
1736   -cli-spinners@^2.2.0:
1737   - version "2.4.0"
1738   - resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.4.0.tgz#c6256db216b878cfba4720e719cec7cf72685d7f"
1739   - integrity sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA==
  1680 +cli-spinners@^2.4.0:
  1681 + version "2.5.0"
  1682 + resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047"
  1683 + integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==
1740 1684  
1741 1685 cli-truncate@^2.1.0:
1742 1686 version "2.1.0"
... ... @@ -2290,11 +2234,6 @@ deep-equal@~1.0.1:
2290 2234 resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
2291 2235 integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=
2292 2236  
2293   -deep-freeze@^0.0.1:
2294   - version "0.0.1"
2295   - resolved "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84"
2296   - integrity sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=
2297   -
2298 2237 deep-is@^0.1.3:
2299 2238 version "0.1.3"
2300 2239 resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
... ... @@ -2540,12 +2479,12 @@ error-ex@^1.2.0, error-ex@^1.3.1:
2540 2479 dependencies:
2541 2480 is-arrayish "^0.2.1"
2542 2481  
2543   -es-module-lexer@^0.3.18:
  2482 +es-module-lexer@^0.3.25:
2544 2483 version "0.3.25"
2545 2484 resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.3.25.tgz#24a1abcb9c5dc96923a8e42be033b801f788de06"
2546 2485 integrity sha512-H9VoFD5H9zEfiOX2LeTWDwMvAbLqcAyA2PIb40TOAvGpScOjit02oTGWgIh+M0rx2eJOKyJVM9wtpKFVgnyC3A==
2547 2486  
2548   -esbuild@^0.6.10:
  2487 +esbuild@^0.6.33:
2549 2488 version "0.6.34"
2550 2489 resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.6.34.tgz#76565a60e006f45d5f273b6e59e61ed0816551f5"
2551 2490 integrity sha512-InRdL/Q96pUucPqovJzvuLhquZr6jOn81FDVwFjCKz1rYKIm9OdOC+7Fs4vr6x48vKBl5LzKgtjU39BUpO636A==
... ... @@ -2734,7 +2673,7 @@ esutils@^2.0.2:
2734 2673 resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
2735 2674 integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
2736 2675  
2737   -etag@^1.3.0, etag@^1.8.1:
  2676 +etag@^1.8.1:
2738 2677 version "1.8.1"
2739 2678 resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
2740 2679 integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
... ... @@ -2744,7 +2683,7 @@ eventemitter3@^4.0.0:
2744 2683 resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
2745 2684 integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
2746 2685  
2747   -execa@^4.0.1, execa@^4.0.3:
  2686 +execa@^4.0.3:
2748 2687 version "4.0.3"
2749 2688 resolved "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz#0a34dabbad6d66100bd6f2c576c8669403f317f2"
2750 2689 integrity sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==
... ... @@ -3173,7 +3112,7 @@ glob@7.1.4:
3173 3112 once "^1.3.0"
3174 3113 path-is-absolute "^1.0.0"
3175 3114  
3176   -glob@^7.0.0, glob@^7.1.2, glob@^7.1.3, glob@^7.1.6:
  3115 +glob@^7.0.0, glob@^7.1.3, glob@^7.1.6:
3177 3116 version "7.1.6"
3178 3117 resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
3179 3118 integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
... ... @@ -3853,7 +3792,7 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4:
3853 3792 dependencies:
3854 3793 isobject "^3.0.1"
3855 3794  
3856   -is-reference@^1.1.2:
  3795 +is-reference@^1.2.1:
3857 3796 version "1.2.1"
3858 3797 resolved "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7"
3859 3798 integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==
... ... @@ -3958,13 +3897,14 @@ isobject@^3.0.0, isobject@^3.0.1:
3958 3897 resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
3959 3898 integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
3960 3899  
3961   -jest-worker@^24.9.0:
3962   - version "24.9.0"
3963   - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5"
3964   - integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==
  3900 +jest-worker@^26.2.1:
  3901 + version "26.5.0"
  3902 + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-26.5.0.tgz#87deee86dbbc5f98d9919e0dadf2c40e3152fa30"
  3903 + integrity sha512-kTw66Dn4ZX7WpjZ7T/SUDgRhapFRKWmisVAF0Rv4Fu8SLFD7eLbqpLvbxVqYhSgaWa7I+bW7pHnbyfNsH6stug==
3965 3904 dependencies:
  3905 + "@types/node" "*"
3966 3906 merge-stream "^2.0.0"
3967   - supports-color "^6.1.0"
  3907 + supports-color "^7.0.0"
3968 3908  
3969 3909 joycon@^2.2.5:
3970 3910 version "2.2.5"
... ... @@ -4112,10 +4052,10 @@ koa-compose@^4.1.0:
4112 4052 resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877"
4113 4053 integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==
4114 4054  
4115   -koa-conditional-get@^2.0.0:
4116   - version "2.0.0"
4117   - resolved "https://registry.npmjs.org/koa-conditional-get/-/koa-conditional-get-2.0.0.tgz#a43f3723c1d014b730a34ece8adf30b93c8233f2"
4118   - integrity sha1-pD83I8HQFLcwo07Oit8wuTyCM/I=
  4055 +koa-conditional-get@^3.0.0:
  4056 + version "3.0.0"
  4057 + resolved "https://registry.npmjs.org/koa-conditional-get/-/koa-conditional-get-3.0.0.tgz#552cb64a217dfb907e90b7c34f42009e441c4b8e"
  4058 + integrity sha512-VKyPS7SuNH26TjTV2IRz+oh0HV/jc2lYAo51PTQTkj0XFn8ebNZW9riczmrW7ZVBFSnls1Z88DPUYKnvVymruA==
4119 4059  
4120 4060 koa-convert@^1.2.0:
4121 4061 version "1.2.0"
... ... @@ -4125,13 +4065,12 @@ koa-convert@^1.2.0:
4125 4065 co "^4.6.0"
4126 4066 koa-compose "^3.0.0"
4127 4067  
4128   -koa-etag@^3.0.0:
4129   - version "3.0.0"
4130   - resolved "https://registry.npmjs.org/koa-etag/-/koa-etag-3.0.0.tgz#9ef7382ddd5a82ab0deb153415c915836f771d3f"
4131   - integrity sha1-nvc4Ld1agqsN6xU0FckVg293HT8=
  4068 +koa-etag@^4.0.0:
  4069 + version "4.0.0"
  4070 + resolved "https://registry.npmjs.org/koa-etag/-/koa-etag-4.0.0.tgz#2c2bb7ae69ca1ac6ced09ba28dcb78523c810414"
  4071 + integrity sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg==
4132 4072 dependencies:
4133   - etag "^1.3.0"
4134   - mz "^2.1.0"
  4073 + etag "^1.8.1"
4135 4074  
4136 4075 koa-proxies@^0.11.0:
4137 4076 version "0.11.0"
... ... @@ -4141,7 +4080,7 @@ koa-proxies@^0.11.0:
4141 4080 http-proxy "^1.16.2"
4142 4081 path-match "^1.2.4"
4143 4082  
4144   -koa-send@^5.0.0:
  4083 +koa-send@^5.0.0, koa-send@^5.0.1:
4145 4084 version "5.0.1"
4146 4085 resolved "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz#39dceebfafb395d0d60beaffba3a70b4f543fe79"
4147 4086 integrity sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==
... ... @@ -4158,7 +4097,7 @@ koa-static@^5.0.0:
4158 4097 debug "^3.1.0"
4159 4098 koa-send "^5.0.0"
4160 4099  
4161   -koa@^2.11.0:
  4100 +koa@^2.13.0:
4162 4101 version "2.13.0"
4163 4102 resolved "https://registry.npmjs.org/koa/-/koa-2.13.0.tgz#25217e05efd3358a7e5ddec00f0a380c9b71b501"
4164 4103 integrity sha512-i/XJVOfPw7npbMv67+bOeXr3gPqOAw6uh5wFyNs3QvJ47tUx3M3V9rIE0//WytY42MKz4l/MXKyGkQ2LQTfLUQ==
... ... @@ -4365,13 +4304,6 @@ lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17
4365 4304 resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
4366 4305 integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
4367 4306  
4368   -log-symbols@^3.0.0:
4369   - version "3.0.0"
4370   - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4"
4371   - integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==
4372   - dependencies:
4373   - chalk "^2.4.2"
4374   -
4375 4307 log-symbols@^4.0.0:
4376 4308 version "4.0.0"
4377 4309 resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920"
... ... @@ -4426,7 +4358,14 @@ lru-cache@^5.1.1:
4426 4358 dependencies:
4427 4359 yallist "^3.0.2"
4428 4360  
4429   -magic-string@^0.25.2, magic-string@^0.25.7:
  4361 +lru-cache@^6.0.0:
  4362 + version "6.0.0"
  4363 + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
  4364 + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
  4365 + dependencies:
  4366 + yallist "^4.0.0"
  4367 +
  4368 +magic-string@^0.25.7:
4430 4369 version "0.25.7"
4431 4370 resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051"
4432 4371 integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==
... ... @@ -4712,15 +4651,6 @@ mute-stream@0.0.8:
4712 4651 resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
4713 4652 integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
4714 4653  
4715   -mz@^2.1.0:
4716   - version "2.7.0"
4717   - resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
4718   - integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==
4719   - dependencies:
4720   - any-promise "^1.0.0"
4721   - object-assign "^4.0.1"
4722   - thenify-all "^1.0.0"
4723   -
4724 4654 nanoid@^3.0.1:
4725 4655 version "3.1.12"
4726 4656 resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.12.tgz#6f7736c62e8d39421601e4a0c77623a97ea69654"
... ... @@ -4905,7 +4835,7 @@ only@~0.0.2:
4905 4835 resolved "https://registry.npmjs.org/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4"
4906 4836 integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=
4907 4837  
4908   -open@^7.0.3:
  4838 +open@^7.0.3, open@^7.2.1:
4909 4839 version "7.3.0"
4910 4840 resolved "https://registry.npmjs.org/open/-/open-7.3.0.tgz#45461fdee46444f3645b6e14eb3ca94b82e1be69"
4911 4841 integrity sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==
... ... @@ -4930,16 +4860,16 @@ optionator@^0.9.1:
4930 4860 type-check "^0.4.0"
4931 4861 word-wrap "^1.2.3"
4932 4862  
4933   -ora@^4.0.4:
4934   - version "4.1.1"
4935   - resolved "https://registry.npmjs.org/ora/-/ora-4.1.1.tgz#566cc0348a15c36f5f0e979612842e02ba9dddbc"
4936   - integrity sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==
  4863 +ora@^5.1.0:
  4864 + version "5.1.0"
  4865 + resolved "https://registry.npmjs.org/ora/-/ora-5.1.0.tgz#b188cf8cd2d4d9b13fd25383bc3e5cba352c94f8"
  4866 + integrity sha512-9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w==
4937 4867 dependencies:
4938   - chalk "^3.0.0"
  4868 + chalk "^4.1.0"
4939 4869 cli-cursor "^3.1.0"
4940   - cli-spinners "^2.2.0"
  4870 + cli-spinners "^2.4.0"
4941 4871 is-interactive "^1.0.0"
4942   - log-symbols "^3.0.0"
  4872 + log-symbols "^4.0.0"
4943 4873 mute-stream "0.0.8"
4944 4874 strip-ansi "^6.0.0"
4945 4875 wcwidth "^1.0.1"
... ... @@ -5381,7 +5311,7 @@ postcss-value-parser@^4.1.0:
5381 5311 resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb"
5382 5312 integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
5383 5313  
5384   -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.28, postcss@^7.0.31, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6:
  5314 +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.31, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6:
5385 5315 version "7.0.35"
5386 5316 resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24"
5387 5317 integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==
... ... @@ -5778,7 +5708,7 @@ resolve-url@^0.2.1:
5778 5708 resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
5779 5709 integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
5780 5710  
5781   -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.17.0, resolve@^1.3.2:
  5711 +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.17.0, resolve@^1.3.2:
5782 5712 version "1.17.0"
5783 5713 resolved "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444"
5784 5714 integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==
... ... @@ -5830,7 +5760,7 @@ rollup-plugin-analyzer@^3.3.0:
5830 5760 resolved "https://registry.npmjs.org/rollup-plugin-analyzer/-/rollup-plugin-analyzer-3.3.0.tgz#52fb30465ae927d9c078b6ec90c578cfb9164fc2"
5831 5761 integrity sha512-zUPGitW4usmZcVa0nKecRvw3odtXgnxdCben9Hx1kxVoR3demek8RU9tmRG/R35hnRPQTb7wEsYEe3GUcjxIMA==
5832 5762  
5833   -rollup-plugin-dynamic-import-variables@^1.0.1:
  5763 +rollup-plugin-dynamic-import-variables@^1.1.0:
5834 5764 version "1.1.0"
5835 5765 resolved "https://registry.npmjs.org/rollup-plugin-dynamic-import-variables/-/rollup-plugin-dynamic-import-variables-1.1.0.tgz#4981d38907a471b35234398a09047bef47a2006a"
5836 5766 integrity sha512-C1avEmnXC8cC4aAQ5dB63O9oQf7IrhEHc98bQw9Qd6H36FxtZooLCvVfcO4SNYrqaNrzH3ErucQt/zdFSLPHNw==
... ... @@ -5857,16 +5787,15 @@ rollup-plugin-purge-icons@^0.4.4:
5857 5787 "@purge-icons/core" "^0.4.4"
5858 5788 "@purge-icons/generated" "^0.4.1"
5859 5789  
5860   -rollup-plugin-terser@^5.3.0:
5861   - version "5.3.1"
5862   - resolved "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-5.3.1.tgz#8c650062c22a8426c64268548957463bf981b413"
5863   - integrity sha512-1pkwkervMJQGFYvM9nscrUoncPwiKR/K+bHdjv6PFgRo3cgPHoRT83y2Aa3GvINj4539S15t/tpFPb775TDs6w==
  5790 +rollup-plugin-terser@^7.0.2:
  5791 + version "7.0.2"
  5792 + resolved "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d"
  5793 + integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==
5864 5794 dependencies:
5865   - "@babel/code-frame" "^7.5.5"
5866   - jest-worker "^24.9.0"
5867   - rollup-pluginutils "^2.8.2"
  5795 + "@babel/code-frame" "^7.10.4"
  5796 + jest-worker "^26.2.1"
5868 5797 serialize-javascript "^4.0.0"
5869   - terser "^4.6.2"
  5798 + terser "^5.0.0"
5870 5799  
5871 5800 rollup-plugin-visualizer@^4.1.1:
5872 5801 version "4.1.1"
... ... @@ -5888,7 +5817,7 @@ rollup-plugin-vue@^6.0.0-beta.10:
5888 5817 hash-sum "^2.0.0"
5889 5818 rollup-pluginutils "^2.8.2"
5890 5819  
5891   -rollup-plugin-web-worker-loader@^1.3.0:
  5820 +rollup-plugin-web-worker-loader@^1.3.1:
5892 5821 version "1.4.0"
5893 5822 resolved "https://registry.npmjs.org/rollup-plugin-web-worker-loader/-/rollup-plugin-web-worker-loader-1.4.0.tgz#b4fd711118758c2111c30e794e2f2757b75a27b8"
5894 5823 integrity sha512-jhlOwSkrXkAVFY2Fded0M1AS9iqZDNjUJxNz4BFjBlaKuUzTx8Ikey+b3LSegUJE4mzAAw2DqJD8pX12R0ZdDw==
... ... @@ -5908,7 +5837,7 @@ rollup@^0.63.4:
5908 5837 "@types/estree" "0.0.39"
5909 5838 "@types/node" "*"
5910 5839  
5911   -rollup@^2.20.0, rollup@^2.26.11:
  5840 +rollup@^2.26.11:
5912 5841 version "2.29.0"
5913 5842 resolved "https://registry.npmjs.org/rollup/-/rollup-2.29.0.tgz#0c5c5968530b21ca0e32f8b94b7cd9346cfb0eec"
5914 5843 integrity sha512-gtU0sjxMpsVlpuAf4QXienPmUAhd6Kc7owQ4f5lypoxBW18fw2UNYZ4NssLGsri6WhUZkE/Ts3EMRebN+gNLiQ==
... ... @@ -6139,7 +6068,7 @@ source-map-resolve@^0.5.0:
6139 6068 source-map-url "^0.4.0"
6140 6069 urix "^0.1.0"
6141 6070  
6142   -source-map-support@^0.5.17, source-map-support@~0.5.12:
  6071 +source-map-support@^0.5.17, source-map-support@~0.5.19:
6143 6072 version "0.5.19"
6144 6073 resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
6145 6074 integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
... ... @@ -6157,12 +6086,12 @@ source-map@^0.5.0, source-map@^0.5.6:
6157 6086 resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
6158 6087 integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
6159 6088  
6160   -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
  6089 +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0:
6161 6090 version "0.6.1"
6162 6091 resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
6163 6092 integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
6164 6093  
6165   -source-map@^0.7.3:
  6094 +source-map@^0.7.3, source-map@~0.7.2:
6166 6095 version "0.7.3"
6167 6096 resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
6168 6097 integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
... ... @@ -6507,7 +6436,7 @@ supports-color@^6.1.0:
6507 6436 dependencies:
6508 6437 has-flag "^3.0.0"
6509 6438  
6510   -supports-color@^7.1.0:
  6439 +supports-color@^7.0.0, supports-color@^7.1.0:
6511 6440 version "7.2.0"
6512 6441 resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
6513 6442 integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
... ... @@ -6616,14 +6545,14 @@ tempfile@^3.0.0:
6616 6545 temp-dir "^2.0.0"
6617 6546 uuid "^3.3.2"
6618 6547  
6619   -terser@^4.6.2:
6620   - version "4.8.0"
6621   - resolved "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17"
6622   - integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==
  6548 +terser@^5.0.0:
  6549 + version "5.3.5"
  6550 + resolved "https://registry.npmjs.org/terser/-/terser-5.3.5.tgz#9e080baa0568f96654621b20eb9effa440b1484e"
  6551 + integrity sha512-Qw3CZAMmmfU824AoGKalx+riwocSI5Cs0PoGp9RdSLfmxkmJgyBxqLBP/isDNtFyhHnitikvRMZzyVgeq+U+Tg==
6623 6552 dependencies:
6624 6553 commander "^2.20.0"
6625   - source-map "~0.6.1"
6626   - source-map-support "~0.5.12"
  6554 + source-map "~0.7.2"
  6555 + source-map-support "~0.5.19"
6627 6556  
6628 6557 text-extensions@^1.0.0:
6629 6558 version "1.9.0"
... ... @@ -6635,20 +6564,6 @@ text-table@^0.2.0:
6635 6564 resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
6636 6565 integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
6637 6566  
6638   -thenify-all@^1.0.0:
6639   - version "1.6.0"
6640   - resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
6641   - integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=
6642   - dependencies:
6643   - thenify ">= 3.1.0 < 4"
6644   -
6645   -"thenify@>= 3.1.0 < 4":
6646   - version "3.3.1"
6647   - resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f"
6648   - integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==
6649   - dependencies:
6650   - any-promise "^1.0.0"
6651   -
6652 6567 through2@^2.0.0, through2@^2.0.2:
6653 6568 version "2.0.5"
6654 6569 resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
... ... @@ -7042,61 +6957,61 @@ vite-plugin-purge-icons@^0.4.4:
7042 6957 "@purge-icons/generated" "^0.4.1"
7043 6958 rollup-plugin-purge-icons "^0.4.4"
7044 6959  
7045   -vite@^1.0.0-rc.4:
7046   - version "1.0.0-rc.4"
7047   - resolved "https://registry.npmjs.org/vite/-/vite-1.0.0-rc.4.tgz#210106136861b231704e6381ac9eb1bcd655d4f0"
7048   - integrity sha512-D9gpKKaE2U0YpIxNrSn+nlFPBT0sfg68Y1EReYW8YHMhbNFcxwS7RZIa1W/8Pq6yDfVRAhbOZNijv1mLG5pCEg==
  6960 +"vite@npm:@knightly/vite":
  6961 + version "1.0.0-knightly.202010140013"
  6962 + resolved "https://registry.npmjs.org/@knightly/vite/-/vite-1.0.0-knightly.202010140013.tgz#8feb5926fe056538384e35c91d356675df3c3504"
  6963 + integrity sha512-wsCJ7ISIpO2ek5/t5t8t+3EhDZu5y51tmf6P7yQKupaMw14CZ5YZY/VSeTWZfD5CIa2vaSCLf+x4fCv36Jw+kw==
7049 6964 dependencies:
7050   - "@babel/parser" "^7.9.4"
7051   - "@rollup/plugin-commonjs" "^14.0.0"
7052   - "@rollup/plugin-json" "^4.0.3"
7053   - "@rollup/plugin-node-resolve" "^8.4.0"
7054   - "@types/koa" "^2.11.3"
  6965 + "@babel/parser" "^7.11.5"
  6966 + "@rollup/plugin-commonjs" "^15.0.0"
  6967 + "@rollup/plugin-json" "^4.1.0"
  6968 + "@rollup/plugin-node-resolve" "^9.0.0"
  6969 + "@rollup/pluginutils" "^4.0.0"
  6970 + "@types/koa" "^2.11.4"
7055 6971 "@types/lru-cache" "^5.1.0"
7056   - "@vue/compiler-dom" "^3.0.0-rc.5"
7057   - "@vue/compiler-sfc" "^3.0.0-rc.5"
  6972 + "@vue/compiler-dom" "^3.0.0-rc.10"
  6973 + "@vue/compiler-sfc" "^3.0.0-rc.10"
7058 6974 brotli-size "^4.0.0"
7059   - chalk "^4.0.0"
7060   - chokidar "^3.3.1"
  6975 + chalk "^4.1.0"
  6976 + chokidar "^3.4.2"
7061 6977 clean-css "^4.2.3"
7062 6978 debug "^4.1.1"
7063 6979 dotenv "^8.2.0"
7064 6980 dotenv-expand "^5.1.0"
7065   - es-module-lexer "^0.3.18"
7066   - esbuild "^0.6.10"
  6981 + es-module-lexer "^0.3.25"
  6982 + esbuild "^0.6.33"
7067 6983 etag "^1.8.1"
7068   - execa "^4.0.1"
7069   - fs-extra "^9.0.0"
  6984 + execa "^4.0.3"
  6985 + fs-extra "^9.0.1"
7070 6986 hash-sum "^2.0.0"
7071 6987 isbuiltin "^1.0.0"
7072   - koa "^2.11.0"
7073   - koa-conditional-get "^2.0.0"
7074   - koa-etag "^3.0.0"
  6988 + koa "^2.13.0"
  6989 + koa-conditional-get "^3.0.0"
  6990 + koa-etag "^4.0.0"
7075 6991 koa-proxies "^0.11.0"
7076   - koa-send "^5.0.0"
  6992 + koa-send "^5.0.1"
7077 6993 koa-static "^5.0.0"
7078   - lru-cache "^5.1.1"
  6994 + lru-cache "^6.0.0"
7079 6995 magic-string "^0.25.7"
7080 6996 merge-source-map "^1.1.0"
7081 6997 mime-types "^2.1.27"
7082 6998 minimist "^1.2.5"
7083   - open "^7.0.3"
7084   - ora "^4.0.4"
7085   - postcss "^7.0.28"
  6999 + open "^7.2.1"
  7000 + ora "^5.1.0"
  7001 + postcss "^7.0.32"
7086 7002 postcss-discard-comments "^4.0.2"
7087 7003 postcss-import "^12.0.1"
7088 7004 postcss-load-config "^2.1.0"
7089 7005 resolve "^1.17.0"
7090   - rollup "^2.20.0"
7091   - rollup-plugin-dynamic-import-variables "^1.0.1"
7092   - rollup-plugin-terser "^5.3.0"
  7006 + rollup "^2.26.11"
  7007 + rollup-plugin-dynamic-import-variables "^1.1.0"
  7008 + rollup-plugin-terser "^7.0.2"
7093 7009 rollup-plugin-vue "^6.0.0-beta.10"
7094   - rollup-plugin-web-worker-loader "^1.3.0"
7095   - rollup-pluginutils "^2.8.2"
  7010 + rollup-plugin-web-worker-loader "^1.3.1"
7096 7011 selfsigned "^1.10.7"
7097 7012 slash "^3.0.0"
7098   - vue "^3.0.0-rc.5"
7099   - ws "^7.2.3"
  7013 + vue "^3.0.0-rc.10"
  7014 + ws "^7.3.1"
7100 7015  
7101 7016 vue-eslint-parser@^7.1.0:
7102 7017 version "7.1.0"
... ... @@ -7132,16 +7047,7 @@ vue-router@^4.0.0-beta.13:
7132 7047 resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.0.0-beta.13.tgz#4611d09a9e44f231cc401ecc294a7f2dcb30e6a6"
7133 7048 integrity sha512-dYv9qpHPaojQlfujViiTkPkf1Bf5RCFzkCkdVFc1cENzWJYAGJanpIHiyjyKoM4u7IDFBZMItci+U4ieaEWA8A==
7134 7049  
7135   -vue@^3.0.0-rc.5:
7136   - version "3.0.0"
7137   - resolved "https://registry.npmjs.org/vue/-/vue-3.0.0.tgz#cfb5df5c34efce319b113a1667d12b74dcfd9c90"
7138   - integrity sha512-ZMrAARZ32sGIaYKr7Fk2GZEBh/VhulSrGxcGBiAvbN4fhjl3tuJyNFbbbLFqGjndbLoBW66I2ECq8ICdvkKdJw==
7139   - dependencies:
7140   - "@vue/compiler-dom" "3.0.0"
7141   - "@vue/runtime-dom" "3.0.0"
7142   - "@vue/shared" "3.0.0"
7143   -
7144   -vue@^3.0.1:
  7050 +vue@^3.0.0-rc.10, vue@^3.0.1:
7145 7051 version "3.0.1"
7146 7052 resolved "https://registry.npmjs.org/vue/-/vue-3.0.1.tgz#dcdabf07da37e655e23d7d22eacc18c2da5f5a16"
7147 7053 integrity sha512-WBTgaQMJIWQuhlzMV6C0qvVrxyQSpx3gKwflYC0sqGKEZSxMIOYRnrIlHUN4ivUVvP7mUMxcnFTt7P+akdOkQA==
... ... @@ -7257,7 +7163,7 @@ write@1.0.3:
7257 7163 dependencies:
7258 7164 mkdirp "^0.5.1"
7259 7165  
7260   -ws@^7.2.3:
  7166 +ws@^7.3.1:
7261 7167 version "7.3.1"
7262 7168 resolved "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8"
7263 7169 integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==
... ... @@ -7282,6 +7188,11 @@ yallist@^3.0.2:
7282 7188 resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
7283 7189 integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
7284 7190  
  7191 +yallist@^4.0.0:
  7192 + version "4.0.0"
  7193 + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
  7194 + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
  7195 +
7285 7196 yaml@^1.10.0:
7286 7197 version "1.10.0"
7287 7198 resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e"
... ...