Commit 173d4021629ca6efdeccb5ab234c5c346813b255

Authored by vben
1 parent 7bd0b8eb

refactor: add vite-plugin-html. Delete updateHtml related logic

CHANGELOG.zh_CN.md
1   -## # 2.0.0-rc.5 (2020-10-26)
  1 +## Wip
  2 +
  3 +### 🎫 Chores
  4 +
  5 +- 升级 vite 版本为`v1.0.0.rc8`
  6 +- vite.config.ts 内部 plugins 抽取
  7 +- build 目录结构调整
  8 +- 依赖更新
  9 +
  10 +### ✨ Refactor
  11 +
  12 +- 独立出`vite-plugin-html`,并修改相关插入 html 的逻辑
  13 +
  14 +## 2.0.0-rc.5 (2020-10-26)
2 15  
3 16 ### ✨ Features
4 17  
... ...
README.en-US.md
... ... @@ -31,6 +31,7 @@
31 31 - [Finished features](#finished-features)
32 32 - [Developing features](#developing-features)
33 33 - [Browser support](#browser-support)
  34 +- [Plugins](#plugins)
34 35  
35 36 ## Introduction
36 37  
... ... @@ -250,3 +251,10 @@ Support modern browsers, Not currently supported ie11,Follow-up consideration
250 251 | not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions |
251 252  
252 253 More browsers can view [Can I Use Es Module](https://caniuse.com/?search=ES%20Module)
  254 +
  255 +## Plugins
  256 +
  257 +If these plugins are helpful to you, you can give a star
  258 +
  259 +- [vite-plugin-mock](https://github.com/anncwb/vite-plugin-mock)
  260 +- [vite-plugin-html](https://github.com/anncwb/vite-plugin-html)
... ...
README.md
... ... @@ -31,6 +31,7 @@
31 31 - [已完成功能](#已完成功能)
32 32 - [正在开发的功能](#正在开发的功能)
33 33 - [浏览器支持](#浏览器支持)
  34 +- [插件](#插件-1)
34 35 - [加入我们](#加入我们)
35 36  
36 37 ## 介绍
... ... @@ -249,6 +250,13 @@ yarn clean:lib # 删除node_modules,兼容window系统
249 250  
250 251 更多浏览器可以查看 [Can I Use Es Module](https://caniuse.com/?search=ES%20Module)
251 252  
  253 +## 插件
  254 +
  255 +如果这些插件对你有帮助,可以给一个 star 支持下
  256 +
  257 +- [vite-plugin-mock](https://github.com/anncwb/vite-plugin-mock)
  258 +- [vite-plugin-html](https://github.com/anncwb/vite-plugin-html)
  259 +
252 260 ## 加入我们
253 261  
254 262 `Vue-Vben-Aadmin` 是完全开源免费的项目,在帮助开发者更方便地进行中大型管理系统开发,同时也提供 QQ 交流群(项目刚起步,人数较少,有兴趣的可以加群一起讨论),使用问题欢迎在群内提问。
... ...
build/config/glob/lessModifyVars.ts renamed to build/config/lessModifyVars.ts
build/script/postBuild.ts
... ... @@ -4,15 +4,15 @@ import { sh } from 'tasksfile';
4 4  
5 5 import { argv } from 'yargs';
6 6 import { runBuildConfig } from './buildConf';
7   -import { runUpdateHtml } from './updateHtml';
  7 +// import { runUpdateHtml } from './updateHtml';
8 8 import { errorConsole, successConsole } from '../utils';
9   -import { startGzipStyle } from '../plugin/gzip/compress';
  9 +import { startGzipStyle } from '../vite/plugin/gzip/compress';
10 10  
11 11 export const runBuild = async (preview = false) => {
12 12 try {
13 13 const argvList = argv._;
14 14 if (preview) {
15   - let cmd = `npm run build`;
  15 + let cmd = `cross-env NODE_ENV=production vite build`;
16 16 await sh(cmd, {
17 17 async: true,
18 18 nopipe: true,
... ... @@ -23,7 +23,7 @@ export const runBuild = async (preview = false) => {
23 23 if (!argvList.includes('no-conf')) {
24 24 await runBuildConfig();
25 25 }
26   - await runUpdateHtml();
  26 + // await runUpdateHtml();
27 27 if (!preview) {
28 28 await startGzipStyle();
29 29 }
... ...
build/script/updateHtml.ts deleted 100644 → 0
1   -import { readFileSync, writeFileSync, existsSync } from 'fs-extra';
2   -import viteConfig, { htmlConfig } from '../../vite.config';
3   -import { getCwdPath, successConsole, errorConsole } from '../utils';
4   -import { GLOB_CONFIG_FILE_NAME } from '../constant';
5   -import { hmScript } from './hm';
6   -import HtmlMinifier from 'html-minifier';
7   -const pkg = require('../../package.json');
8   -
9   -const { title, addHm, cdnConf, useCdn, minify } = htmlConfig;
10   -
11   -function injectTitle(html: string, htmlTitle: string) {
12   - if (/<\/title>/.test(html)) {
13   - return html.replace(/<\/title>/, `${htmlTitle}</title>`);
14   - }
15   - return html;
16   -}
17   -
18   -function injectConfigScript(html: string) {
19   - const tag = `\t\t<script src='${viteConfig.base || './'}${GLOB_CONFIG_FILE_NAME}?v=${
20   - pkg.version
21   - }-${new Date().getTime()}'></script>`;
22   -
23   - if (/<\/head>/.test(html)) {
24   - return html.replace(/<\/head>/, `${tag}\n\t\t</head>`);
25   - }
26   - return html;
27   -}
28   -
29   -function injectHmScript(html: string) {
30   - if (/<head>/.test(html)) {
31   - return html.replace(/<head>/, `<head>\n${hmScript}`);
32   - }
33   - return html;
34   -}
35   -
36   -function injectCdnCss(html: string) {
37   - if (!cdnConf) return html;
38   - const { css } = cdnConf;
39   - if (!css || css.length === 0) return html;
40   -
41   - let cdnCssTag = '';
42   - for (const cssLink of css) {
43   - cdnCssTag += `<link rel="stylesheet" href="${cssLink}">`;
44   - }
45   - if (/<\/head>/.test(html)) {
46   - return html.replace(/<\/head>/, `${cdnCssTag}\n\t\t</head>`);
47   - }
48   - return html;
49   -}
50   -
51   -function injectCdnjs(html: string) {
52   - if (!cdnConf) return html;
53   - const { js } = cdnConf;
54   - if (!js || js.length === 0) return html;
55   -
56   - let cdnJsTag = '';
57   - for (const src of js) {
58   - // TODO
59   - // <script type="importmap">
60   - // { "imports": {
61   - // "vue": "https://cdnjs.cloudflare.com/ajax/libs/vue/3.0.0/vue.esm-browser.js",
62   - // "vue-router": "https://cdnjs.cloudflare.com/ajax/libs/vue-router/4.0.0-alpha.13/vue-router.esm.js",
63   - // "vuex": "https://cdnjs.cloudflare.com/ajax/libs/vuex/4.0.0-beta.2/vuex.esm-browser.js"
64   - // } }
65   - // </script>
66   - cdnJsTag += `\t<script type="text/javascript" src="${src}"></script>\n`;
67   - }
68   - if (/<\/body>/.test(html)) {
69   - return html.replace(/<\/body>/, `${cdnJsTag}\n</body>`);
70   - }
71   - return html;
72   -}
73   -
74   -export async function runUpdateHtml() {
75   - const outDir = viteConfig.outDir || 'dist';
76   - const indexPath = getCwdPath(outDir, 'index.html');
77   - if (!existsSync(indexPath)) return;
78   - try {
79   - let processedHtml = '';
80   - const rawHtml = readFileSync(indexPath, 'utf-8');
81   - processedHtml = rawHtml;
82   - processedHtml = injectTitle(processedHtml, title);
83   - processedHtml = injectConfigScript(processedHtml);
84   - if (addHm) {
85   - processedHtml = injectHmScript(processedHtml);
86   - }
87   - if (useCdn) {
88   - processedHtml = injectCdnCss(processedHtml);
89   - processedHtml = injectCdnjs(processedHtml);
90   - }
91   - if (minify) {
92   - const { enable, ...miniOpt } = minify;
93   - if (enable) {
94   - processedHtml = HtmlMinifier.minify(processedHtml, miniOpt);
95   - }
96   - }
97   -
98   - writeFileSync(indexPath, processedHtml);
99   - successConsole('Update Html Successfully!');
100   - } catch (error) {
101   - errorConsole('Update Html Error\n' + error);
102   - }
103   -}
build/config/vite/cdn.ts renamed to build/vite/cdn.ts
build/script/hm.ts renamed to build/vite/hm.ts
build/plugin/vite-plugin-context/transform.ts renamed to build/vite/plugin/context/transform.ts
... ... @@ -2,7 +2,6 @@
2 2 // https://github.com/luxueyan/vite-transform-globby-import/blob/master/src/index.ts
3 3  
4 4 // TODO 目前还不能监听文件新增及删除 内容已经改变,缓存问题?
5   -// 可以使用,先不打算集成
6 5 import { join } from 'path';
7 6 import { lstatSync } from 'fs';
8 7 import glob from 'glob';
... ...
build/plugin/gzip/compress.ts renamed to build/vite/plugin/gzip/compress.ts
1 1 import { gzip } from 'zlib';
2 2 import { readFileSync, writeFileSync } from 'fs';
3 3 import { GzipPluginOptions } from './types';
4   -import viteConfig from '../../../vite.config';
5   -import { readAllFile, getCwdPath, isBuildGzip, isSiteMode } from '../../utils';
  4 +import viteConfig from '../../../../vite.config';
  5 +import { readAllFile, getCwdPath, isBuildGzip, isSiteMode } from '../../../utils';
6 6  
7 7 export function startGzip(
8 8 fileContent: string | Buffer,
... ...
build/plugin/gzip/index.ts renamed to build/vite/plugin/gzip/index.ts
build/plugin/gzip/types.ts renamed to build/vite/plugin/gzip/types.ts
build/vite/plugin/index.ts 0 → 100644
  1 +import type { Plugin as VitePlugin } from 'vite';
  2 +import type { Plugin as rollupPlugin } from 'rollup';
  3 +
  4 +import { createMockServer } from 'vite-plugin-mock';
  5 +import ViteHtmlPlugin from 'vite-plugin-html';
  6 +import PurgeIcons from 'vite-plugin-purge-icons';
  7 +
  8 +import visualizer from 'rollup-plugin-visualizer';
  9 +import gzipPlugin from './gzip/index';
  10 +
  11 +import { hmScript } from '../hm';
  12 +
  13 +const pkg = require('../../../package.json');
  14 +
  15 +import { isDevFn, isProdFn, isSiteMode, ViteEnv, isReportMode, isBuildGzip } from '../../utils';
  16 +import { GLOB_CONFIG_FILE_NAME } from '../../constant';
  17 +
  18 +// gen vite plugins
  19 +export function createVitePlugins(viteEnv: ViteEnv) {
  20 + const { VITE_USE_MOCK, VITE_GLOB_APP_TITLE, VITE_PUBLIC_PATH } = viteEnv;
  21 +
  22 + const vitePlugins: VitePlugin[] = [];
  23 +
  24 + // vite-plugin-html
  25 + vitePlugins.push(
  26 + ViteHtmlPlugin({
  27 + // html title
  28 + title: VITE_GLOB_APP_TITLE,
  29 + minify: isProdFn(),
  30 + options: {
  31 + // Package and insert additional configuration files
  32 + injectConfig: isProdFn()
  33 + ? `<script src='${VITE_PUBLIC_PATH || './'}${GLOB_CONFIG_FILE_NAME}?v=${
  34 + pkg.version
  35 + }-${new Date().getTime()}'></script>`
  36 + : '',
  37 + // Insert Baidu statistics code
  38 + hmScript: isSiteMode() ? hmScript : '',
  39 + },
  40 + })
  41 + );
  42 +
  43 + // vite-plugin-purge-icons
  44 + vitePlugins.push(PurgeIcons());
  45 +
  46 + // vite-plugin-mock
  47 + if (isDevFn() && VITE_USE_MOCK) {
  48 + // open mock
  49 + vitePlugins.push(
  50 + createMockServer({
  51 + ignore: /^\_/,
  52 + mockPath: 'mock',
  53 + })
  54 + );
  55 + }
  56 + return vitePlugins;
  57 +}
  58 +
  59 +// gen rollup plugins
  60 +export function createRollupPlugin() {
  61 + const rollupPlugins: rollupPlugin[] = [];
  62 +
  63 + if (isProdFn()) {
  64 + if (isReportMode()) {
  65 + // rollup-plugin-visualizer
  66 + rollupPlugins.push(
  67 + visualizer({ filename: './build/.cache/stats.html', open: true }) as Plugin
  68 + );
  69 + }
  70 + if (isBuildGzip() || isSiteMode()) {
  71 + // rollup-plugin-gizp
  72 + rollupPlugins.push(gzipPlugin());
  73 + }
  74 + }
  75 + return rollupPlugins;
  76 +}
... ...
build/config/vite/proxy.ts renamed to build/vite/proxy.ts
index.html
1 1 <!DOCTYPE html>
2 2 <html lang="en">
3 3 <head>
  4 + <%= viteHtmlPluginOptions.hmScript %>
4 5 <meta charset="UTF-8" />
5 6 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
6 7 <meta name="renderer" content="webkit" />
... ... @@ -10,6 +11,7 @@
10 11 />
11 12 <title></title>
12 13 <link rel="icon" href="/favicon.ico" />
  14 + <%= viteHtmlPluginOptions.injectConfig %>
13 15 </head>
14 16 <body>
15 17 <div id="app">
... ...
package.json
... ... @@ -4,7 +4,7 @@
4 4 "scripts": {
5 5 "bootstrap": "yarn install",
6 6 "serve": "esno ./build/script/preserve.ts && cross-env NODE_ENV=development vite",
7   - "build": "cross-env NODE_ENV=production vite build && esno ./build/script/postBuild.ts",
  7 + "build": "rimraf dist && cross-env NODE_ENV=production vite build && esno ./build/script/postBuild.ts",
8 8 "build:site": "cross-env SITE=true npm run build ",
9 9 "build:no-cache": "yarn clean:cache && npm run build",
10 10 "report": "cross-env REPORT=true npm run build ",
... ... @@ -48,7 +48,6 @@
48 48 "@purge-icons/generated": "^0.4.1",
49 49 "@types/echarts": "^4.8.3",
50 50 "@types/fs-extra": "^9.0.2",
51   - "@types/html-minifier": "^4.0.0",
52 51 "@types/koa-static": "^4.0.1",
53 52 "@types/lodash-es": "^4.17.3",
54 53 "@types/mockjs": "^1.0.3",
... ... @@ -72,7 +71,6 @@
72 71 "eslint-plugin-vue": "^7.1.0",
73 72 "esno": "^0.2.4",
74 73 "fs-extra": "^9.0.1",
75   - "html-minifier": "^4.0.0",
76 74 "husky": "^4.3.0",
77 75 "koa-static": "^5.0.0",
78 76 "less": "^3.12.2",
... ... @@ -90,6 +88,7 @@
90 88 "tasksfile": "^5.1.1",
91 89 "ts-node": "^9.0.0",
92 90 "typescript": "^4.0.5",
  91 + "vite-plugin-html": "^1.0.0-beta.2",
93 92 "vite-plugin-mock": "^1.0.4",
94 93 "vite-plugin-purge-icons": "^0.4.4",
95 94 "vue-eslint-parser": "^7.1.1",
... ...
src/settings/projectSetting.ts
... ... @@ -2,7 +2,7 @@ import type { ProjectConfig } from &#39;/@/types/config&#39;;
2 2  
3 3 import { MenuTypeEnum, MenuThemeEnum, MenuModeEnum } from '/@/enums/menuEnum';
4 4 import { ContentEnum, PermissionModeEnum, RouterTransitionEnum } from '/@/enums/appEnum';
5   -import { primaryColor } from '../../build/config/glob/lessModifyVars';
  5 +import { primaryColor } from '../../build/config/lessModifyVars';
6 6 import { isProdMode } from '/@/utils/env';
7 7 // ! 改动后需要清空浏览器缓存
8 8 const setting: ProjectConfig = {
... ...
vite.config.ts
  1 +import type { UserConfig } from 'vite';
  2 +
1 3 import { resolve } from 'path';
2 4  
3   -import type { UserConfig, Plugin as VitePlugin } from 'vite';
  5 +import { modifyVars } from './build/config/lessModifyVars';
  6 +import { createProxy } from './build/vite/proxy';
  7 +import globbyTransform from './build/vite/plugin/context/transform';
  8 +
  9 +import { isDevFn, loadEnv } from './build/utils';
4 10  
5   -import visualizer from 'rollup-plugin-visualizer';
6   -import { modifyVars } from './build/config/glob/lessModifyVars';
7   -import {
8   - // externals,
9   - cdnConf,
10   -} from './build/config/vite/cdn';
11   -import { createProxy } from './build/config/vite/proxy';
12   -import { createMockServer } from 'vite-plugin-mock';
13   -import PurgeIcons from 'vite-plugin-purge-icons';
14   -import gzipPlugin from './build/plugin/gzip/index';
15   -import globbyTransform from './build/plugin/vite-plugin-context/transform';
  11 +import { createRollupPlugin, createVitePlugins } from './build/vite/plugin';
16 12  
17   -import { isDevFn, isReportMode, isProdFn, loadEnv, isBuildGzip, isSiteMode } from './build/utils';
18 13 const pkg = require('./package.json');
19 14  
  15 +const viteEnv = loadEnv();
  16 +
20 17 const {
21   - VITE_USE_MOCK,
22 18 VITE_PORT,
23 19 VITE_PUBLIC_PATH,
24 20 VITE_PROXY,
25   - VITE_GLOB_APP_TITLE,
26 21 VITE_DROP_CONSOLE,
27 22 // VITE_USE_CDN,
28   -} = loadEnv();
  23 +} = viteEnv;
29 24  
30 25 function pathResolve(dir: string) {
31 26 return resolve(__dirname, '.', dir);
32 27 }
33 28  
34   -const rollupPlugins: any[] = [];
35   -const vitePlugins: VitePlugin[] = [];
36   -
37   -(() => {
38   - if (isProdFn()) {
39   - if (isReportMode()) {
40   - // report
41   - rollupPlugins.push(
42   - visualizer({ filename: './build/.cache/stats.html', open: true }) as Plugin
43   - );
44   - }
45   - if (isBuildGzip() || isSiteMode()) {
46   - rollupPlugins.push(gzipPlugin());
47   - }
48   - }
49   -
50   - if (isDevFn() && VITE_USE_MOCK) {
51   - // open mock
52   - vitePlugins.push(
53   - createMockServer({
54   - ignore: /^\_/,
55   - mockPath: 'mock',
56   - })
57   - );
58   - }
59   -})();
60   -
61 29 const viteConfig: UserConfig = {
62 30 /**
63 31 * Entry. Use this to specify a js entry file in use cases where an
... ... @@ -152,54 +120,14 @@ const viteConfig: UserConfig = {
152 120  
153 121 // 本地跨域代理
154 122 proxy: createProxy(VITE_PROXY),
155   -
156   - plugins: [PurgeIcons(), ...vitePlugins],
157   - rollupOutputOptions: {},
  123 + plugins: createVitePlugins(viteEnv),
158 124 rollupInputOptions: {
159 125 // TODO
160 126 // external: VITE_USE_CDN ? externals : [],
161   - plugins: rollupPlugins,
  127 + plugins: createRollupPlugin(),
162 128 },
163 129 };
164 130  
165   -// 扩展配置, 往打包后的html注入内容
166   -// 只针对生产环境
167   -// TODO 目前只是简单手动注入实现,后续vite应该会提供配置项
168   -export const htmlConfig: {
169   - title: string;
170   - addHm?: boolean;
171   - cdnConf?: {
172   - css?: string[];
173   - js?: string[];
174   - };
175   - useCdn: boolean;
176   - minify: {
177   - enable: boolean;
178   - removeComments: boolean;
179   - collapseWhitespace: boolean;
180   - minifyJS: boolean;
181   - minifyCSS: boolean;
182   - };
183   -} = {
184   - // html title
185   - title: VITE_GLOB_APP_TITLE,
186   - // 百度统计,不需要可以删除
187   - // 用于打包部署站点使用。实际项目可以删除
188   - addHm: isSiteMode(),
189   - // 使用cdn打包
190   - // TODO Cdn esm使用方式需要只能支持google,暂时关闭,后续查询更好的方式
191   - useCdn: false,
192   - // useCdn: VITE_USE_CDN,
193   - // cdn列表
194   - cdnConf,
195   - minify: {
196   - enable: true,
197   - removeComments: true,
198   - collapseWhitespace: true,
199   - minifyJS: true,
200   - minifyCSS: true,
201   - },
202   -};
203 131 export default {
204 132 ...viteConfig,
205 133 transforms: [globbyTransform(viteConfig)],
... ...
yarn.lock
... ... @@ -352,10 +352,10 @@
352 352 resolved "https://registry.npmjs.org/@commitlint/types/-/types-11.0.0.tgz#719cf05fcc1abb6533610a2e0f5dd1e61eac14fe"
353 353 integrity sha512-VoNqai1vR5anRF5Tuh/+SWDFk7xi7oMwHrHrbm1BprYXjB2RJsWLhUrStMssDxEl5lW/z3EUdg8RvH/IUBccSQ==
354 354  
355   -"@eslint/eslintrc@^0.2.0":
356   - version "0.2.0"
357   - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.0.tgz#bc7e3c4304d4c8720968ccaee793087dfb5fe6b4"
358   - integrity sha512-+cIGPCBdLCzqxdtwppswP+zTsH9BOIGzAeKfBIbtb4gW/giMlfMwP0HUSFfhzh20f9u8uZ8hOp62+4GPquTbwQ==
  355 +"@eslint/eslintrc@^0.2.1":
  356 + version "0.2.1"
  357 + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.1.tgz#f72069c330461a06684d119384435e12a5d76e3c"
  358 + integrity sha512-XRUeBZ5zBWLYgSANMpThFddrZZkEbGHgUdt5UJjZfnlN9BGCiUBrf+nvbRupSjMvqzwnQN0qwCmOxITt1cfywA==
359 359 dependencies:
360 360 ajv "^6.12.4"
361 361 debug "^4.1.1"
... ... @@ -496,11 +496,10 @@
496 496 picomatch "^2.2.2"
497 497  
498 498 "@rollup/pluginutils@^4.0.0":
499   - version "4.0.0"
500   - resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.0.0.tgz#e18e9f5a3925779fc15209dd316c1bd260d195ef"
501   - integrity sha512-b5QiJRye4JlSg29bKNEECoKbLuPXZkPEHSgEjjP1CJV1CPdDBybfYHfm6kyq8yK51h/Zsyl8OvWUrp0FUBukEQ==
  499 + version "4.1.0"
  500 + resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.0.tgz#0dcc61c780e39257554feb7f77207dceca13c838"
  501 + integrity sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ==
502 502 dependencies:
503   - "@types/estree" "0.0.45"
504 503 estree-walker "^2.0.1"
505 504 picomatch "^2.2.2"
506 505  
... ... @@ -542,13 +541,6 @@
542 541 "@types/connect" "*"
543 542 "@types/node" "*"
544 543  
545   -"@types/clean-css@*":
546   - version "4.2.2"
547   - resolved "https://registry.npmjs.org/@types/clean-css/-/clean-css-4.2.2.tgz#99fd79f6939c2b325938a1c569712e07dd97d709"
548   - integrity sha512-xiTJn3bmDh1lA8c6iVJs4ZhHw+pcmxXlJQXOB6G1oULaak8rmarIeFKI4aTJ7849dEhaO612wgIualZfbxTJwA==
549   - dependencies:
550   - "@types/node" "*"
551   -
552 544 "@types/connect@*":
553 545 version "3.4.33"
554 546 resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546"
... ... @@ -578,7 +570,7 @@
578 570 dependencies:
579 571 "@types/zrender" "*"
580 572  
581   -"@types/estree@*", "@types/estree@0.0.45":
  573 +"@types/estree@*":
582 574 version "0.0.45"
583 575 resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884"
584 576 integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==
... ... @@ -614,15 +606,6 @@
614 606 dependencies:
615 607 "@types/node" "*"
616 608  
617   -"@types/html-minifier@^4.0.0":
618   - version "4.0.0"
619   - resolved "https://registry.npmjs.org/@types/html-minifier/-/html-minifier-4.0.0.tgz#2065cb9944f2d1b241146707c6935aa7b947d279"
620   - integrity sha512-eFnGhrKmjWBlnSGNtunetE3UU2Tc/LUl92htFslSSTmpp9EKHQVcYQadCyYfnzUEFB5G/3wLWo/USQS/mEPKrA==
621   - dependencies:
622   - "@types/clean-css" "*"
623   - "@types/relateurl" "*"
624   - "@types/uglify-js" "*"
625   -
626 609 "@types/http-assert@*":
627 610 version "1.5.1"
628 611 resolved "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz#d775e93630c2469c2f980fc27e3143240335db3b"
... ... @@ -712,9 +695,9 @@
712 695 integrity sha512-OlwyyyoY81P8f7FU0zILUPxqQQ3/W+CwbqI6dWvOxaH8w948fAl1+hOG9C9ZgJcwzG+aloJcsastY4c4p91R1Q==
713 696  
714 697 "@types/node@*":
715   - version "14.14.3"
716   - resolved "https://registry.npmjs.org/@types/node/-/node-14.14.3.tgz#e1c09064121f894baaad2bd9f12ce4a41bffb274"
717   - integrity sha512-33/L34xS7HVUx23e0wOT2V1qPF1IrHgQccdJVm9uXGTB9vFBrrzBtkQymT8VskeKOxjz55MSqMv0xuLq+u98WQ==
  698 + version "14.14.5"
  699 + resolved "https://registry.npmjs.org/@types/node/-/node-14.14.5.tgz#e92d3b8f76583efa26c1a63a21c9d3c1143daa29"
  700 + integrity sha512-H5Wn24s/ZOukBmDn03nnGTp18A60ny9AmCwnEcgJiTgSGsCO7k+NWP7zjCCbhlcnVCoI+co52dUAt9GMhOSULw==
718 701  
719 702 "@types/normalize-package-data@^2.4.0":
720 703 version "2.4.0"
... ... @@ -748,11 +731,6 @@
748 731 resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c"
749 732 integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==
750 733  
751   -"@types/relateurl@*":
752   - version "0.2.28"
753   - resolved "https://registry.npmjs.org/@types/relateurl/-/relateurl-0.2.28.tgz#6bda7db8653fa62643f5ee69e9f69c11a392e3a6"
754   - integrity sha1-a9p9uGU/piZD9e5p6facEaOS46Y=
755   -
756 734 "@types/resolve@1.17.1":
757 735 version "1.17.1"
758 736 resolved "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6"
... ... @@ -776,13 +754,6 @@
776 754 "@types/mime" "*"
777 755 "@types/node" "*"
778 756  
779   -"@types/uglify-js@*":
780   - version "3.11.0"
781   - resolved "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.11.0.tgz#2868d405cc45cd9dc3069179052103032c33afbc"
782   - integrity sha512-I0Yd8TUELTbgRHq2K65j8rnDPAzAP+DiaF/syLem7yXwYLsHZhPd+AM2iXsWmf9P2F2NlFCgl5erZPQx9IbM9Q==
783   - dependencies:
784   - source-map "^0.6.1"
785   -
786 757 "@types/unist@^2.0.0", "@types/unist@^2.0.2":
787 758 version "2.0.3"
788 759 resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e"
... ... @@ -1422,13 +1393,13 @@ callsites@^3.0.0:
1422 1393 resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
1423 1394 integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
1424 1395  
1425   -camel-case@^3.0.0:
1426   - version "3.0.0"
1427   - resolved "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73"
1428   - integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=
  1396 +camel-case@^4.1.1:
  1397 + version "4.1.1"
  1398 + resolved "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz#1fc41c854f00e2f7d0139dfeba1542d6896fe547"
  1399 + integrity sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==
1429 1400 dependencies:
1430   - no-case "^2.2.0"
1431   - upper-case "^1.1.1"
  1401 + pascal-case "^3.1.1"
  1402 + tslib "^1.10.0"
1432 1403  
1433 1404 camelcase-keys@^2.0.0:
1434 1405 version "2.1.0"
... ... @@ -1571,7 +1542,7 @@ class-utils@^0.3.5:
1571 1542 isobject "^3.0.0"
1572 1543 static-extend "^0.1.1"
1573 1544  
1574   -clean-css@^4.2.1, clean-css@^4.2.3:
  1545 +clean-css@^4.2.3:
1575 1546 version "4.2.3"
1576 1547 resolved "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78"
1577 1548 integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==
... ... @@ -1724,11 +1695,16 @@ commander@*, commander@^6.0.0:
1724 1695 resolved "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz#b990bfb8ac030aedc6d11bc04d1488ffef56db75"
1725 1696 integrity sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==
1726 1697  
1727   -commander@^2.19.0, commander@^2.20.0:
  1698 +commander@^2.20.0:
1728 1699 version "2.20.3"
1729 1700 resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
1730 1701 integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
1731 1702  
  1703 +commander@^4.1.1:
  1704 + version "4.1.1"
  1705 + resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
  1706 + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
  1707 +
1732 1708 commander@~2.14.1:
1733 1709 version "2.14.1"
1734 1710 resolved "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa"
... ... @@ -2318,6 +2294,14 @@ domutils@^1.5.1:
2318 2294 dom-serializer "0"
2319 2295 domelementtype "1"
2320 2296  
  2297 +dot-case@^3.0.3:
  2298 + version "3.0.3"
  2299 + resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz#21d3b52efaaba2ea5fda875bb1aa8124521cf4aa"
  2300 + integrity sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==
  2301 + dependencies:
  2302 + no-case "^3.0.3"
  2303 + tslib "^1.10.0"
  2304 +
2321 2305 dot-prop@^5.1.0:
2322 2306 version "5.3.0"
2323 2307 resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"
... ... @@ -2500,12 +2484,12 @@ eslint-visitor-keys@^2.0.0:
2500 2484 integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==
2501 2485  
2502 2486 eslint@^7.12.0:
2503   - version "7.12.0"
2504   - resolved "https://registry.npmjs.org/eslint/-/eslint-7.12.0.tgz#7b6a85f87a9adc239e979bb721cde5ce0dc27da6"
2505   - integrity sha512-n5pEU27DRxCSlOhJ2rO57GDLcNsxO0LPpAbpFdh7xmcDmjmlGUfoyrsB3I7yYdQXO5N3gkSTiDrPSPNFiiirXA==
  2487 + version "7.12.1"
  2488 + resolved "https://registry.npmjs.org/eslint/-/eslint-7.12.1.tgz#bd9a81fa67a6cfd51656cdb88812ce49ccec5801"
  2489 + integrity sha512-HlMTEdr/LicJfN08LB3nM1rRYliDXOmfoO4vj39xN6BLpFzF00hbwBoqHk8UcJ2M/3nlARZWy/mslvGEuZFvsg==
2506 2490 dependencies:
2507 2491 "@babel/code-frame" "^7.0.0"
2508   - "@eslint/eslintrc" "^0.2.0"
  2492 + "@eslint/eslintrc" "^0.2.1"
2509 2493 ajv "^6.10.0"
2510 2494 chalk "^4.0.0"
2511 2495 cross-spawn "^7.0.2"
... ... @@ -3265,18 +3249,18 @@ hosted-git-info@^2.1.4:
3265 3249 resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488"
3266 3250 integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==
3267 3251  
3268   -html-minifier@^4.0.0:
3269   - version "4.0.0"
3270   - resolved "https://registry.npmjs.org/html-minifier/-/html-minifier-4.0.0.tgz#cca9aad8bce1175e02e17a8c33e46d8988889f56"
3271   - integrity sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==
  3252 +html-minifier-terser@^5.1.1:
  3253 + version "5.1.1"
  3254 + resolved "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054"
  3255 + integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==
3272 3256 dependencies:
3273   - camel-case "^3.0.0"
3274   - clean-css "^4.2.1"
3275   - commander "^2.19.0"
  3257 + camel-case "^4.1.1"
  3258 + clean-css "^4.2.3"
  3259 + commander "^4.1.1"
3276 3260 he "^1.2.0"
3277   - param-case "^2.1.1"
  3261 + param-case "^3.0.3"
3278 3262 relateurl "^0.2.7"
3279   - uglify-js "^3.5.1"
  3263 + terser "^4.6.3"
3280 3264  
3281 3265 html-tags@^3.1.0:
3282 3266 version "3.1.0"
... ... @@ -4298,10 +4282,12 @@ loud-rejection@^1.0.0:
4298 4282 currently-unhandled "^0.4.1"
4299 4283 signal-exit "^3.0.0"
4300 4284  
4301   -lower-case@^1.1.1:
4302   - version "1.1.4"
4303   - resolved "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
4304   - integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw=
  4285 +lower-case@^2.0.1:
  4286 + version "2.0.1"
  4287 + resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz#39eeb36e396115cc05e29422eaea9e692c9408c7"
  4288 + integrity sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==
  4289 + dependencies:
  4290 + tslib "^1.10.0"
4305 4291  
4306 4292 lru-cache@^5.1.1:
4307 4293 version "5.1.1"
... ... @@ -4650,12 +4636,13 @@ neo-async@^2.6.0:
4650 4636 resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
4651 4637 integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
4652 4638  
4653   -no-case@^2.2.0:
4654   - version "2.3.2"
4655   - resolved "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac"
4656   - integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==
  4639 +no-case@^3.0.3:
  4640 + version "3.0.3"
  4641 + resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz#c21b434c1ffe48b39087e86cfb4d2582e9df18f8"
  4642 + integrity sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==
4657 4643 dependencies:
4658   - lower-case "^1.1.1"
  4644 + lower-case "^2.0.1"
  4645 + tslib "^1.10.0"
4659 4646  
4660 4647 node-emoji@^1.10.0:
4661 4648 version "1.10.0"
... ... @@ -4902,12 +4889,13 @@ p-try@^2.0.0:
4902 4889 resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
4903 4890 integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
4904 4891  
4905   -param-case@^2.1.1:
4906   - version "2.1.1"
4907   - resolved "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247"
4908   - integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc=
  4892 +param-case@^3.0.3:
  4893 + version "3.0.3"
  4894 + resolved "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz#4be41f8399eff621c56eebb829a5e451d9801238"
  4895 + integrity sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==
4909 4896 dependencies:
4910   - no-case "^2.2.0"
  4897 + dot-case "^3.0.3"
  4898 + tslib "^1.10.0"
4911 4899  
4912 4900 parent-module@^1.0.0:
4913 4901 version "1.0.1"
... ... @@ -4968,6 +4956,14 @@ parseurl@^1.3.2:
4968 4956 resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
4969 4957 integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
4970 4958  
  4959 +pascal-case@^3.1.1:
  4960 + version "3.1.1"
  4961 + resolved "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz#5ac1975133ed619281e88920973d2cd1f279de5f"
  4962 + integrity sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==
  4963 + dependencies:
  4964 + no-case "^3.0.3"
  4965 + tslib "^1.10.0"
  4966 +
4971 4967 pascalcase@^0.1.1:
4972 4968 version "0.1.1"
4973 4969 resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
... ... @@ -5807,9 +5803,9 @@ run-async@^2.2.0:
5807 5803 integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==
5808 5804  
5809 5805 run-parallel@^1.1.9:
5810   - version "1.1.9"
5811   - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679"
5812   - integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==
  5806 + version "1.1.10"
  5807 + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef"
  5808 + integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==
5813 5809  
5814 5810 rxjs@^6.4.0, rxjs@^6.6.2:
5815 5811 version "6.6.3"
... ... @@ -6025,7 +6021,7 @@ source-map-resolve@^0.5.0:
6025 6021 source-map-url "^0.4.0"
6026 6022 urix "^0.1.0"
6027 6023  
6028   -source-map-support@^0.5.17, source-map-support@^0.5.19, source-map-support@~0.5.19:
  6024 +source-map-support@^0.5.17, source-map-support@^0.5.19, source-map-support@~0.5.12, source-map-support@~0.5.19:
6029 6025 version "0.5.19"
6030 6026 resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
6031 6027 integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
... ... @@ -6043,7 +6039,7 @@ source-map@^0.5.0, source-map@^0.5.6:
6043 6039 resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
6044 6040 integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
6045 6041  
6046   -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0:
  6042 +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
6047 6043 version "0.6.1"
6048 6044 resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
6049 6045 integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
... ... @@ -6507,6 +6503,15 @@ tempfile@^3.0.0:
6507 6503 temp-dir "^2.0.0"
6508 6504 uuid "^3.3.2"
6509 6505  
  6506 +terser@^4.6.3:
  6507 + version "4.8.0"
  6508 + resolved "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17"
  6509 + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==
  6510 + dependencies:
  6511 + commander "^2.20.0"
  6512 + source-map "~0.6.1"
  6513 + source-map-support "~0.5.12"
  6514 +
6510 6515 terser@^5.0.0:
6511 6516 version "5.3.8"
6512 6517 resolved "https://registry.npmjs.org/terser/-/terser-5.3.8.tgz#991ae8ba21a3d990579b54aa9af11586197a75dd"
... ... @@ -6711,7 +6716,7 @@ typescript@^4.0.5:
6711 6716 resolved "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz#ae9dddfd1069f1cb5beb3ef3b2170dd7c1332389"
6712 6717 integrity sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==
6713 6718  
6714   -uglify-js@^3.1.4, uglify-js@^3.5.1:
  6719 +uglify-js@^3.1.4:
6715 6720 version "3.11.4"
6716 6721 resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.11.4.tgz#b47b7ae99d4bd1dca65b53aaa69caa0909e6fadf"
6717 6722 integrity sha512-FyYnoxVL1D6+jDGQpbK5jW6y/2JlVfRfEeQ67BPCUg5wfCjaKOpr2XeceE4QL+MkhxliLtf5EbrMDZgzpt2CNw==
... ... @@ -6817,11 +6822,6 @@ unset-value@^1.0.0:
6817 6822 has-value "^0.3.1"
6818 6823 isobject "^3.0.0"
6819 6824  
6820   -upper-case@^1.1.1:
6821   - version "1.1.3"
6822   - resolved "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598"
6823   - integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=
6824   -
6825 6825 uri-js@^4.2.2:
6826 6826 version "4.4.0"
6827 6827 resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602"
... ... @@ -6898,6 +6898,14 @@ vfile@^4.0.0:
6898 6898 unist-util-stringify-position "^2.0.0"
6899 6899 vfile-message "^2.0.0"
6900 6900  
  6901 +vite-plugin-html@^1.0.0-beta.2:
  6902 + version "1.0.0-beta.2"
  6903 + resolved "https://registry.npmjs.org/vite-plugin-html/-/vite-plugin-html-1.0.0-beta.2.tgz#f30cdba4ca70469e62b770e32c407ce5d7f9b544"
  6904 + integrity sha512-8d/jMcs4tI4Oyf7mG8VAArT9afJhbRbw/jljRutHBluUWgr4rzZsVpEsQIqnqbuElU5AECdovlLI52D50pE/OQ==
  6905 + dependencies:
  6906 + html-minifier-terser "^5.1.1"
  6907 + lodash "^4.17.20"
  6908 +
6901 6909 vite-plugin-mock@^1.0.4:
6902 6910 version "1.0.4"
6903 6911 resolved "https://registry.npmjs.org/vite-plugin-mock/-/vite-plugin-mock-1.0.4.tgz#56631559afcd77046b058f162b2b5e8f5aaa7b17"
... ...