From 007c3cb6282cc2eeb33007facd76e83528c5936f Mon Sep 17 00:00:00 2001 From: wuy <1311695042@qq.com> Date: Fri, 1 Apr 2022 10:45:49 +0800 Subject: [PATCH 001/195] =?UTF-8?q?*=20=E4=BC=98=E5=8C=96=E8=A1=A8?= =?UTF-8?q?=E5=8D=95=E6=8F=90=E4=BA=A4=EF=BC=8C=E9=98=B2=E8=AF=AF=E8=A7=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- diboot-mobile-ui/mixins/form.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/diboot-mobile-ui/mixins/form.js b/diboot-mobile-ui/mixins/form.js index e6bc6a62..090f5b56 100644 --- a/diboot-mobile-ui/mixins/form.js +++ b/diboot-mobile-ui/mixins/form.js @@ -144,6 +144,7 @@ export default { * @returns {Promise} */ async onSubmit() { + this.confirmSubmit = true uni.showLoading({ title: '提交中...' }); @@ -170,6 +171,7 @@ export default { console.log(e) } finally { uni.hideLoading() + this.confirmSubmit = false } }, /** * -- Gitee From f15b5ee7ae4b4f7c567715508c00c5a86ee60015 Mon Sep 17 00:00:00 2001 From: emptypoint Date: Mon, 11 Apr 2022 22:20:38 +0800 Subject: [PATCH 002/195] =?UTF-8?q?=E5=B7=A5=E5=85=B7=E7=B1=BBV.java:=201.?= =?UTF-8?q?add=20=E6=96=B0=E5=A2=9Efalse=E5=88=A4=E6=96=AD=E6=96=B9?= =?UTF-8?q?=E6=B3=95;=202.bugfix=20=E4=BF=AE=E5=A4=8Dequals=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E5=AF=B9=E4=BA=8ECollection=E5=92=8CMap=E7=9A=84?= =?UTF-8?q?=E6=AF=94=E8=BE=83=E9=80=BB=E8=BE=91;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/diboot/core/util/V.java | 142 ++++++++++++++++-- 1 file changed, 129 insertions(+), 13 deletions(-) diff --git a/diboot-core/src/main/java/com/diboot/core/util/V.java b/diboot-core/src/main/java/com/diboot/core/util/V.java index fa55b31a..d828adce 100644 --- a/diboot-core/src/main/java/com/diboot/core/util/V.java +++ b/diboot-core/src/main/java/com/diboot/core/util/V.java @@ -402,6 +402,17 @@ public class V { return TRUE_SET.contains(value); } + /** + * 是否是false + *

不要再写"xxx == false"了

+ * + * @param expression bool表达式 + * @return 入参为false时返回true + */ + public static boolean isFalse(boolean expression) { + return !expression; + } + /** * 根据指定规则校验字符串的值是否合法 */ @@ -506,12 +517,22 @@ public class V { // size相等,且一个为空集合 return true; } - // 已经确定两个集合的数量相等,如果相同位置的值不相等,则必定不相等 - // 避免使用某些集合容器低效率的contains方法 - Iterator sourceIterator = sourceList.iterator(); - Iterator targetIterator = targetList.iterator(); - while (sourceIterator.hasNext()) { - if (!equals(sourceIterator.next(), targetIterator.next())) { + if (source instanceof Set) { + //noinspection SuspiciousMethodCalls + return ((Set) source).containsAll(targetList); + } + + // copy from org.apache.commons.collections4.CollectionUtils.isEqualCollection() + // 分别统计 Collection中 元素对应的数量 + CardinalityHelper helper = new CardinalityHelper<>(sourceList, targetList); + // 如果 两个Collection的统计结果 不一致 + if (helper.cardinalityA.size() != helper.cardinalityB.size()) { + return false; + } + // 遍历统计结果 + for (final Object obj : helper.cardinalityA.keySet()) { + // 相同元素 在两个Collection中的数量却不等 + if (helper.freqA(obj) != helper.freqB(obj)) { return false; } } @@ -523,13 +544,8 @@ public class V { } else if (sourceMap.isEmpty()) { return true; } - Iterator> sourceIterator = sourceMap.entrySet().iterator(); - Iterator> targetIterator = targetMap.entrySet().iterator(); - while (sourceIterator.hasNext()) { - Map.Entry sourceEntry = sourceIterator.next(); - Map.Entry targetEntry = targetIterator.next(); - if (!equals(sourceEntry.getKey(), targetEntry.getKey()) - || !equals(sourceEntry.getValue(), targetEntry.getValue())) { + for (Map.Entry entry : sourceMap.entrySet()) { + if (!equals(entry.getValue(), targetMap.get(entry.getKey()))) { return false; } } @@ -632,4 +648,104 @@ public class V { return S.join(allErrors); } + /** + * Helper class to easily access cardinality properties of two collections. + * + * @param the element type + */ + private static class CardinalityHelper { + + /** + * Contains the cardinality for each object in collection A. + */ + final Map cardinalityA; + + /** + * Contains the cardinality for each object in collection B. + */ + final Map cardinalityB; + + /** + * Create a new CardinalityHelper for two collections. + * + * @param a the first collection + * @param b the second collection + */ + CardinalityHelper(final Iterable a, final Iterable b) { + cardinalityA = getCardinalityMap(a); + cardinalityB = getCardinalityMap(b); + } + + /** + * Returns a {@link Map} mapping each unique element in the given + * {@link Collection} to an {@link Integer} representing the number + * of occurrences of that element in the {@link Collection}. + *

+ * Only those elements present in the collection will appear as + * keys in the map. + *

+ * + * @param the type of object in the returned {@link Map}. This is a super type of <I>. + * @param coll the collection to get the cardinality map for, must not be null + * @return the populated cardinality map + * @throws NullPointerException if coll is null + */ + public static Map getCardinalityMap(final Iterable coll) { + Objects.requireNonNull(coll, "coll"); + final Map count = new HashMap<>(); + for (final O obj : coll) { + count.merge(obj, 1, Integer::sum); + } + return count; + } + + /** + * Returns the maximum frequency of an object. + * + * @param obj the object + * @return the maximum frequency of the object + */ + public final int max(final Object obj) { + return Math.max(freqA(obj), freqB(obj)); + } + + /** + * Returns the minimum frequency of an object. + * + * @param obj the object + * @return the minimum frequency of the object + */ + public final int min(final Object obj) { + return Math.min(freqA(obj), freqB(obj)); + } + + /** + * Returns the frequency of this object in collection A. + * + * @param obj the object + * @return the frequency of the object in collection A + */ + public int freqA(final Object obj) { + return getFreq(obj, cardinalityA); + } + + /** + * Returns the frequency of this object in collection B. + * + * @param obj the object + * @return the frequency of the object in collection B + */ + public int freqB(final Object obj) { + return getFreq(obj, cardinalityB); + } + + private int getFreq(final Object obj, final Map freqMap) { + final Integer count = freqMap.get(obj); + if (count != null) { + return count; + } + return 0; + } + } + } -- Gitee From 38b805948f057df295a210d1161e6e58d37e92d8 Mon Sep 17 00:00:00 2001 From: wuy <1311695042@qq.com> Date: Wed, 13 Apr 2022 10:52:01 +0800 Subject: [PATCH 003/195] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E7=AB=AF=E5=88=86=E9=A1=B5=E9=94=99=E8=AF=AF=EF=BC=8C?= =?UTF-8?q?=E5=90=8C=E4=B8=80=E9=A1=B5=E5=A4=9A=E6=AC=A1=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- diboot-mobile-ui/mixins/list.js | 40 ++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/diboot-mobile-ui/mixins/list.js b/diboot-mobile-ui/mixins/list.js index fdd9dadd..062a0995 100644 --- a/diboot-mobile-ui/mixins/list.js +++ b/diboot-mobile-ui/mixins/list.js @@ -17,7 +17,7 @@ export default { // 与查询条件绑定的参数(会被查询表单重置和改变的参数) queryParam: {}, // //下拉刷新的状态 - triggered: false, + triggered: false, // load状态 status: 'loadmore', loadText: { @@ -29,7 +29,8 @@ export default { page: { pageIndex: 1, pageSize: 20, - totalCount: 0 + totalCount: 0, + totalPage: 0 }, // 激活的Index activeIndex: -100, @@ -54,12 +55,14 @@ export default { // 是否允许访问详情 allowGoDetail: true, // 状态栏高度 - diStatusBarHeight: 0 + diStatusBarHeight: 0, + // 阻止重复发送 + keyMap: {} } }, onLoad() { this.diStatusBarHeight = uni.getSystemInfoSync().statusBarHeight - + }, onShow() { this.activeIndex = -100 @@ -85,7 +88,7 @@ export default { url:`./detail?id=${id}` }) }, - /* + /* * 编辑 */ handleUpdate(id) { @@ -113,10 +116,12 @@ export default { console.log(e) this.showToast('网络异常!') } finally { + this.page.pageIndex = 1 + this.setQueryParamPage() this.getList(true) this.handleCancelDel() } - + }, /** * 取消删除 @@ -146,14 +151,25 @@ export default { if (this.triggered) return this.triggered = true this.page.pageIndex = 1 + this.setQueryParamPage() this.getList(true) }, /** * 触底加载 */ handleOnreachBottom() { + // 将当前pageIndex制作成下标,并查看缓存中是否存在指定下标的值 + const key = `_${this.page.pageIndex}` + const value = this.keyMap[key] + // 如果value存在,表示缓存有值,那么阻止请求 + if(value) { + return + } + // value不存在,表示第一次请求,设置占位 + this.keyMap[key] = 'temp' this.status = 'nomore' - if (this.page.pageIndex < this.page.totalCount / this.page.pageSize) { + if (this.page.pageIndex <= this.page.totalPage) { + this.setQueryParamPage() this.getList() } }, @@ -168,6 +184,7 @@ export default { this.list = replace ? res.data : this.list.concat(res.data) this.page = res.page this.page.pageIndex++ + console.log(this.page) } else { this.showToast(res.msg) } @@ -177,7 +194,10 @@ export default { this.triggered = false this.status = (this.list || []).length == this.page.totalCount ? 'nomore' : 'loadmore' } - + + }, + setQueryParamPage() { + this.queryParam.pageIndex = this.page.pageIndex }, /** * 展示提示 @@ -186,7 +206,7 @@ export default { */ showToast(title, icon = 'error') { uni.showToast({ - title, + title, icon }); } @@ -196,4 +216,4 @@ export default { return `margin: ${this.list.length === 0 ? 0 : 20}rpx` } } -} +} \ No newline at end of file -- Gitee From 3b30431089a2baa0d076a7a8b42e0d0d19f070d9 Mon Sep 17 00:00:00 2001 From: JerryMa Date: Thu, 14 Apr 2022 10:13:57 +0800 Subject: [PATCH 004/195] =?UTF-8?q?*=20=E5=8D=87=E7=BA=A7shiro=E8=87=B3?= =?UTF-8?q?=E6=9C=80=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- diboot-iam-starter/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diboot-iam-starter/pom.xml b/diboot-iam-starter/pom.xml index 5938c465..2cdc1ff0 100644 --- a/diboot-iam-starter/pom.xml +++ b/diboot-iam-starter/pom.xml @@ -26,7 +26,7 @@ org.apache.shiro shiro-spring-boot-web-starter - 1.8.0 + 1.9.0 io.jsonwebtoken -- Gitee From 36059a4a13bc1fddf9d7e32d34db19e06cc1a2f5 Mon Sep 17 00:00:00 2001 From: JerryMa Date: Thu, 14 Apr 2022 10:14:41 +0800 Subject: [PATCH 005/195] =?UTF-8?q?*=20=E5=8D=87=E7=BA=A7wxjava=E8=87=B3?= =?UTF-8?q?=E6=9C=80=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- diboot-mobile-starter/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diboot-mobile-starter/pom.xml b/diboot-mobile-starter/pom.xml index 8a4cf2d8..2cb11c09 100644 --- a/diboot-mobile-starter/pom.xml +++ b/diboot-mobile-starter/pom.xml @@ -15,7 +15,7 @@ diboot mobile starter project - 4.2.0 + 4.3.0 -- Gitee From c813a7e848d26cf12acee6c1c00293f9b4349921 Mon Sep 17 00:00:00 2001 From: JerryMa Date: Fri, 15 Apr 2022 09:59:06 +0800 Subject: [PATCH 006/195] =?UTF-8?q?*=20=E6=9B=B4=E6=96=B0readme=E9=93=BE?= =?UTF-8?q?=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 06ad8861..dc726f10 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -> 用上diboot,告别常规SQL和CRUD,写的更少,性能更好! +> 用上diboot,告别常规SQL和CRUD,写的更少,性能更好! -> 新用户指南: [手把手来体验](https://www.diboot.com/guide/newer/bootstrap.html) 、[看视频了解我](https://www.bilibili.com/video/BV17P4y1p7L4) 、[如何做到高性能](https://www.bilibili.com/video/BV1tL411p7CD) +> 新用户指南: [手把手来体验](https://www.diboot.com/guide/beginner/bootstrap.html) 、[看视频了解我](https://www.bilibili.com/video/BV17P4y1p7L4) 、[如何做到高性能](https://www.bilibili.com/video/BV1tL411p7CD) # diboot - 基础组件化繁为简,高效工具以简驭繁
@@ -17,9 +17,9 @@ ![diboot平台组成结构图](https://www.diboot.com/structure.png) -> [diboot-cloud 微服务版本,看这里->](https://www.diboot.com/ent/service.html) +> [diboot-cloud 微服务版本,看这里->](https://www.diboot.com/guide/diboot-cloud/introduce.html) -> [diboot-workflow 工作流版本,看这里->](https://www.diboot.com/ent/service.html) +> [diboot-workflow 工作流版本,看这里->](https://www.diboot.com/guide/diboot-workflow/introduce.html) ## diboot基础组件 ### 1、 diboot-core: 精简优化内核:写的更少,性能更好 @@ -32,7 +32,7 @@ * 其他常用工具类、状态码、异常处理的更优实践封装 基于diboot-core的CRUD和常规关联的功能实现,代码量比传统Mybatis项目减少80%+,且性能更好更易维护。 -> 详细文档: [diboot-core文档](https://www.diboot.com/guide/diboot-core/introduce.html). +> 详细文档: [diboot-core文档](https://www.diboot.com/guide/diboot-core/introduce.html). ### 2、IAM 身份认证基础组件 及 配套VUE前端框架(diboot-antd-admin、diboot-element-admin) @@ -43,20 +43,20 @@ * 无缝适配redis,引入redis依赖即可启用shiro的redis缓存 * 支持基于注解的数据权限实现、简化的Log注解记录操作日志等 * 支持灵活的扩展能力(扩展多种登录方式、灵活替换用户实体类、自定义缓存等) -> 详细文档: [diboot-iam文档](https://www.diboot.com/guide/diboot-iam/introduce.html). +> 详细文档: [diboot-iam文档](https://www.diboot.com/guide/diboot-iam/introduce.html). ### 3、diboot-file 文件相关处理组件 * EasyExcel轻量封装,支持Java注解校验与@ExcelBind*注解实现字典及关联字段的name-value转换,并提供完善的校验错误提示 * 文件存储接口化,预置本地存储,简单扩展OSS、分布式存储等实现 * 封装常用的文件上传下载、图片压缩水印等常用处理 -> 详细文档: [diboot-file文档](https://www.diboot.com/guide/diboot-file/introduce.html). +> 详细文档: [diboot-file文档](https://www.diboot.com/guide/diboot-file/introduce.html). ### 4、diboot-scheduler 定时任务组件 * Quartz定时任务统一管理及日志的最佳实践封装 * @CollectThisJob注解提供定时任务定义,自动收集供前端选择 -> 详细文档: [diboot-scheduler文档](https://www.diboot.com/guide/diboot-scheduler/introduce.html). +> 详细文档: [diboot-scheduler文档](https://www.diboot.com/guide/diboot-scheduler/introduce.html). ### 5. diboot-message 消息通知组件 @@ -77,7 +77,7 @@ * 代码标准(devtools标准化了数据结构定义与代码实现,降低维护成本) * 支持多库(MySQL、MariaDB、ORACLE、SQLServer、PostgreSQL) -> 详细文档: [diboot-devtools文档](https://www.diboot.com/guide/diboot-devtools/introduce.html). +> 详细文档: [diboot-devtools文档](https://www.diboot.com/guide/diboot-devtools/introduce.html). ## 捐助支持 捐助二维码 @@ -89,6 +89,6 @@ * **VIP技术支持QQ群**(捐助/付费用户尊享): [931266830]() -* 技术交流QQ群: [731690096]() +* 技术交流QQ群: [731690096]() * 技术交流微信群 加: [wx20201024]() (备注diboot) -- Gitee From 45fcc63dbd11056c79d2b173aaabd9dd7add0b85 Mon Sep 17 00:00:00 2001 From: JerryMa Date: Fri, 15 Apr 2022 14:16:55 +0800 Subject: [PATCH 007/195] =?UTF-8?q?*=20IamOrgService=E6=94=B9=E4=B8=BA?= =?UTF-8?q?=E9=9D=99=E6=80=81=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../diboot/iam/data/DataAccessPermissionUserOrgImpl.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/diboot-iam-starter/src/main/java/com/diboot/iam/data/DataAccessPermissionUserOrgImpl.java b/diboot-iam-starter/src/main/java/com/diboot/iam/data/DataAccessPermissionUserOrgImpl.java index 20fc748d..24822ceb 100644 --- a/diboot-iam-starter/src/main/java/com/diboot/iam/data/DataAccessPermissionUserOrgImpl.java +++ b/diboot-iam-starter/src/main/java/com/diboot/iam/data/DataAccessPermissionUserOrgImpl.java @@ -17,12 +17,12 @@ package com.diboot.iam.data; import com.diboot.core.config.Cons; import com.diboot.core.data.access.DataAccessInterface; +import com.diboot.core.util.ContextHelper; import com.diboot.core.util.V; import com.diboot.iam.entity.IamUser; import com.diboot.iam.service.IamOrgService; import com.diboot.iam.util.IamSecurityUtils; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import java.io.Serializable; import java.util.ArrayList; @@ -39,9 +39,6 @@ import java.util.List; @Slf4j public class DataAccessPermissionUserOrgImpl implements DataAccessInterface { - @Autowired - private IamOrgService iamOrgService; - @Override public List getAccessibleIds(Class entityClass, String fieldName) { // 获取当前登录用户 @@ -62,7 +59,7 @@ public class DataAccessPermissionUserOrgImpl implements DataAccessInterface { //添加当前部门ID Long currentOrgId = currentUser.getOrgId(); accessibleIds.add(currentOrgId); - List childOrgIds = iamOrgService.getChildOrgIds(currentOrgId); + List childOrgIds = ContextHelper.getBean(IamOrgService.class).getChildOrgIds(currentOrgId); if(V.notEmpty(childOrgIds)){ accessibleIds.addAll(childOrgIds); } -- Gitee From bb995df16efddcf3eca5921c97b247df2e709588 Mon Sep 17 00:00:00 2001 From: JerryMa Date: Fri, 15 Apr 2022 16:52:00 +0800 Subject: [PATCH 008/195] =?UTF-8?q?*=20=E9=BB=98=E8=AE=A4=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=9D=83=E9=99=90=E8=8C=83=E5=9B=B4=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0createBy=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/diboot/iam/data/DataAccessPermissionUserOrgImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diboot-iam-starter/src/main/java/com/diboot/iam/data/DataAccessPermissionUserOrgImpl.java b/diboot-iam-starter/src/main/java/com/diboot/iam/data/DataAccessPermissionUserOrgImpl.java index 24822ceb..178348c7 100644 --- a/diboot-iam-starter/src/main/java/com/diboot/iam/data/DataAccessPermissionUserOrgImpl.java +++ b/diboot-iam-starter/src/main/java/com/diboot/iam/data/DataAccessPermissionUserOrgImpl.java @@ -64,7 +64,7 @@ public class DataAccessPermissionUserOrgImpl implements DataAccessInterface { accessibleIds.addAll(childOrgIds); } } - else if(Cons.FieldName.userId.name().equals(fieldName)){ + else if(Cons.FieldName.userId.name().equals(fieldName) || Cons.FieldName.createBy.name().equals(fieldName)){ accessibleIds.add(currentUser.getId()); } // ... 其他类型字段 -- Gitee From 8739ef7595965d66b26652d63afa952e6333348c Mon Sep 17 00:00:00 2001 From: JerryMa Date: Mon, 18 Apr 2022 10:01:04 +0800 Subject: [PATCH 009/195] * add readme --- diboot-admin-ui/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 diboot-admin-ui/README.md diff --git a/diboot-admin-ui/README.md b/diboot-admin-ui/README.md new file mode 100644 index 00000000..eb44e7a1 --- /dev/null +++ b/diboot-admin-ui/README.md @@ -0,0 +1 @@ +diboot-admin-ui 前端项目 \ No newline at end of file -- Gitee From 5cf6278e01f7d7c2acd262c25897a53344626b5a Mon Sep 17 00:00:00 2001 From: JerryMa Date: Mon, 18 Apr 2022 16:28:51 +0800 Subject: [PATCH 010/195] =?UTF-8?q?*=20=E5=8D=87=E7=BA=A7=20spring-boot?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2e3b7cdc..e3576009 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ org.springframework.boot spring-boot-starter-parent - 2.6.5 + 2.6.6 -- Gitee From f162697200be4290f18f2c5e3d782c1732479207 Mon Sep 17 00:00:00 2001 From: wind <1103642893@qq.com> Date: Tue, 19 Apr 2022 09:00:06 +0800 Subject: [PATCH 011/195] + create vite project --- diboot-admin-ui/.gitignore | 24 + diboot-admin-ui/.vscode/extensions.json | 3 + diboot-admin-ui/README.md | 17 +- diboot-admin-ui/index.html | 13 + diboot-admin-ui/package.json | 19 + diboot-admin-ui/pnpm-lock.yaml | 1245 +++++++++++++++++ diboot-admin-ui/public/favicon.ico | Bin 0 -> 4286 bytes diboot-admin-ui/src/App.vue | 21 + diboot-admin-ui/src/assets/logo.png | Bin 0 -> 6849 bytes diboot-admin-ui/src/components/HelloWorld.vue | 52 + diboot-admin-ui/src/env.d.ts | 8 + diboot-admin-ui/src/main.ts | 4 + diboot-admin-ui/tsconfig.json | 17 + diboot-admin-ui/tsconfig.node.json | 8 + diboot-admin-ui/vite.config.ts | 7 + 15 files changed, 1437 insertions(+), 1 deletion(-) create mode 100644 diboot-admin-ui/.gitignore create mode 100644 diboot-admin-ui/.vscode/extensions.json create mode 100644 diboot-admin-ui/index.html create mode 100644 diboot-admin-ui/package.json create mode 100644 diboot-admin-ui/pnpm-lock.yaml create mode 100644 diboot-admin-ui/public/favicon.ico create mode 100644 diboot-admin-ui/src/App.vue create mode 100644 diboot-admin-ui/src/assets/logo.png create mode 100644 diboot-admin-ui/src/components/HelloWorld.vue create mode 100644 diboot-admin-ui/src/env.d.ts create mode 100644 diboot-admin-ui/src/main.ts create mode 100644 diboot-admin-ui/tsconfig.json create mode 100644 diboot-admin-ui/tsconfig.node.json create mode 100644 diboot-admin-ui/vite.config.ts diff --git a/diboot-admin-ui/.gitignore b/diboot-admin-ui/.gitignore new file mode 100644 index 00000000..a547bf36 --- /dev/null +++ b/diboot-admin-ui/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/diboot-admin-ui/.vscode/extensions.json b/diboot-admin-ui/.vscode/extensions.json new file mode 100644 index 00000000..3dc5b08b --- /dev/null +++ b/diboot-admin-ui/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["johnsoncodehk.volar"] +} diff --git a/diboot-admin-ui/README.md b/diboot-admin-ui/README.md index eb44e7a1..e4325167 100644 --- a/diboot-admin-ui/README.md +++ b/diboot-admin-ui/README.md @@ -1 +1,16 @@ -diboot-admin-ui 前端项目 \ No newline at end of file +# Vue 3 + TypeScript + Vite + +This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 ` + + diff --git a/diboot-admin-ui/package.json b/diboot-admin-ui/package.json new file mode 100644 index 00000000..02d65be3 --- /dev/null +++ b/diboot-admin-ui/package.json @@ -0,0 +1,19 @@ +{ + "name": "vite-project", + "private": true, + "version": "0.0.0", + "scripts": { + "dev": "vite", + "build": "vue-tsc --noEmit && vite build", + "preview": "vite preview" + }, + "dependencies": { + "vue": "^3.2.25" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^2.3.1", + "typescript": "^4.5.4", + "vite": "^2.9.2", + "vue-tsc": "^0.29.8" + } +} \ No newline at end of file diff --git a/diboot-admin-ui/pnpm-lock.yaml b/diboot-admin-ui/pnpm-lock.yaml new file mode 100644 index 00000000..473b2274 --- /dev/null +++ b/diboot-admin-ui/pnpm-lock.yaml @@ -0,0 +1,1245 @@ +lockfileVersion: 5.3 + +specifiers: + '@vitejs/plugin-vue': ^2.3.1 + typescript: ^4.5.4 + vite: ^2.9.2 + vue: ^3.2.25 + vue-tsc: ^0.29.8 + +dependencies: + vue: registry.npmmirror.com/vue/3.2.33 + +devDependencies: + '@vitejs/plugin-vue': registry.npmmirror.com/@vitejs/plugin-vue/2.3.1_vite@2.9.5+vue@3.2.33 + typescript: registry.npmmirror.com/typescript/4.6.3 + vite: registry.npmmirror.com/vite/2.9.5 + vue-tsc: registry.npmmirror.com/vue-tsc/0.29.8_typescript@4.6.3 + +packages: + + registry.npmmirror.com/@babel/helper-validator-identifier/7.16.7: + resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz} + name: '@babel/helper-validator-identifier' + version: 7.16.7 + engines: {node: '>=6.9.0'} + dev: true + + registry.npmmirror.com/@babel/parser/7.17.9: + resolution: {integrity: sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/parser/-/parser-7.17.9.tgz} + name: '@babel/parser' + version: 7.17.9 + engines: {node: '>=6.0.0'} + hasBin: true + + registry.npmmirror.com/@babel/types/7.17.0: + resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/types/-/types-7.17.0.tgz} + name: '@babel/types' + version: 7.17.0 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier/7.16.7 + to-fast-properties: registry.npmmirror.com/to-fast-properties/2.0.0 + dev: true + + registry.npmmirror.com/@emmetio/abbreviation/2.2.3: + resolution: {integrity: sha512-87pltuCPt99aL+y9xS6GPZ+Wmmyhll2WXH73gG/xpGcQ84DRnptBsI2r0BeIQ0EB/SQTOe2ANPqFqj3Rj5FOGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emmetio/abbreviation/-/abbreviation-2.2.3.tgz} + name: '@emmetio/abbreviation' + version: 2.2.3 + dependencies: + '@emmetio/scanner': registry.npmmirror.com/@emmetio/scanner/1.0.0 + dev: true + + registry.npmmirror.com/@emmetio/css-abbreviation/2.1.4: + resolution: {integrity: sha512-qk9L60Y+uRtM5CPbB0y+QNl/1XKE09mSO+AhhSauIfr2YOx/ta3NJw2d8RtCFxgzHeRqFRr8jgyzThbu+MZ4Uw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emmetio/css-abbreviation/-/css-abbreviation-2.1.4.tgz} + name: '@emmetio/css-abbreviation' + version: 2.1.4 + dependencies: + '@emmetio/scanner': registry.npmmirror.com/@emmetio/scanner/1.0.0 + dev: true + + registry.npmmirror.com/@emmetio/scanner/1.0.0: + resolution: {integrity: sha512-8HqW8EVqjnCmWXVpqAOZf+EGESdkR27odcMMMGefgKXtar00SoYNSryGv//TELI4T3QFsECo78p+0lmalk/CFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emmetio/scanner/-/scanner-1.0.0.tgz} + name: '@emmetio/scanner' + version: 1.0.0 + dev: true + + registry.npmmirror.com/@vitejs/plugin-vue/2.3.1_vite@2.9.5+vue@3.2.33: + resolution: {integrity: sha512-YNzBt8+jt6bSwpt7LP890U1UcTOIZZxfpE5WOJ638PNxSEKOqAi0+FSKS0nVeukfdZ0Ai/H7AFd6k3hayfGZqQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-2.3.1.tgz} + id: registry.npmmirror.com/@vitejs/plugin-vue/2.3.1 + name: '@vitejs/plugin-vue' + version: 2.3.1 + engines: {node: '>=12.0.0'} + peerDependencies: + vite: ^2.5.10 + vue: ^3.2.25 + dependencies: + vite: registry.npmmirror.com/vite/2.9.5 + vue: registry.npmmirror.com/vue/3.2.33 + dev: true + + registry.npmmirror.com/@volar/code-gen/0.29.8: + resolution: {integrity: sha512-eohLLUqPChHRPDFT5gXn4V6pr/CeTri7Ou5GI26lUvBRRAbP8p+oYfQRcbMPGeKmVkYjfVj0chsxQGx6T8PQ4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@volar/code-gen/-/code-gen-0.29.8.tgz} + name: '@volar/code-gen' + version: 0.29.8 + dependencies: + '@volar/shared': registry.npmmirror.com/@volar/shared/0.29.8 + '@volar/source-map': registry.npmmirror.com/@volar/source-map/0.29.8 + dev: true + + registry.npmmirror.com/@volar/html2pug/0.29.8: + resolution: {integrity: sha512-bhSNXg8A2aD3w0B+CwmHjqCAaKtj5rORbE5C/q/UdGqptJbC6STCmi30KuRTdfPhR++Xb18Hauf3s/WCmtNAPA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@volar/html2pug/-/html2pug-0.29.8.tgz} + name: '@volar/html2pug' + version: 0.29.8 + dependencies: + domelementtype: registry.npmmirror.com/domelementtype/2.3.0 + domhandler: registry.npmmirror.com/domhandler/4.3.1 + htmlparser2: registry.npmmirror.com/htmlparser2/7.2.0 + pug: registry.npmmirror.com/pug/3.0.2 + dev: true + + registry.npmmirror.com/@volar/shared/0.29.8: + resolution: {integrity: sha512-Y1NN6irkIukD+T0wf4p/dHWYL90sacN2e2lYoDXxRlvoYxwANnHgw0J0Rcp+yw58ElWRScdG7/YntEIuZWeJsw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@volar/shared/-/shared-0.29.8.tgz} + name: '@volar/shared' + version: 0.29.8 + dependencies: + upath: registry.npmmirror.com/upath/2.0.1 + vscode-jsonrpc: registry.npmmirror.com/vscode-jsonrpc/8.0.0-next.7 + vscode-uri: registry.npmmirror.com/vscode-uri/3.0.3 + dev: true + + registry.npmmirror.com/@volar/source-map/0.29.8: + resolution: {integrity: sha512-7w+UoYtnc6UQu30CgMVvx0YN4dzDgP4TIsSmUaW62AGmxU9Lxwp3Kkn/4N8efi91z8ma5Z78v/HddyJPwAC3LA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@volar/source-map/-/source-map-0.29.8.tgz} + name: '@volar/source-map' + version: 0.29.8 + dependencies: + '@volar/shared': registry.npmmirror.com/@volar/shared/0.29.8 + dev: true + + registry.npmmirror.com/@volar/transforms/0.29.8: + resolution: {integrity: sha512-o2hRa8CoDwYTO1Mu5KA47+1elUnYUjDaVhCvbyKlRfd8qpHea2llotArq7B6OORSL2M9DVs1IRJ5NGURBFeZ3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@volar/transforms/-/transforms-0.29.8.tgz} + name: '@volar/transforms' + version: 0.29.8 + dependencies: + '@volar/shared': registry.npmmirror.com/@volar/shared/0.29.8 + vscode-languageserver: registry.npmmirror.com/vscode-languageserver/8.0.0-next.10 + dev: true + + registry.npmmirror.com/@volar/vue-code-gen/0.29.8: + resolution: {integrity: sha512-E1e7P2oktNC/DzgDBditfla4s8+HlUlluZ+BtcLvEdbkl3QEjujkB0x1wxguWzXmpWgLIDPtrS3Jzll5cCOkTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@volar/vue-code-gen/-/vue-code-gen-0.29.8.tgz} + name: '@volar/vue-code-gen' + version: 0.29.8 + dependencies: + '@volar/code-gen': registry.npmmirror.com/@volar/code-gen/0.29.8 + '@volar/shared': registry.npmmirror.com/@volar/shared/0.29.8 + '@volar/source-map': registry.npmmirror.com/@volar/source-map/0.29.8 + '@vue/compiler-core': registry.npmmirror.com/@vue/compiler-core/3.2.33 + '@vue/compiler-dom': registry.npmmirror.com/@vue/compiler-dom/3.2.33 + '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.33 + upath: registry.npmmirror.com/upath/2.0.1 + dev: true + + registry.npmmirror.com/@vscode/emmet-helper/2.8.4: + resolution: {integrity: sha512-lUki5QLS47bz/U8IlG9VQ+1lfxMtxMZENmU5nu4Z71eOD5j9FK0SmYGL5NiVJg9WBWeAU0VxRADMY2Qpq7BfVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vscode/emmet-helper/-/emmet-helper-2.8.4.tgz} + name: '@vscode/emmet-helper' + version: 2.8.4 + dependencies: + emmet: registry.npmmirror.com/emmet/2.3.6 + jsonc-parser: registry.npmmirror.com/jsonc-parser/2.3.1 + vscode-languageserver-textdocument: registry.npmmirror.com/vscode-languageserver-textdocument/1.0.4 + vscode-languageserver-types: registry.npmmirror.com/vscode-languageserver-types/3.16.0 + vscode-nls: registry.npmmirror.com/vscode-nls/5.0.0 + vscode-uri: registry.npmmirror.com/vscode-uri/2.1.2 + dev: true + + registry.npmmirror.com/@vue/compiler-core/3.2.33: + resolution: {integrity: sha512-AAmr52ji3Zhk7IKIuigX2osWWsb2nQE5xsdFYjdnmtQ4gymmqXbjLvkSE174+fF3A3kstYrTgGkqgOEbsdLDpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.33.tgz} + name: '@vue/compiler-core' + version: 3.2.33 + dependencies: + '@babel/parser': registry.npmmirror.com/@babel/parser/7.17.9 + '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.33 + estree-walker: registry.npmmirror.com/estree-walker/2.0.2 + source-map: registry.npmmirror.com/source-map/0.6.1 + + registry.npmmirror.com/@vue/compiler-dom/3.2.33: + resolution: {integrity: sha512-GhiG1C8X98Xz9QUX/RlA6/kgPBWJkjq0Rq6//5XTAGSYrTMBgcLpP9+CnlUg1TFxnnCVughAG+KZl28XJqw8uQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.33.tgz} + name: '@vue/compiler-dom' + version: 3.2.33 + dependencies: + '@vue/compiler-core': registry.npmmirror.com/@vue/compiler-core/3.2.33 + '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.33 + + registry.npmmirror.com/@vue/compiler-sfc/3.2.33: + resolution: {integrity: sha512-H8D0WqagCr295pQjUYyO8P3IejM3vEzeCO1apzByAEaAR/WimhMYczHfZVvlCE/9yBaEu/eu9RdiWr0kF8b71Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.33.tgz} + name: '@vue/compiler-sfc' + version: 3.2.33 + dependencies: + '@babel/parser': registry.npmmirror.com/@babel/parser/7.17.9 + '@vue/compiler-core': registry.npmmirror.com/@vue/compiler-core/3.2.33 + '@vue/compiler-dom': registry.npmmirror.com/@vue/compiler-dom/3.2.33 + '@vue/compiler-ssr': registry.npmmirror.com/@vue/compiler-ssr/3.2.33 + '@vue/reactivity-transform': registry.npmmirror.com/@vue/reactivity-transform/3.2.33 + '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.33 + estree-walker: registry.npmmirror.com/estree-walker/2.0.2 + magic-string: registry.npmmirror.com/magic-string/0.25.9 + postcss: registry.npmmirror.com/postcss/8.4.12 + source-map: registry.npmmirror.com/source-map/0.6.1 + dev: false + + registry.npmmirror.com/@vue/compiler-ssr/3.2.33: + resolution: {integrity: sha512-XQh1Xdk3VquDpXsnoCd7JnMoWec9CfAzQDQsaMcSU79OrrO2PNR0ErlIjm/mGq3GmBfkQjzZACV+7GhfRB8xMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.33.tgz} + name: '@vue/compiler-ssr' + version: 3.2.33 + dependencies: + '@vue/compiler-dom': registry.npmmirror.com/@vue/compiler-dom/3.2.33 + '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.33 + dev: false + + registry.npmmirror.com/@vue/reactivity-transform/3.2.33: + resolution: {integrity: sha512-4UL5KOIvSQb254aqenW4q34qMXbfZcmEsV/yVidLUgvwYQQ/D21bGX3DlgPUGI3c4C+iOnNmDCkIxkILoX/Pyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.33.tgz} + name: '@vue/reactivity-transform' + version: 3.2.33 + dependencies: + '@babel/parser': registry.npmmirror.com/@babel/parser/7.17.9 + '@vue/compiler-core': registry.npmmirror.com/@vue/compiler-core/3.2.33 + '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.33 + estree-walker: registry.npmmirror.com/estree-walker/2.0.2 + magic-string: registry.npmmirror.com/magic-string/0.25.9 + dev: false + + registry.npmmirror.com/@vue/reactivity/3.2.33: + resolution: {integrity: sha512-62Sq0mp9/0bLmDuxuLD5CIaMG2susFAGARLuZ/5jkU1FCf9EDbwUuF+BO8Ub3Rbodx0ziIecM/NsmyjardBxfQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.33.tgz} + name: '@vue/reactivity' + version: 3.2.33 + dependencies: + '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.33 + + registry.npmmirror.com/@vue/runtime-core/3.2.33: + resolution: {integrity: sha512-N2D2vfaXsBPhzCV3JsXQa2NECjxP3eXgZlFqKh4tgakp3iX6LCGv76DLlc+IfFZq+TW10Y8QUfeihXOupJ1dGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.33.tgz} + name: '@vue/runtime-core' + version: 3.2.33 + dependencies: + '@vue/reactivity': registry.npmmirror.com/@vue/reactivity/3.2.33 + '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.33 + dev: false + + registry.npmmirror.com/@vue/runtime-dom/3.2.33: + resolution: {integrity: sha512-LSrJ6W7CZTSUygX5s8aFkraDWlO6K4geOwA3quFF2O+hC3QuAMZt/0Xb7JKE3C4JD4pFwCSO7oCrZmZ0BIJUnw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.33.tgz} + name: '@vue/runtime-dom' + version: 3.2.33 + dependencies: + '@vue/runtime-core': registry.npmmirror.com/@vue/runtime-core/3.2.33 + '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.33 + csstype: registry.npmmirror.com/csstype/2.6.20 + dev: false + + registry.npmmirror.com/@vue/server-renderer/3.2.33_vue@3.2.33: + resolution: {integrity: sha512-4jpJHRD4ORv8PlbYi+/MfP8ec1okz6rybe36MdpkDrGIdEItHEUyaHSKvz+ptNEyQpALmmVfRteHkU9F8vxOew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.33.tgz} + id: registry.npmmirror.com/@vue/server-renderer/3.2.33 + name: '@vue/server-renderer' + version: 3.2.33 + peerDependencies: + vue: 3.2.33 + dependencies: + '@vue/compiler-ssr': registry.npmmirror.com/@vue/compiler-ssr/3.2.33 + '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.33 + vue: registry.npmmirror.com/vue/3.2.33 + dev: false + + registry.npmmirror.com/@vue/shared/3.2.33: + resolution: {integrity: sha512-UBc1Pg1T3yZ97vsA2ueER0F6GbJebLHYlEi4ou1H5YL4KWvMOOWwpYo9/QpWq93wxKG6Wo13IY74Hcn/f7c7Bg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/shared/-/shared-3.2.33.tgz} + name: '@vue/shared' + version: 3.2.33 + + registry.npmmirror.com/acorn/7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz} + name: acorn + version: 7.4.1 + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + registry.npmmirror.com/asap/2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/asap/-/asap-2.0.6.tgz} + name: asap + version: 2.0.6 + dev: true + + registry.npmmirror.com/assert-never/1.2.1: + resolution: {integrity: sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/assert-never/-/assert-never-1.2.1.tgz} + name: assert-never + version: 1.2.1 + dev: true + + registry.npmmirror.com/babel-walk/3.0.0-canary-5: + resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-walk/-/babel-walk-3.0.0-canary-5.tgz} + name: babel-walk + version: 3.0.0-canary-5 + engines: {node: '>= 10.0.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types/7.17.0 + dev: true + + registry.npmmirror.com/call-bind/1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz} + name: call-bind + version: 1.0.2 + dependencies: + function-bind: registry.npmmirror.com/function-bind/1.1.1 + get-intrinsic: registry.npmmirror.com/get-intrinsic/1.1.1 + dev: true + + registry.npmmirror.com/character-parser/2.2.0: + resolution: {integrity: sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-parser/-/character-parser-2.2.0.tgz} + name: character-parser + version: 2.2.0 + dependencies: + is-regex: registry.npmmirror.com/is-regex/1.1.4 + dev: true + + registry.npmmirror.com/constantinople/4.0.1: + resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/constantinople/-/constantinople-4.0.1.tgz} + name: constantinople + version: 4.0.1 + dependencies: + '@babel/parser': registry.npmmirror.com/@babel/parser/7.17.9 + '@babel/types': registry.npmmirror.com/@babel/types/7.17.0 + dev: true + + registry.npmmirror.com/csstype/2.6.20: + resolution: {integrity: sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/csstype/-/csstype-2.6.20.tgz} + name: csstype + version: 2.6.20 + dev: false + + registry.npmmirror.com/doctypes/1.1.0: + resolution: {integrity: sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/doctypes/-/doctypes-1.1.0.tgz} + name: doctypes + version: 1.1.0 + dev: true + + registry.npmmirror.com/dom-serializer/1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz} + name: dom-serializer + version: 1.4.1 + dependencies: + domelementtype: registry.npmmirror.com/domelementtype/2.3.0 + domhandler: registry.npmmirror.com/domhandler/4.3.1 + entities: registry.npmmirror.com/entities/2.2.0 + dev: true + + registry.npmmirror.com/domelementtype/2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz} + name: domelementtype + version: 2.3.0 + dev: true + + registry.npmmirror.com/domhandler/4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz} + name: domhandler + version: 4.3.1 + engines: {node: '>= 4'} + dependencies: + domelementtype: registry.npmmirror.com/domelementtype/2.3.0 + dev: true + + registry.npmmirror.com/domutils/2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz} + name: domutils + version: 2.8.0 + dependencies: + dom-serializer: registry.npmmirror.com/dom-serializer/1.4.1 + domelementtype: registry.npmmirror.com/domelementtype/2.3.0 + domhandler: registry.npmmirror.com/domhandler/4.3.1 + dev: true + + registry.npmmirror.com/emmet/2.3.6: + resolution: {integrity: sha512-pLS4PBPDdxuUAmw7Me7+TcHbykTsBKN/S9XJbUOMFQrNv9MoshzyMFK/R57JBm94/6HSL4vHnDeEmxlC82NQ4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/emmet/-/emmet-2.3.6.tgz} + name: emmet + version: 2.3.6 + dependencies: + '@emmetio/abbreviation': registry.npmmirror.com/@emmetio/abbreviation/2.2.3 + '@emmetio/css-abbreviation': registry.npmmirror.com/@emmetio/css-abbreviation/2.1.4 + dev: true + + registry.npmmirror.com/entities/2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz} + name: entities + version: 2.2.0 + dev: true + + registry.npmmirror.com/entities/3.0.1: + resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/entities/-/entities-3.0.1.tgz} + name: entities + version: 3.0.1 + engines: {node: '>=0.12'} + dev: true + + registry.npmmirror.com/esbuild-android-64/0.14.36: + resolution: {integrity: sha512-jwpBhF1jmo0tVCYC/ORzVN+hyVcNZUWuozGcLHfod0RJCedTDTvR4nwlTXdx1gtncDqjk33itjO+27OZHbiavw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.36.tgz} + name: esbuild-android-64 + version: 0.14.36 + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-android-arm64/0.14.36: + resolution: {integrity: sha512-/hYkyFe7x7Yapmfv4X/tBmyKnggUmdQmlvZ8ZlBnV4+PjisrEhAvC3yWpURuD9XoB8Wa1d5dGkTsF53pIvpjsg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.36.tgz} + name: esbuild-android-arm64 + version: 0.14.36 + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-darwin-64/0.14.36: + resolution: {integrity: sha512-kkl6qmV0dTpyIMKagluzYqlc1vO0ecgpviK/7jwPbRDEv5fejRTaBBEE2KxEQbTHcLhiiDbhG7d5UybZWo/1zQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.36.tgz} + name: esbuild-darwin-64 + version: 0.14.36 + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-darwin-arm64/0.14.36: + resolution: {integrity: sha512-q8fY4r2Sx6P0Pr3VUm//eFYKVk07C5MHcEinU1BjyFnuYz4IxR/03uBbDwluR6ILIHnZTE7AkTUWIdidRi1Jjw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.36.tgz} + name: esbuild-darwin-arm64 + version: 0.14.36 + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-freebsd-64/0.14.36: + resolution: {integrity: sha512-Hn8AYuxXXRptybPqoMkga4HRFE7/XmhtlQjXFHoAIhKUPPMeJH35GYEUWGbjteai9FLFvBAjEAlwEtSGxnqWww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.36.tgz} + name: esbuild-freebsd-64 + version: 0.14.36 + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-freebsd-arm64/0.14.36: + resolution: {integrity: sha512-S3C0attylLLRiCcHiJd036eDEMOY32+h8P+jJ3kTcfhJANNjP0TNBNL30TZmEdOSx/820HJFgRrqpNAvTbjnDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.36.tgz} + name: esbuild-freebsd-arm64 + version: 0.14.36 + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-32/0.14.36: + resolution: {integrity: sha512-Eh9OkyTrEZn9WGO4xkI3OPPpUX7p/3QYvdG0lL4rfr73Ap2HAr6D9lP59VMF64Ex01LhHSXwIsFG/8AQjh6eNw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.36.tgz} + name: esbuild-linux-32 + version: 0.14.36 + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-64/0.14.36: + resolution: {integrity: sha512-vFVFS5ve7PuwlfgoWNyRccGDi2QTNkQo/2k5U5ttVD0jRFaMlc8UQee708fOZA6zTCDy5RWsT5MJw3sl2X6KDg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.36.tgz} + name: esbuild-linux-64 + version: 0.14.36 + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-arm/0.14.36: + resolution: {integrity: sha512-NhgU4n+NCsYgt7Hy61PCquEz5aevI6VjQvxwBxtxrooXsxt5b2xtOUXYZe04JxqQo+XZk3d1gcr7pbV9MAQ/Lg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.36.tgz} + name: esbuild-linux-arm + version: 0.14.36 + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-arm64/0.14.36: + resolution: {integrity: sha512-24Vq1M7FdpSmaTYuu1w0Hdhiqkbto1I5Pjyi+4Cdw5fJKGlwQuw+hWynTcRI/cOZxBcBpP21gND7W27gHAiftw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.36.tgz} + name: esbuild-linux-arm64 + version: 0.14.36 + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-mips64le/0.14.36: + resolution: {integrity: sha512-hZUeTXvppJN+5rEz2EjsOFM9F1bZt7/d2FUM1lmQo//rXh1RTFYzhC0txn7WV0/jCC7SvrGRaRz0NMsRPf8SIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.36.tgz} + name: esbuild-linux-mips64le + version: 0.14.36 + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-ppc64le/0.14.36: + resolution: {integrity: sha512-1Bg3QgzZjO+QtPhP9VeIBhAduHEc2kzU43MzBnMwpLSZ890azr4/A9Dganun8nsqD/1TBcqhId0z4mFDO8FAvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.36.tgz} + name: esbuild-linux-ppc64le + version: 0.14.36 + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-riscv64/0.14.36: + resolution: {integrity: sha512-dOE5pt3cOdqEhaufDRzNCHf5BSwxgygVak9UR7PH7KPVHwSTDAZHDoEjblxLqjJYpc5XaU9+gKJ9F8mp9r5I4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.36.tgz} + name: esbuild-linux-riscv64 + version: 0.14.36 + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-s390x/0.14.36: + resolution: {integrity: sha512-g4FMdh//BBGTfVHjF6MO7Cz8gqRoDPzXWxRvWkJoGroKA18G9m0wddvPbEqcQf5Tbt2vSc1CIgag7cXwTmoTXg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.36.tgz} + name: esbuild-linux-s390x + version: 0.14.36 + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-netbsd-64/0.14.36: + resolution: {integrity: sha512-UB2bVImxkWk4vjnP62ehFNZ73lQY1xcnL5ZNYF3x0AG+j8HgdkNF05v67YJdCIuUJpBuTyCK8LORCYo9onSW+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.36.tgz} + name: esbuild-netbsd-64 + version: 0.14.36 + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-openbsd-64/0.14.36: + resolution: {integrity: sha512-NvGB2Chf8GxuleXRGk8e9zD3aSdRO5kLt9coTQbCg7WMGXeX471sBgh4kSg8pjx0yTXRt0MlrUDnjVYnetyivg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.36.tgz} + name: esbuild-openbsd-64 + version: 0.14.36 + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-sunos-64/0.14.36: + resolution: {integrity: sha512-VkUZS5ftTSjhRjuRLp+v78auMO3PZBXu6xl4ajomGenEm2/rGuWlhFSjB7YbBNErOchj51Jb2OK8lKAo8qdmsQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.36.tgz} + name: esbuild-sunos-64 + version: 0.14.36 + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-32/0.14.36: + resolution: {integrity: sha512-bIar+A6hdytJjZrDxfMBUSEHHLfx3ynoEZXx/39nxy86pX/w249WZm8Bm0dtOAByAf4Z6qV0LsnTIJHiIqbw0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.36.tgz} + name: esbuild-windows-32 + version: 0.14.36 + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-64/0.14.36: + resolution: {integrity: sha512-+p4MuRZekVChAeueT1Y9LGkxrT5x7YYJxYE8ZOTcEfeUUN43vktSn6hUNsvxzzATrSgq5QqRdllkVBxWZg7KqQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.36.tgz} + name: esbuild-windows-64 + version: 0.14.36 + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-arm64/0.14.36: + resolution: {integrity: sha512-fBB4WlDqV1m18EF/aheGYQkQZHfPHiHJSBYzXIo8yKehek+0BtBwo/4PNwKGJ5T0YK0oc8pBKjgwPbzSrPLb+Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.36.tgz} + name: esbuild-windows-arm64 + version: 0.14.36 + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild/0.14.36: + resolution: {integrity: sha512-HhFHPiRXGYOCRlrhpiVDYKcFJRdO0sBElZ668M4lh2ER0YgnkLxECuFe7uWCf23FrcLc59Pqr7dHkTqmRPDHmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.14.36.tgz} + name: esbuild + version: 0.14.36 + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + esbuild-android-64: registry.npmmirror.com/esbuild-android-64/0.14.36 + esbuild-android-arm64: registry.npmmirror.com/esbuild-android-arm64/0.14.36 + esbuild-darwin-64: registry.npmmirror.com/esbuild-darwin-64/0.14.36 + esbuild-darwin-arm64: registry.npmmirror.com/esbuild-darwin-arm64/0.14.36 + esbuild-freebsd-64: registry.npmmirror.com/esbuild-freebsd-64/0.14.36 + esbuild-freebsd-arm64: registry.npmmirror.com/esbuild-freebsd-arm64/0.14.36 + esbuild-linux-32: registry.npmmirror.com/esbuild-linux-32/0.14.36 + esbuild-linux-64: registry.npmmirror.com/esbuild-linux-64/0.14.36 + esbuild-linux-arm: registry.npmmirror.com/esbuild-linux-arm/0.14.36 + esbuild-linux-arm64: registry.npmmirror.com/esbuild-linux-arm64/0.14.36 + esbuild-linux-mips64le: registry.npmmirror.com/esbuild-linux-mips64le/0.14.36 + esbuild-linux-ppc64le: registry.npmmirror.com/esbuild-linux-ppc64le/0.14.36 + esbuild-linux-riscv64: registry.npmmirror.com/esbuild-linux-riscv64/0.14.36 + esbuild-linux-s390x: registry.npmmirror.com/esbuild-linux-s390x/0.14.36 + esbuild-netbsd-64: registry.npmmirror.com/esbuild-netbsd-64/0.14.36 + esbuild-openbsd-64: registry.npmmirror.com/esbuild-openbsd-64/0.14.36 + esbuild-sunos-64: registry.npmmirror.com/esbuild-sunos-64/0.14.36 + esbuild-windows-32: registry.npmmirror.com/esbuild-windows-32/0.14.36 + esbuild-windows-64: registry.npmmirror.com/esbuild-windows-64/0.14.36 + esbuild-windows-arm64: registry.npmmirror.com/esbuild-windows-arm64/0.14.36 + dev: true + + registry.npmmirror.com/estree-walker/2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz} + name: estree-walker + version: 2.0.2 + + registry.npmmirror.com/fsevents/2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz} + name: fsevents + version: 2.3.2 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/function-bind/1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz} + name: function-bind + version: 1.1.1 + dev: true + + registry.npmmirror.com/get-intrinsic/1.1.1: + resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz} + name: get-intrinsic + version: 1.1.1 + dependencies: + function-bind: registry.npmmirror.com/function-bind/1.1.1 + has: registry.npmmirror.com/has/1.0.3 + has-symbols: registry.npmmirror.com/has-symbols/1.0.3 + dev: true + + registry.npmmirror.com/has-symbols/1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz} + name: has-symbols + version: 1.0.3 + engines: {node: '>= 0.4'} + dev: true + + registry.npmmirror.com/has-tostringtag/1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz} + name: has-tostringtag + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + has-symbols: registry.npmmirror.com/has-symbols/1.0.3 + dev: true + + registry.npmmirror.com/has/1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has/-/has-1.0.3.tgz} + name: has + version: 1.0.3 + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: registry.npmmirror.com/function-bind/1.1.1 + dev: true + + registry.npmmirror.com/htmlparser2/7.2.0: + resolution: {integrity: sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/htmlparser2/-/htmlparser2-7.2.0.tgz} + name: htmlparser2 + version: 7.2.0 + dependencies: + domelementtype: registry.npmmirror.com/domelementtype/2.3.0 + domhandler: registry.npmmirror.com/domhandler/4.3.1 + domutils: registry.npmmirror.com/domutils/2.8.0 + entities: registry.npmmirror.com/entities/3.0.1 + dev: true + + registry.npmmirror.com/is-core-module/2.8.1: + resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-core-module/-/is-core-module-2.8.1.tgz} + name: is-core-module + version: 2.8.1 + dependencies: + has: registry.npmmirror.com/has/1.0.3 + dev: true + + registry.npmmirror.com/is-expression/4.0.0: + resolution: {integrity: sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-expression/-/is-expression-4.0.0.tgz} + name: is-expression + version: 4.0.0 + dependencies: + acorn: registry.npmmirror.com/acorn/7.4.1 + object-assign: registry.npmmirror.com/object-assign/4.1.1 + dev: true + + registry.npmmirror.com/is-promise/2.2.2: + resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-promise/-/is-promise-2.2.2.tgz} + name: is-promise + version: 2.2.2 + dev: true + + registry.npmmirror.com/is-regex/1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz} + name: is-regex + version: 1.1.4 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind/1.0.2 + has-tostringtag: registry.npmmirror.com/has-tostringtag/1.0.0 + dev: true + + registry.npmmirror.com/js-stringify/1.0.2: + resolution: {integrity: sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-stringify/-/js-stringify-1.0.2.tgz} + name: js-stringify + version: 1.0.2 + dev: true + + registry.npmmirror.com/jsonc-parser/2.3.1: + resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-2.3.1.tgz} + name: jsonc-parser + version: 2.3.1 + dev: true + + registry.npmmirror.com/jsonc-parser/3.0.0: + resolution: {integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz} + name: jsonc-parser + version: 3.0.0 + dev: true + + registry.npmmirror.com/jstransformer/1.0.0: + resolution: {integrity: sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jstransformer/-/jstransformer-1.0.0.tgz} + name: jstransformer + version: 1.0.0 + dependencies: + is-promise: registry.npmmirror.com/is-promise/2.2.2 + promise: registry.npmmirror.com/promise/7.3.1 + dev: true + + registry.npmmirror.com/lru-cache/6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz} + name: lru-cache + version: 6.0.0 + engines: {node: '>=10'} + dependencies: + yallist: registry.npmmirror.com/yallist/4.0.0 + dev: true + + registry.npmmirror.com/magic-string/0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz} + name: magic-string + version: 0.25.9 + dependencies: + sourcemap-codec: registry.npmmirror.com/sourcemap-codec/1.4.8 + dev: false + + registry.npmmirror.com/nanoid/3.3.2: + resolution: {integrity: sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-3.3.2.tgz} + name: nanoid + version: 3.3.2 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + registry.npmmirror.com/object-assign/4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz} + name: object-assign + version: 4.1.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/path-parse/1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz} + name: path-parse + version: 1.0.7 + dev: true + + registry.npmmirror.com/picocolors/1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz} + name: picocolors + version: 1.0.0 + + registry.npmmirror.com/postcss/8.4.12: + resolution: {integrity: sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss/-/postcss-8.4.12.tgz} + name: postcss + version: 8.4.12 + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: registry.npmmirror.com/nanoid/3.3.2 + picocolors: registry.npmmirror.com/picocolors/1.0.0 + source-map-js: registry.npmmirror.com/source-map-js/1.0.2 + + registry.npmmirror.com/promise/7.3.1: + resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/promise/-/promise-7.3.1.tgz} + name: promise + version: 7.3.1 + dependencies: + asap: registry.npmmirror.com/asap/2.0.6 + dev: true + + registry.npmmirror.com/pug-attrs/3.0.0: + resolution: {integrity: sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pug-attrs/-/pug-attrs-3.0.0.tgz} + name: pug-attrs + version: 3.0.0 + dependencies: + constantinople: registry.npmmirror.com/constantinople/4.0.1 + js-stringify: registry.npmmirror.com/js-stringify/1.0.2 + pug-runtime: registry.npmmirror.com/pug-runtime/3.0.1 + dev: true + + registry.npmmirror.com/pug-code-gen/3.0.2: + resolution: {integrity: sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pug-code-gen/-/pug-code-gen-3.0.2.tgz} + name: pug-code-gen + version: 3.0.2 + dependencies: + constantinople: registry.npmmirror.com/constantinople/4.0.1 + doctypes: registry.npmmirror.com/doctypes/1.1.0 + js-stringify: registry.npmmirror.com/js-stringify/1.0.2 + pug-attrs: registry.npmmirror.com/pug-attrs/3.0.0 + pug-error: registry.npmmirror.com/pug-error/2.0.0 + pug-runtime: registry.npmmirror.com/pug-runtime/3.0.1 + void-elements: registry.npmmirror.com/void-elements/3.1.0 + with: registry.npmmirror.com/with/7.0.2 + dev: true + + registry.npmmirror.com/pug-error/2.0.0: + resolution: {integrity: sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pug-error/-/pug-error-2.0.0.tgz} + name: pug-error + version: 2.0.0 + dev: true + + registry.npmmirror.com/pug-filters/4.0.0: + resolution: {integrity: sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pug-filters/-/pug-filters-4.0.0.tgz} + name: pug-filters + version: 4.0.0 + dependencies: + constantinople: registry.npmmirror.com/constantinople/4.0.1 + jstransformer: registry.npmmirror.com/jstransformer/1.0.0 + pug-error: registry.npmmirror.com/pug-error/2.0.0 + pug-walk: registry.npmmirror.com/pug-walk/2.0.0 + resolve: registry.npmmirror.com/resolve/1.22.0 + dev: true + + registry.npmmirror.com/pug-lexer/5.0.1: + resolution: {integrity: sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pug-lexer/-/pug-lexer-5.0.1.tgz} + name: pug-lexer + version: 5.0.1 + dependencies: + character-parser: registry.npmmirror.com/character-parser/2.2.0 + is-expression: registry.npmmirror.com/is-expression/4.0.0 + pug-error: registry.npmmirror.com/pug-error/2.0.0 + dev: true + + registry.npmmirror.com/pug-linker/4.0.0: + resolution: {integrity: sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pug-linker/-/pug-linker-4.0.0.tgz} + name: pug-linker + version: 4.0.0 + dependencies: + pug-error: registry.npmmirror.com/pug-error/2.0.0 + pug-walk: registry.npmmirror.com/pug-walk/2.0.0 + dev: true + + registry.npmmirror.com/pug-load/3.0.0: + resolution: {integrity: sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pug-load/-/pug-load-3.0.0.tgz} + name: pug-load + version: 3.0.0 + dependencies: + object-assign: registry.npmmirror.com/object-assign/4.1.1 + pug-walk: registry.npmmirror.com/pug-walk/2.0.0 + dev: true + + registry.npmmirror.com/pug-parser/6.0.0: + resolution: {integrity: sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pug-parser/-/pug-parser-6.0.0.tgz} + name: pug-parser + version: 6.0.0 + dependencies: + pug-error: registry.npmmirror.com/pug-error/2.0.0 + token-stream: registry.npmmirror.com/token-stream/1.0.0 + dev: true + + registry.npmmirror.com/pug-runtime/3.0.1: + resolution: {integrity: sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pug-runtime/-/pug-runtime-3.0.1.tgz} + name: pug-runtime + version: 3.0.1 + dev: true + + registry.npmmirror.com/pug-strip-comments/2.0.0: + resolution: {integrity: sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz} + name: pug-strip-comments + version: 2.0.0 + dependencies: + pug-error: registry.npmmirror.com/pug-error/2.0.0 + dev: true + + registry.npmmirror.com/pug-walk/2.0.0: + resolution: {integrity: sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pug-walk/-/pug-walk-2.0.0.tgz} + name: pug-walk + version: 2.0.0 + dev: true + + registry.npmmirror.com/pug/3.0.2: + resolution: {integrity: sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pug/-/pug-3.0.2.tgz} + name: pug + version: 3.0.2 + dependencies: + pug-code-gen: registry.npmmirror.com/pug-code-gen/3.0.2 + pug-filters: registry.npmmirror.com/pug-filters/4.0.0 + pug-lexer: registry.npmmirror.com/pug-lexer/5.0.1 + pug-linker: registry.npmmirror.com/pug-linker/4.0.0 + pug-load: registry.npmmirror.com/pug-load/3.0.0 + pug-parser: registry.npmmirror.com/pug-parser/6.0.0 + pug-runtime: registry.npmmirror.com/pug-runtime/3.0.1 + pug-strip-comments: registry.npmmirror.com/pug-strip-comments/2.0.0 + dev: true + + registry.npmmirror.com/request-light/0.5.8: + resolution: {integrity: sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/request-light/-/request-light-0.5.8.tgz} + name: request-light + version: 0.5.8 + dev: true + + registry.npmmirror.com/resolve/1.22.0: + resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve/-/resolve-1.22.0.tgz} + name: resolve + version: 1.22.0 + hasBin: true + dependencies: + is-core-module: registry.npmmirror.com/is-core-module/2.8.1 + path-parse: registry.npmmirror.com/path-parse/1.0.7 + supports-preserve-symlinks-flag: registry.npmmirror.com/supports-preserve-symlinks-flag/1.0.0 + dev: true + + registry.npmmirror.com/rollup/2.70.2: + resolution: {integrity: sha512-EitogNZnfku65I1DD5Mxe8JYRUCy0hkK5X84IlDtUs+O6JRMpRciXTzyCUuX11b5L5pvjH+OmFXiQ3XjabcXgg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup/-/rollup-2.70.2.tgz} + name: rollup + version: 2.70.2 + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents/2.3.2 + dev: true + + registry.npmmirror.com/semver/7.3.7: + resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz} + name: semver + version: 7.3.7 + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: registry.npmmirror.com/lru-cache/6.0.0 + dev: true + + registry.npmmirror.com/source-map-js/1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz} + name: source-map-js + version: 1.0.2 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/source-map/0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz} + name: source-map + version: 0.6.1 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/sourcemap-codec/1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz} + name: sourcemap-codec + version: 1.4.8 + dev: false + + registry.npmmirror.com/supports-preserve-symlinks-flag/1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz} + name: supports-preserve-symlinks-flag + version: 1.0.0 + engines: {node: '>= 0.4'} + dev: true + + registry.npmmirror.com/to-fast-properties/2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz} + name: to-fast-properties + version: 2.0.0 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/token-stream/1.0.0: + resolution: {integrity: sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/token-stream/-/token-stream-1.0.0.tgz} + name: token-stream + version: 1.0.0 + dev: true + + registry.npmmirror.com/typescript/4.6.3: + resolution: {integrity: sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typescript/-/typescript-4.6.3.tgz} + name: typescript + version: 4.6.3 + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + registry.npmmirror.com/upath/2.0.1: + resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/upath/-/upath-2.0.1.tgz} + name: upath + version: 2.0.1 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/vite/2.9.5: + resolution: {integrity: sha512-dvMN64X2YEQgSXF1lYabKXw3BbN6e+BL67+P3Vy4MacnY+UzT1AfkHiioFSi9+uiDUiaDy7Ax/LQqivk6orilg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/-/vite-2.9.5.tgz} + name: vite + version: 2.9.5 + engines: {node: '>=12.2.0'} + hasBin: true + peerDependencies: + less: '*' + sass: '*' + stylus: '*' + peerDependenciesMeta: + less: + optional: true + sass: + optional: true + stylus: + optional: true + dependencies: + esbuild: registry.npmmirror.com/esbuild/0.14.36 + postcss: registry.npmmirror.com/postcss/8.4.12 + resolve: registry.npmmirror.com/resolve/1.22.0 + rollup: registry.npmmirror.com/rollup/2.70.2 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents/2.3.2 + dev: true + + registry.npmmirror.com/void-elements/3.1.0: + resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/void-elements/-/void-elements-3.1.0.tgz} + name: void-elements + version: 3.1.0 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/vscode-css-languageservice/5.4.1: + resolution: {integrity: sha512-W7D3GKFXf97ReAaU4EZ2nxVO1kQhztbycJgc1b/Ipr0h8zYWr88BADmrXu02z+lsCS84D7Sr4hoUzDKeaFn2Kg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vscode-css-languageservice/-/vscode-css-languageservice-5.4.1.tgz} + name: vscode-css-languageservice + version: 5.4.1 + dependencies: + vscode-languageserver-textdocument: registry.npmmirror.com/vscode-languageserver-textdocument/1.0.4 + vscode-languageserver-types: registry.npmmirror.com/vscode-languageserver-types/3.16.0 + vscode-nls: registry.npmmirror.com/vscode-nls/5.0.0 + vscode-uri: registry.npmmirror.com/vscode-uri/3.0.3 + dev: true + + registry.npmmirror.com/vscode-html-languageservice/4.2.4: + resolution: {integrity: sha512-1HqvXKOq9WlZyW4HTD+0XzrjZoZ/YFrgQY2PZqktbRloHXVAUKm6+cAcvZi4YqKPVn05/CK7do+KBHfuSaEdbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vscode-html-languageservice/-/vscode-html-languageservice-4.2.4.tgz} + name: vscode-html-languageservice + version: 4.2.4 + dependencies: + vscode-languageserver-textdocument: registry.npmmirror.com/vscode-languageserver-textdocument/1.0.4 + vscode-languageserver-types: registry.npmmirror.com/vscode-languageserver-types/3.16.0 + vscode-nls: registry.npmmirror.com/vscode-nls/5.0.0 + vscode-uri: registry.npmmirror.com/vscode-uri/3.0.3 + dev: true + + registry.npmmirror.com/vscode-json-languageservice/4.2.1: + resolution: {integrity: sha512-xGmv9QIWs2H8obGbWg+sIPI/3/pFgj/5OWBhNzs00BkYQ9UaB2F6JJaGB/2/YOZJ3BvLXQTC4Q7muqU25QgAhA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vscode-json-languageservice/-/vscode-json-languageservice-4.2.1.tgz} + name: vscode-json-languageservice + version: 4.2.1 + dependencies: + jsonc-parser: registry.npmmirror.com/jsonc-parser/3.0.0 + vscode-languageserver-textdocument: registry.npmmirror.com/vscode-languageserver-textdocument/1.0.4 + vscode-languageserver-types: registry.npmmirror.com/vscode-languageserver-types/3.16.0 + vscode-nls: registry.npmmirror.com/vscode-nls/5.0.0 + vscode-uri: registry.npmmirror.com/vscode-uri/3.0.3 + dev: true + + registry.npmmirror.com/vscode-jsonrpc/8.0.0-next.7: + resolution: {integrity: sha512-JX/F31LEsims0dAlOTKFE4E+AJMiJvdRSRViifFJSqSN7EzeYyWlfuDchF7g91oRNPZOIWfibTkDf3/UMsQGzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vscode-jsonrpc/-/vscode-jsonrpc-8.0.0-next.7.tgz} + name: vscode-jsonrpc + version: 8.0.0-next.7 + engines: {node: '>=14.0.0'} + dev: true + + registry.npmmirror.com/vscode-languageserver-protocol/3.17.0-next.16: + resolution: {integrity: sha512-tx4DnXw9u3N7vw+bx6n2NKp6FoxoNwiP/biH83AS30I2AnTGyLd7afSeH6Oewn2E8jvB7K15bs12sMppkKOVeQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.0-next.16.tgz} + name: vscode-languageserver-protocol + version: 3.17.0-next.16 + dependencies: + vscode-jsonrpc: registry.npmmirror.com/vscode-jsonrpc/8.0.0-next.7 + vscode-languageserver-types: registry.npmmirror.com/vscode-languageserver-types/3.17.0-next.9 + dev: true + + registry.npmmirror.com/vscode-languageserver-textdocument/1.0.4: + resolution: {integrity: sha512-/xhqXP/2A2RSs+J8JNXpiiNVvvNM0oTosNVmQnunlKvq9o4mupHOBAnnzH0lwIPKazXKvAKsVp1kr+H/K4lgoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.4.tgz} + name: vscode-languageserver-textdocument + version: 1.0.4 + dev: true + + registry.npmmirror.com/vscode-languageserver-types/3.16.0: + resolution: {integrity: sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz} + name: vscode-languageserver-types + version: 3.16.0 + dev: true + + registry.npmmirror.com/vscode-languageserver-types/3.17.0-next.9: + resolution: {integrity: sha512-9/PeDNPYduaoXRUzYpqmu4ZV9L01HGo0wH9FUt+sSHR7IXwA7xoXBfNUlv8gB9H0D2WwEmMomSy1NmhjKQyn3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.0-next.9.tgz} + name: vscode-languageserver-types + version: 3.17.0-next.9 + dev: true + + registry.npmmirror.com/vscode-languageserver/8.0.0-next.10: + resolution: {integrity: sha512-sdjldl9ipuBSWVw5ENVMRcOVQwF0o+J6+lNA7FrB8MiLmzflnfjRoJMqA5tCEY8S/J/+P56ZR/dqiQnRYg5m8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vscode-languageserver/-/vscode-languageserver-8.0.0-next.10.tgz} + name: vscode-languageserver + version: 8.0.0-next.10 + hasBin: true + dependencies: + vscode-languageserver-protocol: registry.npmmirror.com/vscode-languageserver-protocol/3.17.0-next.16 + dev: true + + registry.npmmirror.com/vscode-nls/5.0.0: + resolution: {integrity: sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vscode-nls/-/vscode-nls-5.0.0.tgz} + name: vscode-nls + version: 5.0.0 + dev: true + + registry.npmmirror.com/vscode-pug-languageservice/0.29.8: + resolution: {integrity: sha512-QHYAzDSJLg7GOLxCZ12qsM0dAM0dPeMSS1t4kKfzLsfpErmZpFzkAIXbidVrNMdMffGZMtTuIlcpEyWHbx96Iw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vscode-pug-languageservice/-/vscode-pug-languageservice-0.29.8.tgz} + name: vscode-pug-languageservice + version: 0.29.8 + deprecated: 'WARNING: This project has been renamed to @volar/pug-language-service. Install using @volar/pug-language-service instead.' + dependencies: + '@volar/code-gen': registry.npmmirror.com/@volar/code-gen/0.29.8 + '@volar/shared': registry.npmmirror.com/@volar/shared/0.29.8 + '@volar/source-map': registry.npmmirror.com/@volar/source-map/0.29.8 + '@volar/transforms': registry.npmmirror.com/@volar/transforms/0.29.8 + pug-lexer: registry.npmmirror.com/pug-lexer/5.0.1 + pug-parser: registry.npmmirror.com/pug-parser/6.0.0 + vscode-languageserver: registry.npmmirror.com/vscode-languageserver/8.0.0-next.10 + dev: true + + registry.npmmirror.com/vscode-typescript-languageservice/0.29.8: + resolution: {integrity: sha512-eecDqHk4WjEvy6VHQ6teHczppQ9yJO2wExCy7yu7WiFj35qbw0h4G6Erv46MvP3ClL8FggFzD7s1qM6vdqJUfw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vscode-typescript-languageservice/-/vscode-typescript-languageservice-0.29.8.tgz} + name: vscode-typescript-languageservice + version: 0.29.8 + deprecated: 'WARNING: This project has been renamed to @volar/typescript-language-service. Install using @volar/typescript-language-service instead.' + dependencies: + '@volar/shared': registry.npmmirror.com/@volar/shared/0.29.8 + semver: registry.npmmirror.com/semver/7.3.7 + upath: registry.npmmirror.com/upath/2.0.1 + vscode-languageserver: registry.npmmirror.com/vscode-languageserver/8.0.0-next.10 + vscode-languageserver-textdocument: registry.npmmirror.com/vscode-languageserver-textdocument/1.0.4 + dev: true + + registry.npmmirror.com/vscode-uri/2.1.2: + resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vscode-uri/-/vscode-uri-2.1.2.tgz} + name: vscode-uri + version: 2.1.2 + dev: true + + registry.npmmirror.com/vscode-uri/3.0.3: + resolution: {integrity: sha512-EcswR2S8bpR7fD0YPeS7r2xXExrScVMxg4MedACaWHEtx9ftCF/qHG1xGkolzTPcEmjTavCQgbVzHUIdTMzFGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vscode-uri/-/vscode-uri-3.0.3.tgz} + name: vscode-uri + version: 3.0.3 + dev: true + + registry.npmmirror.com/vscode-vue-languageservice/0.29.8: + resolution: {integrity: sha512-qSJdvW5ttyGUB/8uWDKgo8vnIoFnXYlBP4Z/cn54btsRn6ZMw7IJGJU1381e7p/yGvMTLeGbugD53SghbnSa6g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vscode-vue-languageservice/-/vscode-vue-languageservice-0.29.8.tgz} + name: vscode-vue-languageservice + version: 0.29.8 + deprecated: 'WARNING: This project has been renamed to @volar/vue-language-service. Install using @volar/vue-language-service instead.' + dependencies: + '@volar/code-gen': registry.npmmirror.com/@volar/code-gen/0.29.8 + '@volar/html2pug': registry.npmmirror.com/@volar/html2pug/0.29.8 + '@volar/shared': registry.npmmirror.com/@volar/shared/0.29.8 + '@volar/source-map': registry.npmmirror.com/@volar/source-map/0.29.8 + '@volar/transforms': registry.npmmirror.com/@volar/transforms/0.29.8 + '@volar/vue-code-gen': registry.npmmirror.com/@volar/vue-code-gen/0.29.8 + '@vscode/emmet-helper': registry.npmmirror.com/@vscode/emmet-helper/2.8.4 + '@vue/reactivity': registry.npmmirror.com/@vue/reactivity/3.2.33 + '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.33 + request-light: registry.npmmirror.com/request-light/0.5.8 + upath: registry.npmmirror.com/upath/2.0.1 + vscode-css-languageservice: registry.npmmirror.com/vscode-css-languageservice/5.4.1 + vscode-html-languageservice: registry.npmmirror.com/vscode-html-languageservice/4.2.4 + vscode-json-languageservice: registry.npmmirror.com/vscode-json-languageservice/4.2.1 + vscode-languageserver: registry.npmmirror.com/vscode-languageserver/8.0.0-next.10 + vscode-languageserver-textdocument: registry.npmmirror.com/vscode-languageserver-textdocument/1.0.4 + vscode-pug-languageservice: registry.npmmirror.com/vscode-pug-languageservice/0.29.8 + vscode-typescript-languageservice: registry.npmmirror.com/vscode-typescript-languageservice/0.29.8 + dev: true + + registry.npmmirror.com/vue-tsc/0.29.8_typescript@4.6.3: + resolution: {integrity: sha512-pT0wLRjvRuSmB+J4WJT6uuV9mO0KtSSXEAtaVXZQzyk5+DJdbLIQTbRce/TXSkfqt1l1WogO78RjtOJFiMCgfQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue-tsc/-/vue-tsc-0.29.8.tgz} + id: registry.npmmirror.com/vue-tsc/0.29.8 + name: vue-tsc + version: 0.29.8 + hasBin: true + peerDependencies: + typescript: '*' + dependencies: + '@volar/shared': registry.npmmirror.com/@volar/shared/0.29.8 + typescript: registry.npmmirror.com/typescript/4.6.3 + vscode-vue-languageservice: registry.npmmirror.com/vscode-vue-languageservice/0.29.8 + dev: true + + registry.npmmirror.com/vue/3.2.33: + resolution: {integrity: sha512-si1ExAlDUrLSIg/V7D/GgA4twJwfsfgG+t9w10z38HhL/HA07132pUQ2KuwAo8qbCyMJ9e6OqrmWrOCr+jW7ZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue/-/vue-3.2.33.tgz} + name: vue + version: 3.2.33 + dependencies: + '@vue/compiler-dom': registry.npmmirror.com/@vue/compiler-dom/3.2.33 + '@vue/compiler-sfc': registry.npmmirror.com/@vue/compiler-sfc/3.2.33 + '@vue/runtime-dom': registry.npmmirror.com/@vue/runtime-dom/3.2.33 + '@vue/server-renderer': registry.npmmirror.com/@vue/server-renderer/3.2.33_vue@3.2.33 + '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.33 + dev: false + + registry.npmmirror.com/with/7.0.2: + resolution: {integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/with/-/with-7.0.2.tgz} + name: with + version: 7.0.2 + engines: {node: '>= 10.0.0'} + dependencies: + '@babel/parser': registry.npmmirror.com/@babel/parser/7.17.9 + '@babel/types': registry.npmmirror.com/@babel/types/7.17.0 + assert-never: registry.npmmirror.com/assert-never/1.2.1 + babel-walk: registry.npmmirror.com/babel-walk/3.0.0-canary-5 + dev: true + + registry.npmmirror.com/yallist/4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz} + name: yallist + version: 4.0.0 + dev: true diff --git a/diboot-admin-ui/public/favicon.ico b/diboot-admin-ui/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2 GIT binary patch literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S literal 0 HcmV?d00001 diff --git a/diboot-admin-ui/src/App.vue b/diboot-admin-ui/src/App.vue new file mode 100644 index 00000000..1503baf9 --- /dev/null +++ b/diboot-admin-ui/src/App.vue @@ -0,0 +1,21 @@ + + + + + diff --git a/diboot-admin-ui/src/assets/logo.png b/diboot-admin-ui/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f3d2503fc2a44b5053b0837ebea6e87a2d339a43 GIT binary patch literal 6849 zcmaKRcUV(fvo}bjDT-7nLI_nlK}sT_69H+`qzVWDA|yaU?}j417wLi^B1KB1SLsC& zL0ag7$U(XW5YR7p&Ux?sP$d4lvMt8C^+TcQu4F zQqv!UF!I+kw)c0jhd6+g6oCr9P?7)?!qX1ui*iL{p}sKCAGuJ{{W)0z1pLF|=>h}& zt(2Lr0Z`2ig8<5i%Zk}cO5Fm=LByqGWaS`oqChZdEFmc`0hSb#gg|Aap^{+WKOYcj zHjINK)KDG%&s?Mt4CL(T=?;~U@bU2x_mLKN!#GJuK_CzbNw5SMEJorG!}_5;?R>@1 zSl)jns3WlU7^J%=(hUtfmuUCU&C3%8B5C^f5>W2Cy8jW3#{Od{lF1}|?c61##3dzA zsPlFG;l_FzBK}8>|H_Ru_H#!_7$UH4UKo3lKOA}g1(R&|e@}GINYVzX?q=_WLZCgh z)L|eJMce`D0EIwgRaNETDsr+?vQknSGAi=7H00r`QnI%oQnFxm`G2umXso9l+8*&Q z7WqF|$p49js$mdzo^BXpH#gURy=UO;=IMrYc5?@+sR4y_?d*~0^YP7d+y0{}0)zBM zIKVM(DBvICK#~7N0a+PY6)7;u=dutmNqK3AlsrUU9U`d;msiucB_|8|2kY=(7XA;G zwDA8AR)VCA#JOkxm#6oHNS^YVuOU;8p$N)2{`;oF|rQ?B~K$%rHDxXs+_G zF5|-uqHZvSzq}L;5Kcy_P+x0${33}Ofb6+TX&=y;;PkEOpz%+_bCw_{<&~ zeLV|!bP%l1qxywfVr9Z9JI+++EO^x>ZuCK);=$VIG1`kxK8F2M8AdC$iOe3cj1fo(ce4l-9 z7*zKy3={MixvUk=enQE;ED~7tv%qh&3lR<0m??@w{ILF|e#QOyPkFYK!&Up7xWNtL zOW%1QMC<3o;G9_S1;NkPB6bqbCOjeztEc6TsBM<(q9((JKiH{01+Ud=uw9B@{;(JJ z-DxI2*{pMq`q1RQc;V8@gYAY44Z!%#W~M9pRxI(R?SJ7sy7em=Z5DbuDlr@*q|25V)($-f}9c#?D%dU^RS<(wz?{P zFFHtCab*!rl(~j@0(Nadvwg8q|4!}L^>d?0al6}Rrv9$0M#^&@zjbfJy_n!%mVHK4 z6pLRIQ^Uq~dnyy$`ay51Us6WaP%&O;@49m&{G3z7xV3dLtt1VTOMYl3UW~Rm{Eq4m zF?Zl_v;?7EFx1_+#WFUXxcK78IV)FO>42@cm@}2I%pVbZqQ}3;p;sDIm&knay03a^ zn$5}Q$G!@fTwD$e(x-~aWP0h+4NRz$KlnO_H2c< z(XX#lPuW_%H#Q+c&(nRyX1-IadKR-%$4FYC0fsCmL9ky3 zKpxyjd^JFR+vg2!=HWf}2Z?@Td`0EG`kU?{8zKrvtsm)|7>pPk9nu@2^z96aU2<#` z2QhvH5w&V;wER?mopu+nqu*n8p~(%QkwSs&*0eJwa zMXR05`OSFpfyRb!Y_+H@O%Y z0=K^y6B8Gcbl?SA)qMP3Z+=C(?8zL@=74R=EVnE?vY!1BQy2@q*RUgRx4yJ$k}MnL zs!?74QciNb-LcG*&o<9=DSL>1n}ZNd)w1z3-0Pd^4ED1{qd=9|!!N?xnXjM!EuylY z5=!H>&hSofh8V?Jofyd!h`xDI1fYAuV(sZwwN~{$a}MX^=+0TH*SFp$vyxmUv7C*W zv^3Gl0+eTFgBi3FVD;$nhcp)ka*4gSskYIqQ&+M}xP9yLAkWzBI^I%zR^l1e?bW_6 zIn{mo{dD=)9@V?s^fa55jh78rP*Ze<3`tRCN4*mpO$@7a^*2B*7N_|A(Ve2VB|)_o z$=#_=aBkhe(ifX}MLT()@5?OV+~7cXC3r!%{QJxriXo9I%*3q4KT4Xxzyd{ z9;_%=W%q!Vw$Z7F3lUnY+1HZ*lO;4;VR2+i4+D(m#01OYq|L_fbnT;KN<^dkkCwtd zF7n+O7KvAw8c`JUh6LmeIrk4`F3o|AagKSMK3))_5Cv~y2Bb2!Ibg9BO7Vkz?pAYX zoI=B}+$R22&IL`NCYUYjrdhwjnMx_v=-Qcx-jmtN>!Zqf|n1^SWrHy zK|MwJ?Z#^>)rfT5YSY{qjZ&`Fjd;^vv&gF-Yj6$9-Dy$<6zeP4s+78gS2|t%Z309b z0^fp~ue_}i`U9j!<|qF92_3oB09NqgAoehQ`)<)dSfKoJl_A6Ec#*Mx9Cpd-p#$Ez z={AM*r-bQs6*z$!*VA4|QE7bf@-4vb?Q+pPKLkY2{yKsw{&udv_2v8{Dbd zm~8VAv!G~s)`O3|Q6vFUV%8%+?ZSVUa(;fhPNg#vab@J*9XE4#D%)$UU-T5`fwjz! z6&gA^`OGu6aUk{l*h9eB?opVdrHK>Q@U>&JQ_2pR%}TyOXGq_6s56_`U(WoOaAb+K zXQr#6H}>a-GYs9^bGP2Y&hSP5gEtW+GVC4=wy0wQk=~%CSXj=GH6q z-T#s!BV`xZVxm{~jr_ezYRpqqIcXC=Oq`b{lu`Rt(IYr4B91hhVC?yg{ol4WUr3v9 zOAk2LG>CIECZ-WIs0$N}F#eoIUEtZudc7DPYIjzGqDLWk_A4#(LgacooD z2K4IWs@N`Bddm-{%oy}!k0^i6Yh)uJ1S*90>|bm3TOZxcV|ywHUb(+CeX-o1|LTZM zwU>dY3R&U)T(}5#Neh?-CWT~@{6Ke@sI)uSuzoah8COy)w)B)aslJmp`WUcjdia-0 zl2Y}&L~XfA`uYQboAJ1;J{XLhYjH){cObH3FDva+^8ioOQy%Z=xyjGLmWMrzfFoH; zEi3AG`_v+%)&lDJE;iJWJDI@-X9K5O)LD~j*PBe(wu+|%ar~C+LK1+-+lK=t# z+Xc+J7qp~5q=B~rD!x78)?1+KUIbYr^5rcl&tB-cTtj+e%{gpZZ4G~6r15+d|J(ky zjg@@UzMW0k9@S#W(1H{u;Nq(7llJbq;;4t$awM;l&(2s+$l!Ay9^Ge|34CVhr7|BG z?dAR83smef^frq9V(OH+a+ki#q&-7TkWfFM=5bsGbU(8mC;>QTCWL5ydz9s6k@?+V zcjiH`VI=59P-(-DWXZ~5DH>B^_H~;4$)KUhnmGo*G!Tq8^LjfUDO)lASN*=#AY_yS zqW9UX(VOCO&p@kHdUUgsBO0KhXxn1sprK5h8}+>IhX(nSXZKwlNsjk^M|RAaqmCZB zHBolOHYBas@&{PT=R+?d8pZu zUHfyucQ`(umXSW7o?HQ3H21M`ZJal+%*)SH1B1j6rxTlG3hx1IGJN^M7{$j(9V;MZ zRKybgVuxKo#XVM+?*yTy{W+XHaU5Jbt-UG33x{u(N-2wmw;zzPH&4DE103HV@ER86 z|FZEmQb|&1s5#`$4!Cm}&`^{(4V}OP$bk`}v6q6rm;P!H)W|2i^e{7lTk2W@jo_9q z*aw|U7#+g59Fv(5qI`#O-qPj#@_P>PC#I(GSp3DLv7x-dmYK=C7lPF8a)bxb=@)B1 zUZ`EqpXV2dR}B&r`uM}N(TS99ZT0UB%IN|0H%DcVO#T%L_chrgn#m6%x4KE*IMfjX zJ%4veCEqbXZ`H`F_+fELMC@wuy_ch%t*+Z+1I}wN#C+dRrf2X{1C8=yZ_%Pt6wL_~ zZ2NN-hXOT4P4n$QFO7yYHS-4wF1Xfr-meG9Pn;uK51?hfel`d38k{W)F*|gJLT2#T z<~>spMu4(mul-8Q3*pf=N4DcI)zzjqAgbE2eOT7~&f1W3VsdD44Ffe;3mJp-V@8UC z)|qnPc12o~$X-+U@L_lWqv-RtvB~%hLF($%Ew5w>^NR82qC_0FB z)=hP1-OEx?lLi#jnLzH}a;Nvr@JDO-zQWd}#k^an$Kwml;MrD&)sC5b`s0ZkVyPkb zt}-jOq^%_9>YZe7Y}PhW{a)c39G`kg(P4@kxjcYfgB4XOOcmezdUI7j-!gs7oAo2o zx(Ph{G+YZ`a%~kzK!HTAA5NXE-7vOFRr5oqY$rH>WI6SFvWmahFav!CfRMM3%8J&c z*p+%|-fNS_@QrFr(at!JY9jCg9F-%5{nb5Bo~z@Y9m&SHYV`49GAJjA5h~h4(G!Se zZmK{Bo7ivCfvl}@A-ptkFGcWXAzj3xfl{evi-OG(TaCn1FAHxRc{}B|x+Ua1D=I6M z!C^ZIvK6aS_c&(=OQDZfm>O`Nxsw{ta&yiYPA~@e#c%N>>#rq)k6Aru-qD4(D^v)y z*>Rs;YUbD1S8^D(ps6Jbj0K3wJw>L4m)0e(6Pee3Y?gy9i0^bZO?$*sv+xKV?WBlh zAp*;v6w!a8;A7sLB*g-^<$Z4L7|5jXxxP1}hQZ<55f9<^KJ>^mKlWSGaLcO0=$jem zWyZkRwe~u{{tU63DlCaS9$Y4CP4f?+wwa(&1ou)b>72ydrFvm`Rj-0`kBJgK@nd(*Eh!(NC{F-@=FnF&Y!q`7){YsLLHf0_B6aHc# z>WIuHTyJwIH{BJ4)2RtEauC7Yq7Cytc|S)4^*t8Va3HR zg=~sN^tp9re@w=GTx$;zOWMjcg-7X3Wk^N$n;&Kf1RgVG2}2L-(0o)54C509C&77i zrjSi{X*WV=%C17((N^6R4Ya*4#6s_L99RtQ>m(%#nQ#wrRC8Y%yxkH;d!MdY+Tw@r zjpSnK`;C-U{ATcgaxoEpP0Gf+tx);buOMlK=01D|J+ROu37qc*rD(w`#O=3*O*w9?biwNoq3WN1`&Wp8TvKj3C z3HR9ssH7a&Vr<6waJrU zdLg!ieYz%U^bmpn%;(V%%ugMk92&?_XX1K@mwnVSE6!&%P%Wdi7_h`CpScvspMx?N zQUR>oadnG17#hNc$pkTp+9lW+MBKHRZ~74XWUryd)4yd zj98$%XmIL4(9OnoeO5Fnyn&fpQ9b0h4e6EHHw*l68j;>(ya`g^S&y2{O8U>1*>4zR zq*WSI_2o$CHQ?x0!wl9bpx|Cm2+kFMR)oMud1%n2=qn5nE&t@Fgr#=Zv2?}wtEz^T z9rrj=?IH*qI5{G@Rn&}^Z{+TW}mQeb9=8b<_a`&Cm#n%n~ zU47MvCBsdXFB1+adOO)03+nczfWa#vwk#r{o{dF)QWya9v2nv43Zp3%Ps}($lA02*_g25t;|T{A5snSY?3A zrRQ~(Ygh_ebltHo1VCbJb*eOAr;4cnlXLvI>*$-#AVsGg6B1r7@;g^L zFlJ_th0vxO7;-opU@WAFe;<}?!2q?RBrFK5U{*ai@NLKZ^};Ul}beukveh?TQn;$%9=R+DX07m82gP$=}Uo_%&ngV`}Hyv8g{u z3SWzTGV|cwQuFIs7ZDOqO_fGf8Q`8MwL}eUp>q?4eqCmOTcwQuXtQckPy|4F1on8l zP*h>d+cH#XQf|+6c|S{7SF(Lg>bR~l(0uY?O{OEVlaxa5@e%T&xju=o1`=OD#qc16 zSvyH*my(dcp6~VqR;o(#@m44Lug@~_qw+HA=mS#Z^4reBy8iV?H~I;{LQWk3aKK8$bLRyt$g?- +import { ref } from 'vue' + +defineProps<{ msg: string }>() + +const count = ref(0) + + + + + diff --git a/diboot-admin-ui/src/env.d.ts b/diboot-admin-ui/src/env.d.ts new file mode 100644 index 00000000..aafef950 --- /dev/null +++ b/diboot-admin-ui/src/env.d.ts @@ -0,0 +1,8 @@ +/// + +declare module '*.vue' { + import type { DefineComponent } from 'vue' + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types + const component: DefineComponent<{}, {}, any> + export default component +} diff --git a/diboot-admin-ui/src/main.ts b/diboot-admin-ui/src/main.ts new file mode 100644 index 00000000..01433bca --- /dev/null +++ b/diboot-admin-ui/src/main.ts @@ -0,0 +1,4 @@ +import { createApp } from 'vue' +import App from './App.vue' + +createApp(App).mount('#app') diff --git a/diboot-admin-ui/tsconfig.json b/diboot-admin-ui/tsconfig.json new file mode 100644 index 00000000..52205ea0 --- /dev/null +++ b/diboot-admin-ui/tsconfig.json @@ -0,0 +1,17 @@ +{ + "compilerOptions": { + "target": "esnext", + "useDefineForClassFields": true, + "module": "esnext", + "moduleResolution": "node", + "strict": true, + "jsx": "preserve", + "sourceMap": true, + "resolveJsonModule": true, + "isolatedModules": true, + "esModuleInterop": true, + "lib": ["esnext", "dom"] + }, + "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/diboot-admin-ui/tsconfig.node.json b/diboot-admin-ui/tsconfig.node.json new file mode 100644 index 00000000..e993792c --- /dev/null +++ b/diboot-admin-ui/tsconfig.node.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "composite": true, + "module": "esnext", + "moduleResolution": "node" + }, + "include": ["vite.config.ts"] +} diff --git a/diboot-admin-ui/vite.config.ts b/diboot-admin-ui/vite.config.ts new file mode 100644 index 00000000..315212d6 --- /dev/null +++ b/diboot-admin-ui/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue()] +}) -- Gitee From 46c2eb2f3534e669eeb59e5a099234d27d820812 Mon Sep 17 00:00:00 2001 From: wind <1103642893@qq.com> Date: Tue, 19 Apr 2022 12:06:22 +0800 Subject: [PATCH 012/195] + eslint init --- diboot-admin-ui/.eslintignore | 19 + diboot-admin-ui/.eslintrc.js | 30 + diboot-admin-ui/package.json | 14 +- diboot-admin-ui/pnpm-lock.yaml | 1158 ++++++++++++++++++++++++++++++++ diboot-admin-ui/vite.config.ts | 9 +- 5 files changed, 1224 insertions(+), 6 deletions(-) create mode 100644 diboot-admin-ui/.eslintignore create mode 100644 diboot-admin-ui/.eslintrc.js diff --git a/diboot-admin-ui/.eslintignore b/diboot-admin-ui/.eslintignore new file mode 100644 index 00000000..0dc990b0 --- /dev/null +++ b/diboot-admin-ui/.eslintignore @@ -0,0 +1,19 @@ +node_modules +public +dist + +/bin +/docs + +.vscode +.idea + +*.sh +*.md +*.woff +*.ttf +.husky +.local +.eslintrc.js + +/src/mock/* diff --git a/diboot-admin-ui/.eslintrc.js b/diboot-admin-ui/.eslintrc.js new file mode 100644 index 00000000..febfb403 --- /dev/null +++ b/diboot-admin-ui/.eslintrc.js @@ -0,0 +1,30 @@ +module.exports = { + env: { + browser: true, + es2021: true, + node: true + }, + parser: "vue-eslint-parser", + extends: [ + "eslint:recommended", + "plugin:vue/vue3-recommended", + "plugin:@typescript-eslint/recommended" + ], + parserOptions: { + ecmaVersion: "latest", + parser: "@typescript-eslint/parser", + sourceType: "module" + }, + plugins: [ + "vue", + "@typescript-eslint" + ], + globals: { + defineProps: 'readonly', + defineEmits: 'readonly', + defineExpose: 'readonly', + withDefaults: 'readonly', + }, + rules: { + } +} diff --git a/diboot-admin-ui/package.json b/diboot-admin-ui/package.json index 02d65be3..4ac6beaf 100644 --- a/diboot-admin-ui/package.json +++ b/diboot-admin-ui/package.json @@ -1,19 +1,25 @@ { - "name": "vite-project", + "name": "diboot-admin-ui", "private": true, - "version": "0.0.0", + "version": "3.0.0", "scripts": { "dev": "vite", "build": "vue-tsc --noEmit && vite build", - "preview": "vite preview" + "preview": "vite preview", + "lint": "eslint --ext ./src" }, "dependencies": { "vue": "^3.2.25" }, "devDependencies": { + "@typescript-eslint/eslint-plugin": "^5.20.0", + "@typescript-eslint/parser": "^5.20.0", "@vitejs/plugin-vue": "^2.3.1", + "eslint": "^8.13.0", + "eslint-plugin-vue": "^8.6.0", "typescript": "^4.5.4", "vite": "^2.9.2", + "vite-plugin-eslint": "^1.4.0", "vue-tsc": "^0.29.8" } -} \ No newline at end of file +} diff --git a/diboot-admin-ui/pnpm-lock.yaml b/diboot-admin-ui/pnpm-lock.yaml index 473b2274..0dba4f0e 100644 --- a/diboot-admin-ui/pnpm-lock.yaml +++ b/diboot-admin-ui/pnpm-lock.yaml @@ -1,9 +1,14 @@ lockfileVersion: 5.3 specifiers: + '@typescript-eslint/eslint-plugin': ^5.20.0 + '@typescript-eslint/parser': ^5.20.0 '@vitejs/plugin-vue': ^2.3.1 + eslint: ^8.13.0 + eslint-plugin-vue: ^8.6.0 typescript: ^4.5.4 vite: ^2.9.2 + vite-plugin-eslint: ^1.4.0 vue: ^3.2.25 vue-tsc: ^0.29.8 @@ -11,9 +16,14 @@ dependencies: vue: registry.npmmirror.com/vue/3.2.33 devDependencies: + '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.20.0_b9ac9b5656ce5dffade639fcf5e491bf + '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser/5.20.0_eslint@8.13.0+typescript@4.6.3 '@vitejs/plugin-vue': registry.npmmirror.com/@vitejs/plugin-vue/2.3.1_vite@2.9.5+vue@3.2.33 + eslint: registry.npmmirror.com/eslint/8.13.0 + eslint-plugin-vue: registry.npmmirror.com/eslint-plugin-vue/8.6.0_eslint@8.13.0 typescript: registry.npmmirror.com/typescript/4.6.3 vite: registry.npmmirror.com/vite/2.9.5 + vite-plugin-eslint: registry.npmmirror.com/vite-plugin-eslint/1.4.0_eslint@8.13.0+vite@2.9.5 vue-tsc: registry.npmmirror.com/vue-tsc/0.29.8_typescript@4.6.3 packages: @@ -64,6 +74,234 @@ packages: version: 1.0.0 dev: true + registry.npmmirror.com/@eslint/eslintrc/1.2.1: + resolution: {integrity: sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-1.2.1.tgz} + name: '@eslint/eslintrc' + version: 1.2.1 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: registry.npmmirror.com/ajv/6.12.6 + debug: registry.npmmirror.com/debug/4.3.4 + espree: registry.npmmirror.com/espree/9.3.1 + globals: registry.npmmirror.com/globals/13.13.0 + ignore: registry.npmmirror.com/ignore/5.2.0 + import-fresh: registry.npmmirror.com/import-fresh/3.3.0 + js-yaml: registry.npmmirror.com/js-yaml/4.1.0 + minimatch: registry.npmmirror.com/minimatch/3.1.2 + strip-json-comments: registry.npmmirror.com/strip-json-comments/3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@humanwhocodes/config-array/0.9.5: + resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz} + name: '@humanwhocodes/config-array' + version: 0.9.5 + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': registry.npmmirror.com/@humanwhocodes/object-schema/1.2.1 + debug: registry.npmmirror.com/debug/4.3.4 + minimatch: registry.npmmirror.com/minimatch/3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@humanwhocodes/object-schema/1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz} + name: '@humanwhocodes/object-schema' + version: 1.2.1 + dev: true + + registry.npmmirror.com/@nodelib/fs.scandir/2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz} + name: '@nodelib/fs.scandir' + version: 2.1.5 + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': registry.npmmirror.com/@nodelib/fs.stat/2.0.5 + run-parallel: registry.npmmirror.com/run-parallel/1.2.0 + dev: true + + registry.npmmirror.com/@nodelib/fs.stat/2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz} + name: '@nodelib/fs.stat' + version: 2.0.5 + engines: {node: '>= 8'} + dev: true + + registry.npmmirror.com/@nodelib/fs.walk/1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz} + name: '@nodelib/fs.walk' + version: 1.2.8 + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': registry.npmmirror.com/@nodelib/fs.scandir/2.1.5 + fastq: registry.npmmirror.com/fastq/1.13.0 + dev: true + + registry.npmmirror.com/@rollup/pluginutils/4.2.1: + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz} + name: '@rollup/pluginutils' + version: 4.2.1 + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: registry.npmmirror.com/estree-walker/2.0.2 + picomatch: registry.npmmirror.com/picomatch/2.3.1 + dev: true + + registry.npmmirror.com/@types/json-schema/7.0.11: + resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz} + name: '@types/json-schema' + version: 7.0.11 + dev: true + + registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.20.0_b9ac9b5656ce5dffade639fcf5e491bf: + resolution: {integrity: sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.20.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.20.0 + name: '@typescript-eslint/eslint-plugin' + version: 5.20.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser/5.20.0_eslint@8.13.0+typescript@4.6.3 + '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager/5.20.0 + '@typescript-eslint/type-utils': registry.npmmirror.com/@typescript-eslint/type-utils/5.20.0_eslint@8.13.0+typescript@4.6.3 + '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils/5.20.0_eslint@8.13.0+typescript@4.6.3 + debug: registry.npmmirror.com/debug/4.3.4 + eslint: registry.npmmirror.com/eslint/8.13.0 + functional-red-black-tree: registry.npmmirror.com/functional-red-black-tree/1.0.1 + ignore: registry.npmmirror.com/ignore/5.2.0 + regexpp: registry.npmmirror.com/regexpp/3.2.0 + semver: registry.npmmirror.com/semver/7.3.7 + tsutils: registry.npmmirror.com/tsutils/3.21.0_typescript@4.6.3 + typescript: registry.npmmirror.com/typescript/4.6.3 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@typescript-eslint/parser/5.20.0_eslint@8.13.0+typescript@4.6.3: + resolution: {integrity: sha512-UWKibrCZQCYvobmu3/N8TWbEeo/EPQbS41Ux1F9XqPzGuV7pfg6n50ZrFo6hryynD8qOTTfLHtHjjdQtxJ0h/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-5.20.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/parser/5.20.0 + name: '@typescript-eslint/parser' + version: 5.20.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager/5.20.0 + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/5.20.0 + '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree/5.20.0_typescript@4.6.3 + debug: registry.npmmirror.com/debug/4.3.4 + eslint: registry.npmmirror.com/eslint/8.13.0 + typescript: registry.npmmirror.com/typescript/4.6.3 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@typescript-eslint/scope-manager/5.20.0: + resolution: {integrity: sha512-h9KtuPZ4D/JuX7rpp1iKg3zOH0WNEa+ZIXwpW/KWmEFDxlA/HSfCMhiyF1HS/drTICjIbpA6OqkAhrP/zkCStg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-5.20.0.tgz} + name: '@typescript-eslint/scope-manager' + version: 5.20.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/5.20.0 + '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys/5.20.0 + dev: true + + registry.npmmirror.com/@typescript-eslint/type-utils/5.20.0_eslint@8.13.0+typescript@4.6.3: + resolution: {integrity: sha512-WxNrCwYB3N/m8ceyoGCgbLmuZwupvzN0rE8NBuwnl7APgjv24ZJIjkNzoFBXPRCGzLNkoU/WfanW0exvp/+3Iw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-5.20.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/type-utils/5.20.0 + name: '@typescript-eslint/type-utils' + version: 5.20.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils/5.20.0_eslint@8.13.0+typescript@4.6.3 + debug: registry.npmmirror.com/debug/4.3.4 + eslint: registry.npmmirror.com/eslint/8.13.0 + tsutils: registry.npmmirror.com/tsutils/3.21.0_typescript@4.6.3 + typescript: registry.npmmirror.com/typescript/4.6.3 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@typescript-eslint/types/5.20.0: + resolution: {integrity: sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/types/-/types-5.20.0.tgz} + name: '@typescript-eslint/types' + version: 5.20.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + registry.npmmirror.com/@typescript-eslint/typescript-estree/5.20.0_typescript@4.6.3: + resolution: {integrity: sha512-36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.20.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/typescript-estree/5.20.0 + name: '@typescript-eslint/typescript-estree' + version: 5.20.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/5.20.0 + '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys/5.20.0 + debug: registry.npmmirror.com/debug/4.3.4 + globby: registry.npmmirror.com/globby/11.1.0 + is-glob: registry.npmmirror.com/is-glob/4.0.3 + semver: registry.npmmirror.com/semver/7.3.7 + tsutils: registry.npmmirror.com/tsutils/3.21.0_typescript@4.6.3 + typescript: registry.npmmirror.com/typescript/4.6.3 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@typescript-eslint/utils/5.20.0_eslint@8.13.0+typescript@4.6.3: + resolution: {integrity: sha512-lHONGJL1LIO12Ujyx8L8xKbwWSkoUKFSO+0wDAqGXiudWB2EO7WEUT+YZLtVbmOmSllAjLb9tpoIPwpRe5Tn6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-5.20.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/utils/5.20.0 + name: '@typescript-eslint/utils' + version: 5.20.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@types/json-schema': registry.npmmirror.com/@types/json-schema/7.0.11 + '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager/5.20.0 + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/5.20.0 + '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree/5.20.0_typescript@4.6.3 + eslint: registry.npmmirror.com/eslint/8.13.0 + eslint-scope: registry.npmmirror.com/eslint-scope/5.1.1 + eslint-utils: registry.npmmirror.com/eslint-utils/3.0.0_eslint@8.13.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + registry.npmmirror.com/@typescript-eslint/visitor-keys/5.20.0: + resolution: {integrity: sha512-1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.20.0.tgz} + name: '@typescript-eslint/visitor-keys' + version: 5.20.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/5.20.0 + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/3.3.0 + dev: true + registry.npmmirror.com/@vitejs/plugin-vue/2.3.1_vite@2.9.5+vue@3.2.33: resolution: {integrity: sha512-YNzBt8+jt6bSwpt7LP890U1UcTOIZZxfpE5WOJ638PNxSEKOqAi0+FSKS0nVeukfdZ0Ai/H7AFd6k3hayfGZqQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-2.3.1.tgz} id: registry.npmmirror.com/@vitejs/plugin-vue/2.3.1 @@ -252,6 +490,17 @@ packages: name: '@vue/shared' version: 3.2.33 + registry.npmmirror.com/acorn-jsx/5.3.2_acorn@8.7.0: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz} + id: registry.npmmirror.com/acorn-jsx/5.3.2 + name: acorn-jsx + version: 5.3.2 + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: registry.npmmirror.com/acorn/8.7.0 + dev: true + registry.npmmirror.com/acorn/7.4.1: resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz} name: acorn @@ -260,6 +509,54 @@ packages: hasBin: true dev: true + registry.npmmirror.com/acorn/8.7.0: + resolution: {integrity: sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/acorn/-/acorn-8.7.0.tgz} + name: acorn + version: 8.7.0 + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + registry.npmmirror.com/ajv/6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz} + name: ajv + version: 6.12.6 + dependencies: + fast-deep-equal: registry.npmmirror.com/fast-deep-equal/3.1.3 + fast-json-stable-stringify: registry.npmmirror.com/fast-json-stable-stringify/2.1.0 + json-schema-traverse: registry.npmmirror.com/json-schema-traverse/0.4.1 + uri-js: registry.npmmirror.com/uri-js/4.4.1 + dev: true + + registry.npmmirror.com/ansi-regex/5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz} + name: ansi-regex + version: 5.0.1 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/ansi-styles/4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz} + name: ansi-styles + version: 4.3.0 + engines: {node: '>=8'} + dependencies: + color-convert: registry.npmmirror.com/color-convert/2.0.1 + dev: true + + registry.npmmirror.com/argparse/2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz} + name: argparse + version: 2.0.1 + dev: true + + registry.npmmirror.com/array-union/2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz} + name: array-union + version: 2.1.0 + engines: {node: '>=8'} + dev: true + registry.npmmirror.com/asap/2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/asap/-/asap-2.0.6.tgz} name: asap @@ -281,6 +578,30 @@ packages: '@babel/types': registry.npmmirror.com/@babel/types/7.17.0 dev: true + registry.npmmirror.com/balanced-match/1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz} + name: balanced-match + version: 1.0.2 + dev: true + + registry.npmmirror.com/brace-expansion/1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz} + name: brace-expansion + version: 1.1.11 + dependencies: + balanced-match: registry.npmmirror.com/balanced-match/1.0.2 + concat-map: registry.npmmirror.com/concat-map/0.0.1 + dev: true + + registry.npmmirror.com/braces/3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz} + name: braces + version: 3.0.2 + engines: {node: '>=8'} + dependencies: + fill-range: registry.npmmirror.com/fill-range/7.0.1 + dev: true + registry.npmmirror.com/call-bind/1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz} name: call-bind @@ -290,6 +611,23 @@ packages: get-intrinsic: registry.npmmirror.com/get-intrinsic/1.1.1 dev: true + registry.npmmirror.com/callsites/3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz} + name: callsites + version: 3.1.0 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/chalk/4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz} + name: chalk + version: 4.1.2 + engines: {node: '>=10'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles/4.3.0 + supports-color: registry.npmmirror.com/supports-color/7.2.0 + dev: true + registry.npmmirror.com/character-parser/2.2.0: resolution: {integrity: sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-parser/-/character-parser-2.2.0.tgz} name: character-parser @@ -298,6 +636,27 @@ packages: is-regex: registry.npmmirror.com/is-regex/1.1.4 dev: true + registry.npmmirror.com/color-convert/2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz} + name: color-convert + version: 2.0.1 + engines: {node: '>=7.0.0'} + dependencies: + color-name: registry.npmmirror.com/color-name/1.1.4 + dev: true + + registry.npmmirror.com/color-name/1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz} + name: color-name + version: 1.1.4 + dev: true + + registry.npmmirror.com/concat-map/0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz} + name: concat-map + version: 0.0.1 + dev: true + registry.npmmirror.com/constantinople/4.0.1: resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/constantinople/-/constantinople-4.0.1.tgz} name: constantinople @@ -307,12 +666,61 @@ packages: '@babel/types': registry.npmmirror.com/@babel/types/7.17.0 dev: true + registry.npmmirror.com/cross-spawn/7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz} + name: cross-spawn + version: 7.0.3 + engines: {node: '>= 8'} + dependencies: + path-key: registry.npmmirror.com/path-key/3.1.1 + shebang-command: registry.npmmirror.com/shebang-command/2.0.0 + which: registry.npmmirror.com/which/2.0.2 + dev: true + registry.npmmirror.com/csstype/2.6.20: resolution: {integrity: sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/csstype/-/csstype-2.6.20.tgz} name: csstype version: 2.6.20 dev: false + registry.npmmirror.com/debug/4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz} + name: debug + version: 4.3.4 + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: registry.npmmirror.com/ms/2.1.2 + dev: true + + registry.npmmirror.com/deep-is/0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz} + name: deep-is + version: 0.1.4 + dev: true + + registry.npmmirror.com/dir-glob/3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz} + name: dir-glob + version: 3.0.1 + engines: {node: '>=8'} + dependencies: + path-type: registry.npmmirror.com/path-type/4.0.0 + dev: true + + registry.npmmirror.com/doctrine/3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz} + name: doctrine + version: 3.0.0 + engines: {node: '>=6.0.0'} + dependencies: + esutils: registry.npmmirror.com/esutils/2.0.3 + dev: true + registry.npmmirror.com/doctypes/1.1.0: resolution: {integrity: sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/doctypes/-/doctypes-1.1.0.tgz} name: doctypes @@ -626,11 +1034,258 @@ packages: esbuild-windows-arm64: registry.npmmirror.com/esbuild-windows-arm64/0.14.36 dev: true + registry.npmmirror.com/escape-string-regexp/4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz} + name: escape-string-regexp + version: 4.0.0 + engines: {node: '>=10'} + dev: true + + registry.npmmirror.com/eslint-plugin-vue/8.6.0_eslint@8.13.0: + resolution: {integrity: sha512-abXiF2J18n/7ZPy9foSlJyouKf54IqpKlNvNmzhM93N0zs3QUxZG/oBd3tVPOJTKg7SlhBUtPxugpqzNbgGpQQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-8.6.0.tgz} + id: registry.npmmirror.com/eslint-plugin-vue/8.6.0 + name: eslint-plugin-vue + version: 8.6.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 + dependencies: + eslint: registry.npmmirror.com/eslint/8.13.0 + eslint-utils: registry.npmmirror.com/eslint-utils/3.0.0_eslint@8.13.0 + natural-compare: registry.npmmirror.com/natural-compare/1.4.0 + semver: registry.npmmirror.com/semver/7.3.7 + vue-eslint-parser: registry.npmmirror.com/vue-eslint-parser/8.3.0_eslint@8.13.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/eslint-scope/5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz} + name: eslint-scope + version: 5.1.1 + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: registry.npmmirror.com/esrecurse/4.3.0 + estraverse: registry.npmmirror.com/estraverse/4.3.0 + dev: true + + registry.npmmirror.com/eslint-scope/7.1.1: + resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.1.1.tgz} + name: eslint-scope + version: 7.1.1 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: registry.npmmirror.com/esrecurse/4.3.0 + estraverse: registry.npmmirror.com/estraverse/5.3.0 + dev: true + + registry.npmmirror.com/eslint-utils/3.0.0_eslint@8.13.0: + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-utils/-/eslint-utils-3.0.0.tgz} + id: registry.npmmirror.com/eslint-utils/3.0.0 + name: eslint-utils + version: 3.0.0 + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: registry.npmmirror.com/eslint/8.13.0 + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/2.1.0 + dev: true + + registry.npmmirror.com/eslint-visitor-keys/2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz} + name: eslint-visitor-keys + version: 2.1.0 + engines: {node: '>=10'} + dev: true + + registry.npmmirror.com/eslint-visitor-keys/3.3.0: + resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz} + name: eslint-visitor-keys + version: 3.3.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + registry.npmmirror.com/eslint/8.13.0: + resolution: {integrity: sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint/-/eslint-8.13.0.tgz} + name: eslint + version: 8.13.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint/eslintrc': registry.npmmirror.com/@eslint/eslintrc/1.2.1 + '@humanwhocodes/config-array': registry.npmmirror.com/@humanwhocodes/config-array/0.9.5 + ajv: registry.npmmirror.com/ajv/6.12.6 + chalk: registry.npmmirror.com/chalk/4.1.2 + cross-spawn: registry.npmmirror.com/cross-spawn/7.0.3 + debug: registry.npmmirror.com/debug/4.3.4 + doctrine: registry.npmmirror.com/doctrine/3.0.0 + escape-string-regexp: registry.npmmirror.com/escape-string-regexp/4.0.0 + eslint-scope: registry.npmmirror.com/eslint-scope/7.1.1 + eslint-utils: registry.npmmirror.com/eslint-utils/3.0.0_eslint@8.13.0 + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/3.3.0 + espree: registry.npmmirror.com/espree/9.3.1 + esquery: registry.npmmirror.com/esquery/1.4.0 + esutils: registry.npmmirror.com/esutils/2.0.3 + fast-deep-equal: registry.npmmirror.com/fast-deep-equal/3.1.3 + file-entry-cache: registry.npmmirror.com/file-entry-cache/6.0.1 + functional-red-black-tree: registry.npmmirror.com/functional-red-black-tree/1.0.1 + glob-parent: registry.npmmirror.com/glob-parent/6.0.2 + globals: registry.npmmirror.com/globals/13.13.0 + ignore: registry.npmmirror.com/ignore/5.2.0 + import-fresh: registry.npmmirror.com/import-fresh/3.3.0 + imurmurhash: registry.npmmirror.com/imurmurhash/0.1.4 + is-glob: registry.npmmirror.com/is-glob/4.0.3 + js-yaml: registry.npmmirror.com/js-yaml/4.1.0 + json-stable-stringify-without-jsonify: registry.npmmirror.com/json-stable-stringify-without-jsonify/1.0.1 + levn: registry.npmmirror.com/levn/0.4.1 + lodash.merge: registry.npmmirror.com/lodash.merge/4.6.2 + minimatch: registry.npmmirror.com/minimatch/3.1.2 + natural-compare: registry.npmmirror.com/natural-compare/1.4.0 + optionator: registry.npmmirror.com/optionator/0.9.1 + regexpp: registry.npmmirror.com/regexpp/3.2.0 + strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 + strip-json-comments: registry.npmmirror.com/strip-json-comments/3.1.1 + text-table: registry.npmmirror.com/text-table/0.2.0 + v8-compile-cache: registry.npmmirror.com/v8-compile-cache/2.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/espree/9.3.1: + resolution: {integrity: sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/espree/-/espree-9.3.1.tgz} + name: espree + version: 9.3.1 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: registry.npmmirror.com/acorn/8.7.0 + acorn-jsx: registry.npmmirror.com/acorn-jsx/5.3.2_acorn@8.7.0 + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/3.3.0 + dev: true + + registry.npmmirror.com/esquery/1.4.0: + resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esquery/-/esquery-1.4.0.tgz} + name: esquery + version: 1.4.0 + engines: {node: '>=0.10'} + dependencies: + estraverse: registry.npmmirror.com/estraverse/5.3.0 + dev: true + + registry.npmmirror.com/esrecurse/4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz} + name: esrecurse + version: 4.3.0 + engines: {node: '>=4.0'} + dependencies: + estraverse: registry.npmmirror.com/estraverse/5.3.0 + dev: true + + registry.npmmirror.com/estraverse/4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz} + name: estraverse + version: 4.3.0 + engines: {node: '>=4.0'} + dev: true + + registry.npmmirror.com/estraverse/5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz} + name: estraverse + version: 5.3.0 + engines: {node: '>=4.0'} + dev: true + registry.npmmirror.com/estree-walker/2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz} name: estree-walker version: 2.0.2 + registry.npmmirror.com/esutils/2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz} + name: esutils + version: 2.0.3 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/fast-deep-equal/3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz} + name: fast-deep-equal + version: 3.1.3 + dev: true + + registry.npmmirror.com/fast-glob/3.2.11: + resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.11.tgz} + name: fast-glob + version: 3.2.11 + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': registry.npmmirror.com/@nodelib/fs.stat/2.0.5 + '@nodelib/fs.walk': registry.npmmirror.com/@nodelib/fs.walk/1.2.8 + glob-parent: registry.npmmirror.com/glob-parent/5.1.2 + merge2: registry.npmmirror.com/merge2/1.4.1 + micromatch: registry.npmmirror.com/micromatch/4.0.5 + dev: true + + registry.npmmirror.com/fast-json-stable-stringify/2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz} + name: fast-json-stable-stringify + version: 2.1.0 + dev: true + + registry.npmmirror.com/fast-levenshtein/2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz} + name: fast-levenshtein + version: 2.0.6 + dev: true + + registry.npmmirror.com/fastq/1.13.0: + resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fastq/-/fastq-1.13.0.tgz} + name: fastq + version: 1.13.0 + dependencies: + reusify: registry.npmmirror.com/reusify/1.0.4 + dev: true + + registry.npmmirror.com/file-entry-cache/6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz} + name: file-entry-cache + version: 6.0.1 + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: registry.npmmirror.com/flat-cache/3.0.4 + dev: true + + registry.npmmirror.com/fill-range/7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz} + name: fill-range + version: 7.0.1 + engines: {node: '>=8'} + dependencies: + to-regex-range: registry.npmmirror.com/to-regex-range/5.0.1 + dev: true + + registry.npmmirror.com/flat-cache/3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/flat-cache/-/flat-cache-3.0.4.tgz} + name: flat-cache + version: 3.0.4 + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: registry.npmmirror.com/flatted/3.2.5 + rimraf: registry.npmmirror.com/rimraf/3.0.2 + dev: true + + registry.npmmirror.com/flatted/3.2.5: + resolution: {integrity: sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/flatted/-/flatted-3.2.5.tgz} + name: flatted + version: 3.2.5 + dev: true + + registry.npmmirror.com/fs.realpath/1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz} + name: fs.realpath + version: 1.0.0 + dev: true + registry.npmmirror.com/fsevents/2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz} name: fsevents @@ -647,6 +1302,12 @@ packages: version: 1.1.1 dev: true + registry.npmmirror.com/functional-red-black-tree/1.0.1: + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz} + name: functional-red-black-tree + version: 1.0.1 + dev: true + registry.npmmirror.com/get-intrinsic/1.1.1: resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz} name: get-intrinsic @@ -657,6 +1318,67 @@ packages: has-symbols: registry.npmmirror.com/has-symbols/1.0.3 dev: true + registry.npmmirror.com/glob-parent/5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz} + name: glob-parent + version: 5.1.2 + engines: {node: '>= 6'} + dependencies: + is-glob: registry.npmmirror.com/is-glob/4.0.3 + dev: true + + registry.npmmirror.com/glob-parent/6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz} + name: glob-parent + version: 6.0.2 + engines: {node: '>=10.13.0'} + dependencies: + is-glob: registry.npmmirror.com/is-glob/4.0.3 + dev: true + + registry.npmmirror.com/glob/7.2.0: + resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob/-/glob-7.2.0.tgz} + name: glob + version: 7.2.0 + dependencies: + fs.realpath: registry.npmmirror.com/fs.realpath/1.0.0 + inflight: registry.npmmirror.com/inflight/1.0.6 + inherits: registry.npmmirror.com/inherits/2.0.4 + minimatch: registry.npmmirror.com/minimatch/3.1.2 + once: registry.npmmirror.com/once/1.4.0 + path-is-absolute: registry.npmmirror.com/path-is-absolute/1.0.1 + dev: true + + registry.npmmirror.com/globals/13.13.0: + resolution: {integrity: sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globals/-/globals-13.13.0.tgz} + name: globals + version: 13.13.0 + engines: {node: '>=8'} + dependencies: + type-fest: registry.npmmirror.com/type-fest/0.20.2 + dev: true + + registry.npmmirror.com/globby/11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz} + name: globby + version: 11.1.0 + engines: {node: '>=10'} + dependencies: + array-union: registry.npmmirror.com/array-union/2.1.0 + dir-glob: registry.npmmirror.com/dir-glob/3.0.1 + fast-glob: registry.npmmirror.com/fast-glob/3.2.11 + ignore: registry.npmmirror.com/ignore/5.2.0 + merge2: registry.npmmirror.com/merge2/1.4.1 + slash: registry.npmmirror.com/slash/3.0.0 + dev: true + + registry.npmmirror.com/has-flag/4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz} + name: has-flag + version: 4.0.0 + engines: {node: '>=8'} + dev: true + registry.npmmirror.com/has-symbols/1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz} name: has-symbols @@ -693,6 +1415,45 @@ packages: entities: registry.npmmirror.com/entities/3.0.1 dev: true + registry.npmmirror.com/ignore/5.2.0: + resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ignore/-/ignore-5.2.0.tgz} + name: ignore + version: 5.2.0 + engines: {node: '>= 4'} + dev: true + + registry.npmmirror.com/import-fresh/3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz} + name: import-fresh + version: 3.3.0 + engines: {node: '>=6'} + dependencies: + parent-module: registry.npmmirror.com/parent-module/1.0.1 + resolve-from: registry.npmmirror.com/resolve-from/4.0.0 + dev: true + + registry.npmmirror.com/imurmurhash/0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz} + name: imurmurhash + version: 0.1.4 + engines: {node: '>=0.8.19'} + dev: true + + registry.npmmirror.com/inflight/1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz} + name: inflight + version: 1.0.6 + dependencies: + once: registry.npmmirror.com/once/1.4.0 + wrappy: registry.npmmirror.com/wrappy/1.0.2 + dev: true + + registry.npmmirror.com/inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz} + name: inherits + version: 2.0.4 + dev: true + registry.npmmirror.com/is-core-module/2.8.1: resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-core-module/-/is-core-module-2.8.1.tgz} name: is-core-module @@ -710,6 +1471,29 @@ packages: object-assign: registry.npmmirror.com/object-assign/4.1.1 dev: true + registry.npmmirror.com/is-extglob/2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz} + name: is-extglob + version: 2.1.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/is-glob/4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz} + name: is-glob + version: 4.0.3 + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: registry.npmmirror.com/is-extglob/2.1.1 + dev: true + + registry.npmmirror.com/is-number/7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz} + name: is-number + version: 7.0.0 + engines: {node: '>=0.12.0'} + dev: true + registry.npmmirror.com/is-promise/2.2.2: resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-promise/-/is-promise-2.2.2.tgz} name: is-promise @@ -726,12 +1510,39 @@ packages: has-tostringtag: registry.npmmirror.com/has-tostringtag/1.0.0 dev: true + registry.npmmirror.com/isexe/2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz} + name: isexe + version: 2.0.0 + dev: true + registry.npmmirror.com/js-stringify/1.0.2: resolution: {integrity: sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-stringify/-/js-stringify-1.0.2.tgz} name: js-stringify version: 1.0.2 dev: true + registry.npmmirror.com/js-yaml/4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz} + name: js-yaml + version: 4.1.0 + hasBin: true + dependencies: + argparse: registry.npmmirror.com/argparse/2.0.1 + dev: true + + registry.npmmirror.com/json-schema-traverse/0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz} + name: json-schema-traverse + version: 0.4.1 + dev: true + + registry.npmmirror.com/json-stable-stringify-without-jsonify/1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz} + name: json-stable-stringify-without-jsonify + version: 1.0.1 + dev: true + registry.npmmirror.com/jsonc-parser/2.3.1: resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-2.3.1.tgz} name: jsonc-parser @@ -753,6 +1564,28 @@ packages: promise: registry.npmmirror.com/promise/7.3.1 dev: true + registry.npmmirror.com/levn/0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz} + name: levn + version: 0.4.1 + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: registry.npmmirror.com/prelude-ls/1.2.1 + type-check: registry.npmmirror.com/type-check/0.4.0 + dev: true + + registry.npmmirror.com/lodash.merge/4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz} + name: lodash.merge + version: 4.6.2 + dev: true + + registry.npmmirror.com/lodash/4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz} + name: lodash + version: 4.17.21 + dev: true + registry.npmmirror.com/lru-cache/6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz} name: lru-cache @@ -770,6 +1603,37 @@ packages: sourcemap-codec: registry.npmmirror.com/sourcemap-codec/1.4.8 dev: false + registry.npmmirror.com/merge2/1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz} + name: merge2 + version: 1.4.1 + engines: {node: '>= 8'} + dev: true + + registry.npmmirror.com/micromatch/4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz} + name: micromatch + version: 4.0.5 + engines: {node: '>=8.6'} + dependencies: + braces: registry.npmmirror.com/braces/3.0.2 + picomatch: registry.npmmirror.com/picomatch/2.3.1 + dev: true + + registry.npmmirror.com/minimatch/3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz} + name: minimatch + version: 3.1.2 + dependencies: + brace-expansion: registry.npmmirror.com/brace-expansion/1.1.11 + dev: true + + registry.npmmirror.com/ms/2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz} + name: ms + version: 2.1.2 + dev: true + registry.npmmirror.com/nanoid/3.3.2: resolution: {integrity: sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-3.3.2.tgz} name: nanoid @@ -777,6 +1641,12 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + registry.npmmirror.com/natural-compare/1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz} + name: natural-compare + version: 1.4.0 + dev: true + registry.npmmirror.com/object-assign/4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz} name: object-assign @@ -784,17 +1654,76 @@ packages: engines: {node: '>=0.10.0'} dev: true + registry.npmmirror.com/once/1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/once/-/once-1.4.0.tgz} + name: once + version: 1.4.0 + dependencies: + wrappy: registry.npmmirror.com/wrappy/1.0.2 + dev: true + + registry.npmmirror.com/optionator/0.9.1: + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/optionator/-/optionator-0.9.1.tgz} + name: optionator + version: 0.9.1 + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: registry.npmmirror.com/deep-is/0.1.4 + fast-levenshtein: registry.npmmirror.com/fast-levenshtein/2.0.6 + levn: registry.npmmirror.com/levn/0.4.1 + prelude-ls: registry.npmmirror.com/prelude-ls/1.2.1 + type-check: registry.npmmirror.com/type-check/0.4.0 + word-wrap: registry.npmmirror.com/word-wrap/1.2.3 + dev: true + + registry.npmmirror.com/parent-module/1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz} + name: parent-module + version: 1.0.1 + engines: {node: '>=6'} + dependencies: + callsites: registry.npmmirror.com/callsites/3.1.0 + dev: true + + registry.npmmirror.com/path-is-absolute/1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz} + name: path-is-absolute + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/path-key/3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz} + name: path-key + version: 3.1.1 + engines: {node: '>=8'} + dev: true + registry.npmmirror.com/path-parse/1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz} name: path-parse version: 1.0.7 dev: true + registry.npmmirror.com/path-type/4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz} + name: path-type + version: 4.0.0 + engines: {node: '>=8'} + dev: true + registry.npmmirror.com/picocolors/1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz} name: picocolors version: 1.0.0 + registry.npmmirror.com/picomatch/2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz} + name: picomatch + version: 2.3.1 + engines: {node: '>=8.6'} + dev: true + registry.npmmirror.com/postcss/8.4.12: resolution: {integrity: sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss/-/postcss-8.4.12.tgz} name: postcss @@ -805,6 +1734,13 @@ packages: picocolors: registry.npmmirror.com/picocolors/1.0.0 source-map-js: registry.npmmirror.com/source-map-js/1.0.2 + registry.npmmirror.com/prelude-ls/1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz} + name: prelude-ls + version: 1.2.1 + engines: {node: '>= 0.8.0'} + dev: true + registry.npmmirror.com/promise/7.3.1: resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/promise/-/promise-7.3.1.tgz} name: promise @@ -928,12 +1864,39 @@ packages: pug-strip-comments: registry.npmmirror.com/pug-strip-comments/2.0.0 dev: true + registry.npmmirror.com/punycode/2.1.1: + resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/punycode/-/punycode-2.1.1.tgz} + name: punycode + version: 2.1.1 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/queue-microtask/1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz} + name: queue-microtask + version: 1.2.3 + dev: true + + registry.npmmirror.com/regexpp/3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz} + name: regexpp + version: 3.2.0 + engines: {node: '>=8'} + dev: true + registry.npmmirror.com/request-light/0.5.8: resolution: {integrity: sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/request-light/-/request-light-0.5.8.tgz} name: request-light version: 0.5.8 dev: true + registry.npmmirror.com/resolve-from/4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz} + name: resolve-from + version: 4.0.0 + engines: {node: '>=4'} + dev: true + registry.npmmirror.com/resolve/1.22.0: resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve/-/resolve-1.22.0.tgz} name: resolve @@ -945,6 +1908,22 @@ packages: supports-preserve-symlinks-flag: registry.npmmirror.com/supports-preserve-symlinks-flag/1.0.0 dev: true + registry.npmmirror.com/reusify/1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz} + name: reusify + version: 1.0.4 + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/rimraf/3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz} + name: rimraf + version: 3.0.2 + hasBin: true + dependencies: + glob: registry.npmmirror.com/glob/7.2.0 + dev: true + registry.npmmirror.com/rollup/2.70.2: resolution: {integrity: sha512-EitogNZnfku65I1DD5Mxe8JYRUCy0hkK5X84IlDtUs+O6JRMpRciXTzyCUuX11b5L5pvjH+OmFXiQ3XjabcXgg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup/-/rollup-2.70.2.tgz} name: rollup @@ -955,6 +1934,14 @@ packages: fsevents: registry.npmmirror.com/fsevents/2.3.2 dev: true + registry.npmmirror.com/run-parallel/1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz} + name: run-parallel + version: 1.2.0 + dependencies: + queue-microtask: registry.npmmirror.com/queue-microtask/1.2.3 + dev: true + registry.npmmirror.com/semver/7.3.7: resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz} name: semver @@ -965,6 +1952,29 @@ packages: lru-cache: registry.npmmirror.com/lru-cache/6.0.0 dev: true + registry.npmmirror.com/shebang-command/2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz} + name: shebang-command + version: 2.0.0 + engines: {node: '>=8'} + dependencies: + shebang-regex: registry.npmmirror.com/shebang-regex/3.0.0 + dev: true + + registry.npmmirror.com/shebang-regex/3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz} + name: shebang-regex + version: 3.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/slash/3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz} + name: slash + version: 3.0.0 + engines: {node: '>=8'} + dev: true + registry.npmmirror.com/source-map-js/1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz} name: source-map-js @@ -983,6 +1993,31 @@ packages: version: 1.4.8 dev: false + registry.npmmirror.com/strip-ansi/6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz} + name: strip-ansi + version: 6.0.1 + engines: {node: '>=8'} + dependencies: + ansi-regex: registry.npmmirror.com/ansi-regex/5.0.1 + dev: true + + registry.npmmirror.com/strip-json-comments/3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz} + name: strip-json-comments + version: 3.1.1 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/supports-color/7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz} + name: supports-color + version: 7.2.0 + engines: {node: '>=8'} + dependencies: + has-flag: registry.npmmirror.com/has-flag/4.0.0 + dev: true + registry.npmmirror.com/supports-preserve-symlinks-flag/1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz} name: supports-preserve-symlinks-flag @@ -990,6 +2025,12 @@ packages: engines: {node: '>= 0.4'} dev: true + registry.npmmirror.com/text-table/0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz} + name: text-table + version: 0.2.0 + dev: true + registry.npmmirror.com/to-fast-properties/2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz} name: to-fast-properties @@ -997,12 +2038,56 @@ packages: engines: {node: '>=4'} dev: true + registry.npmmirror.com/to-regex-range/5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz} + name: to-regex-range + version: 5.0.1 + engines: {node: '>=8.0'} + dependencies: + is-number: registry.npmmirror.com/is-number/7.0.0 + dev: true + registry.npmmirror.com/token-stream/1.0.0: resolution: {integrity: sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/token-stream/-/token-stream-1.0.0.tgz} name: token-stream version: 1.0.0 dev: true + registry.npmmirror.com/tslib/1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz} + name: tslib + version: 1.14.1 + dev: true + + registry.npmmirror.com/tsutils/3.21.0_typescript@4.6.3: + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tsutils/-/tsutils-3.21.0.tgz} + id: registry.npmmirror.com/tsutils/3.21.0 + name: tsutils + version: 3.21.0 + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: registry.npmmirror.com/tslib/1.14.1 + typescript: registry.npmmirror.com/typescript/4.6.3 + dev: true + + registry.npmmirror.com/type-check/0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz} + name: type-check + version: 0.4.0 + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: registry.npmmirror.com/prelude-ls/1.2.1 + dev: true + + registry.npmmirror.com/type-fest/0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz} + name: type-fest + version: 0.20.2 + engines: {node: '>=10'} + dev: true + registry.npmmirror.com/typescript/4.6.3: resolution: {integrity: sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typescript/-/typescript-4.6.3.tgz} name: typescript @@ -1018,6 +2103,35 @@ packages: engines: {node: '>=4'} dev: true + registry.npmmirror.com/uri-js/4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz} + name: uri-js + version: 4.4.1 + dependencies: + punycode: registry.npmmirror.com/punycode/2.1.1 + dev: true + + registry.npmmirror.com/v8-compile-cache/2.3.0: + resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz} + name: v8-compile-cache + version: 2.3.0 + dev: true + + registry.npmmirror.com/vite-plugin-eslint/1.4.0_eslint@8.13.0+vite@2.9.5: + resolution: {integrity: sha512-EeA09UuA2E66WbbcgOFkfvEZ/SJVrTxP+syRwrX+L+jeMMPpi1W1ZIR5mMtPr4I8evaD4WrszWkPZPOW8amFpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite-plugin-eslint/-/vite-plugin-eslint-1.4.0.tgz} + id: registry.npmmirror.com/vite-plugin-eslint/1.4.0 + name: vite-plugin-eslint + version: 1.4.0 + peerDependencies: + eslint: ^7.0.0 + vite: ^2.0.0 + dependencies: + '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils/4.2.1 + eslint: registry.npmmirror.com/eslint/8.13.0 + rollup: registry.npmmirror.com/rollup/2.70.2 + vite: registry.npmmirror.com/vite/2.9.5 + dev: true + registry.npmmirror.com/vite/2.9.5: resolution: {integrity: sha512-dvMN64X2YEQgSXF1lYabKXw3BbN6e+BL67+P3Vy4MacnY+UzT1AfkHiioFSi9+uiDUiaDy7Ax/LQqivk6orilg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/-/vite-2.9.5.tgz} name: vite @@ -1200,6 +2314,27 @@ packages: vscode-typescript-languageservice: registry.npmmirror.com/vscode-typescript-languageservice/0.29.8 dev: true + registry.npmmirror.com/vue-eslint-parser/8.3.0_eslint@8.13.0: + resolution: {integrity: sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz} + id: registry.npmmirror.com/vue-eslint-parser/8.3.0 + name: vue-eslint-parser + version: 8.3.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + debug: registry.npmmirror.com/debug/4.3.4 + eslint: registry.npmmirror.com/eslint/8.13.0 + eslint-scope: registry.npmmirror.com/eslint-scope/7.1.1 + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/3.3.0 + espree: registry.npmmirror.com/espree/9.3.1 + esquery: registry.npmmirror.com/esquery/1.4.0 + lodash: registry.npmmirror.com/lodash/4.17.21 + semver: registry.npmmirror.com/semver/7.3.7 + transitivePeerDependencies: + - supports-color + dev: true + registry.npmmirror.com/vue-tsc/0.29.8_typescript@4.6.3: resolution: {integrity: sha512-pT0wLRjvRuSmB+J4WJT6uuV9mO0KtSSXEAtaVXZQzyk5+DJdbLIQTbRce/TXSkfqt1l1WogO78RjtOJFiMCgfQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue-tsc/-/vue-tsc-0.29.8.tgz} id: registry.npmmirror.com/vue-tsc/0.29.8 @@ -1226,6 +2361,16 @@ packages: '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.33 dev: false + registry.npmmirror.com/which/2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which/-/which-2.0.2.tgz} + name: which + version: 2.0.2 + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: registry.npmmirror.com/isexe/2.0.0 + dev: true + registry.npmmirror.com/with/7.0.2: resolution: {integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/with/-/with-7.0.2.tgz} name: with @@ -1238,6 +2383,19 @@ packages: babel-walk: registry.npmmirror.com/babel-walk/3.0.0-canary-5 dev: true + registry.npmmirror.com/word-wrap/1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.3.tgz} + name: word-wrap + version: 1.2.3 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/wrappy/1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz} + name: wrappy + version: 1.0.2 + dev: true + registry.npmmirror.com/yallist/4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz} name: yallist diff --git a/diboot-admin-ui/vite.config.ts b/diboot-admin-ui/vite.config.ts index 315212d6..053c8ecf 100644 --- a/diboot-admin-ui/vite.config.ts +++ b/diboot-admin-ui/vite.config.ts @@ -1,7 +1,12 @@ -import { defineConfig } from 'vite' +import {defineConfig} from 'vite' import vue from '@vitejs/plugin-vue' +import eslintPlugin from "vite-plugin-eslint/dist"; // https://vitejs.dev/config/ export default defineConfig({ - plugins: [vue()] + plugins: [ + vue(), + // eslint 自动修复 + eslintPlugin({fix: true}), + ] }) -- Gitee From a47f6ee45d9dc6df465712b3fd0e00085e7d47fe Mon Sep 17 00:00:00 2001 From: Zjp <1215582715@qq.com> Date: Tue, 19 Apr 2022 13:57:17 +0800 Subject: [PATCH 013/195] =?UTF-8?q?=E4=BC=98=E5=8C=96BindingCacheManager.j?= =?UTF-8?q?ava=E7=BC=93=E5=AD=98=E7=AE=A1=E7=90=86,=E4=BF=9D=E8=AF=81?= =?UTF-8?q?=E5=8D=95=E4=BE=8B=E5=92=8C=E7=A1=AE=E4=BF=9D=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../binding/cache/BindingCacheManager.java | 185 +++++++++--------- 1 file changed, 90 insertions(+), 95 deletions(-) diff --git a/diboot-core/src/main/java/com/diboot/core/binding/cache/BindingCacheManager.java b/diboot-core/src/main/java/com/diboot/core/binding/cache/BindingCacheManager.java index 21d37b70..80663e4e 100644 --- a/diboot-core/src/main/java/com/diboot/core/binding/cache/BindingCacheManager.java +++ b/diboot-core/src/main/java/com/diboot/core/binding/cache/BindingCacheManager.java @@ -25,6 +25,7 @@ import com.diboot.core.util.BeanUtils; import com.diboot.core.util.ContextHelper; import com.diboot.core.util.S; import com.diboot.core.util.V; +import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.session.SqlSessionFactory; import org.springframework.context.annotation.Primary; @@ -41,12 +42,9 @@ import java.util.*; * @version v2.2.1 * @date 2021/04/17 */ +@SuppressWarnings({"JavaDoc","rawtypes", "unchecked"}) @Slf4j public class BindingCacheManager { - /** - * 实体相关定义缓存管理器 - */ - private static StaticMemoryCacheManager cacheManager; /** * 类-EntityInfo缓存key */ @@ -72,17 +70,87 @@ public class BindingCacheManager { */ private static final String CACHE_NAME_CLASS_NAME2FLDMAP = "CLASS_NAME2FLDMAP"; - private static StaticMemoryCacheManager getCacheManager(){ - if(cacheManager == null){ - cacheManager = new StaticMemoryCacheManager( - CACHE_NAME_CLASS_ENTITY, - CACHE_NAME_TABLE_ENTITY, - CACHE_NAME_CLASS_PROP, - CACHE_NAME_ENTITYNAME_CLASS, - CACHE_NAME_CLASS_FIELDS, - CACHE_NAME_CLASS_NAME2FLDMAP); + /** + * 保证单例,以及彻底加载完缓存数据后再返回 + */ + private static class Singleton { + /** + * 实体相关定义缓存管理器 + */ + static StaticMemoryCacheManager cacheManager = new StaticMemoryCacheManager( + CACHE_NAME_CLASS_ENTITY, + CACHE_NAME_TABLE_ENTITY, + CACHE_NAME_CLASS_PROP, + CACHE_NAME_ENTITYNAME_CLASS, + CACHE_NAME_CLASS_FIELDS, + CACHE_NAME_CLASS_NAME2FLDMAP + ); + + static { + // 初始化有service的entity缓存 + Map serviceMap = ContextHelper.getApplicationContext().getBeansOfType(IService.class); + Set uniqueEntitySet = new HashSet<>(); + if (V.notEmpty(serviceMap)) { + for (Map.Entry entry : serviceMap.entrySet()) { + Class entityClass = BeanUtils.getGenericityClass(entry.getValue(), 1); + if (entityClass != null) { + IService entityService = entry.getValue(); + if (uniqueEntitySet.contains(entityClass.getName())) { + if (entityService.getClass().getAnnotation(Primary.class) != null) { + EntityInfoCache entityInfoCache = cacheManager.getCacheObj(CACHE_NAME_CLASS_ENTITY, entityClass.getName(), EntityInfoCache.class); + if (entityInfoCache != null) { + entityInfoCache.setService(entry.getKey()); + } + } else { + log.warn("Entity: {} 存在多个service实现类,可能导致调用实例与预期不一致!", entityClass.getName()); + } + } else { + EntityInfoCache entityInfoCache = new EntityInfoCache(entityClass, entry.getKey()); + cacheManager.putCacheObj(CACHE_NAME_CLASS_ENTITY, entityClass.getName(), entityInfoCache); + cacheManager.putCacheObj(CACHE_NAME_TABLE_ENTITY, entityInfoCache.getTableName(), entityInfoCache); + cacheManager.putCacheObj(CACHE_NAME_ENTITYNAME_CLASS, entityClass.getSimpleName(), entityClass); + uniqueEntitySet.add(entityClass.getName()); + } + } + } + } else { + log.debug("未获取到任何有效@Service."); + } + // 初始化没有service的table-mapper缓存 + SqlSessionFactory sqlSessionFactory = ContextHelper.getBean(SqlSessionFactory.class); + Objects.requireNonNull(sqlSessionFactory, "sqlSessionFactory"); + Collection> mappers = sqlSessionFactory.getConfiguration().getMapperRegistry().getMappers(); + if (V.notEmpty(mappers)) { + for (Class mapperClass : mappers) { + Type[] types = mapperClass.getGenericInterfaces(); + try { + if (types.length > 0 && types[0] != null) { + ParameterizedType genericType = (ParameterizedType) types[0]; + Type[] superTypes = genericType.getActualTypeArguments(); + if (superTypes != null && superTypes.length > 0 && superTypes[0] != null) { + String entityClassName = superTypes[0].getTypeName(); + if (!uniqueEntitySet.contains(entityClassName) && entityClassName.length() > 1) { + Class entityClass = Class.forName(entityClassName); + EntityInfoCache entityInfoCache = new EntityInfoCache(entityClass, null); + entityInfoCache.setBaseMapper((Class) mapperClass); + cacheManager.putCacheObj(CACHE_NAME_CLASS_ENTITY, entityClass.getName(), entityInfoCache); + cacheManager.putCacheObj(CACHE_NAME_TABLE_ENTITY, entityInfoCache.getTableName(), entityInfoCache); + cacheManager.putCacheObj(CACHE_NAME_ENTITYNAME_CLASS, entityClass.getSimpleName(), entityClass); + uniqueEntitySet.add(entityClass.getName()); + } + } + } + } catch (Exception e) { + log.warn("解析mapper异常", e); + } + } + } } - return cacheManager; + } + + @SneakyThrows + private static StaticMemoryCacheManager getCacheManager() { + return Singleton.cacheManager; } /** @@ -91,7 +159,6 @@ public class BindingCacheManager { * @return */ public static EntityInfoCache getEntityInfoByTable(String tableName){ - initEntityInfoCache(); return getCacheManager().getCacheObj(CACHE_NAME_TABLE_ENTITY, tableName, EntityInfoCache.class); } @@ -101,7 +168,6 @@ public class BindingCacheManager { * @return */ public static EntityInfoCache getEntityInfoByClass(Class entityClazz){ - initEntityInfoCache(); return getCacheManager().getCacheObj(CACHE_NAME_CLASS_ENTITY, entityClazz.getName(), EntityInfoCache.class); } @@ -148,7 +214,6 @@ public class BindingCacheManager { * @return */ public static Class getEntityClassBySimpleName(String classSimpleName){ - initEntityInfoCache(); return getCacheManager().getCacheObj(CACHE_NAME_ENTITYNAME_CLASS, classSimpleName, Class.class); } @@ -222,78 +287,6 @@ public class BindingCacheManager { return fieldsMap; } - /** - * 初始化 - */ - private static void initEntityInfoCache(){ - StaticMemoryCacheManager cacheManager = getCacheManager(); - if(cacheManager.isUninitializedCache(CACHE_NAME_CLASS_ENTITY) == false){ - return; - } - // 初始化有service的entity缓存 - Map serviceMap = ContextHelper.getApplicationContext().getBeansOfType(IService.class); - Set uniqueEntitySet = new HashSet<>(); - if(V.notEmpty(serviceMap)){ - for(Map.Entry entry : serviceMap.entrySet()){ - Class entityClass = BeanUtils.getGenericityClass(entry.getValue(), 1); - if(entityClass != null){ - IService entityIService = entry.getValue(); - if(uniqueEntitySet.contains(entityClass.getName())){ - if(entityIService.getClass().getAnnotation(Primary.class) != null){ - EntityInfoCache entityInfoCache = cacheManager.getCacheObj(CACHE_NAME_CLASS_ENTITY, entityClass.getName(), EntityInfoCache.class); - if(entityInfoCache != null){ - entityInfoCache.setService(entry.getKey()); - } - } - else{ - log.warn("Entity: {} 存在多个service实现类,可能导致调用实例与预期不一致!", entityClass.getName()); - } - } - else{ - EntityInfoCache entityInfoCache = new EntityInfoCache(entityClass, entry.getKey()); - cacheManager.putCacheObj(CACHE_NAME_CLASS_ENTITY, entityClass.getName(), entityInfoCache); - cacheManager.putCacheObj(CACHE_NAME_TABLE_ENTITY, entityInfoCache.getTableName(), entityInfoCache); - cacheManager.putCacheObj(CACHE_NAME_ENTITYNAME_CLASS, entityClass.getSimpleName(), entityClass); - uniqueEntitySet.add(entityClass.getName()); - } - } - } - } - else{ - log.debug("未获取到任何有效@Service."); - } - // 初始化没有service的table-mapper缓存 - SqlSessionFactory sqlSessionFactory = ContextHelper.getBean(SqlSessionFactory.class); - Collection> mappers = sqlSessionFactory.getConfiguration().getMapperRegistry().getMappers(); - if(V.notEmpty(mappers)){ - for(Class mapperClass : mappers){ - Type[] types = mapperClass.getGenericInterfaces(); - try{ - if(types != null && types.length > 0 && types[0] != null){ - ParameterizedType genericType = (ParameterizedType) types[0]; - Type[] superTypes = genericType.getActualTypeArguments(); - if(superTypes != null && superTypes.length > 0 && superTypes[0] != null){ - String entityClassName = superTypes[0].getTypeName(); - if(!uniqueEntitySet.contains(entityClassName) && entityClassName.length() > 1){ - Class entityClass = Class.forName(entityClassName); - EntityInfoCache entityInfoCache = new EntityInfoCache(entityClass, null); - entityInfoCache.setBaseMapper((Class) mapperClass); - cacheManager.putCacheObj(CACHE_NAME_CLASS_ENTITY, entityClass.getName(), entityInfoCache); - cacheManager.putCacheObj(CACHE_NAME_TABLE_ENTITY, entityInfoCache.getTableName(), entityInfoCache); - cacheManager.putCacheObj(CACHE_NAME_ENTITYNAME_CLASS, entityClass.getSimpleName(), entityClass); - uniqueEntitySet.add(entityClass.getName()); - } - } - } - } - catch (Exception e){ - log.warn("解析mapper异常", e); - } - } - } - uniqueEntitySet = null; - } - /** * 初始化bean的属性缓存 * @param beanClazz @@ -329,14 +322,16 @@ public class BindingCacheManager { return; } Field[] fields = beanClazz.getDeclaredFields(); - if(V.notEmpty(fields)){ //被重写属性,以子类override的为准 - Arrays.stream(fields).forEach((field)->{ - if(!fieldNameSet.contains(field.getName()) && - (annotation == null || field.getAnnotation(annotation) != null)){ + if (V.notEmpty(fields)) { + for (Field field : fields) { + // 被重写属性,以子类的为准 + if (!fieldNameSet.add(field.getName())) { + continue; + } + if (annotation == null || field.getAnnotation(annotation) != null) { fieldList.add(field); - fieldNameSet.add(field.getName()); } - }); + } } loopFindFields(beanClazz.getSuperclass(), annotation, fieldList, fieldNameSet); } -- Gitee From 8cf1b83d3ae7abfc681ad9f89b0971a9c3bc655c Mon Sep 17 00:00:00 2001 From: wind <1103642893@qq.com> Date: Tue, 19 Apr 2022 14:30:17 +0800 Subject: [PATCH 014/195] + prettier --- diboot-admin-ui/.eslintrc.js | 64 ++++++++------- diboot-admin-ui/.prettierignore | 9 +++ diboot-admin-ui/.prettierrc | 20 +++++ diboot-admin-ui/package.json | 6 +- diboot-admin-ui/pnpm-lock.yaml | 80 ++++++++++++++++++- diboot-admin-ui/src/components/HelloWorld.vue | 4 +- 6 files changed, 150 insertions(+), 33 deletions(-) create mode 100644 diboot-admin-ui/.prettierignore create mode 100644 diboot-admin-ui/.prettierrc diff --git a/diboot-admin-ui/.eslintrc.js b/diboot-admin-ui/.eslintrc.js index febfb403..24a9c8b3 100644 --- a/diboot-admin-ui/.eslintrc.js +++ b/diboot-admin-ui/.eslintrc.js @@ -1,30 +1,38 @@ module.exports = { - env: { - browser: true, - es2021: true, - node: true - }, - parser: "vue-eslint-parser", - extends: [ - "eslint:recommended", - "plugin:vue/vue3-recommended", - "plugin:@typescript-eslint/recommended" - ], - parserOptions: { - ecmaVersion: "latest", - parser: "@typescript-eslint/parser", - sourceType: "module" - }, - plugins: [ - "vue", - "@typescript-eslint" - ], - globals: { - defineProps: 'readonly', - defineEmits: 'readonly', - defineExpose: 'readonly', - withDefaults: 'readonly', - }, - rules: { - } + env: { + browser: true, + es2021: true, + node: true + }, + parser: 'vue-eslint-parser', + extends: [ + 'eslint:recommended', + 'plugin:vue/vue3-recommended', + 'plugin:@typescript-eslint/recommended', + 'prettier', + 'plugin:prettier/recommended' + ], + parserOptions: { + ecmaVersion: 'latest', + parser: '@typescript-eslint/parser', + sourceType: 'module' + }, + plugins: ['vue', '@typescript-eslint', 'prettier'], + globals: { + defineProps: 'readonly', + defineEmits: 'readonly', + defineExpose: 'readonly', + withDefaults: 'readonly' + }, + rules: { + '@typescript-eslint/no-explicit-any': 0, + 'comma-dangle': ['warn', 'only-multiline'], + 'vue/html-self-closing': ['warn', { html: { void: 'always' } }], + 'no-undef': 'off', + 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', + 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off', + 'prettier/prettier': 'warn', + 'arrow-body-style': 'off', + 'prefer-arrow-callback': 'off' + } } diff --git a/diboot-admin-ui/.prettierignore b/diboot-admin-ui/.prettierignore new file mode 100644 index 00000000..d3e76973 --- /dev/null +++ b/diboot-admin-ui/.prettierignore @@ -0,0 +1,9 @@ +/node_modules/** +/public/* +/dist/* + +.local +.output.js + +**/*.svg +**/*.sh diff --git a/diboot-admin-ui/.prettierrc b/diboot-admin-ui/.prettierrc new file mode 100644 index 00000000..78f239ac --- /dev/null +++ b/diboot-admin-ui/.prettierrc @@ -0,0 +1,20 @@ +# 配置文档:https://prettier.io/docs/en/options.html + +# 声明结尾使用分号(默认true) +semi: false +# 每行代码长度(默认80) +printWidth: 120 +# 每个tab相当于多少个空格(默认2) +tabWidth: 2 +# 是否使用tab进行缩进(默认false) +useTabs: false +# 使用单引号(默认false) +singleQuote: true +# 对象字面量的大括号间使用空格(默认true) +bracketSpacing: true +# 包括单箭头函数参数周围的括号(默认always) +arrowParens: 'avoid' +# 尾部跟随逗号(默认 es5) +trailingComma: 'none' +# 自动换行(默认 preserve) +proseWrap: 'never' diff --git a/diboot-admin-ui/package.json b/diboot-admin-ui/package.json index 4ac6beaf..478ca7da 100644 --- a/diboot-admin-ui/package.json +++ b/diboot-admin-ui/package.json @@ -15,8 +15,12 @@ "@typescript-eslint/eslint-plugin": "^5.20.0", "@typescript-eslint/parser": "^5.20.0", "@vitejs/plugin-vue": "^2.3.1", - "eslint": "^8.13.0", + "@vue/eslint-config-prettier": "^7.0.0", + "eslint": "^8.12.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-prettier": "^4.0.0", "eslint-plugin-vue": "^8.6.0", + "prettier": "2.6.2", "typescript": "^4.5.4", "vite": "^2.9.2", "vite-plugin-eslint": "^1.4.0", diff --git a/diboot-admin-ui/pnpm-lock.yaml b/diboot-admin-ui/pnpm-lock.yaml index 0dba4f0e..4beaccec 100644 --- a/diboot-admin-ui/pnpm-lock.yaml +++ b/diboot-admin-ui/pnpm-lock.yaml @@ -4,8 +4,12 @@ specifiers: '@typescript-eslint/eslint-plugin': ^5.20.0 '@typescript-eslint/parser': ^5.20.0 '@vitejs/plugin-vue': ^2.3.1 - eslint: ^8.13.0 + '@vue/eslint-config-prettier': ^7.0.0 + eslint: ^8.12.0 + eslint-config-prettier: ^8.5.0 + eslint-plugin-prettier: ^4.0.0 eslint-plugin-vue: ^8.6.0 + prettier: 2.6.2 typescript: ^4.5.4 vite: ^2.9.2 vite-plugin-eslint: ^1.4.0 @@ -19,8 +23,12 @@ devDependencies: '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.20.0_b9ac9b5656ce5dffade639fcf5e491bf '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser/5.20.0_eslint@8.13.0+typescript@4.6.3 '@vitejs/plugin-vue': registry.npmmirror.com/@vitejs/plugin-vue/2.3.1_vite@2.9.5+vue@3.2.33 + '@vue/eslint-config-prettier': registry.npmmirror.com/@vue/eslint-config-prettier/7.0.0_eslint@8.13.0+prettier@2.6.2 eslint: registry.npmmirror.com/eslint/8.13.0 + eslint-config-prettier: registry.npmmirror.com/eslint-config-prettier/8.5.0_eslint@8.13.0 + eslint-plugin-prettier: registry.npmmirror.com/eslint-plugin-prettier/4.0.0_1815ac95b7fb26c13c7d48a8eef62d0f eslint-plugin-vue: registry.npmmirror.com/eslint-plugin-vue/8.6.0_eslint@8.13.0 + prettier: registry.npmmirror.com/prettier/2.6.2 typescript: registry.npmmirror.com/typescript/4.6.3 vite: registry.npmmirror.com/vite/2.9.5 vite-plugin-eslint: registry.npmmirror.com/vite-plugin-eslint/1.4.0_eslint@8.13.0+vite@2.9.5 @@ -434,6 +442,21 @@ packages: '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.33 dev: false + registry.npmmirror.com/@vue/eslint-config-prettier/7.0.0_eslint@8.13.0+prettier@2.6.2: + resolution: {integrity: sha512-/CTc6ML3Wta1tCe1gUeO0EYnVXfo3nJXsIhZ8WJr3sov+cGASr6yuiibJTL6lmIBm7GobopToOuB3B6AWyV0Iw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/eslint-config-prettier/-/eslint-config-prettier-7.0.0.tgz} + id: registry.npmmirror.com/@vue/eslint-config-prettier/7.0.0 + name: '@vue/eslint-config-prettier' + version: 7.0.0 + peerDependencies: + eslint: '>= 7.28.0' + prettier: '>= 2.0.0' + dependencies: + eslint: registry.npmmirror.com/eslint/8.13.0 + eslint-config-prettier: registry.npmmirror.com/eslint-config-prettier/8.5.0_eslint@8.13.0 + eslint-plugin-prettier: registry.npmmirror.com/eslint-plugin-prettier/4.0.0_1815ac95b7fb26c13c7d48a8eef62d0f + prettier: registry.npmmirror.com/prettier/2.6.2 + dev: true + registry.npmmirror.com/@vue/reactivity-transform/3.2.33: resolution: {integrity: sha512-4UL5KOIvSQb254aqenW4q34qMXbfZcmEsV/yVidLUgvwYQQ/D21bGX3DlgPUGI3c4C+iOnNmDCkIxkILoX/Pyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.33.tgz} name: '@vue/reactivity-transform' @@ -1041,6 +1064,38 @@ packages: engines: {node: '>=10'} dev: true + registry.npmmirror.com/eslint-config-prettier/8.5.0_eslint@8.13.0: + resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz} + id: registry.npmmirror.com/eslint-config-prettier/8.5.0 + name: eslint-config-prettier + version: 8.5.0 + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: registry.npmmirror.com/eslint/8.13.0 + dev: true + + registry.npmmirror.com/eslint-plugin-prettier/4.0.0_1815ac95b7fb26c13c7d48a8eef62d0f: + resolution: {integrity: sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz} + id: registry.npmmirror.com/eslint-plugin-prettier/4.0.0 + name: eslint-plugin-prettier + version: 4.0.0 + engines: {node: '>=6.0.0'} + peerDependencies: + eslint: '>=7.28.0' + eslint-config-prettier: '*' + prettier: '>=2.0.0' + peerDependenciesMeta: + eslint-config-prettier: + optional: true + dependencies: + eslint: registry.npmmirror.com/eslint/8.13.0 + eslint-config-prettier: registry.npmmirror.com/eslint-config-prettier/8.5.0_eslint@8.13.0 + prettier: registry.npmmirror.com/prettier/2.6.2 + prettier-linter-helpers: registry.npmmirror.com/prettier-linter-helpers/1.0.0 + dev: true + registry.npmmirror.com/eslint-plugin-vue/8.6.0_eslint@8.13.0: resolution: {integrity: sha512-abXiF2J18n/7ZPy9foSlJyouKf54IqpKlNvNmzhM93N0zs3QUxZG/oBd3tVPOJTKg7SlhBUtPxugpqzNbgGpQQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-8.6.0.tgz} id: registry.npmmirror.com/eslint-plugin-vue/8.6.0 @@ -1213,6 +1268,12 @@ packages: version: 3.1.3 dev: true + registry.npmmirror.com/fast-diff/1.2.0: + resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-diff/-/fast-diff-1.2.0.tgz} + name: fast-diff + version: 1.2.0 + dev: true + registry.npmmirror.com/fast-glob/3.2.11: resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.11.tgz} name: fast-glob @@ -1741,6 +1802,23 @@ packages: engines: {node: '>= 0.8.0'} dev: true + registry.npmmirror.com/prettier-linter-helpers/1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz} + name: prettier-linter-helpers + version: 1.0.0 + engines: {node: '>=6.0.0'} + dependencies: + fast-diff: registry.npmmirror.com/fast-diff/1.2.0 + dev: true + + registry.npmmirror.com/prettier/2.6.2: + resolution: {integrity: sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prettier/-/prettier-2.6.2.tgz} + name: prettier + version: 2.6.2 + engines: {node: '>=10.13.0'} + hasBin: true + dev: true + registry.npmmirror.com/promise/7.3.1: resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/promise/-/promise-7.3.1.tgz} name: promise diff --git a/diboot-admin-ui/src/components/HelloWorld.vue b/diboot-admin-ui/src/components/HelloWorld.vue index 38dae707..72bcbd10 100644 --- a/diboot-admin-ui/src/components/HelloWorld.vue +++ b/diboot-admin-ui/src/components/HelloWorld.vue @@ -19,9 +19,7 @@ const count = ref(0)

See README.md for more information.

- - Vite Docs - + Vite Docs | Vue 3 Docs

-- Gitee From b0bd53912729366246589f744993ad37f29132fa Mon Sep 17 00:00:00 2001 From: wind <1103642893@qq.com> Date: Tue, 19 Apr 2022 18:15:17 +0800 Subject: [PATCH 015/195] + element-plus --- diboot-admin-ui/.eslintrc.js | 6 - diboot-admin-ui/package.json | 4 + diboot-admin-ui/pnpm-lock.yaml | 414 +++++++++++++++++- diboot-admin-ui/src/App.vue | 2 +- diboot-admin-ui/src/components/HelloWorld.vue | 2 - diboot-admin-ui/tsconfig.json | 32 +- diboot-admin-ui/types/auto-imports.d.ts | 52 +++ diboot-admin-ui/types/components.d.ts | 13 + diboot-admin-ui/vite.config.ts | 42 +- 9 files changed, 543 insertions(+), 24 deletions(-) create mode 100644 diboot-admin-ui/types/auto-imports.d.ts create mode 100644 diboot-admin-ui/types/components.d.ts diff --git a/diboot-admin-ui/.eslintrc.js b/diboot-admin-ui/.eslintrc.js index 24a9c8b3..feed4427 100644 --- a/diboot-admin-ui/.eslintrc.js +++ b/diboot-admin-ui/.eslintrc.js @@ -18,12 +18,6 @@ module.exports = { sourceType: 'module' }, plugins: ['vue', '@typescript-eslint', 'prettier'], - globals: { - defineProps: 'readonly', - defineEmits: 'readonly', - defineExpose: 'readonly', - withDefaults: 'readonly' - }, rules: { '@typescript-eslint/no-explicit-any': 0, 'comma-dangle': ['warn', 'only-multiline'], diff --git a/diboot-admin-ui/package.json b/diboot-admin-ui/package.json index 478ca7da..f8a8970f 100644 --- a/diboot-admin-ui/package.json +++ b/diboot-admin-ui/package.json @@ -9,9 +9,11 @@ "lint": "eslint --ext ./src" }, "dependencies": { + "element-plus": "^2.1.10", "vue": "^3.2.25" }, "devDependencies": { + "@types/node": "^17.0.25", "@typescript-eslint/eslint-plugin": "^5.20.0", "@typescript-eslint/parser": "^5.20.0", "@vitejs/plugin-vue": "^2.3.1", @@ -22,6 +24,8 @@ "eslint-plugin-vue": "^8.6.0", "prettier": "2.6.2", "typescript": "^4.5.4", + "unplugin-auto-import": "^0.7.1", + "unplugin-vue-components": "^0.19.3", "vite": "^2.9.2", "vite-plugin-eslint": "^1.4.0", "vue-tsc": "^0.29.8" diff --git a/diboot-admin-ui/pnpm-lock.yaml b/diboot-admin-ui/pnpm-lock.yaml index 4beaccec..747da1f6 100644 --- a/diboot-admin-ui/pnpm-lock.yaml +++ b/diboot-admin-ui/pnpm-lock.yaml @@ -1,25 +1,31 @@ lockfileVersion: 5.3 specifiers: + '@types/node': ^17.0.25 '@typescript-eslint/eslint-plugin': ^5.20.0 '@typescript-eslint/parser': ^5.20.0 '@vitejs/plugin-vue': ^2.3.1 '@vue/eslint-config-prettier': ^7.0.0 + element-plus: ^2.1.10 eslint: ^8.12.0 eslint-config-prettier: ^8.5.0 eslint-plugin-prettier: ^4.0.0 eslint-plugin-vue: ^8.6.0 prettier: 2.6.2 typescript: ^4.5.4 + unplugin-auto-import: ^0.7.1 + unplugin-vue-components: ^0.19.3 vite: ^2.9.2 vite-plugin-eslint: ^1.4.0 vue: ^3.2.25 vue-tsc: ^0.29.8 dependencies: + element-plus: registry.npmmirror.com/element-plus/2.1.10_vue@3.2.33 vue: registry.npmmirror.com/vue/3.2.33 devDependencies: + '@types/node': registry.npmmirror.com/@types/node/17.0.25 '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.20.0_b9ac9b5656ce5dffade639fcf5e491bf '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser/5.20.0_eslint@8.13.0+typescript@4.6.3 '@vitejs/plugin-vue': registry.npmmirror.com/@vitejs/plugin-vue/2.3.1_vite@2.9.5+vue@3.2.33 @@ -30,12 +36,20 @@ devDependencies: eslint-plugin-vue: registry.npmmirror.com/eslint-plugin-vue/8.6.0_eslint@8.13.0 prettier: registry.npmmirror.com/prettier/2.6.2 typescript: registry.npmmirror.com/typescript/4.6.3 + unplugin-auto-import: registry.npmmirror.com/unplugin-auto-import/0.7.1_vite@2.9.5 + unplugin-vue-components: registry.npmmirror.com/unplugin-vue-components/0.19.3_vite@2.9.5+vue@3.2.33 vite: registry.npmmirror.com/vite/2.9.5 vite-plugin-eslint: registry.npmmirror.com/vite-plugin-eslint/1.4.0_eslint@8.13.0+vite@2.9.5 vue-tsc: registry.npmmirror.com/vue-tsc/0.29.8_typescript@4.6.3 packages: + registry.npmmirror.com/@antfu/utils/0.5.1: + resolution: {integrity: sha512-8Afo0+xvYe1K8Wm4xHTymfTkpzy36aaqDvhXIayUwl+mecMG9Xzl3XjXa6swG6Bk8FBeQ646RyvmsYt6+2Be9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antfu/utils/-/utils-0.5.1.tgz} + name: '@antfu/utils' + version: 0.5.1 + dev: true + registry.npmmirror.com/@babel/helper-validator-identifier/7.16.7: resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz} name: '@babel/helper-validator-identifier' @@ -60,6 +74,24 @@ packages: to-fast-properties: registry.npmmirror.com/to-fast-properties/2.0.0 dev: true + registry.npmmirror.com/@ctrl/tinycolor/3.4.1: + resolution: {integrity: sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz} + name: '@ctrl/tinycolor' + version: 3.4.1 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/@element-plus/icons-vue/1.1.4_vue@3.2.33: + resolution: {integrity: sha512-Iz/nHqdp1sFPmdzRwHkEQQA3lKvoObk8azgABZ81QUOpW9s/lUyQVUSh0tNtEPZXQlKwlSh7SPgoVxzrE0uuVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-1.1.4.tgz} + id: registry.npmmirror.com/@element-plus/icons-vue/1.1.4 + name: '@element-plus/icons-vue' + version: 1.1.4 + peerDependencies: + vue: ^3.2.0 + dependencies: + vue: registry.npmmirror.com/vue/3.2.33 + dev: false + registry.npmmirror.com/@emmetio/abbreviation/2.2.3: resolution: {integrity: sha512-87pltuCPt99aL+y9xS6GPZ+Wmmyhll2WXH73gG/xpGcQ84DRnptBsI2r0BeIQ0EB/SQTOe2ANPqFqj3Rj5FOGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emmetio/abbreviation/-/abbreviation-2.2.3.tgz} name: '@emmetio/abbreviation' @@ -101,6 +133,20 @@ packages: - supports-color dev: true + registry.npmmirror.com/@floating-ui/core/0.6.2: + resolution: {integrity: sha512-jktYRmZwmau63adUG3GKOAVCofBXkk55S/zQ94XOorAHhwqFIOFAy1rSp2N0Wp6/tGbe9V3u/ExlGZypyY17rg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/core/-/core-0.6.2.tgz} + name: '@floating-ui/core' + version: 0.6.2 + dev: false + + registry.npmmirror.com/@floating-ui/dom/0.4.5: + resolution: {integrity: sha512-b+prvQgJt8pieaKYMSJBXHxX/DYwdLsAWxKYqnO5dO2V4oo/TYBZJAUQCVNjTWWsrs6o4VDrNcP9+E70HAhJdw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/dom/-/dom-0.4.5.tgz} + name: '@floating-ui/dom' + version: 0.4.5 + dependencies: + '@floating-ui/core': registry.npmmirror.com/@floating-ui/core/0.6.2 + dev: false + registry.npmmirror.com/@humanwhocodes/config-array/0.9.5: resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz} name: '@humanwhocodes/config-array' @@ -147,6 +193,12 @@ packages: fastq: registry.npmmirror.com/fastq/1.13.0 dev: true + registry.npmmirror.com/@popperjs/core/2.11.5: + resolution: {integrity: sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@popperjs/core/-/core-2.11.5.tgz} + name: '@popperjs/core' + version: 2.11.5 + dev: false + registry.npmmirror.com/@rollup/pluginutils/4.2.1: resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz} name: '@rollup/pluginutils' @@ -163,6 +215,26 @@ packages: version: 7.0.11 dev: true + registry.npmmirror.com/@types/lodash-es/4.17.6: + resolution: {integrity: sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.6.tgz} + name: '@types/lodash-es' + version: 4.17.6 + dependencies: + '@types/lodash': registry.npmmirror.com/@types/lodash/4.14.182 + dev: false + + registry.npmmirror.com/@types/lodash/4.14.182: + resolution: {integrity: sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.182.tgz} + name: '@types/lodash' + version: 4.14.182 + dev: false + + registry.npmmirror.com/@types/node/17.0.25: + resolution: {integrity: sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/-/node-17.0.25.tgz} + name: '@types/node' + version: 17.0.25 + dev: true + registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.20.0_b9ac9b5656ce5dffade639fcf5e491bf: resolution: {integrity: sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.20.0.tgz} id: registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.20.0 @@ -513,6 +585,50 @@ packages: name: '@vue/shared' version: 3.2.33 + registry.npmmirror.com/@vueuse/core/8.2.6_vue@3.2.33: + resolution: {integrity: sha512-fzlpM3B5oVe+UhCT1mXlhG1Zxdq2lq1Z2AvddSB8+RxrsSFzII7DKfsQEz8Vop7Lzc++4m8drTNbhPovYoFqHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vueuse/core/-/core-8.2.6.tgz} + id: registry.npmmirror.com/@vueuse/core/8.2.6 + name: '@vueuse/core' + version: 8.2.6 + peerDependencies: + '@vue/composition-api': ^1.1.0 + vue: ^2.6.0 || ^3.2.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + vue: + optional: true + dependencies: + '@vueuse/metadata': registry.npmmirror.com/@vueuse/metadata/8.2.6 + '@vueuse/shared': registry.npmmirror.com/@vueuse/shared/8.2.6_vue@3.2.33 + vue: registry.npmmirror.com/vue/3.2.33 + vue-demi: registry.npmmirror.com/vue-demi/0.12.5_vue@3.2.33 + dev: false + + registry.npmmirror.com/@vueuse/metadata/8.2.6: + resolution: {integrity: sha512-OBKtafCt+4RcEJlYDCjp1vl65pBCL2g4TmipEtdZ8/qphKlW6nakJbkY7XRN5grPmjqU99/ahJGtyGk5NHS2hw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vueuse/metadata/-/metadata-8.2.6.tgz} + name: '@vueuse/metadata' + version: 8.2.6 + dev: false + + registry.npmmirror.com/@vueuse/shared/8.2.6_vue@3.2.33: + resolution: {integrity: sha512-J/W4CMfdL8TahELuSOgtfVO4eQXTjhigp7dVWIBsLUVFCeY9d49gvHUcQN3y5xYLZ6iNP57TjTQjMMT/zhklkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vueuse/shared/-/shared-8.2.6.tgz} + id: registry.npmmirror.com/@vueuse/shared/8.2.6 + name: '@vueuse/shared' + version: 8.2.6 + peerDependencies: + '@vue/composition-api': ^1.1.0 + vue: ^2.6.0 || ^3.2.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + vue: + optional: true + dependencies: + vue: registry.npmmirror.com/vue/3.2.33 + vue-demi: registry.npmmirror.com/vue-demi/0.12.5_vue@3.2.33 + dev: false + registry.npmmirror.com/acorn-jsx/5.3.2_acorn@8.7.0: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz} id: registry.npmmirror.com/acorn-jsx/5.3.2 @@ -567,6 +683,16 @@ packages: color-convert: registry.npmmirror.com/color-convert/2.0.1 dev: true + registry.npmmirror.com/anymatch/3.1.2: + resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/anymatch/-/anymatch-3.1.2.tgz} + name: anymatch + version: 3.1.2 + engines: {node: '>= 8'} + dependencies: + normalize-path: registry.npmmirror.com/normalize-path/3.0.0 + picomatch: registry.npmmirror.com/picomatch/2.3.1 + dev: true + registry.npmmirror.com/argparse/2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz} name: argparse @@ -592,6 +718,12 @@ packages: version: 1.2.1 dev: true + registry.npmmirror.com/async-validator/4.0.7: + resolution: {integrity: sha512-Pj2IR7u8hmUEDOwB++su6baaRi+QvsgajuFB9j95foM1N2gy5HM4z60hfusIO0fBPG5uLAEl6yCJr1jNSVugEQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/async-validator/-/async-validator-4.0.7.tgz} + name: async-validator + version: 4.0.7 + dev: false + registry.npmmirror.com/babel-walk/3.0.0-canary-5: resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-walk/-/babel-walk-3.0.0-canary-5.tgz} name: babel-walk @@ -607,6 +739,13 @@ packages: version: 1.0.2 dev: true + registry.npmmirror.com/binary-extensions/2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz} + name: binary-extensions + version: 2.2.0 + engines: {node: '>=8'} + dev: true + registry.npmmirror.com/brace-expansion/1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz} name: brace-expansion @@ -616,6 +755,14 @@ packages: concat-map: registry.npmmirror.com/concat-map/0.0.1 dev: true + registry.npmmirror.com/brace-expansion/2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz} + name: brace-expansion + version: 2.0.1 + dependencies: + balanced-match: registry.npmmirror.com/balanced-match/1.0.2 + dev: true + registry.npmmirror.com/braces/3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz} name: braces @@ -659,6 +806,23 @@ packages: is-regex: registry.npmmirror.com/is-regex/1.1.4 dev: true + registry.npmmirror.com/chokidar/3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz} + name: chokidar + version: 3.5.3 + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: registry.npmmirror.com/anymatch/3.1.2 + braces: registry.npmmirror.com/braces/3.0.2 + glob-parent: registry.npmmirror.com/glob-parent/5.1.2 + is-binary-path: registry.npmmirror.com/is-binary-path/2.1.0 + is-glob: registry.npmmirror.com/is-glob/4.0.3 + normalize-path: registry.npmmirror.com/normalize-path/3.0.0 + readdirp: registry.npmmirror.com/readdirp/3.6.0 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents/2.3.2 + dev: true + registry.npmmirror.com/color-convert/2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz} name: color-convert @@ -706,6 +870,12 @@ packages: version: 2.6.20 dev: false + registry.npmmirror.com/dayjs/1.11.1: + resolution: {integrity: sha512-ER7EjqVAMkRRsxNCC5YqJ9d9VQYuWdGt7aiH2qA5R5wt8ZmWaP2dLUSIK6y/kVzLMlmh1Tvu5xUf4M/wdGJ5KA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dayjs/-/dayjs-1.11.1.tgz} + name: dayjs + version: 1.11.1 + dev: false + registry.npmmirror.com/debug/4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz} name: debug @@ -785,6 +955,34 @@ packages: domhandler: registry.npmmirror.com/domhandler/4.3.1 dev: true + registry.npmmirror.com/element-plus/2.1.10_vue@3.2.33: + resolution: {integrity: sha512-sS9OMgP20dlYipmzHlEEgCJU+ID7+03YpRpoJWNQEH736C6ArmDMLnGFe8DUjPvwbUEXRA2d0Eo5d0apFgkSqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/element-plus/-/element-plus-2.1.10.tgz} + id: registry.npmmirror.com/element-plus/2.1.10 + name: element-plus + version: 2.1.10 + peerDependencies: + vue: ^3.2.0 + dependencies: + '@ctrl/tinycolor': registry.npmmirror.com/@ctrl/tinycolor/3.4.1 + '@element-plus/icons-vue': registry.npmmirror.com/@element-plus/icons-vue/1.1.4_vue@3.2.33 + '@floating-ui/dom': registry.npmmirror.com/@floating-ui/dom/0.4.5 + '@popperjs/core': registry.npmmirror.com/@popperjs/core/2.11.5 + '@types/lodash': registry.npmmirror.com/@types/lodash/4.14.182 + '@types/lodash-es': registry.npmmirror.com/@types/lodash-es/4.17.6 + '@vueuse/core': registry.npmmirror.com/@vueuse/core/8.2.6_vue@3.2.33 + async-validator: registry.npmmirror.com/async-validator/4.0.7 + dayjs: registry.npmmirror.com/dayjs/1.11.1 + escape-html: registry.npmmirror.com/escape-html/1.0.3 + lodash: registry.npmmirror.com/lodash/4.17.21 + lodash-es: registry.npmmirror.com/lodash-es/4.17.21 + lodash-unified: registry.npmmirror.com/lodash-unified/1.0.2_da03a4540fbd16bbaafbb96724306afd + memoize-one: registry.npmmirror.com/memoize-one/6.0.0 + normalize-wheel-es: registry.npmmirror.com/normalize-wheel-es/1.1.2 + vue: registry.npmmirror.com/vue/3.2.33 + transitivePeerDependencies: + - '@vue/composition-api' + dev: false + registry.npmmirror.com/emmet/2.3.6: resolution: {integrity: sha512-pLS4PBPDdxuUAmw7Me7+TcHbykTsBKN/S9XJbUOMFQrNv9MoshzyMFK/R57JBm94/6HSL4vHnDeEmxlC82NQ4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/emmet/-/emmet-2.3.6.tgz} name: emmet @@ -1057,6 +1255,12 @@ packages: esbuild-windows-arm64: registry.npmmirror.com/esbuild-windows-arm64/0.14.36 dev: true + registry.npmmirror.com/escape-html/1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz} + name: escape-html + version: 1.0.3 + dev: false + registry.npmmirror.com/escape-string-regexp/4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz} name: escape-string-regexp @@ -1515,6 +1719,15 @@ packages: version: 2.0.4 dev: true + registry.npmmirror.com/is-binary-path/2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz} + name: is-binary-path + version: 2.1.0 + engines: {node: '>=8'} + dependencies: + binary-extensions: registry.npmmirror.com/binary-extensions/2.2.0 + dev: true + registry.npmmirror.com/is-core-module/2.8.1: resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-core-module/-/is-core-module-2.8.1.tgz} name: is-core-module @@ -1635,6 +1848,34 @@ packages: type-check: registry.npmmirror.com/type-check/0.4.0 dev: true + registry.npmmirror.com/local-pkg/0.4.1: + resolution: {integrity: sha512-lL87ytIGP2FU5PWwNDo0w3WhIo2gopIAxPg9RxDYF7m4rr5ahuZxP22xnJHIvaLTe4Z9P6uKKY2UHiwyB4pcrw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.1.tgz} + name: local-pkg + version: 0.4.1 + engines: {node: '>=14'} + dev: true + + registry.npmmirror.com/lodash-es/4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz} + name: lodash-es + version: 4.17.21 + dev: false + + registry.npmmirror.com/lodash-unified/1.0.2_da03a4540fbd16bbaafbb96724306afd: + resolution: {integrity: sha512-OGbEy+1P+UT26CYi4opY4gebD8cWRDxAT6MAObIVQMiqYdxZr1g3QHWCToVsm31x2NkLS4K3+MC2qInaRMa39g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.2.tgz} + id: registry.npmmirror.com/lodash-unified/1.0.2 + name: lodash-unified + version: 1.0.2 + peerDependencies: + '@types/lodash-es': '*' + lodash: '*' + lodash-es: '*' + dependencies: + '@types/lodash-es': registry.npmmirror.com/@types/lodash-es/4.17.6 + lodash: registry.npmmirror.com/lodash/4.17.21 + lodash-es: registry.npmmirror.com/lodash-es/4.17.21 + dev: false + registry.npmmirror.com/lodash.merge/4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz} name: lodash.merge @@ -1645,7 +1886,6 @@ packages: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz} name: lodash version: 4.17.21 - dev: true registry.npmmirror.com/lru-cache/6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz} @@ -1664,6 +1904,21 @@ packages: sourcemap-codec: registry.npmmirror.com/sourcemap-codec/1.4.8 dev: false + registry.npmmirror.com/magic-string/0.26.1: + resolution: {integrity: sha512-ndThHmvgtieXe8J/VGPjG+Apu7v7ItcD5mhEIvOscWjPF/ccOiLxHaSuCAS2G+3x4GKsAbT8u7zdyamupui8Tg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/magic-string/-/magic-string-0.26.1.tgz} + name: magic-string + version: 0.26.1 + engines: {node: '>=12'} + dependencies: + sourcemap-codec: registry.npmmirror.com/sourcemap-codec/1.4.8 + dev: true + + registry.npmmirror.com/memoize-one/6.0.0: + resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz} + name: memoize-one + version: 6.0.0 + dev: false + registry.npmmirror.com/merge2/1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz} name: merge2 @@ -1689,16 +1944,25 @@ packages: brace-expansion: registry.npmmirror.com/brace-expansion/1.1.11 dev: true + registry.npmmirror.com/minimatch/5.0.1: + resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimatch/-/minimatch-5.0.1.tgz} + name: minimatch + version: 5.0.1 + engines: {node: '>=10'} + dependencies: + brace-expansion: registry.npmmirror.com/brace-expansion/2.0.1 + dev: true + registry.npmmirror.com/ms/2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz} name: ms version: 2.1.2 dev: true - registry.npmmirror.com/nanoid/3.3.2: - resolution: {integrity: sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-3.3.2.tgz} + registry.npmmirror.com/nanoid/3.3.3: + resolution: {integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-3.3.3.tgz} name: nanoid - version: 3.3.2 + version: 3.3.3 engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -1708,6 +1972,19 @@ packages: version: 1.4.0 dev: true + registry.npmmirror.com/normalize-path/3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz} + name: normalize-path + version: 3.0.0 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/normalize-wheel-es/1.1.2: + resolution: {integrity: sha512-scX83plWJXYH1J4+BhAuIHadROzxX0UBF3+HuZNY2Ks8BciE7tSTQ+5JhTsvzjaO0/EJdm4JBGrfObKxFf3Png==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.1.2.tgz} + name: normalize-wheel-es + version: 1.1.2 + dev: false + registry.npmmirror.com/object-assign/4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz} name: object-assign @@ -1791,7 +2068,7 @@ packages: version: 8.4.12 engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: registry.npmmirror.com/nanoid/3.3.2 + nanoid: registry.npmmirror.com/nanoid/3.3.3 picocolors: registry.npmmirror.com/picocolors/1.0.0 source-map-js: registry.npmmirror.com/source-map-js/1.0.2 @@ -1955,6 +2232,15 @@ packages: version: 1.2.3 dev: true + registry.npmmirror.com/readdirp/3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz} + name: readdirp + version: 3.6.0 + engines: {node: '>=8.10.0'} + dependencies: + picomatch: registry.npmmirror.com/picomatch/2.3.1 + dev: true + registry.npmmirror.com/regexpp/3.2.0: resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz} name: regexpp @@ -2069,7 +2355,6 @@ packages: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz} name: sourcemap-codec version: 1.4.8 - dev: false registry.npmmirror.com/strip-ansi/6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz} @@ -2174,6 +2459,92 @@ packages: hasBin: true dev: true + registry.npmmirror.com/unplugin-auto-import/0.7.1_vite@2.9.5: + resolution: {integrity: sha512-9865OV9eP99PNxHR2mtTDExeN01m4M9boT5U2BtIwsU1wDRsaFIYWLwcCBEjvXzXfTTC2NNMskhHGVAMfL2WgA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.7.1.tgz} + id: registry.npmmirror.com/unplugin-auto-import/0.7.1 + name: unplugin-auto-import + version: 0.7.1 + engines: {node: '>=14'} + peerDependencies: + '@vueuse/core': '*' + peerDependenciesMeta: + '@vueuse/core': + optional: true + dependencies: + '@antfu/utils': registry.npmmirror.com/@antfu/utils/0.5.1 + '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils/4.2.1 + local-pkg: registry.npmmirror.com/local-pkg/0.4.1 + magic-string: registry.npmmirror.com/magic-string/0.26.1 + resolve: registry.npmmirror.com/resolve/1.22.0 + unplugin: registry.npmmirror.com/unplugin/0.6.2_vite@2.9.5 + transitivePeerDependencies: + - esbuild + - rollup + - vite + - webpack + dev: true + + registry.npmmirror.com/unplugin-vue-components/0.19.3_vite@2.9.5+vue@3.2.33: + resolution: {integrity: sha512-z/kpYJnqrJuWglDNs7fy0YRHr41oLc07y2TkP3by6DqPb1GG9xGC9SFigeFwd4J7GVTqyFVsnjoeup7uK7I2dA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.19.3.tgz} + id: registry.npmmirror.com/unplugin-vue-components/0.19.3 + name: unplugin-vue-components + version: 0.19.3 + engines: {node: '>=14'} + peerDependencies: + '@babel/parser': ^7.15.8 + '@babel/traverse': ^7.15.4 + vue: 2 || 3 + peerDependenciesMeta: + '@babel/parser': + optional: true + '@babel/traverse': + optional: true + dependencies: + '@antfu/utils': registry.npmmirror.com/@antfu/utils/0.5.1 + '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils/4.2.1 + chokidar: registry.npmmirror.com/chokidar/3.5.3 + debug: registry.npmmirror.com/debug/4.3.4 + fast-glob: registry.npmmirror.com/fast-glob/3.2.11 + local-pkg: registry.npmmirror.com/local-pkg/0.4.1 + magic-string: registry.npmmirror.com/magic-string/0.26.1 + minimatch: registry.npmmirror.com/minimatch/5.0.1 + resolve: registry.npmmirror.com/resolve/1.22.0 + unplugin: registry.npmmirror.com/unplugin/0.6.2_vite@2.9.5 + vue: registry.npmmirror.com/vue/3.2.33 + transitivePeerDependencies: + - esbuild + - rollup + - supports-color + - vite + - webpack + dev: true + + registry.npmmirror.com/unplugin/0.6.2_vite@2.9.5: + resolution: {integrity: sha512-+QONc2uBFQbeo4x5mlJHjTKjR6pmuchMpGVrWhwdGFFMb4ttFZ4E9KqhOOrNcm3Q8NNyB1vJ4s5e36IZC7UWYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unplugin/-/unplugin-0.6.2.tgz} + id: registry.npmmirror.com/unplugin/0.6.2 + name: unplugin + version: 0.6.2 + peerDependencies: + esbuild: '>=0.13' + rollup: ^2.50.0 + vite: ^2.3.0 + webpack: 4 || 5 + peerDependenciesMeta: + esbuild: + optional: true + rollup: + optional: true + vite: + optional: true + webpack: + optional: true + dependencies: + chokidar: registry.npmmirror.com/chokidar/3.5.3 + vite: registry.npmmirror.com/vite/2.9.5 + webpack-sources: registry.npmmirror.com/webpack-sources/3.2.3 + webpack-virtual-modules: registry.npmmirror.com/webpack-virtual-modules/0.4.3 + dev: true + registry.npmmirror.com/upath/2.0.1: resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/upath/-/upath-2.0.1.tgz} name: upath @@ -2392,6 +2763,24 @@ packages: vscode-typescript-languageservice: registry.npmmirror.com/vscode-typescript-languageservice/0.29.8 dev: true + registry.npmmirror.com/vue-demi/0.12.5_vue@3.2.33: + resolution: {integrity: sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue-demi/-/vue-demi-0.12.5.tgz} + id: registry.npmmirror.com/vue-demi/0.12.5 + name: vue-demi + version: 0.12.5 + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: registry.npmmirror.com/vue/3.2.33 + dev: false + registry.npmmirror.com/vue-eslint-parser/8.3.0_eslint@8.13.0: resolution: {integrity: sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz} id: registry.npmmirror.com/vue-eslint-parser/8.3.0 @@ -2439,6 +2828,19 @@ packages: '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.33 dev: false + registry.npmmirror.com/webpack-sources/3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz} + name: webpack-sources + version: 3.2.3 + engines: {node: '>=10.13.0'} + dev: true + + registry.npmmirror.com/webpack-virtual-modules/0.4.3: + resolution: {integrity: sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.3.tgz} + name: webpack-virtual-modules + version: 0.4.3 + dev: true + registry.npmmirror.com/which/2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which/-/which-2.0.2.tgz} name: which diff --git a/diboot-admin-ui/src/App.vue b/diboot-admin-ui/src/App.vue index 1503baf9..118a2977 100644 --- a/diboot-admin-ui/src/App.vue +++ b/diboot-admin-ui/src/App.vue @@ -1,12 +1,12 @@ diff --git a/diboot-admin-ui/src/components/HelloWorld.vue b/diboot-admin-ui/src/components/HelloWorld.vue index d78234dc..be419899 100644 --- a/diboot-admin-ui/src/components/HelloWorld.vue +++ b/diboot-admin-ui/src/components/HelloWorld.vue @@ -1,5 +1,5 @@ diff --git a/diboot-admin-ui/src/env.d.ts b/diboot-admin-ui/src/env.d.ts index aafef950..355b4447 100644 --- a/diboot-admin-ui/src/env.d.ts +++ b/diboot-admin-ui/src/env.d.ts @@ -6,3 +6,9 @@ declare module '*.vue' { const component: DefineComponent<{}, {}, any> export default component } + +interface ImportMetaEnv { + readonly VITE_PORT: string + readonly VITE_OPEN: string + readonly VITE_APP_BASE_URL: string +} diff --git a/diboot-admin-ui/src/layout/index.vue b/diboot-admin-ui/src/layout/index.vue new file mode 100644 index 00000000..b2847381 --- /dev/null +++ b/diboot-admin-ui/src/layout/index.vue @@ -0,0 +1,12 @@ + + + + + diff --git a/diboot-admin-ui/src/main.ts b/diboot-admin-ui/src/main.ts index 01433bca..9f2b935b 100644 --- a/diboot-admin-ui/src/main.ts +++ b/diboot-admin-ui/src/main.ts @@ -1,4 +1,6 @@ -import { createApp } from 'vue' import App from './App.vue' +import router from './router' -createApp(App).mount('#app') +const app = createApp(App) +app.use(router) +app.mount('#app') diff --git a/diboot-admin-ui/src/router/index.ts b/diboot-admin-ui/src/router/index.ts new file mode 100644 index 00000000..52b2f883 --- /dev/null +++ b/diboot-admin-ui/src/router/index.ts @@ -0,0 +1,88 @@ +import { createRouter, createWebHashHistory, RouteRecordRaw, RouterView } from 'vue-router' +import Layout from '@/layout/index.vue' + +/** + * constantRoutes + * a base page that does not have permission requirements + * all roles can be accessed + */ +export const constantRoutes: RouteRecordRaw[] = [ + { + path: '/redirect', + name: 'Redirect', + component: Layout, + children: [ + { + path: ':path(.*)*', // '/redirect/:path(.*)*' + name: 'Redirect', + redirect: to => { + const path = to.params.path + return { path: `/${Array.isArray(path) ? path.join('/') : path}`, query: to.query, replace: true } + } + } + ] + }, + { + path: '/exception', + name: 'Exception', + component: RouterView, + meta: { title: 'Exception' }, + children: [ + { + path: '404', + name: '404', + component: () => import('@/views/exception/404.vue'), + meta: { title: '404' } + }, + { + path: '500', + name: '500', + component: () => import('@/views/exception/500.vue'), + meta: { title: '500' } + } + ] + }, + { + path: '/:path(.*)*', + name: 'ErrorPage', + redirect: to => { + return { name: '404', query: { path: to.path }, replace: true } + } + }, + { + path: '/login', + name: 'Login', + component: () => import('@/views/login/index.vue'), + meta: { hidden: true } + } +] + +/** + * 创建路由 + */ +const router = createRouter({ + history: createWebHashHistory(import.meta.env.BASE_URL), // hash 模式 + // history: createWebHistory(import.meta.env.BASE_URL), // HTML5 模式 + routes: constantRoutes +}) + +// home route +const homeRoute: RouteRecordRaw = { + path: '/', + name: 'Home', + component: Layout, + redirect: '/dashboard', + meta: { title: '首页' }, + children: [ + { + path: 'dashboard', + name: 'Dashboard', + component: () => import('@/views/dashboard/index.vue'), + meta: { title: '仪表盘', ignoreAuth: true } + } + ] +} + +router.addRoute(homeRoute) + +export default router diff --git a/diboot-admin-ui/src/router/typings.d.ts b/diboot-admin-ui/src/router/typings.d.ts new file mode 100644 index 00000000..7a21a9c8 --- /dev/null +++ b/diboot-admin-ui/src/router/typings.d.ts @@ -0,0 +1,16 @@ +import 'vue-router' + +declare module 'vue-router' { + interface RouteMeta { + title?: string + icon?: string + module?: string + ignoreAuth?: boolean + keepAlive?: boolean + hidden?: boolean + hollow?: boolean + hideFooter?: boolean + borderless?: boolean + hideBreadcrumb?: boolean + } +} diff --git a/diboot-admin-ui/src/views/dashboard/index.vue b/diboot-admin-ui/src/views/dashboard/index.vue new file mode 100644 index 00000000..69942308 --- /dev/null +++ b/diboot-admin-ui/src/views/dashboard/index.vue @@ -0,0 +1,11 @@ + + + + + diff --git a/diboot-admin-ui/src/views/exception/404.vue b/diboot-admin-ui/src/views/exception/404.vue new file mode 100644 index 00000000..272144b9 --- /dev/null +++ b/diboot-admin-ui/src/views/exception/404.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/diboot-admin-ui/src/views/exception/500.vue b/diboot-admin-ui/src/views/exception/500.vue new file mode 100644 index 00000000..f71d867d --- /dev/null +++ b/diboot-admin-ui/src/views/exception/500.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/diboot-admin-ui/src/views/login/index.vue b/diboot-admin-ui/src/views/login/index.vue new file mode 100644 index 00000000..e0b4eda6 --- /dev/null +++ b/diboot-admin-ui/src/views/login/index.vue @@ -0,0 +1,54 @@ + + + + + diff --git a/diboot-admin-ui/types/auto-imports.d.ts b/diboot-admin-ui/types/auto-imports.d.ts index 753c2752..85282753 100644 --- a/diboot-admin-ui/types/auto-imports.d.ts +++ b/diboot-admin-ui/types/auto-imports.d.ts @@ -45,6 +45,8 @@ declare global { const useAttrs: typeof import('vue')['useAttrs'] const useCssModule: typeof import('vue')['useCssModule'] const useCssVars: typeof import('vue')['useCssVars'] + const useRoute: typeof import('vue-router')['useRoute'] + const useRouter: typeof import('vue-router')['useRouter'] const useSlots: typeof import('vue')['useSlots'] const watch: typeof import('vue')['watch'] const watchEffect: typeof import('vue')['watchEffect'] diff --git a/diboot-admin-ui/types/components.d.ts b/diboot-admin-ui/types/components.d.ts index b3a49ff5..d4dbb5e1 100644 --- a/diboot-admin-ui/types/components.d.ts +++ b/diboot-admin-ui/types/components.d.ts @@ -6,7 +6,13 @@ import '@vue/runtime-core' declare module '@vue/runtime-core' { export interface GlobalComponents { ElButton: typeof import('element-plus/es')['ElButton'] + ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider'] + ElForm: typeof import('element-plus/es')['ElForm'] + ElFormItem: typeof import('element-plus/es')['ElFormItem'] + ElInput: typeof import('element-plus/es')['ElInput'] HelloWorld: typeof import('@/components/HelloWorld.vue')['default'] + RouterLink: typeof import('vue-router')['RouterLink'] + RouterView: typeof import('vue-router')['RouterView'] } } diff --git a/diboot-admin-ui/vite.config.ts b/diboot-admin-ui/vite.config.ts index 0ce544ae..adaed34a 100644 --- a/diboot-admin-ui/vite.config.ts +++ b/diboot-admin-ui/vite.config.ts @@ -16,7 +16,7 @@ export default defineConfig({ // 解析器 resolvers: [ElementPlusResolver()], // 自动导入Api - imports: ['vue'], + imports: ['vue', 'vue-router'], // 为true时在项目根目录自动创建 dts: 'types/auto-imports.d.ts' }), -- Gitee From efb8d31f20a6abd365e5c60c9e8af68a71298916 Mon Sep 17 00:00:00 2001 From: wind <1103642893@qq.com> Date: Wed, 20 Apr 2022 18:13:02 +0800 Subject: [PATCH 018/195] + pinia --- diboot-admin-ui/package.json | 1 + diboot-admin-ui/pnpm-lock.yaml | 23 +++++++++++++++++++++++ diboot-admin-ui/src/main.ts | 1 + diboot-admin-ui/types/auto-imports.d.ts | 12 ++++++++++++ diboot-admin-ui/vite.config.ts | 2 +- 5 files changed, 38 insertions(+), 1 deletion(-) diff --git a/diboot-admin-ui/package.json b/diboot-admin-ui/package.json index 96faec2c..bd854eed 100644 --- a/diboot-admin-ui/package.json +++ b/diboot-admin-ui/package.json @@ -10,6 +10,7 @@ }, "dependencies": { "element-plus": "^2.1.10", + "pinia": "^2.0.13", "vue": "^3.2.25", "vue-router": "^4.0.14" }, diff --git a/diboot-admin-ui/pnpm-lock.yaml b/diboot-admin-ui/pnpm-lock.yaml index fbc57efa..13682dae 100644 --- a/diboot-admin-ui/pnpm-lock.yaml +++ b/diboot-admin-ui/pnpm-lock.yaml @@ -11,6 +11,7 @@ specifiers: eslint-config-prettier: ^8.5.0 eslint-plugin-prettier: ^4.0.0 eslint-plugin-vue: ^8.6.0 + pinia: ^2.0.13 prettier: 2.6.2 typescript: ^4.5.4 unplugin-auto-import: ^0.7.1 @@ -23,6 +24,7 @@ specifiers: dependencies: element-plus: registry.npmmirror.com/element-plus/2.1.10_vue@3.2.33 + pinia: registry.npmmirror.com/pinia/2.0.13_typescript@4.6.3+vue@3.2.33 vue: registry.npmmirror.com/vue/3.2.33 vue-router: registry.npmmirror.com/vue-router/4.0.14_vue@3.2.33 @@ -2070,6 +2072,27 @@ packages: engines: {node: '>=8.6'} dev: true + registry.npmmirror.com/pinia/2.0.13_typescript@4.6.3+vue@3.2.33: + resolution: {integrity: sha512-B7rSqm1xNpwcPMnqns8/gVBfbbi7lWTByzS6aPZ4JOXSJD4Y531rZHDCoYWBwLyHY/8hWnXljgiXp6rRyrofcw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pinia/-/pinia-2.0.13.tgz} + id: registry.npmmirror.com/pinia/2.0.13 + name: pinia + version: 2.0.13 + peerDependencies: + '@vue/composition-api': ^1.4.0 + typescript: '>=4.4.4' + vue: ^2.6.14 || ^3.2.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + typescript: + optional: true + dependencies: + '@vue/devtools-api': registry.npmmirror.com/@vue/devtools-api/6.1.4 + typescript: registry.npmmirror.com/typescript/4.6.3 + vue: registry.npmmirror.com/vue/3.2.33 + vue-demi: registry.npmmirror.com/vue-demi/0.12.5_vue@3.2.33 + dev: false + registry.npmmirror.com/postcss/8.4.12: resolution: {integrity: sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss/-/postcss-8.4.12.tgz} name: postcss diff --git a/diboot-admin-ui/src/main.ts b/diboot-admin-ui/src/main.ts index 9f2b935b..97ab1ea8 100644 --- a/diboot-admin-ui/src/main.ts +++ b/diboot-admin-ui/src/main.ts @@ -3,4 +3,5 @@ import router from './router' const app = createApp(App) app.use(router) +app.use(createPinia()) app.mount('#app') diff --git a/diboot-admin-ui/types/auto-imports.d.ts b/diboot-admin-ui/types/auto-imports.d.ts index 85282753..05943a7d 100644 --- a/diboot-admin-ui/types/auto-imports.d.ts +++ b/diboot-admin-ui/types/auto-imports.d.ts @@ -1,19 +1,28 @@ // Generated by 'unplugin-auto-import' // We suggest you to commit this file into source control declare global { + const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate'] const computed: typeof import('vue')['computed'] const createApp: typeof import('vue')['createApp'] + const createPinia: typeof import('pinia')['createPinia'] const customRef: typeof import('vue')['customRef'] const defineAsyncComponent: typeof import('vue')['defineAsyncComponent'] const defineComponent: typeof import('vue')['defineComponent'] + const defineStore: typeof import('pinia')['defineStore'] const effectScope: typeof import('vue')['effectScope'] const EffectScope: typeof import('vue')['EffectScope'] + const getActivePinia: typeof import('pinia')['getActivePinia'] const getCurrentInstance: typeof import('vue')['getCurrentInstance'] const getCurrentScope: typeof import('vue')['getCurrentScope'] const h: typeof import('vue')['h'] const inject: typeof import('vue')['inject'] const isReadonly: typeof import('vue')['isReadonly'] const isRef: typeof import('vue')['isRef'] + const mapActions: typeof import('pinia')['mapActions'] + const mapGetters: typeof import('pinia')['mapGetters'] + const mapState: typeof import('pinia')['mapState'] + const mapStores: typeof import('pinia')['mapStores'] + const mapWritableState: typeof import('pinia')['mapWritableState'] const markRaw: typeof import('vue')['markRaw'] const nextTick: typeof import('vue')['nextTick'] const onActivated: typeof import('vue')['onActivated'] @@ -34,9 +43,12 @@ declare global { const readonly: typeof import('vue')['readonly'] const ref: typeof import('vue')['ref'] const resolveComponent: typeof import('vue')['resolveComponent'] + const setActivePinia: typeof import('pinia')['setActivePinia'] + const setMapStoreSuffix: typeof import('pinia')['setMapStoreSuffix'] const shallowReactive: typeof import('vue')['shallowReactive'] const shallowReadonly: typeof import('vue')['shallowReadonly'] const shallowRef: typeof import('vue')['shallowRef'] + const storeToRefs: typeof import('pinia')['storeToRefs'] const toRaw: typeof import('vue')['toRaw'] const toRef: typeof import('vue')['toRef'] const toRefs: typeof import('vue')['toRefs'] diff --git a/diboot-admin-ui/vite.config.ts b/diboot-admin-ui/vite.config.ts index adaed34a..1535fb41 100644 --- a/diboot-admin-ui/vite.config.ts +++ b/diboot-admin-ui/vite.config.ts @@ -16,7 +16,7 @@ export default defineConfig({ // 解析器 resolvers: [ElementPlusResolver()], // 自动导入Api - imports: ['vue', 'vue-router'], + imports: ['vue', 'vue-router', 'pinia'], // 为true时在项目根目录自动创建 dts: 'types/auto-imports.d.ts' }), -- Gitee From 11072adea044b7c8da1352d5375a0fbd6cd663b6 Mon Sep 17 00:00:00 2001 From: wind <1103642893@qq.com> Date: Wed, 20 Apr 2022 18:45:04 +0800 Subject: [PATCH 019/195] =?UTF-8?q?+=20add:=20axios=E3=80=81qs=E3=80=81lod?= =?UTF-8?q?ash?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- diboot-admin-ui/package.json | 5 + diboot-admin-ui/pnpm-lock.yaml | 69 +++++++- diboot-admin-ui/src/utils/auth.ts | 15 ++ diboot-admin-ui/src/utils/request.ts | 215 ++++++++++++++++++++++++ diboot-admin-ui/types/auto-imports.d.ts | 3 + diboot-admin-ui/vite.config.ts | 2 +- 6 files changed, 302 insertions(+), 7 deletions(-) create mode 100644 diboot-admin-ui/src/utils/auth.ts create mode 100644 diboot-admin-ui/src/utils/request.ts diff --git a/diboot-admin-ui/package.json b/diboot-admin-ui/package.json index bd854eed..d85da1d5 100644 --- a/diboot-admin-ui/package.json +++ b/diboot-admin-ui/package.json @@ -9,13 +9,18 @@ "lint": "eslint --ext .{js,jsx,ts,tsx,vue} ./src" }, "dependencies": { + "axios": "^0.26.1", "element-plus": "^2.1.10", + "lodash": "^4.17.21", "pinia": "^2.0.13", + "qs": "^6.10.3", "vue": "^3.2.25", "vue-router": "^4.0.14" }, "devDependencies": { + "@types/lodash": "^4.14.182", "@types/node": "^17.0.25", + "@types/qs": "^6.9.7", "@typescript-eslint/eslint-plugin": "^5.20.0", "@typescript-eslint/parser": "^5.20.0", "@vitejs/plugin-vue": "^2.3.1", diff --git a/diboot-admin-ui/pnpm-lock.yaml b/diboot-admin-ui/pnpm-lock.yaml index 13682dae..751254cf 100644 --- a/diboot-admin-ui/pnpm-lock.yaml +++ b/diboot-admin-ui/pnpm-lock.yaml @@ -1,18 +1,23 @@ lockfileVersion: 5.3 specifiers: + '@types/lodash': ^4.14.182 '@types/node': ^17.0.25 + '@types/qs': ^6.9.7 '@typescript-eslint/eslint-plugin': ^5.20.0 '@typescript-eslint/parser': ^5.20.0 '@vitejs/plugin-vue': ^2.3.1 '@vue/eslint-config-prettier': ^7.0.0 + axios: ^0.26.1 element-plus: ^2.1.10 eslint: ^8.12.0 eslint-config-prettier: ^8.5.0 eslint-plugin-prettier: ^4.0.0 eslint-plugin-vue: ^8.6.0 + lodash: ^4.17.21 pinia: ^2.0.13 prettier: 2.6.2 + qs: ^6.10.3 typescript: ^4.5.4 unplugin-auto-import: ^0.7.1 unplugin-vue-components: ^0.19.3 @@ -23,13 +28,18 @@ specifiers: vue-tsc: ^0.29.8 dependencies: + axios: registry.npmmirror.com/axios/0.26.1 element-plus: registry.npmmirror.com/element-plus/2.1.10_vue@3.2.33 + lodash: registry.npmmirror.com/lodash/4.17.21 pinia: registry.npmmirror.com/pinia/2.0.13_typescript@4.6.3+vue@3.2.33 + qs: registry.npmmirror.com/qs/6.10.3 vue: registry.npmmirror.com/vue/3.2.33 vue-router: registry.npmmirror.com/vue-router/4.0.14_vue@3.2.33 devDependencies: + '@types/lodash': registry.npmmirror.com/@types/lodash/4.14.182 '@types/node': registry.npmmirror.com/@types/node/17.0.25 + '@types/qs': registry.npmmirror.com/@types/qs/6.9.7 '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.20.0_b9ac9b5656ce5dffade639fcf5e491bf '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser/5.20.0_eslint@8.13.0+typescript@4.6.3 '@vitejs/plugin-vue': registry.npmmirror.com/@vitejs/plugin-vue/2.3.1_vite@2.9.5+vue@3.2.33 @@ -231,7 +241,6 @@ packages: resolution: {integrity: sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.182.tgz} name: '@types/lodash' version: 4.14.182 - dev: false registry.npmmirror.com/@types/node/17.0.25: resolution: {integrity: sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/-/node-17.0.25.tgz} @@ -239,6 +248,12 @@ packages: version: 17.0.25 dev: true + registry.npmmirror.com/@types/qs/6.9.7: + resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/qs/-/qs-6.9.7.tgz} + name: '@types/qs' + version: 6.9.7 + dev: true + registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.20.0_b9ac9b5656ce5dffade639fcf5e491bf: resolution: {integrity: sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.20.0.tgz} id: registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.20.0 @@ -734,6 +749,16 @@ packages: version: 4.0.7 dev: false + registry.npmmirror.com/axios/0.26.1: + resolution: {integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/axios/-/axios-0.26.1.tgz} + name: axios + version: 0.26.1 + dependencies: + follow-redirects: registry.npmmirror.com/follow-redirects/1.14.9 + transitivePeerDependencies: + - debug + dev: false + registry.npmmirror.com/babel-walk/3.0.0-canary-5: resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-walk/-/babel-walk-3.0.0-canary-5.tgz} name: babel-walk @@ -789,7 +814,6 @@ packages: dependencies: function-bind: registry.npmmirror.com/function-bind/1.1.1 get-intrinsic: registry.npmmirror.com/get-intrinsic/1.1.1 - dev: true registry.npmmirror.com/callsites/3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz} @@ -1555,6 +1579,18 @@ packages: version: 3.2.5 dev: true + registry.npmmirror.com/follow-redirects/1.14.9: + resolution: {integrity: sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.14.9.tgz} + name: follow-redirects + version: 1.14.9 + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false + registry.npmmirror.com/fs.realpath/1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz} name: fs.realpath @@ -1575,7 +1611,6 @@ packages: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz} name: function-bind version: 1.1.1 - dev: true registry.npmmirror.com/functional-red-black-tree/1.0.1: resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz} @@ -1591,7 +1626,6 @@ packages: function-bind: registry.npmmirror.com/function-bind/1.1.1 has: registry.npmmirror.com/has/1.0.3 has-symbols: registry.npmmirror.com/has-symbols/1.0.3 - dev: true registry.npmmirror.com/glob-parent/5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz} @@ -1659,7 +1693,6 @@ packages: name: has-symbols version: 1.0.3 engines: {node: '>= 0.4'} - dev: true registry.npmmirror.com/has-tostringtag/1.0.0: resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz} @@ -1677,7 +1710,6 @@ packages: engines: {node: '>= 0.4.0'} dependencies: function-bind: registry.npmmirror.com/function-bind/1.1.1 - dev: true registry.npmmirror.com/htmlparser2/7.2.0: resolution: {integrity: sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/htmlparser2/-/htmlparser2-7.2.0.tgz} @@ -2002,6 +2034,12 @@ packages: engines: {node: '>=0.10.0'} dev: true + registry.npmmirror.com/object-inspect/1.12.0: + resolution: {integrity: sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.0.tgz} + name: object-inspect + version: 1.12.0 + dev: false + registry.npmmirror.com/once/1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/once/-/once-1.4.0.tgz} name: once @@ -2257,6 +2295,15 @@ packages: engines: {node: '>=6'} dev: true + registry.npmmirror.com/qs/6.10.3: + resolution: {integrity: sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/qs/-/qs-6.10.3.tgz} + name: qs + version: 6.10.3 + engines: {node: '>=0.6'} + dependencies: + side-channel: registry.npmmirror.com/side-channel/1.0.4 + dev: false + registry.npmmirror.com/queue-microtask/1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz} name: queue-microtask @@ -2363,6 +2410,16 @@ packages: engines: {node: '>=8'} dev: true + registry.npmmirror.com/side-channel/1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz} + name: side-channel + version: 1.0.4 + dependencies: + call-bind: registry.npmmirror.com/call-bind/1.0.2 + get-intrinsic: registry.npmmirror.com/get-intrinsic/1.1.1 + object-inspect: registry.npmmirror.com/object-inspect/1.12.0 + dev: false + registry.npmmirror.com/slash/3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz} name: slash diff --git a/diboot-admin-ui/src/utils/auth.ts b/diboot-admin-ui/src/utils/auth.ts new file mode 100644 index 00000000..baf1bdd2 --- /dev/null +++ b/diboot-admin-ui/src/utils/auth.ts @@ -0,0 +1,15 @@ +const TOKEN_KEY = 'token' + +export const AUTH_HEADER_KEY = 'Authorization' + +export default { + getToken(): string | null { + return sessionStorage.getItem(TOKEN_KEY) + }, + setToken(token: string) { + sessionStorage.setItem(TOKEN_KEY, token) + }, + cleanToken() { + sessionStorage.removeItem(TOKEN_KEY) + } +} diff --git a/diboot-admin-ui/src/utils/request.ts b/diboot-admin-ui/src/utils/request.ts new file mode 100644 index 00000000..afd9289a --- /dev/null +++ b/diboot-admin-ui/src/utils/request.ts @@ -0,0 +1,215 @@ +import axios, { AxiosRequestHeaders, AxiosResponse } from 'axios' +import auth, { AUTH_HEADER_KEY } from './auth' +import router from '@/router' +import qs from 'qs' + +// baseURL +const BASE_URL = import.meta.env.VITE_APP_BASE_URL +// 创建 axios 实例 +const service = axios.create({ + // API 请求的默认前缀 + baseURL: BASE_URL, + timeout: 30_000 // 请求超时时间 +}) + +// 添加请求拦截器 +service.interceptors.request.use(config => { + // 让每个请求携带自定义 token 请根据实际情况自行修改 + if (auth.getToken()) (config.headers as AxiosRequestHeaders)[AUTH_HEADER_KEY] = 'Bearer ' + auth.getToken() + + // 只针对get方式进行序列化 + if (config.method === 'get') config.paramsSerializer = params => qs.stringify(params, { arrayFormat: 'repeat' }) + + return config +}) + +// 添加响应拦截器 +service.interceptors.response.use( + response => { + // 检查是否携带有新的token + const newToken = response.headers[AUTH_HEADER_KEY] + if (newToken) auth.setToken(newToken) + + // 如果请求成功,则重置心跳定时器 + if (response.status === 200) resetPingTimer() + + // 如果返回的自定义状态码为 4001, 则token过期,需要清理掉token并跳转至登录页面重新登录 + if (response.data && response.data.code === 4001) { + auth.cleanToken() + router.push({ name: 'Login' }).finally() + throw new Error('登录过期,请重新登录') + } + + return response + }, + error => { + let message + if (error && error.response && error.response.status) { + switch (error.response.status) { + case 500: + message = '服务器好像开小差了,重试下吧!' + break + case 400: + message = '提交数据出错' + break + case 401: + message = '没有权限' + break + case 403: + message = '无权访问' + break + case 404: + message = '请求资源不存在' + break + default: + message = '网络可能出现问题' + } + console.log(message) + } + return Promise.reject(error) + } +) + +// token 自动刷新(发送心跳)的时间间隔(分钟) +const TOKEN_REFRESH_EXPIRE = 10 +// 心跳计时器 +let pingTimer: NodeJS.Timeout +resetPingTimer() + +/** + * 重置心跳定时器 + */ +function resetPingTimer() { + clearTimeout(pingTimer) + pingTimer = setTimeout(() => { + service.get('/ping').then() + resetPingTimer() + }, TOKEN_REFRESH_EXPIRE * 60 * 1000) +} + +interface ApiData { + ok: boolean + code: number + msg: string + data?: T + page?: Pagination +} + +interface Pagination { + pageIndex: number + pageSize: number + totalCount: number +} + +/** + * 请求拆包 + * @param request 请求 + */ +function unpack(request: Promise>>): Promise> { + return new Promise((resolve, reject) => { + request + .then(res => { + // 操作成功时(code = 0)【其他情况自行调整】 + if (res.data.code === 0) { + resolve(res.data) + } else { + reject(res.data) + } + }) + .catch(err => { + reject(err) + }) + }) +} + +const api = { + get(url: string, params: any) { + return unpack(service.get, AxiosResponse>, any>(url, { params })) + }, + post(url: string, data: any) { + return unpack( + service.post, AxiosResponse>, any>(url, JSON.stringify(data), { + headers: { + 'Content-Type': 'application/json;charset=UTF-8' + } + }) + ) + }, + put(url: string, data: any) { + return unpack( + service.put, AxiosResponse>, any>(url, JSON.stringify(data), { + headers: { + 'Content-Type': 'application/json;charset=UTF-8' + } + }) + ) + }, + patch(url: string, data: any) { + return unpack( + service.patch, AxiosResponse>, any>(url, JSON.stringify(data), { + headers: { + 'Content-Type': 'application/json;charset=UTF-8' + } + }) + ) + }, + delete(url: string, params: any) { + return unpack( + service.delete, AxiosResponse>, any>(url, { + params, + headers: { + 'X-Requested-With': 'XMLHttpRequest', + 'Content-Type': 'application/json;charset=UTF-8' + }, + withCredentials: true + }) + ) + }, + /** + * 上传文件接口 + * + * @param url + * @param formData + */ + upload(url: string, formData: FormData) { + return unpack(service.post, AxiosResponse>, any>(url, formData)) + }, + /** + * GET下载文件 + * + * @param url + * @param params + */ + download(url: string, params: any) { + return unpack( + service.get, AxiosResponse>, any>(url, { + responseType: 'arraybuffer', + params, + headers: { + 'X-Requested-With': 'XMLHttpRequest', + 'Content-Type': 'application/json;charset=UTF-8' + }, + withCredentials: true + }) + ) + }, + /** + * POST下载文件(常用于提交json数据下载文件) + * @param url + * @param data + */ + postDownload(url: string, data: any) { + return unpack( + service.post, AxiosResponse>, any>(url, JSON.stringify(data), { + responseType: 'arraybuffer', + headers: { + 'X-Requested-With': 'XMLHttpRequest', + 'Content-Type': 'application/json;charset=UTF-8' + }, + withCredentials: true + }) + ) + } +} + +export { BASE_URL as baseURL, service as axios, api } diff --git a/diboot-admin-ui/types/auto-imports.d.ts b/diboot-admin-ui/types/auto-imports.d.ts index 05943a7d..12dc046e 100644 --- a/diboot-admin-ui/types/auto-imports.d.ts +++ b/diboot-admin-ui/types/auto-imports.d.ts @@ -1,7 +1,10 @@ // Generated by 'unplugin-auto-import' // We suggest you to commit this file into source control declare global { + const _: typeof import('lodash') const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate'] + const api: typeof import('@/utils/request')['api'] + const baseURL: typeof import('@/utils/request')['baseURL'] const computed: typeof import('vue')['computed'] const createApp: typeof import('vue')['createApp'] const createPinia: typeof import('pinia')['createPinia'] diff --git a/diboot-admin-ui/vite.config.ts b/diboot-admin-ui/vite.config.ts index 1535fb41..fb89f3a0 100644 --- a/diboot-admin-ui/vite.config.ts +++ b/diboot-admin-ui/vite.config.ts @@ -16,7 +16,7 @@ export default defineConfig({ // 解析器 resolvers: [ElementPlusResolver()], // 自动导入Api - imports: ['vue', 'vue-router', 'pinia'], + imports: ['vue', 'vue-router', 'pinia', { lodash: [['*', '_']] }, { '@/utils/request': ['api', 'baseURL'] }], // 为true时在项目根目录自动创建 dts: 'types/auto-imports.d.ts' }), -- Gitee From ef1bc99e3f232da2b38a366784882cbe344421b9 Mon Sep 17 00:00:00 2001 From: wind <1103642893@qq.com> Date: Thu, 21 Apr 2022 17:39:55 +0800 Subject: [PATCH 020/195] + mockjs and vite-plugin-mock --- diboot-admin-ui/.env.development | 2 + diboot-admin-ui/.env.production | 2 + diboot-admin-ui/mock/_prodServer.ts | 18 ++ diboot-admin-ui/mock/_util.ts | 119 ++++++++++++ diboot-admin-ui/mock/auth/index.ts | 60 ++++++ diboot-admin-ui/package.json | 2 + diboot-admin-ui/pnpm-lock.yaml | 227 +++++++++++++++++++++- diboot-admin-ui/src/main.ts | 2 + diboot-admin-ui/src/store/user.ts | 54 +++++ diboot-admin-ui/src/utils/request.ts | 16 +- diboot-admin-ui/src/views/login/index.vue | 12 +- diboot-admin-ui/tsconfig.json | 1 + diboot-admin-ui/vite.config.ts | 79 +++++--- 13 files changed, 549 insertions(+), 45 deletions(-) create mode 100644 diboot-admin-ui/.env.development create mode 100644 diboot-admin-ui/.env.production create mode 100644 diboot-admin-ui/mock/_prodServer.ts create mode 100644 diboot-admin-ui/mock/_util.ts create mode 100644 diboot-admin-ui/mock/auth/index.ts create mode 100644 diboot-admin-ui/src/store/user.ts diff --git a/diboot-admin-ui/.env.development b/diboot-admin-ui/.env.development new file mode 100644 index 00000000..a435ff63 --- /dev/null +++ b/diboot-admin-ui/.env.development @@ -0,0 +1,2 @@ +# BASE_URL +VITE_APP_BASE_URL=/api diff --git a/diboot-admin-ui/.env.production b/diboot-admin-ui/.env.production new file mode 100644 index 00000000..a435ff63 --- /dev/null +++ b/diboot-admin-ui/.env.production @@ -0,0 +1,2 @@ +# BASE_URL +VITE_APP_BASE_URL=/api diff --git a/diboot-admin-ui/mock/_prodServer.ts b/diboot-admin-ui/mock/_prodServer.ts new file mode 100644 index 00000000..9242ea29 --- /dev/null +++ b/diboot-admin-ui/mock/_prodServer.ts @@ -0,0 +1,18 @@ +import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer' + +const modules = import.meta.globEager('./**/*.ts') + +const mockModules: any[] = [] +Object.keys(modules).forEach(key => { + if (key.includes('/_')) { + return + } + mockModules.push(...modules[key].default) +}) + +/** + * Used in a production environment. Need to manually import all modules + */ +export function setupProdMockServer() { + createProdMockServer(mockModules) +} diff --git a/diboot-admin-ui/mock/_util.ts b/diboot-admin-ui/mock/_util.ts new file mode 100644 index 00000000..736ab40b --- /dev/null +++ b/diboot-admin-ui/mock/_util.ts @@ -0,0 +1,119 @@ +import Mock from 'mockjs' + +// 分页 +export const pagination = (pageNo: number, pageSize: number, array: T[]): T[] => { + const offset = (pageNo - 1) * Number(pageSize) + return offset + Number(pageSize) >= array.length + ? array.slice(offset, array.length) + : array.slice(offset, offset + Number(pageSize)) +} + +const resultJson = (code: number, msg: string, data?: any, ext = {}) => + Mock.mock({ + ...ext, + code, + data, + msg + }) + +class JsonResult { + /** + * 操作成功 + */ + OK(data?: any, msg = '操作成功') { + return resultJson(0, msg, data) + } + + /** + * 数据分页 + */ + PAGINATION(page: number, pageSize: number, list: T[] = []) { + return resultJson(0, '操作成功', pagination(page, pageSize, list), { page, pageSize, total: list.length }) + } + + /** + * 部分成功(一般用于批量处理场景,只处理筛选后的合法数据) + */ + WARN_PARTIAL_SUCCESS(msg?: string) { + return resultJson(1001, '部分成功' + (msg ? `:${msg}` : '')) + } + + /** + * 有潜在的性能问题 + */ + WARN_PERFORMANCE_ISSUE(msg?: string) { + return resultJson(1002, '潜在的性能问题' + (msg ? `:${msg}` : '')) + } + + /** + * 传入参数不对 + */ + FAIL_INVALID_PARAM(msg?: string) { + return resultJson(4000, '请求参数不匹配' + (msg ? `:${msg}` : '')) + } + + /** + * Token无效或已过期 + */ + FAIL_INVALID_TOKEN(msg?: string) { + return resultJson(4001, 'Token无效或已过期' + (msg ? `:${msg}` : '')) + } + + /** + * 没有权限执行该操作 + */ + FAIL_NO_PERMISSION(msg?: string) { + return resultJson(4003, '无权执行该操作' + (msg ? `:${msg}` : '')) + } + + /** + * 请求资源不存在 + */ + FAIL_NOT_FOUND(msg?: string) { + return resultJson(4004, '请求资源不存在' + (msg ? `:${msg}` : '')) + } + + /** + * 数据校验不通过 + */ + FAIL_VALIDATION(msg?: string) { + return resultJson(4005, '数据校验不通过' + (msg ? `:${msg}` : '')) + } + + /** + * 操作执行失败 + */ + FAIL_OPERATION(msg?: string) { + return resultJson(4006, '操作执行失败' + (msg ? `:${msg}` : '')) + } + + /** + * 请求连接超时 + */ + FAIL_REQUEST_TIMEOUT(msg?: string) { + return resultJson(4008, '请求连接超时' + (msg ? `:${msg}` : '')) + } + + /** + * 认证不通过(用户名密码错误等认证失败场景) + */ + FAIL_AUTHENTICATION(msg?: string) { + return resultJson(4009, '认证不通过' + (msg ? `:${msg}` : '')) + } + + /** + * 系统异常 + */ + FAIL_EXCEPTION(msg?: string) { + return resultJson(5000, '系统异常' + (msg ? `:${msg}` : '')) + } + + /** + * 服务不可用 + */ + FAIL_SERVICE_UNAVAILABLE(msg?: string) { + return resultJson(5003, '服务不可用' + (msg ? `:${msg}` : '')) + } +} + +export default new JsonResult() diff --git a/diboot-admin-ui/mock/auth/index.ts b/diboot-admin-ui/mock/auth/index.ts new file mode 100644 index 00000000..3218fb2d --- /dev/null +++ b/diboot-admin-ui/mock/auth/index.ts @@ -0,0 +1,60 @@ +import { MockMethod } from 'vite-plugin-mock' +import JsonResult from '../_util' +import { Random } from 'mockjs' + +const baseUrl = '/api/auth' + +export default [ + { + url: `${baseUrl}/captcha`, + timeout: Random.natural(50, 100), + method: 'get', + // response: () => Random.dataImage('200x100', 'Diboot') + rawResponse: (req, res) => { + res.setHeader('Content-Type', 'image/gif') + res.setHeader('Pragma', 'No-cache') + res.setHeader('Cache-Control', 'no-cache') + res.write(Random.dataImage('200x100', 'Diboot')) + } + }, + { + url: `${baseUrl}/login`, + timeout: Random.natural(50, 300), + method: 'post', + response: ({ body }: any) => { + if (body.username === 'admin' && body.password === '123456') { + return JsonResult.OK({ token: Random.string('lower', 32, 32) }) + } + return JsonResult.FAIL_OPERATION('用户名或密码错误') + } + }, + { + url: `${baseUrl}/userInfo`, + timeout: Random.natural(50, 300), + method: 'get', + response: () => { + return JsonResult.OK({ + realname: Random.cname(), + email: Random.email(), + avatar: Random.image('250x250') + }) + } + }, + { + url: `${baseUrl}/logout`, + timeout: Random.natural(50, 300), + method: 'get', + response: () => { + return JsonResult.OK() + } + }, + { + url: `${baseUrl}/ping`, + timeout: Random.natural(50, 300), + method: 'get', + rawResponse: (req, res) => { + res.setHeader('Authorization', Random.string('lower', 32, 32)) + res.end() + } + } +] as MockMethod[] diff --git a/diboot-admin-ui/package.json b/diboot-admin-ui/package.json index d85da1d5..3440815a 100644 --- a/diboot-admin-ui/package.json +++ b/diboot-admin-ui/package.json @@ -12,6 +12,7 @@ "axios": "^0.26.1", "element-plus": "^2.1.10", "lodash": "^4.17.21", + "mockjs": "^1.1.0", "pinia": "^2.0.13", "qs": "^6.10.3", "vue": "^3.2.25", @@ -35,6 +36,7 @@ "unplugin-vue-components": "^0.19.3", "vite": "^2.9.2", "vite-plugin-eslint": "^1.4.0", + "vite-plugin-mock": "^2.9.6", "vue-tsc": "^0.29.8" } } diff --git a/diboot-admin-ui/pnpm-lock.yaml b/diboot-admin-ui/pnpm-lock.yaml index 751254cf..f2142ec4 100644 --- a/diboot-admin-ui/pnpm-lock.yaml +++ b/diboot-admin-ui/pnpm-lock.yaml @@ -15,6 +15,7 @@ specifiers: eslint-plugin-prettier: ^4.0.0 eslint-plugin-vue: ^8.6.0 lodash: ^4.17.21 + mockjs: ^1.1.0 pinia: ^2.0.13 prettier: 2.6.2 qs: ^6.10.3 @@ -23,6 +24,7 @@ specifiers: unplugin-vue-components: ^0.19.3 vite: ^2.9.2 vite-plugin-eslint: ^1.4.0 + vite-plugin-mock: ^2.9.6 vue: ^3.2.25 vue-router: ^4.0.14 vue-tsc: ^0.29.8 @@ -31,6 +33,7 @@ dependencies: axios: registry.npmmirror.com/axios/0.26.1 element-plus: registry.npmmirror.com/element-plus/2.1.10_vue@3.2.33 lodash: registry.npmmirror.com/lodash/4.17.21 + mockjs: registry.npmmirror.com/mockjs/1.1.0 pinia: registry.npmmirror.com/pinia/2.0.13_typescript@4.6.3+vue@3.2.33 qs: registry.npmmirror.com/qs/6.10.3 vue: registry.npmmirror.com/vue/3.2.33 @@ -54,6 +57,7 @@ devDependencies: unplugin-vue-components: registry.npmmirror.com/unplugin-vue-components/0.19.3_vite@2.9.5+vue@3.2.33 vite: registry.npmmirror.com/vite/2.9.5 vite-plugin-eslint: registry.npmmirror.com/vite-plugin-eslint/1.4.0_eslint@8.13.0+vite@2.9.5 + vite-plugin-mock: registry.npmmirror.com/vite-plugin-mock/2.9.6_mockjs@1.1.0+vite@2.9.5 vue-tsc: registry.npmmirror.com/vue-tsc/0.29.8_typescript@4.6.3 packages: @@ -213,6 +217,35 @@ packages: version: 2.11.5 dev: false + registry.npmmirror.com/@rollup/plugin-node-resolve/13.2.1: + resolution: {integrity: sha512-btX7kzGvp1JwShQI9V6IM841YKNPYjKCvUbNrQ2EcVYbULtUd/GH6wZ/qdqH13j9pOHBER+EZXNN2L8RSJhVRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.2.1.tgz} + name: '@rollup/plugin-node-resolve' + version: 13.2.1 + engines: {node: '>= 10.0.0'} + peerDependencies: + rollup: ^2.42.0 + dependencies: + '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils/3.1.0 + '@types/resolve': registry.npmmirror.com/@types/resolve/1.17.1 + builtin-modules: registry.npmmirror.com/builtin-modules/3.2.0 + deepmerge: registry.npmmirror.com/deepmerge/4.2.2 + is-module: registry.npmmirror.com/is-module/1.0.0 + resolve: registry.npmmirror.com/resolve/1.22.0 + dev: true + + registry.npmmirror.com/@rollup/pluginutils/3.1.0: + resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz} + name: '@rollup/pluginutils' + version: 3.1.0 + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree/0.0.39 + estree-walker: registry.npmmirror.com/estree-walker/1.0.1 + picomatch: registry.npmmirror.com/picomatch/2.3.1 + dev: true + registry.npmmirror.com/@rollup/pluginutils/4.2.1: resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz} name: '@rollup/pluginutils' @@ -223,6 +256,12 @@ packages: picomatch: registry.npmmirror.com/picomatch/2.3.1 dev: true + registry.npmmirror.com/@types/estree/0.0.39: + resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/estree/-/estree-0.0.39.tgz} + name: '@types/estree' + version: 0.0.39 + dev: true + registry.npmmirror.com/@types/json-schema/7.0.11: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz} name: '@types/json-schema' @@ -242,6 +281,12 @@ packages: name: '@types/lodash' version: 4.14.182 + registry.npmmirror.com/@types/mockjs/1.0.6: + resolution: {integrity: sha512-Yu5YlqbYZyqsd6LjO4e8ONJDN9pTSnciHDcRP4teNOh/au2b8helFhgRx+3w8xsTFEnwr9jtfTVJbAx+eYmlHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/mockjs/-/mockjs-1.0.6.tgz} + name: '@types/mockjs' + version: 1.0.6 + dev: true + registry.npmmirror.com/@types/node/17.0.25: resolution: {integrity: sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/-/node-17.0.25.tgz} name: '@types/node' @@ -254,6 +299,14 @@ packages: version: 6.9.7 dev: true + registry.npmmirror.com/@types/resolve/1.17.1: + resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/resolve/-/resolve-1.17.1.tgz} + name: '@types/resolve' + version: 1.17.1 + dependencies: + '@types/node': registry.npmmirror.com/@types/node/17.0.25 + dev: true + registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.20.0_b9ac9b5656ce5dffade639fcf5e491bf: resolution: {integrity: sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.20.0.tgz} id: registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.20.0 @@ -807,6 +860,13 @@ packages: fill-range: registry.npmmirror.com/fill-range/7.0.1 dev: true + registry.npmmirror.com/builtin-modules/3.2.0: + resolution: {integrity: sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/builtin-modules/-/builtin-modules-3.2.0.tgz} + name: builtin-modules + version: 3.2.0 + engines: {node: '>=6'} + dev: true + registry.npmmirror.com/call-bind/1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz} name: call-bind @@ -872,12 +932,31 @@ packages: version: 1.1.4 dev: true + registry.npmmirror.com/commander/9.2.0: + resolution: {integrity: sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/-/commander-9.2.0.tgz} + name: commander + version: 9.2.0 + engines: {node: ^12.20.0 || >=14} + dev: false + registry.npmmirror.com/concat-map/0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz} name: concat-map version: 0.0.1 dev: true + registry.npmmirror.com/connect/3.7.0: + resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/connect/-/connect-3.7.0.tgz} + name: connect + version: 3.7.0 + engines: {node: '>= 0.10.0'} + dependencies: + debug: registry.npmmirror.com/debug/2.6.9 + finalhandler: registry.npmmirror.com/finalhandler/1.1.2 + parseurl: registry.npmmirror.com/parseurl/1.3.3 + utils-merge: registry.npmmirror.com/utils-merge/1.0.1 + dev: true + registry.npmmirror.com/constantinople/4.0.1: resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/constantinople/-/constantinople-4.0.1.tgz} name: constantinople @@ -910,6 +989,14 @@ packages: version: 1.11.1 dev: false + registry.npmmirror.com/debug/2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz} + name: debug + version: 2.6.9 + dependencies: + ms: registry.npmmirror.com/ms/2.0.0 + dev: true + registry.npmmirror.com/debug/4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz} name: debug @@ -930,6 +1017,13 @@ packages: version: 0.1.4 dev: true + registry.npmmirror.com/deepmerge/4.2.2: + resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/deepmerge/-/deepmerge-4.2.2.tgz} + name: deepmerge + version: 4.2.2 + engines: {node: '>=0.10.0'} + dev: true + registry.npmmirror.com/dir-glob/3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz} name: dir-glob @@ -989,6 +1083,12 @@ packages: domhandler: registry.npmmirror.com/domhandler/4.3.1 dev: true + registry.npmmirror.com/ee-first/1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz} + name: ee-first + version: 1.1.1 + dev: true + registry.npmmirror.com/element-plus/2.1.10_vue@3.2.33: resolution: {integrity: sha512-sS9OMgP20dlYipmzHlEEgCJU+ID7+03YpRpoJWNQEH736C6ArmDMLnGFe8DUjPvwbUEXRA2d0Eo5d0apFgkSqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/element-plus/-/element-plus-2.1.10.tgz} id: registry.npmmirror.com/element-plus/2.1.10 @@ -1026,6 +1126,13 @@ packages: '@emmetio/css-abbreviation': registry.npmmirror.com/@emmetio/css-abbreviation/2.1.4 dev: true + registry.npmmirror.com/encodeurl/1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz} + name: encodeurl + version: 1.0.2 + engines: {node: '>= 0.8'} + dev: true + registry.npmmirror.com/entities/2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz} name: entities @@ -1259,6 +1366,14 @@ packages: dev: true optional: true + registry.npmmirror.com/esbuild/0.11.3: + resolution: {integrity: sha512-BzVRHcCtFepjS9WcqRjqoIxLqgpK21a8J4Zi4msSGxDxiXVO1IbcqT1KjhdDDnJxKfe7bvzZrvMEX+bVO0Elcw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.11.3.tgz} + name: esbuild + version: 0.11.3 + hasBin: true + requiresBuild: true + dev: true + registry.npmmirror.com/esbuild/0.14.36: resolution: {integrity: sha512-HhFHPiRXGYOCRlrhpiVDYKcFJRdO0sBElZ668M4lh2ER0YgnkLxECuFe7uWCf23FrcLc59Pqr7dHkTqmRPDHmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.14.36.tgz} name: esbuild @@ -1293,7 +1408,6 @@ packages: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz} name: escape-html version: 1.0.3 - dev: false registry.npmmirror.com/escape-string-regexp/4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz} @@ -1488,6 +1602,12 @@ packages: engines: {node: '>=4.0'} dev: true + registry.npmmirror.com/estree-walker/1.0.1: + resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-walker/-/estree-walker-1.0.1.tgz} + name: estree-walker + version: 1.0.1 + dev: true + registry.npmmirror.com/estree-walker/2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz} name: estree-walker @@ -1563,6 +1683,21 @@ packages: to-regex-range: registry.npmmirror.com/to-regex-range/5.0.1 dev: true + registry.npmmirror.com/finalhandler/1.1.2: + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/finalhandler/-/finalhandler-1.1.2.tgz} + name: finalhandler + version: 1.1.2 + engines: {node: '>= 0.8'} + dependencies: + debug: registry.npmmirror.com/debug/2.6.9 + encodeurl: registry.npmmirror.com/encodeurl/1.0.2 + escape-html: registry.npmmirror.com/escape-html/1.0.3 + on-finished: registry.npmmirror.com/on-finished/2.3.0 + parseurl: registry.npmmirror.com/parseurl/1.3.3 + statuses: registry.npmmirror.com/statuses/1.5.0 + unpipe: registry.npmmirror.com/unpipe/1.0.0 + dev: true + registry.npmmirror.com/flat-cache/3.0.4: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/flat-cache/-/flat-cache-3.0.4.tgz} name: flat-cache @@ -1803,6 +1938,12 @@ packages: is-extglob: registry.npmmirror.com/is-extglob/2.1.1 dev: true + registry.npmmirror.com/is-module/1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-module/-/is-module-1.0.0.tgz} + name: is-module + version: 1.0.0 + dev: true + registry.npmmirror.com/is-number/7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz} name: is-number @@ -1995,6 +2136,21 @@ packages: brace-expansion: registry.npmmirror.com/brace-expansion/2.0.1 dev: true + registry.npmmirror.com/mockjs/1.1.0: + resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mockjs/-/mockjs-1.1.0.tgz} + name: mockjs + version: 1.1.0 + hasBin: true + dependencies: + commander: registry.npmmirror.com/commander/9.2.0 + dev: false + + registry.npmmirror.com/ms/2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz} + name: ms + version: 2.0.0 + dev: true + registry.npmmirror.com/ms/2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz} name: ms @@ -2040,6 +2196,15 @@ packages: version: 1.12.0 dev: false + registry.npmmirror.com/on-finished/2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/on-finished/-/on-finished-2.3.0.tgz} + name: on-finished + version: 2.3.0 + engines: {node: '>= 0.8'} + dependencies: + ee-first: registry.npmmirror.com/ee-first/1.1.1 + dev: true + registry.npmmirror.com/once/1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/once/-/once-1.4.0.tgz} name: once @@ -2071,6 +2236,13 @@ packages: callsites: registry.npmmirror.com/callsites/3.1.0 dev: true + registry.npmmirror.com/parseurl/1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz} + name: parseurl + version: 1.3.3 + engines: {node: '>= 0.8'} + dev: true + registry.npmmirror.com/path-is-absolute/1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz} name: path-is-absolute @@ -2091,6 +2263,12 @@ packages: version: 1.0.7 dev: true + registry.npmmirror.com/path-to-regexp/6.2.0: + resolution: {integrity: sha512-f66KywYG6+43afgE/8j/GoiNyygk/bnoCbps++3ErRKsIYkGGupyv07R2Ok5m9i67Iqc+T2g1eAUGUPzWhYTyg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-6.2.0.tgz} + name: path-to-regexp + version: 6.2.0 + dev: true + registry.npmmirror.com/path-type/4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz} name: path-type @@ -2444,6 +2622,13 @@ packages: name: sourcemap-codec version: 1.4.8 + registry.npmmirror.com/statuses/1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz} + name: statuses + version: 1.5.0 + engines: {node: '>= 0.6'} + dev: true + registry.npmmirror.com/strip-ansi/6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz} name: strip-ansi @@ -2547,6 +2732,13 @@ packages: hasBin: true dev: true + registry.npmmirror.com/unpipe/1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz} + name: unpipe + version: 1.0.0 + engines: {node: '>= 0.8'} + dev: true + registry.npmmirror.com/unplugin-auto-import/0.7.1_vite@2.9.5: resolution: {integrity: sha512-9865OV9eP99PNxHR2mtTDExeN01m4M9boT5U2BtIwsU1wDRsaFIYWLwcCBEjvXzXfTTC2NNMskhHGVAMfL2WgA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.7.1.tgz} id: registry.npmmirror.com/unplugin-auto-import/0.7.1 @@ -2648,6 +2840,13 @@ packages: punycode: registry.npmmirror.com/punycode/2.1.1 dev: true + registry.npmmirror.com/utils-merge/1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz} + name: utils-merge + version: 1.0.1 + engines: {node: '>= 0.4.0'} + dev: true + registry.npmmirror.com/v8-compile-cache/2.3.0: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz} name: v8-compile-cache @@ -2669,6 +2868,32 @@ packages: vite: registry.npmmirror.com/vite/2.9.5 dev: true + registry.npmmirror.com/vite-plugin-mock/2.9.6_mockjs@1.1.0+vite@2.9.5: + resolution: {integrity: sha512-/Rm59oPppe/ncbkSrUuAxIQihlI2YcBmnbR4ST1RA2VzM1C0tEQc1KlbQvnUGhXECAGTaQN2JyasiwXP6EtKgg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite-plugin-mock/-/vite-plugin-mock-2.9.6.tgz} + id: registry.npmmirror.com/vite-plugin-mock/2.9.6 + name: vite-plugin-mock + version: 2.9.6 + engines: {node: '>=12.0.0'} + peerDependencies: + mockjs: '>=1.1.0' + vite: '>=2.0.0' + dependencies: + '@rollup/plugin-node-resolve': registry.npmmirror.com/@rollup/plugin-node-resolve/13.2.1 + '@types/mockjs': registry.npmmirror.com/@types/mockjs/1.0.6 + chalk: registry.npmmirror.com/chalk/4.1.2 + chokidar: registry.npmmirror.com/chokidar/3.5.3 + connect: registry.npmmirror.com/connect/3.7.0 + debug: registry.npmmirror.com/debug/4.3.4 + esbuild: registry.npmmirror.com/esbuild/0.11.3 + fast-glob: registry.npmmirror.com/fast-glob/3.2.11 + mockjs: registry.npmmirror.com/mockjs/1.1.0 + path-to-regexp: registry.npmmirror.com/path-to-regexp/6.2.0 + vite: registry.npmmirror.com/vite/2.9.5 + transitivePeerDependencies: + - rollup + - supports-color + dev: true + registry.npmmirror.com/vite/2.9.5: resolution: {integrity: sha512-dvMN64X2YEQgSXF1lYabKXw3BbN6e+BL67+P3Vy4MacnY+UzT1AfkHiioFSi9+uiDUiaDy7Ax/LQqivk6orilg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/-/vite-2.9.5.tgz} name: vite diff --git a/diboot-admin-ui/src/main.ts b/diboot-admin-ui/src/main.ts index 97ab1ea8..6826bc86 100644 --- a/diboot-admin-ui/src/main.ts +++ b/diboot-admin-ui/src/main.ts @@ -5,3 +5,5 @@ const app = createApp(App) app.use(router) app.use(createPinia()) app.mount('#app') + +import 'element-plus/es/components/message/style/css' diff --git a/diboot-admin-ui/src/store/user.ts b/diboot-admin-ui/src/store/user.ts new file mode 100644 index 00000000..5d850aa6 --- /dev/null +++ b/diboot-admin-ui/src/store/user.ts @@ -0,0 +1,54 @@ +import auth from '@/utils/auth' +import { ElMessage } from 'element-plus' + +interface IUserInfo { + realname: string + email: string + avatar: string +} + +export default defineStore('user', { + state: () => { + return { + realname: '游客', + avatar: '' + } + }, + actions: { + login: (account: any) => { + return new Promise((resolve, reject) => { + api + .post<{ token: string }>('/auth/login', account) + .then(res => { + if (res.data) { + auth.setToken(res.data.token) + resolve(res.data) + } + }) + .catch(err => { + ElMessage.error(err.message || err.msg || '稍后重试') + reject() + }) + }) + }, + getInfo: () => { + return new Promise((resolve, reject) => { + api + .get('/auth/userInfo') + .then(res => { + if (res.data) resolve(res.data) + else reject() + }) + .catch(err => { + reject(err) + }) + }) + }, + logout: () => { + // this.realname = 'asd' + api.post('/auth/logout').finally(() => { + auth.cleanToken() + }) + } + } +}) diff --git a/diboot-admin-ui/src/utils/request.ts b/diboot-admin-ui/src/utils/request.ts index afd9289a..4c43eb53 100644 --- a/diboot-admin-ui/src/utils/request.ts +++ b/diboot-admin-ui/src/utils/request.ts @@ -82,7 +82,7 @@ resetPingTimer() function resetPingTimer() { clearTimeout(pingTimer) pingTimer = setTimeout(() => { - service.get('/ping').then() + service.get('/auth/ping').then() resetPingTimer() }, TOKEN_REFRESH_EXPIRE * 60 * 1000) } @@ -123,10 +123,10 @@ function unpack(request: Promise>>): Promise(url: string, params: any) { + get(url: string, params?: any) { return unpack(service.get, AxiosResponse>, any>(url, { params })) }, - post(url: string, data: any) { + post(url: string, data?: any) { return unpack( service.post, AxiosResponse>, any>(url, JSON.stringify(data), { headers: { @@ -135,7 +135,7 @@ const api = { }) ) }, - put(url: string, data: any) { + put(url: string, data?: any) { return unpack( service.put, AxiosResponse>, any>(url, JSON.stringify(data), { headers: { @@ -144,7 +144,7 @@ const api = { }) ) }, - patch(url: string, data: any) { + patch(url: string, data?: any) { return unpack( service.patch, AxiosResponse>, any>(url, JSON.stringify(data), { headers: { @@ -153,7 +153,7 @@ const api = { }) ) }, - delete(url: string, params: any) { + delete(url: string, params?: any) { return unpack( service.delete, AxiosResponse>, any>(url, { params, @@ -180,7 +180,7 @@ const api = { * @param url * @param params */ - download(url: string, params: any) { + download(url: string, params?: any) { return unpack( service.get, AxiosResponse>, any>(url, { responseType: 'arraybuffer', @@ -198,7 +198,7 @@ const api = { * @param url * @param data */ - postDownload(url: string, data: any) { + postDownload(url: string, data?: any) { return unpack( service.post, AxiosResponse>, any>(url, JSON.stringify(data), { responseType: 'arraybuffer', diff --git a/diboot-admin-ui/src/views/login/index.vue b/diboot-admin-ui/src/views/login/index.vue index e0b4eda6..6776f9ac 100644 --- a/diboot-admin-ui/src/views/login/index.vue +++ b/diboot-admin-ui/src/views/login/index.vue @@ -1,5 +1,8 @@ + + + + diff --git a/diboot-admin-ui/src/layout/header/index.vue b/diboot-admin-ui/src/layout/header/index.vue new file mode 100644 index 00000000..6e616b57 --- /dev/null +++ b/diboot-admin-ui/src/layout/header/index.vue @@ -0,0 +1,22 @@ + + + + + diff --git a/diboot-admin-ui/src/layout/index.vue b/diboot-admin-ui/src/layout/index.vue index b2847381..5402c541 100644 --- a/diboot-admin-ui/src/layout/index.vue +++ b/diboot-admin-ui/src/layout/index.vue @@ -1,12 +1,30 @@ diff --git a/diboot-admin-ui/src/layout/main/index.vue b/diboot-admin-ui/src/layout/main/index.vue new file mode 100644 index 00000000..6aa0898d --- /dev/null +++ b/diboot-admin-ui/src/layout/main/index.vue @@ -0,0 +1,32 @@ + + + + + diff --git a/diboot-admin-ui/src/layout/memu/index.vue b/diboot-admin-ui/src/layout/memu/index.vue new file mode 100644 index 00000000..999e4d27 --- /dev/null +++ b/diboot-admin-ui/src/layout/memu/index.vue @@ -0,0 +1,11 @@ + + diff --git a/diboot-admin-ui/src/layout/memu/subMenu.vue b/diboot-admin-ui/src/layout/memu/subMenu.vue new file mode 100644 index 00000000..412ec905 --- /dev/null +++ b/diboot-admin-ui/src/layout/memu/subMenu.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/diboot-admin-ui/src/router/index.ts b/diboot-admin-ui/src/router/index.ts index 52b2f883..75a2002f 100644 --- a/diboot-admin-ui/src/router/index.ts +++ b/diboot-admin-ui/src/router/index.ts @@ -1,5 +1,5 @@ import { createRouter, createWebHashHistory, RouteRecordRaw, RouterView } from 'vue-router' -import Layout from '@/layout/index.vue' +import { createRouterGuard } from '@/router/router-guards' /** * constantRoutes @@ -8,43 +8,39 @@ import Layout from '@/layout/index.vue' */ export const constantRoutes: RouteRecordRaw[] = [ { - path: '/redirect', + path: '/redirect/:path(.*)*', name: 'Redirect', - component: Layout, - children: [ - { - path: ':path(.*)*', // '/redirect/:path(.*)*' - name: 'Redirect', - redirect: to => { - const path = to.params.path - return { path: `/${Array.isArray(path) ? path.join('/') : path}`, query: to.query, replace: true } - } - } - ] + meta: { hidden: true, ignoreAuth: true }, + redirect: to => { + const path = to.params.path + return { path: `/${Array.isArray(path) ? path.join('/') : path}`, query: to.query, replace: true } + } }, { path: '/exception', name: 'Exception', + redirect: '404', component: RouterView, - meta: { title: 'Exception' }, + meta: { title: 'Exception', hidden: true, ignoreAuth: true }, children: [ { path: '404', name: '404', component: () => import('@/views/exception/404.vue'), - meta: { title: '404' } + meta: { title: '404', ignoreAuth: true } }, { path: '500', name: '500', component: () => import('@/views/exception/500.vue'), - meta: { title: '500' } + meta: { title: '500', ignoreAuth: true } } ] }, { path: '/:path(.*)*', name: 'ErrorPage', + meta: { hidden: true, ignoreAuth: true }, redirect: to => { return { name: '404', query: { path: to.path }, replace: true } } @@ -53,7 +49,22 @@ export const constantRoutes: RouteRecordRaw[] = [ path: '/login', name: 'Login', component: () => import('@/views/login/index.vue'), - meta: { hidden: true } + meta: { hidden: true, ignoreAuth: true } + }, + { + path: '/', + name: 'Home', + redirect: '/dashboard', + component: () => import('@/layout/index.vue'), + meta: { title: '首页' }, + children: [ + { + path: 'dashboard', + name: 'Dashboard', + component: () => import('@/views/dashboard/index.vue'), + meta: { title: '仪表盘' } + } + ] } ] @@ -66,23 +77,8 @@ const router = createRouter({ routes: constantRoutes }) -// home route -const homeRoute: RouteRecordRaw = { - path: '/', - name: 'Home', - component: Layout, - redirect: '/dashboard', - meta: { title: '首页' }, - children: [ - { - path: 'dashboard', - name: 'Dashboard', - component: () => import('@/views/dashboard/index.vue'), - meta: { title: '仪表盘', ignoreAuth: true } - } - ] -} - -router.addRoute(homeRoute) +createRouterGuard(router) export default router + +setTimeout(() => console.log(router.getRoutes()), 1000) diff --git a/diboot-admin-ui/src/router/router-guards.ts b/diboot-admin-ui/src/router/router-guards.ts new file mode 100644 index 00000000..da76be92 --- /dev/null +++ b/diboot-admin-ui/src/router/router-guards.ts @@ -0,0 +1,67 @@ +import { isNavigationFailure, Router, RouteRecordRaw, RouterView } from 'vue-router' +import useUserStore from '@/store/auth' +import useRouteStore from '@/store/asyncRoute' +import useTabsViewStore from '@/store/tabsView' +import auth from '@/utils/auth' + +/** + * 路由守卫函数 + * @param router - 路由实例 + */ +export function createRouterGuard(router: Router) { + router.beforeEach(async (to, from, next) => { + // 未登录 + if (auth.getToken()) { + const userStore = useUserStore() + // 已加载完基本数据 + if (userStore.info) { + next() + return + } + const routeStore = useRouteStore() + + try { + await userStore.getInfo() + + // 加载异步路由 + await routeStore.generateRoutes(router) + + const redirectPath = (from.query.redirect || to.path) as string + const redirect = decodeURIComponent(redirectPath) + const nextData = to.path === redirect ? { ...to, replace: true } : { path: redirect } + next(nextData) + return + } catch (e) { + // 获取数据异常 + console.log('加载授权路由失败', e) + } + } + + // You can access without permissions. You need to set the routing meta.ignoreAuth to true + if (to.meta.ignoreAuth) { + next() + return + } + // redirect login page + const redirectData = { + name: 'Login', + replace: true, + query: to.query + } + if (to.path) { + redirectData.query.redirect = to.path + } + next(redirectData) + }) + + router.afterEach((to, from, failure) => { + if (isNavigationFailure(failure)) { + return + } + useTabsViewStore().addView(to) + }) + + router.onError(error => { + console.log('路由错误', error) + }) +} diff --git a/diboot-admin-ui/src/router/typings.d.ts b/diboot-admin-ui/src/router/typings.d.ts index 7a21a9c8..2b842535 100644 --- a/diboot-admin-ui/src/router/typings.d.ts +++ b/diboot-admin-ui/src/router/typings.d.ts @@ -5,12 +5,14 @@ declare module 'vue-router' { title?: string icon?: string module?: string + component?: string ignoreAuth?: boolean keepAlive?: boolean hidden?: boolean hollow?: boolean hideFooter?: boolean borderless?: boolean + openNewWindow?: boolean hideBreadcrumb?: boolean } } diff --git a/diboot-admin-ui/src/store/asyncRoute.ts b/diboot-admin-ui/src/store/asyncRoute.ts new file mode 100644 index 00000000..21eef260 --- /dev/null +++ b/diboot-admin-ui/src/store/asyncRoute.ts @@ -0,0 +1,81 @@ +import { Router, RouteRecordRaw, RouterView } from 'vue-router' +import Layout from '@/layout/index.vue' + +export interface IRouteState { + menus: RouteRecordRaw[] +} + +export default defineStore({ + id: 'async-route', + state: (): IRouteState => ({ + menus: [] + }), + actions: { + async generateRoutes(router: Router) { + // 加载异步路由 + const res = await api.get>('/auth/menu') + if (res.data?.length) { + const asyncRoutes = filterAsyncRouter(res.data) + asyncRoutes.forEach(e => router.addRoute(e)) + this.menus = filterAsyncMenu(asyncRoutes) + } + } + } +}) + +// 加载所有页面 +const pages = import.meta.globEager('@/views/**/*.vue') + +/** + *

