Commit a09a0eedd29fdc9a9bd5414bd12c08e37c72982a

Authored by vben
1 parent be3a3ed6

perf: improve login logic

package.json
@@ -13,7 +13,6 @@ @@ -13,7 +13,6 @@
13 "log": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0", 13 "log": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
14 "clean:cache": "rimraf node_modules/.cache/ && rimraf node_modules/.vite", 14 "clean:cache": "rimraf node_modules/.cache/ && rimraf node_modules/.vite",
15 "clean:lib": "npx rimraf node_modules", 15 "clean:lib": "npx rimraf node_modules",
16 - "typecheck": "vuedx-typecheck .",  
17 "lint:eslint": "eslint \"{src,mock}/**/*.{vue,ts,tsx}\" --fix", 16 "lint:eslint": "eslint \"{src,mock}/**/*.{vue,ts,tsx}\" --fix",
18 "lint:prettier": "prettier --write --loglevel warn \"src/**/*.{js,json,tsx,css,less,scss,vue,html,md}\"", 17 "lint:prettier": "prettier --write --loglevel warn \"src/**/*.{js,json,tsx,css,less,scss,vue,html,md}\"",
19 "lint:stylelint": "stylelint --fix \"**/*.{vue,less,postcss,css,scss}\" --cache --cache-location node_modules/.cache/stylelint/", 18 "lint:stylelint": "stylelint --fix \"**/*.{vue,less,postcss,css,scss}\" --cache --cache-location node_modules/.cache/stylelint/",
@@ -27,7 +26,7 @@ @@ -27,7 +26,7 @@
27 }, 26 },
28 "dependencies": { 27 "dependencies": {
29 "@iconify/iconify": "^2.0.0-rc.6", 28 "@iconify/iconify": "^2.0.0-rc.6",
30 - "@vueuse/core": "^4.1.1", 29 + "@vueuse/core": "^4.2.1",
31 "@zxcvbn-ts/core": "^0.2.0", 30 "@zxcvbn-ts/core": "^0.2.0",
32 "ant-design-vue": "2.0.0", 31 "ant-design-vue": "2.0.0",
33 "apexcharts": "^3.25.0", 32 "apexcharts": "^3.25.0",
@@ -52,7 +51,7 @@ @@ -52,7 +51,7 @@
52 "devDependencies": { 51 "devDependencies": {
53 "@commitlint/cli": "^11.0.0", 52 "@commitlint/cli": "^11.0.0",
54 "@commitlint/config-conventional": "^11.0.0", 53 "@commitlint/config-conventional": "^11.0.0",
55 - "@iconify/json": "^1.1.306", 54 + "@iconify/json": "^1.1.307",
56 "@ls-lint/ls-lint": "^1.9.2", 55 "@ls-lint/ls-lint": "^1.9.2",
57 "@purge-icons/generated": "^0.7.0", 56 "@purge-icons/generated": "^0.7.0",
58 "@types/fs-extra": "^9.0.7", 57 "@types/fs-extra": "^9.0.7",
@@ -70,8 +69,6 @@ @@ -70,8 +69,6 @@
70 "@vitejs/plugin-vue": "^1.1.4", 69 "@vitejs/plugin-vue": "^1.1.4",
71 "@vitejs/plugin-vue-jsx": "^1.1.0", 70 "@vitejs/plugin-vue-jsx": "^1.1.0",
72 "@vue/compiler-sfc": "^3.0.5", 71 "@vue/compiler-sfc": "^3.0.5",
73 - "@vuedx/typecheck": "^0.6.3",  
74 - "@vuedx/typescript-plugin-vue": "^0.6.3",  
75 "autoprefixer": "^10.2.4", 72 "autoprefixer": "^10.2.4",
76 "commitizen": "^4.2.3", 73 "commitizen": "^4.2.3",
77 "conventional-changelog-cli": "^2.1.1", 74 "conventional-changelog-cli": "^2.1.1",
@@ -84,7 +81,7 @@ @@ -84,7 +81,7 @@
84 "esno": "^0.4.4", 81 "esno": "^0.4.4",
85 "fs-extra": "^9.1.0", 82 "fs-extra": "^9.1.0",
86 "http-server": "^0.12.3", 83 "http-server": "^0.12.3",
87 - "husky": "^5.0.9", 84 + "husky": "^5.1.0",
88 "is-ci": "^3.0.0", 85 "is-ci": "^3.0.0",
89 "less": "^4.1.1", 86 "less": "^4.1.1",
90 "lint-staged": "^10.5.4", 87 "lint-staged": "^10.5.4",
@@ -100,14 +97,14 @@ @@ -100,14 +97,14 @@
100 "typescript": "^4.1.5", 97 "typescript": "^4.1.5",
101 "vite": "2.0.1", 98 "vite": "2.0.1",
102 "vite-plugin-compression": "^0.2.1", 99 "vite-plugin-compression": "^0.2.1",
103 - "vite-plugin-html": "^2.0.0", 100 + "vite-plugin-html": "^2.0.1",
104 "vite-plugin-imagemin": "^0.2.7", 101 "vite-plugin-imagemin": "^0.2.7",
105 "vite-plugin-mock": "^2.1.4", 102 "vite-plugin-mock": "^2.1.4",
106 "vite-plugin-purge-icons": "^0.7.0", 103 "vite-plugin-purge-icons": "^0.7.0",
107 - "vite-plugin-pwa": "^0.5.2", 104 + "vite-plugin-pwa": "^0.5.3",
108 "vite-plugin-style-import": "^0.7.3", 105 "vite-plugin-style-import": "^0.7.3",
109 "vite-plugin-theme": "^0.4.3", 106 "vite-plugin-theme": "^0.4.3",
110 - "vite-plugin-windicss": "0.4.3", 107 + "vite-plugin-windicss": "0.4.4",
111 "vue-eslint-parser": "^7.5.0", 108 "vue-eslint-parser": "^7.5.0",
112 "yargs": "^16.2.0" 109 "yargs": "^16.2.0"
113 }, 110 },
src/components/CountDown/src/CountdownInput.vue
1 <template> 1 <template>
2 - <div :class="prefixCls">  
3 - <AInput v-bind="$attrs" :size="size" v-model:value="state">  
4 - <template #addonAfter>  
5 - <CountButton :size="size" :count="count" :beforeStartFunc="sendCodeApi" />  
6 - </template>  
7 - </AInput>  
8 - </div> 2 + <AInput v-bind="$attrs" :class="prefixCls" :size="size">
  3 + <template #addonAfter>
  4 + <CountButton :size="size" :count="count" :beforeStartFunc="sendCodeApi" />
  5 + </template>
  6 + </AInput>
9 </template> 7 </template>
10 <script lang="ts"> 8 <script lang="ts">
11 import { defineComponent, PropType } from 'vue'; 9 import { defineComponent, PropType } from 'vue';
@@ -32,7 +30,6 @@ @@ -32,7 +30,6 @@
32 }, 30 },
33 setup(props) { 31 setup(props) {
34 const { prefixCls } = useDesign('countdown-input'); 32 const { prefixCls } = useDesign('countdown-input');
35 -  
36 const [state] = useRuleFormItem(props); 33 const [state] = useRuleFormItem(props);
37 return { prefixCls, state }; 34 return { prefixCls, state };
38 }, 35 },
src/design/var/breakpoint.less
@@ -2,17 +2,32 @@ @@ -2,17 +2,32 @@
2 // ==============ๅฑๅน•ๆ–ญ็‚น============ 2 // ==============ๅฑๅน•ๆ–ญ็‚น============
3 // ================================= 3 // =================================
4 4
  5 +// Extra small screen / phone
  6 +@screen-xs: 480px;
  7 +@screen-xs-min: @screen-xs;
  8 +
5 // Small screen / tablet 9 // Small screen / tablet
6 -@screen-sm: 640px; 10 +@screen-sm: 576px;
  11 +@screen-sm-min: @screen-sm;
7 12
8 // Medium screen / desktop 13 // Medium screen / desktop
9 @screen-md: 768px; 14 @screen-md: 768px;
  15 +@screen-md-min: @screen-md;
10 16
11 // Large screen / wide desktop 17 // Large screen / wide desktop
12 -@screen-lg: 1024px; 18 +@screen-lg: 992px;
  19 +@screen-lg-min: @screen-lg;
13 20
14 // Extra large screen / full hd 21 // Extra large screen / full hd
15 -@screen-xl: 1280px; 22 +@screen-xl: 1200px;
  23 +@screen-xl-min: @screen-xl;
16 24
17 // Extra extra large screen / large desktop 25 // Extra extra large screen / large desktop
18 -@screen-2xl: 1536px; 26 +@screen-2xl: 1600px;
  27 +@screen-2xl-min: @screen-2xl;
  28 +
  29 +@screen-xs-max: (@screen-sm-min - 1px);
  30 +@screen-sm-max: (@screen-md-min - 1px);
  31 +@screen-md-max: (@screen-lg-min - 1px);
  32 +@screen-lg-max: (@screen-xl-min - 1px);
  33 +@screen-xl-max: (@screen-2xl-min - 1px);
