Commit 99ac309fa9eed36f8444b8bbab7b18275c5aa5aa

Authored by vben
1 parent 1d3007f0

wip: support vite

Showing 105 changed files with 950 additions and 2166 deletions
.env.production
... ... @@ -23,5 +23,5 @@ VITE_GLOB_API_URL_PREFIX=
23 23 # use pwa
24 24 VITE_USE_PWA = false
25 25  
26   -# TODO use Cdn
27   -VITE_USE_CDN = true
  26 +# Is it compatible with older browsers
  27 +VITE_LEGACY = false
... ...
build/script/changelog.ts deleted 100644 → 0
1   -// #!/usr/bin/env node
2   -
3   -import { sh } from 'tasksfile';
4   -import { errorConsole, successConsole } from '../utils';
5   -
6   -export const runChangeLog = async () => {
7   - try {
8   - let cmd = `conventional-changelog -p custom-config -i CHANGELOG.md -s -r 0 `;
9   -
10   - await sh(cmd, {
11   - async: true,
12   - nopipe: true,
13   - });
14   - await sh('prettier --write **/CHANGELOG.md ', {
15   - async: true,
16   - nopipe: true,
17   - });
18   - successConsole('CHANGE_LOG.md generated successfully!');
19   - } catch (error) {
20   - errorConsole('CHANGE_LOG.md generated error\n' + error);
21   -
22   - process.exit(1);
23   - }
24   -};
25   -
26   -runChangeLog();
build/script/postBuild.ts
... ... @@ -3,7 +3,6 @@
3 3 import { argv } from 'yargs';
4 4 import { runBuildConfig } from './buildConf';
5 5 import { errorConsole, successConsole } from '../utils';
6   -import { startGzipStyle } from '../vite/plugin/gzip/compress';
7 6  
8 7 export const runBuild = async () => {
9 8 try {
... ... @@ -13,8 +12,6 @@ export const runBuild = async () => {
13 12 if (!argvList.includes('no-conf')) {
14 13 await runBuildConfig();
15 14 }
16   - // await runUpdateHtml();
17   - await startGzipStyle();
18 15 successConsole('Vite Build successfully!');
19 16 } catch (error) {
20 17 errorConsole('Vite Build Error\n' + error);
... ...
build/utils.ts
... ... @@ -63,11 +63,11 @@ export function getIPAddress() {
63 63 return '';
64 64 }
65 65  
66   -export function isDevFn(mode: 'development' | 'production'): boolean {
  66 +export function isDevFn(mode: string): boolean {
67 67 return mode === 'development';
68 68 }
69 69  
70   -export function isProdFn(mode: 'development' | 'production'): boolean {
  70 +export function isProdFn(mode: string): boolean {
71 71 return mode === 'production';
72 72 }
73 73  
... ... @@ -85,13 +85,6 @@ export function isBuildGzip(): boolean {
85 85 return process.env.VITE_BUILD_GZIP === 'true';
86 86 }
87 87  
88   -/**
89   - * Whether to generate package site
90   - */
91   -export function isSiteMode(): boolean {
92   - return process.env.SITE === 'true';
93   -}
94   -
95 88 export interface ViteEnv {
96 89 VITE_PORT: number;
97 90 VITE_USE_MOCK: boolean;
... ... @@ -99,10 +92,12 @@ export interface ViteEnv {
99 92 VITE_PUBLIC_PATH: string;
100 93 VITE_PROXY: [string, string][];
101 94 VITE_GLOB_APP_TITLE: string;
  95 + VITE_GLOB_APP_SHORT_NAME: string;
102 96 VITE_USE_CDN: boolean;
103 97 VITE_DROP_CONSOLE: boolean;
104 98 VITE_BUILD_GZIP: boolean;
105 99 VITE_DYNAMIC_IMPORT: boolean;
  100 + VITE_LEGACY: boolean;
106 101 }
107 102  
108 103 // Read all environment variable configuration files to process.env
... ...
build/vite/hm.ts deleted 100644 → 0
1   -// Baidu statistics code for site deployment
2   -// Only open in build:site
3   -export const hmScript = `<script>
4   -var _hmt = _hmt || [];
5   -(function() {
6   - var hm = document.createElement("script");
7   - hm.src = "https://hm.baidu.com/hm.js?384d6046e02f6ac4ea075357bd0e9b43";
8   - var s = document.getElementsByTagName("script")[0];
9   - s.parentNode.insertBefore(hm, s);
10   -})();
11   -</script>
12   -`;
build/vite/plugin/gzip.ts 0 → 100644
  1 +import gzipPlugin from 'rollup-plugin-gzip';
  2 +import { isBuildGzip } from '../../utils';
  3 +import { Plugin } from 'vite';
  4 +export function configGzipPlugin(isBuild: boolean): Plugin | Plugin[] {
  5 + const useGzip = isBuild && isBuildGzip;
  6 +
  7 + if (useGzip) {
  8 + return gzipPlugin();
  9 + }
  10 +
  11 + return [];
  12 +}
... ...
build/vite/plugin/gzip/compress.ts deleted 100644 → 0
1   -import { gzip } from 'zlib';
2   -import { readFileSync, writeFileSync } from 'fs';
3   -import { GzipPluginOptions } from './types';
4   -import { readAllFile, getCwdPath, isBuildGzip, isSiteMode } from '../../../utils';
5   -
6   -export function startGzip(
7   - fileContent: string | Buffer,
8   - options: GzipPluginOptions = {}
9   -): Promise<Buffer> {
10   - return new Promise((resolve, reject) => {
11   - gzip(fileContent, options.gzipOptions || {}, (err, result) => {
12   - if (err) {
13   - reject(err);
14   - } else {
15   - resolve(result);
16   - }
17   - });
18   - });
19   -}
20   -
21   -// 手动压缩css
22   -export async function startGzipStyle() {
23   - if (isBuildGzip() || isSiteMode()) {
24   - const outDir = 'dist';
25   - const assets = '_assets';
26   - const allCssFile = readAllFile(getCwdPath(outDir, assets), /\.(css)$/);
27   - for (const path of allCssFile) {
28   - const source = readFileSync(path);
29   - const content = await startGzip(source);
30   - const ds = path.split('/');
31   - const fileName = ds[ds.length - 1];
32   - writeFileSync(getCwdPath(outDir, assets, `${fileName}.gz`), content);
33   - }
34   - }
35   -}
build/vite/plugin/gzip/index.ts deleted 100644 → 0
1   -// 修改自https://github.com/kryops/rollup-plugin-gzip
2   -// 因为rollup-plugin-gzip不支持vite
3   -// vite对css打包独立的。所以不能在打包的时候顺带打包css
4   -// TODO rc.9会支持 configurBuild 配置项。到时候重新修改
5   -
6   -import { readFile, writeFile } from 'fs';
7   -import { basename } from 'path';
8   -import { promisify } from 'util';
9   -import { gzip } from 'zlib';
10   -
11   -import { OutputAsset, OutputChunk, OutputOptions, Plugin } from 'rollup';
12   -import { GzipPluginOptions } from './types';
13   -
14   -const isFunction = (arg: unknown): arg is (...args: any[]) => any => typeof arg === 'function';
15   -const isRegExp = (arg: unknown): arg is RegExp =>
16   - Object.prototype.toString.call(arg) === '[object RegExp]';
17   -
18   -export type StringMappingOption = (originalString: string) => string;
19   -export type CustomCompressionOption = (
20   - content: string | Buffer
21   -) => string | Buffer | Promise<string | Buffer>;
22   -
23   -const readFilePromise = promisify(readFile);
24   -const writeFilePromise = promisify(writeFile);
25   -
26   -// functionality partially copied from rollup
27   -
28   -/**
29   - * copied from https://github.com/rollup/rollup/blob/master/src/rollup/index.ts#L450
30   - */
31   -function isOutputChunk(file: OutputAsset | OutputChunk): file is OutputChunk {
32   - return typeof (file as OutputChunk).code === 'string';
33   -}
34   -
35   -/**
36   - * Gets the string/buffer content from a file object.
37   - * Important for adding source map comments
38   - *
39   - * Copied partially from rollup.writeOutputFile
40   - * https://github.com/rollup/rollup/blob/master/src/rollup/index.ts#L454
41   - */
42   -function getOutputFileContent(
43   - outputFileName: string,
44   - outputFile: OutputAsset | OutputChunk,
45   - outputOptions: OutputOptions
46   -): string | Buffer {
47   - if (isOutputChunk(outputFile)) {
48   - let source: string | Buffer;
49   - source = outputFile.code;
50   - if (outputOptions.sourcemap && outputFile.map) {
51   - const url =
52   - outputOptions.sourcemap === 'inline'
53   - ? outputFile.map.toUrl()
54   - : `${basename(outputFileName)}.map`;
55   -
56   - // https://github.com/rollup/rollup/blob/master/src/utils/sourceMappingURL.ts#L1
57   - source += `//# source` + `MappingURL=${url}\n`;
58   - }
59   - return source;
60   - } else {
61   - return typeof outputFile.source === 'string'
62   - ? outputFile.source
63   - : // just to be sure, as it is typed string | Uint8Array in rollup 2.0.0
64   - Buffer.from(outputFile.source);
65   - }
66   -}
67   -
68   -// actual plugin code
69   -
70   -function gzipPlugin(options: GzipPluginOptions = {}): Plugin {
71   - // check for old options
72   - if ('algorithm' in options) {
73   - console.warn(
74   - '[rollup-plugin-gzip] The "algorithm" option is not supported any more! ' +
75   - 'Use "customCompression" instead to specify a different compression algorithm.'
76   - );
77   - }
78   - if ('options' in options) {
79   - console.warn('[rollup-plugin-gzip] The "options" option was renamed to "gzipOptions"!');
80   - }
81   - if ('additional' in options) {
82   - console.warn('[rollup-plugin-gzip] The "additional" option was renamed to "additionalFiles"!');
83   - }
84   - if ('delay' in options) {
85   - console.warn('[rollup-plugin-gzip] The "delay" option was renamed to "additionalFilesDelay"!');
86   - }
87   -
88   - const compressGzip: CustomCompressionOption = (fileContent) => {
89   - return new Promise((resolve, reject) => {
90   - gzip(fileContent, options.gzipOptions || {}, (err, result) => {
91   - if (err) {
92   - reject(err);
93   - } else {
94   - resolve(result);
95   - }
96   - });
97   - });
98   - };
99   -
100   - const doCompress = options.customCompression || compressGzip;
101   -
102   - const mapFileName: StringMappingOption = isFunction(options.fileName)
103   - ? (options.fileName as StringMappingOption)
104   - : (fileName: string) => fileName + (options.fileName || '.gz');
105   -
106   - const plugin: Plugin = {
107   - name: 'gzip',
108   -
109   - generateBundle(outputOptions, bundle) {
110   - return Promise.all(
111   - Object.keys(bundle)
112   - .map((fileName) => {
113   - const fileEntry = bundle[fileName];
114   -
115   - // file name filter option check
116   -
117   - const fileNameFilter = options.filter || /\.(js|mjs|json|css|html)$/;
118   -
119   - if (isRegExp(fileNameFilter) && !fileName.match(fileNameFilter)) {
120   - return Promise.resolve();
121   - }
122   -
123   - if (
124   - isFunction(fileNameFilter) &&
125   - !(fileNameFilter as (x: string) => boolean)(fileName)
126   - ) {
127   - return Promise.resolve();
128   - }
129   -
130   - const fileContent = getOutputFileContent(fileName, fileEntry, outputOptions);
131   -
132   - // minSize option check
133   - if (options.minSize && options.minSize > fileContent.length) {
134   - return Promise.resolve();
135   - }
136   -
137   - return Promise.resolve(doCompress(fileContent))
138   - .then((compressedContent) => {
139   - const compressedFileName = mapFileName(fileName);
140   - bundle[compressedFileName] = {
141   - type: 'asset', // Rollup >= 1.21
142   - name: compressedFileName,
143   - fileName: compressedFileName,
144   - isAsset: true, // Rollup < 1.21
145   - source: compressedContent,
146   - };
147   - })
148   - .catch((err: any) => {
149   - console.error(err);
150   - return Promise.reject('[rollup-plugin-gzip] Error compressing file ' + fileName);
151   - });
152   - })
153   - .concat([
154   - (() => {
155   - if (!options.additionalFiles || !options.additionalFiles.length)
156   - return Promise.resolve();
157   -
158   - const compressAdditionalFiles = () =>
159   - Promise.all(
160   - options.additionalFiles!.map((filePath) =>
161   - readFilePromise(filePath)
162   - .then((fileContent) => doCompress(fileContent))
163   - .then((compressedContent) => {
164   - return writeFilePromise(mapFileName(filePath), compressedContent);
165   - })
166   - .catch(() => {
167   - return Promise.reject(
168   - '[rollup-plugin-gzip] Error compressing additional file ' +
169   - filePath +
170   - '. Please check the spelling of your configured additionalFiles. ' +
171   - 'You might also have to increase the value of the additionalFilesDelay option.'
172   - );
173   - })
174   - )
175   - ) as Promise<any>;
176   -
177   - // additional files can be processed outside of rollup after a delay
178   - // for older plugins or plugins that write to disk (curcumventing rollup) without awaiting
179   - const additionalFilesDelay = options.additionalFilesDelay || 0;
180   -
181   - if (additionalFilesDelay) {
182   - setTimeout(compressAdditionalFiles, additionalFilesDelay);
183   - return Promise.resolve();
184   - } else {
185   - return compressAdditionalFiles();
186   - }
187   - })(),
188   - ])
189   - ) as Promise<any>;
190   - },
191   - };
192   -
193   - return plugin;
194   -}
195   -
196   -export default gzipPlugin;
build/vite/plugin/gzip/types.ts deleted 100644 → 0
1   -import type { ZlibOptions } from 'zlib';
2   -
3   -export type StringMappingOption = (originalString: string) => string;
4   -export type CustomCompressionOption = (
5   - content: string | Buffer
6   -) => string | Buffer | Promise<string | Buffer>;
7   -
8   -export interface GzipPluginOptions {
9   - /**
10   - * Control which of the output files to compress
11   - *
12   - * Defaults to `/\.(js|mjs|json|css|html)$/`
13   - */
14   - filter?: RegExp | ((fileName: string) => boolean);
15   -
16   - /**
17   - * GZIP compression options, see https://nodejs.org/api/zlib.html#zlib_class_options
18   - */
19   - gzipOptions?: ZlibOptions;
20   -
21   - /**
22   - * Specified the minimum size in Bytes for a file to get compressed.
23   - * Files that are smaller than this threshold will not be compressed.
24   - * This does not apply to the files specified through `additionalFiles`!
25   - */
26   - minSize?: number;
27   -
28   - /**
29   - * This option allows you to compress additional files outside of the main rollup bundling process.
30   - * The processing is delayed to make sure the files are written on disk; the delay is controlled
31   - * through `additionalFilesDelay`.
32   - */
33   - additionalFiles?: string[];
34   -
35   - /**
36   - * This options sets a delay (ms) before the plugin compresses the files specified through `additionalFiles`.
37   - * Increase this value if your artifacts take a long time to generate.
38   - *
39   - * Defaults to `2000`
40   - */
41   - additionalFilesDelay?: number;
42   -
43   - /**
44   - * Set a custom compression algorithm. The function can either return the compressed contents synchronously,
45   - * or otherwise return a promise for asynchronous processing.
46   - */
47   - customCompression?: CustomCompressionOption;
48   -
49   - /**
50   - * Set a custom file name convention for the compressed files. Can be a suffix string or a function
51   - * returning the file name.
52   - *
53   - * Defaults to `.gz`
54   - */
55   - fileName?: string | StringMappingOption;
56   -}
build/vite/plugin/html.ts
1 1 import type { Plugin } from 'vite';
2   -import ViteHtmlPlugin from 'vite-plugin-html';
3   -import { isProdFn, isSiteMode, ViteEnv } from '../../utils';
  2 +import html from 'vite-plugin-html';
  3 +import { ViteEnv } from '../../utils';
4 4  
5   -import { hmScript } from '../hm';
6 5 // @ts-ignore
7 6 import pkg from '../../../package.json';
8 7 import { GLOB_CONFIG_FILE_NAME } from '../../constant';
9 8  
10   -export function setupHtmlPlugin(
11   - plugins: Plugin[],
12   - env: ViteEnv,
13   - mode: 'development' | 'production'
14   -) {
  9 +export function configHtmlPlugin(env: ViteEnv, isBuild: boolean) {
15 10 const { VITE_GLOB_APP_TITLE, VITE_PUBLIC_PATH } = env;
16   -
17   - const htmlPlugin = ViteHtmlPlugin({
18   - // html title
19   - title: VITE_GLOB_APP_TITLE,
20   - minify: isProdFn(mode),
21   - options: {
22   - publicPath: VITE_PUBLIC_PATH,
23   - // Package and insert additional configuration files
24   - injectConfig: isProdFn(mode)
25   - ? `<script src='${VITE_PUBLIC_PATH || './'}${GLOB_CONFIG_FILE_NAME}?v=${
26   - pkg.version
27   - }-${new Date().getTime()}'></script>`
28   - : '',
29   - // Insert Baidu statistics code
30   - hmScript: isSiteMode() ? hmScript : '',
31   - title: VITE_GLOB_APP_TITLE,
  11 + const htmlPlugin: Plugin[] = html({
  12 + minify: isBuild,
  13 + inject: {
  14 + injectData: {
  15 + title: VITE_GLOB_APP_TITLE,
  16 + },
  17 + tags: isBuild
  18 + ? [
  19 + {
  20 + tag: 'script',
  21 + attrs: {
  22 + src: `${VITE_PUBLIC_PATH || './'}${GLOB_CONFIG_FILE_NAME}?v=${
  23 + pkg.version
  24 + }-${new Date().getTime()}`,
  25 + },
  26 + },
  27 + ]
  28 + : [],
32 29 },
33 30 });
34   -
35   - plugins.push(htmlPlugin);
36   - return plugins;
  31 + return htmlPlugin;
37 32 }
... ...
build/vite/plugin/importContext.ts 0 → 100644
  1 +import dynamicImport from 'vite-plugin-import-context';
  2 +import type { ViteEnv } from '../../utils';
  3 +import type { Plugin } from 'vite';
  4 +
  5 +export function configDynamicImport(env: ViteEnv) {
  6 + const { VITE_DYNAMIC_IMPORT } = env;
  7 + const dynamicImportPlugin: Plugin = dynamicImport({
  8 + include: ['**/*.ts'],
  9 + autoImportRoute: VITE_DYNAMIC_IMPORT,
  10 + });
  11 + return dynamicImportPlugin;
  12 +}
... ...
build/vite/plugin/index.ts
1   -import type { Plugin as VitePlugin } from 'vite';
2   -import type { Plugin as rollupPlugin } from 'rollup';
  1 +import type { Plugin } from 'vite';
3 2  
4 3 import PurgeIcons from 'vite-plugin-purge-icons';
5 4  
6 5 import visualizer from 'rollup-plugin-visualizer';
7   -import gzipPlugin from './gzip/index';
8 6  
9 7 // @ts-ignore
10 8 import pkg from '../../../package.json';
11   -import { isSiteMode, ViteEnv, isReportMode, isBuildGzip } from '../../utils';
12   -import { setupHtmlPlugin } from './html';
13   -import { setupPwaPlugin } from './pwa';
14   -import { setupMockPlugin } from './mock';
  9 +import { ViteEnv, isReportMode } from '../../utils';
  10 +import { configHtmlPlugin } from './html';
  11 +import { configPwaConfig } from './pwa';
  12 +import { configMockPlugin } from './mock';
  13 +import { configDynamicImport } from './importContext';
  14 +import { configGzipPlugin } from './gzip';
15 15  
16 16 // gen vite plugins
17   -export function createVitePlugins(viteEnv: ViteEnv, mode: 'development' | 'production') {
18   - const vitePlugins: VitePlugin[] = [];
  17 +export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean, mode: string) {
  18 + const vitePlugins: (Plugin | Plugin[])[] = [];
19 19  
20 20 // vite-plugin-html
21   - setupHtmlPlugin(vitePlugins, viteEnv, mode);
  21 + vitePlugins.push(configHtmlPlugin(viteEnv, isBuild));
  22 +
22 23 // vite-plugin-pwa
23   - setupPwaPlugin(vitePlugins, viteEnv, mode);
  24 + vitePlugins.push(configPwaConfig(viteEnv, isBuild));
  25 +
24 26 // vite-plugin-mock
25   - setupMockPlugin(vitePlugins, viteEnv, mode);
  27 + vitePlugins.push(configMockPlugin(viteEnv, isBuild));
  28 +
  29 + // vite-plugin-import-context
  30 + vitePlugins.push(configDynamicImport(viteEnv));
26 31  
27 32 // vite-plugin-purge-icons
28 33 vitePlugins.push(PurgeIcons());
29 34  
30   - return vitePlugins;
31   -}
32   -
33   -// gen rollup plugins
34   -export function createRollupPlugin() {
35   - const rollupPlugins: rollupPlugin[] = [];
  35 + // rollup-plugin-gzip
  36 + vitePlugins.push(configGzipPlugin(isBuild));
36 37  
  38 + // rollup-plugin-visualizer
37 39 if (isReportMode()) {
38   - // rollup-plugin-visualizer
39   - rollupPlugins.push(visualizer({ filename: './build/.cache/stats.html', open: true }) as Plugin);
40   - }
41   - if (isBuildGzip() || isSiteMode()) {
42   - // rollup-plugin-gizp
43   - rollupPlugins.push(gzipPlugin());
  40 + vitePlugins.push(visualizer({ filename: './build/.cache/stats.html', open: true }) as Plugin);
44 41 }
45 42  
46   - return rollupPlugins;
  43 + return vitePlugins;
47 44 }
... ...
build/vite/plugin/mock.ts
1   -import { createMockServer } from 'vite-plugin-mock';
2   -import type { Plugin } from 'vite';
3   -import { isDevFn, ViteEnv } from '../../utils';
  1 +import { viteMockServe } from 'vite-plugin-mock';
  2 +import { ViteEnv } from '../../utils';
4 3  
5   -export function setupMockPlugin(
6   - plugins: Plugin[],
7   - env: ViteEnv,
8   - mode: 'development' | 'production'
9   -) {
  4 +export function configMockPlugin(env: ViteEnv, isBuild: boolean) {
10 5 const { VITE_USE_MOCK } = env;
11 6  
12   - const useMock = isDevFn(mode) && VITE_USE_MOCK;
  7 + const useMock = !isBuild && VITE_USE_MOCK;
13 8  
14 9 if (useMock) {
15   - const mockPlugin = createMockServer({
  10 + const mockPlugin = viteMockServe({
16 11 ignore: /^\_/,
17 12 mockPath: 'mock',
18 13 showTime: true,
19 14 localEnabled: useMock,
20 15 });
21   - plugins.push(mockPlugin);
  16 + return mockPlugin;
22 17 }
23   - return plugins;
  18 + return [];
24 19 }
... ...
build/vite/plugin/pwa.ts
1 1 import { VitePWA } from 'vite-plugin-pwa';
2   -import type { Plugin } from 'vite';
  2 +
3 3 import { ViteEnv } from '../../utils';
4 4  
5   -export function setupPwaPlugin(
6   - plugins: Plugin[],
7   - env: ViteEnv,
8   - // @ts-ignore
9   - mode: 'development' | 'production'
10   -) {
11   - const { VITE_USE_PWA } = env;
  5 +export function configPwaConfig(env: ViteEnv, isBulid: boolean) {
  6 + const { VITE_USE_PWA, VITE_GLOB_APP_TITLE, VITE_GLOB_APP_SHORT_NAME } = env;
12 7  
13   - const pwaPlugin = VitePWA({
14   - manifest: {
15   - name: 'Vben Admin',
16   - short_name: 'vben_admin',
17   - icons: [
18   - {
19   - src: './resource/img/pwa-192x192.png',
20   - sizes: '192x192',
21   - type: 'image/png',
22   - },
23   - {
24   - src: './resource/img/pwa-512x512.png',
25   - sizes: '512x512',
26   - type: 'image/png',
27   - },
28   - ],
29   - },
30   - });
31   - if (VITE_USE_PWA) {
32   - plugins.push(pwaPlugin);
  8 + if (VITE_USE_PWA && isBulid) {
  9 + // vite-plugin-pwa
  10 + const pwaPlugin = VitePWA({
  11 + manifest: {
  12 + name: VITE_GLOB_APP_TITLE,
  13 + short_name: VITE_GLOB_APP_SHORT_NAME,
  14 + icons: [
  15 + {
  16 + src: './resource/img/pwa-192x192.png',
  17 + sizes: '192x192',
  18 + type: 'image/png',
  19 + },
  20 + {
  21 + src: './resource/img/pwa-512x512.png',
  22 + sizes: '512x512',
  23 + type: 'image/png',
  24 + },
  25 + ],
  26 + },
  27 + });
  28 + return pwaPlugin;
33 29 }
34   - return plugins;
  30 + return [];
35 31 }
... ...
build/vite/plugin/transform/dynamic-import/index.ts deleted 100644 → 0
1   -// Used to import all files under `src/views`
2   -// The built-in dynamic import of vite cannot meet the needs of importing all files under views
3   -// Special usage ,Only for this project
4   -import glob from 'glob';
5   -import { Transform } from 'vite/dist/node/transform.js';
6   -
7   -function getPath(path: string) {
8   - const lastIndex = path.lastIndexOf('.');
9   - if (lastIndex !== -1) {
10   - path = path.substring(0, lastIndex);
11   - }
12   - return path.replace('src/views', '');
13   -}
14   -
15   -const dynamicImportTransform = function (enableDynamicImport: boolean): Transform {
16   - return {
17   - test({ path }) {
18   - // Only convert the file
19   - return (
20   - path.includes('/src/router/helper/dynamicImport.ts') ||
21   - path.includes(`\\src\\router\\helper\\dynamicImport.ts`)
22   - );
23   - },
24   - transform({ code }) {
25   - if (!enableDynamicImport) {
26   - return code;
27   - }
28   -
29   - // Only convert the dir
30   - try {
31   - const files = glob.sync('src/views/**/**.{vue,tsx}', { cwd: process.cwd() });
32   -
33   - return `
34   - export default function (id) {
35   - switch (id) {
36   - ${files
37   - .map((p) =>
38   - ` case '${getPath(p)}': return () => import('${p
39   - .replace('src/views', '/@/views')
40   - .replace(/\/\//g, '/')}');`.replace('.tsx', '')
41   - )
42   - .join('\n ')}
43   - default: return Promise.reject(new Error("Unknown variable dynamic import: " + id));
44   - }
45   - }\n\n
46   - `;
47   - } catch (error) {
48   - console.error(error);
49   - return code;
50   - }
51   - },
52   - };
53   -};
54   -export default dynamicImportTransform;
build/vite/plugin/transform/globby/index.ts deleted 100644 → 0
1   -// Modified from
2   -// https://github.com/luxueyan/vite-transform-globby-import/blob/master/src/index.ts
3   -
4   -// TODO Deleting files requires re-running the project
5   -import { join } from 'path';
6   -import { lstatSync } from 'fs';
7   -import glob from 'glob';
8   -import globrex from 'globrex';
9   -import dotProp from 'dot-prop';
10   -import { createResolver, Resolver } from 'vite/dist/node/resolver.js';
11   -import { Transform } from 'vite/dist/node/transform.js';
12   -
13   -const modulesDir: string = join(process.cwd(), '/node_modules/');
14   -
15   -interface SharedConfig {
16   - root?: string;
17   - alias?: Record<string, string>;
18   - resolvers?: Resolver[];
19   -
20   - includes?: string[];
21   -}
22   -
23   -function template(template: string) {
24   - return (data: { [x: string]: any }) => {
25   - return template.replace(/#([^#]+)#/g, (_, g1) => data[g1] || g1);
26   - };
27   -}
28   -
29   -// TODO support hmr
30   -function hmr(isBuild = false) {
31   - if (isBuild) return '';
32   - return `
33   - if (import.meta.hot) {
34   - import.meta.hot.accept();
35   - }`;
36   -}
37   -
38   -// handle includes
39   -function fileInclude(includes: string | string[] | undefined, filePath: string) {
40   - return !includes || !Array.isArray(includes)
41   - ? true
42   - : includes.some((item) => filePath.startsWith(item));
43   -}
44   -
45   -// Bare exporter
46   -function compareString(modify: any, data: string[][]) {
47   - return modify ? '\n' + data.map((v) => `${v[0]}._path = ${v[1]}`).join('\n') : '';
48   -}
49   -
50   -function varTemplate(data: string[][], name: string) {
51   - //prepare deep data (for locales)
52   - let deepData: Record<string, object | string> = {};
53   - let hasDeepData = false;
54   -
55   - //data modify
56   - data.map((v) => {
57   - //check for has deep data
58   - if (v[0].includes('/')) {
59   - hasDeepData = true;
60   - }
61   -
62   - // lastKey is a data
63   - let pathValue = v[0].replace(/\//g, '.').split('.');
64   - // let scopeKey = '';
65   - // const len=pathValue.length
66   - // const scope=pathValue[len-2]
67   - let lastKey: string | undefined = pathValue.pop();
68   -
69   - let deepValue: Record<any, any> = {};
70   - if (lastKey) {
71   - // Solve the problem of files with the same name in different folders
72   - const lastKeyList = lastKey.replace('_' + pathValue[0], '').split('_');
73   - const key = lastKeyList.pop();
74   - if (key) {
75   - deepValue[key] = lastKey;
76   - }
77   - }
78   - // Set Deep Value
79   - deepValue = Object.assign(deepValue, dotProp.get(deepData, pathValue.join('.')));
80   - dotProp.set(deepData, pathValue.join('.'), deepValue);
81   - });
82   -
83   - if (hasDeepData) {
84   - return `const ${name} = ` + JSON.stringify(deepData).replace(/\"|\'/g, '');
85   - }
86   -
87   - return `const ${name} = { ${data.map((v) => v[0]).join(',')} }`;
88   -}
89   -
90   -const globTransform = function (config: SharedConfig): Transform {
91   - const resolver = createResolver(
92   - config.root || process.cwd(),
93   - config.resolvers || [],
94   - config.alias || {}
95   - );
96   - const { includes } = config;
97   - const cache = new Map();
98   - const urlMap = new Map();
99   - return {
100   - test({ path }) {
101   - const filePath = path.replace('\u0000', ''); // why some path startsWith '\u0000'?
102   -
103   - try {
104   - return (
105   - !filePath.startsWith(modulesDir) &&
106   - /\.(vue|js|jsx|ts|tsx)$/.test(filePath) &&
107   - fileInclude(includes, filePath) &&
108   - lstatSync(filePath).isFile()
109   - );
110   - } catch {
111   - return false;
112   - }
113   - },
114   - transform({ code, path, isBuild }) {
115   - let result = cache.get(path);
116   - if (!result) {
117   - const reg = /import\s+([\w\s{}*]+)\s+from\s+(['"])globby(\?locale)?(\?path)?!([^'"]+)\2/g;
118   - const match = code.match(reg);
119   - if (!match) return code;
120   - const lastImport = urlMap.get(path);
121   - if (lastImport && match) {
122   - code = code.replace(lastImport, match[0]);
123   - }
124   - result = code.replace(
125   - reg,
126   - (
127   - _,
128   - // variable to export
129   - exportName,
130   - // bare export or not
131   - bareExporter,
132   - // is locale import
133   - isLocale,
134   - // inject _path attr
135   - injectPath,
136   - // path export
137   - globPath
138   - ) => {
139   - const filePath = path.replace('\u0000', ''); // why some path startsWith '\u0000'?
140   - // resolve path
141   -
142   - const resolvedFilePath = globPath.startsWith('.')
143   - ? resolver.resolveRelativeRequest(filePath, globPath)
144   - : { pathname: resolver.requestToFile(globPath) };
145   -
146   - const files = glob.sync(resolvedFilePath.pathname, { dot: true });
147   -
148   - let templateStr = 'import #name# from #file#'; // import default
149   - let name = exportName;
150   - const m = exportName.match(/\{\s*(\w+)(\s+as\s+(\w+))?\s*\}/); // import module
151   - const m2 = exportName.match(/\*\s+as\s+(\w+)/); // import * as all module
152   - if (m) {
153   - templateStr = `import { ${m[1]} as #name# } from #file#`;
154   - name = m[3] || m[1];
155   - } else if (m2) {
156   - templateStr = 'import * as #name# from #file#';
157   - name = m2[1];
158   - }
159   -
160   - const templateRender = template(templateStr);
161   -
162   - const groups: Array<string>[] = [];
163   - const replaceFiles = files.map((f, i) => {
164   - const filePath = resolver.fileToRequest(f);
165   - const file = bareExporter + filePath + bareExporter;
166   -
167   - if (isLocale) {
168   - const globrexRes = globrex(globPath, { extended: true, globstar: true });
169   -
170   - // Get segments for files like an en/system ch/modules for:
171   - // ['en', 'system'] ['ch', 'modules']
172   -
173   - // TODO The window system and mac system path are inconsistent?
174   - const fileNameWithAlias = filePath.replace(/^(\/src\/)/, '/@/');
175   - const matchedGroups = globrexRes.regex.exec(fileNameWithAlias);
176   -
177   - if (matchedGroups && matchedGroups.length) {
178   - const matchedSegments = matchedGroups[1]; //first everytime "Full Match"
179   - const matchList = matchedSegments.split('/').filter(Boolean);
180   - const lang = matchList.shift();
181   - const scope = matchList.pop();
182   -
183   - // Solve the problem of files with the same name in different folders
184   - const scopeKey = scope ? `${scope}_` : '';
185   - const fileName = matchedGroups[2];
186   - const name = scopeKey + fileName + '_' + lang;
187   -
188   - //send deep way like an (en/modules/system/dashboard) into groups
189   - groups.push([matchedSegments + name, file]);
190   - return templateRender({
191   - name,
192   - file,
193   - });
194   - }
195   - } else {
196   - groups.push([name + i, file]);
197   - return templateRender({ name: name + i, file });
198   - }
199   - });
200   - // save in memory used result
201   - const filesJoined = replaceFiles.join('\n');
202   -
203   - urlMap.set(path, filesJoined);
204   -
205   - // console.log('======================');
206   - // console.log(filesJoined, varTemplate(groups, name));
207   - // console.log('======================');
208   - return [
209   - filesJoined,
210   - compareString(injectPath, groups),
211   - varTemplate(groups, name),
212   - '',
213   - ].join('\n');
214   - }
215   - );
216   - if (isBuild) cache.set(path, result);
217   - }
218   - return `${result}${hmr(isBuild)}`;
219   - },
220   - };
221   -};
222   -export default globTransform;
build/vite/proxy.ts
  1 +import type { ServerOptions } from 'http-proxy';
  2 +
1 3 type ProxyItem = [string, string];
2 4  
3 5 type ProxyList = ProxyItem[];
4 6  
5   -type ProxyTargetList = Record<
6   - string,
7   - {
8   - target: string;
9   - changeOrigin: boolean;
10   - rewrite: (path: string) => any;
11   - secure?: boolean;
12   - }
13   ->;
  7 +type ProxyTargetList = Record<string, ServerOptions & { rewrite: (path: string) => string }>;
14 8  
15 9 const httpsRE = /^https:\/\//;
16 10  
... ... @@ -23,9 +17,11 @@ export function createProxy(list: ProxyList = []) {
23 17 for (const [prefix, target] of list) {
24 18 const isHttps = httpsRE.test(target);
25 19  
  20 + // https://github.com/http-party/node-http-proxy#options
26 21 ret[prefix] = {
27 22 target: target,
28 23 changeOrigin: true,
  24 + ws: true,
29 25 rewrite: (path) => path.replace(new RegExp(`^${prefix}`), ''),
30 26 // https is require secure=false
31 27 ...(isHttps ? { secure: false } : {}),
... ...
index.html
1 1 <!DOCTYPE html>
2 2 <html lang="en">
3 3 <head>
4   - <%= viteHtmlPluginOptions.hmScript %>
5 4 <meta charset="UTF-8" />
6 5 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
7 6 <meta name="renderer" content="webkit" />
... ... @@ -10,9 +9,8 @@
10 9 content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0"
11 10 />
12 11  
13   - <title></title>
  12 + <title><%= title %></title>
14 13 <link rel="icon" href="/favicon.ico" />
15   - <%= viteHtmlPluginOptions.injectConfig %>
16 14 </head>
17 15 <body>
18 16 <div id="app">
... ... @@ -137,15 +135,11 @@
137 135 </style>
138 136 <div class="app-loading">
139 137 <div class="app-loading-wrap">
140   - <img
141   - src="<%= viteHtmlPluginOptions.publicPath %>resource/img/logo.png"
142   - class="app-loading-logo"
143   - alt="Logo"
144   - />
  138 + <img src="/resource/img/logo.png" class="app-loading-logo" alt="Logo" />
145 139 <div class="app-loading-dots">
146 140 <span class="dot dot-spin"><i></i><i></i><i></i><i></i></span>
147 141 </div>
148   - <div class="app-loading-title"><%= viteHtmlPluginOptions.title %></div>
  142 + <div class="app-loading-title"><%= title %></div>
149 143 </div>
150 144 </div>
151 145 </div>
... ...
package.json
1 1 {
2 2 "name": "vben-admin",
3   - "version": "2.0.0-rc.15",
  3 + "version": "2.0.0-rc.16",
4 4 "scripts": {
5 5 "bootstrap": "yarn install",
6   - "serve": "cross-env vite --mode=development",
7   - "build": "cross-env vite build --mode=production && esno ./build/script/postBuild.ts",
8   - "build:site": "cross-env SITE=true npm run build ",
  6 + "serve": "cross-env vite ",
  7 + "build": "cross-env vite build && esno ./build/script/postBuild.ts",
9 8 "build:no-cache": "yarn clean:cache && npm run build",
10   - "typecheck": "vuedx-typecheck .",
11 9 "report": "cross-env REPORT=true npm run build ",
12 10 "preview": "npm run build && esno ./build/script/preview.ts",
13 11 "preview:dist": "esno ./build/script/preview.ts",
14   - "log": "esno ./build/script/changelog.ts",
  12 + "log": "conventional-changelog -p custom-config -i CHANGELOG.md -s -r 0",
15 13 "clean:cache": "rimraf node_modules/.cache/ && rimraf node_modules/.vite_opt_cache",
16 14 "clean:lib": "npx rimraf node_modules",
17   - "ls-lint": "npx ls-lint",
18 15 "lint:eslint": "eslint --fix --ext \"src/**/*.{vue,less,css,scss}\"",
19 16 "lint:prettier": "prettier --write --loglevel warn \"src/**/*.{js,json,tsx,css,less,scss,vue,html,md}\"",
20 17 "lint:stylelint": "stylelint --fix \"**/*.{vue,less,postcss,css,scss}\" --cache --cache-location node_modules/.cache/stylelint/",
... ... @@ -22,7 +19,7 @@
22 19 },
23 20 "dependencies": {
24 21 "@iconify/iconify": "^2.0.0-rc.5",
25   - "@vueuse/core": "^4.0.2",
  22 + "@vueuse/core": "^4.0.5",
26 23 "ant-design-vue": "^2.0.0-rc.8",
27 24 "apexcharts": "^3.23.1",
28 25 "axios": "^0.21.1",
... ... @@ -34,26 +31,27 @@
34 31 "nprogress": "^0.2.0",
35 32 "path-to-regexp": "^6.2.0",
36 33 "qrcode": "^1.4.4",
37   - "sortablejs": "^1.12.0",
  34 + "sortablejs": "^1.13.0",
38 35 "vditor": "^3.7.5",
39 36 "vue": "^3.0.5",
40   - "vue-i18n": "9.0.0-beta.14",
  37 + "vue-i18n": "^9.0.0-rc.1",
41 38 "vue-router": "^4.0.2",
42 39 "vue-types": "^3.0.1",
43 40 "vuex": "^4.0.0-rc.2",
44 41 "vuex-module-decorators": "^1.0.1",
45   - "xlsx": "^0.16.9",
46 42 "zxcvbn": "^4.4.2"
47 43 },
48 44 "devDependencies": {
  45 + "@babel/core": "^7.12.10",
49 46 "@commitlint/cli": "^11.0.0",
50 47 "@commitlint/config-conventional": "^11.0.0",
51   - "@iconify/json": "^1.1.282",
  48 + "@iconify/json": "^1.1.283",
52 49 "@ls-lint/ls-lint": "^1.9.2",
53   - "@purge-icons/generated": "^0.4.1",
  50 + "@purge-icons/generated": "^0.5.0",
54 51 "@types/echarts": "^4.9.3",
55 52 "@types/fs-extra": "^9.0.6",
56 53 "@types/globrex": "^0.1.0",
  54 + "@types/http-proxy": "^1.17.4",
57 55 "@types/koa-static": "^4.0.1",
58 56 "@types/lodash-es": "^4.17.4",
59 57 "@types/mockjs": "^1.0.3",
... ... @@ -65,10 +63,13 @@
65 63 "@types/zxcvbn": "^4.4.0",
66 64 "@typescript-eslint/eslint-plugin": "^4.12.0",
67 65 "@typescript-eslint/parser": "^4.12.0",
  66 + "@vitejs/plugin-legacy": "^1.1.0",
  67 + "@vitejs/plugin-vue": "^1.0.4",
  68 + "@vitejs/plugin-vue-jsx": "^1.0.1",
68 69 "@vue/compiler-sfc": "^3.0.5",
69 70 "@vuedx/typecheck": "^0.4.1",
70 71 "@vuedx/typescript-plugin-vue": "^0.4.1",
71   - "autoprefixer": "^9.8.6",
  72 + "autoprefixer": "^10.2.1",
72 73 "commitizen": "^4.2.2",
73 74 "conventional-changelog-cli": "^2.1.1",
74 75 "conventional-changelog-custom-config": "^0.3.1",
... ... @@ -82,14 +83,15 @@
82 83 "esno": "^0.4.0",
83 84 "fs-extra": "^9.0.1",
84 85 "globrex": "^0.1.2",
85   - "husky": "^4.3.6",
  86 + "husky": "^4.3.7",
86 87 "koa-static": "^5.0.0",
87 88 "less": "^4.0.0",
88 89 "lint-staged": "^10.5.3",
89 90 "portfinder": "^1.0.28",
90   - "postcss-import": "^12.0.1",
  91 + "postcss-import": "^14.0.0",
91 92 "prettier": "^2.2.1",
92 93 "rimraf": "^3.0.2",
  94 + "rollup-plugin-gzip": "^2.5.0",
93 95 "rollup-plugin-visualizer": "^4.1.2",
94 96 "stylelint": "^13.8.0",
95 97 "stylelint-config-prettier": "^8.0.2",
... ... @@ -98,11 +100,12 @@
98 100 "tasksfile": "^5.1.1",
99 101 "ts-node": "^9.1.0",
100 102 "typescript": "^4.1.3",
101   - "vite": "^1.0.0-rc.13",
102   - "vite-plugin-html": "^1.0.0-beta.2",
103   - "vite-plugin-mock": "^1.0.9",
104   - "vite-plugin-purge-icons": "^0.4.5",
105   - "vite-plugin-pwa": "^0.2.1",
  103 + "vite": "^2.0.0-beta.15",
  104 + "vite-plugin-html": "^2.0.0-beta.5",
  105 + "vite-plugin-import-context": "^1.0.0-rc.1",
  106 + "vite-plugin-mock": "^2.0.0-beta.1",
  107 + "vite-plugin-purge-icons": "^0.5.0",
  108 + "vite-plugin-pwa": "^0.3.2",
106 109 "vue-eslint-parser": "^7.3.0",
107 110 "yargs": "^16.2.0"
108 111 },
... ...
src/App.vue
... ... @@ -13,7 +13,7 @@
13 13 import { initAppConfigStore } from '/@/setup/App';
14 14  
15 15 import { useLockPage } from '/@/hooks/web/useLockPage';
16   - import { useLocale } from '/@/hooks/web/useLocale';
  16 + import { useLocale } from '/@/locales/useLocale';
17 17  
18 18 import { AppProvider } from '/@/components/Application';
19 19  
... ... @@ -21,6 +21,9 @@
21 21 name: 'App',
22 22 components: { ConfigProvider, AppProvider },
23 23 setup() {
  24 + const { antConfigLocale, setLocale } = useLocale();
  25 + setLocale();
  26 +
24 27 // Initialize vuex internal system configuration
25 28 initAppConfigStore();
26 29  
... ... @@ -28,7 +31,6 @@
28 31 const lockEvent = useLockPage();
29 32  
30 33 // support Multi-language
31   - const { antConfigLocale } = useLocale();
32 34  
33 35 return {
34 36 antConfigLocale,
... ...
src/components/Application/src/AppLocalePicker.vue
... ... @@ -22,7 +22,7 @@
22 22 import { Dropdown, DropMenu } from '/@/components/Dropdown';
23 23 import { GlobalOutlined } from '@ant-design/icons-vue';
24 24  
25   - import { useLocale } from '/@/hooks/web/useLocale';
  25 + import { useLocale } from '/@/locales/useLocale';
26 26 import { useLocaleSetting } from '/@/hooks/setting/useLocaleSetting';
27 27  
28 28 import { LocaleType } from '/@/locales/types';
... ... @@ -75,7 +75,6 @@
75 75 </script>
76 76  
77 77 <style lang="less" scoped>
78   - @import (reference) '../../../design/index.less';
79 78 @prefix-cls: ~'@{namespace}-app-locale-picker';
80 79  
81 80 :global(.@{prefix-cls}-overlay) {
... ...
src/components/Application/src/AppLogo.vue
... ... @@ -59,7 +59,6 @@
59 59 });
60 60 </script>
61 61 <style lang="less" scoped>
62   - @import (reference) '../../../design/index.less';
63 62 @prefix-cls: ~'@{namespace}-app-logo';
64 63  
65 64 .@{prefix-cls} {
... ...
src/components/Application/src/search/AppSearch.vue
... ... @@ -44,7 +44,6 @@
44 44 });
45 45 </script>
46 46 <style lang="less" scoped>
47   - @import (reference) '../../../../design/index.less';
48 47 @prefix-cls: ~'@{namespace}-app-search';
49 48  
50 49 .@{prefix-cls} {
... ...
src/components/Application/src/search/AppSearchFooter.vue
... ... @@ -37,7 +37,6 @@
37 37 });
38 38 </script>
39 39 <style lang="less" scoped>
40   - @import (reference) '../../../../design/index.less';
41 40 @prefix-cls: ~'@{namespace}-app-search-footer';
42 41  
43 42 .@{prefix-cls} {
... ...
src/components/Application/src/search/AppSearchModal.vue
... ... @@ -123,7 +123,6 @@
123 123 });
124 124 </script>
125 125 <style lang="less" scoped>
126   - @import (reference) '../../../../design/index.less';
127 126 @prefix-cls: ~'@{namespace}-app-search-modal';
128 127 @footer-prefix-cls: ~'@{namespace}-app-search-footer';
129 128 .@{prefix-cls} {
... ...
src/components/Basic/src/BasicArrow.vue
... ... @@ -46,7 +46,6 @@
46 46 });
47 47 </script>
48 48 <style lang="less" scoped>
49   - @import (reference) '../../../design/index.less';
50 49 @prefix-cls: ~'@{namespace}-basic-arrow';
51 50  
52 51 .@{prefix-cls} {
... ...
src/components/Basic/src/BasicHelp.vue
... ... @@ -112,7 +112,6 @@
112 112 });
113 113 </script>
114 114 <style lang="less">
115   - @import (reference) '../../../design/index.less';
116 115 @prefix-cls: ~'@{namespace}-basic-help';
117 116  
118 117 .@{prefix-cls} {
... ...
src/components/Basic/src/BasicTitle.vue
... ... @@ -30,7 +30,6 @@
30 30 });
31 31 </script>
32 32 <style lang="less" scoped>
33   - @import (reference) '../../../design/index.less';
34 33 @prefix-cls: ~'@{namespace}-basic-title';
35 34  
36 35 .@{prefix-cls} {
... ...
src/components/Container/src/LazyContainer.vue
... ... @@ -140,7 +140,6 @@
140 140 });
141 141 </script>
142 142 <style lang="less">
143   - @import (reference) '../../../design/index.less';
144 143 @prefix-cls: ~'@{namespace}-lazy-container';
145 144  
146 145 .@{prefix-cls} {
... ...
src/components/Container/src/ScrollContainer.vue
... ... @@ -12,7 +12,7 @@
12 12  
13 13 export default defineComponent({
14 14 name: 'ScrollContainer',
15   - inheritAttrs: false,
  15 + // inheritAttrs: false,
16 16 components: { Scrollbar },
17 17 setup() {
18 18 const scrollbarRef = ref<Nullable<ScrollbarType>>(null);
... ...
src/components/Container/src/collapse/CollapseContainer.vue
... ... @@ -87,7 +87,6 @@
87 87 });
88 88 </script>
89 89 <style lang="less">
90   - @import (reference) '../../../../design/index.less';
91 90 @prefix-cls: ~'@{namespace}-collapse-container';
92 91  
93 92 .@{prefix-cls} {
... ...
src/components/ContextMenu/src/index.less
1   -@import (reference) '../../../design/index.less';
2   -
3 1 @default-height: 42px !important;
4 2  
5 3 @small-height: 36px !important;
... ...
src/components/ContextMenu/src/index.tsx
... ... @@ -76,9 +76,7 @@ export default defineComponent({
76 76 return (
77 77 <>
78 78 <Menu.Item disabled={disabled} class={`${prefixCls}__item`} key={label}>
79   - {() => [
80   - <ItemContent showIcon={props.showIcon} item={item} handler={handleAction} />,
81   - ]}
  79 + <ItemContent showIcon={props.showIcon} item={item} handler={handleAction} />
82 80 </Menu.Item>
83 81 {DividerComp}
84 82 </>
... ... @@ -109,7 +107,7 @@ export default defineComponent({
109 107 ref={wrapRef}
110 108 style={unref(getStyle)}
111 109 >
112   - {() => renderMenuItem(items)}
  110 + {renderMenuItem(items)}
113 111 </Menu>
114 112 );
115 113 };
... ...
src/components/Description/src/index.tsx
... ... @@ -114,7 +114,7 @@ export default defineComponent({
114 114 const renderDesc = () => {
115 115 return (
116 116 <Descriptions class={`${prefixCls}`} {...(unref(getDescriptionsProps) as any)}>
117   - {() => renderItem()}
  117 + {renderItem()}
118 118 </Descriptions>
119 119 );
120 120 };
... ...
src/components/Drawer/src/BasicDrawer.vue
... ... @@ -199,7 +199,6 @@
199 199 });
200 200 </script>
201 201 <style lang="less">
202   - @import (reference) '../../../design/index.less';
203 202 @header-height: 60px;
204 203 @detail-header-height: 40px;
205 204 @prefix-cls: ~'@{namespace}-basic-drawer';
... ...
src/components/Drawer/src/components/DrawerFooter.vue
... ... @@ -66,7 +66,6 @@
66 66 </script>
67 67  
68 68 <style lang="less">
69   - @import (reference) '../../../../design/index.less';
70 69 @prefix-cls: ~'@{namespace}-basic-drawer-footer';
71 70 @footer-height: 60px;
72 71 .@{prefix-cls} {
... ...
src/components/Drawer/src/components/DrawerHeader.vue
... ... @@ -45,7 +45,6 @@
45 45 </script>
46 46  
47 47 <style lang="less">
48   - @import (reference) '../../../../design/index.less';
49 48 @prefix-cls: ~'@{namespace}-basic-drawer-header';
50 49 @footer-height: 60px;
51 50 .@{prefix-cls} {
... ...
src/components/Form/src/BasicForm.vue
... ... @@ -247,7 +247,6 @@
247 247 });
248 248 </script>
249 249 <style lang="less">
250   - @import (reference) '../../../design/index.less';
251 250 @prefix-cls: ~'@{namespace}-basic-form';
252 251  
253 252 .@{prefix-cls} {
... ...
src/components/Form/src/components/FormItem.tsx
... ... @@ -173,7 +173,8 @@ export default defineComponent({
173 173 const characterInx = rules.findIndex((val) => val.max);
174 174 if (characterInx !== -1 && !rules[characterInx].validator) {
175 175 rules[characterInx].message =
176   - rules[characterInx].message || t('component.form.maxTip', [rules[characterInx].max]);
  176 + rules[characterInx].message ||
  177 + t('component.form.maxTip', [rules[characterInx].max] as Recordable);
177 178 }
178 179 return rules;
179 180 }
... ... @@ -294,12 +295,10 @@ export default defineComponent({
294 295 labelCol={labelCol}
295 296 wrapperCol={wrapperCol}
296 297 >
297   - {() => (
298   - <>
299   - {getContent()}
300   - {showSuffix && <span class="suffix">{getSuffix}</span>}
301   - </>
302   - )}
  298 + <>
  299 + {getContent()}
  300 + {showSuffix && <span class="suffix">{getSuffix}</span>}
  301 + </>
303 302 </Form.Item>
304 303 );
305 304 }
... ... @@ -323,7 +322,7 @@ export default defineComponent({
323 322 return (
324 323 isIfShow && (
325 324 <Col {...realColProps} class={{ hidden: !isShow }}>
326   - {() => getContent()}
  325 + {getContent()}
327 326 </Col>
328 327 )
329 328 );
... ...
src/components/Icon/src/index.vue
... ... @@ -83,8 +83,6 @@
83 83 });
84 84 </script>
85 85 <style lang="less">
86   - @import (reference) '../../../design/index.less';
87   -
88 86 .app-iconify {
89 87 display: inline-block;
90 88 vertical-align: middle;
... ...
src/components/Markdown/src/index.vue
... ... @@ -7,7 +7,7 @@
7 7 import 'vditor/dist/index.css';
8 8  
9 9 import { propTypes } from '/@/utils/propTypes';
10   - import { useLocale } from '/@/hooks/web/useLocale';
  10 + import { useLocale } from '/@/locales/useLocale';
11 11 import { useModalContext } from '../../Modal';
12 12  
13 13 type Lang = 'zh_CN' | 'en_US' | 'ja_JP' | 'ko_KR' | undefined;
... ...
src/components/Menu/src/index.less
1   -@import (reference) '../../../design/index.less';
2   -
3 1 @basic-menu-prefix-cls: ~'@{namespace}-basic-menu';
4 2 @basic-menu-content-prefix-cls: ~'@{namespace}-basic-menu-item-content';
5 3 @basic-menu-tag-prefix-cls: ~'@{namespace}-basic-menu-item-tag';
... ...
src/components/Modal/src/components/ModalClose.vue
... ... @@ -54,7 +54,6 @@
54 54 });
55 55 </script>
56 56 <style lang="less">
57   - @import (reference) '../../../../design/index.less';
58 57 @prefix-cls: ~'@{namespace}-basic-modal-close';
59 58 .@{prefix-cls} {
60 59 display: flex;
... ...
src/components/Modal/src/index.less
1   -@import (reference) '../../../design/index.less';
2   -
3 1 .fullscreen-modal {
4 2 overflow: hidden;
5 3  
... ... @@ -79,7 +77,7 @@
79 77  
80 78 &-confirm-body {
81 79 .ant-modal-confirm-content {
82   - color: #fff;
  80 + // color: #fff;
83 81  
84 82 > * {
85 83 color: @text-color-help-dark;
... ...
src/components/Preview/index.ts
1   -export { createImgPreview } from './src/functional';
  1 +// export { createImgPreview } from './src/functional';
2 2  
3   -import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
4   -export const ImagePreview = createAsyncComponent(() => import('./src/index.vue'));
  3 +export const createImgPreview = () => {};
  4 +
  5 +// import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
  6 +// export const ImagePreview = createAsyncComponent(() => import('./src/index.vue'));
  7 +
  8 +export { default as ImagePreview } from './src/index.vue';
... ...
src/components/Preview/src/index.less
1   -@import (reference) '../../../design/index.less';
2   -
3 1 .img-preview {
4 2 position: fixed;
5 3 top: 0;
... ...
src/components/Preview/src/index.vue
... ... @@ -58,7 +58,6 @@
58 58 });
59 59 </script>
60 60 <style lang="less">
61   - @import (reference) '../../../design/index.less';
62 61 @prefix-cls: ~'@{namespace}-image-preview';
63 62  
64 63 .@{prefix-cls} {
... ...
src/components/Scrollbar/src/index.vue
... ... @@ -34,7 +34,7 @@
34 34  
35 35 export default defineComponent({
36 36 name: 'Scrollbar',
37   - inheritAttrs: false,
  37 + // inheritAttrs: false,
38 38 components: { Bar },
39 39 props: {
40 40 native: {
... ...
src/components/StrengthMeter/src/index.vue
... ... @@ -83,7 +83,6 @@
83 83 });
84 84 </script>
85 85 <style lang="less" scoped>
86   - @import (reference) '../../../design/index.less';
87 86 @prefix-cls: ~'@{namespace}-strength-meter';
88 87  
89 88 .@{prefix-cls} {
... ...
src/components/Upload/src/FileList.less
1   -@import (reference) '../../../design/index.less';
2   -
3 1 .file-table {
4 2 width: 100%;
5 3 border-collapse: collapse;
... ...
src/components/Verify/src/DragVerify.less
1   -@import (reference) '../../../design/index.less';
2   -
3 1 @radius: 4px;
4 2  
5 3 .darg-verify {
... ...
src/components/Verify/src/ImgRotate.less
1   -@import (reference) '../../../design/index.less';
2   -
3 1 .ir-dv {
4 2 position: relative;
5 3 display: flex;
... ...
src/components/registerGlobComp.ts
... ... @@ -35,25 +35,21 @@ import {
35 35 Menu,
36 36 Breadcrumb,
37 37 } from 'ant-design-vue';
38   -import { getApp } from '/@/setup/App';
  38 +import { App } from 'vue';
39 39  
40 40 const compList = [Icon, Button, AntButton.Group];
41 41  
42 42 // Fix hmr multiple registered components
43   -let registered = false;
44   -export function registerGlobComp() {
45   - if (registered) return;
  43 +export function registerGlobComp(app: App) {
46 44 compList.forEach((comp: any) => {
47   - getApp().component(comp.name, comp);
  45 + app.component(comp.name, comp);
48 46 });
49 47  
50   - registered = true;
51   -
52 48 // Optional
53 49 // Why register here: The main reason for registering here is not to increase the size of the first screen code
54 50 // If you need to customize global components, you can write here
55 51 // If you don’t need it, you can delete it
56   - getApp()
  52 + app
57 53 .use(Select)
58 54 .use(Alert)
59 55 .use(Breadcrumb)
... ...
src/hooks/setting/useLocaleSetting.ts
... ... @@ -4,7 +4,7 @@ import { computed, unref } from &#39;vue&#39;;
4 4 import { appStore } from '/@/store/modules/app';
5 5  
6 6 import getProjectSetting from '/@/settings/projectSetting';
7   -import { localeList } from '/@/locales';
  7 +import { localeList } from '/@/locales/constant';
8 8  
9 9 // Get locale configuration
10 10 const getLocale = computed(() => appStore.getProjectConfig.locale || getProjectSetting.locale);
... ...
src/hooks/web/useI18n.ts
1   -import { getI18n } from '/@/setup/i18n';
  1 +import { i18n } from '/@/locales/setupI18n';
2 2  
3 3 export function useI18n(namespace?: string) {
4 4 function getKey(key: string) {
... ... @@ -16,18 +16,19 @@ export function useI18n(namespace?: string) {
16 16 },
17 17 };
18 18  
19   - if (!getI18n()) {
  19 + if (!i18n) {
20 20 return normalFn;
21 21 }
22 22  
23   - const { t, ...methods } = getI18n().global;
  23 + const { t, ...methods } = i18n.global;
24 24  
  25 + const tFn = function (...arg: Parameters<typeof t>) {
  26 + if (!arg[0]) return '';
  27 + return t(getKey(arg[0]), ...(arg as Parameters<typeof t>));
  28 + };
25 29 return {
26 30 ...methods,
27   - t: (key: string, ...arg: any): string => {
28   - if (!key) return '';
29   - return t(getKey(key), ...(arg as Parameters<typeof t>));
30   - },
  31 + t: tFn,
31 32 };
32 33 }
33 34  
... ...
src/hooks/web/useMessage.tsx
... ... @@ -59,7 +59,7 @@ function createConfirm(options: ModalOptionsEx): ConfirmOptions {
59 59 icon: getIcon(iconType),
60 60 ...options,
61 61 };
62   - return Modal.confirm(opt) as any;
  62 + return (Modal.confirm(opt) as unknown) as ConfirmOptions;
63 63 }
64 64  
65 65 const baseOptions = {
... ...
src/layouts/default/content/index.vue
... ... @@ -18,7 +18,7 @@
18 18 import { useDesign } from '/@/hooks/web/useDesign';
19 19 import { useRootSetting } from '/@/hooks/setting/useRootSetting';
20 20 import { useTransitionSetting } from '/@/hooks/setting/useTransitionSetting';
21   - import PageLayout from '/@/layouts/page/index';
  21 + import PageLayout from '/@/layouts/page/index.vue';
22 22 import { useContentViewHeight } from './useContentViewHeight';
23 23 import { Loading } from '/@/components/Loading';
24 24  
... ... @@ -41,7 +41,6 @@
41 41 });
42 42 </script>
43 43 <style lang="less">
44   - @import (reference) '../../../design/index.less';
45 44 @prefix-cls: ~'@{namespace}-layout-content';
46 45  
47 46 .@{prefix-cls} {
... ...
src/layouts/default/footer/index.vue
... ... @@ -40,7 +40,6 @@
40 40 });
41 41 </script>
42 42 <style lang="less" scoped>
43   - @import (reference) '../../../design/index.less';
44 43 @prefix-cls: ~'@{namespace}-layout-footer';
45 44  
46 45 @normal-color: rgba(0, 0, 0, 0.45);
... ...
src/layouts/default/header/MultipleHeader.vue
... ... @@ -109,7 +109,6 @@
109 109 });
110 110 </script>
111 111 <style lang="less" scoped>
112   - @import (reference) '../../../design/index.less';
113 112 @prefix-cls: ~'@{namespace}-layout-multiple-header';
114 113  
115 114 .@{prefix-cls} {
... ...
src/layouts/default/header/components/Breadcrumb.vue
... ... @@ -147,7 +147,6 @@
147 147 });
148 148 </script>
149 149 <style lang="less">
150   - @import (reference) '../../../../design/index.less';
151 150 @prefix-cls: ~'@{namespace}-layout-breadcrumb';
152 151  
153 152 .@{prefix-cls} {
... ...
src/layouts/default/header/components/lock/LockModal.vue
... ... @@ -80,7 +80,6 @@
80 80 });
81 81 </script>
82 82 <style lang="less">
83   - @import (reference) '../../../../../design/index.less';
84 83 @prefix-cls: ~'@{namespace}-header-lock-modal';
85 84  
86 85 .@{prefix-cls} {
... ...
src/layouts/default/header/components/notify/NoticeList.vue
... ... @@ -49,7 +49,6 @@
49 49 });
50 50 </script>
51 51 <style lang="less" scoped>
52   - @import (reference) '../../../../../design/index.less';
53 52 @prefix-cls: ~'@{namespace}-header-notify-list';
54 53  
55 54 .@{prefix-cls} {
... ...
src/layouts/default/header/components/notify/index.vue
... ... @@ -49,7 +49,6 @@
49 49 });
50 50 </script>
51 51 <style lang="less">
52   - @import (reference) '../../../../../design/index.less';
53 52 @prefix-cls: ~'@{namespace}-header-notify';
54 53  
55 54 .@{prefix-cls} {
... ...
src/layouts/default/header/components/user-dropdown/index.vue
... ... @@ -99,7 +99,6 @@
99 99 });
100 100 </script>
101 101 <style lang="less">
102   - @import (reference) '../../../../../design/index.less';
103 102 @prefix-cls: ~'@{namespace}-header-user-dropdown';
104 103  
105 104 .@{prefix-cls} {
... ...
src/layouts/default/header/index.less
1   -@import (reference) '../../../design/index.less';
2 1 @header-trigger-prefix-cls: ~'@{namespace}-layout-header-trigger';
3 2 @header-prefix-cls: ~'@{namespace}-layout-header';
4 3 @locale-prefix-cls: ~'@{namespace}-app-locale-picker';
... ...
src/layouts/default/index.vue
... ... @@ -31,7 +31,6 @@
31 31 import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
32 32 import { useDesign } from '/@/hooks/web/useDesign';
33 33  
34   - import { registerGlobComp } from '/@/components/registerGlobComp';
35 34 import { useAppInject } from '/@/hooks/web/useAppInject';
36 35  
37 36 export default defineComponent({
... ... @@ -46,11 +45,6 @@
46 45 Layout,
47 46 },
48 47 setup() {
49   - // ! Only register global components here
50   - // ! Can reduce the size of the first screen code
51   - // default layout It is loaded after login. So it won’t be packaged to the first screen
52   - registerGlobComp();
53   -
54 48 const { prefixCls } = useDesign('default-layout');
55 49  
56 50 const { getIsMobile } = useAppInject();
... ... @@ -70,7 +64,6 @@
70 64 });
71 65 </script>
72 66 <style lang="less">
73   - @import (reference) '../../design/index.less';
74 67 @prefix-cls: ~'@{namespace}-default-layout';
75 68  
76 69 .@{prefix-cls} {
... ...
src/layouts/default/menu/index.less
1   -@import (reference) '../../../design/index.less';
2   -
3 1 @prefix-cls: ~'@{namespace}-layout-menu';
4 2 @logo-prefix-cls: ~'@{namespace}-app-logo';
5 3  
... ...
src/layouts/default/setting/SettingDrawer.tsx
... ... @@ -389,26 +389,20 @@ export default defineComponent({
389 389 width={330}
390 390 wrapClassName="setting-drawer"
391 391 >
392   - {{
393   - default: () => (
394   - <>
395   - <Divider>{() => t('layout.setting.navMode')}</Divider>
396   - {renderSidebar()}
397   - <Divider>{() => t('layout.setting.headerTheme')}</Divider>
398   - {renderHeaderTheme()}
399   - <Divider>{() => t('layout.setting.sidebarTheme')}</Divider>
400   - {renderSiderTheme()}
401   - <Divider>{() => t('layout.setting.interfaceFunction')}</Divider>
402   - {renderFeatures()}
403   - <Divider>{() => t('layout.setting.interfaceDisplay')}</Divider>
404   - {renderContent()}
405   - <Divider>{() => t('layout.setting.animation')}</Divider>
406   - {renderTransition()}
407   - <Divider />
408   - <SettingFooter />
409   - </>
410   - ),
411   - }}
  392 + <Divider>{() => t('layout.setting.navMode')}</Divider>
  393 + {renderSidebar()}
  394 + <Divider>{() => t('layout.setting.headerTheme')}</Divider>
  395 + {renderHeaderTheme()}
  396 + <Divider>{() => t('layout.setting.sidebarTheme')}</Divider>
  397 + {renderSiderTheme()}
  398 + <Divider>{() => t('layout.setting.interfaceFunction')}</Divider>
  399 + {renderFeatures()}
  400 + <Divider>{() => t('layout.setting.interfaceDisplay')}</Divider>
  401 + {renderContent()}
  402 + <Divider>{() => t('layout.setting.animation')}</Divider>
  403 + {renderTransition()}
  404 + <Divider />
  405 + <SettingFooter />
412 406 </BasicDrawer>
413 407 );
414 408 },
... ...
src/layouts/default/setting/components/InputNumberItem.vue
... ... @@ -43,7 +43,6 @@
43 43 });
44 44 </script>
45 45 <style lang="less" scoped>
46   - @import (reference) '../../../../design/index.less';
47 46 @prefix-cls: ~'@{namespace}-setting-input-number-item';
48 47  
49 48 .@{prefix-cls} {
... ...
src/layouts/default/setting/components/SelectItem.vue
... ... @@ -62,7 +62,6 @@
62 62 });
63 63 </script>
64 64 <style lang="less" scoped>
65   - @import (reference) '../../../../design/index.less';
66 65 @prefix-cls: ~'@{namespace}-setting-select-item';
67 66  
68 67 .@{prefix-cls} {
... ...
src/layouts/default/setting/components/SettingFooter.vue
... ... @@ -75,7 +75,6 @@
75 75 });
76 76 </script>
77 77 <style lang="less" scoped>
78   - @import (reference) '../../../../design/index.less';
79 78 @prefix-cls: ~'@{namespace}-setting-footer';
80 79  
81 80 .@{prefix-cls} {
... ...
src/layouts/default/setting/components/SwitchItem.vue
... ... @@ -57,7 +57,6 @@
57 57 });
58 58 </script>
59 59 <style lang="less" scoped>
60   - @import (reference) '../../../../design/index.less';
61 60 @prefix-cls: ~'@{namespace}-setting-switch-item';
62 61  
63 62 .@{prefix-cls} {
... ...
src/layouts/default/setting/components/ThemePicker.vue
... ... @@ -55,7 +55,6 @@
55 55 });
56 56 </script>
57 57 <style lang="less">
58   - @import (reference) '../../../../design/index.less';
59 58 @prefix-cls: ~'@{namespace}-setting-theme-picker';
60 59  
61 60 .@{prefix-cls} {
... ...
src/layouts/default/setting/components/TypePicker.vue
... ... @@ -51,7 +51,6 @@
51 51 });
52 52 </script>
53 53 <style lang="less" scoped>
54   - @import (reference) '../../../../design/index.less';
55 54 @prefix-cls: ~'@{namespace}-setting-menu-type-picker';
56 55  
57 56 .@{prefix-cls} {
... ...
src/layouts/default/setting/index.vue
... ... @@ -28,7 +28,6 @@
28 28 });
29 29 </script>
30 30 <style lang="less">
31   - @import (reference) '../../../design/index.less';
32 31 @prefix-cls: ~'@{namespace}-setting-button';
33 32  
34 33 .@{prefix-cls} {
... ...
src/layouts/default/sider/DragBar.vue
... ... @@ -41,7 +41,6 @@
41 41 });
42 42 </script>
43 43 <style lang="less" scoped>
44   - @import (reference) '../../../design/index.less';
45 44 @prefix-cls: ~'@{namespace}-darg-bar';
46 45  
47 46 .@{prefix-cls} {
... ...
src/layouts/default/sider/LayoutSider.vue
... ... @@ -128,7 +128,6 @@
128 128 });
129 129 </script>
130 130 <style lang="less">
131   - @import (reference) '../../../design/index.less';
132 131 @prefix-cls: ~'@{namespace}-layout-sideBar';
133 132  
134 133 .@{prefix-cls} {
... ...
src/layouts/default/sider/MixSider.vue
... ... @@ -333,7 +333,6 @@
333 333 });
334 334 </script>
335 335 <style lang="less">
336   - @import (reference) '../../../design/index.less';
337 336 @prefix-cls: ~'@{namespace}-layout-mix-sider';
338 337 @tag-prefix-cls: ~'@{namespace}-basic-menu-item-tag';
339 338 @width: 80px;
... ...
src/layouts/default/sider/index.vue
... ... @@ -41,7 +41,6 @@
41 41 });
42 42 </script>
43 43 <style lang="less">
44   - @import (reference) '../../../design/index.less';
45 44 @prefix-cls: ~'@{namespace}-layout-sider-wrapper';
46 45 .@{prefix-cls} {
47 46 .ant-drawer-body {
... ...
src/layouts/default/tabs/index.less
1   -@import (reference) '../../../design/index.less';
2 1 @prefix-cls: ~'@{namespace}-multiple-tabs';
3 2  
4 3 .@{prefix-cls} {
... ...
src/layouts/page/index.tsx deleted 100644 → 0
1   -import type { DefaultContext } from './transition';
2   -
3   -import { computed, defineComponent, unref, Transition, KeepAlive } from 'vue';
4   -import { RouterView } from 'vue-router';
5   -
6   -import FrameLayout from '/@/layouts/iframe/index.vue';
7   -
8   -import { useRootSetting } from '/@/hooks/setting/useRootSetting';
9   -
10   -import { useTransitionSetting } from '/@/hooks/setting/useTransitionSetting';
11   -import { useCache } from './useCache';
12   -import { useMultipleTabSetting } from '/@/hooks/setting/useMultipleTabSetting';
13   -import { getTransitionName } from './transition';
14   -
15   -export default defineComponent({
16   - name: 'PageLayout',
17   - setup() {
18   - const { getCaches } = useCache(true);
19   - const { getShowMultipleTab } = useMultipleTabSetting();
20   -
21   - const { getOpenKeepAlive, getCanEmbedIFramePage } = useRootSetting();
22   -
23   - const { getBasicTransition, getEnableTransition } = useTransitionSetting();
24   -
25   - const openCache = computed(() => unref(getOpenKeepAlive) && unref(getShowMultipleTab));
26   -
27   - return () => {
28   - return (
29   - <>
30   - <RouterView>
31   - {{
32   - default: ({ Component, route }: DefaultContext) => {
33   - // No longer show animations that are already in the tab
34   - const cacheTabs = unref(getCaches);
35   -
36   - const name = getTransitionName({
37   - route,
38   - openCache: unref(openCache),
39   - enableTransition: unref(getEnableTransition),
40   - cacheTabs,
41   - def: unref(getBasicTransition),
42   - });
43   -
44   - // When the child element is the parentView, adding the key will cause the component to be executed multiple times. When it is not parentView, you need to add a key, because it needs to be compatible with the same route carrying different parameters
45   - const isParentView = Component?.type.parentView;
46   - const componentKey = isParentView ? {} : { key: route.fullPath };
47   -
48   - const renderComp = () => <Component {...componentKey} />;
49   -
50   - const PageContent = unref(openCache) ? (
51   - <KeepAlive include={cacheTabs}>{renderComp()}</KeepAlive>
52   - ) : (
53   - renderComp()
54   - );
55   -
56   - if (!unref(getEnableTransition)) {
57   - return PageContent;
58   - }
59   - return (
60   - <Transition name={name} mode="out-in" appear={true}>
61   - {() => PageContent}
62   - </Transition>
63   - );
64   - },
65   - }}
66   - </RouterView>
67   - {unref(getCanEmbedIFramePage) && <FrameLayout />}
68   - </>
69   - );
70   - };
71   - },
72   -});
src/layouts/page/index.vue 0 → 100644
  1 +<template>
  2 + <div>
  3 + <router-view>
  4 + <template v-slot="{ Component, route }">
  5 + <transition
  6 + :name="
  7 + getTransitionName({
  8 + route,
  9 + openCache,
  10 + enableTransition: getEnableTransition,
  11 + cacheTabs: getCaches,
  12 + def: getBasicTransition,
  13 + })
  14 + "
  15 + mode="out-in"
  16 + appear
  17 + >
  18 + <keep-alive v-if="openCache" :include="getCaches">
  19 + <component :is="Component" v-bind="getKey(Component, route)" />
  20 + </keep-alive>
  21 + <component v-else :is="Component" v-bind="getKey(Component, route)" />
  22 + </transition>
  23 + </template>
  24 + </router-view>
  25 + <FrameLayout v-if="getCanEmbedIFramePage" />
  26 + </div>
  27 +</template>
  28 +
  29 +<script lang="ts">
  30 + import type { FunctionalComponent } from 'vue';
  31 + import type { RouteLocation } from 'vue-router';
  32 +
  33 + import { computed, defineComponent, unref } from 'vue';
  34 +
  35 + import FrameLayout from '/@/layouts/iframe/index.vue';
  36 +
  37 + import { useRootSetting } from '/@/hooks/setting/useRootSetting';
  38 +
  39 + import { useTransitionSetting } from '/@/hooks/setting/useTransitionSetting';
  40 + import { useCache } from './useCache';
  41 + import { useMultipleTabSetting } from '/@/hooks/setting/useMultipleTabSetting';
  42 + import { getTransitionName } from './transition';
  43 +
  44 + export default defineComponent({
  45 + name: 'PageLayout',
  46 + components: { FrameLayout },
  47 + setup() {
  48 + const { getCaches } = useCache(true);
  49 + const { getShowMultipleTab } = useMultipleTabSetting();
  50 +
  51 + const { getOpenKeepAlive, getCanEmbedIFramePage } = useRootSetting();
  52 +
  53 + const { getBasicTransition, getEnableTransition } = useTransitionSetting();
  54 +
  55 + const openCache = computed(() => unref(getOpenKeepAlive) && unref(getShowMultipleTab));
  56 +
  57 + function getKey(component: FunctionalComponent & { type: Indexable }, route: RouteLocation) {
  58 + return !!component?.type.parentView ? {} : { key: route.fullPath };
  59 + }
  60 +
  61 + return {
  62 + getTransitionName,
  63 + openCache,
  64 + getEnableTransition,
  65 + getBasicTransition,
  66 + getCaches,
  67 + getCanEmbedIFramePage,
  68 + getKey,
  69 + };
  70 + },
  71 + });
  72 +</script>
... ...
src/locales/index.ts renamed to src/locales/constant.ts
1   -import messages from 'globby?locale!/@/locales/lang/**/*.@(ts)';
2   -
3 1 import type { DropMenu } from '/@/components/Dropdown';
4 2  
5 3 // locale list
... ... @@ -13,4 +11,3 @@ export const localeList: DropMenu[] = [
13 11 event: 'en',
14 12 },
15 13 ];
16   -export default messages;
... ...
src/locales/getMessage.ts 0 → 100644
  1 +import { genMessage } from './helper';
  2 +import modules from 'glob:./lang/**/*.ts';
  3 +
  4 +export default genMessage(modules);
... ...
src/locales/helper.ts 0 → 100644
  1 +import { set } from 'lodash-es';
  2 +
  3 +export function genMessage(langs: Record<string, Record<string, any>>, prefix = 'lang') {
  4 + const obj: Recordable = {};
  5 +
  6 + Object.keys(langs).forEach((key) => {
  7 + const mod = langs[key].default;
  8 + let k = key.replace(`./${prefix}/`, '').replace(/^\.\//, '');
  9 + const lastIndex = k.lastIndexOf('.');
  10 + k = k.substring(0, lastIndex);
  11 + const keyList = k.split('/');
  12 + const lang = keyList.shift();
  13 + const objKey = keyList.join('.');
  14 + if (lang) {
  15 + set(obj, lang, obj[lang] || {});
  16 + set(obj[lang], objKey, mod);
  17 + }
  18 + });
  19 + return obj;
  20 +}
... ...
src/setup/i18n/index.ts renamed to src/locales/setupI18n.ts
1   -import { App } from 'vue';
  1 +import type { App } from 'vue';
2 2 import type { I18n, I18nOptions } from 'vue-i18n';
3 3  
4 4 import { createI18n } from 'vue-i18n';
5   -import localeMessages from '/@/locales';
6   -import { useLocale } from '/@/hooks/web/useLocale';
  5 +
  6 +import 'moment/dist/locale/zh-cn';
  7 +
7 8 import projectSetting from '/@/settings/projectSetting';
8   -const { setupLocale } = useLocale();
  9 +
  10 +import messages from './getMessage';
9 11  
10 12 const { lang, availableLocales, fallback } = projectSetting?.locale;
  13 +
11 14 const localeData: I18nOptions = {
12 15 legacy: false,
13 16 locale: lang,
14 17 fallbackLocale: fallback,
15   - messages: localeMessages,
  18 + messages,
16 19 availableLocales: availableLocales,
17 20 sync: true, //If you don’t want to inherit locale from global scope, you need to set sync of i18n component option to false.
18 21 silentTranslationWarn: true, // true - warning off
19 22 missingWarn: false,
20 23 silentFallbackWarn: true,
21 24 };
22   -
23   -let i18n: I18n;
  25 +export let i18n: I18n;
24 26  
25 27 // setup i18n instance with glob
26 28 export function setupI18n(app: App) {
27 29 i18n = createI18n(localeData) as I18n;
28   - setupLocale();
29 30 app.use(i18n);
30 31 }
31   -
32   -export function getI18n(): I18n {
33   - return i18n;
34   -}
... ...
src/hooks/web/useLocale.ts renamed to src/locales/useLocale.ts
... ... @@ -2,18 +2,16 @@
2 2 * Multi-language related operations
3 3 */
4 4 import type { LocaleType } from '/@/locales/types';
  5 +import type { Ref } from 'vue';
5 6  
6 7 import { unref, ref } from 'vue';
7   -
8   -import { getI18n } from '/@/setup/i18n';
9   -
10 8 import { useLocaleSetting } from '/@/hooks/setting/useLocaleSetting';
11 9  
12 10 import moment from 'moment';
13 11  
14 12 import 'moment/dist/locale/zh-cn';
15 13  
16   -moment.locale('zh-cn');
  14 +import { i18n } from './setupI18n';
17 15  
18 16 const antConfigLocaleRef = ref<any>(null);
19 17  
... ... @@ -23,7 +21,11 @@ export function useLocale() {
23 21 // Switching the language will change the locale of useI18n
24 22 // And submit to configuration modification
25 23 function changeLocale(lang: LocaleType): void {
26   - (getI18n().global.locale as any).value = lang;
  24 + if (i18n.mode === 'legacy') {
  25 + i18n.global.locale = lang;
  26 + } else {
  27 + ((i18n.global.locale as unknown) as Ref<string>).value = lang;
  28 + }
27 29 setLocalSetting({ lang });
28 30 // i18n.global.setLocaleMessage(locale, messages);
29 31  
... ... @@ -51,13 +53,13 @@ export function useLocale() {
51 53 }
52 54  
53 55 // initialization
54   - function setupLocale() {
  56 + function setLocale() {
55 57 const lang = unref(getLang);
56 58 lang && changeLocale(lang);
57 59 }
58 60  
59 61 return {
60   - setupLocale,
  62 + setLocale,
61 63 getLocale,
62 64 getLang,
63 65 changeLocale,
... ...
src/main.ts
... ... @@ -6,18 +6,19 @@ import { setupStore } from &#39;/@/store&#39;;
6 6 import { setupAntd } from '/@/setup/ant-design-vue';
7 7 import { setupErrorHandle } from '/@/setup/error-handle';
8 8 import { setupGlobDirectives } from '/@/directives';
9   -import { setupI18n } from '/@/setup/i18n';
  9 +import { setupI18n } from '/@/locales/setupI18n';
10 10 import { setupProdMockServer } from '../mock/_createProductionServer';
11   -import { setApp } from '/@/setup/App';
  11 +
  12 +import { registerGlobComp } from '/@/components/registerGlobComp';
12 13  
13 14 import { isDevMode, isProdMode, isUseMock } from '/@/utils/env';
14 15  
15 16 import '/@/design/index.less';
16 17  
17   -import '/@/locales/index';
18   -
19 18 const app = createApp(App);
20 19  
  20 +registerGlobComp(app);
  21 +
21 22 // Configure component library
22 23 setupAntd(app);
23 24  
... ... @@ -51,5 +52,3 @@ if (isDevMode()) {
51 52 if (isProdMode() && isUseMock()) {
52 53 setupProdMockServer();
53 54 }
54   -// Used to share app instances in other modules
55   -setApp(app);
... ...
src/router/helper/dynamicImport.ts deleted 100644 → 0
1   -// The content here is just for type approval. The actual file content is overwritten by transform
2   -// For specific coverage, see build/vite/plugin/transform/dynamic-import/index.ts
3   -export default function (name: string) {
4   - return name as any;
5   -}
src/router/helper/routeHelper.ts
... ... @@ -2,8 +2,8 @@ import type { AppRouteModule, AppRouteRecordRaw } from &#39;/@/router/types&#39;;
2 2 import type { RouteLocationNormalized, RouteRecordNormalized } from 'vue-router';
3 3  
4 4 import { getParentLayout, LAYOUT } from '/@/router/constant';
5   -import dynamicImport from './dynamicImport';
6 5 import { cloneDeep } from 'lodash-es';
  6 +import { warn } from '/@/utils/log';
7 7  
8 8 export type LayoutMapKey = 'LAYOUT';
9 9  
... ... @@ -11,12 +11,20 @@ const LayoutMap = new Map&lt;LayoutMapKey, () =&gt; Promise&lt;typeof import(&#39;*.vue&#39;)&gt;&gt;()
11 11  
12 12 // 动态引入
13 13 function asyncImportRoute(routes: AppRouteRecordRaw[] | undefined) {
  14 + // TODO Because xlsx does not support vite2.0 temporarily. So filter the excel example first
  15 + const dynamicViewsModules = importContext({
  16 + dir: '/@/views',
  17 + deep: true,
  18 + regexp: /^(?!.*\/demo\/excel).*\.(tsx?|vue)$/,
  19 + dynamicImport: true,
  20 + dynamicEnabled: 'autoImportRoute',
  21 + });
14 22 if (!routes) return;
15 23 routes.forEach((item) => {
16 24 const { component, name } = item;
17 25 const { children } = item;
18 26 if (component) {
19   - item.component = dynamicImport(component as string);
  27 + item.component = dynamicImport(dynamicViewsModules, component as string);
20 28 } else if (name) {
21 29 item.component = getParentLayout(name);
22 30 }
... ... @@ -24,6 +32,24 @@ function asyncImportRoute(routes: AppRouteRecordRaw[] | undefined) {
24 32 });
25 33 }
26 34  
  35 +function dynamicImport(dynamicViewsModules: DynamicImportContextResult, component: string) {
  36 + const keys = dynamicViewsModules.keys();
  37 + const matchKeys = keys.filter((key) => {
  38 + const k = key.substr(1);
  39 + return k.startsWith(component) || k.startsWith(`/${component}`);
  40 + });
  41 + if (matchKeys?.length === 1) {
  42 + const matchKey = matchKeys[0];
  43 + return dynamicViewsModules(matchKey);
  44 + }
  45 + if (matchKeys?.length > 1) {
  46 + warn(
  47 + 'Please do not create `.vue` and `.TSX` files with the same file name in the same hierarchical directory under the views folder. This will cause dynamic introduction failure'
  48 + );
  49 + return;
  50 + }
  51 +}
  52 +
27 53 // Turn background objects into routing objects
28 54 export function transformObjToRoute<T = AppRouteModule>(routeList: AppRouteModule[]): T[] {
29 55 LayoutMap.set('LAYOUT', LAYOUT);
... ...
src/router/menus/index.ts
... ... @@ -9,18 +9,18 @@ import router from &#39;/@/router&#39;;
9 9 import { PermissionModeEnum } from '/@/enums/appEnum';
10 10 import { pathToRegexp } from 'path-to-regexp';
11 11  
12   -import modules from 'globby!/@/router/menus/modules/**/*.@(ts)';
13   -
14   -const reg = /(((https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$/;
  12 +import modules from 'glob:./modules/**/*.ts';
15 13  
16 14 const menuModules: MenuModule[] = [];
17 15  
18 16 Object.keys(modules).forEach((key) => {
19   - const moduleItem = modules[key];
20   - const menuModule = Array.isArray(moduleItem) ? [...moduleItem] : [moduleItem];
21   - menuModules.push(...menuModule);
  17 + const mod = modules[key].default || {};
  18 + const modList = Array.isArray(mod) ? [...mod] : [mod];
  19 + menuModules.push(...modList);
22 20 });
23 21  
  22 +const reg = /(((https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$/;
  23 +
24 24 // ===========================
25 25 // ==========Helper===========
26 26 // ===========================
... ...
src/router/routes/index.ts
... ... @@ -2,17 +2,18 @@ import type { AppRouteRecordRaw, AppRouteModule } from &#39;/@/router/types&#39;;
2 2  
3 3 import { PAGE_NOT_FOUND_ROUTE, REDIRECT_ROUTE } from '../constant';
4 4  
5   -import modules from 'globby!/@/router/routes/modules/**/*.@(ts)';
6 5 import { mainOutRoutes } from './mainOut';
7 6 import { PageEnum } from '/@/enums/pageEnum';
8   -
9 7 import { t } from '/@/hooks/web/useI18n';
10 8  
  9 +import modules from 'glob:./modules/**/*.ts';
  10 +
11 11 const routeModuleList: AppRouteModule[] = [];
12 12  
13 13 Object.keys(modules).forEach((key) => {
14   - const mod = Array.isArray(modules[key]) ? [...modules[key]] : [modules[key]];
15   - routeModuleList.push(...mod);
  14 + const mod = modules[key].default || {};
  15 + const modList = Array.isArray(mod) ? [...mod] : [mod];
  16 + routeModuleList.push(...modList);
16 17 });
17 18  
18 19 export const asyncRoutes = [PAGE_NOT_FOUND_ROUTE, ...routeModuleList];
... ...
src/router/routes/modules/demo/feat.ts
... ... @@ -172,51 +172,51 @@ const feat: AppRouteModule = {
172 172 title: t('routes.demo.feat.errorLog'),
173 173 },
174 174 },
175   - {
176   - path: 'excel',
177   - name: 'Excel',
178   - redirect: '/feat/excel/customExport',
179   - component: getParentLayout('Excel'),
180   - meta: {
181   - // icon: 'mdi:microsoft-excel',
182   - title: t('routes.demo.excel.excel'),
183   - },
  175 + // {
  176 + // path: 'excel',
  177 + // name: 'Excel',
  178 + // redirect: '/feat/excel/customExport',
  179 + // component: getParentLayout('Excel'),
  180 + // meta: {
  181 + // // icon: 'mdi:microsoft-excel',
  182 + // title: t('routes.demo.excel.excel'),
  183 + // },
184 184  
185   - children: [
186   - {
187   - path: 'customExport',
188   - name: 'CustomExport',
189   - component: () => import('/@/views/demo/excel/CustomExport.vue'),
190   - meta: {
191   - title: t('routes.demo.excel.customExport'),
192   - },
193   - },
194   - {
195   - path: 'jsonExport',
196   - name: 'JsonExport',
197   - component: () => import('/@/views/demo/excel/JsonExport.vue'),
198   - meta: {
199   - title: t('routes.demo.excel.jsonExport'),
200   - },
201   - },
202   - {
203   - path: 'arrayExport',
204   - name: 'ArrayExport',
205   - component: () => import('/@/views/demo/excel/ArrayExport.vue'),
206   - meta: {
207   - title: t('routes.demo.excel.arrayExport'),
208   - },
209   - },
210   - {
211   - path: 'importExcel',
212   - name: 'ImportExcel',
213   - component: () => import('/@/views/demo/excel/ImportExcel.vue'),
214   - meta: {
215   - title: t('routes.demo.excel.importExcel'),
216   - },
217   - },
218   - ],
219   - },
  185 + // children: [
  186 + // {
  187 + // path: 'customExport',
  188 + // name: 'CustomExport',
  189 + // component: () => import('/@/views/demo/excel/CustomExport.vue'),
  190 + // meta: {
  191 + // title: t('routes.demo.excel.customExport'),
  192 + // },
  193 + // },
  194 + // {
  195 + // path: 'jsonExport',
  196 + // name: 'JsonExport',
  197 + // component: () => import('/@/views/demo/excel/JsonExport.vue'),
  198 + // meta: {
  199 + // title: t('routes.demo.excel.jsonExport'),
  200 + // },
  201 + // },
  202 + // {
  203 + // path: 'arrayExport',
  204 + // name: 'ArrayExport',
  205 + // component: () => import('/@/views/demo/excel/ArrayExport.vue'),
  206 + // meta: {
  207 + // title: t('routes.demo.excel.arrayExport'),
  208 + // },
  209 + // },
  210 + // {
  211 + // path: 'importExcel',
  212 + // name: 'ImportExcel',
  213 + // component: () => import('/@/views/demo/excel/ImportExcel.vue'),
  214 + // meta: {
  215 + // title: t('routes.demo.excel.importExcel'),
  216 + // },
  217 + // },
  218 + // ],
  219 + // },
220 220 {
221 221 path: 'testTab/:id',
222 222 name: 'TestTab',
... ...
src/settings/projectSetting.ts
... ... @@ -172,7 +172,7 @@ const setting: ProjectConfig = {
172 172  
173 173 // Whether to cancel the http request that has been sent but not responded when switching the interface.
174 174 // If it is enabled, I want to overwrite a single interface. Can be set in a separate interface
175   - removeAllHttpPending: true,
  175 + removeAllHttpPending: false,
176 176 };
177 177  
178 178 export default setting;
... ...
src/setup/App.ts
... ... @@ -3,7 +3,6 @@
3 3 */
4 4  
5 5 import type { ProjectConfig } from '/@/types/config';
6   -import type { App } from 'vue';
7 6 import { computed, ref } from 'vue';
8 7  
9 8 import { ThemeModeEnum } from '/@/enums/appEnum';
... ... @@ -21,17 +20,6 @@ import {
21 20 import { appStore } from '/@/store/modules/app';
22 21 import { deepMerge } from '/@/utils';
23 22  
24   -// Used to share global app instances
25   -let app: App;
26   -
27   -export function setApp(_app: App): void {
28   - app = _app;
29   -}
30   -
31   -export function getApp(): App {
32   - return app;
33   -}
34   -
35 23 // TODO Theme switching
36 24 export function useThemeMode(mode: ThemeModeEnum) {
37 25 const modeRef = ref(mode);
... ...
src/types/vue-app-env.d.ts
... ... @@ -23,81 +23,3 @@ declare namespace NodeJS {
23 23 }
24 24  
25 25 declare let process: NodeJS.Process;
26   -
27   -declare module '*.bmp' {
28   - const src: string;
29   - export default src;
30   -}
31   -
32   -declare module '*.gif' {
33   - const src: string;
34   - export default src;
35   -}
36   -
37   -declare module '*.jpg' {
38   - const src: string;
39   - export default src;
40   -}
41   -
42   -declare module '*.jpeg' {
43   - const src: string;
44   - export default src;
45   -}
46   -
47   -declare module '*.png' {
48   - const src: string;
49   - export default src;
50   -}
51   -
52   -declare module '*.webp' {
53   - const src: string;
54   - export default src;
55   -}
56   -
57   -declare module '*.svg' {
58   - const src: string;
59   - export default src;
60   -}
61   -
62   -declare module '*.json' {
63   - const content: any | any[];
64   - export default content;
65   -}
66   -
67   -declare module '*.scss' {
68   - const content: {
69   - readonly [className: string]: string;
70   - };
71   - export default content;
72   -}
73   -declare module '*.less' {
74   - const content: {
75   - readonly [className: string]: string;
76   - };
77   - export default content;
78   -}
79   -declare module '*.styl' {
80   - const content: {
81   - readonly [className: string]: string;
82   - };
83   - export default content;
84   -}
85   -declare module '*.css' {
86   - const content: any;
87   - export default content;
88   -}
89   -
90   -declare module '*.module.css' {
91   - const classes: { readonly [key: string]: string };
92   - export default classes;
93   -}
94   -
95   -declare module '*.module.scss' {
96   - const classes: { readonly [key: string]: string };
97   - export default classes;
98   -}
99   -
100   -declare module '*.module.sass' {
101   - const classes: { readonly [key: string]: string };
102   - export default classes;
103   -}
... ...
src/types/window.d.ts
... ... @@ -4,5 +4,6 @@ declare global {
4 4 declare interface Window {
5 5 // Global vue app instance
6 6 __APP__: App<Element>;
  7 + __VERSION__: string;
7 8 }
8 9 }
... ...
src/views/dashboard/analysis/components/GrowCard.vue
... ... @@ -41,8 +41,6 @@
41 41 });
42 42 </script>
43 43 <style lang="less">
44   - @import (reference) '../../../../design/index.less';
45   -
46 44 .grow-card {
47 45 display: flex;
48 46 width: calc(100% - 12px);
... ...
src/views/dashboard/analysis/index.vue
... ... @@ -68,8 +68,6 @@
68 68 });
69 69 </script>
70 70 <style lang="less" scoped>
71   - @import (reference) '../../../design/index.less';
72   -
73 71 .analysis {
74 72 width: 100%;
75 73  
... ...
src/views/dashboard/house/index.less
1   -@import (reference) '../../../design/index.less';
2   -
3 1 .house-wrap {
4 2 position: relative;
5 3 width: 600px;
... ...
src/views/sys/lock/LockPage.vue
... ... @@ -135,7 +135,6 @@
135 135 });
136 136 </script>
137 137 <style lang="less" scoped>
138   - @import (reference) '../../../design/index.less';
139 138 @prefix-cls: ~'@{namespace}-lock-page';
140 139  
141 140 .@{prefix-cls} {
... ...
src/views/sys/login/Login.vue
... ... @@ -162,8 +162,6 @@
162 162 });
163 163 </script>
164 164 <style lang="less">
165   - @import (reference) '../../../design/index.less';
166   -
167 165 .login-form__locale {
168 166 position: absolute;
169 167 top: 14px;
... ...
tsconfig.json
1 1 {
2 2 "compilerOptions": {
3   - "target": "esnext",
  3 + "target": "es2016",
4 4 "module": "esnext",
5 5 "moduleResolution": "node",
6 6 "strict": true,
... ... @@ -16,6 +16,7 @@
16 16 "noUnusedParameters": true,
17 17 "experimentalDecorators": true,
18 18 "lib": ["dom", "esnext"],
  19 + "types": ["vite/client", "vite-plugin-import-context/client"],
19 20 "incremental": true,
20 21 "skipLibCheck": true,
21 22 "paths": {
... ...
vite.config.ts
1   -import type { UserConfig, Resolver } from 'vite';
  1 +import type { UserConfig, ConfigEnv } from 'vite';
2 2 import { resolve } from 'path';
  3 +import vue from '@vitejs/plugin-vue';
  4 +import vueJsx from '@vitejs/plugin-vue-jsx';
  5 +import legacy from '@vitejs/plugin-legacy';
3 6  
4 7 import { loadEnv } from 'vite';
5 8  
... ... @@ -7,12 +10,9 @@ import { modifyVars } from &#39;./build/config/lessModifyVars&#39;;
7 10 import { createProxy } from './build/vite/proxy';
8 11 import { configManualChunk } from './build/vite/optimizer';
9 12  
10   -import globbyTransform from './build/vite/plugin/transform/globby';
11   -import dynamicImportTransform from './build/vite/plugin/transform/dynamic-import';
12   -
13 13 import { wrapperEnv } from './build/utils';
14 14  
15   -import { createRollupPlugin, createVitePlugins } from './build/vite/plugin';
  15 +import { createVitePlugins } from './build/vite/plugin';
16 16  
17 17 const pkg = require('./package.json');
18 18  
... ... @@ -20,53 +20,43 @@ function pathResolve(dir: string) {
20 20 return resolve(__dirname, '.', dir);
21 21 }
22 22  
23   -const alias: Record<string, string> = {
24   - '/@/': pathResolve('src'),
25   -};
26   -
27 23 const root: string = process.cwd();
28 24  
29   -const resolvers: Resolver[] = [];
30   -
31   -export default (mode: 'development' | 'production'): UserConfig => {
  25 +export default ({ command, mode }: ConfigEnv): UserConfig => {
32 26 const env = loadEnv(mode, root);
33 27 const viteEnv = wrapperEnv(env);
34   - const {
35   - VITE_PORT,
36   - VITE_PUBLIC_PATH,
37   - VITE_PROXY,
38   - VITE_DROP_CONSOLE,
39   - VITE_DYNAMIC_IMPORT,
40   - } = viteEnv;
41   - return {
42   - root,
43   - alias,
44   - /**
45   - * port
46   - * @default '3000'
47   - */
48   - port: VITE_PORT,
49   -
50   - /**
51   - * Base public path when served in production.
52   - * @default '/'
53   - */
54   - base: VITE_PUBLIC_PATH,
  28 + const { VITE_PORT, VITE_PUBLIC_PATH, VITE_PROXY, VITE_DROP_CONSOLE, VITE_LEGACY } = viteEnv;
55 29  
56   - /**
57   - * Transpile target for esbuild.
58   - * @default 'es2020'
59   - */
60   - esbuildTarget: 'es2019',
  30 + const isBuild = command === 'build';
61 31  
62   - // terser options
63   - terserOptions: {
64   - compress: {
65   - keep_infinity: true,
66   - drop_console: VITE_DROP_CONSOLE,
  32 + return {
  33 + root,
  34 + alias: {
  35 + '/@/': `${pathResolve('src')}/`,
  36 + },
  37 + server: {
  38 + port: VITE_PORT,
  39 + proxy: createProxy(VITE_PROXY),
  40 + hmr: {
  41 + overlay: true,
  42 + },
  43 + },
  44 + build: {
  45 + base: VITE_PUBLIC_PATH,
  46 + terserOptions: {
  47 + compress: {
  48 + keep_infinity: true,
  49 + drop_console: VITE_DROP_CONSOLE,
  50 + },
  51 + },
  52 + // minify: 'esbuild',
  53 + rollupOptions: {
  54 + output: {
  55 + compact: true,
  56 + manualChunks: configManualChunk,
  57 + },
67 58 },
68 59 },
69   -
70 60 define: {
71 61 __VERSION__: pkg.version,
72 62 // setting vue-i18-next
... ... @@ -75,50 +65,28 @@ export default (mode: &#39;development&#39; | &#39;production&#39;): UserConfig =&gt; {
75 65 __VUE_I18N_FULL_INSTALL__: false,
76 66 __INTLIFY_PROD_DEVTOOLS__: false,
77 67 },
78   -
79   - cssPreprocessOptions: {
80   - less: {
81   - modifyVars: {
82   - // reference : Avoid repeated references
83   - hack: `true; @import (reference) "${resolve('src/design/config.less')}";`,
84   - ...modifyVars,
  68 + css: {
  69 + preprocessorOptions: {
  70 + less: {
  71 + modifyVars: {
  72 + // reference : Avoid repeated references
  73 + hack: `true; @import (reference) "${resolve('src/design/config.less')}";`,
  74 + ...modifyVars,
  75 + },
  76 + javascriptEnabled: true,
85 77 },
86   - javascriptEnabled: true,
87 78 },
88 79 },
89 80  
90   - // The package will be recompiled using rollup, and the new package compiled into the esm module specification will be put into node_modules/.vite_opt_cache
91   - optimizeDeps: {
92   - include: [
93   - 'qs',
94   - 'echarts/map/js/china',
95   - 'ant-design-vue/es/locale/zh_CN',
96   - 'ant-design-vue/es/locale/en_US',
97   - '@ant-design/icons-vue',
98   - ],
99   - },
100   -
101   - transforms: [
102   - globbyTransform({
103   - resolvers: resolvers,
104   - root: root,
105   - alias: alias,
106   - includes: [resolve('src/router'), resolve('src/locales')],
107   - }),
108   - dynamicImportTransform(VITE_DYNAMIC_IMPORT),
  81 + plugins: [
  82 + vue(),
  83 + vueJsx(),
  84 + ...(VITE_LEGACY && isBuild ? [legacy()] : []),
  85 + ...createVitePlugins(viteEnv, isBuild, mode),
109 86 ],
110 87  
111   - proxy: createProxy(VITE_PROXY),
112   -
113   - plugins: createVitePlugins(viteEnv, mode),
114   -
115   - rollupInputOptions: {
116   - plugins: createRollupPlugin(),
117   - },
118   -
119   - rollupOutputOptions: {
120   - compact: true,
121   - manualChunks: configManualChunk,
  88 + optimizeDeps: {
  89 + include: ['ant-design-vue/es/locale/zh_CN', 'ant-design-vue/es/locale/en_US'],
122 90 },
123 91 };
124 92 };
... ...
yarn.lock
... ... @@ -42,12 +42,19 @@
42 42 dependencies:
43 43 "@babel/highlight" "^7.10.4"
44 44  
  45 +"@babel/code-frame@^7.12.11":
  46 + version "7.12.11"
  47 + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
  48 + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==
  49 + dependencies:
  50 + "@babel/highlight" "^7.10.4"
  51 +
45 52 "@babel/compat-data@^7.12.5", "@babel/compat-data@^7.12.7":
46 53 version "7.12.7"
47 54 resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz#9329b4782a7d6bbd7eef57e11addf91ee3ef1e41"
48 55 integrity sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==
49 56  
50   -"@babel/core@>=7.9.0", "@babel/core@^7.11.1":
  57 +"@babel/core@>=7.9.0", "@babel/core@^7.11.1", "@babel/core@^7.12.10":
51 58 version "7.12.10"
52 59 resolved "https://registry.npmjs.org/@babel/core/-/core-7.12.10.tgz#b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd"
53 60 integrity sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==
... ... @@ -68,7 +75,7 @@
68 75 semver "^5.4.1"
69 76 source-map "^0.5.0"
70 77  
71   -"@babel/generator@^7.12.1":
  78 +"@babel/generator@^7.12.1", "@babel/generator@^7.12.11":
72 79 version "7.12.11"
73 80 resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz#98a7df7b8c358c9a37ab07a24056853016aba3af"
74 81 integrity sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==
... ... @@ -155,7 +162,16 @@
155 162 "@babel/template" "^7.10.4"
156 163 "@babel/types" "^7.10.4"
157 164  
158   -"@babel/helper-get-function-arity@^7.10.4":
  165 +"@babel/helper-function-name@^7.12.11":
  166 + version "7.12.11"
  167 + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz#1fd7738aee5dcf53c3ecff24f1da9c511ec47b42"
  168 + integrity sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==
  169 + dependencies:
  170 + "@babel/helper-get-function-arity" "^7.12.10"
  171 + "@babel/template" "^7.12.7"
  172 + "@babel/types" "^7.12.11"
  173 +
  174 +"@babel/helper-get-function-arity@^7.10.4", "@babel/helper-get-function-arity@^7.12.10":
159 175 version "7.12.10"
160 176 resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz#b158817a3165b5faa2047825dfa61970ddcc16cf"
161 177 integrity sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==
... ... @@ -176,7 +192,7 @@
176 192 dependencies:
177 193 "@babel/types" "^7.12.7"
178 194  
179   -"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.12.5":
  195 +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.12.5":
180 196 version "7.12.5"
181 197 resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb"
182 198 integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==
... ... @@ -250,6 +266,13 @@
250 266 dependencies:
251 267 "@babel/types" "^7.11.0"
252 268  
  269 +"@babel/helper-split-export-declaration@^7.12.11":
  270 + version "7.12.11"
  271 + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz#1b4cc424458643c47d37022223da33d76ea4603a"
  272 + integrity sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==
  273 + dependencies:
  274 + "@babel/types" "^7.12.11"
  275 +
253 276 "@babel/helper-validator-identifier@^7.10.4":
254 277 version "7.10.4"
255 278 resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2"
... ... @@ -308,7 +331,7 @@
308 331 resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.12.10.tgz#824600d59e96aea26a5a2af5a9d812af05c3ae81"
309 332 integrity sha512-PJdRPwyoOqFAWfLytxrWwGrAxghCgh/yTNCYciOz8QgjflA7aZhECPZAa2VUedKg2+QMWkI0L9lynh2SNmNEgA==
310 333  
311   -"@babel/parser@^7.12.1", "@babel/parser@^7.12.3":
  334 +"@babel/parser@^7.12.1", "@babel/parser@^7.12.11", "@babel/parser@^7.12.3":
312 335 version "7.12.11"
313 336 resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz#9ce3595bcd74bc5c466905e86c535b8b25011e79"
314 337 integrity sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==
... ... @@ -448,6 +471,13 @@
448 471 dependencies:
449 472 "@babel/helper-plugin-utils" "^7.8.3"
450 473  
  474 +"@babel/plugin-syntax-import-meta@^7.10.4":
  475 + version "7.10.4"
  476 + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
  477 + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
  478 + dependencies:
  479 + "@babel/helper-plugin-utils" "^7.10.4"
  480 +
451 481 "@babel/plugin-syntax-json-strings@^7.8.0":
452 482 version "7.8.3"
453 483 resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
... ... @@ -455,6 +485,13 @@
455 485 dependencies:
456 486 "@babel/helper-plugin-utils" "^7.8.0"
457 487  
  488 +"@babel/plugin-syntax-jsx@^7.0.0":
  489 + version "7.12.1"
  490 + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz#9d9d357cc818aa7ae7935917c1257f67677a0926"
  491 + integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==
  492 + dependencies:
  493 + "@babel/helper-plugin-utils" "^7.10.4"
  494 +
458 495 "@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
459 496 version "7.10.4"
460 497 resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
... ... @@ -504,6 +541,13 @@
504 541 dependencies:
505 542 "@babel/helper-plugin-utils" "^7.10.4"
506 543  
  544 +"@babel/plugin-syntax-typescript@^7.12.1":
  545 + version "7.12.1"
  546 + resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.1.tgz#460ba9d77077653803c3dd2e673f76d66b4029e5"
  547 + integrity sha512-UZNEcCY+4Dp9yYRCAHrHDU+9ZXLYaY9MgBXSRLkB9WjYFRR6quJBumfVrEkUxrePPBwFcpWfNKXqVRQQtm7mMA==
  548 + dependencies:
  549 + "@babel/helper-plugin-utils" "^7.10.4"
  550 +
507 551 "@babel/plugin-transform-arrow-functions@^7.12.1":
508 552 version "7.12.1"
509 553 resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz#8083ffc86ac8e777fbe24b5967c4b2521f3cb2b3"
... ... @@ -738,6 +782,15 @@
738 782 dependencies:
739 783 "@babel/helper-plugin-utils" "^7.10.4"
740 784  
  785 +"@babel/plugin-transform-typescript@^7.12.1":
  786 + version "7.12.1"
  787 + resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.1.tgz#d92cc0af504d510e26a754a7dbc2e5c8cd9c7ab4"
  788 + integrity sha512-VrsBByqAIntM+EYMqSm59SiMEf7qkmI9dqMt6RbD/wlwueWmYcI0FFK5Fj47pP6DRZm+3teXjosKlwcZJ5lIMw==
  789 + dependencies:
  790 + "@babel/helper-create-class-features-plugin" "^7.12.1"
  791 + "@babel/helper-plugin-utils" "^7.10.4"
  792 + "@babel/plugin-syntax-typescript" "^7.12.1"
  793 +
741 794 "@babel/plugin-transform-unicode-escapes@^7.12.1":
742 795 version "7.12.1"
743 796 resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz#5232b9f81ccb07070b7c3c36c67a1b78f1845709"
... ... @@ -843,7 +896,12 @@
843 896 dependencies:
844 897 regenerator-runtime "^0.13.4"
845 898  
846   -"@babel/template@^7.10.4", "@babel/template@^7.12.7":
  899 +"@babel/standalone@^7.12.12":
  900 + version "7.12.12"
  901 + resolved "https://registry.npmjs.org/@babel/standalone/-/standalone-7.12.12.tgz#f858ab1c76d9c4c23fe0783a0330ad37755f0176"
  902 + integrity sha512-sHuNDN9NvPHsDAmxPD3RpsIeqCoFSW+ySa6+3teInrYe9y0Gn5swLQ2ZE7Zk6L8eBBESZM2ob1l98qWauQfDMA==
  903 +
  904 +"@babel/template@^7.0.0", "@babel/template@^7.10.4", "@babel/template@^7.12.7":
847 905 version "7.12.7"
848 906 resolved "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc"
849 907 integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==
... ... @@ -867,6 +925,21 @@
867 925 globals "^11.1.0"
868 926 lodash "^4.17.19"
869 927  
  928 +"@babel/traverse@^7.0.0", "@babel/traverse@^7.12.12":
  929 + version "7.12.12"
  930 + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz#d0cd87892704edd8da002d674bc811ce64743376"
  931 + integrity sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==
  932 + dependencies:
  933 + "@babel/code-frame" "^7.12.11"
  934 + "@babel/generator" "^7.12.11"
  935 + "@babel/helper-function-name" "^7.12.11"
  936 + "@babel/helper-split-export-declaration" "^7.12.11"
  937 + "@babel/parser" "^7.12.11"
  938 + "@babel/types" "^7.12.12"
  939 + debug "^4.1.0"
  940 + globals "^11.1.0"
  941 + lodash "^4.17.19"
  942 +
870 943 "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5":
871 944 version "7.12.10"
872 945 resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.10.tgz#2d1f4041e8bf42ea099e5b2dc48d6a594c00017a"
... ... @@ -891,6 +964,15 @@
891 964 lodash "^4.17.19"
892 965 to-fast-properties "^2.0.0"
893 966  
  967 +"@babel/types@^7.0.0", "@babel/types@^7.12.11", "@babel/types@^7.12.12":
  968 + version "7.12.12"
  969 + resolved "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz#4608a6ec313abbd87afa55004d373ad04a96c299"
  970 + integrity sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==
  971 + dependencies:
  972 + "@babel/helper-validator-identifier" "^7.12.11"
  973 + lodash "^4.17.19"
  974 + to-fast-properties "^2.0.0"
  975 +
894 976 "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.12.0", "@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.4.4":
895 977 version "7.12.10"
896 978 resolved "https://registry.npmjs.org/@babel/types/-/types-7.12.10.tgz#7965e4a7260b26f09c56bcfcb0498af1f6d9b260"
... ... @@ -900,15 +982,6 @@
900 982 lodash "^4.17.19"
901 983 to-fast-properties "^2.0.0"
902 984  
903   -"@babel/types@^7.12.11":
904   - version "7.12.12"
905   - resolved "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz#4608a6ec313abbd87afa55004d373ad04a96c299"
906   - integrity sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==
907   - dependencies:
908   - "@babel/helper-validator-identifier" "^7.12.11"
909   - lodash "^4.17.19"
910   - to-fast-properties "^2.0.0"
911   -
912 985 "@commitlint/cli@^11.0.0":
913 986 version "11.0.0"
914 987 resolved "https://registry.npmjs.org/@commitlint/cli/-/cli-11.0.0.tgz#698199bc52afed50aa28169237758fa14a67b5d3"
... ... @@ -1104,35 +1177,15 @@
1104 1177 dependencies:
1105 1178 "@hapi/hoek" "^8.3.0"
1106 1179  
1107   -"@iconify/iconify@2.0.0-rc.1":
1108   - version "2.0.0-rc.1"
1109   - resolved "https://registry.npmjs.org/@iconify/iconify/-/iconify-2.0.0-rc.1.tgz#a8bae29d71016d5af98c69f56a73c4a040217b3a"
1110   - integrity sha512-ji5H04VjYtR4seIEgVVLPxg1KRhrFquOiyfPyLVS6vYPkuqV6bcWdssi05YSmf/OAzG4E7Qsg80/bOKyd5tYTw==
1111   -
1112   -"@iconify/iconify@>=2.0.0-rc.1":
1113   - version "2.0.0-rc.2"
1114   - resolved "https://registry.npmjs.org/@iconify/iconify/-/iconify-2.0.0-rc.2.tgz#c4a95ddc06ca9b9496df03604e66fdefb39f4c4b"
1115   - integrity sha512-BybEHU5/I9EQ0CcwKAqmreZ2bMnAXrqLCTptAc6vPetHMbrXdZfejP5mt57e/8PNSt/qE7BHniU5PCYA+PGIHw==
1116   -
1117   -"@iconify/iconify@^2.0.0-rc.5":
  1180 +"@iconify/iconify@2.0.0-rc.5", "@iconify/iconify@>=2.0.0-rc.5", "@iconify/iconify@^2.0.0-rc.5":
1118 1181 version "2.0.0-rc.5"
1119 1182 resolved "https://registry.npmjs.org/@iconify/iconify/-/iconify-2.0.0-rc.5.tgz#ac725a2ea40a0626d02dfb31482050751a0e6d84"
1120 1183 integrity sha512-A65cga+dug1Z5Y6T7euq1Fnk5Wc7Qu6yn6mVBAfo2SnPndekl9JC+eBe2M3RdTJIdIi10p7OUs7ntKKQLK1j5w==
1121 1184  
1122   -"@iconify/json@^1.1.282":
1123   - version "1.1.282"
1124   - resolved "https://registry.npmjs.org/@iconify/json/-/json-1.1.282.tgz#d603572c14c2d1d2cc6dbeb3fb83353958a8c5d3"
1125   - integrity sha512-eLbN5gKOJeN9M1DG6+Z/HXR1WDku9E4CLvEtETPJLN5Jzsz26jSjvFpzdF10tpY40qDynqAHAktEjMmRL1IRyA==
1126   -
1127   -"@intlify/core-base@9.0.0-beta.14":
1128   - version "9.0.0-beta.14"
1129   - resolved "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.0.0-beta.14.tgz#b190d1dd95d28977b26353c77121d2d84d15b7ee"
1130   - integrity sha512-ZX+JJvBtcdVZxrTg8oO6flXC965aURIvAeDOYT3DqlUWekHKQ2hUVc1J8SP7rzEgFUqDqCMrDMtv2gZNvxD2Aw==
1131   - dependencies:
1132   - "@intlify/message-compiler" "9.0.0-beta.14"
1133   - "@intlify/message-resolver" "9.0.0-beta.14"
1134   - "@intlify/runtime" "9.0.0-beta.14"
1135   - "@intlify/shared" "9.0.0-beta.14"
  1185 +"@iconify/json@^1.1.283":
  1186 + version "1.1.283"
  1187 + resolved "https://registry.npmjs.org/@iconify/json/-/json-1.1.283.tgz#d82d1cce28b1e80db983d7308414f62f87b6ea18"
  1188 + integrity sha512-N15g8BMH7Q7xRA65f7H2Exp2oeYh3iuWBrNeC471WxHC6O5oQgyOBzST7FHJMOD3Ik++fSre2utjI+o0IrzCzw==
1136 1189  
1137 1190 "@intlify/core-base@9.0.0-beta.16":
1138 1191 version "9.0.0-beta.16"
... ... @@ -1144,6 +1197,16 @@
1144 1197 "@intlify/runtime" "9.0.0-beta.16"
1145 1198 "@intlify/shared" "9.0.0-beta.16"
1146 1199  
  1200 +"@intlify/core-base@9.0.0-rc.1":
  1201 + version "9.0.0-rc.1"
  1202 + resolved "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.0.0-rc.1.tgz#92bd60c222626c1cb8a01234a1662cf11a5a7261"
  1203 + integrity sha512-PqC7FQByeFyNmDOW5LePJfBIV6wL4R4sv8+Gecv9l2SsnkJ4nDCTGcpBT0YRdDDDfKpLhSTHSm+sLdSuHv7EVQ==
  1204 + dependencies:
  1205 + "@intlify/message-compiler" "9.0.0-rc.1"
  1206 + "@intlify/message-resolver" "9.0.0-rc.1"
  1207 + "@intlify/runtime" "9.0.0-rc.1"
  1208 + "@intlify/shared" "9.0.0-rc.1"
  1209 +
1147 1210 "@intlify/core@^9.0.0-beta.15":
1148 1211 version "9.0.0-beta.16"
1149 1212 resolved "https://registry.npmjs.org/@intlify/core/-/core-9.0.0-beta.16.tgz#d74d4678868b37b641bdf999552b237d84dacb88"
... ... @@ -1151,15 +1214,6 @@
1151 1214 dependencies:
1152 1215 "@intlify/core-base" "9.0.0-beta.16"
1153 1216  
1154   -"@intlify/message-compiler@9.0.0-beta.14":
1155   - version "9.0.0-beta.14"
1156   - resolved "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.0.0-beta.14.tgz#4b5a4467459c402e71652075e9d95e5d85e85588"
1157   - integrity sha512-fXgiQuLKsYINnzhnCQD3OJnT2/59HrPw8WWiG8MpuMSDcUkUXV4ie0DW+9x48QQqpel7TU11Lage3zuFxw27iQ==
1158   - dependencies:
1159   - "@intlify/message-resolver" "9.0.0-beta.14"
1160   - "@intlify/shared" "9.0.0-beta.14"
1161   - source-map "0.6.1"
1162   -
1163 1217 "@intlify/message-compiler@9.0.0-beta.16":
1164 1218 version "9.0.0-beta.16"
1165 1219 resolved "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.0.0-beta.16.tgz#359993251a303f148b3a325eca055cdbaf0cd95f"
... ... @@ -1169,24 +1223,24 @@
1169 1223 "@intlify/shared" "9.0.0-beta.16"
1170 1224 source-map "0.6.1"
1171 1225  
1172   -"@intlify/message-resolver@9.0.0-beta.14":
1173   - version "9.0.0-beta.14"
1174   - resolved "https://registry.npmjs.org/@intlify/message-resolver/-/message-resolver-9.0.0-beta.14.tgz#f964706650d71ef06669c17c29cb60500ef2617a"
1175   - integrity sha512-/PPLMHX0w/ECkG+Fmne8L3WVVVwAp3tpdisf5G775b49Fspy4dKXqkLXM2NZKhdguJbXWHXXXiRkr+mlhq8G9Q==
  1226 +"@intlify/message-compiler@9.0.0-rc.1":
  1227 + version "9.0.0-rc.1"
  1228 + resolved "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.0.0-rc.1.tgz#152a971a634fe8b581a033a552bd637da2b2a259"
  1229 + integrity sha512-oPo/6v6lFvzbVj86ikWzYbHpRatyVQCSASJgGCIhvUGxdyvfxqKr+kQudbKWx/QiBq6cBioMuyh9hOGPhvBPMA==
  1230 + dependencies:
  1231 + "@intlify/message-resolver" "9.0.0-rc.1"
  1232 + "@intlify/shared" "9.0.0-rc.1"
  1233 + source-map "0.6.1"
1176 1234  
1177 1235 "@intlify/message-resolver@9.0.0-beta.16":
1178 1236 version "9.0.0-beta.16"
1179 1237 resolved "https://registry.npmjs.org/@intlify/message-resolver/-/message-resolver-9.0.0-beta.16.tgz#f8960344201050d17560f8d01f63e3cd0b9bf59c"
1180 1238 integrity sha512-xwjsFuDDYEv7g1KE5QZRbrPgfsrNsDhYLtNYR7Tn4inzbmB6ipak2UlDzDcQGLieSFbe1WwAoNL0IXy4sUKboQ==
1181 1239  
1182   -"@intlify/runtime@9.0.0-beta.14":
1183   - version "9.0.0-beta.14"
1184   - resolved "https://registry.npmjs.org/@intlify/runtime/-/runtime-9.0.0-beta.14.tgz#367f6b09c991c71905b73224e238aa8382976b2d"
1185   - integrity sha512-WgFnXkniJIMrZfW1kcxejQ96te56r3us632/WME7SL1IYsGV+WErXiJMBrHf8ngwAy15WmfYoKWr32sRxWjCtw==
1186   - dependencies:
1187   - "@intlify/message-compiler" "9.0.0-beta.14"
1188   - "@intlify/message-resolver" "9.0.0-beta.14"
1189   - "@intlify/shared" "9.0.0-beta.14"
  1240 +"@intlify/message-resolver@9.0.0-rc.1":
  1241 + version "9.0.0-rc.1"
  1242 + resolved "https://registry.npmjs.org/@intlify/message-resolver/-/message-resolver-9.0.0-rc.1.tgz#f3c4c1b6e2ffb9cd6c6f6cd40bf92d339b847c65"
  1243 + integrity sha512-vgt7qqHcHJenehnNG6APOmorpYi2XulD4TJHISNwISGlVz9Mf5+H4uilGkWA/+8k9kUOx5sh/5aN3IP2O8cgbA==
1190 1244  
1191 1245 "@intlify/runtime@9.0.0-beta.16":
1192 1246 version "9.0.0-beta.16"
... ... @@ -1197,22 +1251,24 @@
1197 1251 "@intlify/message-resolver" "9.0.0-beta.16"
1198 1252 "@intlify/shared" "9.0.0-beta.16"
1199 1253  
1200   -"@intlify/shared@9.0.0-beta.14":
1201   - version "9.0.0-beta.14"
1202   - resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.0.0-beta.14.tgz#c221a45f666a40935f998d2e3c14451a516b9f56"
1203   - integrity sha512-f+Gev5GnrNLyieJCB6sB/qqe03XaMf6yJiAXG3IamZ4mp45oj2Lw9Oj3hAepDW36VUZK2wCIDmWy53pxJNIFpQ==
  1254 +"@intlify/runtime@9.0.0-rc.1":
  1255 + version "9.0.0-rc.1"
  1256 + resolved "https://registry.npmjs.org/@intlify/runtime/-/runtime-9.0.0-rc.1.tgz#400a99eb6f01820d34ce5a5385a15657c004099a"
  1257 + integrity sha512-6n/Tf9cI+SfuB7GCIkI4AxMu9y4vTrhfrJYkAg8wOddE7jHf6TA4moXGnTnzcd+6gYWiB+UweNAfSebZt59MdQ==
  1258 + dependencies:
  1259 + "@intlify/message-compiler" "9.0.0-rc.1"
  1260 + "@intlify/message-resolver" "9.0.0-rc.1"
  1261 + "@intlify/shared" "9.0.0-rc.1"
1204 1262  
1205 1263 "@intlify/shared@9.0.0-beta.16":
1206 1264 version "9.0.0-beta.16"
1207 1265 resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.0.0-beta.16.tgz#51a80ca4705c93cb14c8f06398dfc550df09d67d"
1208 1266 integrity sha512-A7GSOovcZn/NMoAmDc8FG9uRcFv6iygriK8+C6HFeOnMQ9X+T9f5A9bPtXhCOCiRpQm9SUtGqXedxO5Y8rz9/A==
1209 1267  
1210   -"@koa/cors@^3.1.0":
1211   - version "3.1.0"
1212   - resolved "https://registry.npmjs.org/@koa/cors/-/cors-3.1.0.tgz#618bb073438cfdbd3ebd0e648a76e33b84f3a3b2"
1213   - integrity sha512-7ulRC1da/rBa6kj6P4g2aJfnET3z8Uf3SWu60cjbtxTA5g8lxRdX/Bd2P92EagGwwAhANeNw8T8if99rJliR6Q==
1214   - dependencies:
1215   - vary "^1.1.2"
  1268 +"@intlify/shared@9.0.0-rc.1":
  1269 + version "9.0.0-rc.1"
  1270 + resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.0.0-rc.1.tgz#73a57c74682b09a6f7f69b1b43904384a344c05e"
  1271 + integrity sha512-pOOtAKEIIuGSos+cuy5FKlANMev3x8qG7VJS9wTKy8JJcBzk98Ypt1+oNTOv0B5aIXpRRpxZVAXatvAorXT5/A==
1216 1272  
1217 1273 "@ls-lint/ls-lint@^1.9.2":
1218 1274 version "1.9.2"
... ... @@ -1265,23 +1321,23 @@
1265 1321 resolved "https://registry.npmjs.org/@pawelgalazka/shell/-/shell-2.0.0.tgz#7174a2d904375e435f6a012322713234c00e75cd"
1266 1322 integrity sha512-MsNuS9M2vVbJNW3+YSiz9eF0/U2ZPlEEVC4ky8QJnxFlU4H7DZOH5A1hDQUfF5DV/pYwBD76dkF3+mrzZTJ3Tw==
1267 1323  
1268   -"@purge-icons/core@^0.4.5":
1269   - version "0.4.5"
1270   - resolved "https://registry.npmjs.org/@purge-icons/core/-/core-0.4.5.tgz#2525c46d8721910eb420954dd5eb4d3c9753838a"
1271   - integrity sha512-8YMtl343dFA+dyslxwrvN7zx5uGf8ezFbBjtLOocR638ozUNJY1+cnYRcbbiM2hFkwrptPyyzzEFhdgYeGZhSQ==
  1324 +"@purge-icons/core@^0.5.0":
  1325 + version "0.5.0"
  1326 + resolved "https://registry.npmjs.org/@purge-icons/core/-/core-0.5.0.tgz#0f84a5aff15f665099d4a14edd986aa5dad12d25"
  1327 + integrity sha512-+5Q9hXR7EKdtIZcm5o5baBfrJINec30UrxsQY9rrLJh2pbF6xIQyvDShcXJNQHyx5z3SsfFpood3EZskfWV/mQ==
1272 1328 dependencies:
1273   - "@iconify/iconify" "2.0.0-rc.1"
1274   - axios "^0.21.0"
1275   - debug "^4.3.0"
  1329 + "@iconify/iconify" "2.0.0-rc.5"
  1330 + axios "^0.21.1"
  1331 + debug "^4.3.2"
1276 1332 fast-glob "^3.2.4"
1277 1333 fs-extra "^9.0.1"
1278 1334  
1279   -"@purge-icons/generated@^0.4.1":
1280   - version "0.4.1"
1281   - resolved "https://registry.npmjs.org/@purge-icons/generated/-/generated-0.4.1.tgz#b2e447ab56a59a254ce56f1529964cd887732f54"
1282   - integrity sha512-TlCvCDOYi6aiUzpDb5gOvlia3ULu/DTDJzBEhEXIhg9XPY4hIPlqDqScRDcbaBuj2Iauhp+3vSu7tKOuWXN7hg==
  1335 +"@purge-icons/generated@^0.5.0":
  1336 + version "0.5.0"
  1337 + resolved "https://registry.npmjs.org/@purge-icons/generated/-/generated-0.5.0.tgz#8039d97fe054d0a4788fb896ee552f2edab21205"
  1338 + integrity sha512-GYiWjOKu5JZyhXIQwMcF2hfTxw2UHk4bOE68JyEDRE7a7y2JTSIyy90HX+sf0uPT8OSfobNrBy/x+LQRGqhudQ==
1283 1339 dependencies:
1284   - "@iconify/iconify" ">=2.0.0-rc.1"
  1340 + "@iconify/iconify" ">=2.0.0-rc.5"
1285 1341  
1286 1342 "@rollup/plugin-babel@^5.2.0":
1287 1343 version "5.2.2"
... ... @@ -1291,50 +1347,6 @@
1291 1347 "@babel/helper-module-imports" "^7.10.4"
1292 1348 "@rollup/pluginutils" "^3.1.0"
1293 1349  
1294   -"@rollup/plugin-commonjs@^16.0.0":
1295   - version "16.0.0"
1296   - resolved "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-16.0.0.tgz#169004d56cd0f0a1d0f35915d31a036b0efe281f"
1297   - integrity sha512-LuNyypCP3msCGVQJ7ki8PqYdpjfEkE/xtFa5DqlF+7IBD0JsfMZ87C58heSwIMint58sAUZbt3ITqOmdQv/dXw==
1298   - dependencies:
1299   - "@rollup/pluginutils" "^3.1.0"
1300   - commondir "^1.0.1"
1301   - estree-walker "^2.0.1"
1302   - glob "^7.1.6"
1303   - is-reference "^1.2.1"
1304   - magic-string "^0.25.7"
1305   - resolve "^1.17.0"
1306   -
1307   -"@rollup/plugin-json@^4.1.0":
1308   - version "4.1.0"
1309   - resolved "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3"
1310   - integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==
1311   - dependencies:
1312   - "@rollup/pluginutils" "^3.0.8"
1313   -
1314   -"@rollup/plugin-node-resolve@^10.0.0":
1315   - version "10.0.0"
1316   - resolved "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-10.0.0.tgz#44064a2b98df7530e66acf8941ff262fc9b4ead8"
1317   - integrity sha512-sNijGta8fqzwA1VwUEtTvWCx2E7qC70NMsDh4ZG13byAXYigBNZMxALhKUSycBks5gupJdq0lFrKumFrRZ8H3A==
1318   - dependencies:
1319   - "@rollup/pluginutils" "^3.1.0"
1320   - "@types/resolve" "1.17.1"
1321   - builtin-modules "^3.1.0"
1322   - deepmerge "^4.2.2"
1323   - is-module "^1.0.0"
1324   - resolve "^1.17.0"
1325   -
1326   -"@rollup/plugin-node-resolve@^11.0.0":
1327   - version "11.0.0"
1328   - resolved "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.0.0.tgz#770458fb26691a686c5f29f37dded94832ffce59"
1329   - integrity sha512-8Hrmwjn1pLYjUxcv7U7IPP0qfnzEJWHyHE6CaZ8jbLM+8axaarJRB1jB6JgKTDp5gNga+TpsgX6F8iuvgOerKQ==
1330   - dependencies:
1331   - "@rollup/pluginutils" "^3.1.0"
1332   - "@types/resolve" "1.17.1"
1333   - builtin-modules "^3.1.0"
1334   - deepmerge "^4.2.2"
1335   - is-module "^1.0.0"
1336   - resolve "^1.19.0"
1337   -
1338 1350 "@rollup/plugin-node-resolve@^11.0.1":
1339 1351 version "11.0.1"
1340 1352 resolved "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.0.1.tgz#d3765eec4bccf960801439a999382aed2dca959b"
... ... @@ -1359,7 +1371,7 @@
1359 1371 is-module "^1.0.0"
1360 1372 resolve "^1.17.0"
1361 1373  
1362   -"@rollup/plugin-replace@^2.3.3", "@rollup/plugin-replace@^2.3.4":
  1374 +"@rollup/plugin-replace@^2.3.3":
1363 1375 version "2.3.4"
1364 1376 resolved "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.3.4.tgz#7dd84c17755d62b509577f2db37eb524d7ca88ca"
1365 1377 integrity sha512-waBhMzyAtjCL1GwZes2jaE9MjuQ/DQF2BatH3fRivUF3z0JBFrU0U6iBNC/4WR+2rLKhaAhPWDNPYp4mI6RqdQ==
... ... @@ -1367,7 +1379,7 @@
1367 1379 "@rollup/pluginutils" "^3.1.0"
1368 1380 magic-string "^0.25.7"
1369 1381  
1370   -"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.0.9", "@rollup/pluginutils@^3.1.0":
  1382 +"@rollup/pluginutils@^3.1.0":
1371 1383 version "3.1.0"
1372 1384 resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b"
1373 1385 integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==
... ... @@ -1464,11 +1476,6 @@
1464 1476 dependencies:
1465 1477 "@types/zrender" "*"
1466 1478  
1467   -"@types/estree@*":
1468   - version "0.0.45"
1469   - resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884"
1470   - integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==
1471   -
1472 1479 "@types/estree@0.0.39":
1473 1480 version "0.0.39"
1474 1481 resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
... ... @@ -1554,7 +1561,7 @@
1554 1561 "@types/koa" "*"
1555 1562 "@types/koa-send" "*"
1556 1563  
1557   -"@types/koa@*", "@types/koa@^2.11.4":
  1564 +"@types/koa@*":
1558 1565 version "2.11.6"
1559 1566 resolved "https://registry.npmjs.org/@types/koa/-/koa-2.11.6.tgz#b7030caa6b44af801c2aea13ba77d74aff7484d5"
1560 1567 integrity sha512-BhyrMj06eQkk04C97fovEDQMpLpd2IxCB4ecitaXwOKGq78Wi2tooaDOWOFGajPk8IkQOAtMppApgSVkYe1F/A==
... ... @@ -1580,11 +1587,6 @@
1580 1587 resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz#74d55d947452e2de0742bad65270433b63a8c30f"
1581 1588 integrity sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==
1582 1589  
1583   -"@types/lru-cache@^5.1.0":
1584   - version "5.1.0"
1585   - resolved "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.0.tgz#57f228f2b80c046b4a1bd5cac031f81f207f4f03"
1586   - integrity sha512-RaE0B+14ToE4l6UqdarKPnXwVDuigfFv+5j9Dze/Nqr23yyuqdNvzcZi3xB+3Agvi5R4EOgAksfv3lXX4vBt9w==
1587   -
1588 1590 "@types/mdast@^3.0.0":
1589 1591 version "3.0.3"
1590 1592 resolved "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb"
... ... @@ -1776,6 +1778,52 @@
1776 1778 "@typescript-eslint/types" "4.12.0"
1777 1779 eslint-visitor-keys "^2.0.0"
1778 1780  
  1781 +"@vitejs/plugin-legacy@^1.1.0":
  1782 + version "1.1.0"
  1783 + resolved "https://registry.npmjs.org/@vitejs/plugin-legacy/-/plugin-legacy-1.1.0.tgz#a1855a78ce5c8c19ef1cd3246309606977497f0e"
  1784 + integrity sha512-vYSKs5QZAJiDljrfEKSh9Rr6db2xvSMyM1dPnB1XVGa2mud45/s6Z19jCuEPTOtbyiN9JNsVfzUBVoI6SPoRCA==
  1785 + dependencies:
  1786 + "@babel/standalone" "^7.12.12"
  1787 + core-js "^3.8.2"
  1788 + regenerator-runtime "^0.13.7"
  1789 + systemjs "^6.8.3"
  1790 +
  1791 +"@vitejs/plugin-vue-jsx@^1.0.1":
  1792 + version "1.0.1"
  1793 + resolved "https://registry.npmjs.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-1.0.1.tgz#97d84f6bd4737c1afa88a4afdec529ddb8bed2ab"
  1794 + integrity sha512-MXKGCgfICswM3HcNEwzjnMGrcIy2MWpLlbIt90CIgJ+/zI1RBODxfHBkGRtPvUzbIjhW9B1KcrivibLVfM4dTg==
  1795 + dependencies:
  1796 + "@babel/core" "^7.12.10"
  1797 + "@babel/plugin-syntax-import-meta" "^7.10.4"
  1798 + "@babel/plugin-transform-typescript" "^7.12.1"
  1799 + "@vue/babel-plugin-jsx" "^1.0.0"
  1800 + hash-sum "^2.0.0"
  1801 +
  1802 +"@vitejs/plugin-vue@^1.0.4":
  1803 + version "1.0.4"
  1804 + resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-1.0.4.tgz#124b06b185a8b536210bdb00948c17e52ab589fe"
  1805 + integrity sha512-VaXpbmriAOeCdstHKjw3L8/8GZ33fcshBbWlN6IocKQW+GOGV4Xm8Vp0Oa/VpPVCSTHMcqvKyQ4gGEBpDHdWHg==
  1806 +
  1807 +"@vue/babel-helper-vue-transform-on@^1.0.0":
  1808 + version "1.0.0"
  1809 + resolved "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.0.tgz#8cbec6bbcae53626ad70139061be5e73403c9a62"
  1810 + integrity sha512-svFuKPoXP92TJ76ztENOglOsLjcMGUXkdeQhYDxl6KBnZCpqFjqx6RodUPWFg1bj4zsUVsfoIh1RibLO86fUUQ==
  1811 +
  1812 +"@vue/babel-plugin-jsx@^1.0.0":
  1813 + version "1.0.0"
  1814 + resolved "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.0.0.tgz#1dabe1cf8588d088226fd5666ff1987f2f11982d"
  1815 + integrity sha512-WoqRUaslY52PKJFcd7PZExAxhvm6xU5u47l2xFi+UbywzTh/vU2WwgGg3rA2N1HqYJbWFT9hDGFcFqOT6hcBHw==
  1816 + dependencies:
  1817 + "@babel/helper-module-imports" "^7.0.0"
  1818 + "@babel/plugin-syntax-jsx" "^7.0.0"
  1819 + "@babel/template" "^7.0.0"
  1820 + "@babel/traverse" "^7.0.0"
  1821 + "@babel/types" "^7.0.0"
  1822 + "@vue/babel-helper-vue-transform-on" "^1.0.0"
  1823 + camelcase "^6.0.0"
  1824 + html-tags "^3.1.0"
  1825 + svg-tags "^1.0.0"
  1826 +
1779 1827 "@vue/compiler-core@3.0.4", "@vue/compiler-core@^3.0.0", "@vue/compiler-core@^3.0.1", "@vue/compiler-core@^3.0.2":
1780 1828 version "3.0.4"
1781 1829 resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.4.tgz#0122aca6eada4cb28b39ed930af917444755e330"
... ... @@ -1798,7 +1846,7 @@
1798 1846 estree-walker "^2.0.1"
1799 1847 source-map "^0.6.1"
1800 1848  
1801   -"@vue/compiler-dom@3.0.4", "@vue/compiler-dom@^3.0.3":
  1849 +"@vue/compiler-dom@3.0.4":
1802 1850 version "3.0.4"
1803 1851 resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.4.tgz#834fd4b15c5698cf9f4505c2bfbccca058a843eb"
1804 1852 integrity sha512-FOxbHBIkkGjYQeTz1DlXQjS1Ms8EPXQWsdTdTPeohoS0KzCz6RiOjiAG+jLtMi6Nr5GX2h0TlCvcnI8mcsicFQ==
... ... @@ -1814,28 +1862,6 @@
1814 1862 "@vue/compiler-core" "3.0.5"
1815 1863 "@vue/shared" "3.0.5"
1816 1864  
1817   -"@vue/compiler-sfc@^3.0.3":
1818   - version "3.0.4"
1819   - resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.0.4.tgz#2119fe1e68d2c268aafa20461c82c139a9adf8e0"
1820   - integrity sha512-brDn6HTuK6R3oBCjtMPPsIpyJEZFinlnxjtBXww/goFJOJBAU9CrsdegwyZItNnixCFUIg4CLv4Nj1Eg/eKlfg==
1821   - dependencies:
1822   - "@babel/parser" "^7.12.0"
1823   - "@babel/types" "^7.12.0"
1824   - "@vue/compiler-core" "3.0.4"
1825   - "@vue/compiler-dom" "3.0.4"
1826   - "@vue/compiler-ssr" "3.0.4"
1827   - "@vue/shared" "3.0.4"
1828   - consolidate "^0.16.0"
1829   - estree-walker "^2.0.1"
1830   - hash-sum "^2.0.0"
1831   - lru-cache "^5.1.1"
1832   - magic-string "^0.25.7"
1833   - merge-source-map "^1.1.0"
1834   - postcss "^7.0.32"
1835   - postcss-modules "^3.2.2"
1836   - postcss-selector-parser "^6.0.4"
1837   - source-map "^0.6.1"
1838   -
1839 1865 "@vue/compiler-sfc@^3.0.5":
1840 1866 version "3.0.5"
1841 1867 resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.0.5.tgz#3ae08e60244a72faf9598361874fb7bdb5b1d37c"
... ... @@ -1858,14 +1884,6 @@
1858 1884 postcss-selector-parser "^6.0.4"
1859 1885 source-map "^0.6.1"
1860 1886  
1861   -"@vue/compiler-ssr@3.0.4":
1862   - version "3.0.4"
1863   - resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.0.4.tgz#ccbd1f55734d51d1402fad825ac102002a7a07c7"
1864   - integrity sha512-4aYWQEL4+LS4+D44K9Z7xMOWMEjBsz4Li9nMcj2rxRQ35ewK6uFPodvs6ORP60iBDSkwUFZoldFlNemQlu1BFw==
1865   - dependencies:
1866   - "@vue/compiler-dom" "3.0.4"
1867   - "@vue/shared" "3.0.4"
1868   -
1869 1887 "@vue/compiler-ssr@3.0.5":
1870 1888 version "3.0.5"
1871 1889 resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.0.5.tgz#7661ad891a0be948726c7f7ad1e425253c587b83"
... ... @@ -1874,10 +1892,10 @@
1874 1892 "@vue/compiler-dom" "3.0.5"
1875 1893 "@vue/shared" "3.0.5"
1876 1894  
1877   -"@vue/devtools-api@^6.0.0-beta.2":
1878   - version "6.0.0-beta.2"
1879   - resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.0.0-beta.2.tgz#833ad3335f97ae9439e26247d97f9baf7b5a6116"
1880   - integrity sha512-5k0A8ffjNNukOiceImBdx1e3W5Jbpwqsu7xYHiZVu9mn4rYxFztIt+Q25mOHm7nwvDnMHrE7u5KtY2zmd+81GA==
  1895 +"@vue/devtools-api@^6.0.0-beta.3":
  1896 + version "6.0.0-beta.3"
  1897 + resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.0.0-beta.3.tgz#5a66cc8beed688fe18c272ee7a8bd8ed7e35a54c"
  1898 + integrity sha512-iJQhVyWzWIJxYIMjbZpljZQfU4gL2IMD5YQm3HXO8tQRU7RqqnD3f1WHn+vrqvrSvM8Qw2BeNugwdBBmbK8Oxg==
1881 1899  
1882 1900 "@vue/reactivity@3.0.4":
1883 1901 version "3.0.4"
... ... @@ -2031,18 +2049,18 @@
2031 2049 vscode-languageserver-textdocument "^1.0.1"
2032 2050 vscode-uri "^2.1.2"
2033 2051  
2034   -"@vueuse/core@^4.0.2":
2035   - version "4.0.2"
2036   - resolved "https://registry.npmjs.org/@vueuse/core/-/core-4.0.2.tgz#286b2115fccec197194df9da5fda23cc2e5e0eae"
2037   - integrity sha512-ZN0g/gfiQRLfzl1VBRU6EuNvk/AR5Q1gnnxNCoYK66NN2ufID9NTK0RCiWia/e04whS6Z+l8ESw8Ec4FIGJ7WQ==
  2052 +"@vueuse/core@^4.0.5":
  2053 + version "4.0.5"
  2054 + resolved "https://registry.npmjs.org/@vueuse/core/-/core-4.0.5.tgz#97bd5f24a28401598436629312eafe66ed0e1bed"
  2055 + integrity sha512-Kfy5ys9o1XIY6NwX9O7iad4/FbHrcDuP/LtsgIFvl7XDQtbYArHu5ZSOQyBwqE32TdAqnFi5sYd4vjSvVvpD4A==
2038 2056 dependencies:
2039   - "@vueuse/shared" "4.0.2"
  2057 + "@vueuse/shared" "4.0.5"
2040 2058 vue-demi latest
2041 2059  
2042   -"@vueuse/shared@4.0.2":
2043   - version "4.0.2"
2044   - resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-4.0.2.tgz#35b286a19d73a350eff5d3e5e9c6ce8bad108050"
2045   - integrity sha512-SxfyeFDjOk3ymtZgNZdTbUO9hCV1jQFzi+PI0b12zvkO+7hc2LdXInlZI7U42RBwKzHd1LVos1e1VQf+BPZbOA==
  2060 +"@vueuse/shared@4.0.5":
  2061 + version "4.0.5"
  2062 + resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-4.0.5.tgz#0610210da9a01843cdb3fa88c177b29b62738efc"
  2063 + integrity sha512-PUSlwoSaerwHA1PPjBGnerXPIvAcVGoxcpjNdbHW44lPqoWskWl2CxG+l2Iz+Zf2iapCatp3ovXnMd16RRvQ1Q==
2046 2064 dependencies:
2047 2065 vue-demi latest
2048 2066  
... ... @@ -2054,14 +2072,6 @@ JSONStream@^1.0.4:
2054 2072 jsonparse "^1.2.0"
2055 2073 through ">=2.2.7 <3"
2056 2074  
2057   -accepts@^1.3.5:
2058   - version "1.3.7"
2059   - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
2060   - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
2061   - dependencies:
2062   - mime-types "~2.1.24"
2063   - negotiator "0.6.2"
2064   -
2065 2075 acorn-jsx@^5.2.0, acorn-jsx@^5.3.1:
2066 2076 version "5.3.1"
2067 2077 resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b"
... ... @@ -2077,14 +2087,6 @@ add-stream@^1.0.0:
2077 2087 resolved "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa"
2078 2088 integrity sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=
2079 2089  
2080   -adler-32@~1.2.0:
2081   - version "1.2.0"
2082   - resolved "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz#6a3e6bf0a63900ba15652808cb15c6813d1a5f25"
2083   - integrity sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=
2084   - dependencies:
2085   - exit-on-epipe "~1.0.1"
2086   - printj "~1.1.0"
2087   -
2088 2090 aggregate-error@^3.0.0:
2089 2091 version "3.1.0"
2090 2092 resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
... ... @@ -2172,7 +2174,7 @@ ant-design-vue@^2.0.0-rc.8:
2172 2174 vue-types "^3.0.0"
2173 2175 warning "^4.0.0"
2174 2176  
2175   -any-promise@^1.0.0, any-promise@^1.1.0:
  2177 +any-promise@^1.0.0:
2176 2178 version "1.3.0"
2177 2179 resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
2178 2180 integrity sha1-q8av7tzqUugJzcA3au0845Y10X8=
... ... @@ -2269,6 +2271,11 @@ async-validator@^3.3.0, async-validator@^3.4.0:
2269 2271 resolved "https://registry.npmjs.org/async-validator/-/async-validator-3.5.1.tgz#cd62b9688b2465f48420e27adb47760ab1b5559f"
2270 2272 integrity sha512-DDmKA7sdSAJtTVeNZHrnr2yojfFaoeW8MfQN8CeuXg8DDQHTqKk9Fdv38dSvnesHoO8MUwMI2HphOeSyIF+wmQ==
2271 2273  
  2274 +async@0.9.x:
  2275 + version "0.9.2"
  2276 + resolved "https://registry.npmjs.org/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
  2277 + integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=
  2278 +
2272 2279 async@^2.6.2:
2273 2280 version "2.6.3"
2274 2281 resolved "https://registry.npmjs.org/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
... ... @@ -2286,6 +2293,18 @@ atob@^2.1.2:
2286 2293 resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
2287 2294 integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
2288 2295  
  2296 +autoprefixer@^10.2.1:
  2297 + version "10.2.1"
  2298 + resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.1.tgz#ce96870df6ddd9ba4c9bbba56c54b9ef4b00a962"
  2299 + integrity sha512-dwP0UjyYvROUvtU+boBx8ff5pPWami1NGTrJs9YUsS/oZVbRAcdNHOOuXSA1fc46tgKqe072cVaKD69rvCc3QQ==
  2300 + dependencies:
  2301 + browserslist "^4.16.1"
  2302 + caniuse-lite "^1.0.30001173"
  2303 + colorette "^1.2.1"
  2304 + fraction.js "^4.0.13"
  2305 + normalize-range "^0.1.2"
  2306 + postcss-value-parser "^4.1.0"
  2307 +
2289 2308 autoprefixer@^9.8.6:
2290 2309 version "9.8.6"
2291 2310 resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f"
... ... @@ -2299,13 +2318,6 @@ autoprefixer@^9.8.6:
2299 2318 postcss "^7.0.32"
2300 2319 postcss-value-parser "^4.1.0"
2301 2320  
2302   -axios@^0.21.0:
2303   - version "0.21.0"
2304   - resolved "https://registry.npmjs.org/axios/-/axios-0.21.0.tgz#26df088803a2350dff2c27f96fef99fe49442aca"
2305   - integrity sha512-fmkJBknJKoZwem3/IKSSLpkdNXZeBu5Q7GA/aRsr2btgrptmSCxi2oFjZHqGdK9DoTil9PIHlPIZw2EcRJXRvw==
2306   - dependencies:
2307   - follow-redirects "^1.10.0"
2308   -
2309 2321 axios@^0.21.1:
2310 2322 version "0.21.1"
2311 2323 resolved "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8"
... ... @@ -2363,6 +2375,22 @@ bluebird@^3.7.2:
2363 2375 resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
2364 2376 integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
2365 2377  
  2378 +body-parser@^1.19.0:
  2379 + version "1.19.0"
  2380 + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
  2381 + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==
  2382 + dependencies:
  2383 + bytes "3.1.0"
  2384 + content-type "~1.0.4"
  2385 + debug "2.6.9"
  2386 + depd "~1.1.2"
  2387 + http-errors "1.7.2"
  2388 + iconv-lite "0.4.24"
  2389 + on-finished "~2.3.0"
  2390 + qs "6.7.0"
  2391 + raw-body "2.4.0"
  2392 + type-is "~1.6.17"
  2393 +
2366 2394 brace-expansion@^1.1.7:
2367 2395 version "1.1.11"
2368 2396 resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
... ... @@ -2394,13 +2422,6 @@ braces@^3.0.1, braces@~3.0.2:
2394 2422 dependencies:
2395 2423 fill-range "^7.0.1"
2396 2424  
2397   -brotli-size@^4.0.0:
2398   - version "4.0.0"
2399   - resolved "https://registry.npmjs.org/brotli-size/-/brotli-size-4.0.0.tgz#a05ee3faad3c0e700a2f2da826ba6b4d76e69e5e"
2400   - integrity sha512-uA9fOtlTRC0iqKfzff1W34DXUA3GyVqbUaeo3Rw3d4gd1eavKVCETXrn3NzO74W+UVkG3UHu8WxUi+XvKI/huA==
2401   - dependencies:
2402   - duplexer "0.1.1"
2403   -
2404 2425 browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.15.0:
2405 2426 version "4.15.0"
2406 2427 resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.15.0.tgz#3d48bbca6a3f378e86102ffd017d9a03f122bdb0"
... ... @@ -2412,6 +2433,17 @@ browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.15.0:
2412 2433 escalade "^3.1.1"
2413 2434 node-releases "^1.1.67"
2414 2435  
  2436 +browserslist@^4.16.1:
  2437 + version "4.16.1"
  2438 + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.16.1.tgz#bf757a2da376b3447b800a16f0f1c96358138766"
  2439 + integrity sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==
  2440 + dependencies:
  2441 + caniuse-lite "^1.0.30001173"
  2442 + colorette "^1.2.1"
  2443 + electron-to-chromium "^1.3.634"
  2444 + escalade "^3.1.1"
  2445 + node-releases "^1.1.69"
  2446 +
2415 2447 buffer-alloc-unsafe@^1.1.0:
2416 2448 version "1.1.0"
2417 2449 resolved "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0"
... ... @@ -2443,11 +2475,6 @@ buffer@^5.4.3:
2443 2475 base64-js "^1.3.1"
2444 2476 ieee754 "^1.1.13"
2445 2477  
2446   -builtin-modules@^1.1.1:
2447   - version "1.1.1"
2448   - resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
2449   - integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=
2450   -
2451 2478 builtin-modules@^3.1.0:
2452 2479 version "3.1.0"
2453 2480 resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484"
... ... @@ -2458,11 +2485,6 @@ bytes@3.1.0:
2458 2485 resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
2459 2486 integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
2460 2487  
2461   -cac@^6.6.1:
2462   - version "6.6.1"
2463   - resolved "https://registry.npmjs.org/cac/-/cac-6.6.1.tgz#3dde3f6943f45d42a56729ea3573c08b3e7b6a6d"
2464   - integrity sha512-uhki4T3Ax68hw7Dufi0bATVAF8ayBSwOKUEJHjObPrUN4tlQ8Lf7oljpTje/mArLxYN0D743c2zJt4C1bVTCqg==
2465   -
2466 2488 cache-base@^1.0.1:
2467 2489 version "1.0.1"
2468 2490 resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
... ... @@ -2478,14 +2500,6 @@ cache-base@^1.0.1:
2478 2500 union-value "^1.0.0"
2479 2501 unset-value "^1.0.0"
2480 2502  
2481   -cache-content-type@^1.0.0:
2482   - version "1.0.1"
2483   - resolved "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c"
2484   - integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==
2485   - dependencies:
2486   - mime-types "^2.1.18"
2487   - ylru "^1.2.0"
2488   -
2489 2503 cachedir@2.2.0:
2490 2504 version "2.2.0"
2491 2505 resolved "https://registry.npmjs.org/cachedir/-/cachedir-2.2.0.tgz#19afa4305e05d79e417566882e0c8f960f62ff0e"
... ... @@ -2553,19 +2567,20 @@ camelcase@^5.0.0, camelcase@^5.3.1:
2553 2567 resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
2554 2568 integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
2555 2569  
  2570 +camelcase@^6.0.0:
  2571 + version "6.2.0"
  2572 + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809"
  2573 + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==
  2574 +
2556 2575 caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001164:
2557 2576 version "1.0.30001165"
2558 2577 resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001165.tgz#32955490d2f60290bb186bb754f2981917fa744f"
2559 2578 integrity sha512-8cEsSMwXfx7lWSUMA2s08z9dIgsnR5NAqjXP23stdsU3AUWkCr/rr4s4OFtHXn5XXr6+7kam3QFVoYyXNPdJPA==
2560 2579  
2561   -cfb@^1.1.4:
2562   - version "1.2.0"
2563   - resolved "https://registry.npmjs.org/cfb/-/cfb-1.2.0.tgz#6a4d0872b525ed60349e1ef51fb4b0bf73eca9a8"
2564   - integrity sha512-sXMvHsKCICVR3Naq+J556K+ExBo9n50iKl6LGarlnvuA2035uMlGA/qVrc0wQtow5P1vJEw9UyrKLCbtIKz+TQ==
2565   - dependencies:
2566   - adler-32 "~1.2.0"
2567   - crc-32 "~1.2.0"
2568   - printj "~1.1.2"
  2580 +caniuse-lite@^1.0.30001173:
  2581 + version "1.0.30001173"
  2582 + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001173.tgz#3c47bbe3cd6d7a9eda7f50ac016d158005569f56"
  2583 + integrity sha512-R3aqmjrICdGCTAnSXtNyvWYMK3YtV5jwudbq0T7nN9k4kmE4CBuwPqyJ+KBzepSTh0huivV2gLbSMEzTTmfeYw==
2569 2584  
2570 2585 chalk@2.3.0:
2571 2586 version "2.3.0"
... ... @@ -2613,7 +2628,7 @@ chardet@^0.7.0:
2613 2628 resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
2614 2629 integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
2615 2630  
2616   -chokidar@^3.4.2, chokidar@^3.4.3:
  2631 +chokidar@^3.4.3:
2617 2632 version "3.4.3"
2618 2633 resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b"
2619 2634 integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==
... ... @@ -2681,11 +2696,6 @@ cli-highlight@^2.1.4:
2681 2696 parse5-htmlparser2-tree-adapter "^6.0.0"
2682 2697 yargs "^15.0.0"
2683 2698  
2684   -cli-spinners@^2.4.0:
2685   - version "2.5.0"
2686   - resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz#12763e47251bf951cb75c201dfa58ff1bcb2d047"
2687   - integrity sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==
2688   -
2689 2699 cli-truncate@^2.1.0:
2690 2700 version "2.1.0"
2691 2701 resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7"
... ... @@ -2733,34 +2743,6 @@ clone-regexp@^2.1.0:
2733 2743 dependencies:
2734 2744 is-regexp "^2.0.0"
2735 2745  
2736   -clone@^1.0.2:
2737   - version "1.0.4"
2738   - resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
2739   - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
2740   -
2741   -co-body@^6.0.0:
2742   - version "6.1.0"
2743   - resolved "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz#d87a8efc3564f9bfe3aced8ef5cd04c7a8766547"
2744   - integrity sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==
2745   - dependencies:
2746   - inflation "^2.0.0"
2747   - qs "^6.5.2"
2748   - raw-body "^2.3.3"
2749   - type-is "^1.6.16"
2750   -
2751   -co@^4.6.0:
2752   - version "4.6.0"
2753   - resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
2754   - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
2755   -
2756   -codepage@~1.14.0:
2757   - version "1.14.0"
2758   - resolved "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz#8cbe25481323559d7d307571b0fff91e7a1d2f99"
2759   - integrity sha1-jL4lSBMjVZ19MHVxsP/5HnodL5k=
2760   - dependencies:
2761   - commander "~2.14.1"
2762   - exit-on-epipe "~1.0.1"
2763   -
2764 2746 collection-visit@^1.0.0:
2765 2747 version "1.0.0"
2766 2748 resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
... ... @@ -2818,16 +2800,6 @@ commander@^6.1.0:
2818 2800 resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
2819 2801 integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
2820 2802  
2821   -commander@~2.14.1:
2822   - version "2.14.1"
2823   - resolved "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa"
2824   - integrity sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==
2825   -
2826   -commander@~2.17.1:
2827   - version "2.17.1"
2828   - resolved "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
2829   - integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==
2830   -
2831 2803 commitizen@^4.0.3, commitizen@^4.2.2:
2832 2804 version "4.2.2"
2833 2805 resolved "https://registry.npmjs.org/commitizen/-/commitizen-4.2.2.tgz#1a93dd07208521ea1ebbf832593542dac714cc79"
... ... @@ -2853,11 +2825,6 @@ common-tags@^1.8.0:
2853 2825 resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937"
2854 2826 integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==
2855 2827  
2856   -commondir@^1.0.1:
2857   - version "1.0.1"
2858   - resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
2859   - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
2860   -
2861 2828 compare-func@^2.0.0:
2862 2829 version "2.0.0"
2863 2830 resolved "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3"
... ... @@ -2886,6 +2853,16 @@ concat-map@0.0.1:
2886 2853 resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
2887 2854 integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
2888 2855  
  2856 +connect@^3.7.0:
  2857 + version "3.7.0"
  2858 + resolved "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8"
  2859 + integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==
  2860 + dependencies:
  2861 + debug "2.6.9"
  2862 + finalhandler "1.1.2"
  2863 + parseurl "~1.3.3"
  2864 + utils-merge "1.0.1"
  2865 +
2889 2866 consolidate@^0.16.0:
2890 2867 version "0.16.0"
2891 2868 resolved "https://registry.npmjs.org/consolidate/-/consolidate-0.16.0.tgz#a11864768930f2f19431660a65906668f5fbdc16"
... ... @@ -2893,14 +2870,7 @@ consolidate@^0.16.0:
2893 2870 dependencies:
2894 2871 bluebird "^3.7.2"
2895 2872  
2896   -content-disposition@~0.5.2:
2897   - version "0.5.3"
2898   - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
2899   - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==
2900   - dependencies:
2901   - safe-buffer "5.1.2"
2902   -
2903   -content-type@^1.0.4:
  2873 +content-type@~1.0.4:
2904 2874 version "1.0.4"
2905 2875 resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
2906 2876 integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
... ... @@ -3080,14 +3050,6 @@ convert-source-map@^1.7.0:
3080 3050 dependencies:
3081 3051 safe-buffer "~5.1.1"
3082 3052  
3083   -cookies@~0.8.0:
3084   - version "0.8.0"
3085   - resolved "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90"
3086   - integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==
3087   - dependencies:
3088   - depd "~2.0.0"
3089   - keygrip "~1.1.0"
3090   -
3091 3053 copy-anything@^2.0.1:
3092 3054 version "2.0.1"
3093 3055 resolved "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.1.tgz#2afbce6da684bdfcbec93752fa762819cb480d9a"
... ... @@ -3100,11 +3062,6 @@ copy-descriptor@^0.1.0:
3100 3062 resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
3101 3063 integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
3102 3064  
3103   -copy-to@^2.0.1:
3104   - version "2.0.1"
3105   - resolved "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz#2680fbb8068a48d08656b6098092bdafc906f4a5"
3106   - integrity sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU=
3107   -
3108 3065 core-js-compat@^3.8.0:
3109 3066 version "3.8.1"
3110 3067 resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.1.tgz#8d1ddd341d660ba6194cbe0ce60f4c794c87a36e"
... ... @@ -3118,6 +3075,11 @@ core-js@^3.6.1, core-js@^3.6.5:
3118 3075 resolved "https://registry.npmjs.org/core-js/-/core-js-3.8.1.tgz#f51523668ac8a294d1285c3b9db44025fda66d47"
3119 3076 integrity sha512-9Id2xHY1W7m8hCl8NkhQn5CufmF/WuR30BTRewvCXc1aZd3kMECwNZ69ndLbekKfakw9Rf2Xyc+QR6E7Gg+obg==
3120 3077  
  3078 +core-js@^3.8.2:
  3079 + version "3.8.2"
  3080 + resolved "https://registry.npmjs.org/core-js/-/core-js-3.8.2.tgz#0a1fd6709246da9ca8eff5bb0cbd15fba9ac7044"
  3081 + integrity sha512-FfApuSRgrR6G5s58casCBd9M2k+4ikuu4wbW6pJyYU7bd9zvFc9qf7vr5xmrZOhT9nn+8uwlH1oRR9jTnFoA3A==
  3082 +
3121 3083 core-util-is@~1.0.0:
3122 3084 version "1.0.2"
3123 3085 resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
... ... @@ -3134,14 +3096,6 @@ cosmiconfig@^7.0.0:
3134 3096 path-type "^4.0.0"
3135 3097 yaml "^1.10.0"
3136 3098  
3137   -crc-32@~1.2.0:
3138   - version "1.2.0"
3139   - resolved "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz#cb2db6e29b88508e32d9dd0ec1693e7b41a18208"
3140   - integrity sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==
3141   - dependencies:
3142   - exit-on-epipe "~1.0.1"
3143   - printj "~1.1.0"
3144   -
3145 3099 create-require@^1.1.0:
3146 3100 version "1.1.1"
3147 3101 resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
... ... @@ -3221,17 +3175,17 @@ dateformat@^3.0.0:
3221 3175 resolved "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae"
3222 3176 integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==
3223 3177  
3224   -dayjs@^1.9.6:
3225   - version "1.9.7"
3226   - resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.9.7.tgz#4b260bb17dceed2d5f29038dfee03c65a6786fc0"
3227   - integrity sha512-IC877KBdMhBrCfBfJXHQlo0G8keZ0Opy7YIIq5QKtUbCuHMzim8S4PyiVK4YmihI3iOF9lhfUBW4AQWHTR5WHA==
  3178 +dayjs@^1.10.1:
  3179 + version "1.10.2"
  3180 + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.10.2.tgz#8f3a424ceb944a8193506804b0045a773d2d0672"
  3181 + integrity sha512-h/YtykNNTR8Qgtd1Fxl5J1/SFP1b7SOk/M1P+Re+bCdFMV0IMkuKNgHPN7rlvvuhfw24w0LX78iYKt4YmePJNQ==
3228 3182  
3229 3183 de-indent@^1.0.2:
3230 3184 version "1.0.2"
3231 3185 resolved "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
3232 3186 integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=
3233 3187  
3234   -debug@^2.2.0, debug@^2.3.3:
  3188 +debug@2.6.9, debug@^2.2.0, debug@^2.3.3:
3235 3189 version "2.6.9"
3236 3190 resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
3237 3191 integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
... ... @@ -3245,7 +3199,7 @@ debug@^3.1.0, debug@^3.1.1:
3245 3199 dependencies:
3246 3200 ms "^2.1.1"
3247 3201  
3248   -debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.0, debug@^4.3.1:
  3202 +debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1:
3249 3203 version "4.3.1"
3250 3204 resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
3251 3205 integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
... ... @@ -3259,13 +3213,6 @@ debug@^4.3.2:
3259 3213 dependencies:
3260 3214 ms "2.1.2"
3261 3215  
3262   -debug@~3.1.0:
3263   - version "3.1.0"
3264   - resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
3265   - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
3266   - dependencies:
3267   - ms "2.0.0"
3268   -
3269 3216 decamelize-keys@^1.0.0, decamelize-keys@^1.1.0:
3270 3217 version "1.1.0"
3271 3218 resolved "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9"
... ... @@ -3289,11 +3236,6 @@ dedent@0.7.0, dedent@^0.7.0:
3289 3236 resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
3290 3237 integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=
3291 3238  
3292   -deep-equal@~1.0.1:
3293   - version "1.0.1"
3294   - resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
3295   - integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=
3296   -
3297 3239 deep-is@^0.1.3:
3298 3240 version "0.1.3"
3299 3241 resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
... ... @@ -3304,13 +3246,6 @@ deepmerge@^4.2.2:
3304 3246 resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
3305 3247 integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
3306 3248  
3307   -defaults@^1.0.3:
3308   - version "1.0.3"
3309   - resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d"
3310   - integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=
3311   - dependencies:
3312   - clone "^1.0.2"
3313   -
3314 3249 define-properties@^1.1.3:
3315 3250 version "1.1.3"
3316 3251 resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
... ... @@ -3340,26 +3275,11 @@ define-property@^2.0.2:
3340 3275 is-descriptor "^1.0.2"
3341 3276 isobject "^3.0.1"
3342 3277  
3343   -delegates@^1.0.0:
3344   - version "1.0.0"
3345   - resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
3346   - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
3347   -
3348   -depd@^1.1.2, depd@~1.1.2:
  3278 +depd@~1.1.2:
3349 3279 version "1.1.2"
3350 3280 resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
3351 3281 integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
3352 3282  
3353   -depd@~2.0.0:
3354   - version "2.0.0"
3355   - resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
3356   - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
3357   -
3358   -destroy@^1.0.4:
3359   - version "1.0.4"
3360   - resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
3361   - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
3362   -
3363 3283 detect-file@^1.0.0:
3364 3284 version "1.0.0"
3365 3285 resolved "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7"
... ... @@ -3464,21 +3384,11 @@ dot-prop@^6.0.1:
3464 3384 dependencies:
3465 3385 is-obj "^2.0.0"
3466 3386  
3467   -dotenv-expand@^5.1.0:
3468   - version "5.1.0"
3469   - resolved "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0"
3470   - integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==
3471   -
3472 3387 dotenv@^8.2.0:
3473 3388 version "8.2.0"
3474 3389 resolved "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a"
3475 3390 integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==
3476 3391  
3477   -duplexer@0.1.1:
3478   - version "0.1.1"
3479   - resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
3480   - integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=
3481   -
3482 3392 echarts@^4.9.0:
3483 3393 version "4.9.0"
3484 3394 resolved "https://registry.npmjs.org/echarts/-/echarts-4.9.0.tgz#a9b9baa03f03a2a731e6340c55befb57a9e1347d"
... ... @@ -3496,11 +3406,23 @@ ejs@^2.6.1:
3496 3406 resolved "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba"
3497 3407 integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
3498 3408  
  3409 +ejs@^3.1.5:
  3410 + version "3.1.5"
  3411 + resolved "https://registry.npmjs.org/ejs/-/ejs-3.1.5.tgz#aed723844dc20acb4b170cd9ab1017e476a0d93b"
  3412 + integrity sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w==
  3413 + dependencies:
  3414 + jake "^10.6.1"
  3415 +
3499 3416 electron-to-chromium@^1.3.612:
3500 3417 version "1.3.621"
3501 3418 resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.621.tgz#0bbe2100ef0b28f88d0b1101fbdf433312f69be0"
3502 3419 integrity sha512-FeIuBzArONbAmKmZIsZIFGu/Gc9AVGlVeVbhCq+G2YIl6QkT0TDn2HKN/FMf1btXEB9kEmIuQf3/lBTVAbmFOg==
3503 3420  
  3421 +electron-to-chromium@^1.3.634:
  3422 + version "1.3.634"
  3423 + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.634.tgz#82ea400f520f739c4f6ff00c1f7524827a917d25"
  3424 + integrity sha512-QPrWNYeE/A0xRvl/QP3E0nkaEvYUvH3gM04ZWYtIa6QlSpEetRlRI1xvQ7hiMIySHHEV+mwDSX8Kj4YZY6ZQAw==
  3425 +
3504 3426 emoji-regex@^7.0.1:
3505 3427 version "7.0.3"
3506 3428 resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
... ... @@ -3516,7 +3438,7 @@ emojis-list@^3.0.0:
3516 3438 resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
3517 3439 integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
3518 3440  
3519   -encodeurl@^1.0.2:
  3441 +encodeurl@~1.0.2:
3520 3442 version "1.0.2"
3521 3443 resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
3522 3444 integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
... ... @@ -3559,11 +3481,6 @@ error-ex@^1.2.0, error-ex@^1.3.1:
3559 3481 dependencies:
3560 3482 is-arrayish "^0.2.1"
3561 3483  
3562   -es-module-lexer@^0.3.25:
3563   - version "0.3.26"
3564   - resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.3.26.tgz#7b507044e97d5b03b01d4392c74ffeb9c177a83b"
3565   - integrity sha512-Va0Q/xqtrss45hWzP8CZJwzGSZJjDM5/MJRE3IXXnUCcVLElR9BRaE9F62BopysASyc4nM3uwhSW7FFB9nlWAA==
3566   -
3567 3484 esbuild-register@^1.2.1:
3568 3485 version "1.2.1"
3569 3486 resolved "https://registry.npmjs.org/esbuild-register/-/esbuild-register-1.2.1.tgz#a430decedd7cb83ecf05141c7a7050b990724d41"
... ... @@ -3574,10 +3491,10 @@ esbuild-register@^1.2.1:
3574 3491 source-map-support "^0.5.19"
3575 3492 strip-json-comments "^3.1.1"
3576 3493  
3577   -esbuild@^0.8.12, esbuild@^0.8.18:
3578   - version "0.8.21"
3579   - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.8.21.tgz#c431f8af457795c2fecb1b2873cb8eaef4e5b53c"
3580   - integrity sha512-vRRx5MZmiekw2R7jK5BppvBUFCJA0Zkl0wYxrDmyUvMPBcQC/xJvxJUM4R+Hgjgb3gp5P1W655AsuoqDeQQDVw==
  3494 +esbuild@^0.8.26:
  3495 + version "0.8.31"
  3496 + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.8.31.tgz#c21e7adb3ad283c951a53de7ad64a5ae2df2ed34"
  3497 + integrity sha512-7EIU0VdUxltwivjVezX3HgeNzeIVR1snkrAo57WdUnuBMykdzin5rTrxwCDM6xQqj0RL/HjOEm3wFr2ijHKeaA==
3581 3498  
3582 3499 esbuild@^0.8.29:
3583 3500 version "0.8.30"
... ... @@ -3589,7 +3506,7 @@ escalade@^3.1.1:
3589 3506 resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
3590 3507 integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
3591 3508  
3592   -escape-html@^1.0.3:
  3509 +escape-html@~1.0.3:
3593 3510 version "1.0.3"
3594 3511 resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
3595 3512 integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
... ... @@ -3744,11 +3661,6 @@ estraverse@^5.1.0, estraverse@^5.2.0:
3744 3661 resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
3745 3662 integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
3746 3663  
3747   -estree-walker@^0.6.1:
3748   - version "0.6.1"
3749   - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362"
3750   - integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==
3751   -
3752 3664 estree-walker@^1.0.1:
3753 3665 version "1.0.1"
3754 3666 resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700"
... ... @@ -3764,17 +3676,7 @@ esutils@^2.0.2:
3764 3676 resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
3765 3677 integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
3766 3678  
3767   -etag@^1.8.1:
3768   - version "1.8.1"
3769   - resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
3770   - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
3771   -
3772   -eventemitter3@^4.0.0:
3773   - version "4.0.7"
3774   - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
3775   - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
3776   -
3777   -execa@^4.0.3, execa@^4.1.0:
  3679 +execa@^4.1.0:
3778 3680 version "4.1.0"
3779 3681 resolved "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a"
3780 3682 integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==
... ... @@ -3796,11 +3698,6 @@ execall@^2.0.0:
3796 3698 dependencies:
3797 3699 clone-regexp "^2.1.0"
3798 3700  
3799   -exit-on-epipe@~1.0.1:
3800   - version "1.0.1"
3801   - resolved "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692"
3802   - integrity sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==
3803   -
3804 3701 expand-brackets@^2.1.4:
3805 3702 version "2.1.4"
3806 3703 resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
... ... @@ -3908,11 +3805,6 @@ fastq@^1.6.0:
3908 3805 dependencies:
3909 3806 reusify "^1.0.4"
3910 3807  
3911   -fflate@^0.3.8:
3912   - version "0.3.11"
3913   - resolved "https://registry.npmjs.org/fflate/-/fflate-0.3.11.tgz#2c440d7180fdeb819e64898d8858af327b042a5d"
3914   - integrity sha512-Rr5QlUeGN1mbOHlaqcSYMKVpPbgLy0AWT/W0EHxA6NGI12yO1jpoui2zBBvU2G824ltM6Ut8BFgfHSBGfkmS0A==
3915   -
3916 3808 figures@^2.0.0:
3917 3809 version "2.0.0"
3918 3810 resolved "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
... ... @@ -3934,6 +3826,13 @@ file-entry-cache@^6.0.0:
3934 3826 dependencies:
3935 3827 flat-cache "^3.0.4"
3936 3828  
  3829 +filelist@^1.0.1:
  3830 + version "1.0.1"
  3831 + resolved "https://registry.npmjs.org/filelist/-/filelist-1.0.1.tgz#f10d1a3ae86c1694808e8f20906f43d4c9132dbb"
  3832 + integrity sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ==
  3833 + dependencies:
  3834 + minimatch "^3.0.4"
  3835 +
3937 3836 fill-range@^4.0.0:
3938 3837 version "4.0.0"
3939 3838 resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
... ... @@ -3951,6 +3850,19 @@ fill-range@^7.0.1:
3951 3850 dependencies:
3952 3851 to-regex-range "^5.0.1"
3953 3852  
  3853 +finalhandler@1.1.2:
  3854 + version "1.1.2"
  3855 + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
  3856 + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
  3857 + dependencies:
  3858 + debug "2.6.9"
  3859 + encodeurl "~1.0.2"
  3860 + escape-html "~1.0.3"
  3861 + on-finished "~2.3.0"
  3862 + parseurl "~1.3.3"
  3863 + statuses "~1.5.0"
  3864 + unpipe "~1.0.0"
  3865 +
3954 3866 find-node-modules@2.0.0:
3955 3867 version "2.0.0"
3956 3868 resolved "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.0.0.tgz#5db1fb9e668a3d451db3d618cd167cdd59e41b69"
... ... @@ -3986,7 +3898,7 @@ find-up@^3.0.0:
3986 3898 dependencies:
3987 3899 locate-path "^3.0.0"
3988 3900  
3989   -find-up@^4.0.0, find-up@^4.1.0:
  3901 +find-up@^4.1.0:
3990 3902 version "4.1.0"
3991 3903 resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
3992 3904 integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
... ... @@ -4002,12 +3914,12 @@ find-up@^5.0.0:
4002 3914 locate-path "^6.0.0"
4003 3915 path-exists "^4.0.0"
4004 3916  
4005   -find-versions@^3.2.0:
4006   - version "3.2.0"
4007   - resolved "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e"
4008   - integrity sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==
  3917 +find-versions@^4.0.0:
  3918 + version "4.0.0"
  3919 + resolved "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz#3c57e573bf97769b8cb8df16934b627915da4965"
  3920 + integrity sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==
4009 3921 dependencies:
4010   - semver-regex "^2.0.0"
  3922 + semver-regex "^3.1.2"
4011 3923  
4012 3924 findup-sync@^3.0.0:
4013 3925 version "3.0.0"
... ... @@ -4032,7 +3944,7 @@ flatted@^3.1.0:
4032 3944 resolved "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz#a5d06b4a8b01e3a63771daa5cb7a1903e2e57067"
4033 3945 integrity sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==
4034 3946  
4035   -follow-redirects@^1.0.0, follow-redirects@^1.10.0:
  3947 +follow-redirects@^1.10.0:
4036 3948 version "1.13.0"
4037 3949 resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db"
4038 3950 integrity sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==
... ... @@ -4042,10 +3954,10 @@ for-in@^1.0.2:
4042 3954 resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
4043 3955 integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
4044 3956  
4045   -frac@~1.1.2:
4046   - version "1.1.2"
4047   - resolved "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz#3d74f7f6478c88a1b5020306d747dc6313c74d0b"
4048   - integrity sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==
  3957 +fraction.js@^4.0.13:
  3958 + version "4.0.13"
  3959 + resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.0.13.tgz#3c1c315fa16b35c85fffa95725a36fa729c69dfe"
  3960 + integrity sha512-E1fz2Xs9ltlUp+qbiyx9wmt2n9dRzPsS11Jtdb8D2o+cC7wr9xkkKsVKJuBX0ST+LVS+LhLO+SbLJNtfWcJvXA==
4049 3961  
4050 3962 fragment-cache@^0.2.1:
4051 3963 version "0.2.1"
... ... @@ -4054,11 +3966,6 @@ fragment-cache@^0.2.1:
4054 3966 dependencies:
4055 3967 map-cache "^0.2.2"
4056 3968  
4057   -fresh@~0.5.2:
4058   - version "0.5.2"
4059   - resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
4060   - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
4061   -
4062 3969 fs-extra@8.1.0:
4063 3970 version "8.1.0"
4064 3971 resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
... ... @@ -4293,7 +4200,7 @@ globals@^12.1.0:
4293 4200 dependencies:
4294 4201 type-fest "^0.8.1"
4295 4202  
4296   -globby@^11.0.0, globby@^11.0.1:
  4203 +globby@^11.0.1:
4297 4204 version "11.0.1"
4298 4205 resolved "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357"
4299 4206 integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==
... ... @@ -4466,26 +4373,18 @@ htmlparser2@^3.10.0:
4466 4373 inherits "^2.0.1"
4467 4374 readable-stream "^3.1.1"
4468 4375  
4469   -http-assert@^1.3.0:
4470   - version "1.4.1"
4471   - resolved "https://registry.npmjs.org/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878"
4472   - integrity sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw==
4473   - dependencies:
4474   - deep-equal "~1.0.1"
4475   - http-errors "~1.7.2"
4476   -
4477   -http-errors@1.7.3, http-errors@~1.7.2:
4478   - version "1.7.3"
4479   - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
4480   - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
  4376 +http-errors@1.7.2:
  4377 + version "1.7.2"
  4378 + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
  4379 + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==
4481 4380 dependencies:
4482 4381 depd "~1.1.2"
4483   - inherits "2.0.4"
  4382 + inherits "2.0.3"
4484 4383 setprototypeof "1.1.1"
4485 4384 statuses ">= 1.5.0 < 2"
4486 4385 toidentifier "1.0.0"
4487 4386  
4488   -http-errors@^1.6.3, http-errors@^1.7.3:
  4387 +http-errors@^1.7.3:
4489 4388 version "1.8.0"
4490 4389 resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507"
4491 4390 integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==
... ... @@ -4496,14 +4395,6 @@ http-errors@^1.6.3, http-errors@^1.7.3:
4496 4395 statuses ">= 1.5.0 < 2"
4497 4396 toidentifier "1.0.0"
4498 4397  
4499   -http-errors@~1.4.0:
4500   - version "1.4.0"
4501   - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.4.0.tgz#6c0242dea6b3df7afda153c71089b31c6e82aabf"
4502   - integrity sha1-bAJC3qaz33r9oVPHEImzHG6Cqr8=
4503   - dependencies:
4504   - inherits "2.0.1"
4505   - statuses ">= 1.2.1 < 2"
4506   -
4507 4398 http-errors@~1.6.2:
4508 4399 version "1.6.3"
4509 4400 resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
... ... @@ -4514,32 +4405,23 @@ http-errors@~1.6.2:
4514 4405 setprototypeof "1.1.0"
4515 4406 statuses ">= 1.4.0 < 2"
4516 4407  
4517   -http-proxy@^1.16.2:
4518   - version "1.18.1"
4519   - resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549"
4520   - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==
4521   - dependencies:
4522   - eventemitter3 "^4.0.0"
4523   - follow-redirects "^1.0.0"
4524   - requires-port "^1.0.0"
4525   -
4526 4408 human-signals@^1.1.1:
4527 4409 version "1.1.1"
4528 4410 resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
4529 4411 integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
4530 4412  
4531   -husky@^4.3.6:
4532   - version "4.3.6"
4533   - resolved "https://registry.npmjs.org/husky/-/husky-4.3.6.tgz#ebd9dd8b9324aa851f1587318db4cccb7665a13c"
4534   - integrity sha512-o6UjVI8xtlWRL5395iWq9LKDyp/9TE7XMOTvIpEVzW638UcGxTmV5cfel6fsk/jbZSTlvfGVJf2svFtybcIZag==
  4413 +husky@^4.3.7:
  4414 + version "4.3.7"
  4415 + resolved "https://registry.npmjs.org/husky/-/husky-4.3.7.tgz#ca47bbe6213c1aa8b16bbd504530d9600de91e88"
  4416 + integrity sha512-0fQlcCDq/xypoyYSJvEuzbDPHFf8ZF9IXKJxlrnvxABTSzK1VPT2RKYQKrcgJ+YD39swgoB6sbzywUqFxUiqjw==
4535 4417 dependencies:
4536 4418 chalk "^4.0.0"
4537 4419 ci-info "^2.0.0"
4538 4420 compare-versions "^3.6.0"
4539 4421 cosmiconfig "^7.0.0"
4540   - find-versions "^3.2.0"
  4422 + find-versions "^4.0.0"
4541 4423 opencollective-postinstall "^2.0.2"
4542   - pkg-dir "^4.2.0"
  4424 + pkg-dir "^5.0.0"
4543 4425 please-upgrade-node "^3.2.0"
4544 4426 slash "^3.0.0"
4545 4427 which-pm-runs "^1.0.0"
... ... @@ -4583,13 +4465,6 @@ image-size@~0.5.0:
4583 4465 resolved "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
4584 4466 integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=
4585 4467  
4586   -import-cwd@^3.0.0:
4587   - version "3.0.0"
4588   - resolved "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz#20845547718015126ea9b3676b7592fb8bd4cf92"
4589   - integrity sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==
4590   - dependencies:
4591   - import-from "^3.0.0"
4592   -
4593 4468 import-fresh@^3.0.0, import-fresh@^3.2.1:
4594 4469 version "3.2.2"
4595 4470 resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz#fc129c160c5d68235507f4331a6baad186bdbc3e"
... ... @@ -4598,13 +4473,6 @@ import-fresh@^3.0.0, import-fresh@^3.2.1:
4598 4473 parent-module "^1.0.0"
4599 4474 resolve-from "^4.0.0"
4600 4475  
4601   -import-from@^3.0.0:
4602   - version "3.0.0"
4603   - resolved "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966"
4604   - integrity sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==
4605   - dependencies:
4606   - resolve-from "^5.0.0"
4607   -
4608 4476 import-lazy@^4.0.0:
4609 4477 version "4.0.0"
4610 4478 resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153"
... ... @@ -4637,11 +4505,6 @@ indexes-of@^1.0.1:
4637 4505 resolved "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
4638 4506 integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc=
4639 4507  
4640   -inflation@^2.0.0:
4641   - version "2.0.0"
4642   - resolved "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz#8b417e47c28f925a45133d914ca1fd389107f30f"
4643   - integrity sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8=
4644   -
4645 4508 inflight@^1.0.4:
4646 4509 version "1.0.6"
4647 4510 resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
... ... @@ -4655,11 +4518,6 @@ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3:
4655 4518 resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
4656 4519 integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
4657 4520  
4658   -inherits@2.0.1:
4659   - version "2.0.1"
4660   - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
4661   - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=
4662   -
4663 4521 inherits@2.0.3:
4664 4522 version "2.0.3"
4665 4523 resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
... ... @@ -4824,11 +4682,6 @@ is-fullwidth-code-point@^3.0.0:
4824 4682 resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
4825 4683 integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
4826 4684  
4827   -is-generator-function@^1.0.7:
4828   - version "1.0.8"
4829   - resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz#dfb5c2b120e02b0a8d9d2c6806cd5621aa922f7b"
4830   - integrity sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ==
4831   -
4832 4685 is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:
4833 4686 version "4.0.1"
4834 4687 resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
... ... @@ -4841,11 +4694,6 @@ is-hexadecimal@^1.0.0:
4841 4694 resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7"
4842 4695 integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==
4843 4696  
4844   -is-interactive@^1.0.0:
4845   - version "1.0.0"
4846   - resolved "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e"
4847   - integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==
4848   -
4849 4697 is-mobile@^2.2.1:
4850 4698 version "2.2.2"
4851 4699 resolved "https://registry.npmjs.org/is-mobile/-/is-mobile-2.2.2.tgz#f6c9c5d50ee01254ce05e739bdd835f1ed4e9954"
... ... @@ -4900,13 +4748,6 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4:
4900 4748 dependencies:
4901 4749 isobject "^3.0.1"
4902 4750  
4903   -is-reference@^1.2.1:
4904   - version "1.2.1"
4905   - resolved "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7"
4906   - integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==
4907   - dependencies:
4908   - "@types/estree" "*"
4909   -
4910 4751 is-regexp@^1.0.0:
4911 4752 version "1.0.0"
4912 4753 resolved "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069"
... ... @@ -4956,11 +4797,6 @@ is-wsl@^2.1.1:
4956 4797 dependencies:
4957 4798 is-docker "^2.0.0"
4958 4799  
4959   -isarray@0.0.1:
4960   - version "0.0.1"
4961   - resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
4962   - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
4963   -
4964 4800 isarray@1.0.0, isarray@~1.0.0:
4965 4801 version "1.0.0"
4966 4802 resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
... ... @@ -4971,13 +4807,6 @@ isarray@^2.0.1:
4971 4807 resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
4972 4808 integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
4973 4809  
4974   -isbuiltin@^1.0.0:
4975   - version "1.0.0"
4976   - resolved "https://registry.npmjs.org/isbuiltin/-/isbuiltin-1.0.0.tgz#4453b2915690cb47c0cb9c9255a0807778315c96"
4977   - integrity sha1-RFOykVaQy0fAy5ySVaCAd3gxXJY=
4978   - dependencies:
4979   - builtin-modules "^1.1.1"
4980   -
4981 4810 isexe@^2.0.0:
4982 4811 version "2.0.0"
4983 4812 resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
... ... @@ -4995,6 +4824,16 @@ isobject@^3.0.0, isobject@^3.0.1:
4995 4824 resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
4996 4825 integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
4997 4826  
  4827 +jake@^10.6.1:
  4828 + version "10.8.2"
  4829 + resolved "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz#ebc9de8558160a66d82d0eadc6a2e58fbc500a7b"
  4830 + integrity sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==
  4831 + dependencies:
  4832 + async "0.9.x"
  4833 + chalk "^2.4.2"
  4834 + filelist "^1.0.1"
  4835 + minimatch "^3.0.4"
  4836 +
4998 4837 jest-worker@^26.2.1:
4999 4838 version "26.6.2"
5000 4839 resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed"
... ... @@ -5092,13 +4931,6 @@ jsonparse@^1.2.0:
5092 4931 resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280"
5093 4932 integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=
5094 4933  
5095   -keygrip@~1.1.0:
5096   - version "1.1.0"
5097   - resolved "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226"
5098   - integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==
5099   - dependencies:
5100   - tsscmp "1.0.6"
5101   -
5102 4934 kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
5103 4935 version "3.2.2"
5104 4936 resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
... ... @@ -5123,65 +4955,12 @@ kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3:
5123 4955 resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
5124 4956 integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
5125 4957  
5126   -klona@^2.0.4:
5127   - version "2.0.4"
5128   - resolved "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0"
5129   - integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==
5130   -
5131 4958 known-css-properties@^0.20.0:
5132 4959 version "0.20.0"
5133 4960 resolved "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.20.0.tgz#0570831661b47dd835293218381166090ff60e96"
5134 4961 integrity sha512-URvsjaA9ypfreqJ2/ylDr5MUERhJZ+DhguoWRr2xgS5C7aGCalXo+ewL+GixgKBfhT2vuL02nbIgNGqVWgTOYw==
5135 4962  
5136   -koa-bodyparser@^4.3.0:
5137   - version "4.3.0"
5138   - resolved "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.3.0.tgz#274c778555ff48fa221ee7f36a9fbdbace22759a"
5139   - integrity sha512-uyV8G29KAGwZc4q/0WUAjH+Tsmuv9ImfBUF2oZVyZtaeo0husInagyn/JH85xMSxM0hEk/mbCII5ubLDuqW/Rw==
5140   - dependencies:
5141   - co-body "^6.0.0"
5142   - copy-to "^2.0.1"
5143   -
5144   -koa-compose@^3.0.0:
5145   - version "3.2.1"
5146   - resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7"
5147   - integrity sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec=
5148   - dependencies:
5149   - any-promise "^1.1.0"
5150   -
5151   -koa-compose@^4.1.0:
5152   - version "4.1.0"
5153   - resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877"
5154   - integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==
5155   -
5156   -koa-conditional-get@^3.0.0:
5157   - version "3.0.0"
5158   - resolved "https://registry.npmjs.org/koa-conditional-get/-/koa-conditional-get-3.0.0.tgz#552cb64a217dfb907e90b7c34f42009e441c4b8e"
5159   - integrity sha512-VKyPS7SuNH26TjTV2IRz+oh0HV/jc2lYAo51PTQTkj0XFn8ebNZW9riczmrW7ZVBFSnls1Z88DPUYKnvVymruA==
5160   -
5161   -koa-convert@^1.2.0:
5162   - version "1.2.0"
5163   - resolved "https://registry.npmjs.org/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0"
5164   - integrity sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=
5165   - dependencies:
5166   - co "^4.6.0"
5167   - koa-compose "^3.0.0"
5168   -
5169   -koa-etag@^4.0.0:
5170   - version "4.0.0"
5171   - resolved "https://registry.npmjs.org/koa-etag/-/koa-etag-4.0.0.tgz#2c2bb7ae69ca1ac6ced09ba28dcb78523c810414"
5172   - integrity sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg==
5173   - dependencies:
5174   - etag "^1.8.1"
5175   -
5176   -koa-proxies@^0.11.0:
5177   - version "0.11.0"
5178   - resolved "https://registry.npmjs.org/koa-proxies/-/koa-proxies-0.11.0.tgz#43dde4260080f7cb0f284655f85cf654bbe9ec84"
5179   - integrity sha512-iXGRADBE0fM7g7AttNOlLZ/cCFKXeVMHbFJKIRb0dUCrSYXi02loyVSdBlKlBQ5ZfVKJLo9Q9FyqwVTp1poVVA==
5180   - dependencies:
5181   - http-proxy "^1.16.2"
5182   - path-match "^1.2.4"
5183   -
5184   -koa-send@^5.0.0, koa-send@^5.0.1:
  4963 +koa-send@^5.0.0:
5185 4964 version "5.0.1"
5186 4965 resolved "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz#39dceebfafb395d0d60beaffba3a70b4f543fe79"
5187 4966 integrity sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==
... ... @@ -5198,35 +4977,6 @@ koa-static@^5.0.0:
5198 4977 debug "^3.1.0"
5199 4978 koa-send "^5.0.0"
5200 4979  
5201   -koa@^2.13.0:
5202   - version "2.13.0"
5203   - resolved "https://registry.npmjs.org/koa/-/koa-2.13.0.tgz#25217e05efd3358a7e5ddec00f0a380c9b71b501"
5204   - integrity sha512-i/XJVOfPw7npbMv67+bOeXr3gPqOAw6uh5wFyNs3QvJ47tUx3M3V9rIE0//WytY42MKz4l/MXKyGkQ2LQTfLUQ==
5205   - dependencies:
5206   - accepts "^1.3.5"
5207   - cache-content-type "^1.0.0"
5208   - content-disposition "~0.5.2"
5209   - content-type "^1.0.4"
5210   - cookies "~0.8.0"
5211   - debug "~3.1.0"
5212   - delegates "^1.0.0"
5213   - depd "^1.1.2"
5214   - destroy "^1.0.4"
5215   - encodeurl "^1.0.2"
5216   - escape-html "^1.0.3"
5217   - fresh "~0.5.2"
5218   - http-assert "^1.3.0"
5219   - http-errors "^1.6.3"
5220   - is-generator-function "^1.0.7"
5221   - koa-compose "^4.1.0"
5222   - koa-convert "^1.2.0"
5223   - on-finished "^2.3.0"
5224   - only "~0.0.2"
5225   - parseurl "^1.3.2"
5226   - statuses "^1.5.0"
5227   - type-is "^1.6.16"
5228   - vary "^1.1.2"
5229   -
5230 4980 less@^4.0.0:
5231 4981 version "4.0.0"
5232 4982 resolved "https://registry.npmjs.org/less/-/less-4.0.0.tgz#d238cc25576c1f722794dbca4ac82e5e3c7e9e65"
... ... @@ -5665,7 +5415,7 @@ mime-db@1.44.0:
5665 5415 resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"
5666 5416 integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==
5667 5417  
5668   -mime-types@^2.1.18, mime-types@^2.1.27, mime-types@~2.1.24:
  5418 +mime-types@~2.1.24:
5669 5419 version "2.1.27"
5670 5420 resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f"
5671 5421 integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==
... ... @@ -5773,11 +5523,6 @@ mute-stream@0.0.7:
5773 5523 resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
5774 5524 integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
5775 5525  
5776   -mute-stream@0.0.8:
5777   - version "0.0.8"
5778   - resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
5779   - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
5780   -
5781 5526 mz@^2.4.0:
5782 5527 version "2.7.0"
5783 5528 resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
... ... @@ -5787,7 +5532,7 @@ mz@^2.4.0:
5787 5532 object-assign "^4.0.1"
5788 5533 thenify-all "^1.0.0"
5789 5534  
5790   -nanoid@^3.0.1:
  5535 +nanoid@^3.0.1, nanoid@^3.1.20:
5791 5536 version "3.1.20"
5792 5537 resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788"
5793 5538 integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==
... ... @@ -5824,11 +5569,6 @@ natural-compare@^1.4.0:
5824 5569 resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
5825 5570 integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
5826 5571  
5827   -negotiator@0.6.2:
5828   - version "0.6.2"
5829   - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
5830   - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
5831   -
5832 5572 neo-async@^2.6.0:
5833 5573 version "2.6.2"
5834 5574 resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
... ... @@ -5842,11 +5582,6 @@ no-case@^3.0.4:
5842 5582 lower-case "^2.0.2"
5843 5583 tslib "^2.0.3"
5844 5584  
5845   -node-forge@^0.10.0:
5846   - version "0.10.0"
5847   - resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3"
5848   - integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==
5849   -
5850 5585 node-modules-regexp@^1.0.0:
5851 5586 version "1.0.0"
5852 5587 resolved "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40"
... ... @@ -5857,6 +5592,11 @@ node-releases@^1.1.67:
5857 5592 resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz#28ebfcccd0baa6aad8e8d4d8fe4cbc49ae239c12"
5858 5593 integrity sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==
5859 5594  
  5595 +node-releases@^1.1.69:
  5596 + version "1.1.69"
  5597 + resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.69.tgz#3149dbde53b781610cd8b486d62d86e26c3725f6"
  5598 + integrity sha512-DGIjo79VDEyAnRlfSqYTsy+yoHd2IOjJiKUozD2MV2D85Vso6Bug56mb9tT/fY5Urt0iqk01H7x+llAruDR2zA==
  5599 +
5860 5600 normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0:
5861 5601 version "2.5.0"
5862 5602 resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
... ... @@ -5962,7 +5702,7 @@ omit.js@^2.0.0:
5962 5702 resolved "https://registry.npmjs.org/omit.js/-/omit.js-2.0.2.tgz#dd9b8436fab947a5f3ff214cb2538631e313ec2f"
5963 5703 integrity sha512-hJmu9D+bNB40YpL9jYebQl4lsTW6yEHRTroJzNLqQJYHm7c+NQnJGfZmIWh8S3q3KoaxV1aLhV6B3+0N0/kyJg==
5964 5704  
5965   -on-finished@^2.3.0:
  5705 +on-finished@~2.3.0:
5966 5706 version "2.3.0"
5967 5707 resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
5968 5708 integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
... ... @@ -5990,12 +5730,7 @@ onetime@^5.1.0:
5990 5730 dependencies:
5991 5731 mimic-fn "^2.1.0"
5992 5732  
5993   -only@~0.0.2:
5994   - version "0.0.2"
5995   - resolved "https://registry.npmjs.org/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4"
5996   - integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=
5997   -
5998   -open@^7.0.3, open@^7.2.1:
  5733 +open@^7.0.3:
5999 5734 version "7.3.0"
6000 5735 resolved "https://registry.npmjs.org/open/-/open-7.3.0.tgz#45461fdee46444f3645b6e14eb3ca94b82e1be69"
6001 5736 integrity sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==
... ... @@ -6020,20 +5755,6 @@ optionator@^0.9.1:
6020 5755 type-check "^0.4.0"
6021 5756 word-wrap "^1.2.3"
6022 5757  
6023   -ora@^5.1.0:
6024   - version "5.1.0"
6025   - resolved "https://registry.npmjs.org/ora/-/ora-5.1.0.tgz#b188cf8cd2d4d9b13fd25383bc3e5cba352c94f8"
6026   - integrity sha512-9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w==
6027   - dependencies:
6028   - chalk "^4.1.0"
6029   - cli-cursor "^3.1.0"
6030   - cli-spinners "^2.4.0"
6031   - is-interactive "^1.0.0"
6032   - log-symbols "^4.0.0"
6033   - mute-stream "0.0.8"
6034   - strip-ansi "^6.0.0"
6035   - wcwidth "^1.0.1"
6036   -
6037 5758 os-tmpdir@~1.0.2:
6038 5759 version "1.0.2"
6039 5760 resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
... ... @@ -6088,11 +5809,6 @@ p-locate@^5.0.0:
6088 5809 dependencies:
6089 5810 p-limit "^3.0.2"
6090 5811  
6091   -p-map-series@^2.1.0:
6092   - version "2.1.0"
6093   - resolved "https://registry.npmjs.org/p-map-series/-/p-map-series-2.1.0.tgz#7560d4c452d9da0c07e692fdbfe6e2c81a2a91f2"
6094   - integrity sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==
6095   -
6096 5812 p-map@^4.0.0:
6097 5813 version "4.0.0"
6098 5814 resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
... ... @@ -6194,7 +5910,7 @@ parse5@^6.0.1:
6194 5910 resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b"
6195 5911 integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==
6196 5912  
6197   -parseurl@^1.3.2:
  5913 +parseurl@~1.3.3:
6198 5914 version "1.3.3"
6199 5915 resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
6200 5916 integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
... ... @@ -6239,26 +5955,11 @@ path-key@^3.0.0, path-key@^3.1.0:
6239 5955 resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
6240 5956 integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
6241 5957  
6242   -path-match@^1.2.4:
6243   - version "1.2.4"
6244   - resolved "https://registry.npmjs.org/path-match/-/path-match-1.2.4.tgz#a62747f3c7e0c2514762697f24443585b09100ea"
6245   - integrity sha1-pidH88fgwlFHYml/JEQ1hbCRAOo=
6246   - dependencies:
6247   - http-errors "~1.4.0"
6248   - path-to-regexp "^1.0.0"
6249   -
6250 5958 path-parse@^1.0.6:
6251 5959 version "1.0.6"
6252 5960 resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
6253 5961 integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
6254 5962  
6255   -path-to-regexp@^1.0.0:
6256   - version "1.8.0"
6257   - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a"
6258   - integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==
6259   - dependencies:
6260   - isarray "0.0.1"
6261   -
6262 5963 path-to-regexp@^6.2.0:
6263 5964 version "6.2.0"
6264 5965 resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.0.tgz#f7b3803336104c346889adece614669230645f38"
... ... @@ -6324,12 +6025,12 @@ pirates@^4.0.1:
6324 6025 dependencies:
6325 6026 node-modules-regexp "^1.0.0"
6326 6027  
6327   -pkg-dir@^4.2.0:
6328   - version "4.2.0"
6329   - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
6330   - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
  6028 +pkg-dir@^5.0.0:
  6029 + version "5.0.0"
  6030 + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760"
  6031 + integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==
6331 6032 dependencies:
6332   - find-up "^4.0.0"
  6033 + find-up "^5.0.0"
6333 6034  
6334 6035 please-upgrade-node@^3.2.0:
6335 6036 version "3.2.0"
... ... @@ -6357,13 +6058,6 @@ posix-character-classes@^0.1.0:
6357 6058 resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
6358 6059 integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
6359 6060  
6360   -postcss-discard-comments@^4.0.2:
6361   - version "4.0.2"
6362   - resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033"
6363   - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==
6364   - dependencies:
6365   - postcss "^7.0.0"
6366   -
6367 6061 postcss-html@^0.36.0:
6368 6062 version "0.36.0"
6369 6063 resolved "https://registry.npmjs.org/postcss-html/-/postcss-html-0.36.0.tgz#b40913f94eaacc2453fd30a1327ad6ee1f88b204"
... ... @@ -6371,13 +6065,12 @@ postcss-html@^0.36.0:
6371 6065 dependencies:
6372 6066 htmlparser2 "^3.10.0"
6373 6067  
6374   -postcss-import@^12.0.1:
6375   - version "12.0.1"
6376   - resolved "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz#cf8c7ab0b5ccab5649024536e565f841928b7153"
6377   - integrity sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==
  6068 +postcss-import@^14.0.0:
  6069 + version "14.0.0"
  6070 + resolved "https://registry.npmjs.org/postcss-import/-/postcss-import-14.0.0.tgz#3ed1dadac5a16650bde3f4cdea6633b9c3c78296"
  6071 + integrity sha512-gFDDzXhqr9ELmnLHgCC3TbGfA6Dm/YMb/UN8/f7Uuq4fL7VTk2vOIj6hwINEwbokEmp123bLD7a5m+E+KIetRg==
6378 6072 dependencies:
6379   - postcss "^7.0.1"
6380   - postcss-value-parser "^3.2.3"
  6073 + postcss-value-parser "^4.0.0"
6381 6074 read-cache "^1.0.0"
6382 6075 resolve "^1.1.7"
6383 6076  
... ... @@ -6388,14 +6081,6 @@ postcss-less@^3.1.4:
6388 6081 dependencies:
6389 6082 postcss "^7.0.14"
6390 6083  
6391   -postcss-load-config@^3.0.0:
6392   - version "3.0.0"
6393   - resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.0.0.tgz#850bb066edd65b734329eacf83af0c0764226c87"
6394   - integrity sha512-lErrN8imuEF1cSiHBV8MiR7HeuzlDpCGNtaMyYHlOBuJHHOGw6S4xOMZp8BbXPr7AGQp14L6PZDlIOpfFJ6f7w==
6395   - dependencies:
6396   - cosmiconfig "^7.0.0"
6397   - import-cwd "^3.0.0"
6398   -
6399 6084 postcss-media-query-parser@^0.2.3:
6400 6085 version "0.2.3"
6401 6086 resolved "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244"
... ... @@ -6499,17 +6184,12 @@ postcss-syntax@^0.36.2:
6499 6184 resolved "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz#f08578c7d95834574e5593a82dfbfa8afae3b51c"
6500 6185 integrity sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==
6501 6186  
6502   -postcss-value-parser@^3.2.3:
6503   - version "3.3.1"
6504   - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
6505   - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
6506   -
6507   -postcss-value-parser@^4.1.0:
  6187 +postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0:
6508 6188 version "4.1.0"
6509 6189 resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb"
6510 6190 integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
6511 6191  
6512   -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.35, postcss@^7.0.5, postcss@^7.0.6:
  6192 +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.35, postcss@^7.0.5, postcss@^7.0.6:
6513 6193 version "7.0.35"
6514 6194 resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24"
6515 6195 integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==
... ... @@ -6518,6 +6198,15 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2
6518 6198 source-map "^0.6.1"
6519 6199 supports-color "^6.1.0"
6520 6200  
  6201 +postcss@^8.2.1:
  6202 + version "8.2.3"
  6203 + resolved "https://registry.npmjs.org/postcss/-/postcss-8.2.3.tgz#14ed1294850c99661761d9cb68863718eb75690d"
  6204 + integrity sha512-tdmNCCmxJEsLZNj810qlj8QbvnUNKFL9A5doV+uHrGGK/YNKWEslrytnHDWr9M/GgGjfUFwXCRbxd/b6IoRBXQ==
  6205 + dependencies:
  6206 + colorette "^1.2.1"
  6207 + nanoid "^3.1.20"
  6208 + source-map "^0.6.1"
  6209 +
6521 6210 prelude-ls@^1.2.1:
6522 6211 version "1.2.1"
6523 6212 resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
... ... @@ -6540,16 +6229,11 @@ pretty-bytes@^5.3.0:
6540 6229 resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.4.1.tgz#cd89f79bbcef21e3d21eb0da68ffe93f803e884b"
6541 6230 integrity sha512-s1Iam6Gwz3JI5Hweaz4GoCD1WUNUIyzePFy5+Js2hjwGVt2Z79wNN+ZKOZ2vB6C+Xs6njyB84Z1IthQg8d9LxA==
6542 6231  
6543   -pretty-bytes@^5.4.1:
  6232 +pretty-bytes@^5.5.0:
6544 6233 version "5.5.0"
6545 6234 resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.5.0.tgz#0cecda50a74a941589498011cf23275aa82b339e"
6546 6235 integrity sha512-p+T744ZyjjiaFlMUZZv6YPC5JrkNj8maRmPaQCWFJFplUAzpIUTRaTcS+7wmZtUoFXHtESJb23ISliaWyz3SHA==
6547 6236  
6548   -printj@~1.1.0, printj@~1.1.2:
6549   - version "1.1.2"
6550   - resolved "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222"
6551   - integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==
6552   -
6553 6237 process-nextick-args@~2.0.0:
6554 6238 version "2.0.1"
6555 6239 resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
... ... @@ -6596,10 +6280,10 @@ qrcode@^1.4.4:
6596 6280 pngjs "^3.3.0"
6597 6281 yargs "^13.2.4"
6598 6282  
6599   -qs@^6.5.2:
6600   - version "6.9.4"
6601   - resolved "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687"
6602   - integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==
  6283 +qs@6.7.0:
  6284 + version "6.7.0"
  6285 + resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
  6286 + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
6603 6287  
6604 6288 quick-lru@^1.0.0:
6605 6289 version "1.1.0"
... ... @@ -6623,13 +6307,13 @@ randombytes@^2.1.0:
6623 6307 dependencies:
6624 6308 safe-buffer "^5.1.0"
6625 6309  
6626   -raw-body@^2.3.3:
6627   - version "2.4.1"
6628   - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c"
6629   - integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==
  6310 +raw-body@2.4.0:
  6311 + version "2.4.0"
  6312 + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
  6313 + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==
6630 6314 dependencies:
6631 6315 bytes "3.1.0"
6632   - http-errors "1.7.3"
  6316 + http-errors "1.7.2"
6633 6317 iconv-lite "0.4.24"
6634 6318 unpipe "1.0.0"
6635 6319  
... ... @@ -6765,7 +6449,7 @@ regenerate@^1.4.0:
6765 6449 resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
6766 6450 integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
6767 6451  
6768   -regenerator-runtime@^0.13.4:
  6452 +regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7:
6769 6453 version "0.13.7"
6770 6454 resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55"
6771 6455 integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==
... ... @@ -6869,11 +6553,6 @@ require-main-filename@^2.0.0:
6869 6553 resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
6870 6554 integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
6871 6555  
6872   -requires-port@^1.0.0:
6873   - version "1.0.0"
6874   - resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
6875   - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=
6876   -
6877 6556 resize-observer-polyfill@^1.5.1:
6878 6557 version "1.5.1"
6879 6558 resolved "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464"
... ... @@ -6958,34 +6637,29 @@ rimraf@^3.0.2:
6958 6637 dependencies:
6959 6638 glob "^7.1.3"
6960 6639  
6961   -rollup-plugin-dynamic-import-variables@^1.1.0:
6962   - version "1.1.0"
6963   - resolved "https://registry.npmjs.org/rollup-plugin-dynamic-import-variables/-/rollup-plugin-dynamic-import-variables-1.1.0.tgz#4981d38907a471b35234398a09047bef47a2006a"
6964   - integrity sha512-C1avEmnXC8cC4aAQ5dB63O9oQf7IrhEHc98bQw9Qd6H36FxtZooLCvVfcO4SNYrqaNrzH3ErucQt/zdFSLPHNw==
6965   - dependencies:
6966   - "@rollup/pluginutils" "^3.0.9"
6967   - estree-walker "^2.0.1"
6968   - globby "^11.0.0"
6969   - magic-string "^0.25.7"
6970   -
6971   -rollup-plugin-esbuild@^2.6.0:
6972   - version "2.6.0"
6973   - resolved "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-2.6.0.tgz#80336399b113a179ccb2af5bdf7c03f061f37146"
6974   - integrity sha512-wtyDAX8kNABrBfwkrrG2xLRKRGSWUyMBURS067IRvRMpgJlLRo14WcFl95uGc4iYWfdAx436/z1LMzYqdlY4ig==
  6640 +rollup-plugin-esbuild@^2.6.1:
  6641 + version "2.6.1"
  6642 + resolved "https://registry.npmjs.org/rollup-plugin-esbuild/-/rollup-plugin-esbuild-2.6.1.tgz#5785532940d49adf1bff5b38e9bd9089262d4e7a"
  6643 + integrity sha512-hskMEQQ4Vxlyoeg1OWlFTwWHIhpNaw6q+diOT7p9pdkk34m9Mbk3aymS/JbTqLXy/AbJi22iuXrucknKpeczfg==
6975 6644 dependencies:
6976 6645 "@rollup/pluginutils" "^4.1.0"
6977 6646 joycon "^2.2.5"
6978 6647 strip-json-comments "^3.1.1"
6979 6648  
6980   -rollup-plugin-purge-icons@^0.4.5:
6981   - version "0.4.5"
6982   - resolved "https://registry.npmjs.org/rollup-plugin-purge-icons/-/rollup-plugin-purge-icons-0.4.5.tgz#f93d94953ecb65a9716cccef13a20aeff4d5d548"
6983   - integrity sha512-rbc32qXlFSOoiMgC+e38KgLo6+trl+hIafxJc4fDNakCIaixRhk8tsFIIuy4q3P2R3/lLHQYYGu5IJhI8223Bg==
  6649 +rollup-plugin-gzip@^2.5.0:
  6650 + version "2.5.0"
  6651 + resolved "https://registry.npmjs.org/rollup-plugin-gzip/-/rollup-plugin-gzip-2.5.0.tgz#786650e7bddf86d7f723c205c3e3018ea727388c"
  6652 + integrity sha512-1N0xtJJ8XfZYklZN1QcMLe+Mos2Vaccy3YUarE/AB1RkH7mkeppkFAz9srh+9KWOC3I2LWJeAYwFabO0rJ4mxg==
  6653 +
  6654 +rollup-plugin-purge-icons@^0.5.0:
  6655 + version "0.5.0"
  6656 + resolved "https://registry.npmjs.org/rollup-plugin-purge-icons/-/rollup-plugin-purge-icons-0.5.0.tgz#1a40b7834ee201abaca8baa5a50d9ad8d6a62b9a"
  6657 + integrity sha512-poYNDdz0Wl2TOSvq/KH2jMqjMRJhoaa08/VDKsP4AAaGBW0UDeb5Y3r6GYDFq58Z+A9lfE5zdWzIAzVfsHYiiw==
6984 6658 dependencies:
6985   - "@purge-icons/core" "^0.4.5"
6986   - "@purge-icons/generated" "^0.4.1"
  6659 + "@purge-icons/core" "^0.5.0"
  6660 + "@purge-icons/generated" "^0.5.0"
6987 6661  
6988   -rollup-plugin-terser@^7.0.0, rollup-plugin-terser@^7.0.2:
  6662 +rollup-plugin-terser@^7.0.0:
6989 6663 version "7.0.2"
6990 6664 resolved "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d"
6991 6665 integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==
... ... @@ -7005,38 +6679,6 @@ rollup-plugin-visualizer@^4.1.2:
7005 6679 source-map "^0.7.3"
7006 6680 yargs "^16.0.3"
7007 6681  
7008   -rollup-plugin-vue@^6.0.0:
7009   - version "6.0.0"
7010   - resolved "https://registry.npmjs.org/rollup-plugin-vue/-/rollup-plugin-vue-6.0.0.tgz#e379e93e5ae9a8648522f698be2e452e8672aaf2"
7011   - integrity sha512-oVvUd84d5u73M2HYM3XsMDLtZRIA/tw2U0dmHlXU2UWP5JARYHzh/U9vcxaN/x/9MrepY7VH3pHFeOhrWpxs/Q==
7012   - dependencies:
7013   - debug "^4.1.1"
7014   - hash-sum "^2.0.0"
7015   - rollup-pluginutils "^2.8.2"
7016   -
7017   -rollup-plugin-web-worker-loader@^1.3.1:
7018   - version "1.5.0"
7019   - resolved "https://registry.npmjs.org/rollup-plugin-web-worker-loader/-/rollup-plugin-web-worker-loader-1.5.0.tgz#df21973426c6f95b238a84698ae27f8d8aab6b83"
7020   - integrity sha512-Zx5l370yGDje35rFkM/wbT4dMIq2+kSBdLWQpqLkBuxmrQJcx0umA05kSbNRzccFsudQH4FKYCK8GtSBQRQBBg==
7021   -
7022   -rollup-plugin-workbox@^6.1.0:
7023   - version "6.1.0"
7024   - resolved "https://registry.npmjs.org/rollup-plugin-workbox/-/rollup-plugin-workbox-6.1.0.tgz#120cde36547769fc8cc45eae97a338c4017ed936"
7025   - integrity sha512-BqeEBj53fiqNLjiiyVvuBlic3Apg2Us1mpTkn3zgqaipJoAOC3soi+W9vrOQcm190lHLo9WNvi1wQg/M7olJHg==
7026   - dependencies:
7027   - "@rollup/plugin-node-resolve" "^11.0.1"
7028   - "@rollup/plugin-replace" "^2.3.4"
7029   - pretty-bytes "^5.4.1"
7030   - rollup-plugin-terser "^7.0.2"
7031   - workbox-build "^6.0.2"
7032   -
7033   -rollup-pluginutils@^2.8.2:
7034   - version "2.8.2"
7035   - resolved "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e"
7036   - integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==
7037   - dependencies:
7038   - estree-walker "^0.6.1"
7039   -
7040 6682 rollup@^0.63.4:
7041 6683 version "0.63.5"
7042 6684 resolved "https://registry.npmjs.org/rollup/-/rollup-0.63.5.tgz#5543eecac9a1b83b7e1be598b5be84c9c0a089db"
... ... @@ -7052,10 +6694,10 @@ rollup@^2.25.0:
7052 6694 optionalDependencies:
7053 6695 fsevents "~2.1.2"
7054 6696  
7055   -rollup@^2.32.1, rollup@^2.34.1:
7056   - version "2.34.2"
7057   - resolved "https://registry.npmjs.org/rollup/-/rollup-2.34.2.tgz#fa73e05c64df587e9ed4dc80d7d4e7d4a43f8908"
7058   - integrity sha512-mvtQLqu3cNeoctS+kZ09iOPxrc1P1/Bt1z15enuQ5feyKOdM3MJAVFjjsygurDpSWn530xB4AlA83TWIzRstXA==
  6697 +rollup@^2.35.1:
  6698 + version "2.36.1"
  6699 + resolved "https://registry.npmjs.org/rollup/-/rollup-2.36.1.tgz#2174f0c25c7b400d57b05628d0e732c7ae8d2178"
  6700 + integrity sha512-eAfqho8dyzuVvrGqpR0ITgEdq0zG2QJeWYh+HeuTbpcaXk8vNFc48B7bJa1xYosTCKx0CuW+447oQOW8HgBIZQ==
7059 6701 optionalDependencies:
7060 6702 fsevents "~2.1.2"
7061 6703  
... ... @@ -7076,16 +6718,16 @@ rxjs@^6.4.0, rxjs@^6.6.3:
7076 6718 dependencies:
7077 6719 tslib "^1.9.0"
7078 6720  
7079   -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
7080   - version "5.1.2"
7081   - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
7082   - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
7083   -
7084 6721 safe-buffer@^5.1.0, safe-buffer@~5.2.0:
7085 6722 version "5.2.1"
7086 6723 resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
7087 6724 integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
7088 6725  
  6726 +safe-buffer@~5.1.0, safe-buffer@~5.1.1:
  6727 + version "5.1.2"
  6728 + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
  6729 + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
  6730 +
7089 6731 safe-regex@^1.1.0:
7090 6732 version "1.1.0"
7091 6733 resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
... ... @@ -7105,22 +6747,15 @@ scroll-into-view-if-needed@^2.2.25:
7105 6747 dependencies:
7106 6748 compute-scroll-into-view "^1.0.16"
7107 6749  
7108   -selfsigned@^1.10.8:
7109   - version "1.10.8"
7110   - resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30"
7111   - integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==
7112   - dependencies:
7113   - node-forge "^0.10.0"
7114   -
7115 6750 semver-compare@^1.0.0:
7116 6751 version "1.0.0"
7117 6752 resolved "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
7118 6753 integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
7119 6754  
7120   -semver-regex@^2.0.0:
7121   - version "2.0.0"
7122   - resolved "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338"
7123   - integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==
  6755 +semver-regex@^3.1.2:
  6756 + version "3.1.2"
  6757 + resolved "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.2.tgz#34b4c0d361eef262e07199dbef316d0f2ab11807"
  6758 + integrity sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==
7124 6759  
7125 6760 "semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0:
7126 6761 version "5.7.1"
... ... @@ -7270,10 +6905,10 @@ snapdragon@^0.8.1:
7270 6905 source-map-resolve "^0.5.0"
7271 6906 use "^3.1.0"
7272 6907  
7273   -sortablejs@^1.12.0:
7274   - version "1.12.0"
7275   - resolved "https://registry.npmjs.org/sortablejs/-/sortablejs-1.12.0.tgz#ee6d7ece3598c2af0feb1559d98595e5ea37cbd6"
7276   - integrity sha512-bPn57rCjBRlt2sC24RBsu40wZsmLkSo2XeqG8k6DC1zru5eObQUIPPZAQG7W2SJ8FZQYq+BEJmvuw1Zxb3chqg==
  6908 +sortablejs@^1.13.0:
  6909 + version "1.13.0"
  6910 + resolved "https://registry.npmjs.org/sortablejs/-/sortablejs-1.13.0.tgz#3ab2473f8c69ca63569e80b1cd1b5669b51269e9"
  6911 + integrity sha512-RBJirPY0spWCrU5yCmWM1eFs/XgX2J5c6b275/YyxFRgnzPhKl/TDeU2hNR8Dt7ITq66NRPM4UlOt+e5O4CFHg==
7277 6912  
7278 6913 source-map-resolve@^0.5.0:
7279 6914 version "0.5.3"
... ... @@ -7376,13 +7011,6 @@ sprintf-js@~1.0.2:
7376 7011 resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
7377 7012 integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
7378 7013  
7379   -ssf@~0.11.2:
7380   - version "0.11.2"
7381   - resolved "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz#0b99698b237548d088fc43cdf2b70c1a7512c06c"
7382   - integrity sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==
7383   - dependencies:
7384   - frac "~1.1.2"
7385   -
7386 7014 static-extend@^0.1.1:
7387 7015 version "0.1.2"
7388 7016 resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
... ... @@ -7391,7 +7019,7 @@ static-extend@^0.1.1:
7391 7019 define-property "^0.2.5"
7392 7020 object-copy "^0.1.0"
7393 7021  
7394   -"statuses@>= 1.2.1 < 2", "statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@^1.5.0:
  7022 +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0:
7395 7023 version "1.5.0"
7396 7024 resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
7397 7025 integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
... ... @@ -7712,6 +7340,11 @@ svg.select.js@^3.0.1:
7712 7340 dependencies:
7713 7341 svg.js "^2.6.5"
7714 7342  
  7343 +systemjs@^6.8.3:
  7344 + version "6.8.3"
  7345 + resolved "https://registry.npmjs.org/systemjs/-/systemjs-6.8.3.tgz#67e27f49242e9d81c2b652b204ae54e8bfcc75a3"
  7346 + integrity sha512-UcTY+FEA1B7e+bpJk1TI+a9Na6LG7wFEqW7ED16cLqLuQfI/9Ri0rsXm3tKlIgNoHyLHZycjdAOijzNbzelgwA==
  7347 +
7715 7348 table@^6.0.3, table@^6.0.4:
7716 7349 version "6.0.4"
7717 7350 resolved "https://registry.npmjs.org/table/-/table-6.0.4.tgz#c523dd182177e926c723eb20e1b341238188aa0d"
... ... @@ -7912,11 +7545,6 @@ tslib@^2.0.3:
7912 7545 resolved "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c"
7913 7546 integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==
7914 7547  
7915   -tsscmp@1.0.6:
7916   - version "1.0.6"
7917   - resolved "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb"
7918   - integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==
7919   -
7920 7548 tsutils@^3.17.1:
7921 7549 version "3.17.1"
7922 7550 resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759"
... ... @@ -7956,7 +7584,7 @@ type-fest@^0.8.1:
7956 7584 resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
7957 7585 integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
7958 7586  
7959   -type-is@^1.6.16:
  7587 +type-is@~1.6.17:
7960 7588 version "1.6.18"
7961 7589 resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
7962 7590 integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
... ... @@ -8072,7 +7700,7 @@ universalify@^2.0.0:
8072 7700 resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
8073 7701 integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
8074 7702  
8075   -unpipe@1.0.0:
  7703 +unpipe@1.0.0, unpipe@~1.0.0:
8076 7704 version "1.0.0"
8077 7705 resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
8078 7706 integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
... ... @@ -8112,6 +7740,11 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
8112 7740 resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
8113 7741 integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
8114 7742  
  7743 +utils-merge@1.0.1:
  7744 + version "1.0.1"
  7745 + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
  7746 + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
  7747 +
8115 7748 uuid@^3.3.2:
8116 7749 version "3.4.0"
8117 7750 resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
... ... @@ -8130,11 +7763,6 @@ validate-npm-package-license@^3.0.1:
8130 7763 spdx-correct "^3.0.0"
8131 7764 spdx-expression-parse "^3.0.0"
8132 7765  
8133   -vary@^1.1.2:
8134   - version "1.1.2"
8135   - resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
8136   - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
8137   -
8138 7766 vditor@^3.7.5:
8139 7767 version "3.7.5"
8140 7768 resolved "https://registry.npmjs.org/vditor/-/vditor-3.7.5.tgz#bbba003aea4a41861dfdeca06f8f39325f488b4d"
... ... @@ -8160,107 +7788,72 @@ vfile@^4.0.0:
8160 7788 unist-util-stringify-position "^2.0.0"
8161 7789 vfile-message "^2.0.0"
8162 7790  
8163   -vite-plugin-html@^1.0.0-beta.2:
8164   - version "1.0.0-beta.2"
8165   - resolved "https://registry.npmjs.org/vite-plugin-html/-/vite-plugin-html-1.0.0-beta.2.tgz#f30cdba4ca70469e62b770e32c407ce5d7f9b544"
8166   - integrity sha512-8d/jMcs4tI4Oyf7mG8VAArT9afJhbRbw/jljRutHBluUWgr4rzZsVpEsQIqnqbuElU5AECdovlLI52D50pE/OQ==
  7791 +vite-plugin-html@^2.0.0-beta.5:
  7792 + version "2.0.0-beta.5"
  7793 + resolved "https://registry.npmjs.org/vite-plugin-html/-/vite-plugin-html-2.0.0-beta.5.tgz#89bf3a9a2daef30f4c2d133091e85829243a9160"
  7794 + integrity sha512-S3aJ9dqP7hxNYO3LCSnm2OgzsLzPNwgc0pq2ToL5EKDOIcs5+E4Ubb97vKfi3s5UjU/XkhkZBQcbeqMR4f51XQ==
8167 7795 dependencies:
  7796 + ejs "^3.1.5"
8168 7797 html-minifier-terser "^5.1.1"
8169   - lodash "^4.17.20"
8170 7798  
8171   -vite-plugin-mock@^1.0.9:
8172   - version "1.0.9"
8173   - resolved "https://registry.npmjs.org/vite-plugin-mock/-/vite-plugin-mock-1.0.9.tgz#035a63787f70f1094f3b3928ea0c0419dc353619"
8174   - integrity sha512-qWiF56y/U82EdyckZBxhEkrDQBaUc7QhLPcRN+Lu5eI0diA0MvVvucgCueq4/0mEYJpBcaVWsy83cAGb49AQsA==
  7799 +vite-plugin-import-context@^1.0.0-rc.1:
  7800 + version "1.0.0-rc.1"
  7801 + resolved "https://registry.npmjs.org/vite-plugin-import-context/-/vite-plugin-import-context-1.0.0-rc.1.tgz#ce3faf51b0c8d2e33bb434326b5dbd89ec7e7229"
  7802 + integrity sha512-ZVhj9npqduN+WFhA59LxvyHnrN4lEJlA5RkpYChqtVev7greyemioUpyzdgKxkXhdDVApYBOlGcRTU7rr1+Fdg==
8175 7803 dependencies:
8176   - "@rollup/plugin-node-resolve" "^11.0.0"
  7804 + "@babel/core" "^7.12.10"
  7805 + "@babel/plugin-transform-typescript" "^7.12.1"
  7806 + "@babel/traverse" "^7.12.12"
  7807 + "@rollup/pluginutils" "^4.1.0"
  7808 + debug "^4.3.1"
  7809 +
  7810 +vite-plugin-mock@^2.0.0-beta.1:
  7811 + version "2.0.0-beta.1"
  7812 + resolved "https://registry.npmjs.org/vite-plugin-mock/-/vite-plugin-mock-2.0.0-beta.1.tgz#660c3b7867c84d20c82bf2e074e9b8377d2a9427"
  7813 + integrity sha512-wnMAfVGXsYDlSWD4kV0xG9X6ZWir1UGsH4xeGzxbAU0XlkgQgJxxFJ1/j+QjD8bauKmuU9QUW1uAr9TWwzTShg==
  7814 + dependencies:
  7815 + "@rollup/plugin-node-resolve" "^11.0.1"
  7816 + body-parser "^1.19.0"
8177 7817 chalk "^4.1.0"
8178 7818 chokidar "^3.4.3"
8179   - dayjs "^1.9.6"
8180   - esbuild "^0.8.18"
  7819 + connect "^3.7.0"
  7820 + dayjs "^1.10.1"
  7821 + debug "^4.3.1"
  7822 + esbuild "^0.8.29"
8181 7823 glob "^7.1.6"
8182   - koa-bodyparser "^4.3.0"
8183   - rollup "^2.34.1"
8184   - rollup-plugin-esbuild "^2.6.0"
  7824 + rollup "^2.35.1"
  7825 + rollup-plugin-esbuild "^2.6.1"
8185 7826  
8186   -vite-plugin-purge-icons@^0.4.5:
8187   - version "0.4.5"
8188   - resolved "https://registry.npmjs.org/vite-plugin-purge-icons/-/vite-plugin-purge-icons-0.4.5.tgz#0486c0fa10a6d8e6d8b47e4a12d329fe46b0ae65"
8189   - integrity sha512-56Jj+mJXsZJpHrQ89D/mYJFFvYalV6rLnAdj7Q7q0w9PVFHBHa2E2zdQBOC0fHB+VM/QLgzVqT7gJd0PTuj3Ag==
  7827 +vite-plugin-purge-icons@^0.5.0:
  7828 + version "0.5.0"
  7829 + resolved "https://registry.npmjs.org/vite-plugin-purge-icons/-/vite-plugin-purge-icons-0.5.0.tgz#81ad2887039b3993d34e2f09dfcf5662ebe21177"
  7830 + integrity sha512-3eZTQxnv1GEn35jY7WMj5x+5oCqvay2eqv/3n6c8g3L+GIgLBzhi4kFtjUmN6Zhq0pYKyXr8mezcF2nxx+3BWg==
8190 7831 dependencies:
8191   - "@purge-icons/core" "^0.4.5"
8192   - "@purge-icons/generated" "^0.4.1"
8193   - rollup-plugin-purge-icons "^0.4.5"
  7832 + "@purge-icons/core" "^0.5.0"
  7833 + "@purge-icons/generated" "^0.5.0"
  7834 + rollup-plugin-purge-icons "^0.5.0"
8194 7835  
8195   -vite-plugin-pwa@^0.2.1:
8196   - version "0.2.1"
8197   - resolved "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.2.1.tgz#67e569ac7d5af4b094c6c41b50d06955dd09ef6a"
8198   - integrity sha512-d1Tw5O3dZjAVVS9wZTI1V6gw7m2wK0LJQ/K+D5I00i6kpuJObPcX5nIrPyPJsKYAm53AU2VwnAMB5thL7MGSMw==
  7836 +vite-plugin-pwa@^0.3.2:
  7837 + version "0.3.2"
  7838 + resolved "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.3.2.tgz#002ecee5ab8fa2384e5fa3cf0cb3fb1b22f5e3a9"
  7839 + integrity sha512-NxoueGlURbMvW4A6tBt26LQ8kw7p7QeLnGdVvfzttSeQnTHYsV1KIzhe10jRY1/91UODs4pmIPqTvRwuaatXow==
8199 7840 dependencies:
8200 7841 debug "^4.3.2"
8201 7842 fast-glob "^3.2.4"
8202   - rollup-plugin-workbox "^6.1.0"
  7843 + pretty-bytes "^5.5.0"
  7844 + workbox-build "^6.0.2"
8203 7845  
8204   -vite@^1.0.0-rc.13:
8205   - version "1.0.0-rc.13"
8206   - resolved "https://registry.npmjs.org/vite/-/vite-1.0.0-rc.13.tgz#0e0b3b6138998a1d0c02459908a6c4fb2f294727"
8207   - integrity sha512-hLfTbhNPDhwXMCAWR6s6C79G/O8Is0MbslglgoHSQsRby+KnqHgtHChCVBHFeV2oZBV/3xhHhnfm94BDPFe8Ww==
  7846 +vite@^2.0.0-beta.15:
  7847 + version "2.0.0-beta.15"
  7848 + resolved "https://registry.npmjs.org/vite/-/vite-2.0.0-beta.15.tgz#cd2f1037b4767538839b4c6b4f71a1f9512c7654"
  7849 + integrity sha512-S+NRqL+/QZooWbshnB/Rht1Ln0ldyUcGwghwprvmzI4fXAfM0rFU5g6uno0DdueYnHn0jDO3ExQktGyQuNb9Ww==
8208 7850 dependencies:
8209   - "@babel/parser" "^7.12.7"
8210   - "@koa/cors" "^3.1.0"
8211   - "@rollup/plugin-commonjs" "^16.0.0"
8212   - "@rollup/plugin-json" "^4.1.0"
8213   - "@rollup/plugin-node-resolve" "^10.0.0"
8214   - "@rollup/pluginutils" "^4.1.0"
8215   - "@types/http-proxy" "^1.17.4"
8216   - "@types/koa" "^2.11.4"
8217   - "@types/lru-cache" "^5.1.0"
8218   - "@vue/compiler-dom" "^3.0.3"
8219   - "@vue/compiler-sfc" "^3.0.3"
8220   - brotli-size "^4.0.0"
8221   - cac "^6.6.1"
8222   - chalk "^4.1.0"
8223   - chokidar "^3.4.2"
8224   - clean-css "^4.2.3"
8225   - debug "^4.3.1"
8226   - dotenv "^8.2.0"
8227   - dotenv-expand "^5.1.0"
8228   - es-module-lexer "^0.3.25"
8229   - esbuild "^0.8.12"
8230   - etag "^1.8.1"
8231   - execa "^4.0.3"
8232   - fs-extra "^9.0.1"
8233   - hash-sum "^2.0.0"
8234   - isbuiltin "^1.0.0"
8235   - klona "^2.0.4"
8236   - koa "^2.13.0"
8237   - koa-conditional-get "^3.0.0"
8238   - koa-etag "^4.0.0"
8239   - koa-proxies "^0.11.0"
8240   - koa-send "^5.0.1"
8241   - koa-static "^5.0.0"
8242   - lru-cache "^6.0.0"
8243   - magic-string "^0.25.7"
8244   - merge-source-map "^1.1.0"
8245   - mime-types "^2.1.27"
8246   - minimist "^1.2.5"
8247   - open "^7.2.1"
8248   - ora "^5.1.0"
8249   - p-map-series "^2.1.0"
8250   - postcss-discard-comments "^4.0.2"
8251   - postcss-import "^12.0.1"
8252   - postcss-load-config "^3.0.0"
8253   - resolve "^1.17.0"
8254   - rollup "^2.32.1"
8255   - rollup-plugin-dynamic-import-variables "^1.1.0"
8256   - rollup-plugin-terser "^7.0.2"
8257   - rollup-plugin-vue "^6.0.0"
8258   - rollup-plugin-web-worker-loader "^1.3.1"
8259   - selfsigned "^1.10.8"
8260   - slash "^3.0.0"
8261   - source-map "^0.7.3"
8262   - vue "^3.0.3"
8263   - ws "^7.3.1"
  7851 + esbuild "^0.8.26"
  7852 + postcss "^8.2.1"
  7853 + resolve "^1.19.0"
  7854 + rollup "^2.35.1"
  7855 + optionalDependencies:
  7856 + fsevents "~2.1.2"
8264 7857  
8265 7858 vscode-languageserver-textdocument@^1.0.1:
8266 7859 version "1.0.1"
... ... @@ -8294,14 +7887,14 @@ vue-eslint-parser@^7.3.0:
8294 7887 esquery "^1.0.1"
8295 7888 lodash "^4.17.15"
8296 7889  
8297   -vue-i18n@9.0.0-beta.14:
8298   - version "9.0.0-beta.14"
8299   - resolved "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.0.0-beta.14.tgz#2b2b89bc5371263d499bd17e3c0696bb9582c4f9"
8300   - integrity sha512-jPFtBXcRLuGc4YrI97JJuvj70BndqOhpQNJNthAIPC5x8eJIno44NkK/P769nqQWkbsnYO1sNwb+6oCO6QhaxA==
  7890 +vue-i18n@^9.0.0-rc.1:
  7891 + version "9.0.0-rc.1"
  7892 + resolved "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.0.0-rc.1.tgz#47188d60cb1de2818924cdb6abecedf4e97b5cda"
  7893 + integrity sha512-pp1bLvu6iGV4QtaUnYB9WmDpOWAWb/j9fx9zIqhI6mYsKPY7kBACeVv8qskSeOoRQm4bjDxqUUQdion3UWfFCw==
8301 7894 dependencies:
8302   - "@intlify/core-base" "9.0.0-beta.14"
8303   - "@intlify/shared" "9.0.0-beta.14"
8304   - "@vue/devtools-api" "^6.0.0-beta.2"
  7895 + "@intlify/core-base" "9.0.0-rc.1"
  7896 + "@intlify/shared" "9.0.0-rc.1"
  7897 + "@vue/devtools-api" "^6.0.0-beta.3"
8305 7898  
8306 7899 vue-router@^4.0.2:
8307 7900 version "4.0.2"
... ... @@ -8315,7 +7908,7 @@ vue-types@^3.0.0, vue-types@^3.0.1:
8315 7908 dependencies:
8316 7909 is-plain-object "3.0.1"
8317 7910  
8318   -vue@^3.0.0, vue@^3.0.3:
  7911 +vue@^3.0.0:
8319 7912 version "3.0.4"
8320 7913 resolved "https://registry.npmjs.org/vue/-/vue-3.0.4.tgz#872c65c143f5717bd5387c61613d9f55f4cc0f43"
8321 7914 integrity sha512-2o+AiQF8sAupyhbyl3oxVCl3WCwC/n5NI7VMM+gVQ231qvSB8eI7sCBloloqDJK6yA367EEtmRSeSCf4sxCC+A==
... ... @@ -8350,13 +7943,6 @@ warning@^4.0.0:
8350 7943 dependencies:
8351 7944 loose-envify "^1.0.0"
8352 7945  
8353   -wcwidth@^1.0.1:
8354   - version "1.0.1"
8355   - resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
8356   - integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=
8357   - dependencies:
8358   - defaults "^1.0.3"
8359   -
8360 7946 which-module@^2.0.0:
8361 7947 version "2.0.0"
8362 7948 resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
... ... @@ -8381,21 +7967,11 @@ which@^2.0.1:
8381 7967 dependencies:
8382 7968 isexe "^2.0.0"
8383 7969  
8384   -wmf@~1.0.1:
8385   - version "1.0.2"
8386   - resolved "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz#7d19d621071a08c2bdc6b7e688a9c435298cc2da"
8387   - integrity sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==
8388   -
8389 7970 word-wrap@^1.0.3, word-wrap@^1.2.3:
8390 7971 version "1.2.3"
8391 7972 resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
8392 7973 integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
8393 7974  
8394   -word@~0.3.0:
8395   - version "0.3.0"
8396   - resolved "https://registry.npmjs.org/word/-/word-0.3.0.tgz#8542157e4f8e849f4a363a288992d47612db9961"
8397   - integrity sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==
8398   -
8399 7975 wordwrap@^1.0.0:
8400 7976 version "1.0.0"
8401 7977 resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
... ... @@ -8598,27 +8174,6 @@ write-file-atomic@^3.0.3:
8598 8174 signal-exit "^3.0.2"
8599 8175 typedarray-to-buffer "^3.1.5"
8600 8176  
8601   -ws@^7.3.1:
8602   - version "7.4.1"
8603   - resolved "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz#a333be02696bd0e54cea0434e21dcc8a9ac294bb"
8604   - integrity sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==
8605   -
8606   -xlsx@^0.16.9:
8607   - version "0.16.9"
8608   - resolved "https://registry.npmjs.org/xlsx/-/xlsx-0.16.9.tgz#dacd5bb46bda6dd3743940c9c3dc1e2171826256"
8609   - integrity sha512-gxi1I3EasYvgCX1vN9pGyq920Ron4NO8PNfhuoA3Hpq6Y8f0ECXiy4OLrK4QZBnj1jx3QD+8Fq5YZ/3mPZ5iXw==
8610   - dependencies:
8611   - adler-32 "~1.2.0"
8612   - cfb "^1.1.4"
8613   - codepage "~1.14.0"
8614   - commander "~2.17.1"
8615   - crc-32 "~1.2.0"
8616   - exit-on-epipe "~1.0.1"
8617   - fflate "^0.3.8"
8618   - ssf "~0.11.2"
8619   - wmf "~1.0.1"
8620   - word "~0.3.0"
8621   -
8622 8177 xtend@~4.0.1:
8623 8178 version "4.0.2"
8624 8179 resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
... ... @@ -8716,11 +8271,6 @@ yargs@^16.0.3, yargs@^16.2.0:
8716 8271 y18n "^5.0.5"
8717 8272 yargs-parser "^20.2.2"
8718 8273  
8719   -ylru@^1.2.0:
8720   - version "1.2.1"
8721   - resolved "https://registry.npmjs.org/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f"
8722   - integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==
8723   -
8724 8274 yn@3.1.1:
8725 8275 version "3.1.1"
8726 8276 resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
... ...