Commit c625462e98eec006aaeeef14280775cafeb72364

Authored by Vben
1 parent b6cea4a9

feat(ws): added WebSocket examples and service scripts

CHANGELOG.zh_CN.md
@@ -10,6 +10,7 @@ @@ -10,6 +10,7 @@
10 - 新增图标选择器组件 10 - 新增图标选择器组件
11 - 新增修改密码界面 11 - 新增修改密码界面
12 - 新增部门管理示例界面 12 - 新增部门管理示例界面
  13 +- 新增 WebSocket 示例和服务脚本
13 14
14 ### ⚡ Performance Improvements 15 ### ⚡ Performance Improvements
15 16
package.json
@@ -42,7 +42,7 @@ @@ -42,7 +42,7 @@
42 "qrcode": "^1.4.4", 42 "qrcode": "^1.4.4",
43 "sortablejs": "^1.13.0", 43 "sortablejs": "^1.13.0",
44 "vditor": "^3.8.1", 44 "vditor": "^3.8.1",
45 - "vue": "3.0.5", 45 + "vue": "^3.0.7",
46 "vue-i18n": "^9.0.0", 46 "vue-i18n": "^9.0.0",
47 "vue-router": "^4.0.4", 47 "vue-router": "^4.0.4",
48 "vue-types": "^3.0.2", 48 "vue-types": "^3.0.2",
@@ -73,7 +73,7 @@ @@ -73,7 +73,7 @@
73 "@vitejs/plugin-legacy": "^1.3.1", 73 "@vitejs/plugin-legacy": "^1.3.1",
74 "@vitejs/plugin-vue": "^1.1.5", 74 "@vitejs/plugin-vue": "^1.1.5",
75 "@vitejs/plugin-vue-jsx": "^1.1.2", 75 "@vitejs/plugin-vue-jsx": "^1.1.2",
76 - "@vue/compiler-sfc": "3.0.5", 76 + "@vue/compiler-sfc": "^3.0.7",
77 "autoprefixer": "^10.2.4", 77 "autoprefixer": "^10.2.4",
78 "commitizen": "^4.2.3", 78 "commitizen": "^4.2.3",
79 "conventional-changelog-cli": "^2.1.1", 79 "conventional-changelog-cli": "^2.1.1",
src/components/SimpleMenu/src/index.less
@@ -35,7 +35,7 @@ @@ -35,7 +35,7 @@
35 35
36 &-tag { 36 &-tag {
37 position: absolute; 37 position: absolute;
38 - top: calc(50% - 10px); 38 + top: calc(50% - 8px);
39 right: 30px; 39 right: 30px;
40 display: inline-block; 40 display: inline-block;
41 padding: 2px 3px; 41 padding: 2px 3px;
src/locales/lang/en/routes/demo/feat.ts
@@ -16,6 +16,8 @@ export default { @@ -16,6 +16,8 @@ export default {
16 tab1: 'Tab with parameter 1', 16 tab1: 'Tab with parameter 1',
17 tab2: 'Tab with parameter 2', 17 tab2: 'Tab with parameter 2',
18 18
  19 + ws: 'Websocket test',
  20 +
19 breadcrumb: 'Breadcrumbs', 21 breadcrumb: 'Breadcrumbs',
20 breadcrumbFlat: 'Flat Mode', 22 breadcrumbFlat: 'Flat Mode',
21 breadcrumbFlatDetail: 'Flat mode details', 23 breadcrumbFlatDetail: 'Flat mode details',
src/locales/lang/zh_CN/routes/demo/feat.ts
@@ -16,6 +16,8 @@ export default { @@ -16,6 +16,8 @@ export default {
16 tab1: 'Tab带参1', 16 tab1: 'Tab带参1',
17 tab2: 'Tab带参2', 17 tab2: 'Tab带参2',
18 18
  19 + ws: 'websocket测试',
  20 +
19 breadcrumb: '面包屑导航', 21 breadcrumb: '面包屑导航',
20 breadcrumbFlat: '平级模式', 22 breadcrumbFlat: '平级模式',
21 breadcrumbFlatDetail: '平级详情', 23 breadcrumbFlatDetail: '平级详情',
src/router/menus/modules/demo/feat.ts
@@ -19,6 +19,13 @@ const menu: MenuModule = { @@ -19,6 +19,13 @@ const menu: MenuModule = {
19 }, 19 },
20 }, 20 },
21 { 21 {
  22 + path: 'ws',
  23 + name: t('routes.demo.feat.ws'),
  24 + tag: {
  25 + content: 'new',
  26 + },
  27 + },
  28 + {
22 path: 'tabs', 29 path: 'tabs',
23 name: t('routes.demo.feat.tabs'), 30 name: t('routes.demo.feat.tabs'),
24 }, 31 },
src/router/routes/modules/demo/feat.ts
@@ -22,6 +22,14 @@ const feat: AppRouteModule = { @@ -22,6 +22,14 @@ const feat: AppRouteModule = {
22 }, 22 },
23 }, 23 },
24 { 24 {
  25 + path: 'ws',
  26 + name: 'WebSocket',
  27 + component: () => import('/@/views/demo/feat/ws/index.vue'),
  28 + meta: {
  29 + title: t('routes.demo.feat.ws'),
  30 + },
  31 + },
  32 + {
25 path: 'tabs', 33 path: 'tabs',
26 name: 'TabsDemo', 34 name: 'TabsDemo',
27 component: () => import('/@/views/demo/feat/tabs/index.vue'), 35 component: () => import('/@/views/demo/feat/tabs/index.vue'),
src/views/demo/feat/ws/index.vue 0 → 100644
  1 +<template>
  2 + <PageWrapper title="WebSocket 示例">
  3 + <div class="flex">
  4 + <div class="w-1/3 bg-white p-4">
  5 + <div class="flex items-center">
  6 + <span class="text-lg font-medium mr-4"> 连接状态: </span>
  7 + <Tag :color="getTagColor">{{ status }}</Tag>
  8 + </div>
  9 + <hr class="my-4" />
  10 +
  11 + <div class="flex">
  12 + <a-input v-model:value="server" disabled>
  13 + <template #addonBefore> 服务地址 </template>
  14 + </a-input>
  15 + <a-button :type="getIsOpen ? 'danger' : 'primary'" @click="toggle">
  16 + {{ getIsOpen ? '关闭连接' : '开启连接' }}
  17 + </a-button>
  18 + </div>
  19 + <p class="text-lg font-medium mt-4">设置</p>
  20 + <hr class="my-4" />
  21 +
  22 + <InputTextArea
  23 + placeholder="需要发送到服务器的内容"
  24 + :disabled="!getIsOpen"
  25 + v-model:value="sendValue"
  26 + allowClear
  27 + />
  28 +
  29 + <a-button type="primary" block class="mt-4" :disabled="!getIsOpen" @click="handlerSend">
  30 + 发送
  31 + </a-button>
  32 + </div>
  33 +
  34 + <div class="w-2/3 bg-white ml-4 p-4">
  35 + <span class="text-lg font-medium mr-4"> 消息记录: </span>
  36 + <hr class="my-4" />
  37 +
  38 + <div class="max-h-80 overflow-auto">
  39 + <ul>
  40 + <li v-for="item in getList" class="border-b-1 mt-2" :key="item.time">
  41 + <div class="flex items-center">
  42 + <span class="mr-2 text-primary font-medium">收到消息:</span>
  43 + <span>{{ formatToDateTime(item.time) }}</span>
  44 + </div>
  45 + <div>
  46 + {{ item.res }}
  47 + </div>
  48 + </li>
  49 + </ul>
  50 + </div>
  51 + </div>
  52 + </div>
  53 + </PageWrapper>
  54 +</template>
  55 +<script lang="ts">
  56 + import { defineComponent, reactive, watchEffect, computed, toRefs } from 'vue';
  57 + import { Alert, Tag, Input } from 'ant-design-vue';
  58 +
  59 + import { PageWrapper } from '/@/components/Page';
  60 +
  61 + import { useWebSocket } from '@vueuse/core';
  62 +
  63 + import { formatToDateTime } from '/@/utils/dateUtil';
  64 + export default defineComponent({
  65 + components: {
  66 + PageWrapper,
  67 + [Input.name]: Input,
  68 + InputTextArea: Input.TextArea,
  69 + Alert,
  70 + Tag,
  71 + },
  72 + setup() {
  73 + const state = reactive({
  74 + server: 'ws://localhost:3380/test',
  75 + sendValue: '',
  76 + recordList: [] as { id: number; time: number; res: string }[],
  77 + });
  78 +
  79 + const { status, data, send, close, open } = useWebSocket(state.server, {
  80 + autoReconnect: true,
  81 + heartbeat: true,
  82 + });
  83 +
  84 + watchEffect(() => {
  85 + if (data.value) {
  86 + try {
  87 + const res = JSON.parse(data.value);
  88 + state.recordList.push(res);
  89 + } catch (error) {
  90 + state.recordList.push({
  91 + res: data.value,
  92 + id: Math.ceil(Math.random() * 1000),
  93 + time: new Date().getTime(),
  94 + });
  95 + }
  96 + }
  97 + });
  98 +
  99 + const getIsOpen = computed(() => status.value === 'OPEN');
  100 + const getTagColor = computed(() => (getIsOpen.value ? 'success' : 'red'));
  101 +
  102 + const getList = computed(() => {
  103 + return [...state.recordList].reverse();
  104 + });
  105 +
  106 + function handlerSend() {
  107 + send(state.sendValue);
  108 + state.sendValue = '';
  109 + }
  110 +
  111 + function toggle() {
  112 + if (getIsOpen.value) {
  113 + close();
  114 + } else {
  115 + open();
  116 + }
  117 + }
  118 + return {
  119 + status,
  120 + formatToDateTime,
  121 + ...toRefs(state),
  122 + handlerSend,
  123 + getList,
  124 + toggle,
  125 + getIsOpen,
  126 + getTagColor,
  127 + };
  128 + },
  129 + });
  130 +</script>
test/upload-server/README.md
@@ -8,11 +8,8 @@ Simple file upload service for testing file upload components. @@ -8,11 +8,8 @@ Simple file upload service for testing file upload components.
8 8
9 cd ./test/upload-server 9 cd ./test/upload-server
10 10
11 -// upload dir  
12 -mkdir static  
13 -  
14 yarn install 11 yarn install
15 12
16 -node app.js 13 +yarn start
17 14
18 ``` 15 ```
test/upload-server/app.js
1 const Koa = require('koa'); 1 const Koa = require('koa');
2 -const fs = require('fs');  
3 const path = require('path'); 2 const path = require('path');
4 const router = require('koa-router')(); 3 const router = require('koa-router')();
5 const koaBody = require('koa-body'); 4 const koaBody = require('koa-body');
6 const static = require('koa-static'); 5 const static = require('koa-static');
7 const cors = require('koa2-cors'); 6 const cors = require('koa2-cors');
  7 +const fs = require('fs-extra');
8 const app = new Koa(); 8 const app = new Koa();
9 9
  10 +const uploadUrl = 'http://localhost:3001/static/upload';
  11 +
  12 +fs.ensureDir(path.join(__dirname, 'static/upload'));
  13 +
10 app.use(cors()); 14 app.use(cors());
11 15
12 app.use( 16 app.use(
@@ -19,8 +23,6 @@ app.use( @@ -19,8 +23,6 @@ app.use(
19 }) 23 })
20 ); 24 );
21 25
22 -const uploadUrl = 'http://localhost:3001/static/upload';  
23 -  
24 router.get('/', (ctx) => { 26 router.get('/', (ctx) => {
25 ctx.type = 'html'; 27 ctx.type = 'html';
26 const pathUrl = path.join(__dirname, '/static/upload.html'); 28 const pathUrl = path.join(__dirname, '/static/upload.html');
@@ -61,7 +63,6 @@ const uploadFilePublic = function (ctx, files, flag) { @@ -61,7 +63,6 @@ const uploadFilePublic = function (ctx, files, flag) {
61 } 63 }
62 }; 64 };
63 if (flag) { 65 if (flag) {
64 - // 多个文件上传  
65 for (let i = 0; i < files.length; i++) { 66 for (let i = 0; i < files.length; i++) {
66 const f1 = files[i]; 67 const f1 = files[i];
67 fileFunc(f1); 68 fileFunc(f1);
test/upload-server/package.json
1 { 1 {
2 - "name": "server", 2 + "name": "upload-server",
3 "version": "1.0.0", 3 "version": "1.0.0",
4 - "main": "index.js", 4 + "main": "app.js",
5 "license": "MIT", 5 "license": "MIT",
  6 + "scripts": {
  7 + "start": "node app.js"
  8 + },
6 "dependencies": { 9 "dependencies": {
7 - "koa": "^2.13.0", 10 + "fs-extra": "^9.1.0",
  11 + "koa": "^2.13.1",
8 "koa-body": "^4.2.0", 12 "koa-body": "^4.2.0",
9 "koa-router": "^10.0.0", 13 "koa-router": "^10.0.0",
10 "koa-static": "^5.0.0", 14 "koa-static": "^5.0.0",
test/upload-server/yarn.lock
@@ -27,6 +27,11 @@ any-promise@^1.1.0: @@ -27,6 +27,11 @@ any-promise@^1.1.0:
27 resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" 27 resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
28 integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= 28 integrity sha1-q8av7tzqUugJzcA3au0845Y10X8=
29 29
  30 +at-least-node@^1.0.0:
  31 + version "1.0.0"
  32 + resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
  33 + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
  34 +
30 bytes@3.1.0: 35 bytes@3.1.0:
31 version "3.1.0" 36 version "3.1.0"
32 resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" 37 resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
@@ -146,6 +151,21 @@ fresh@~0.5.2: @@ -146,6 +151,21 @@ fresh@~0.5.2:
146 resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 151 resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
147 integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= 152 integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
148 153
  154 +fs-extra@^9.1.0:
  155 + version "9.1.0"
  156 + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
  157 + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
  158 + dependencies:
  159 + at-least-node "^1.0.0"
  160 + graceful-fs "^4.2.0"
  161 + jsonfile "^6.0.1"
  162 + universalify "^2.0.0"
  163 +
  164 +graceful-fs@^4.1.6, graceful-fs@^4.2.0:
  165 + version "4.2.6"
  166 + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
  167 + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
  168 +
149 http-assert@^1.3.0: 169 http-assert@^1.3.0:
150 version "1.4.1" 170 version "1.4.1"
151 resolved "https://registry.npmjs.org/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878" 171 resolved "https://registry.npmjs.org/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878"
@@ -213,6 +233,15 @@ is-generator-function@^1.0.7: @@ -213,6 +233,15 @@ is-generator-function@^1.0.7:
213 resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz#dfb5c2b120e02b0a8d9d2c6806cd5621aa922f7b" 233 resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz#dfb5c2b120e02b0a8d9d2c6806cd5621aa922f7b"
214 integrity sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ== 234 integrity sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ==
215 235
  236 +jsonfile@^6.0.1:
  237 + version "6.1.0"
  238 + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
  239 + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
  240 + dependencies:
  241 + universalify "^2.0.0"
  242 + optionalDependencies:
  243 + graceful-fs "^4.1.6"
  244 +
216 keygrip@~1.1.0: 245 keygrip@~1.1.0:
217 version "1.1.0" 246 version "1.1.0"
218 resolved "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226" 247 resolved "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226"
@@ -282,7 +311,7 @@ koa2-cors@^2.0.6: @@ -282,7 +311,7 @@ koa2-cors@^2.0.6:
282 resolved "https://registry.npmjs.org/koa2-cors/-/koa2-cors-2.0.6.tgz#9ad23df3a0b9bb84530b46f5944f3fb576086554" 311 resolved "https://registry.npmjs.org/koa2-cors/-/koa2-cors-2.0.6.tgz#9ad23df3a0b9bb84530b46f5944f3fb576086554"
283 integrity sha512-JRCcSM4lamM+8kvKGDKlesYk2ASrmSTczDtGUnIadqMgnHU4Ct5Gw7Bxt3w3m6d6dy3WN0PU4oMP43HbddDEWg== 312 integrity sha512-JRCcSM4lamM+8kvKGDKlesYk2ASrmSTczDtGUnIadqMgnHU4Ct5Gw7Bxt3w3m6d6dy3WN0PU4oMP43HbddDEWg==
284 313
285 -koa@^2.13.0: 314 +koa@^2.13.1:
286 version "2.13.1" 315 version "2.13.1"
287 resolved "https://registry.npmjs.org/koa/-/koa-2.13.1.tgz#6275172875b27bcfe1d454356a5b6b9f5a9b1051" 316 resolved "https://registry.npmjs.org/koa/-/koa-2.13.1.tgz#6275172875b27bcfe1d454356a5b6b9f5a9b1051"
288 integrity sha512-Lb2Dloc72auj5vK4X4qqL7B5jyDPQaZucc9sR/71byg7ryoD1NCaCm63CShk9ID9quQvDEi1bGR/iGjCG7As3w== 317 integrity sha512-Lb2Dloc72auj5vK4X4qqL7B5jyDPQaZucc9sR/71byg7ryoD1NCaCm63CShk9ID9quQvDEi1bGR/iGjCG7As3w==
@@ -451,6 +480,11 @@ type-is@^1.6.14, type-is@^1.6.16: @@ -451,6 +480,11 @@ type-is@^1.6.14, type-is@^1.6.16:
451 media-typer "0.3.0" 480 media-typer "0.3.0"
452 mime-types "~2.1.24" 481 mime-types "~2.1.24"
453 482
  483 +universalify@^2.0.0:
  484 + version "2.0.0"
  485 + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
  486 + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
  487 +
454 unpipe@1.0.0: 488 unpipe@1.0.0:
455 version "1.0.0" 489 version "1.0.0"
456 resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 490 resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
test/websocket-server/app.js 0 → 100644
  1 +const Koa = require('koa');
  2 +const route = require('koa-route');
  3 +const websockify = require('koa-websocket');
  4 +
  5 +const app = websockify(new Koa());
  6 +
  7 +app.ws.use(function (ctx, next) {
  8 + ctx.websocket.send('connection succeeded!');
  9 + return next(ctx);
  10 +});
  11 +
  12 +app.ws.use(
  13 + route.all('/test', function (ctx) {
  14 + // ctx.websocket.send('Hello World');
  15 + ctx.websocket.on('message', function (message) {
  16 + // do something with the message from client
  17 +
  18 + if (message !== 'ping') {
  19 + let data = JSON.stringify({
  20 + id: Math.ceil(Math.random() * 1000),
  21 + time: new Date().getTime(),
  22 + res: `${message}`,
  23 + });
  24 + ctx.websocket.send(data);
  25 + }
  26 + console.log(message);
  27 + });
  28 + })
  29 +);
  30 +
  31 +app.listen(3380, () => {
  32 + console.log('websocket server is listen in: ' + 3380);
  33 +});
test/websocket-server/package.json 0 → 100644
  1 +{
  2 + "name": "websocket-server",
  3 + "version": "1.0.0",
  4 + "main": "app.js",
  5 + "license": "MIT",
  6 + "scripts": {
  7 + "start": "node app.js"
  8 + },
  9 + "dependencies": {
  10 + "fs-extra": "^9.1.0",
  11 + "koa": "^2.13.1",
  12 + "koa-route": "^3.2.0",
  13 + "koa-websocket": "^6.0.0"
  14 + }
  15 +}
test/websocket-server/yarn.lock 0 → 100644
  1 +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
  2 +# yarn lockfile v1
  3 +
  4 +
  5 +accepts@^1.3.5:
  6 + version "1.3.7"
  7 + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
  8 + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
  9 + dependencies:
  10 + mime-types "~2.1.24"
  11 + negotiator "0.6.2"
  12 +
  13 +any-promise@^1.1.0:
  14 + version "1.3.0"
  15 + resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
  16 + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8=
  17 +
  18 +at-least-node@^1.0.0:
  19 + version "1.0.0"
  20 + resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
  21 + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
  22 +
  23 +cache-content-type@^1.0.0:
  24 + version "1.0.1"
  25 + resolved "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c"
  26 + integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==
  27 + dependencies:
  28 + mime-types "^2.1.18"
  29 + ylru "^1.2.0"
  30 +
  31 +co@^4.4.0, co@^4.6.0:
  32 + version "4.6.0"
  33 + resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
  34 + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
  35 +
  36 +content-disposition@~0.5.2:
  37 + version "0.5.3"
  38 + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
  39 + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==
  40 + dependencies:
  41 + safe-buffer "5.1.2"
  42 +
  43 +content-type@^1.0.4:
  44 + version "1.0.4"
  45 + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
  46 + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
  47 +
  48 +cookies@~0.8.0:
  49 + version "0.8.0"
  50 + resolved "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90"
  51 + integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==
  52 + dependencies:
  53 + depd "~2.0.0"
  54 + keygrip "~1.1.0"
  55 +
  56 +debug@*, debug@^4.0.1:
  57 + version "4.3.1"
  58 + resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
  59 + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
  60 + dependencies:
  61 + ms "2.1.2"
  62 +
  63 +debug@~3.1.0:
  64 + version "3.1.0"
  65 + resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
  66 + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
  67 + dependencies:
  68 + ms "2.0.0"
  69 +
  70 +deep-equal@~1.0.1:
  71 + version "1.0.1"
  72 + resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
  73 + integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=
  74 +
  75 +delegates@^1.0.0:
  76 + version "1.0.0"
  77 + resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
  78 + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
  79 +
  80 +depd@^2.0.0, depd@~2.0.0:
  81 + version "2.0.0"
  82 + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
  83 + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
  84 +
  85 +depd@~1.1.2:
  86 + version "1.1.2"
  87 + resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
  88 + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
  89 +
  90 +destroy@^1.0.4:
  91 + version "1.0.4"
  92 + resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
  93 + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
  94 +
  95 +ee-first@1.1.1:
  96 + version "1.1.1"
  97 + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
  98 + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
  99 +
  100 +encodeurl@^1.0.2:
  101 + version "1.0.2"
  102 + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
  103 + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
  104 +
  105 +escape-html@^1.0.3:
  106 + version "1.0.3"
  107 + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
  108 + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
  109 +
  110 +fresh@~0.5.2:
  111 + version "0.5.2"
  112 + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
  113 + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
  114 +
  115 +fs-extra@^9.1.0:
  116 + version "9.1.0"
  117 + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
  118 + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
  119 + dependencies:
  120 + at-least-node "^1.0.0"
  121 + graceful-fs "^4.2.0"
  122 + jsonfile "^6.0.1"
  123 + universalify "^2.0.0"
  124 +
  125 +graceful-fs@^4.1.6, graceful-fs@^4.2.0:
  126 + version "4.2.6"
  127 + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
  128 + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
  129 +
  130 +http-assert@^1.3.0:
  131 + version "1.4.1"
  132 + resolved "https://registry.npmjs.org/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878"
  133 + integrity sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw==
  134 + dependencies:
  135 + deep-equal "~1.0.1"
  136 + http-errors "~1.7.2"
  137 +
  138 +http-errors@^1.6.3:
  139 + version "1.8.0"
  140 + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507"
  141 + integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==
  142 + dependencies:
  143 + depd "~1.1.2"
  144 + inherits "2.0.4"
  145 + setprototypeof "1.2.0"
  146 + statuses ">= 1.5.0 < 2"
  147 + toidentifier "1.0.0"
  148 +
  149 +http-errors@~1.7.2:
  150 + version "1.7.3"
  151 + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
  152 + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
  153 + dependencies:
  154 + depd "~1.1.2"
  155 + inherits "2.0.4"
  156 + setprototypeof "1.1.1"
  157 + statuses ">= 1.5.0 < 2"
  158 + toidentifier "1.0.0"
  159 +
  160 +inherits@2.0.4:
  161 + version "2.0.4"
  162 + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
  163 + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
  164 +
  165 +is-generator-function@^1.0.7:
  166 + version "1.0.8"
  167 + resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz#dfb5c2b120e02b0a8d9d2c6806cd5621aa922f7b"
  168 + integrity sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ==
  169 +
  170 +isarray@0.0.1:
  171 + version "0.0.1"
  172 + resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
  173 + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
  174 +
  175 +jsonfile@^6.0.1:
  176 + version "6.1.0"
  177 + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
  178 + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
  179 + dependencies:
  180 + universalify "^2.0.0"
  181 + optionalDependencies:
  182 + graceful-fs "^4.1.6"
  183 +
  184 +keygrip@~1.1.0:
  185 + version "1.1.0"
  186 + resolved "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226"
  187 + integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==
  188 + dependencies:
  189 + tsscmp "1.0.6"
  190 +
  191 +koa-compose@^3.0.0:
  192 + version "3.2.1"
  193 + resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7"
  194 + integrity sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec=
  195 + dependencies:
  196 + any-promise "^1.1.0"
  197 +
  198 +koa-compose@^4.1.0:
  199 + version "4.1.0"
  200 + resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877"
  201 + integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==
  202 +
  203 +koa-convert@^1.2.0:
  204 + version "1.2.0"
  205 + resolved "https://registry.npmjs.org/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0"
  206 + integrity sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=
  207 + dependencies:
  208 + co "^4.6.0"
  209 + koa-compose "^3.0.0"
  210 +
  211 +koa-route@^3.2.0:
  212 + version "3.2.0"
  213 + resolved "https://registry.npmjs.org/koa-route/-/koa-route-3.2.0.tgz#76298b99a6bcfa9e38cab6fe5c79a8733e758bce"
  214 + integrity sha1-dimLmaa8+p44yrb+XHmocz51i84=
  215 + dependencies:
  216 + debug "*"
  217 + methods "~1.1.0"
  218 + path-to-regexp "^1.2.0"
  219 +
  220 +koa-websocket@^6.0.0:
  221 + version "6.0.0"
  222 + resolved "https://registry.npmjs.org/koa-websocket/-/koa-websocket-6.0.0.tgz#7fb7698a7004c07aac663b15e84bf4bc99901352"
  223 + integrity sha512-pGTaB+aXILD/q+bQNh+Ejrg8zSxf6QRpiUQoh2TFQSmUZo2hrt6KGk4qlyxfHxFH40bVtyKeo4x1u0kKgJDOWA==
  224 + dependencies:
  225 + co "^4.4.0"
  226 + debug "^4.0.1"
  227 + koa-compose "^4.1.0"
  228 + ws "^7.0.1"
  229 +
  230 +koa@^2.13.1:
  231 + version "2.13.1"
  232 + resolved "https://registry.npmjs.org/koa/-/koa-2.13.1.tgz#6275172875b27bcfe1d454356a5b6b9f5a9b1051"
  233 + integrity sha512-Lb2Dloc72auj5vK4X4qqL7B5jyDPQaZucc9sR/71byg7ryoD1NCaCm63CShk9ID9quQvDEi1bGR/iGjCG7As3w==
  234 + dependencies:
  235 + accepts "^1.3.5"
  236 + cache-content-type "^1.0.0"
  237 + content-disposition "~0.5.2"
  238 + content-type "^1.0.4"
  239 + cookies "~0.8.0"
  240 + debug "~3.1.0"
  241 + delegates "^1.0.0"
  242 + depd "^2.0.0"
  243 + destroy "^1.0.4"
  244 + encodeurl "^1.0.2"
  245 + escape-html "^1.0.3"
  246 + fresh "~0.5.2"
  247 + http-assert "^1.3.0"
  248 + http-errors "^1.6.3"
  249 + is-generator-function "^1.0.7"
  250 + koa-compose "^4.1.0"
  251 + koa-convert "^1.2.0"
  252 + on-finished "^2.3.0"
  253 + only "~0.0.2"
  254 + parseurl "^1.3.2"
  255 + statuses "^1.5.0"
  256 + type-is "^1.6.16"
  257 + vary "^1.1.2"
  258 +
  259 +media-typer@0.3.0:
  260 + version "0.3.0"
  261 + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
  262 + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
  263 +
  264 +methods@~1.1.0:
  265 + version "1.1.2"
  266 + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
  267 + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
  268 +
  269 +mime-db@1.46.0:
  270 + version "1.46.0"
  271 + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee"
  272 + integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==
  273 +
  274 +mime-types@^2.1.18, mime-types@~2.1.24:
  275 + version "2.1.29"
  276 + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2"
  277 + integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==
  278 + dependencies:
  279 + mime-db "1.46.0"
  280 +
  281 +ms@2.0.0:
  282 + version "2.0.0"
  283 + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
  284 + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
  285 +
  286 +ms@2.1.2:
  287 + version "2.1.2"
  288 + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
  289 + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
  290 +
  291 +negotiator@0.6.2:
  292 + version "0.6.2"
  293 + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
  294 + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
  295 +
  296 +on-finished@^2.3.0:
  297 + version "2.3.0"
  298 + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
  299 + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
  300 + dependencies:
  301 + ee-first "1.1.1"
  302 +
  303 +only@~0.0.2:
  304 + version "0.0.2"
  305 + resolved "https://registry.npmjs.org/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4"
  306 + integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=
  307 +
  308 +parseurl@^1.3.2:
  309 + version "1.3.3"
  310 + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
  311 + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
  312 +
  313 +path-to-regexp@^1.2.0:
  314 + version "1.8.0"
  315 + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a"
  316 + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==
  317 + dependencies:
  318 + isarray "0.0.1"
  319 +
  320 +safe-buffer@5.1.2:
  321 + version "5.1.2"
  322 + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
  323 + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
  324 +
  325 +setprototypeof@1.1.1:
  326 + version "1.1.1"
  327 + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
  328 + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
  329 +
  330 +setprototypeof@1.2.0:
  331 + version "1.2.0"
  332 + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
  333 + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
  334 +
  335 +"statuses@>= 1.5.0 < 2", statuses@^1.5.0:
  336 + version "1.5.0"
  337 + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
  338 + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
  339 +
  340 +toidentifier@1.0.0:
  341 + version "1.0.0"
  342 + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
  343 + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
  344 +
  345 +tsscmp@1.0.6:
  346 + version "1.0.6"
  347 + resolved "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb"
  348 + integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==
  349 +
  350 +type-is@^1.6.16:
  351 + version "1.6.18"
  352 + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
  353 + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
  354 + dependencies:
  355 + media-typer "0.3.0"
  356 + mime-types "~2.1.24"
  357 +
  358 +universalify@^2.0.0:
  359 + version "2.0.0"
  360 + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
  361 + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
  362 +
  363 +vary@^1.1.2:
  364 + version "1.1.2"
  365 + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
  366 + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
  367 +
  368 +ws@^7.0.1:
  369 + version "7.4.3"
  370 + resolved "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz#1f9643de34a543b8edb124bdcbc457ae55a6e5cd"
  371 + integrity sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==
  372 +
  373 +ylru@^1.2.0:
  374 + version "1.2.1"
  375 + resolved "https://registry.npmjs.org/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f"
  376 + integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==
yarn.lock
@@ -1645,6 +1645,17 @@ @@ -1645,6 +1645,17 @@
1645 estree-walker "^2.0.1" 1645 estree-walker "^2.0.1"
1646 source-map "^0.6.1" 1646 source-map "^0.6.1"
1647 1647
  1648 +"@vue/compiler-core@3.0.7":
  1649 + version "3.0.7"
  1650 + resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.7.tgz#421782a4c67cc3f2b7c30457ef446d74f8524f74"
  1651 + integrity sha512-JFohgBXoyUc3mdeI2WxlhjQZ5fakfemJkZHX8Gu/nFbEg3+lKVUZmNKWmmnp9aOzJQZKoj77LjmFxiP+P+7lMQ==
  1652 + dependencies:
  1653 + "@babel/parser" "^7.12.0"
  1654 + "@babel/types" "^7.12.0"
  1655 + "@vue/shared" "3.0.7"
  1656 + estree-walker "^2.0.1"
  1657 + source-map "^0.6.1"
  1658 +
1648 "@vue/compiler-dom@3.0.5": 1659 "@vue/compiler-dom@3.0.5":
1649 version "3.0.5" 1660 version "3.0.5"
1650 resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.5.tgz#7885a13e6d18f64dde8ebceec052ed2c102696c2" 1661 resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.5.tgz#7885a13e6d18f64dde8ebceec052ed2c102696c2"
@@ -1653,35 +1664,43 @@ @@ -1653,35 +1664,43 @@
1653 "@vue/compiler-core" "3.0.5" 1664 "@vue/compiler-core" "3.0.5"
1654 "@vue/shared" "3.0.5" 1665 "@vue/shared" "3.0.5"
1655 1666
1656 -"@vue/compiler-sfc@3.0.5":  
1657 - version "3.0.5"  
1658 - resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.0.5.tgz#3ae08e60244a72faf9598361874fb7bdb5b1d37c"  
1659 - integrity sha512-uOAC4X0Gx3SQ9YvDC7YMpbDvoCmPvP0afVhJoxRotDdJ+r8VO3q4hFf/2f7U62k4Vkdftp6DVni8QixrfYzs+w== 1667 +"@vue/compiler-dom@3.0.7":
  1668 + version "3.0.7"
  1669 + resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.7.tgz#54d2e12fb9a7aff53abd19dac2c2679533f0c919"
  1670 + integrity sha512-VnIH9EbWQm/Tkcp+8dCaNVsVvhm/vxCrIKWRkXY9215hTqOqQOvejT8IMjd2kc++nIsYMsdQk6H9qqBvoLe/Cw==
  1671 + dependencies:
  1672 + "@vue/compiler-core" "3.0.7"
  1673 + "@vue/shared" "3.0.7"
  1674 +
  1675 +"@vue/compiler-sfc@^3.0.7":
  1676 + version "3.0.7"
  1677 + resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.0.7.tgz#900414750cc726553b870490f48073451fd14f07"
  1678 + integrity sha512-37/QILpGE+J3V+bP9Slg9e6xGqfk+MmS2Yj8ChR4fS0/qWUU/YoYHE0GPIzjmBdH0JVOOmJqunxowIXmqNiHng==
1660 dependencies: 1679 dependencies:
1661 "@babel/parser" "^7.12.0" 1680 "@babel/parser" "^7.12.0"
1662 "@babel/types" "^7.12.0" 1681 "@babel/types" "^7.12.0"
1663 - "@vue/compiler-core" "3.0.5"  
1664 - "@vue/compiler-dom" "3.0.5"  
1665 - "@vue/compiler-ssr" "3.0.5"  
1666 - "@vue/shared" "3.0.5" 1682 + "@vue/compiler-core" "3.0.7"
  1683 + "@vue/compiler-dom" "3.0.7"
  1684 + "@vue/compiler-ssr" "3.0.7"
  1685 + "@vue/shared" "3.0.7"
1667 consolidate "^0.16.0" 1686 consolidate "^0.16.0"
1668 estree-walker "^2.0.1" 1687 estree-walker "^2.0.1"
1669 hash-sum "^2.0.0" 1688 hash-sum "^2.0.0"
1670 lru-cache "^5.1.1" 1689 lru-cache "^5.1.1"
1671 magic-string "^0.25.7" 1690 magic-string "^0.25.7"
1672 merge-source-map "^1.1.0" 1691 merge-source-map "^1.1.0"
1673 - postcss "^7.0.32"  
1674 - postcss-modules "^3.2.2" 1692 + postcss "^8.1.10"
  1693 + postcss-modules "^4.0.0"
1675 postcss-selector-parser "^6.0.4" 1694 postcss-selector-parser "^6.0.4"
1676 source-map "^0.6.1" 1695 source-map "^0.6.1"
1677 1696
1678 -"@vue/compiler-ssr@3.0.5":  
1679 - version "3.0.5"  
1680 - resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.0.5.tgz#7661ad891a0be948726c7f7ad1e425253c587b83"  
1681 - integrity sha512-Wm//Kuxa1DpgjE4P9W0coZr8wklOfJ35Jtq61CbU+t601CpPTK4+FL2QDBItaG7aoUUDCWL5nnxMkuaOgzTBKg== 1697 +"@vue/compiler-ssr@3.0.7":
  1698 + version "3.0.7"
  1699 + resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.0.7.tgz#28b85d497381d75fe44234057b140b0065ca9dbf"
  1700 + integrity sha512-nHRbHeSpfXwjypettjrA16TjgfDcPEwq3m/zHnGyLC1QqdLtklXmpSM43/CPwwTCRa/qdt0pldJf22MiCEuTSQ==
1682 dependencies: 1701 dependencies:
1683 - "@vue/compiler-dom" "3.0.5"  
1684 - "@vue/shared" "3.0.5" 1702 + "@vue/compiler-dom" "3.0.7"
  1703 + "@vue/shared" "3.0.7"
1685 1704
1686 "@vue/devtools-api@^6.0.0-beta.5": 1705 "@vue/devtools-api@^6.0.0-beta.5":
1687 version "6.0.0-beta.7" 1706 version "6.0.0-beta.7"
@@ -1695,6 +1714,13 @@ @@ -1695,6 +1714,13 @@
1695 dependencies: 1714 dependencies:
1696 "@vue/shared" "3.0.5" 1715 "@vue/shared" "3.0.5"
1697 1716
  1717 +"@vue/reactivity@3.0.7":
  1718 + version "3.0.7"
  1719 + resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.0.7.tgz#e6ccc7bef7fc10b0972e4d974bad71679d3b26ad"
  1720 + integrity sha512-FotWcNNaKhqpFZrdgsUOZ1enlJ5lhTt01CNTtLSyK7jYFgZBTuw8vKsEutZKDYZ1XKotOfoeO8N3pZQqmM6Etw==
  1721 + dependencies:
  1722 + "@vue/shared" "3.0.7"
  1723 +
1698 "@vue/runtime-core@3.0.5": 1724 "@vue/runtime-core@3.0.5":
1699 version "3.0.5" 1725 version "3.0.5"
1700 resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.0.5.tgz#da6331d5f300d5794e9e0ebdc8a8bd72a9e19962" 1726 resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.0.5.tgz#da6331d5f300d5794e9e0ebdc8a8bd72a9e19962"
@@ -1703,6 +1729,14 @@ @@ -1703,6 +1729,14 @@
1703 "@vue/reactivity" "3.0.5" 1729 "@vue/reactivity" "3.0.5"
1704 "@vue/shared" "3.0.5" 1730 "@vue/shared" "3.0.5"
1705 1731
  1732 +"@vue/runtime-core@3.0.7":
  1733 + version "3.0.7"
  1734 + resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.0.7.tgz#d44c0b0a57d7e392912a87362a4430ccf446ecea"
  1735 + integrity sha512-DBAZAwVvdmMXuyd6/9qqj/kYr/GaLTmn1L2/QLxLwP+UfhIboiTSBc/tUUb8MRk7Bb98GzNeAWkkT6AfooS3dQ==
  1736 + dependencies:
  1737 + "@vue/reactivity" "3.0.7"
  1738 + "@vue/shared" "3.0.7"
  1739 +
1706 "@vue/runtime-dom@3.0.5": 1740 "@vue/runtime-dom@3.0.5":
1707 version "3.0.5" 1741 version "3.0.5"
1708 resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.5.tgz#1ce2c9c449e26ab06963da0064096e882a7a8935" 1742 resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.5.tgz#1ce2c9c449e26ab06963da0064096e882a7a8935"
@@ -1712,11 +1746,25 @@ @@ -1712,11 +1746,25 @@
1712 "@vue/shared" "3.0.5" 1746 "@vue/shared" "3.0.5"
1713 csstype "^2.6.8" 1747 csstype "^2.6.8"
1714 1748
  1749 +"@vue/runtime-dom@3.0.7":
  1750 + version "3.0.7"
  1751 + resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.7.tgz#b70668d729020bc4ad608c20367223f259576ba6"
  1752 + integrity sha512-Oij4ruOtnpQpCj+/Q3JPzgpTJ1Q7+N67pA53A8KVITEtxfvKL46NN6dhAZ5NGqwX6RWZpYqWQNewITeF0pHr8g==
  1753 + dependencies:
  1754 + "@vue/runtime-core" "3.0.7"
  1755 + "@vue/shared" "3.0.7"
  1756 + csstype "^2.6.8"
  1757 +
1715 "@vue/shared@3.0.5": 1758 "@vue/shared@3.0.5":
1716 version "3.0.5" 1759 version "3.0.5"
1717 resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.0.5.tgz#c131d88bd6713cc4d93b3bb1372edb1983225ff0" 1760 resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.0.5.tgz#c131d88bd6713cc4d93b3bb1372edb1983225ff0"
1718 integrity sha512-gYsNoGkWejBxNO6SNRjOh/xKeZ0H0V+TFzaPzODfBjkAIb0aQgBuixC1brandC/CDJy1wYPwSoYrXpvul7m6yw== 1761 integrity sha512-gYsNoGkWejBxNO6SNRjOh/xKeZ0H0V+TFzaPzODfBjkAIb0aQgBuixC1brandC/CDJy1wYPwSoYrXpvul7m6yw==
1719 1762
  1763 +"@vue/shared@3.0.7":
  1764 + version "3.0.7"
  1765 + resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.0.7.tgz#96d52988efc07444c108c7c6803ba7cc93e40045"
  1766 + integrity sha512-dn5FyfSc4ky424jH4FntiHno7Ss5yLkqKNmM/NXwANRnlkmqu74pnGetexDFVG5phMk9/FhwovUZCWGxsotVKg==
  1767 +
1720 "@vueuse/core@^4.3.1": 1768 "@vueuse/core@^4.3.1":
1721 version "4.3.1" 1769 version "4.3.1"
1722 resolved "https://registry.npmjs.org/@vueuse/core/-/core-4.3.1.tgz#f6fdb2afef6acbe59abb9832d0a7cfa01e65ce36" 1770 resolved "https://registry.npmjs.org/@vueuse/core/-/core-4.3.1.tgz#f6fdb2afef6acbe59abb9832d0a7cfa01e65ce36"
@@ -4848,12 +4896,10 @@ icss-replace-symbols@^1.1.0: @@ -4848,12 +4896,10 @@ icss-replace-symbols@^1.1.0:
4848 resolved "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" 4896 resolved "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded"
4849 integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= 4897 integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=
4850 4898
4851 -icss-utils@^4.0.0, icss-utils@^4.1.1:  
4852 - version "4.1.1"  
4853 - resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467"  
4854 - integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==  
4855 - dependencies:  
4856 - postcss "^7.0.14" 4899 +icss-utils@^5.0.0:
  4900 + version "5.1.0"
  4901 + resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae"
  4902 + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==
4857 4903
4858 ieee754@^1.1.13: 4904 ieee754@^1.1.13:
4859 version "1.2.1" 4905 version "1.2.1"
@@ -6921,52 +6967,46 @@ postcss-media-query-parser@^0.2.3: @@ -6921,52 +6967,46 @@ postcss-media-query-parser@^0.2.3:
6921 resolved "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" 6967 resolved "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244"
6922 integrity sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ= 6968 integrity sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=
6923 6969
6924 -postcss-modules-extract-imports@^2.0.0:  
6925 - version "2.0.0"  
6926 - resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e"  
6927 - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==  
6928 - dependencies:  
6929 - postcss "^7.0.5" 6970 +postcss-modules-extract-imports@^3.0.0:
  6971 + version "3.0.0"
  6972 + resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d"
  6973 + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==
6930 6974
6931 -postcss-modules-local-by-default@^3.0.2:  
6932 - version "3.0.3"  
6933 - resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0"  
6934 - integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== 6975 +postcss-modules-local-by-default@^4.0.0:
  6976 + version "4.0.0"
  6977 + resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c"
  6978 + integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==
6935 dependencies: 6979 dependencies:
6936 - icss-utils "^4.1.1"  
6937 - postcss "^7.0.32" 6980 + icss-utils "^5.0.0"
6938 postcss-selector-parser "^6.0.2" 6981 postcss-selector-parser "^6.0.2"
6939 postcss-value-parser "^4.1.0" 6982 postcss-value-parser "^4.1.0"
6940 6983
6941 -postcss-modules-scope@^2.2.0:  
6942 - version "2.2.0"  
6943 - resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee"  
6944 - integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== 6984 +postcss-modules-scope@^3.0.0:
  6985 + version "3.0.0"
  6986 + resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06"
  6987 + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==
6945 dependencies: 6988 dependencies:
6946 - postcss "^7.0.6"  
6947 - postcss-selector-parser "^6.0.0" 6989 + postcss-selector-parser "^6.0.4"
6948 6990
6949 -postcss-modules-values@^3.0.0:  
6950 - version "3.0.0"  
6951 - resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10"  
6952 - integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== 6991 +postcss-modules-values@^4.0.0:
  6992 + version "4.0.0"
  6993 + resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c"
  6994 + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==
6953 dependencies: 6995 dependencies:
6954 - icss-utils "^4.0.0"  
6955 - postcss "^7.0.6" 6996 + icss-utils "^5.0.0"
6956 6997
6957 -postcss-modules@^3.2.2:  
6958 - version "3.2.2"  
6959 - resolved "https://registry.npmjs.org/postcss-modules/-/postcss-modules-3.2.2.tgz#ee390de0f9f18e761e1778dfb9be26685c02c51f"  
6960 - integrity sha512-JQ8IAqHELxC0N6tyCg2UF40pACY5oiL6UpiqqcIFRWqgDYO8B0jnxzoQ0EOpPrWXvcpu6BSbQU/3vSiq7w8Nhw== 6998 +postcss-modules@^4.0.0:
  6999 + version "4.0.0"
  7000 + resolved "https://registry.npmjs.org/postcss-modules/-/postcss-modules-4.0.0.tgz#2bc7f276ab88f3f1b0fadf6cbd7772d43b5f3b9b"
  7001 + integrity sha512-ghS/ovDzDqARm4Zj6L2ntadjyQMoyJmi0JkLlYtH2QFLrvNlxH5OAVRPWPeKilB0pY7SbuhO173KOWkPAxRJcw==
6961 dependencies: 7002 dependencies:
6962 generic-names "^2.0.1" 7003 generic-names "^2.0.1"
6963 icss-replace-symbols "^1.1.0" 7004 icss-replace-symbols "^1.1.0"
6964 lodash.camelcase "^4.3.0" 7005 lodash.camelcase "^4.3.0"
6965 - postcss "^7.0.32"  
6966 - postcss-modules-extract-imports "^2.0.0"  
6967 - postcss-modules-local-by-default "^3.0.2"  
6968 - postcss-modules-scope "^2.2.0"  
6969 - postcss-modules-values "^3.0.0" 7006 + postcss-modules-extract-imports "^3.0.0"
  7007 + postcss-modules-local-by-default "^4.0.0"
  7008 + postcss-modules-scope "^3.0.0"
  7009 + postcss-modules-values "^4.0.0"
6970 string-hash "^1.1.1" 7010 string-hash "^1.1.1"
6971 7011
6972 postcss-resolve-nested-selector@^0.1.1: 7012 postcss-resolve-nested-selector@^0.1.1:
@@ -6996,7 +7036,7 @@ postcss-scss@^2.1.1: @@ -6996,7 +7036,7 @@ postcss-scss@^2.1.1:
6996 dependencies: 7036 dependencies:
6997 postcss "^7.0.6" 7037 postcss "^7.0.6"
6998 7038
6999 -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: 7039 +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4:
7000 version "6.0.4" 7040 version "6.0.4"
7001 resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" 7041 resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3"
7002 integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== 7042 integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==
@@ -7024,7 +7064,7 @@ postcss-value-parser@^4.1.0: @@ -7024,7 +7064,7 @@ postcss-value-parser@^4.1.0:
7024 resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" 7064 resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb"
7025 integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== 7065 integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
7026 7066
7027 -postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.31, postcss@^7.0.32, postcss@^7.0.35, postcss@^7.0.5, postcss@^7.0.6: 7067 +postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0.31, postcss@^7.0.32, postcss@^7.0.35, postcss@^7.0.6:
7028 version "7.0.35" 7068 version "7.0.35"
7029 resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" 7069 resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24"
7030 integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== 7070 integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==
@@ -7033,7 +7073,7 @@ postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0. @@ -7033,7 +7073,7 @@ postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.
7033 source-map "^0.6.1" 7073 source-map "^0.6.1"
7034 supports-color "^6.1.0" 7074 supports-color "^6.1.0"
7035 7075
7036 -postcss@^8.2.1: 7076 +postcss@^8.1.10, postcss@^8.2.1:
7037 version "8.2.6" 7077 version "8.2.6"
7038 resolved "https://registry.npmjs.org/postcss/-/postcss-8.2.6.tgz#5d69a974543b45f87e464bc4c3e392a97d6be9fe" 7078 resolved "https://registry.npmjs.org/postcss/-/postcss-8.2.6.tgz#5d69a974543b45f87e464bc4c3e392a97d6be9fe"
7039 integrity sha512-xpB8qYxgPuly166AGlpRjUdEYtmOWx2iCwGmrv4vqZL9YPVviDVPZPRXxnXr6xPZOdxQ9lp3ZBFCRgWJ7LE3Sg== 7079 integrity sha512-xpB8qYxgPuly166AGlpRjUdEYtmOWx2iCwGmrv4vqZL9YPVviDVPZPRXxnXr6xPZOdxQ9lp3ZBFCRgWJ7LE3Sg==
@@ -9100,7 +9140,7 @@ vue-types@^3.0.2: @@ -9100,7 +9140,7 @@ vue-types@^3.0.2:
9100 dependencies: 9140 dependencies:
9101 is-plain-object "3.0.1" 9141 is-plain-object "3.0.1"
9102 9142
9103 -vue@3.0.5, vue@^3.0.0: 9143 +vue@^3.0.0:
9104 version "3.0.5" 9144 version "3.0.5"
9105 resolved "https://registry.npmjs.org/vue/-/vue-3.0.5.tgz#de1b82eba24abfe71e0970fc9b8d4b2babdc3fe1" 9145 resolved "https://registry.npmjs.org/vue/-/vue-3.0.5.tgz#de1b82eba24abfe71e0970fc9b8d4b2babdc3fe1"
9106 integrity sha512-TfaprOmtsAfhQau7WsomXZ8d9op/dkQLNIq8qPV3A0Vxs6GR5E+c1rfJS1SDkXRQj+dFyfnec7+U0Be1huiScg== 9146 integrity sha512-TfaprOmtsAfhQau7WsomXZ8d9op/dkQLNIq8qPV3A0Vxs6GR5E+c1rfJS1SDkXRQj+dFyfnec7+U0Be1huiScg==
@@ -9109,6 +9149,15 @@ vue@3.0.5, vue@^3.0.0: @@ -9109,6 +9149,15 @@ vue@3.0.5, vue@^3.0.0:
9109 "@vue/runtime-dom" "3.0.5" 9149 "@vue/runtime-dom" "3.0.5"
9110 "@vue/shared" "3.0.5" 9150 "@vue/shared" "3.0.5"
9111 9151
  9152 +vue@^3.0.7:
  9153 + version "3.0.7"
  9154 + resolved "https://registry.npmjs.org/vue/-/vue-3.0.7.tgz#8bcff51f8be570f9e4ce8cc5f52e2ab0fe3c74a1"
  9155 + integrity sha512-8h4TikD+JabbMK9aRlBO4laG0AtNHRPHynxYgWZ9sq1YUPfzynd9Jeeb27XNyZytC7aCQRX9xe1+TQJuc181Tw==
  9156 + dependencies:
  9157 + "@vue/compiler-dom" "3.0.7"
  9158 + "@vue/runtime-dom" "3.0.7"
  9159 + "@vue/shared" "3.0.7"
  9160 +
9112 vuex-module-decorators@^1.0.1: 9161 vuex-module-decorators@^1.0.1:
9113 version "1.0.1" 9162 version "1.0.1"
9114 resolved "https://registry.npmjs.org/vuex-module-decorators/-/vuex-module-decorators-1.0.1.tgz#d34dafb5428a3636f1c26d3d014c15fc9659ccd0" 9163 resolved "https://registry.npmjs.org/vuex-module-decorators/-/vuex-module-decorators-1.0.1.tgz#d34dafb5428a3636f1c26d3d014c15fc9659ccd0"