src/hooks/component/useFormItem.ts
@@ -17,7 +17,7 @@ export function useRuleFormItem&lt;T extends Indexable&gt;( @@ -17,7 +17,7 @@ export function useRuleFormItem&lt;T extends Indexable&gt;(
17 17
18 const defaultState = readonly(innerState); 18 const defaultState = readonly(innerState);
19 19
20 - const setState = (val: UnwrapRef<T[keyof T]>) => { 20 + const setState = (val: UnwrapRef<T[keyof T]>): void => {
21 innerState.value = val as T[keyof T]; 21 innerState.value = val as T[keyof T];
22 }; 22 };
23 23
src/hooks/web/useECharts.ts
1 import { useTimeoutFn } from '/@/hooks/core/useTimeout'; 1 import { useTimeoutFn } from '/@/hooks/core/useTimeout';
2 import { tryOnUnmounted } from '/@/utils/helper/vueHelper'; 2 import { tryOnUnmounted } from '/@/utils/helper/vueHelper';
3 import { unref, Ref, nextTick } from 'vue'; 3 import { unref, Ref, nextTick } from 'vue';
4 -import type { EChartsType, EChartsOption } from 'echarts'; 4 +import type { EChartsOption } from 'echarts';
5 import { useDebounce } from '/@/hooks/core/useDebounce'; 5 import { useDebounce } from '/@/hooks/core/useDebounce';
6 import { useEventListener } from '/@/hooks/event/useEventListener'; 6 import { useEventListener } from '/@/hooks/event/useEventListener';
7 import { useBreakpoint } from '/@/hooks/event/useBreakpoint'; 7 import { useBreakpoint } from '/@/hooks/event/useBreakpoint';
@@ -12,7 +12,7 @@ export function useECharts( @@ -12,7 +12,7 @@ export function useECharts(
12 elRef: Ref<HTMLDivElement>, 12 elRef: Ref<HTMLDivElement>,
13 theme: 'light' | 'dark' | 'default' = 'light' 13 theme: 'light' | 'dark' | 'default' = 'light'
14 ) { 14 ) {
15 - let chartInstance: Nullable<EChartsType> = null; 15 + let chartInstance: echarts.ECharts | null = null;
16 let resizeFn: Fn = resize; 16 let resizeFn: Fn = resize;
17 let removeResizeFn: Fn = () => {}; 17 let removeResizeFn: Fn = () => {};
18 18
src/hooks/web/useHeight.ts deleted 100644 โ†’ 0
1 -import { Ref, ref, onMounted, nextTick } from 'vue';  
2 -import { useRect } from '/@/hooks/web/useRect';  
3 -export const useHeight = (element: Element | Ref<Element>) => {  
4 - const height = ref();  
5 -  
6 - onMounted(() => {  
7 - nextTick(() => {  
8 - height.value = useRect(element).height;  
9 - });  
10 - });  
11 -  
12 - return height;  
13 -};  
src/hooks/web/useI18n.ts
@@ -11,23 +11,24 @@ type I18nGlobalTranslation = { @@ -11,23 +11,24 @@ type I18nGlobalTranslation = {
11 11
12 type I18nTranslationRestParameters = [string, any]; 12 type I18nTranslationRestParameters = [string, any];
13 13
  14 +function getKey(namespace: string | undefined, key: string) {
  15 + if (!namespace) {
  16 + return key;
  17 + }
  18 + if (key.startsWith(namespace)) {
  19 + return key;
  20 + }
  21 + return `${namespace}.${key}`;
  22 +}
  23 +
14 export function useI18n( 24 export function useI18n(
15 namespace?: string 25 namespace?: string
16 ): { 26 ): {
17 t: I18nGlobalTranslation; 27 t: I18nGlobalTranslation;
18 } { 28 } {
19 - function getKey(key: string) {  
20 - if (!namespace) {  
21 - return key;  
22 - }  
23 - if (key.startsWith(namespace)) {  
24 - return key;  
25 - }  
26 - return `${namespace}.${key}`;  
27 - }  
28 const normalFn = { 29 const normalFn = {
29 t: (key: string) => { 30 t: (key: string) => {
30 - return getKey(key); 31 + return getKey(namespace, key);
31 }, 32 },
32 }; 33 };
33 34
@@ -39,7 +40,7 @@ export function useI18n( @@ -39,7 +40,7 @@ export function useI18n(
39 40
40 const tFn: I18nGlobalTranslation = (key: string, ...arg: any[]) => { 41 const tFn: I18nGlobalTranslation = (key: string, ...arg: any[]) => {
41 if (!key) return ''; 42 if (!key) return '';
42 - return t(getKey(key), ...(arg as I18nTranslationRestParameters)); 43 + return t(getKey(namespace, key), ...(arg as I18nTranslationRestParameters));
43 }; 44 };
44 return { 45 return {
45 ...methods, 46 ...methods,
src/hooks/web/useRect.ts deleted 100644 โ†’ 0
1 -import { Ref, unref } from 'vue';  
2 -import { isWindow } from '/@/utils/is';  
3 -  
4 -export const useRect = (elementRef: (Element | Window) | Ref<Element | Window | undefined>) => {  
5 - const element = unref(elementRef);  
6 -  
7 - if (isWindow(element)) {  
8 - const width = element.innerWidth;  
9 - const height = element.innerHeight;  
10 -  
11 - return {  
12 - top: 0,  
13 - left: 0,  
14 - right: width,  
15 - bottom: height,  
16 - width,  
17 - height,  
18 - };  
19 - }  
20 -  
21 - if (element && element.getBoundingClientRect) {  
22 - return element.getBoundingClientRect();  
23 - }  
24 -  
25 - return {  
26 - top: 0,  
27 - left: 0,  
28 - right: 0,  
29 - bottom: 0,  
30 - width: 0,  
31 - height: 0,  
32 - };  
33 -};  
src/layouts/default/header/components/user-dropdown/index.vue
1 <template> 1 <template>
2 <Dropdown placement="bottomLeft" :overlayClassName="`${prefixCls}-dropdown-overlay`"> 2 <Dropdown placement="bottomLeft" :overlayClassName="`${prefixCls}-dropdown-overlay`">
3 - <span :class="[prefixCls, `${prefixCls}--${theme}`]"> 3 + <span :class="[prefixCls, `${prefixCls}--${theme}`]" class="flex">
4 <img :class="`${prefixCls}__header`" :src="headerImg" /> 4 <img :class="`${prefixCls}__header`" :src="headerImg" />
5 - <span :class="`${prefixCls}__info`">  
6 - <span :class="`${prefixCls}__name`" class="truncate">{{ getUserInfo.realName }}</span> 5 + <span :class="`${prefixCls}__info hidden md:block`">
  6 + <span :class="`${prefixCls}__name `" class="truncate">
  7 + {{ getUserInfo.realName }}
  8 + </span>
7 </span> 9 </span>
8 </span> 10 </span>
9 11
@@ -121,9 +123,7 @@ @@ -121,9 +123,7 @@
121 @prefix-cls: ~'@{namespace}-header-user-dropdown'; 123 @prefix-cls: ~'@{namespace}-header-user-dropdown';
122 124
123 .@{prefix-cls} { 125 .@{prefix-cls} {
124 - display: flex;  
125 height: @header-height; 126 height: @header-height;
126 - min-width: 100px;  
127 padding: 0 0 0 10px; 127 padding: 0 0 0 10px;
128 padding-right: 10px; 128 padding-right: 10px;
129 overflow: hidden; 129 overflow: hidden;
src/main.ts
@@ -16,6 +16,7 @@ import { isDevMode } from &#39;/@/utils/env&#39;; @@ -16,6 +16,7 @@ import { isDevMode } from &#39;/@/utils/env&#39;;
16 16
17 const app = createApp(App); 17 const app = createApp(App);
18 18
  19 +// Register global components
19 registerGlobComp(app); 20 registerGlobComp(app);
20 21
21 // Multilingual configuration 22 // Multilingual configuration
src/router/constant.ts
@@ -2,7 +2,9 @@ import type { AppRouteRecordRaw } from &#39;/@/router/types&#39;; @@ -2,7 +2,9 @@ import type { AppRouteRecordRaw } from &#39;/@/router/types&#39;;
2 import ParentLayout from '/@/layouts/page/ParentView.vue'; 2 import ParentLayout from '/@/layouts/page/ParentView.vue';
3 import { t } from '/@/hooks/web/useI18n'; 3 import { t } from '/@/hooks/web/useI18n';
4 4
5 -const EXCEPTION_COMPONENT = () => import('../views/sys/exception/Exception.vue'); 5 +export const REDIRECT_NAME = 'Redirect';
  6 +
  7 +export const EXCEPTION_COMPONENT = () => import('../views/sys/exception/Exception.vue');
6 8
7 /** 9 /**
8 * @description: default layout 10 * @description: default layout
@@ -44,8 +46,6 @@ export const PAGE_NOT_FOUND_ROUTE: AppRouteRecordRaw = { @@ -44,8 +46,6 @@ export const PAGE_NOT_FOUND_ROUTE: AppRouteRecordRaw = {
44 ], 46 ],
45 }; 47 };
46 48
47 -export const REDIRECT_NAME = 'Redirect';  
48 -  
49 export const REDIRECT_ROUTE: AppRouteRecordRaw = { 49 export const REDIRECT_ROUTE: AppRouteRecordRaw = {
50 path: '/redirect', 50 path: '/redirect',
51 name: REDIRECT_NAME, 51 name: REDIRECT_NAME,
src/router/guard/httpGuard.ts
@@ -2,6 +2,10 @@ import type { Router } from &#39;vue-router&#39;; @@ -2,6 +2,10 @@ import type { Router } from &#39;vue-router&#39;;
2 import { useProjectSetting } from '/@/hooks/setting'; 2 import { useProjectSetting } from '/@/hooks/setting';
3 import { AxiosCanceler } from '/@/utils/http/axios/axiosCancel'; 3 import { AxiosCanceler } from '/@/utils/http/axios/axiosCancel';
4 4
  5 +/**
  6 + * The interface used to close the current page to complete the request when the route is switched
  7 + * @param router
  8 + */
5 export function createHttpGuard(router: Router) { 9 export function createHttpGuard(router: Router) {
6 const { removeAllHttpPending } = useProjectSetting(); 10 const { removeAllHttpPending } = useProjectSetting();
7 let axiosCanceler: Nullable<AxiosCanceler>; 11 let axiosCanceler: Nullable<AxiosCanceler>;
src/router/guard/messageGuard.ts
@@ -4,6 +4,10 @@ import { Modal, notification } from &#39;ant-design-vue&#39;; @@ -4,6 +4,10 @@ import { Modal, notification } from &#39;ant-design-vue&#39;;
4 4
5 import { warn } from '/@/utils/log'; 5 import { warn } from '/@/utils/log';
6 6
  7 +/**
  8 + * Used to close the message instance when the route is switched
  9 + * @param router
  10 + */
7 export function createMessageGuard(router: Router) { 11 export function createMessageGuard(router: Router) {
8 const { closeMessageOnSwitch } = useProjectSetting(); 12 const { closeMessageOnSwitch } = useProjectSetting();
9 13
src/router/index.ts
@@ -6,7 +6,6 @@ import { createRouter, createWebHashHistory } from &#39;vue-router&#39;; @@ -6,7 +6,6 @@ import { createRouter, createWebHashHistory } from &#39;vue-router&#39;;
6 import { createGuard } from './guard/'; 6 import { createGuard } from './guard/';
7 7
8 import { basicRoutes } from './routes/'; 8 import { basicRoutes } from './routes/';
9 -import { scrollBehavior } from './scrollBehavior';  
10 import { REDIRECT_NAME } from './constant'; 9 import { REDIRECT_NAME } from './constant';
11 10
12 // app router 11 // app router
@@ -14,7 +13,7 @@ const router = createRouter({ @@ -14,7 +13,7 @@ const router = createRouter({
14 history: createWebHashHistory(), 13 history: createWebHashHistory(),
15 routes: (basicRoutes as unknown) as RouteRecordRaw[], 14 routes: (basicRoutes as unknown) as RouteRecordRaw[],
16 strict: true, 15 strict: true,
17 - scrollBehavior: scrollBehavior, 16 + scrollBehavior: () => ({ left: 0, top: 0 }),
18 }); 17 });
19 18
20 // reset router 19 // reset router
src/router/scrollBehavior.ts deleted 100644 โ†’ 0
1 -// see https://github.com/vuejs/vue-router-next/blob/master/playground/scrollWaiter.ts  
2 -import type { RouteLocationNormalized } from 'vue-router';  
3 -// class ScrollQueue {  
4 -// private resolve: (() => void) | null = null;  
5 -// private promise: Promise<any> | null = null;  
6 -  
7 -// add() {  
8 -// this.promise = new Promise((resolve) => {  
9 -// this.resolve = resolve as () => void;  
10 -// });  
11 -// }  
12 -  
13 -// flush() {  
14 -// this.resolve && this.resolve();  
15 -// this.resolve = null;  
16 -// this.promise = null;  
17 -// }  
18 -  
19 -// async wait() {  
20 -// await this.promise;  
21 -// }  
22 -// }  
23 -// const scrollWaiter = new ScrollQueue();  
24 -  
25 -/**  
26 - * Handles the scroll behavior on route navigation  
27 - *  
28 - * @param {object} to Route object of next page  
29 - * @param {object} from Route object of previous page  
30 - * @param {object} savedPosition Used by popstate navigations  
31 - * @returns {(object|boolean)} Scroll position or `false`  
32 - */  
33 -// @ts-ignore  
34 -export async function scrollBehavior(to, from, savedPosition) {  
35 - // await scrollWaiter.wait();  
36 - // Use predefined scroll behavior if defined, defaults to no scroll behavior  
37 - const behavior = 'smooth';  
38 - // Returning the `savedPosition` (if available) will result in a native-like  
39 - // behavior when navigating with back/forward buttons  
40 - if (savedPosition) {  
41 - return { ...savedPosition, behavior };  
42 - }  
43 -  
44 - // Scroll to anchor by returning the selector  
45 - if (to.hash) {  
46 - return { el: decodeURI(to.hash), behavior };  
47 - }  
48 -  
49 - // Check if any matched route config has meta that discourages scrolling to top  
50 - if (to.matched.some((m: RouteLocationNormalized) => m.meta.scrollToTop === false)) {  
51 - // Leave scroll as it is  
52 - return false;  
53 - }  
54 -  
55 - // Always scroll to top  
56 - return { left: 0, top: 0, behavior };  
57 -}  
src/router/types.ts
@@ -89,12 +89,5 @@ export interface MenuModule { @@ -89,12 +89,5 @@ export interface MenuModule {
89 menu: Menu; 89 menu: Menu;
90 } 90 }
91 91
92 -// interface RouteModule {  
93 -// layout: AppRouteRecordRaw;  
94 -// routes: AppRouteRecordRaw[];  
95 -// children?: AppRouteRecordRaw[];  
96 -// component?: Component;  
97 -// }  
98 -  
99 // export type AppRouteModule = RouteModule | AppRouteRecordRaw; 92 // export type AppRouteModule = RouteModule | AppRouteRecordRaw;
100 export type AppRouteModule = AppRouteRecordRaw; 93 export type AppRouteModule = AppRouteRecordRaw;
src/store/index.ts
1 import type { App } from 'vue'; 1 import type { App } from 'vue';
2 -import {  
3 - createStore,  
4 - // createLogger, Plugin  
5 -} from 'vuex'; 2 +import { createStore } from 'vuex';
6 import { config } from 'vuex-module-decorators'; 3 import { config } from 'vuex-module-decorators';
7 import { isDevMode } from '/@/utils/env'; 4 import { isDevMode } from '/@/utils/env';
8 5
9 config.rawError = true; 6 config.rawError = true;
10 -const isDev = isDevMode();  
11 -// const plugins: Plugin<any>[] = isDev ? [createLogger()] : [];  
12 7
13 const store = createStore({ 8 const store = createStore({
14 - // modules: {},  
15 - strict: isDev,  
16 - // plugins, 9 + strict: isDevMode(),
17 }); 10 });
18 11
19 export function setupStore(app: App<Element>) { 12 export function setupStore(app: App<Element>) {
src/utils/encryption/aesEncryption.ts
1 import CryptoES from 'crypto-es'; 1 import CryptoES from 'crypto-es';
  2 +
2 export interface EncryptionParams { 3 export interface EncryptionParams {
3 key: string; 4 key: string;
4 iv: string; 5 iv: string;
5 } 6 }
  7 +
6 export class Encryption { 8 export class Encryption {
7 private key; 9 private key;
8 10
@@ -16,7 +18,7 @@ export class Encryption { @@ -16,7 +18,7 @@ export class Encryption {
16 18
17 get getOptions(): CryptoES.lib.CipherCfg { 19 get getOptions(): CryptoES.lib.CipherCfg {
18 return { 20 return {
19 - mode: CryptoES.mode.CBC as any, 21 + mode: CryptoES.mode.CBC,
20 padding: CryptoES.pad.Pkcs7, 22 padding: CryptoES.pad.Pkcs7,
21 iv: this.iv, 23 iv: this.iv,
22 }; 24 };
src/views/sys/login/ForgetPasswordForm.vue
1 <template> 1 <template>
2 - <Form class="p-4" :model="formData" :rules="getFormRules" ref="formRef">  
3 - <FormItem name="account" class="enter-x">  
4 - <Input size="large" v-model:value="formData.account" :placeholder="t('sys.login.userName')" />  
5 - </FormItem> 2 + <template v-if="getShow">
  3 + <LoginFormTitle class="enter-x" />
  4 + <Form class="p-4 enter-x" :model="formData" :rules="getFormRules" ref="formRef">
  5 + <FormItem name="account" class="enter-x">
  6 + <Input
  7 + size="large"
  8 + v-model:value="formData.account"
  9 + :placeholder="t('sys.login.userName')"
  10 + />
  11 + </FormItem>
6 12
7 - <FormItem name="mobile" class="enter-x">  
8 - <Input size="large" v-model:value="formData.mobile" :placeholder="t('sys.login.mobile')" />  
9 - </FormItem>  
10 - <FormItem name="sms" class="enter-x">  
11 - <CountdownInput  
12 - size="large"  
13 - v-model:value="formData.sms"  
14 - :placeholder="t('sys.login.smsCode')"  
15 - />  
16 - </FormItem> 13 + <FormItem name="mobile" class="enter-x">
  14 + <Input size="large" v-model:value="formData.mobile" :placeholder="t('sys.login.mobile')" />
  15 + </FormItem>
  16 + <FormItem name="sms" class="enter-x">
  17 + <CountdownInput
  18 + size="large"
  19 + v-model:value="formData.sms"
  20 + :placeholder="t('sys.login.smsCode')"
  21 + />
  22 + </FormItem>
17 23
18 - <FormItem class="enter-x">  
19 - <Button  
20 - type="primary"  
21 - size="large"  
22 - block  
23 - @click="handleReset"  
24 - :loading="loading"  
25 - class="enter-x"  
26 - >  
27 - {{ t('common.resetText') }}  
28 - </Button>  
29 - <Button size="large" block class="mt-4 enter-x" @click="handleBackLogin">  
30 - {{ t('sys.login.backSignIn') }}  
31 - </Button>  
32 - </FormItem>  
33 - </Form> 24 + <FormItem class="enter-x">
  25 + <Button type="primary" size="large" block @click="handleReset" :loading="loading">
  26 + {{ t('common.resetText') }}
  27 + </Button>
  28 + <Button size="large" block class="mt-4" @click="handleBackLogin">
  29 + {{ t('sys.login.backSignIn') }}
  30 + </Button>
  31 + </FormItem>
  32 + </Form>
  33 + </template>
34 </template> 34 </template>
35 <script lang="ts"> 35 <script lang="ts">
36 - import { defineComponent, reactive, ref } from 'vue'; 36 + import { defineComponent, reactive, ref, computed, unref } from 'vue';
37 37
  38 + import LoginFormTitle from './LoginFormTitle.vue';
38 import { Form, Input, Button } from 'ant-design-vue'; 39 import { Form, Input, Button } from 'ant-design-vue';
39 import { CountdownInput } from '/@/components/CountDown'; 40 import { CountdownInput } from '/@/components/CountDown';
40 41
41 import { useI18n } from '/@/hooks/web/useI18n'; 42 import { useI18n } from '/@/hooks/web/useI18n';
42 - import { LoginStateEnum, useLoginState, useFormRules, useFormValid } from './useLogin'; 43 + import { useLoginState, useFormRules, useFormValid, LoginStateEnum } from './useLogin';
43 44
44 export default defineComponent({ 45 export default defineComponent({
45 name: 'ForgetPasswordForm', 46 name: 'ForgetPasswordForm',
@@ -49,10 +50,11 @@ @@ -49,10 +50,11 @@
49 FormItem: Form.Item, 50 FormItem: Form.Item,
50 Input, 51 Input,
51 CountdownInput, 52 CountdownInput,
  53 + LoginFormTitle,
52 }, 54 },
53 setup() { 55 setup() {
54 const { t } = useI18n(); 56 const { t } = useI18n();
55 - const { setLoginState } = useLoginState(); 57 + const { handleBackLogin, getLoginState } = useLoginState();
56 const { getFormRules } = useFormRules(); 58 const { getFormRules } = useFormRules();
57 59
58 const formRef = ref<any>(null); 60 const formRef = ref<any>(null);
@@ -66,16 +68,14 @@ @@ -66,16 +68,14 @@
66 68
67 const { validForm } = useFormValid(formRef); 69 const { validForm } = useFormValid(formRef);
68 70
  71 + const getShow = computed(() => unref(getLoginState) === LoginStateEnum.RESET_PASSWORD);
  72 +
69 async function handleReset() { 73 async function handleReset() {
70 const data = await validForm(); 74 const data = await validForm();
71 if (!data) return; 75 if (!data) return;
72 console.log(data); 76 console.log(data);
73 } 77 }
74 78
75 - function handleBackLogin() {  
76 - setLoginState(LoginStateEnum.LOGIN);  
77 - }  
78 -  
79 return { 79 return {
80 t, 80 t,
81 formRef, 81 formRef,
@@ -84,6 +84,7 @@ @@ -84,6 +84,7 @@
84 handleReset, 84 handleReset,
85 loading, 85 loading,
86 handleBackLogin, 86 handleBackLogin,
  87 + getShow,
87 }; 88 };
88 }, 89 },
89 }); 90 });
src/views/sys/login/Login.vue
@@ -9,7 +9,7 @@ @@ -9,7 +9,7 @@
9 <AppLogo :alwaysShowTitle="true" /> 9 <AppLogo :alwaysShowTitle="true" />
10 </span> 10 </span>
11 11
12 - <div class="container relative h-full py-2 mx-auto sm:px-10"> 12 + <div class="container relative h-full py-2 mx-auto sm:px-10 -enter-x">
13 <div class="flex h-full"> 13 <div class="flex h-full">
14 <div class="hidden xl:flex xl:flex-col xl:w-6/12 min-h-full mr-4 pl-4"> 14 <div class="hidden xl:flex xl:flex-col xl:w-6/12 min-h-full mr-4 pl-4">
15 <AppLogo class="-enter-x" /> 15 <AppLogo class="-enter-x" />
@@ -31,14 +31,11 @@ @@ -31,14 +31,11 @@
31 <div 31 <div
32 class="my-auto mx-auto xl:ml-20 bg-white xl:bg-transparent px-5 py-8 sm:px-8 xl:p-0 rounded-md shadow-md xl:shadow-none w-full sm:w-3/4 lg:w-2/4 xl:w-auto enter-x relative" 32 class="my-auto mx-auto xl:ml-20 bg-white xl:bg-transparent px-5 py-8 sm:px-8 xl:p-0 rounded-md shadow-md xl:shadow-none w-full sm:w-3/4 lg:w-2/4 xl:w-auto enter-x relative"
33 > 33 >
34 - <h2 class="font-bold text-2xl xl:text-3xl enter-x text-center xl:text-left mb-6">  
35 - {{ getFormTitle }}  
36 - </h2>  
37 - <LoginForm v-show="getShowLogin" />  
38 - <ForgetPasswordForm v-if="getShowResetPassword" />  
39 - <RegisterForm v-if="getShowRegister" />  
40 - <MobileForm v-if="getShowMobile" />  
41 - <QrCodeForm v-if="getShowQrCode" /> 34 + <LoginForm />
  35 + <ForgetPasswordForm />
  36 + <RegisterForm />
  37 + <MobileForm />
  38 + <QrCodeForm />
42 </div> 39 </div>
43 </div> 40 </div>
44 </div> 41 </div>
@@ -59,7 +56,6 @@ @@ -59,7 +56,6 @@
59 import { useGlobSetting, useProjectSetting } from '/@/hooks/setting'; 56 import { useGlobSetting, useProjectSetting } from '/@/hooks/setting';
60 import { useI18n } from '/@/hooks/web/useI18n'; 57 import { useI18n } from '/@/hooks/web/useI18n';
61 import { useDesign } from '/@/hooks/web/useDesign'; 58 import { useDesign } from '/@/hooks/web/useDesign';
62 - import { useShowLoginForm, useFormTitle } from './useLogin';  
63 59
64 export default defineComponent({ 60 export default defineComponent({
65 name: 'Login', 61 name: 'Login',
@@ -74,7 +70,6 @@ @@ -74,7 +70,6 @@
74 }, 70 },
75 setup() { 71 setup() {
76 const globSetting = useGlobSetting(); 72 const globSetting = useGlobSetting();
77 - const { getFormTitle } = useFormTitle();  
78 const { prefixCls } = useDesign('login'); 73 const { prefixCls } = useDesign('login');
79 const { locale } = useProjectSetting(); 74 const { locale } = useProjectSetting();
80 const { t } = useI18n(); 75 const { t } = useI18n();
@@ -84,8 +79,6 @@ @@ -84,8 +79,6 @@
84 prefixCls, 79 prefixCls,
85 title: computed(() => globSetting?.title ?? ''), 80 title: computed(() => globSetting?.title ?? ''),
86 showLocale: computed(() => locale.show), 81 showLocale: computed(() => locale.show),
87 - getFormTitle,  
88 - ...useShowLoginForm(),  
89 }; 82 };
90 }, 83 },
91 }); 84 });
src/views/sys/login/LoginForm.vue
1 <template> 1 <template>
2 - <Form class="p-4" :model="formData" :rules="getFormRules" ref="formRef"> 2 + <LoginFormTitle v-show="getShow" class="enter-x" />
  3 + <Form class="p-4 enter-x" :model="formData" :rules="getFormRules" ref="formRef" v-show="getShow">
3 <FormItem name="account" class="enter-x"> 4 <FormItem name="account" class="enter-x">
4 <Input size="large" v-model:value="formData.account" :placeholder="t('sys.login.userName')" /> 5 <Input size="large" v-model:value="formData.account" :placeholder="t('sys.login.userName')" />
5 </FormItem> 6 </FormItem>
@@ -32,14 +33,7 @@ @@ -32,14 +33,7 @@
32 </ARow> 33 </ARow>
33 34
34 <FormItem class="enter-x"> 35 <FormItem class="enter-x">
35 - <Button  
36 - type="primary"  
37 - size="large"  
38 - block  
39 - @click="handleLogin"  
40 - :loading="loading"  
41 - class="enter-x"  
42 - > 36 + <Button type="primary" size="large" block @click="handleLogin" :loading="loading">
43 {{ t('sys.login.loginButton') }} 37 {{ t('sys.login.loginButton') }}
44 </Button> 38 </Button>
45 <!-- <Button size="large" class="mt-4 enter-x" block @click="handleRegister"> 39 <!-- <Button size="large" class="mt-4 enter-x" block @click="handleRegister">
@@ -64,7 +58,7 @@ @@ -64,7 +58,7 @@
64 </ACol> 58 </ACol>
65 </ARow> 59 </ARow>
66 60
67 - <Divider>{{ t('sys.login.otherSignIn') }}</Divider> 61 + <Divider class="enter-x">{{ t('sys.login.otherSignIn') }}</Divider>
68 62
69 <div class="flex justify-evenly enter-x" :class="`${prefixCls}-sign-in-way`"> 63 <div class="flex justify-evenly enter-x" :class="`${prefixCls}-sign-in-way`">
70 <GithubFilled /> 64 <GithubFilled />
@@ -76,7 +70,7 @@ @@ -76,7 +70,7 @@
76 </Form> 70 </Form>
77 </template> 71 </template>
78 <script lang="ts"> 72 <script lang="ts">
79 - import { defineComponent, reactive, ref, toRaw } from 'vue'; 73 + import { defineComponent, reactive, ref, toRaw, unref, computed } from 'vue';
80 74
81 import { Checkbox, Form, Input, Row, Col, Button, Divider } from 'ant-design-vue'; 75 import { Checkbox, Form, Input, Row, Col, Button, Divider } from 'ant-design-vue';
82 import { 76 import {
@@ -86,6 +80,7 @@ @@ -86,6 +80,7 @@
86 GoogleCircleFilled, 80 GoogleCircleFilled,
87 TwitterCircleFilled, 81 TwitterCircleFilled,
88 } from '@ant-design/icons-vue'; 82 } from '@ant-design/icons-vue';
  83 + import LoginFormTitle from './LoginFormTitle.vue';
89 84
90 import { useI18n } from '/@/hooks/web/useI18n'; 85 import { useI18n } from '/@/hooks/web/useI18n';
91 import { useMessage } from '/@/hooks/web/useMessage'; 86 import { useMessage } from '/@/hooks/web/useMessage';
@@ -97,15 +92,16 @@ @@ -97,15 +92,16 @@
97 export default defineComponent({ 92 export default defineComponent({
98 name: 'LoginForm', 93 name: 'LoginForm',
99 components: { 94 components: {
  95 + [Col.name]: Col,
  96 + [Row.name]: Row,
100 Checkbox, 97 Checkbox,
101 Button, 98 Button,
102 Form, 99 Form,
103 FormItem: Form.Item, 100 FormItem: Form.Item,
104 Input, 101 Input,
105 Divider, 102 Divider,
  103 + LoginFormTitle,
106 InputPassword: Input.Password, 104 InputPassword: Input.Password,
107 - [Col.name]: Col,  
108 - [Row.name]: Row,  
109 GithubFilled, 105 GithubFilled,
110 WechatFilled, 106 WechatFilled,
111 AlipayCircleFilled, 107 AlipayCircleFilled,
@@ -117,7 +113,7 @@ @@ -117,7 +113,7 @@
117 const { notification } = useMessage(); 113 const { notification } = useMessage();
118 const { prefixCls } = useDesign('login'); 114 const { prefixCls } = useDesign('login');
119 115
120 - const { setLoginState } = useLoginState(); 116 + const { setLoginState, getLoginState } = useLoginState();
121 const { getFormRules } = useFormRules(); 117 const { getFormRules } = useFormRules();
122 118
123 const formRef = ref<any>(null); 119 const formRef = ref<any>(null);
@@ -131,6 +127,8 @@ @@ -131,6 +127,8 @@
131 127
132 const { validForm } = useFormValid(formRef); 128 const { validForm } = useFormValid(formRef);
133 129
  130 + const getShow = computed(() => unref(getLoginState) === LoginStateEnum.LOGIN);
  131 +
134 async function handleLogin() { 132 async function handleLogin() {
135 const data = await validForm(); 133 const data = await validForm();
136 if (!data) return; 134 if (!data) return;
@@ -165,6 +163,7 @@ @@ -165,6 +163,7 @@
165 loading, 163 loading,
166 setLoginState, 164 setLoginState,
167 LoginStateEnum, 165 LoginStateEnum,
  166 + getShow,
168 }; 167 };
169 }, 168 },
170 }); 169 });
src/views/sys/login/LoginFormTitle.vue 0 โ†’ 100644
  1 +<template>
  2 + <h2 class="font-bold text-2xl xl:text-3xl enter-x text-center xl:text-left mb-6">
  3 + {{ getFormTitle }}
  4 + </h2>
  5 +</template>
  6 +<script lang="ts">
  7 + import { defineComponent, computed, unref } from 'vue';
  8 +
  9 + import { useI18n } from '/@/hooks/web/useI18n';
  10 + import { LoginStateEnum, useLoginState } from './useLogin';
  11 +
  12 + export default defineComponent({
  13 + name: 'LoginFormTitle',
  14 + setup() {
  15 + const { t } = useI18n();
  16 +
  17 + const { getLoginState } = useLoginState();
  18 +
  19 + const getFormTitle = computed(() => {
  20 + const titleObj = {
  21 + [LoginStateEnum.RESET_PASSWORD]: t('sys.login.forgetFormTitle'),
  22 + [LoginStateEnum.LOGIN]: t('sys.login.signInFormTitle'),
  23 + [LoginStateEnum.REGISTER]: t('sys.login.signUpFormTitle'),
  24 + [LoginStateEnum.MOBILE]: t('sys.login.mobileSignInFormTitle'),
  25 + [LoginStateEnum.QR_CODE]: t('sys.login.qrSignInFormTitle'),
  26 + };
  27 + return titleObj[unref(getLoginState)];
  28 + });
  29 +
  30 + return {
  31 + getFormTitle,
  32 + };
  33 + },
  34 + });
  35 +</script>
src/views/sys/login/MobileForm.vue
1 <template> 1 <template>
2 - <Form class="p-4" :model="formData" :rules="getFormRules" ref="formRef">  
3 - <FormItem name="mobile" class="enter-x">  
4 - <Input size="large" v-model:value="formData.mobile" :placeholder="t('sys.login.mobile')" />  
5 - </FormItem>  
6 - <FormItem name="sms" class="enter-x">  
7 - <CountdownInput  
8 - size="large"  
9 - v-model:value="formData.sms"  
10 - :placeholder="t('sys.login.smsCode')"  
11 - />  
12 - </FormItem> 2 + <template v-if="getShow">
  3 + <LoginFormTitle class="enter-x" />
  4 + <Form class="p-4 enter-x" :model="formData" :rules="getFormRules" ref="formRef">
  5 + <FormItem name="mobile" class="enter-x">
  6 + <Input size="large" v-model:value="formData.mobile" :placeholder="t('sys.login.mobile')" />
  7 + </FormItem>
  8 + <FormItem name="sms" class="enter-x">
  9 + <CountdownInput
  10 + size="large"
  11 + v-model:value="formData.sms"
  12 + :placeholder="t('sys.login.smsCode')"
  13 + />
  14 + </FormItem>
13 15
14 - <FormItem class="enter-x">  
15 - <Button  
16 - type="primary"  
17 - size="large"  
18 - block  
19 - @click="handleLogin"  
20 - :loading="loading"  
21 - class="enter-x"  
22 - >  
23 - {{ t('sys.login.loginButton') }}  
24 - </Button>  
25 - <Button size="large" block class="mt-4 enter-x" @click="handleBackLogin">  
26 - {{ t('sys.login.backSignIn') }}  
27 - </Button>  
28 - </FormItem>  
29 - </Form> 16 + <FormItem class="enter-x">
  17 + <Button type="primary" size="large" block @click="handleLogin" :loading="loading">
  18 + {{ t('sys.login.loginButton') }}
  19 + </Button>
  20 + <Button size="large" block class="mt-4" @click="handleBackLogin">
  21 + {{ t('sys.login.backSignIn') }}
  22 + </Button>
  23 + </FormItem>
  24 + </Form>
  25 + </template>
30 </template> 26 </template>
31 <script lang="ts"> 27 <script lang="ts">
32 - import { defineComponent, reactive, ref } from 'vue'; 28 + import { defineComponent, reactive, ref, computed, unref } from 'vue';
33 29
34 import { Form, Input, Button } from 'ant-design-vue'; 30 import { Form, Input, Button } from 'ant-design-vue';
35 import { CountdownInput } from '/@/components/CountDown'; 31 import { CountdownInput } from '/@/components/CountDown';
  32 + import LoginFormTitle from './LoginFormTitle.vue';
36 33
37 import { useI18n } from '/@/hooks/web/useI18n'; 34 import { useI18n } from '/@/hooks/web/useI18n';
38 - import { LoginStateEnum, useLoginState, useFormRules, useFormValid } from './useLogin'; 35 + import { useLoginState, useFormRules, useFormValid, LoginStateEnum } from './useLogin';
39 36
40 export default defineComponent({ 37 export default defineComponent({
41 name: 'MobileForm', 38 name: 'MobileForm',
@@ -45,10 +42,11 @@ @@ -45,10 +42,11 @@
45 FormItem: Form.Item, 42 FormItem: Form.Item,
46 Input, 43 Input,
47 CountdownInput, 44 CountdownInput,
  45 + LoginFormTitle,
48 }, 46 },
49 setup() { 47 setup() {
50 const { t } = useI18n(); 48 const { t } = useI18n();
51 - const { setLoginState } = useLoginState(); 49 + const { handleBackLogin, getLoginState } = useLoginState();
52 const { getFormRules } = useFormRules(); 50 const { getFormRules } = useFormRules();
53 51
54 const formRef = ref<any>(null); 52 const formRef = ref<any>(null);
@@ -61,16 +59,14 @@ @@ -61,16 +59,14 @@
61 59
62 const { validForm } = useFormValid(formRef); 60 const { validForm } = useFormValid(formRef);
63 61
  62 + const getShow = computed(() => unref(getLoginState) === LoginStateEnum.MOBILE);
  63 +
64 async function handleLogin() { 64 async function handleLogin() {
65 const data = await validForm(); 65 const data = await validForm();
66 if (!data) return; 66 if (!data) return;
67 console.log(data); 67 console.log(data);
68 } 68 }
69 69
70 - function handleBackLogin() {  
71 - setLoginState(LoginStateEnum.LOGIN);  
72 - }  
73 -  
74 return { 70 return {
75 t, 71 t,
76 formRef, 72 formRef,
@@ -79,6 +75,7 @@ @@ -79,6 +75,7 @@
79 handleLogin, 75 handleLogin,
80 loading, 76 loading,
81 handleBackLogin, 77 handleBackLogin,
  78 + getShow,
82 }; 79 };
83 }, 80 },
84 }); 81 });
src/views/sys/login/QrCodeForm.vue
1 <template> 1 <template>
2 - <div class="enter-x min-w-64 min-h-64">  
3 - <QrCode :value="qrCodeUrl" class="enter-x flex justify-center xl:justify-start" :width="280" />  
4 - <Divider>{{ t('sys.login.scanSign') }}</Divider>  
5 - <Button size="large" block class="mt-4 enter-x" @click="handleBackLogin">  
6 - {{ t('sys.login.backSignIn') }}  
7 - </Button>  
8 - </div> 2 + <template v-if="getShow">
  3 + <LoginFormTitle class="enter-x" />
  4 + <div class="enter-x min-w-64 min-h-64">
  5 + <QrCode
  6 + :value="qrCodeUrl"
  7 + class="enter-x flex justify-center xl:justify-start"
  8 + :width="280"
  9 + />
  10 + <Divider class="enter-x">{{ t('sys.login.scanSign') }}</Divider>
  11 + <Button size="large" block class="mt-4 enter-x" @click="handleBackLogin">
  12 + {{ t('sys.login.backSignIn') }}
  13 + </Button>
  14 + </div>
  15 + </template>
9 </template> 16 </template>
10 <script lang="ts"> 17 <script lang="ts">
11 - import { defineComponent } from 'vue'; 18 + import { defineComponent, computed, unref } from 'vue';
12 19
  20 + import LoginFormTitle from './LoginFormTitle.vue';
13 import { Button, Divider } from 'ant-design-vue'; 21 import { Button, Divider } from 'ant-design-vue';
  22 + import { QrCode } from '/@/components/Qrcode/index';
14 23
15 import { useI18n } from '/@/hooks/web/useI18n'; 24 import { useI18n } from '/@/hooks/web/useI18n';
16 - import { LoginStateEnum, useLoginState } from './useLogin';  
17 - import { QrCode } from '/@/components/Qrcode/index'; 25 + import { useLoginState, LoginStateEnum } from './useLogin';
  26 +
18 const qrCodeUrl = 'https://vvbin.cn/next/login'; 27 const qrCodeUrl = 'https://vvbin.cn/next/login';
19 export default defineComponent({ 28 export default defineComponent({
20 name: 'QrCodeForm', 29 name: 'QrCodeForm',
@@ -22,18 +31,19 @@ @@ -22,18 +31,19 @@
22 Button, 31 Button,
23 QrCode, 32 QrCode,
24 Divider, 33 Divider,
  34 + LoginFormTitle,
25 }, 35 },
26 setup() { 36 setup() {
27 const { t } = useI18n(); 37 const { t } = useI18n();
28 - const { setLoginState } = useLoginState(); 38 + const { handleBackLogin, getLoginState } = useLoginState();
  39 +
  40 + const getShow = computed(() => unref(getLoginState) === LoginStateEnum.QR_CODE);
29 41
30 - function handleBackLogin() {  
31 - setLoginState(LoginStateEnum.LOGIN);  
32 - }  
33 return { 42 return {
34 t, 43 t,
35 handleBackLogin, 44 handleBackLogin,
36 qrCodeUrl, 45 qrCodeUrl,
  46 + getShow,
37 }; 47 };
38 }, 48 },
39 }); 49 });
src/views/sys/login/RegisterForm.vue
1 <template> 1 <template>
2 - <Form class="p-4" :model="formData" :rules="getFormRules" ref="formRef">  
3 - <FormItem name="account" class="enter-x">  
4 - <Input size="large" v-model:value="formData.account" :placeholder="t('sys.login.userName')" />  
5 - </FormItem>  
6 - <FormItem name="mobile" class="enter-x">  
7 - <Input size="large" v-model:value="formData.mobile" :placeholder="t('sys.login.mobile')" />  
8 - </FormItem>  
9 - <FormItem name="sms" class="enter-x">  
10 - <CountdownInput  
11 - size="large"  
12 - v-model:value="formData.sms"  
13 - :placeholder="t('sys.login.smsCode')"  
14 - />  
15 - </FormItem>  
16 - <FormItem name="password" class="enter-x">  
17 - <StrengthMeter  
18 - size="large"  
19 - v-model:value="formData.password"  
20 - :placeholder="t('sys.login.password')"  
21 - />  
22 - </FormItem>  
23 - <FormItem name="confirmPassword" class="enter-x">  
24 - <InputPassword  
25 - size="large"  
26 - visibilityToggle  
27 - v-model:value="formData.confirmPassword"  
28 - :placeholder="t('sys.login.confirmPassword')"  
29 - />  
30 - </FormItem> 2 + <template v-if="getShow">
  3 + <LoginFormTitle class="enter-x" />
  4 + <Form class="p-4 enter-x" :model="formData" :rules="getFormRules" ref="formRef">
  5 + <FormItem name="account" class="enter-x">
  6 + <Input
  7 + size="large"
  8 + v-model:value="formData.account"
  9 + :placeholder="t('sys.login.userName')"
  10 + />
  11 + </FormItem>
  12 + <FormItem name="mobile" class="enter-x">
  13 + <Input size="large" v-model:value="formData.mobile" :placeholder="t('sys.login.mobile')" />
  14 + </FormItem>
  15 + <FormItem name="sms" class="enter-x">
  16 + <CountdownInput
  17 + size="large"
  18 + v-model:value="formData.sms"
  19 + :placeholder="t('sys.login.smsCode')"
  20 + />
  21 + </FormItem>
  22 + <FormItem name="password" class="enter-x">
  23 + <StrengthMeter
  24 + size="large"
  25 + v-model:value="formData.password"
  26 + :placeholder="t('sys.login.password')"
  27 + />
  28 + </FormItem>
  29 + <FormItem name="confirmPassword" class="enter-x">
  30 + <InputPassword
  31 + size="large"
  32 + visibilityToggle
  33 + v-model:value="formData.confirmPassword"
  34 + :placeholder="t('sys.login.confirmPassword')"
  35 + />
  36 + </FormItem>
31 37
32 - <FormItem class="enter-x" name="policy">  
33 - <!-- No logic, you need to deal with it yourself -->  
34 - <Checkbox v-model:checked="formData.policy" size="small">  
35 - {{ t('sys.login.policy') }}  
36 - </Checkbox>  
37 - </FormItem> 38 + <FormItem class="enter-x" name="policy">
  39 + <!-- No logic, you need to deal with it yourself -->
  40 + <Checkbox v-model:checked="formData.policy" size="small">
  41 + {{ t('sys.login.policy') }}
  42 + </Checkbox>
  43 + </FormItem>
38 44
39 - <Button  
40 - type="primary"  
41 - size="large"  
42 - block  
43 - @click="handleReset"  
44 - :loading="loading"  
45 - class="enter-x"  
46 - >  
47 - {{ t('sys.login.registerButton') }}  
48 - </Button>  
49 - <Button size="large" block class="mt-4 enter-x" @click="handleBackLogin">  
50 - {{ t('sys.login.backSignIn') }}  
51 - </Button>  
52 - </Form> 45 + <Button
  46 + type="primary"
  47 + class="enter-x"
  48 + size="large"
  49 + block
  50 + @click="handleReset"
  51 + :loading="loading"
  52 + >
  53 + {{ t('sys.login.registerButton') }}
  54 + </Button>
  55 + <Button size="large" block class="enter-x mt-4" @click="handleBackLogin">
  56 + {{ t('sys.login.backSignIn') }}
  57 + </Button>
  58 + </Form>
  59 + </template>
53 </template> 60 </template>
54 <script lang="ts"> 61 <script lang="ts">
55 - import { defineComponent, reactive, ref } from 'vue'; 62 + import { defineComponent, reactive, ref, unref, computed } from 'vue';
56 63
  64 + import LoginFormTitle from './LoginFormTitle.vue';
57 import { Form, Input, Button, Checkbox } from 'ant-design-vue'; 65 import { Form, Input, Button, Checkbox } from 'ant-design-vue';
58 import { StrengthMeter } from '/@/components/StrengthMeter'; 66 import { StrengthMeter } from '/@/components/StrengthMeter';
59 import { CountdownInput } from '/@/components/CountDown'; 67 import { CountdownInput } from '/@/components/CountDown';
60 68
61 import { useI18n } from '/@/hooks/web/useI18n'; 69 import { useI18n } from '/@/hooks/web/useI18n';
62 - import { LoginStateEnum, useLoginState, useFormRules, useFormValid } from './useLogin'; 70 + import { useLoginState, useFormRules, useFormValid, LoginStateEnum } from './useLogin';
63 71
64 export default defineComponent({ 72 export default defineComponent({
65 name: 'RegisterPasswordForm', 73 name: 'RegisterPasswordForm',
@@ -72,10 +80,11 @@ @@ -72,10 +80,11 @@
72 Checkbox, 80 Checkbox,
73 StrengthMeter, 81 StrengthMeter,
74 CountdownInput, 82 CountdownInput,
  83 + LoginFormTitle,
75 }, 84 },
76 setup() { 85 setup() {
77 const { t } = useI18n(); 86 const { t } = useI18n();
78 - const { setLoginState } = useLoginState(); 87 + const { handleBackLogin, getLoginState } = useLoginState();
79 88
80 const formRef = ref<any>(null); 89 const formRef = ref<any>(null);
81 const loading = ref(false); 90 const loading = ref(false);
@@ -92,16 +101,14 @@ @@ -92,16 +101,14 @@
92 const { getFormRules } = useFormRules(formData); 101 const { getFormRules } = useFormRules(formData);
93 const { validForm } = useFormValid(formRef); 102 const { validForm } = useFormValid(formRef);
94 103
  104 + const getShow = computed(() => unref(getLoginState) === LoginStateEnum.REGISTER);
  105 +
95 async function handleReset() { 106 async function handleReset() {
96 const data = await validForm(); 107 const data = await validForm();
97 if (!data) return; 108 if (!data) return;
98 console.log(data); 109 console.log(data);
99 } 110 }
100 111
101 - function handleBackLogin() {  
102 - setLoginState(LoginStateEnum.LOGIN);  
103 - }  
104 -  
105 return { 112 return {
106 t, 113 t,
107 formRef, 114 formRef,
@@ -110,6 +117,7 @@ @@ -110,6 +117,7 @@
110 handleReset, 117 handleReset,
111 loading, 118 loading,
112 handleBackLogin, 119 handleBackLogin,
  120 + getShow,
113 }; 121 };
114 }, 122 },
115 }); 123 });
src/views/sys/login/useLogin.ts
@@ -12,22 +12,6 @@ export enum LoginStateEnum { @@ -12,22 +12,6 @@ export enum LoginStateEnum {
12 12
13 const currentState = ref(LoginStateEnum.LOGIN); 13 const currentState = ref(LoginStateEnum.LOGIN);
14 14
15 -export function useFormTitle() {  
16 - const { t } = useI18n();  
17 -  
18 - const getFormTitle = computed(() => {  
19 - const titleObj = {  
20 - [LoginStateEnum.RESET_PASSWORD]: t('sys.login.forgetFormTitle'),  
21 - [LoginStateEnum.LOGIN]: t('sys.login.signInFormTitle'),  
22 - [LoginStateEnum.REGISTER]: t('sys.login.signUpFormTitle'),  
23 - [LoginStateEnum.MOBILE]: t('sys.login.mobileSignInFormTitle'),  
24 - [LoginStateEnum.QR_CODE]: t('sys.login.qrSignInFormTitle'),  
25 - };  
26 - return titleObj[unref(currentState)];  
27 - });  
28 - return { getFormTitle };  
29 -}  
30 -  
31 export function useLoginState() { 15 export function useLoginState() {
32 function setLoginState(state: LoginStateEnum) { 16 function setLoginState(state: LoginStateEnum) {
33 currentState.value = state; 17 currentState.value = state;
@@ -35,19 +19,11 @@ export function useLoginState() { @@ -35,19 +19,11 @@ export function useLoginState() {
35 19
36 const getLoginState = computed(() => currentState.value); 20 const getLoginState = computed(() => currentState.value);
37 21
38 - return { setLoginState, getLoginState };  
39 -}  
40 -  
41 -export function useShowLoginForm() {  
42 - const getShowLogin = computed(() => unref(currentState) === LoginStateEnum.LOGIN);  
43 - const getShowResetPassword = computed(  
44 - () => unref(currentState) === LoginStateEnum.RESET_PASSWORD  
45 - );  
46 - const getShowRegister = computed(() => unref(currentState) === LoginStateEnum.REGISTER);  
47 - const getShowMobile = computed(() => unref(currentState) === LoginStateEnum.MOBILE);  
48 - const getShowQrCode = computed(() => unref(currentState) === LoginStateEnum.QR_CODE); 22 + function handleBackLogin() {
  23 + setLoginState(LoginStateEnum.LOGIN);
  24 + }
49 25
50 - return { getShowLogin, getShowResetPassword, getShowRegister, getShowMobile, getShowQrCode }; 26 + return { setLoginState, getLoginState, handleBackLogin };
51 } 27 }
52 28
53 export function useFormValid<T extends Object = any>(formRef: Ref<any>) { 29 export function useFormValid<T extends Object = any>(formRef: Ref<any>) {
@@ -96,6 +72,7 @@ export function useFormRules(formData?: Recordable) { @@ -96,6 +72,7 @@ export function useFormRules(formData?: Recordable) {
96 mobile: mobileFormRule, 72 mobile: mobileFormRule,
97 }; 73 };
98 switch (unref(currentState)) { 74 switch (unref(currentState)) {
  75 + // register form rules
99 case LoginStateEnum.REGISTER: 76 case LoginStateEnum.REGISTER:
100 return { 77 return {
101 account: accountFormRule, 78 account: accountFormRule,
@@ -106,13 +83,19 @@ export function useFormRules(formData?: Recordable) { @@ -106,13 +83,19 @@ export function useFormRules(formData?: Recordable) {
106 policy: [{ validator: validatePolicy, trigger: 'change' }], 83 policy: [{ validator: validatePolicy, trigger: 'change' }],
107 ...mobileRule, 84 ...mobileRule,
108 }; 85 };
  86 +
  87 + // reset password form rules
109 case LoginStateEnum.RESET_PASSWORD: 88 case LoginStateEnum.RESET_PASSWORD:
110 return { 89 return {
111 account: accountFormRule, 90 account: accountFormRule,
112 ...mobileRule, 91 ...mobileRule,
113 }; 92 };
  93 +
  94 + // mobile form rules
114 case LoginStateEnum.MOBILE: 95 case LoginStateEnum.MOBILE:
115 return mobileRule; 96 return mobileRule;
  97 +
  98 + // login form rules
116 default: 99 default:
117 return { 100 return {
118 account: accountFormRule, 101 account: accountFormRule,
tsconfig.json
@@ -25,11 +25,6 @@ @@ -25,11 +25,6 @@
25 "/@/*": ["src/*"] 25 "/@/*": ["src/*"]
26 } 26 }
27 }, 27 },
28 - "plugins": [  
29 - {  
30 - "name": "@vuedx/typescript-plugin-vue"  
31 - }  
32 - ],  
33 "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], 28 "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
34 "exclude": ["node_modules", "dist", "**/*.js"] 29 "exclude": ["node_modules", "dist", "**/*.js"]
35 } 30 }
windi.config.ts
@@ -10,14 +10,13 @@ export default defineConfig({ @@ -10,14 +10,13 @@ export default defineConfig({
10 extend: { 10 extend: {
11 colors, 11 colors,
12 }, 12 },
13 -  
14 - // screen: {  
15 - // sm: '576px',  
16 - // md: '768px',  
17 - // lg: '992px',  
18 - // xl: '1200px',  
19 - // '2xl': '1600px',  
20 - // }, 13 + screens: {
  14 + sm: '576px',
  15 + md: '768px',
  16 + lg: '992px',
  17 + xl: '1200px',
  18 + '2xl': '1600px',
  19 + },
21 }, 20 },
22 }); 21 });
23 22
yarn.lock
@@ -67,7 +67,7 @@ @@ -67,7 +67,7 @@
67 semver "^5.4.1" 67 semver "^5.4.1"
68 source-map "^0.5.0" 68 source-map "^0.5.0"
69 69
70 -"@babel/generator@^7.12.1", "@babel/generator@^7.12.10", "@babel/generator@^7.12.11": 70 +"@babel/generator@^7.12.10", "@babel/generator@^7.12.11":
71 version "7.12.11" 71 version "7.12.11"
72 resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz#98a7df7b8c358c9a37ab07a24056853016aba3af" 72 resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz#98a7df7b8c358c9a37ab07a24056853016aba3af"
73 integrity sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA== 73 integrity sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==
@@ -278,12 +278,7 @@ @@ -278,12 +278,7 @@
278 chalk "^2.0.0" 278 chalk "^2.0.0"
279 js-tokens "^4.0.0" 279 js-tokens "^4.0.0"
280 280
281 -"@babel/parser@7.12.3":  
282 - version "7.12.3"  
283 - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.12.3.tgz#a305415ebe7a6c7023b40b5122a0662d928334cd"  
284 - integrity sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw==  
285 -  
286 -"@babel/parser@^7.12.0", "@babel/parser@^7.12.1", "@babel/parser@^7.12.10", "@babel/parser@^7.12.11", "@babel/parser@^7.12.3", "@babel/parser@^7.12.7": 281 +"@babel/parser@^7.12.0", "@babel/parser@^7.12.10", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7":
287 version "7.12.11" 282 version "7.12.11"
288 resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz#9ce3595bcd74bc5c466905e86c535b8b25011e79" 283 resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz#9ce3595bcd74bc5c466905e86c535b8b25011e79"
289 integrity sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg== 284 integrity sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==
@@ -862,21 +857,6 @@ @@ -862,21 +857,6 @@
862 "@babel/parser" "^7.12.7" 857 "@babel/parser" "^7.12.7"
863 "@babel/types" "^7.12.7" 858 "@babel/types" "^7.12.7"
864 859
865 -"@babel/traverse@7.12.1":  
866 - version "7.12.1"  
867 - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.1.tgz#941395e0c5cc86d5d3e75caa095d3924526f0c1e"  
868 - integrity sha512-MA3WPoRt1ZHo2ZmoGKNqi20YnPt0B1S0GTZEPhhd+hw2KGUzBlHuVunj6K4sNuK+reEvyiPwtp0cpaqLzJDmAw==  
869 - dependencies:  
870 - "@babel/code-frame" "^7.10.4"  
871 - "@babel/generator" "^7.12.1"  
872 - "@babel/helper-function-name" "^7.10.4"  
873 - "@babel/helper-split-export-declaration" "^7.11.0"  
874 - "@babel/parser" "^7.12.1"  
875 - "@babel/types" "^7.12.1"  
876 - debug "^4.1.0"  
877 - globals "^11.1.0"  
878 - lodash "^4.17.19"  
879 -  
880 "@babel/traverse@^7.0.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5": 860 "@babel/traverse@^7.0.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5":
881 version "7.12.12" 861 version "7.12.12"
882 resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz#d0cd87892704edd8da002d674bc811ce64743376" 862 resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz#d0cd87892704edd8da002d674bc811ce64743376"
@@ -892,15 +872,6 @@ @@ -892,15 +872,6 @@
892 globals "^11.1.0" 872 globals "^11.1.0"
893 lodash "^4.17.19" 873 lodash "^4.17.19"
894 874
895 -"@babel/types@7.12.1":  
896 - version "7.12.1"  
897 - resolved "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz#e109d9ab99a8de735be287ee3d6a9947a190c4ae"  
898 - integrity sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==  
899 - dependencies:  
900 - "@babel/helper-validator-identifier" "^7.10.4"  
901 - lodash "^4.17.19"  
902 - to-fast-properties "^2.0.0"  
903 -  
904 "@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.12.0", "@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.11", "@babel/types@^7.12.12", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.4.4": 875 "@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.12.0", "@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.11", "@babel/types@^7.12.12", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.4.4":
905 version "7.12.12" 876 version "7.12.12"
906 resolved "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz#4608a6ec313abbd87afa55004d373ad04a96c299" 877 resolved "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz#4608a6ec313abbd87afa55004d373ad04a96c299"
@@ -1112,20 +1083,10 @@ @@ -1112,20 +1083,10 @@
1112 dependencies: 1083 dependencies:
1113 cross-fetch "^3.0.6" 1084 cross-fetch "^3.0.6"
1114 1085
1115 -"@iconify/json@^1.1.306":  
1116 - version "1.1.306"  
1117 - resolved "https://registry.npmjs.org/@iconify/json/-/json-1.1.306.tgz#cad12ad858a61689009c12d3d2df0fde6a202bb9"  
1118 - integrity sha512-OT1H/non+J8i9BBery8VhXn2JJeUMr8iKA166wsW74UWgez2HsPnkNNdtQmZxIuAyL6FuHQ+WvDi18uD9eAo0Q==  
1119 -  
1120 -"@intlify/core-base@9.0.0-beta.16":  
1121 - version "9.0.0-beta.16"  
1122 - resolved "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.0.0-beta.16.tgz#ab35802b982f52db20d4758d020c2dcd1724e7f9"  
1123 - integrity sha512-PJLDVYy3x8Mf9+XtWljEfk4Lo6mudopYlRvB89NQR3TkR+Tqkbcsegj09XdXpTKBYiq+yQrlZKZ0KEHb7l5Zuw==  
1124 - dependencies:  
1125 - "@intlify/message-compiler" "9.0.0-beta.16"  
1126 - "@intlify/message-resolver" "9.0.0-beta.16"  
1127 - "@intlify/runtime" "9.0.0-beta.16"  
1128 - "@intlify/shared" "9.0.0-beta.16" 1086 +"@iconify/json@^1.1.307":
  1087 + version "1.1.307"
  1088 + resolved "https://registry.npmjs.org/@iconify/json/-/json-1.1.307.tgz#db97e8faba1183e0411471dafe210deba0cc1fe2"
  1089 + integrity sha512-2hyKd4DKGWNtQ9CNC4s7tRzMHyDai3GnARC26nGZo7f4/r86FTspvjCEbqpbuM5spJ1fn5jx00Iv4Qee89ooRA==
1129 1090
1130 "@intlify/core-base@9.0.0-rc.2": 1091 "@intlify/core-base@9.0.0-rc.2":
1131 version "9.0.0-rc.2" 1092 version "9.0.0-rc.2"
@@ -1137,22 +1098,6 @@ @@ -1137,22 +1098,6 @@
1137 "@intlify/runtime" "9.0.0-rc.2" 1098 "@intlify/runtime" "9.0.0-rc.2"
1138 "@intlify/shared" "9.0.0-rc.2" 1099 "@intlify/shared" "9.0.0-rc.2"
1139 1100
1140 -"@intlify/core@^9.0.0-beta.15":  
1141 - version "9.0.0-beta.16"  
1142 - resolved "https://registry.npmjs.org/@intlify/core/-/core-9.0.0-beta.16.tgz#d74d4678868b37b641bdf999552b237d84dacb88"  
1143 - integrity sha512-tPXf9rr+ZzG1zXgdLo8rCO2jws6eIXzJSaTvgnanZpfyyMKE+T8Ra5vVu3f/Sm0J7flT+z/Q3kLfnbpOMQ1UiQ==  
1144 - dependencies:  
1145 - "@intlify/core-base" "9.0.0-beta.16"  
1146 -  
1147 -"@intlify/message-compiler@9.0.0-beta.16":  
1148 - version "9.0.0-beta.16"  
1149 - resolved "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.0.0-beta.16.tgz#359993251a303f148b3a325eca055cdbaf0cd95f"  
1150 - integrity sha512-dE4UZsbVl5TKogYdfrJ6nQKdin1R4XMKVBVa9dE1A8HVvVHBSLy6iQiYpcw8TwcEHIa+rFjuuHuh+IdN3eCw+g==  
1151 - dependencies:  
1152 - "@intlify/message-resolver" "9.0.0-beta.16"  
1153 - "@intlify/shared" "9.0.0-beta.16"  
1154 - source-map "0.6.1"  
1155 -  
1156 "@intlify/message-compiler@9.0.0-rc.2": 1101 "@intlify/message-compiler@9.0.0-rc.2":
1157 version "9.0.0-rc.2" 1102 version "9.0.0-rc.2"
1158 resolved "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.0.0-rc.2.tgz#b2ea4852af26f62e850c36157c4b8c03e7a072f4" 1103 resolved "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.0.0-rc.2.tgz#b2ea4852af26f62e850c36157c4b8c03e7a072f4"
@@ -1162,25 +1107,11 @@ @@ -1162,25 +1107,11 @@
1162 "@intlify/shared" "9.0.0-rc.2" 1107 "@intlify/shared" "9.0.0-rc.2"
1163 source-map "0.6.1" 1108 source-map "0.6.1"
1164 1109
1165 -"@intlify/message-resolver@9.0.0-beta.16":  
1166 - version "9.0.0-beta.16"  
1167 - resolved "https://registry.npmjs.org/@intlify/message-resolver/-/message-resolver-9.0.0-beta.16.tgz#f8960344201050d17560f8d01f63e3cd0b9bf59c"  
1168 - integrity sha512-xwjsFuDDYEv7g1KE5QZRbrPgfsrNsDhYLtNYR7Tn4inzbmB6ipak2UlDzDcQGLieSFbe1WwAoNL0IXy4sUKboQ==  
1169 -  
1170 "@intlify/message-resolver@9.0.0-rc.2": 1110 "@intlify/message-resolver@9.0.0-rc.2":
1171 version "9.0.0-rc.2" 1111 version "9.0.0-rc.2"
1172 resolved "https://registry.npmjs.org/@intlify/message-resolver/-/message-resolver-9.0.0-rc.2.tgz#d6f5eac6dc594ebb1c5e2f68a94fd9e5429c4a15" 1112 resolved "https://registry.npmjs.org/@intlify/message-resolver/-/message-resolver-9.0.0-rc.2.tgz#d6f5eac6dc594ebb1c5e2f68a94fd9e5429c4a15"
1173 integrity sha512-CNRrIflQmq3aZWsyGu3mfR9d+xA7W0t5HZQeSh+YR9IBHxNg+2uWbYhGDab87yzovIGOnUSO9yxUdD8gBBmR9Q== 1113 integrity sha512-CNRrIflQmq3aZWsyGu3mfR9d+xA7W0t5HZQeSh+YR9IBHxNg+2uWbYhGDab87yzovIGOnUSO9yxUdD8gBBmR9Q==
1174 1114
1175 -"@intlify/runtime@9.0.0-beta.16":  
1176 - version "9.0.0-beta.16"  
1177 - resolved "https://registry.npmjs.org/@intlify/runtime/-/runtime-9.0.0-beta.16.tgz#6a210a5b0984f9e295025e3dde5262108e0e69d9"  
1178 - integrity sha512-py+stHrbkBoEB2OsBB+rySevR+54uhybF54LToGjErr740R/AVuOVTJEKRS/LF9VvinGZZTu/WVOXcPpMfqt8Q==  
1179 - dependencies:  
1180 - "@intlify/message-compiler" "9.0.0-beta.16"  
1181 - "@intlify/message-resolver" "9.0.0-beta.16"  
1182 - "@intlify/shared" "9.0.0-beta.16"  
1183 -  
1184 "@intlify/runtime@9.0.0-rc.2": 1115 "@intlify/runtime@9.0.0-rc.2":
1185 version "9.0.0-rc.2" 1116 version "9.0.0-rc.2"
1186 resolved "https://registry.npmjs.org/@intlify/runtime/-/runtime-9.0.0-rc.2.tgz#20f83a2f57a7789a9588e42a2cf5163f6f13255b" 1117 resolved "https://registry.npmjs.org/@intlify/runtime/-/runtime-9.0.0-rc.2.tgz#20f83a2f57a7789a9588e42a2cf5163f6f13255b"
@@ -1190,11 +1121,6 @@ @@ -1190,11 +1121,6 @@
1190 "@intlify/message-resolver" "9.0.0-rc.2" 1121 "@intlify/message-resolver" "9.0.0-rc.2"
1191 "@intlify/shared" "9.0.0-rc.2" 1122 "@intlify/shared" "9.0.0-rc.2"
1192 1123
1193 -"@intlify/shared@9.0.0-beta.16":  
1194 - version "9.0.0-beta.16"  
1195 - resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.0.0-beta.16.tgz#51a80ca4705c93cb14c8f06398dfc550df09d67d"  
1196 - integrity sha512-A7GSOovcZn/NMoAmDc8FG9uRcFv6iygriK8+C6HFeOnMQ9X+T9f5A9bPtXhCOCiRpQm9SUtGqXedxO5Y8rz9/A==  
1197 -  
1198 "@intlify/shared@9.0.0-rc.2": 1124 "@intlify/shared@9.0.0-rc.2":
1199 version "9.0.0-rc.2" 1125 version "9.0.0-rc.2"
1200 resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.0.0-rc.2.tgz#31f53616fe515e8629f39c179f217ca562d06256" 1126 resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.0.0-rc.2.tgz#31f53616fe515e8629f39c179f217ca562d06256"
@@ -1301,74 +1227,6 @@ @@ -1301,74 +1227,6 @@
1301 estree-walker "^2.0.1" 1227 estree-walker "^2.0.1"
1302 picomatch "^2.2.2" 1228 picomatch "^2.2.2"
1303 1229
1304 -"@sentry/core@5.30.0":  
1305 - version "5.30.0"  
1306 - resolved "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz#6b203664f69e75106ee8b5a2fe1d717379b331f3"  
1307 - integrity sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==  
1308 - dependencies:  
1309 - "@sentry/hub" "5.30.0"  
1310 - "@sentry/minimal" "5.30.0"  
1311 - "@sentry/types" "5.30.0"  
1312 - "@sentry/utils" "5.30.0"  
1313 - tslib "^1.9.3"  
1314 -  
1315 -"@sentry/hub@5.30.0":  
1316 - version "5.30.0"  
1317 - resolved "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz#2453be9b9cb903404366e198bd30c7ca74cdc100"  
1318 - integrity sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==  
1319 - dependencies:  
1320 - "@sentry/types" "5.30.0"  
1321 - "@sentry/utils" "5.30.0"  
1322 - tslib "^1.9.3"  
1323 -  
1324 -"@sentry/minimal@5.30.0":  
1325 - version "5.30.0"  
1326 - resolved "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz#ce3d3a6a273428e0084adcb800bc12e72d34637b"  
1327 - integrity sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==  
1328 - dependencies:  
1329 - "@sentry/hub" "5.30.0"  
1330 - "@sentry/types" "5.30.0"  
1331 - tslib "^1.9.3"  
1332 -  
1333 -"@sentry/node@^5.30.0":  
1334 - version "5.30.0"  
1335 - resolved "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz#4ca479e799b1021285d7fe12ac0858951c11cd48"  
1336 - integrity sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==  
1337 - dependencies:  
1338 - "@sentry/core" "5.30.0"  
1339 - "@sentry/hub" "5.30.0"  
1340 - "@sentry/tracing" "5.30.0"  
1341 - "@sentry/types" "5.30.0"  
1342 - "@sentry/utils" "5.30.0"  
1343 - cookie "^0.4.1"  
1344 - https-proxy-agent "^5.0.0"  
1345 - lru_map "^0.3.3"  
1346 - tslib "^1.9.3"  
1347 -  
1348 -"@sentry/tracing@5.30.0":  
1349 - version "5.30.0"  
1350 - resolved "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz#501d21f00c3f3be7f7635d8710da70d9419d4e1f"  
1351 - integrity sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==  
1352 - dependencies:  
1353 - "@sentry/hub" "5.30.0"  
1354 - "@sentry/minimal" "5.30.0"  
1355 - "@sentry/types" "5.30.0"  
1356 - "@sentry/utils" "5.30.0"  
1357 - tslib "^1.9.3"  
1358 -  
1359 -"@sentry/types@5.30.0":  
1360 - version "5.30.0"  
1361 - resolved "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz#19709bbe12a1a0115bc790b8942917da5636f402"  
1362 - integrity sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==  
1363 -  
1364 -"@sentry/utils@5.30.0":  
1365 - version "5.30.0"  
1366 - resolved "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz#9a5bd7ccff85ccfe7856d493bffa64cabc41e980"  
1367 - integrity sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==  
1368 - dependencies:  
1369 - "@sentry/types" "5.30.0"  
1370 - tslib "^1.9.3"  
1371 -  
1372 "@simonwep/pickr@~1.8.0": 1230 "@simonwep/pickr@~1.8.0":
1373 version "1.8.0" 1231 version "1.8.0"
1374 resolved "https://registry.npmjs.org/@simonwep/pickr/-/pickr-1.8.0.tgz#adbff9a4f7f0e59dec9946508c5e481b7abae0f8" 1232 resolved "https://registry.npmjs.org/@simonwep/pickr/-/pickr-1.8.0.tgz#adbff9a4f7f0e59dec9946508c5e481b7abae0f8"
@@ -1405,11 +1263,6 @@ @@ -1405,11 +1263,6 @@
1405 ejs "^2.6.1" 1263 ejs "^2.6.1"
1406 magic-string "^0.25.0" 1264 magic-string "^0.25.0"
1407 1265
1408 -"@types/braces@*":  
1409 - version "3.0.0"  
1410 - resolved "https://registry.npmjs.org/@types/braces/-/braces-3.0.0.tgz#7da1c0d44ff1c7eb660a36ec078ea61ba7eb42cb"  
1411 - integrity sha512-TbH79tcyi9FHwbyboOKeRachRq63mSuWYXOflsNO9ZyE5ClQ/JaozNKl+aWUq87qPNsXasXxi2AbgfwIJ+8GQw==  
1412 -  
1413 "@types/estree@0.0.39": 1266 "@types/estree@0.0.39":
1414 version "0.0.39" 1267 version "0.0.39"
1415 resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" 1268 resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
@@ -1511,13 +1364,6 @@ @@ -1511,13 +1364,6 @@
1511 dependencies: 1364 dependencies:
1512 "@types/unist" "*" 1365 "@types/unist" "*"
1513 1366
1514 -"@types/micromatch@^4.0.1":  
1515 - version "4.0.1"  
1516 - resolved "https://registry.npmjs.org/@types/micromatch/-/micromatch-4.0.1.tgz#9381449dd659fc3823fd2a4190ceacc985083bc7"  
1517 - integrity sha512-my6fLBvpY70KattTNzYOK6KU1oR1+UCz9ug/JbcF5UrEmeCt9P7DV2t7L8+t18mMPINqGQCE4O8PLOPbI84gxw==  
1518 - dependencies:  
1519 - "@types/braces" "*"  
1520 -  
1521 "@types/minimatch@*", "@types/minimatch@^3.0.3": 1367 "@types/minimatch@*", "@types/minimatch@^3.0.3":
1522 version "3.0.3" 1368 version "3.0.3"
1523 resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" 1369 resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
@@ -1729,7 +1575,7 @@ @@ -1729,7 +1575,7 @@
1729 html-tags "^3.1.0" 1575 html-tags "^3.1.0"
1730 svg-tags "^1.0.0" 1576 svg-tags "^1.0.0"
1731 1577
1732 -"@vue/compiler-core@3.0.5", "@vue/compiler-core@^3.0.0", "@vue/compiler-core@^3.0.1", "@vue/compiler-core@^3.0.2": 1578 +"@vue/compiler-core@3.0.5":
1733 version "3.0.5" 1579 version "3.0.5"
1734 resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.5.tgz#a6e54cabe9536e74c6513acd2649f311af1d43ac" 1580 resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.5.tgz#a6e54cabe9536e74c6513acd2649f311af1d43ac"
1735 integrity sha512-iFXwk2gmU/GGwN4hpBwDWWMLvpkIejf/AybcFtlQ5V1ur+5jwfBaV0Y1RXoR6ePfBPJixtKZ3PmN+M+HgMAtfQ== 1581 integrity sha512-iFXwk2gmU/GGwN4hpBwDWWMLvpkIejf/AybcFtlQ5V1ur+5jwfBaV0Y1RXoR6ePfBPJixtKZ3PmN+M+HgMAtfQ==
@@ -1812,134 +1658,25 @@ @@ -1812,134 +1658,25 @@
1812 resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.0.5.tgz#c131d88bd6713cc4d93b3bb1372edb1983225ff0" 1658 resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.0.5.tgz#c131d88bd6713cc4d93b3bb1372edb1983225ff0"
1813 integrity sha512-gYsNoGkWejBxNO6SNRjOh/xKeZ0H0V+TFzaPzODfBjkAIb0aQgBuixC1brandC/CDJy1wYPwSoYrXpvul7m6yw== 1659 integrity sha512-gYsNoGkWejBxNO6SNRjOh/xKeZ0H0V+TFzaPzODfBjkAIb0aQgBuixC1brandC/CDJy1wYPwSoYrXpvul7m6yw==
1814 1660
1815 -"@vuedx/analyze@0.6.3":  
1816 - version "0.6.3"  
1817 - resolved "https://registry.npmjs.org/@vuedx/analyze/-/analyze-0.6.3.tgz#f7f367ea1a1b10e22212a4f2f89d5781f17f3c84"  
1818 - integrity sha512-LiQ7Ppw4nEr5qjth+gg1m48yXD7usOcAygUU10lLwfRRlDZevxAdZRcNuC0vBOXUG3xbl6CSDXnAMeWFdlUiyw==  
1819 - dependencies:  
1820 - "@babel/code-frame" "^7.10.4"  
1821 - "@babel/generator" "^7.12.1"  
1822 - "@babel/parser" "^7.12.3"  
1823 - "@babel/template" "^7.12.7"  
1824 - "@babel/traverse" "7.12.1"  
1825 - "@babel/types" "7.12.1"  
1826 - "@types/micromatch" "^4.0.1"  
1827 - "@vuedx/compiler-sfc" "0.6.2"  
1828 - "@vuedx/compiler-tsx" "0.6.3"  
1829 - "@vuedx/projectconfig" "0.6.2"  
1830 - "@vuedx/shared" "0.6.2"  
1831 - "@vuedx/template-ast-types" "0.6.2"  
1832 - cli-highlight "^2.1.4"  
1833 - commander "^6.1.0"  
1834 - fast-glob "^3.2.4"  
1835 - hash-sum "^2.0.0"  
1836 - micromatch "^4.0.2"  
1837 -  
1838 -"@vuedx/compiler-sfc@0.6.2":  
1839 - version "0.6.2"  
1840 - resolved "https://registry.npmjs.org/@vuedx/compiler-sfc/-/compiler-sfc-0.6.2.tgz#f9a0d66eb48be839d363364ed4cd96967929f3cb"  
1841 - integrity sha512-mJehCyO6BJiHCLPfVQQZb7RliuwBh7voGkrF27SkA3yhv44VSDaMbDIX2VRm3utl1CacFEVdNFqB9QYviZByfg==  
1842 - dependencies:  
1843 - "@vue/compiler-core" "^3.0.2"  
1844 - lru-cache "^6.0.0"  
1845 - source-map "^0.6.1"  
1846 -  
1847 -"@vuedx/compiler-tsx@0.6.3":  
1848 - version "0.6.3"  
1849 - resolved "https://registry.npmjs.org/@vuedx/compiler-tsx/-/compiler-tsx-0.6.3.tgz#d5ed641ee5c90baf3a04962f47e8c9d31d318b9a"  
1850 - integrity sha512-H1SSgUHQXWoTnrIxvl9uXGMUqKlWjNddp8xc+EAg7BRQ4F7kFzHTzOsafG5xzrqnmZujj8cLUknG123rWgsxIg==  
1851 - dependencies:  
1852 - "@babel/parser" "7.12.3"  
1853 - "@babel/types" "7.12.1"  
1854 - "@vue/compiler-core" "^3.0.1"  
1855 - "@vuedx/shared" "0.6.2"  
1856 - "@vuedx/template-ast-types" "0.6.2"  
1857 -  
1858 -"@vuedx/projectconfig@0.6.2":  
1859 - version "0.6.2"  
1860 - resolved "https://registry.npmjs.org/@vuedx/projectconfig/-/projectconfig-0.6.2.tgz#4c7c32fc76a5a0cb2a8a8b4c4530183d7b70decc"  
1861 - integrity sha512-qoekczmYpg4bOHMUduGgwGEWYq2CZL9HfztNzSPaJnErTBc4VNFnCBLsAtFPLkILASh6vzE2m/EpIzSpMW5mJQ==  
1862 -  
1863 -"@vuedx/shared@0.6.2":  
1864 - version "0.6.2"  
1865 - resolved "https://registry.npmjs.org/@vuedx/shared/-/shared-0.6.2.tgz#ada493a0af75306e37ac19fe8e836f1ce07c8745"  
1866 - integrity sha512-xCXK+X5iDXkNfLglxFGFeEtqSWlopU8Cj6dGgMABWlee7HVDl47A4sj5oQpKuTjwRJHyE+BYtgGxtf1eLee5Yg==  
1867 - dependencies:  
1868 - "@sentry/node" "^5.30.0"  
1869 - node-unique-machine-id "^1.1.0"  
1870 - uuid "^8.3.2"  
1871 -  
1872 -"@vuedx/template-ast-types@0.6.2":  
1873 - version "0.6.2"  
1874 - resolved "https://registry.npmjs.org/@vuedx/template-ast-types/-/template-ast-types-0.6.2.tgz#8932b665abfed4593a0bdbfa91ed788056876770"  
1875 - integrity sha512-TY3IesmF6/XbZnlLnImE30MXVJeXpMh8F5ZKZeeVDIvDWmPDZ6fC8DbDj1GycZtx77C85yZRnJJqq5v0AED4aw==  
1876 - dependencies:  
1877 - "@vue/compiler-core" "^3.0.0"  
1878 -  
1879 -"@vuedx/typecheck@^0.6.3":  
1880 - version "0.6.3"  
1881 - resolved "https://registry.npmjs.org/@vuedx/typecheck/-/typecheck-0.6.3.tgz#d66b8dcfa8d7d37ccfa196d019c8a5cc8bc7fc4d"  
1882 - integrity sha512-1WfUI+bqg1O8Vklz24EZdsUE6ak4QCxtV6gWrUw+VUbep7ANhZM4RkaMsDFWVdeb2dip9ROrO8ESBrsIViPT8Q==  
1883 - dependencies:  
1884 - "@vuedx/shared" "0.6.2"  
1885 - "@vuedx/typescript-plugin-vue" "0.6.3"  
1886 - "@vuedx/vue-virtual-textdocument" "0.6.3"  
1887 - chalk "^4.1.0"  
1888 - fast-glob "^3.2.4"  
1889 - minimist "^1.2.5"  
1890 - resolve-from "^5.0.0"  
1891 - typescript "^4.0.3"  
1892 -  
1893 -"@vuedx/typescript-plugin-vue@0.6.3", "@vuedx/typescript-plugin-vue@^0.6.3":  
1894 - version "0.6.3"  
1895 - resolved "https://registry.npmjs.org/@vuedx/typescript-plugin-vue/-/typescript-plugin-vue-0.6.3.tgz#cc2d99bdc0abbde9bb5909341c47715af00539a3"  
1896 - integrity sha512-zAhXM9LDVYvjAMnTiqf6yZcJXXh1rQrH3JhcmQNmlxk26sRysfa/VWNC8qkfq9vcOKRf1eQusH4g+Vov6qPGig==  
1897 - dependencies:  
1898 - "@intlify/core" "^9.0.0-beta.15"  
1899 - "@vuedx/analyze" "0.6.3"  
1900 - "@vuedx/compiler-sfc" "0.6.2"  
1901 - "@vuedx/projectconfig" "0.6.2"  
1902 - "@vuedx/shared" "0.6.2"  
1903 - "@vuedx/template-ast-types" "0.6.2"  
1904 - "@vuedx/vue-virtual-textdocument" "0.6.3"  
1905 - de-indent "^1.0.2"  
1906 - json5 "^2.1.3"  
1907 - quick-lru "^5.1.1"  
1908 - vscode-uri "^2.1.2"  
1909 - vscode-web-custom-data "^0.3.2"  
1910 -  
1911 -"@vuedx/vue-virtual-textdocument@0.6.3":  
1912 - version "0.6.3"  
1913 - resolved "https://registry.npmjs.org/@vuedx/vue-virtual-textdocument/-/vue-virtual-textdocument-0.6.3.tgz#750484d93378b47ead5f6e319e32d33160ed5658"  
1914 - integrity sha512-FN5h4GsIcYAIfFbal0+1ryddDgpxMx/gxGE5QYinbwj5PwILZzyAUt//drQfppIHzCL+TJuZSml7fAod5tYvQA==  
1915 - dependencies:  
1916 - "@vuedx/analyze" "0.6.3"  
1917 - "@vuedx/compiler-sfc" "0.6.2"  
1918 - "@vuedx/compiler-tsx" "0.6.3"  
1919 - "@vuedx/shared" "0.6.2"  
1920 - source-map "^0.6.1"  
1921 - vscode-languageserver-textdocument "^1.0.1"  
1922 - vscode-uri "^2.1.2"  
1923 -  
1924 -"@vueuse/core@^4.1.1":  
1925 - version "4.1.1"  
1926 - resolved "https://registry.npmjs.org/@vueuse/core/-/core-4.1.1.tgz#9136952bc435dfc42263959bea8dac35965bac43"  
1927 - integrity sha512-a+fu7FUHDzLpgcOGwbgyNZXLbm85NHEf4jkPkyqTtqHEHqU4aVbdyM0Vzl90PpFEDe92pJjoYJnZEQQgq9nEHw== 1661 +"@vueuse/core@^4.2.1":
  1662 + version "4.2.1"
  1663 + resolved "https://registry.npmjs.org/@vueuse/core/-/core-4.2.1.tgz#ac72801c67f26315723d4d244e843c28047f7bc4"
  1664 + integrity sha512-V8KohPwbIN9t5ZWfqB+TJhzM2iwrugq78t6I1QwoGdaw9fdbQfHJiiaf83MGxgYO2B9IwVtuYc4Vjd9X/0Kppg==
1928 dependencies: 1665 dependencies:
1929 - "@vueuse/shared" "4.1.1" 1666 + "@vueuse/shared" "4.2.1"
1930 vue-demi latest 1667 vue-demi latest
1931 1668
1932 -"@vueuse/shared@4.1.1":  
1933 - version "4.1.1"  
1934 - resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-4.1.1.tgz#58e4333d5ab45927e25578fad83bc81cecfea475"  
1935 - integrity sha512-M1bNwOaJZypu/AUYKrOU87pQLRp8VgMYHQyL1hVc6V3hi3ZcUBSjZuyFVaUdxGk0OeA0NPzHoYbByTMrpxElug== 1669 +"@vueuse/shared@4.2.1":
  1670 + version "4.2.1"
  1671 + resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-4.2.1.tgz#67e3229e7df68e2c4225d0086537e3a972fe89eb"
  1672 + integrity sha512-lSrzRHRzdqf4LTczeTrVmRd4cmJ6D1u77fJ2E9gksfKHZs+zwSZku7EiAqVj/g1nqZglTu5Z4y6aE6dp3YLYWw==
1936 dependencies: 1673 dependencies:
1937 vue-demi latest 1674 vue-demi latest
1938 1675
1939 -"@windicss/plugin-utils@0.4.3":  
1940 - version "0.4.3"  
1941 - resolved "https://registry.npmjs.org/@windicss/plugin-utils/-/plugin-utils-0.4.3.tgz#84e85fd3cd6eaf54ca72cae276f9cf0610f45e56"  
1942 - integrity sha512-ilddLED+sZQIA9rOwE5eYwdBEBWKREvAVkkiAOOTNf7oDcP/a1cxT3f/nE4tgfhz+MC/FKcy7NkfrqfXRdEQaQ== 1676 +"@windicss/plugin-utils@0.4.4":
  1677 + version "0.4.4"
  1678 + resolved "https://registry.npmjs.org/@windicss/plugin-utils/-/plugin-utils-0.4.4.tgz#fd18565a23df7896d8a4550bcecad631311db538"
  1679 + integrity sha512-qQHtNPt0eI2K2lsFHBN5y/rbC3ndXgR+PZuKdj2oirQLKMXFyU70+GdeMShi3OkZXAwGqN08MvdoiTsC2jGEMQ==
1943 dependencies: 1680 dependencies:
1944 esbuild "^0.8.49" 1681 esbuild "^0.8.49"
1945 esbuild-register "^2.0.0" 1682 esbuild-register "^2.0.0"
@@ -1983,13 +1720,6 @@ adler-32@~1.2.0: @@ -1983,13 +1720,6 @@ adler-32@~1.2.0:
1983 exit-on-epipe "~1.0.1" 1720 exit-on-epipe "~1.0.1"
1984 printj "~1.1.0" 1721 printj "~1.1.0"
1985 1722
1986 -agent-base@6:  
1987 - version "6.0.2"  
1988 - resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"  
1989 - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==  
1990 - dependencies:  
1991 - debug "4"  
1992 -  
1993 aggregate-error@^3.0.0: 1723 aggregate-error@^3.0.0:
1994 version "3.1.0" 1724 version "3.1.0"
1995 resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" 1725 resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
@@ -2097,11 +1827,6 @@ ant-design-vue@2.0.0: @@ -2097,11 +1827,6 @@ ant-design-vue@2.0.0:
2097 vue-types "^3.0.0" 1827 vue-types "^3.0.0"
2098 warning "^4.0.0" 1828 warning "^4.0.0"
2099 1829
2100 -any-promise@^1.0.0:  
2101 - version "1.3.0"  
2102 - resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"  
2103 - integrity sha1-q8av7tzqUugJzcA3au0845Y10X8=  
2104 -  
2105 anymatch@~3.1.1: 1830 anymatch@~3.1.1:
2106 version "3.1.1" 1831 version "3.1.1"
2107 resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" 1832 resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
@@ -2755,18 +2480,6 @@ cli-cursor@^3.1.0: @@ -2755,18 +2480,6 @@ cli-cursor@^3.1.0:
2755 dependencies: 2480 dependencies:
2756 restore-cursor "^3.1.0" 2481 restore-cursor "^3.1.0"
2757 2482
2758 -cli-highlight@^2.1.4:  
2759 - version "2.1.10"  
2760 - resolved "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.10.tgz#26a087da9209dce4fcb8cf5427dc97cd96ac173a"  
2761 - integrity sha512-CcPFD3JwdQ2oSzy+AMG6j3LRTkNjM82kzcSKzoVw6cLanDCJNlsLjeqVTOTfOfucnWv5F0rmBemVf1m9JiIasw==  
2762 - dependencies:  
2763 - chalk "^4.0.0"  
2764 - highlight.js "^10.0.0"  
2765 - mz "^2.4.0"  
2766 - parse5 "^5.1.1"  
2767 - parse5-htmlparser2-tree-adapter "^6.0.0"  
2768 - yargs "^16.0.0"  
2769 -  
2770 cli-truncate@^2.1.0: 2483 cli-truncate@^2.1.0:
2771 version "2.1.0" 2484 version "2.1.0"
2772 resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" 2485 resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7"
@@ -2895,7 +2608,7 @@ commander@^4.1.1: @@ -2895,7 +2608,7 @@ commander@^4.1.1:
2895 resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" 2608 resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
2896 integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== 2609 integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
2897 2610
2898 -commander@^6.1.0, commander@^6.2.0: 2611 +commander@^6.2.0:
2899 version "6.2.1" 2612 version "6.2.1"
2900 resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" 2613 resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
2901 integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== 2614 integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
@@ -3179,11 +2892,6 @@ convert-source-map@^1.7.0: @@ -3179,11 +2892,6 @@ convert-source-map@^1.7.0:
3179 dependencies: 2892 dependencies:
3180 safe-buffer "~5.1.1" 2893 safe-buffer "~5.1.1"
3181 2894
3182 -cookie@^0.4.1:  
3183 - version "0.4.1"  
3184 - resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1"  
3185 - integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==  
3186 -  
3187 copy-anything@^2.0.1: 2895 copy-anything@^2.0.1:
3188 version "2.0.1" 2896 version "2.0.1"
3189 resolved "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.1.tgz#2afbce6da684bdfcbec93752fa762819cb480d9a" 2897 resolved "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.1.tgz#2afbce6da684bdfcbec93752fa762819cb480d9a"
@@ -3394,11 +3102,6 @@ dayjs@^1.10.4: @@ -3394,11 +3102,6 @@ dayjs@^1.10.4:
3394 resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.10.4.tgz#8e544a9b8683f61783f570980a8a80eaf54ab1e2" 3102 resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.10.4.tgz#8e544a9b8683f61783f570980a8a80eaf54ab1e2"
3395 integrity sha512-RI/Hh4kqRc1UKLOAf/T5zdMMX5DQIlDxwUe3wSyMMnEbGunnpENCdbUgM+dW7kXidZqCttBrmw7BhN4TMddkCw== 3103 integrity sha512-RI/Hh4kqRc1UKLOAf/T5zdMMX5DQIlDxwUe3wSyMMnEbGunnpENCdbUgM+dW7kXidZqCttBrmw7BhN4TMddkCw==
3396 3104
3397 -de-indent@^1.0.2:  
3398 - version "1.0.2"  
3399 - resolved "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"  
3400 - integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=  
3401 -  
3402 debug@2.6.9, debug@^2.2.0, debug@^2.3.3: 3105 debug@2.6.9, debug@^2.2.0, debug@^2.3.3:
3403 version "2.6.9" 3106 version "2.6.9"
3404 resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 3107 resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
@@ -3406,13 +3109,6 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3: @@ -3406,13 +3109,6 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3:
3406 dependencies: 3109 dependencies:
3407 ms "2.0.0" 3110 ms "2.0.0"
3408 3111
3409 -debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1:  
3410 - version "4.3.1"  
3411 - resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"  
3412 - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==  
3413 - dependencies:  
3414 - ms "2.1.2"  
3415 -  
3416 debug@^3.1.1, debug@^3.2.6: 3112 debug@^3.1.1, debug@^3.2.6:
3417 version "3.2.7" 3113 version "3.2.7"
3418 resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" 3114 resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
@@ -3420,6 +3116,13 @@ debug@^3.1.1, debug@^3.2.6: @@ -3420,6 +3116,13 @@ debug@^3.1.1, debug@^3.2.6:
3420 dependencies: 3116 dependencies:
3421 ms "^2.1.1" 3117 ms "^2.1.1"
3422 3118
  3119 +debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1:
  3120 + version "4.3.1"
  3121 + resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
  3122 + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
  3123 + dependencies:
  3124 + ms "2.1.2"
  3125 +
3423 debug@^4.3.2: 3126 debug@^4.3.2:
3424 version "4.3.2" 3127 version "4.3.2"
3425 resolved "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" 3128 resolved "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
@@ -3726,10 +3429,10 @@ ejs@^2.6.1: @@ -3726,10 +3429,10 @@ ejs@^2.6.1:
3726 resolved "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" 3429 resolved "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba"
3727 integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== 3430 integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
3728 3431
3729 -ejs@^3.1.5:  
3730 - version "3.1.5"  
3731 - resolved "https://registry.npmjs.org/ejs/-/ejs-3.1.5.tgz#aed723844dc20acb4b170cd9ab1017e476a0d93b"  
3732 - integrity sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w== 3432 +ejs@^3.1.6:
  3433 + version "3.1.6"
  3434 + resolved "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz#5bfd0a0689743bb5268b3550cceeebbc1702822a"
  3435 + integrity sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==
3733 dependencies: 3436 dependencies:
3734 jake "^10.6.1" 3437 jake "^10.6.1"
3735 3438
@@ -4216,7 +3919,7 @@ fast-diff@^1.1.2: @@ -4216,7 +3919,7 @@ fast-diff@^1.1.2:
4216 resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" 3919 resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03"
4217 integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== 3920 integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
4218 3921
4219 -fast-glob@^3.0.3, fast-glob@^3.1.1, fast-glob@^3.2.4, fast-glob@^3.2.5: 3922 +fast-glob@^3.0.3, fast-glob@^3.1.1, fast-glob@^3.2.5:
4220 version "3.2.5" 3923 version "3.2.5"
4221 resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" 3924 resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661"
4222 integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== 3925 integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==
@@ -4966,11 +4669,6 @@ header-case@^2.0.4: @@ -4966,11 +4669,6 @@ header-case@^2.0.4:
4966 capital-case "^1.0.4" 4669 capital-case "^1.0.4"
4967 tslib "^2.0.3" 4670 tslib "^2.0.3"
4968 4671
4969 -highlight.js@^10.0.0:  
4970 - version "10.5.0"  
4971 - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-10.5.0.tgz#3f09fede6a865757378f2d9ebdcbc15ba268f98f"  
4972 - integrity sha512-xTmvd9HiIHR6L53TMC7TKolEj65zG1XU+Onr8oi86mYa+nLcIbxTTWkpW7CsEwv/vK7u1zb8alZIMLDqqN6KTw==  
4973 -  
4974 homedir-polyfill@^1.0.1: 4672 homedir-polyfill@^1.0.1:
4975 version "1.0.3" 4673 version "1.0.3"
4976 resolved "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" 4674 resolved "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8"
@@ -5066,23 +4764,15 @@ http-server@^0.12.3: @@ -5066,23 +4764,15 @@ http-server@^0.12.3:
5066 secure-compare "3.0.1" 4764 secure-compare "3.0.1"
5067 union "~0.5.0" 4765 union "~0.5.0"
5068 4766
5069 -https-proxy-agent@^5.0.0:  
5070 - version "5.0.0"  
5071 - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2"  
5072 - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==  
5073 - dependencies:  
5074 - agent-base "6"  
5075 - debug "4"  
5076 -  
5077 human-signals@^1.1.1: 4767 human-signals@^1.1.1:
5078 version "1.1.1" 4768 version "1.1.1"
5079 resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" 4769 resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
5080 integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== 4770 integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
5081 4771
5082 -husky@^5.0.9:  
5083 - version "5.0.9"  
5084 - resolved "https://registry.npmjs.org/husky/-/husky-5.0.9.tgz#6d38706643d66ed395bcd4ee952d02e3f15eb3a3"  
5085 - integrity sha512-0SjcaY21a+IRdx7p7r/X33Vc09UR2m8SbP8yfkhUX2/jAmwcz+GR7i9jXkp2pP3GfX23JhMkVP6SWwXB18uXtg== 4772 +husky@^5.1.0:
  4773 + version "5.1.0"
  4774 + resolved "https://registry.npmjs.org/husky/-/husky-5.1.0.tgz#68b1148523acc838af0655ead71bf4671adb9f93"
  4775 + integrity sha512-Os0EY2haOO+59YZSwMiUDsHY43RFwBVIRStHcnnT8/kvA+sFfaA/YS4uLFRiymXYgQl6E6TQTt3y4v/Z2ctEtw==
5086 4776
5087 iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: 4777 iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
5088 version "0.4.24" 4778 version "0.4.24"
@@ -5738,7 +5428,7 @@ json5@^1.0.1: @@ -5738,7 +5428,7 @@ json5@^1.0.1:
5738 dependencies: 5428 dependencies:
5739 minimist "^1.2.0" 5429 minimist "^1.2.0"
5740 5430
5741 -json5@^2.1.2, json5@^2.1.3: 5431 +json5@^2.1.2:
5742 version "2.1.3" 5432 version "2.1.3"
5743 resolved "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" 5433 resolved "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43"
5744 integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== 5434 integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==
@@ -6092,11 +5782,6 @@ lru-cache@^6.0.0: @@ -6092,11 +5782,6 @@ lru-cache@^6.0.0:
6092 dependencies: 5782 dependencies:
6093 yallist "^4.0.0" 5783 yallist "^4.0.0"
6094 5784
6095 -lru_map@^0.3.3:  
6096 - version "0.3.3"  
6097 - resolved "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd"  
6098 - integrity sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=  
6099 -  
6100 magic-string@^0.25.0, magic-string@^0.25.7: 5785 magic-string@^0.25.0, magic-string@^0.25.7:
6101 version "0.25.7" 5786 version "0.25.7"
6102 resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" 5787 resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051"
@@ -6449,15 +6134,6 @@ mute-stream@0.0.7: @@ -6449,15 +6134,6 @@ mute-stream@0.0.7:
6449 resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" 6134 resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
6450 integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= 6135 integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
6451 6136
6452 -mz@^2.4.0:  
6453 - version "2.7.0"  
6454 - resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"  
6455 - integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==  
6456 - dependencies:  
6457 - any-promise "^1.0.0"  
6458 - object-assign "^4.0.1"  
6459 - thenify-all "^1.0.0"  
6460 -  
6461 nanoid@^3.0.1, nanoid@^3.1.20: 6137 nanoid@^3.0.1, nanoid@^3.1.20:
6462 version "3.1.20" 6138 version "3.1.20"
6463 resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" 6139 resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788"
@@ -6532,13 +6208,6 @@ node-releases@^1.1.69: @@ -6532,13 +6208,6 @@ node-releases@^1.1.69:
6532 resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz#66e0ed0273aa65666d7fe78febe7634875426a08" 6208 resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz#66e0ed0273aa65666d7fe78febe7634875426a08"
6533 integrity sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw== 6209 integrity sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==
6534 6210
6535 -node-unique-machine-id@^1.1.0:  
6536 - version "1.1.0"  
6537 - resolved "https://registry.npmjs.org/node-unique-machine-id/-/node-unique-machine-id-1.1.0.tgz#dbd9351da927cfc0e85a663a55e8644da384b746"  
6538 - integrity sha512-uJtdcFelVD08XdvxYWYzMYprSTPYl9CYiQbyGYbjXZcMZtLRlEqNUs+C/va/81DNgExsMHL5g0YDYQFS0pENRQ==  
6539 - dependencies:  
6540 - uuid "^3.3.3"  
6541 -  
6542 normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: 6211 normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0:
6543 version "2.5.0" 6212 version "2.5.0"
6544 resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" 6213 resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
@@ -6973,23 +6642,6 @@ parse-passwd@^1.0.0: @@ -6973,23 +6642,6 @@ parse-passwd@^1.0.0:
6973 resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" 6642 resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
6974 integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= 6643 integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=
6975 6644
6976 -parse5-htmlparser2-tree-adapter@^6.0.0:  
6977 - version "6.0.1"  
6978 - resolved "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6"  
6979 - integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==  
6980 - dependencies:  
6981 - parse5 "^6.0.1"  
6982 -  
6983 -parse5@^5.1.1:  
6984 - version "5.1.1"  
6985 - resolved "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178"  
6986 - integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==  
6987 -  
6988 -parse5@^6.0.1:  
6989 - version "6.0.1"  
6990 - resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b"  
6991 - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==  
6992 -  
6993 parseurl@~1.3.3: 6645 parseurl@~1.3.3:
6994 version "1.3.3" 6646 version "1.3.3"
6995 resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 6647 resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
@@ -7428,11 +7080,6 @@ quick-lru@^4.0.1: @@ -7428,11 +7080,6 @@ quick-lru@^4.0.1:
7428 resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" 7080 resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f"
7429 integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== 7081 integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==
7430 7082
7431 -quick-lru@^5.1.1:  
7432 - version "5.1.1"  
7433 - resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"  
7434 - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==  
7435 -  
7436 randombytes@^2.1.0: 7083 randombytes@^2.1.0:
7437 version "2.1.0" 7084 version "2.1.0"
7438 resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" 7085 resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
@@ -8724,20 +8371,6 @@ text-table@^0.2.0: @@ -8724,20 +8371,6 @@ text-table@^0.2.0:
8724 resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 8371 resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
8725 integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= 8372 integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
8726 8373
8727 -thenify-all@^1.0.0:  
8728 - version "1.6.0"  
8729 - resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"  
8730 - integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=  
8731 - dependencies:  
8732 - thenify ">= 3.1.0 < 4"  
8733 -  
8734 -"thenify@>= 3.1.0 < 4":  
8735 - version "3.3.1"  
8736 - resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f"  
8737 - integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==  
8738 - dependencies:  
8739 - any-promise "^1.0.0"  
8740 -  
8741 through2@^2.0.0, through2@^2.0.2: 8374 through2@^2.0.0, through2@^2.0.2:
8742 version "2.0.5" 8375 version "2.0.5"
8743 resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" 8376 resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
@@ -8873,7 +8506,7 @@ tslib@2.0.3: @@ -8873,7 +8506,7 @@ tslib@2.0.3:
8873 resolved "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" 8506 resolved "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c"
8874 integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ== 8507 integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==
8875 8508
8876 -tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: 8509 +tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0:
8877 version "1.14.1" 8510 version "1.14.1"
8878 resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" 8511 resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
8879 integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== 8512 integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
@@ -8944,11 +8577,6 @@ typedarray-to-buffer@^3.1.5: @@ -8944,11 +8577,6 @@ typedarray-to-buffer@^3.1.5:
8944 dependencies: 8577 dependencies:
8945 is-typedarray "^1.0.0" 8578 is-typedarray "^1.0.0"
8946 8579
8947 -typescript@^4.0.3:  
8948 - version "4.1.3"  
8949 - resolved "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7"  
8950 - integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==  
8951 -  
8952 typescript@^4.1.5: 8580 typescript@^4.1.5:
8953 version "4.1.5" 8581 version "4.1.5"
8954 resolved "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz#123a3b214aaff3be32926f0d8f1f6e704eb89a72" 8582 resolved "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz#123a3b214aaff3be32926f0d8f1f6e704eb89a72"
@@ -9158,16 +8786,11 @@ utils-merge@1.0.1: @@ -9158,16 +8786,11 @@ utils-merge@1.0.1:
9158 resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 8786 resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
9159 integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= 8787 integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
9160 8788
9161 -uuid@^3.0.1, uuid@^3.3.2, uuid@^3.3.3: 8789 +uuid@^3.0.1, uuid@^3.3.2:
9162 version "3.4.0" 8790 version "3.4.0"
9163 resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" 8791 resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
9164 integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== 8792 integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
9165 8793
9166 -uuid@^8.3.2:  
9167 - version "8.3.2"  
9168 - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"  
9169 - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==  
9170 -  
9171 v8-compile-cache@^2.0.3, v8-compile-cache@^2.2.0: 8794 v8-compile-cache@^2.0.3, v8-compile-cache@^2.2.0:
9172 version "2.2.0" 8795 version "2.2.0"
9173 resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" 8796 resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132"
@@ -9215,12 +8838,12 @@ vite-plugin-compression@^0.2.1: @@ -9215,12 +8838,12 @@ vite-plugin-compression@^0.2.1:
9215 debug "^4.3.2" 8838 debug "^4.3.2"
9216 fs-extra "^9.1.0" 8839 fs-extra "^9.1.0"
9217 8840
9218 -vite-plugin-html@^2.0.0:  
9219 - version "2.0.0"  
9220 - resolved "https://registry.npmjs.org/vite-plugin-html/-/vite-plugin-html-2.0.0.tgz#de39b99ce7df4d0e1234bfae5c23215647d71a28"  
9221 - integrity sha512-6nfzAcMp345FRI5WTHOq11O585nlJ2ELwFarhZEi/yvrR1FauhDcFOGGL67/IKiTruYZaatZ3xnFg5BIxK6/7w== 8841 +vite-plugin-html@^2.0.1:
  8842 + version "2.0.1"
  8843 + resolved "https://registry.npmjs.org/vite-plugin-html/-/vite-plugin-html-2.0.1.tgz#6a8fa9a705024aa47e03b9b990c650773e2bd29b"
  8844 + integrity sha512-qmoPTTkajxCuctxoAreIF9JW6HjrUr6hKJWLHnwRPoBd9SNzcyDwI6cW4gd4DQy2zHcQA7dD8LzgmT1Qz0vvgw==
9222 dependencies: 8845 dependencies:
9223 - ejs "^3.1.5" 8846 + ejs "^3.1.6"
9224 fs-extra "^9.1.0" 8847 fs-extra "^9.1.0"
9225 html-minifier-terser "^5.1.1" 8848 html-minifier-terser "^5.1.1"
9226 8849
@@ -9274,10 +8897,10 @@ vite-plugin-purge-icons@^0.7.0: @@ -9274,10 +8897,10 @@ vite-plugin-purge-icons@^0.7.0:
9274 "@purge-icons/generated" "^0.7.0" 8897 "@purge-icons/generated" "^0.7.0"
9275 rollup-plugin-purge-icons "^0.7.0" 8898 rollup-plugin-purge-icons "^0.7.0"
9276 8899
9277 -vite-plugin-pwa@^0.5.2:  
9278 - version "0.5.2"  
9279 - resolved "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.5.2.tgz#48131ebadc0c98c34a543dbf1bb1c86aeef532e0"  
9280 - integrity sha512-4SHKxYhd5sCF/ebbgxGYlN91UHlylzh7C32a5+Y2c2vbrWzw5x62ZxsYzolQzBosdOim4Ez+e/dX4hmP3BCmow== 8900 +vite-plugin-pwa@^0.5.3:
  8901 + version "0.5.3"
  8902 + resolved "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.5.3.tgz#60d97d62335846144c8e6b6a911704d6c0f75171"
  8903 + integrity sha512-xGh0gIgzczvYNj8ED5HhpJ2iT5kMiieim2qI8kT/3+rfo83hTyuzhEICkljIbhausvOaGxtzLKWE8RS6cUg0Fw==
9281 dependencies: 8904 dependencies:
9282 debug "^4.3.2" 8905 debug "^4.3.2"
9283 fast-glob "^3.2.5" 8906 fast-glob "^3.2.5"
@@ -9307,12 +8930,12 @@ vite-plugin-theme@^0.4.3: @@ -9307,12 +8930,12 @@ vite-plugin-theme@^0.4.3:
9307 es-module-lexer "^0.3.26" 8930 es-module-lexer "^0.3.26"
9308 tinycolor2 "^1.4.2" 8931 tinycolor2 "^1.4.2"
9309 8932
9310 -vite-plugin-windicss@0.4.3:  
9311 - version "0.4.3"  
9312 - resolved "https://registry.npmjs.org/vite-plugin-windicss/-/vite-plugin-windicss-0.4.3.tgz#f86e5a3b78882caa3cdd50cba2b08770e2d627c8"  
9313 - integrity sha512-Lnv6OhcYzcJvecTs4LIpMSfo54rSewkHrW85IVwy8hacR0krY319jXr5nwiDpSTp6HM3QJhoJ4zxHF+t5Q+Nwg== 8933 +vite-plugin-windicss@0.4.4:
  8934 + version "0.4.4"
  8935 + resolved "https://registry.npmjs.org/vite-plugin-windicss/-/vite-plugin-windicss-0.4.4.tgz#fd13fba5b55211f34768f5acfadfd743f95c24a6"
  8936 + integrity sha512-VDQn4cO+cq7sEV2yD1n+Mg6sN4TiFZwdeuteN7uDk6gintbUAMNHyoFyZUF0Z0/vYN4Ca62HvXlXdTgheE4QYg==
9314 dependencies: 8937 dependencies:
9315 - "@windicss/plugin-utils" "0.4.3" 8938 + "@windicss/plugin-utils" "0.4.4"
9316 windicss "^2.1.15" 8939 windicss "^2.1.15"
9317 8940
9318 vite@2.0.1: 8941 vite@2.0.1:
@@ -9327,21 +8950,6 @@ vite@2.0.1: @@ -9327,21 +8950,6 @@ vite@2.0.1:
9327 optionalDependencies: 8950 optionalDependencies:
9328 fsevents "~2.3.1" 8951 fsevents "~2.3.1"
9329 8952
9330 -vscode-languageserver-textdocument@^1.0.1:  
9331 - version "1.0.1"  
9332 - resolved "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.1.tgz#178168e87efad6171b372add1dea34f53e5d330f"  
9333 - integrity sha512-UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA==  
9334 -  
9335 -vscode-uri@^2.1.2:  
9336 - version "2.1.2"  
9337 - resolved "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.2.tgz#c8d40de93eb57af31f3c715dd650e2ca2c096f1c"  
9338 - integrity sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==  
9339 -  
9340 -vscode-web-custom-data@^0.3.2:  
9341 - version "0.3.2"  
9342 - resolved "https://registry.npmjs.org/vscode-web-custom-data/-/vscode-web-custom-data-0.3.2.tgz#62a5a924397d8056c5524ff0ff8f14eb815b7066"  
9343 - integrity sha512-GGZ99dJbARyh6rv03dXZImGlP5WvNG382A3nIt0yX1uyqBa558L/klHWcgEJzcVkG4t16OQWwPedMR3JkeD2Qg==  
9344 -  
9345 vue-demi@latest: 8953 vue-demi@latest:
9346 version "0.6.0" 8954 version "0.6.0"
9347 resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.6.0.tgz#e314282f704cb449119b9fd002cbbc0e39f591fe" 8955 resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.6.0.tgz#e314282f704cb449119b9fd002cbbc0e39f591fe"
@@ -9773,7 +9381,7 @@ yargs@^15.1.0: @@ -9773,7 +9381,7 @@ yargs@^15.1.0:
9773 y18n "^4.0.0" 9381 y18n "^4.0.0"
9774 yargs-parser "^18.1.2" 9382 yargs-parser "^18.1.2"
9775 9383
9776 -yargs@^16.0.0, yargs@^16.0.3, yargs@^16.2.0: 9384 +yargs@^16.0.3, yargs@^16.2.0:
9777 version "16.2.0" 9385 version "16.2.0"
9778 resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" 9386 resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
9779 integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== 9387 integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==