过滤异步路由

+ * 加载component及自动丢弃无用路由 + * @param asyncRoutes + */ +function filterAsyncRouter(asyncRoutes: RouteRecordRaw[]) { + return asyncRoutes.filter(route => { + if (route.children?.length && (route.children = filterAsyncRouter(route.children)).length) { + const component = route.meta?.component + if (component?.toLowerCase() === 'layout' || component?.toLowerCase() === 'layout/index') { + route.component = Layout + } else if (!component) { + route.component = RouterView + } else { + route.component = pages[`../views/${component}.vue`] + } + // 父级目录重定向首个子菜单 + const childrenPath = route.children[0].path + route.redirect = /^\//.exec(childrenPath) ? childrenPath : `${route.path}/${childrenPath}` + } else { + delete route.children + if (route.meta?.component) { + route.component = pages[`../views/${route.meta?.component}.vue`] + } else return false + } + return true + }) +} + +/** + * 过滤菜单 + * + * @param asyncRoutes + * @param parent + */ +function filterAsyncMenu(asyncRoutes: RouteRecordRaw[], parent?: RouteRecordRaw) { + const routes: RouteRecordRaw[] = [] + for (const route of asyncRoutes) { + if (route.meta?.hidden) continue + if (parent && !/^\//.exec(route.path)) route.path = `${parent.path === '/' ? '' : parent.path}/${route.path}` + if (!route.children) { + routes.push(route) + } else if (!route.meta?.title && route.children.length === 1) { + const child = route.children[0] + child.path = route.redirect as string + routes.push(child) + } else { + route.children = filterAsyncMenu(route.children, route) + routes.push(route) + } + } + return routes +} diff --git a/diboot-admin-ui/src/store/user.ts b/diboot-admin-ui/src/store/auth.ts similarity index 52% rename from diboot-admin-ui/src/store/user.ts rename to diboot-admin-ui/src/store/auth.ts index 5d850aa6..263ec425 100644 --- a/diboot-admin-ui/src/store/user.ts +++ b/diboot-admin-ui/src/store/auth.ts @@ -1,21 +1,23 @@ import auth from '@/utils/auth' import { ElMessage } from 'element-plus' -interface IUserInfo { +interface IAuthStore { realname: string email: string avatar: string + info: any } -export default defineStore('user', { +export default defineStore('auth', { state: () => { - return { - realname: '游客', - avatar: '' + return { + realname: '', + avatar: '', + info: null } }, actions: { - login: (account: any) => { + login(account: any) { return new Promise((resolve, reject) => { api .post<{ token: string }>('/auth/login', account) @@ -31,24 +33,22 @@ export default defineStore('user', { }) }) }, - getInfo: () => { - return new Promise((resolve, reject) => { - api - .get('/auth/userInfo') - .then(res => { - if (res.data) resolve(res.data) - else reject() - }) - .catch(err => { - reject(err) - }) - }) + getInfo: async function () { + try { + const res = await api.get<{ realname: string }>('/auth/userInfo') + this.info = res.data + this.realname = `${res.data?.realname}` + } catch (e) { + throw new Error('获取登录者信息异常') + } }, - logout: () => { - // this.realname = 'asd' - api.post('/auth/logout').finally(() => { + async logout() { + try { + await api.post('/auth/logout') + } finally { auth.cleanToken() - }) + this.$reset() + } } } }) diff --git a/diboot-admin-ui/src/store/tabsView.ts b/diboot-admin-ui/src/store/tabsView.ts new file mode 100644 index 00000000..cd94c38f --- /dev/null +++ b/diboot-admin-ui/src/store/tabsView.ts @@ -0,0 +1,27 @@ +import { RouteLocationNormalizedLoaded } from 'vue-router' + +interface ITagsViewStore { + visitedViews: RouteLocationNormalizedLoaded[] + cachedViews: string[] +} + +export default defineStore('tags-view', { + state() { + return { + visitedViews: [], + cachedViews: [] + } + }, + actions: { + addView(view: RouteLocationNormalizedLoaded) { + if (!this.visitedViews.includes(view)) { + return + } + this.visitedViews.push(view) + if (view.meta.keepAlive !== false) this.cachedViews.push(view.name as string) + }, + delView(view: RouteLocationNormalizedLoaded) { + console.log(view) + } + } +}) diff --git a/diboot-admin-ui/src/utils/auth.ts b/diboot-admin-ui/src/utils/auth.ts index baf1bdd2..70a54dee 100644 --- a/diboot-admin-ui/src/utils/auth.ts +++ b/diboot-admin-ui/src/utils/auth.ts @@ -4,12 +4,12 @@ export const AUTH_HEADER_KEY = 'Authorization' export default { getToken(): string | null { - return sessionStorage.getItem(TOKEN_KEY) + return localStorage.getItem(TOKEN_KEY) }, setToken(token: string) { - sessionStorage.setItem(TOKEN_KEY, token) + localStorage.setItem(TOKEN_KEY, token) }, cleanToken() { - sessionStorage.removeItem(TOKEN_KEY) + localStorage.removeItem(TOKEN_KEY) } } diff --git a/diboot-admin-ui/src/utils/request.ts b/diboot-admin-ui/src/utils/request.ts index 4c43eb53..d7bd9a33 100644 --- a/diboot-admin-ui/src/utils/request.ts +++ b/diboot-admin-ui/src/utils/request.ts @@ -88,7 +88,6 @@ function resetPingTimer() { } interface ApiData { - ok: boolean code: number msg: string data?: T diff --git a/diboot-admin-ui/src/views/dashboard/index.vue b/diboot-admin-ui/src/views/dashboard/index.vue index 69942308..ff06a7a4 100644 --- a/diboot-admin-ui/src/views/dashboard/index.vue +++ b/diboot-admin-ui/src/views/dashboard/index.vue @@ -2,10 +2,6 @@ console.log('Dashboard') - + diff --git a/diboot-admin-ui/src/views/login/index.vue b/diboot-admin-ui/src/views/login/index.vue index 6776f9ac..cca765b8 100644 --- a/diboot-admin-ui/src/views/login/index.vue +++ b/diboot-admin-ui/src/views/login/index.vue @@ -1,8 +1,8 @@ + diff --git a/diboot-admin-ui/src/layout/memu/subMenu.vue b/diboot-admin-ui/src/layout/memu/subMenu.vue index 412ec905..bfcea011 100644 --- a/diboot-admin-ui/src/layout/memu/subMenu.vue +++ b/diboot-admin-ui/src/layout/memu/subMenu.vue @@ -1,23 +1,17 @@