Commit 1c0d8fc1eb7da8cf87e2f6fdfdae14a3293359f8
Merge remote-tracking branch 'origin/dev' into feature/springdoc
# Conflicts: # yudao-dependencies/pom.xml # yudao-framework/yudao-spring-boot-starter-web/pom.xml # yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/swagger/config/YudaoSwaggerAutoConfiguration.java # yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/swagger/core/SpringFoxHandlerProviderBeanPostProcessor.java # yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/captcha/CaptchaController.java
Showing
117 changed files
with
2762 additions
and
2558 deletions
README.md
| @@ -191,19 +191,19 @@ ps:核心功能已经实现,正在对接微信小程序中... | @@ -191,19 +191,19 @@ ps:核心功能已经实现,正在对接微信小程序中... | ||
| 191 | | [Spring Boot](https://spring.io/projects/spring-boot) | 应用开发框架 | 2.7.7 | [文档](https://github.com/YunaiV/SpringBoot-Labs) | | 191 | | [Spring Boot](https://spring.io/projects/spring-boot) | 应用开发框架 | 2.7.7 | [文档](https://github.com/YunaiV/SpringBoot-Labs) | |
| 192 | | [MySQL](https://www.mysql.com/cn/) | 数据库服务器 | 5.7 / 8.0+ | | | 192 | | [MySQL](https://www.mysql.com/cn/) | 数据库服务器 | 5.7 / 8.0+ | | |
| 193 | | [Druid](https://github.com/alibaba/druid) | JDBC 连接池、监控组件 | 1.2.15 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) | | 193 | | [Druid](https://github.com/alibaba/druid) | JDBC 连接池、监控组件 | 1.2.15 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) | |
| 194 | -| [MyBatis Plus](https://mp.baomidou.com/) | MyBatis 增强工具包 | 3.5.3 | [文档](http://www.iocoder.cn/Spring-Boot/MyBatis/?yudao) | | 194 | +| [MyBatis Plus](https://mp.baomidou.com/) | MyBatis 增强工具包 | 3.5.3.1 | [文档](http://www.iocoder.cn/Spring-Boot/MyBatis/?yudao) | |
| 195 | | [Dynamic Datasource](https://dynamic-datasource.com/) | 动态数据源 | 3.6.1 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) | | 195 | | [Dynamic Datasource](https://dynamic-datasource.com/) | 动态数据源 | 3.6.1 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) | |
| 196 | | [Redis](https://redis.io/) | key-value 数据库 | 5.0 / 6.0 | | | 196 | | [Redis](https://redis.io/) | key-value 数据库 | 5.0 / 6.0 | | |
| 197 | | [Redisson](https://github.com/redisson/redisson) | Redis 客户端 | 3.18.0 | [文档](http://www.iocoder.cn/Spring-Boot/Redis/?yudao) | | 197 | | [Redisson](https://github.com/redisson/redisson) | Redis 客户端 | 3.18.0 | [文档](http://www.iocoder.cn/Spring-Boot/Redis/?yudao) | |
| 198 | | [Spring MVC](https://github.com/spring-projects/spring-framework/tree/master/spring-webmvc) | MVC 框架 | 5.3.24 | [文档](http://www.iocoder.cn/SpringMVC/MVC/?yudao) | | 198 | | [Spring MVC](https://github.com/spring-projects/spring-framework/tree/master/spring-webmvc) | MVC 框架 | 5.3.24 | [文档](http://www.iocoder.cn/SpringMVC/MVC/?yudao) | |
| 199 | -| [Spring Security](https://github.com/spring-projects/spring-security) | Spring 安全框架 | 5.7.5 | [文档](http://www.iocoder.cn/Spring-Boot/Spring-Security/?yudao) | | 199 | +| [Spring Security](https://github.com/spring-projects/spring-security) | Spring 安全框架 | 5.7.6 | [文档](http://www.iocoder.cn/Spring-Boot/Spring-Security/?yudao) | |
| 200 | | [Hibernate Validator](https://github.com/hibernate/hibernate-validator) | 参数校验组件 | 6.2.5 | [文档](http://www.iocoder.cn/Spring-Boot/Validation/?yudao) | | 200 | | [Hibernate Validator](https://github.com/hibernate/hibernate-validator) | 参数校验组件 | 6.2.5 | [文档](http://www.iocoder.cn/Spring-Boot/Validation/?yudao) | |
| 201 | | [Flowable](https://github.com/flowable/flowable-engine) | 工作流引擎 | 6.8.0 | [文档](https://doc.iocoder.cn/bpm/) | | 201 | | [Flowable](https://github.com/flowable/flowable-engine) | 工作流引擎 | 6.8.0 | [文档](https://doc.iocoder.cn/bpm/) | |
| 202 | | [Quartz](https://github.com/quartz-scheduler) | 任务调度组件 | 2.3.2 | [文档](http://www.iocoder.cn/Spring-Boot/Job/?yudao) | | 202 | | [Quartz](https://github.com/quartz-scheduler) | 任务调度组件 | 2.3.2 | [文档](http://www.iocoder.cn/Spring-Boot/Job/?yudao) | |
| 203 | | [Knife4j](https://gitee.com/xiaoym/knife4j) | Swagger 增强 UI 实现 | 4.0.0 | [文档](http://www.iocoder.cn/Spring-Boot/Swagger/?yudao) | | 203 | | [Knife4j](https://gitee.com/xiaoym/knife4j) | Swagger 增强 UI 实现 | 4.0.0 | [文档](http://www.iocoder.cn/Spring-Boot/Swagger/?yudao) | |
| 204 | | [Resilience4j](https://github.com/resilience4j/resilience4j) | 服务保障组件 | 1.7.1 | [文档](http://www.iocoder.cn/Spring-Boot/Resilience4j/?yudao) | | 204 | | [Resilience4j](https://github.com/resilience4j/resilience4j) | 服务保障组件 | 1.7.1 | [文档](http://www.iocoder.cn/Spring-Boot/Resilience4j/?yudao) | |
| 205 | | [SkyWalking](https://skywalking.apache.org/) | 分布式应用追踪系统 | 8.12.0 | [文档](http://www.iocoder.cn/Spring-Boot/SkyWalking/?yudao) | | 205 | | [SkyWalking](https://skywalking.apache.org/) | 分布式应用追踪系统 | 8.12.0 | [文档](http://www.iocoder.cn/Spring-Boot/SkyWalking/?yudao) | |
| 206 | -| [Spring Boot Admin](https://github.com/codecentric/spring-boot-admin) | Spring Boot 监控平台 | 2.7.9 | [文档](http://www.iocoder.cn/Spring-Boot/Admin/?yudao) | | 206 | +| [Spring Boot Admin](https://github.com/codecentric/spring-boot-admin) | Spring Boot 监控平台 | 2.7.10 | [文档](http://www.iocoder.cn/Spring-Boot/Admin/?yudao) | |
| 207 | | [Jackson](https://github.com/FasterXML/jackson) | JSON 工具库 | 2.13.3 | | | 207 | | [Jackson](https://github.com/FasterXML/jackson) | JSON 工具库 | 2.13.3 | | |
| 208 | | [MapStruct](https://mapstruct.org/) | Java Bean 转换 | 1.5.3.Final | [文档](http://www.iocoder.cn/Spring-Boot/MapStruct/?yudao) | | 208 | | [MapStruct](https://mapstruct.org/) | Java Bean 转换 | 1.5.3.Final | [文档](http://www.iocoder.cn/Spring-Boot/MapStruct/?yudao) | |
| 209 | | [Lombok](https://projectlombok.org/) | 消除冗长的 Java 代码 | 1.18.24 | [文档](http://www.iocoder.cn/Spring-Boot/Lombok/?yudao) | | 209 | | [Lombok](https://projectlombok.org/) | 消除冗长的 Java 代码 | 1.18.24 | [文档](http://www.iocoder.cn/Spring-Boot/Lombok/?yudao) | |
| @@ -227,7 +227,7 @@ ps:核心功能已经实现,正在对接微信小程序中... | @@ -227,7 +227,7 @@ ps:核心功能已经实现,正在对接微信小程序中... | ||
| 227 | | [TypeScript](https://www.typescriptlang.org/docs/) | TypeScript | 4.9.4 | | 227 | | [TypeScript](https://www.typescriptlang.org/docs/) | TypeScript | 4.9.4 | |
| 228 | | [pinia](https://pinia.vuejs.org/) | vuex5 | 2.0.28 | | 228 | | [pinia](https://pinia.vuejs.org/) | vuex5 | 2.0.28 | |
| 229 | | [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 9.2.2 | | 229 | | [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 9.2.2 | |
| 230 | -| [vxe-table](https://vxetable.cn/) | vue最强表单 | 4.3.7 | | 230 | +| [vxe-table](https://vxetable.cn/) | vue最强表单 | 4.3.9 | |
| 231 | 231 | ||
| 232 | ### [管理后台 uni-app 跨端](./yudao-ui-admin-uniapp) | 232 | ### [管理后台 uni-app 跨端](./yudao-ui-admin-uniapp) |
| 233 | 233 |
pom.xml
| @@ -29,15 +29,16 @@ | @@ -29,15 +29,16 @@ | ||
| 29 | <url>https://github.com/YunaiV/ruoyi-vue-pro</url> | 29 | <url>https://github.com/YunaiV/ruoyi-vue-pro</url> |
| 30 | 30 | ||
| 31 | <properties> | 31 | <properties> |
| 32 | - <revision>1.6.5-snapshot</revision> | 32 | + <revision>1.6.6-snapshot</revision> |
| 33 | <!-- Maven 相关 --> | 33 | <!-- Maven 相关 --> |
| 34 | <java.version>1.8</java.version> | 34 | <java.version>1.8</java.version> |
| 35 | <maven.compiler.source>${java.version}</maven.compiler.source> | 35 | <maven.compiler.source>${java.version}</maven.compiler.source> |
| 36 | <maven.compiler.target>${java.version}</maven.compiler.target> | 36 | <maven.compiler.target>${java.version}</maven.compiler.target> |
| 37 | <maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version> | 37 | <maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version> |
| 38 | - <maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version> | 38 | + <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version> |
| 39 | <!-- 看看咋放到 bom 里 --> | 39 | <!-- 看看咋放到 bom 里 --> |
| 40 | <lombok.version>1.18.24</lombok.version> | 40 | <lombok.version>1.18.24</lombok.version> |
| 41 | + <spring.boot.version>2.7.7</spring.boot.version> | ||
| 41 | <mapstruct.version>1.5.3.Final</mapstruct.version> | 42 | <mapstruct.version>1.5.3.Final</mapstruct.version> |
| 42 | <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | 43 | <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| 43 | </properties> | 44 | </properties> |
| @@ -64,7 +65,8 @@ | @@ -64,7 +65,8 @@ | ||
| 64 | <artifactId>maven-surefire-plugin</artifactId> | 65 | <artifactId>maven-surefire-plugin</artifactId> |
| 65 | <version>${maven-surefire-plugin.version}</version> | 66 | <version>${maven-surefire-plugin.version}</version> |
| 66 | </plugin> | 67 | </plugin> |
| 67 | - <!-- maven-compiler-plugin 插件,解决 Lombok + MapStruct 组合 --> | 68 | + <!-- maven-compiler-plugin 插件,解决 spring-boot-configuration-processor + Lombok + MapStruct 组合 --> |
| 69 | + <!-- https://stackoverflow.com/questions/33483697/re-run-spring-boot-configuration-annotation-processor-to-update-generated-metada --> | ||
| 68 | <plugin> | 70 | <plugin> |
| 69 | <groupId>org.apache.maven.plugins</groupId> | 71 | <groupId>org.apache.maven.plugins</groupId> |
| 70 | <artifactId>maven-compiler-plugin</artifactId> | 72 | <artifactId>maven-compiler-plugin</artifactId> |
| @@ -72,6 +74,11 @@ | @@ -72,6 +74,11 @@ | ||
| 72 | <configuration> | 74 | <configuration> |
| 73 | <annotationProcessorPaths> | 75 | <annotationProcessorPaths> |
| 74 | <path> | 76 | <path> |
| 77 | + <groupId>org.springframework.boot</groupId> | ||
| 78 | + <artifactId>spring-boot-configuration-processor</artifactId> | ||
| 79 | + <version>${spring.boot.version}</version> | ||
| 80 | + </path> | ||
| 81 | + <path> | ||
| 75 | <groupId>org.projectlombok</groupId> | 82 | <groupId>org.projectlombok</groupId> |
| 76 | <artifactId>lombok</artifactId> | 83 | <artifactId>lombok</artifactId> |
| 77 | <version>${lombok.version}</version> | 84 | <version>${lombok.version}</version> |
sql/mysql/optional/vue3-menu.sql
| @@ -262,5 +262,6 @@ INSERT INTO `system_menu` VALUES (1266, '客户端更新', 'system:oauth2-client | @@ -262,5 +262,6 @@ INSERT INTO `system_menu` VALUES (1266, '客户端更新', 'system:oauth2-client | ||
| 262 | INSERT INTO `system_menu` VALUES (1267, '客户端删除', 'system:oauth2-client:delete', 3, 4, 1263, '', '', '', 0, b'1', b'1', '', '2022-05-10 16:26:33', '1', '2022-05-11 00:31:33', b'0'); | 262 | INSERT INTO `system_menu` VALUES (1267, '客户端删除', 'system:oauth2-client:delete', 3, 4, 1263, '', '', '', 0, b'1', b'1', '', '2022-05-10 16:26:33', '1', '2022-05-11 00:31:33', b'0'); |
| 263 | INSERT INTO `system_menu` VALUES (1281, '可视化报表', '', 1, 12, 0, '/visualization', 'ep:histogram', NULL, 0, b'1', b'1', '1', '2022-07-10 20:22:15', '1', '2022-07-10 20:33:30', b'0'); | 263 | INSERT INTO `system_menu` VALUES (1281, '可视化报表', '', 1, 12, 0, '/visualization', 'ep:histogram', NULL, 0, b'1', b'1', '1', '2022-07-10 20:22:15', '1', '2022-07-10 20:33:30', b'0'); |
| 264 | INSERT INTO `system_menu` VALUES (1282, '积木报表', '', 2, 1, 1281, 'jimu-report', 'ep:histogram', 'visualization/jmreport/index', 0, b'1', b'1', '1', '2022-07-10 20:26:36', '1', '2022-07-28 21:17:34', b'0'); | 264 | INSERT INTO `system_menu` VALUES (1282, '积木报表', '', 2, 1, 1281, 'jimu-report', 'ep:histogram', 'visualization/jmreport/index', 0, b'1', b'1', '1', '2022-07-10 20:26:36', '1', '2022-07-28 21:17:34', b'0'); |
| 265 | +INSERT INTO `system_menu` VALUES (1283, 'webSocket连接', '', 2, 14, 2, 'webSocket', 'ep:turn-off', 'infra/webSocket/index', 0, b'1', b'1', '1', '2023-01-01 11:43:04', '1', '2023-01-01 11:43:04', b'0'); | ||
| 265 | 266 | ||
| 266 | SET FOREIGN_KEY_CHECKS = 1; | 267 | SET FOREIGN_KEY_CHECKS = 1; |
sql/mysql/ruoyi-vue-pro.sql
| @@ -1710,6 +1710,8 @@ INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_i | @@ -1710,6 +1710,8 @@ INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_i | ||
| 1710 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1267, '客户端删除', 'system:oauth2-client:delete', 3, 4, 1263, '', '', '', 0, b'1', b'1', '', '2022-05-10 16:26:33', '1', '2022-05-11 00:31:33', b'0'); | 1710 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1267, '客户端删除', 'system:oauth2-client:delete', 3, 4, 1263, '', '', '', 0, b'1', b'1', '', '2022-05-10 16:26:33', '1', '2022-05-11 00:31:33', b'0'); |
| 1711 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1281, '可视化报表', '', 1, 12, 0, '/visualization', 'chart', NULL, 0, b'1', b'1', '1', '2022-07-10 20:22:15', '1', '2022-07-10 20:33:30', b'0'); | 1711 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1281, '可视化报表', '', 1, 12, 0, '/visualization', 'chart', NULL, 0, b'1', b'1', '1', '2022-07-10 20:22:15', '1', '2022-07-10 20:33:30', b'0'); |
| 1712 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1282, '积木报表', '', 2, 1, 1281, 'jimu-report', 'example', 'visualization/jmreport/index', 0, b'1', b'1', '1', '2022-07-10 20:26:36', '1', '2022-07-28 21:17:34', b'0'); | 1712 | INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1282, '积木报表', '', 2, 1, 1281, 'jimu-report', 'example', 'visualization/jmreport/index', 0, b'1', b'1', '1', '2022-07-10 20:26:36', '1', '2022-07-28 21:17:34', b'0'); |
| 1713 | +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `status`, `visible`, `keep_alive`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1283, 'webSocket连接', '', 2, 14, 2, 'webSocket', 'message', 'infra/webSocket/index', 0, b'1', b'1', '1', '2023-01-01 11:43:04', '1', '2023-01-01 11:43:04', b'0'); | ||
| 1714 | + | ||
| 1713 | COMMIT; | 1715 | COMMIT; |
| 1714 | 1716 | ||
| 1715 | -- ---------------------------- | 1717 | -- ---------------------------- |
sql/optional/visualization/jimureport.mysql5.7.create.sql
| @@ -1344,6 +1344,7 @@ CREATE TABLE `jimu_report_share` ( | @@ -1344,6 +1344,7 @@ CREATE TABLE `jimu_report_share` ( | ||
| 1344 | `last_update_time` datetime NULL DEFAULT NULL COMMENT '最后更新时间', | 1344 | `last_update_time` datetime NULL DEFAULT NULL COMMENT '最后更新时间', |
| 1345 | `term_of_validity` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '有效期(0:永久有效,1:1天,2:7天)', | 1345 | `term_of_validity` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '有效期(0:永久有效,1:1天,2:7天)', |
| 1346 | `status` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否过期(0未过期,1已过期)', | 1346 | `status` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否过期(0未过期,1已过期)', |
| 1347 | + `preview_lock_status` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码锁状态', | ||
| 1347 | PRIMARY KEY (`id`) USING BTREE | 1348 | PRIMARY KEY (`id`) USING BTREE |
| 1348 | ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '积木报表预览权限表' ROW_FORMAT = Dynamic; | 1349 | ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '积木报表预览权限表' ROW_FORMAT = Dynamic; |
| 1349 | 1350 |
yudao-dependencies/pom.xml
| @@ -14,7 +14,7 @@ | @@ -14,7 +14,7 @@ | ||
| 14 | <url>https://github.com/YunaiV/ruoyi-vue-pro</url> | 14 | <url>https://github.com/YunaiV/ruoyi-vue-pro</url> |
| 15 | 15 | ||
| 16 | <properties> | 16 | <properties> |
| 17 | - <revision>1.6.5-snapshot</revision> | 17 | + <revision>1.6.6-snapshot</revision> |
| 18 | <!-- 统一依赖管理 --> | 18 | <!-- 统一依赖管理 --> |
| 19 | <spring.boot.version>2.7.7</spring.boot.version> | 19 | <spring.boot.version>2.7.7</spring.boot.version> |
| 20 | <!-- Web 相关 --> | 20 | <!-- Web 相关 --> |
| @@ -23,8 +23,8 @@ | @@ -23,8 +23,8 @@ | ||
| 23 | <servlet.versoin>2.5</servlet.versoin> | 23 | <servlet.versoin>2.5</servlet.versoin> |
| 24 | <!-- DB 相关 --> | 24 | <!-- DB 相关 --> |
| 25 | <druid.version>1.2.15</druid.version> | 25 | <druid.version>1.2.15</druid.version> |
| 26 | - <mybatis-plus.version>3.5.3</mybatis-plus.version> | ||
| 27 | - <mybatis-plus-generator.version>3.5.2</mybatis-plus-generator.version> | 26 | + <mybatis-plus.version>3.5.3.1</mybatis-plus.version> |
| 27 | + <mybatis-plus-generator.version>3.5.3.1</mybatis-plus-generator.version> | ||
| 28 | <dynamic-datasource.version>3.6.1</dynamic-datasource.version> | 28 | <dynamic-datasource.version>3.6.1</dynamic-datasource.version> |
| 29 | <redisson.version>3.18.0</redisson.version> | 29 | <redisson.version>3.18.0</redisson.version> |
| 30 | <!-- 服务保障相关 --> | 30 | <!-- 服务保障相关 --> |
| @@ -32,7 +32,7 @@ | @@ -32,7 +32,7 @@ | ||
| 32 | <resilience4j.version>1.7.1</resilience4j.version> | 32 | <resilience4j.version>1.7.1</resilience4j.version> |
| 33 | <!-- 监控相关 --> | 33 | <!-- 监控相关 --> |
| 34 | <skywalking.version>8.12.0</skywalking.version> | 34 | <skywalking.version>8.12.0</skywalking.version> |
| 35 | - <spring-boot-admin.version>2.7.9</spring-boot-admin.version> | 35 | + <spring-boot-admin.version>2.7.10</spring-boot-admin.version> |
| 36 | <opentracing.version>0.33.0</opentracing.version> | 36 | <opentracing.version>0.33.0</opentracing.version> |
| 37 | <!-- Test 测试相关 --> | 37 | <!-- Test 测试相关 --> |
| 38 | <podam.version>7.2.11.RELEASE</podam.version> | 38 | <podam.version>7.2.11.RELEASE</podam.version> |
| @@ -41,10 +41,12 @@ | @@ -41,10 +41,12 @@ | ||
| 41 | <!-- Bpm 工作流相关 --> | 41 | <!-- Bpm 工作流相关 --> |
| 42 | <flowable.version>6.8.0</flowable.version> | 42 | <flowable.version>6.8.0</flowable.version> |
| 43 | <!-- 工具类相关 --> | 43 | <!-- 工具类相关 --> |
| 44 | + <captcha-plus.version>1.0.0</captcha-plus.version> | ||
| 45 | + <jsoup.version>1.15.3</jsoup.version> | ||
| 44 | <lombok.version>1.18.24</lombok.version> | 46 | <lombok.version>1.18.24</lombok.version> |
| 45 | <mapstruct.version>1.5.3.Final</mapstruct.version> | 47 | <mapstruct.version>1.5.3.Final</mapstruct.version> |
| 46 | <hutool.version>5.8.11</hutool.version> | 48 | <hutool.version>5.8.11</hutool.version> |
| 47 | - <easyexcel.verion>3.1.4</easyexcel.verion> | 49 | + <easyexcel.verion>3.1.5</easyexcel.verion> |
| 48 | <velocity.version>2.3</velocity.version> | 50 | <velocity.version>2.3</velocity.version> |
| 49 | <screw.version>1.0.5</screw.version> | 51 | <screw.version>1.0.5</screw.version> |
| 50 | <fastjson.version>1.2.83</fastjson.version> | 52 | <fastjson.version>1.2.83</fastjson.version> |
| @@ -54,16 +56,15 @@ | @@ -54,16 +56,15 @@ | ||
| 54 | <commons-net.version>3.8.0</commons-net.version> | 56 | <commons-net.version>3.8.0</commons-net.version> |
| 55 | <jsch.version>0.1.55</jsch.version> | 57 | <jsch.version>0.1.55</jsch.version> |
| 56 | <tika-core.version>2.6.0</tika-core.version> | 58 | <tika-core.version>2.6.0</tika-core.version> |
| 57 | - <aj-captcha.version>1.3.0</aj-captcha.version> | ||
| 58 | <netty-all.version>4.1.86.Final</netty-all.version> | 59 | <netty-all.version>4.1.86.Final</netty-all.version> |
| 59 | <ip2region.version>2.6.6</ip2region.version> | 60 | <ip2region.version>2.6.6</ip2region.version> |
| 60 | <!-- 三方云服务相关 --> | 61 | <!-- 三方云服务相关 --> |
| 61 | <okio.version>3.0.0</okio.version> | 62 | <okio.version>3.0.0</okio.version> |
| 62 | <okhttp3.version>4.10.0</okhttp3.version> | 63 | <okhttp3.version>4.10.0</okhttp3.version> |
| 63 | - <minio.version>8.4.6</minio.version> | 64 | + <minio.version>8.5.1</minio.version> |
| 64 | <aliyun-java-sdk-core.version>4.6.3</aliyun-java-sdk-core.version> | 65 | <aliyun-java-sdk-core.version>4.6.3</aliyun-java-sdk-core.version> |
| 65 | <aliyun-java-sdk-dysmsapi.version>2.2.1</aliyun-java-sdk-dysmsapi.version> | 66 | <aliyun-java-sdk-dysmsapi.version>2.2.1</aliyun-java-sdk-dysmsapi.version> |
| 66 | - <tencentcloud-sdk-java.version>3.1.660</tencentcloud-sdk-java.version> | 67 | + <tencentcloud-sdk-java.version>3.1.676</tencentcloud-sdk-java.version> |
| 67 | <justauth.version>1.4.0</justauth.version> | 68 | <justauth.version>1.4.0</justauth.version> |
| 68 | <jimureport.version>1.5.6</jimureport.version> | 69 | <jimureport.version>1.5.6</jimureport.version> |
| 69 | <xercesImpl.version>2.12.2</xercesImpl.version> | 70 | <xercesImpl.version>2.12.2</xercesImpl.version> |
| @@ -440,12 +441,6 @@ | @@ -440,12 +441,6 @@ | ||
| 440 | </dependency> | 441 | </dependency> |
| 441 | 442 | ||
| 442 | <dependency> | 443 | <dependency> |
| 443 | - <groupId>com.anji-plus</groupId> | ||
| 444 | - <artifactId>spring-boot-starter-captcha</artifactId> | ||
| 445 | - <version>${aj-captcha.version}</version> | ||
| 446 | - </dependency> | ||
| 447 | - | ||
| 448 | - <dependency> | ||
| 449 | <groupId>org.apache.velocity</groupId> | 444 | <groupId>org.apache.velocity</groupId> |
| 450 | <artifactId>velocity-engine-core</artifactId> | 445 | <artifactId>velocity-engine-core</artifactId> |
| 451 | <version>${velocity.version}</version> | 446 | <version>${velocity.version}</version> |
| @@ -510,11 +505,23 @@ | @@ -510,11 +505,23 @@ | ||
| 510 | </dependency> | 505 | </dependency> |
| 511 | 506 | ||
| 512 | <dependency> | 507 | <dependency> |
| 508 | + <groupId>com.xingyuv</groupId> | ||
| 509 | + <artifactId>spring-boot-starter-captcha-plus</artifactId> | ||
| 510 | + <version>${captcha-plus.version}</version> | ||
| 511 | + </dependency> | ||
| 512 | + | ||
| 513 | + <dependency> | ||
| 513 | <groupId>org.lionsoul</groupId> | 514 | <groupId>org.lionsoul</groupId> |
| 514 | <artifactId>ip2region</artifactId> | 515 | <artifactId>ip2region</artifactId> |
| 515 | <version>${ip2region.version}</version> | 516 | <version>${ip2region.version}</version> |
| 516 | </dependency> | 517 | </dependency> |
| 517 | 518 | ||
| 519 | + <dependency> | ||
| 520 | + <groupId>org.jsoup</groupId> | ||
| 521 | + <artifactId>jsoup</artifactId> | ||
| 522 | + <version>${jsoup.version}</version> | ||
| 523 | + </dependency> | ||
| 524 | + | ||
| 518 | <!-- 三方云服务相关 --> | 525 | <!-- 三方云服务相关 --> |
| 519 | <dependency> | 526 | <dependency> |
| 520 | <groupId>com.squareup.okio</groupId> | 527 | <groupId>com.squareup.okio</groupId> |
| @@ -588,6 +595,12 @@ | @@ -588,6 +595,12 @@ | ||
| 588 | <artifactId>xercesImpl</artifactId> | 595 | <artifactId>xercesImpl</artifactId> |
| 589 | <version>${xercesImpl.version}</version> | 596 | <version>${xercesImpl.version}</version> |
| 590 | </dependency> | 597 | </dependency> |
| 598 | + <!-- SpringBoot Websocket --> | ||
| 599 | + <dependency> | ||
| 600 | + <groupId>org.springframework.boot</groupId> | ||
| 601 | + <artifactId>spring-boot-starter-websocket</artifactId> | ||
| 602 | + <version>${spring.boot.version}</version> | ||
| 603 | + </dependency> | ||
| 591 | </dependencies> | 604 | </dependencies> |
| 592 | </dependencyManagement> | 605 | </dependencyManagement> |
| 593 | 606 |
yudao-framework/pom.xml
| @@ -40,6 +40,7 @@ | @@ -40,6 +40,7 @@ | ||
| 40 | 40 | ||
| 41 | <module>yudao-spring-boot-starter-flowable</module> | 41 | <module>yudao-spring-boot-starter-flowable</module> |
| 42 | <module>yudao-spring-boot-starter-captcha</module> | 42 | <module>yudao-spring-boot-starter-captcha</module> |
| 43 | + <module>yudao-spring-boot-starter-websocket</module> | ||
| 43 | </modules> | 44 | </modules> |
| 44 | 45 | ||
| 45 | <artifactId>yudao-framework</artifactId> | 46 | <artifactId>yudao-framework</artifactId> |
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/validation/ValidationUtils.java
| 1 | package cn.iocoder.yudao.framework.common.util.validation; | 1 | package cn.iocoder.yudao.framework.common.util.validation; |
| 2 | 2 | ||
| 3 | import cn.hutool.core.collection.CollUtil; | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | -import cn.hutool.core.util.StrUtil; | ||
| 5 | import org.springframework.util.StringUtils; | 4 | import org.springframework.util.StringUtils; |
| 6 | 5 | ||
| 7 | import javax.validation.ConstraintViolation; | 6 | import javax.validation.ConstraintViolation; |
yudao-framework/yudao-spring-boot-starter-biz-pay/pom.xml
| @@ -52,7 +52,7 @@ | @@ -52,7 +52,7 @@ | ||
| 52 | <dependency> | 52 | <dependency> |
| 53 | <groupId>com.alipay.sdk</groupId> | 53 | <groupId>com.alipay.sdk</groupId> |
| 54 | <artifactId>alipay-sdk-java</artifactId> | 54 | <artifactId>alipay-sdk-java</artifactId> |
| 55 | - <version>4.35.9.ALL</version> | 55 | + <version>4.35.32.ALL</version> |
| 56 | <exclusions> | 56 | <exclusions> |
| 57 | <exclusion> | 57 | <exclusion> |
| 58 | <groupId>org.bouncycastle</groupId> | 58 | <groupId>org.bouncycastle</groupId> |
yudao-framework/yudao-spring-boot-starter-captcha/pom.xml
| @@ -17,6 +17,10 @@ | @@ -17,6 +17,10 @@ | ||
| 17 | </description> | 17 | </description> |
| 18 | 18 | ||
| 19 | <dependencies> | 19 | <dependencies> |
| 20 | + <dependency> | ||
| 21 | + <groupId>com.xingyuv</groupId> | ||
| 22 | + <artifactId>spring-boot-starter-captcha-plus</artifactId> | ||
| 23 | + </dependency> | ||
| 20 | <!-- Spring 核心 --> | 24 | <!-- Spring 核心 --> |
| 21 | <dependency> | 25 | <dependency> |
| 22 | <groupId>org.springframework.boot</groupId> | 26 | <groupId>org.springframework.boot</groupId> |
| @@ -29,11 +33,6 @@ | @@ -29,11 +33,6 @@ | ||
| 29 | <artifactId>yudao-spring-boot-starter-redis</artifactId> | 33 | <artifactId>yudao-spring-boot-starter-redis</artifactId> |
| 30 | </dependency> | 34 | </dependency> |
| 31 | 35 | ||
| 32 | - <!-- 验证码相关 --> | ||
| 33 | - <dependency> | ||
| 34 | - <groupId>com.anji-plus</groupId> | ||
| 35 | - <artifactId>spring-boot-starter-captcha</artifactId> | ||
| 36 | - </dependency> | ||
| 37 | </dependencies> | 36 | </dependencies> |
| 38 | 37 | ||
| 39 | </project> | 38 | </project> |
yudao-framework/yudao-spring-boot-starter-captcha/src/main/java/cn/iocoder/yudao/framework/captcha/core/enums/CaptchaRedisKeyConstants.java
| @@ -2,12 +2,9 @@ package cn.iocoder.yudao.framework.captcha.core.enums; | @@ -2,12 +2,9 @@ package cn.iocoder.yudao.framework.captcha.core.enums; | ||
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.redis.core.RedisKeyDefine; | 3 | import cn.iocoder.yudao.framework.redis.core.RedisKeyDefine; |
| 4 | import com.anji.captcha.model.vo.PointVO; | 4 | import com.anji.captcha.model.vo.PointVO; |
| 5 | -import org.redisson.api.RLock; | ||
| 6 | 5 | ||
| 7 | import java.time.Duration; | 6 | import java.time.Duration; |
| 8 | -import java.util.Map; | ||
| 9 | 7 | ||
| 10 | -import static cn.iocoder.yudao.framework.redis.core.RedisKeyDefine.KeyTypeEnum.HASH; | ||
| 11 | import static cn.iocoder.yudao.framework.redis.core.RedisKeyDefine.KeyTypeEnum.STRING; | 8 | import static cn.iocoder.yudao.framework.redis.core.RedisKeyDefine.KeyTypeEnum.STRING; |
| 12 | 9 | ||
| 13 | /** | 10 | /** |
yudao-framework/yudao-spring-boot-starter-captcha/src/main/java/cn/iocoder/yudao/framework/captcha/core/service/RedisCaptchaServiceImpl.java
| @@ -3,7 +3,6 @@ package cn.iocoder.yudao.framework.captcha.core.service; | @@ -3,7 +3,6 @@ package cn.iocoder.yudao.framework.captcha.core.service; | ||
| 3 | import com.anji.captcha.service.CaptchaCacheService; | 3 | import com.anji.captcha.service.CaptchaCacheService; |
| 4 | import lombok.AllArgsConstructor; | 4 | import lombok.AllArgsConstructor; |
| 5 | import lombok.NoArgsConstructor; | 5 | import lombok.NoArgsConstructor; |
| 6 | -import lombok.RequiredArgsConstructor; | ||
| 7 | import org.springframework.data.redis.core.StringRedisTemplate; | 6 | import org.springframework.data.redis.core.StringRedisTemplate; |
| 8 | 7 | ||
| 9 | import javax.annotation.Resource; | 8 | import javax.annotation.Resource; |
yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/mapper/BaseMapperX.java
| @@ -2,7 +2,6 @@ package cn.iocoder.yudao.framework.mybatis.core.mapper; | @@ -2,7 +2,6 @@ package cn.iocoder.yudao.framework.mybatis.core.mapper; | ||
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.PageParam; | 3 | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 5 | -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | ||
| 6 | import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; | 5 | import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; |
| 7 | import com.baomidou.mybatisplus.core.conditions.Wrapper; | 6 | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| 8 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 7 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| @@ -10,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | @@ -10,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | ||
| 10 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; | 9 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| 11 | import com.baomidou.mybatisplus.core.metadata.IPage; | 10 | import com.baomidou.mybatisplus.core.metadata.IPage; |
| 12 | import com.baomidou.mybatisplus.core.toolkit.support.SFunction; | 11 | import com.baomidou.mybatisplus.core.toolkit.support.SFunction; |
| 12 | +import com.baomidou.mybatisplus.extension.toolkit.Db; | ||
| 13 | import org.apache.ibatis.annotations.Param; | 13 | import org.apache.ibatis.annotations.Param; |
| 14 | 14 | ||
| 15 | import java.util.Collection; | 15 | import java.util.Collection; |
| @@ -92,8 +92,22 @@ public interface BaseMapperX<T> extends BaseMapper<T> { | @@ -92,8 +92,22 @@ public interface BaseMapperX<T> extends BaseMapper<T> { | ||
| 92 | entities.forEach(this::insert); | 92 | entities.forEach(this::insert); |
| 93 | } | 93 | } |
| 94 | 94 | ||
| 95 | + /** | ||
| 96 | + * 批量插入,适合大量数据插入 | ||
| 97 | + * | ||
| 98 | + * @param entities 实体们 | ||
| 99 | + * @param size 插入数量 Db.saveBatch 默认为1000 | ||
| 100 | + */ | ||
| 101 | + default void insertBatch(Collection<T> entities, int size) { | ||
| 102 | + Db.saveBatch(entities, size); | ||
| 103 | + } | ||
| 104 | + | ||
| 95 | default void updateBatch(T update) { | 105 | default void updateBatch(T update) { |
| 96 | update(update, new QueryWrapper<>()); | 106 | update(update, new QueryWrapper<>()); |
| 97 | } | 107 | } |
| 98 | 108 | ||
| 109 | + default void updateBatch(Collection<T> entities, int size) { | ||
| 110 | + Db.updateBatchById(entities, size); | ||
| 111 | + } | ||
| 112 | + | ||
| 99 | } | 113 | } |
yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/YudaoWebSecurityConfigurerAdapter.java
| @@ -129,6 +129,8 @@ public class YudaoWebSecurityConfigurerAdapter { | @@ -129,6 +129,8 @@ public class YudaoWebSecurityConfigurerAdapter { | ||
| 129 | .antMatchers(buildAppApi("/**")).permitAll() | 129 | .antMatchers(buildAppApi("/**")).permitAll() |
| 130 | // 1.5 验证码captcha 允许匿名访问 | 130 | // 1.5 验证码captcha 允许匿名访问 |
| 131 | .antMatchers("/captcha/get", "/captcha/check").permitAll() | 131 | .antMatchers("/captcha/get", "/captcha/check").permitAll() |
| 132 | + // 1.6 webSocket 允许匿名访问 | ||
| 133 | + .antMatchers("/websocket/message").permitAll() | ||
| 132 | // ②:每个项目的自定义规则 | 134 | // ②:每个项目的自定义规则 |
| 133 | .and().authorizeRequests(registry -> // 下面,循环设置自定义规则 | 135 | .and().authorizeRequests(registry -> // 下面,循环设置自定义规则 |
| 134 | authorizeRequestsCustomizers.forEach(customizer -> customizer.customize(registry))) | 136 | authorizeRequestsCustomizers.forEach(customizer -> customizer.customize(registry))) |
yudao-framework/yudao-spring-boot-starter-web/pom.xml
| @@ -68,6 +68,12 @@ | @@ -68,6 +68,12 @@ | ||
| 68 | <scope>provided</scope> <!-- 设置为 provided,主要是 GlobalExceptionHandler 使用 --> | 68 | <scope>provided</scope> <!-- 设置为 provided,主要是 GlobalExceptionHandler 使用 --> |
| 69 | </dependency> | 69 | </dependency> |
| 70 | 70 | ||
| 71 | + <!-- xss --> | ||
| 72 | + <dependency> | ||
| 73 | + <groupId>org.jsoup</groupId> | ||
| 74 | + <artifactId>jsoup</artifactId> | ||
| 75 | + </dependency> | ||
| 76 | + | ||
| 71 | </dependencies> | 77 | </dependencies> |
| 72 | 78 | ||
| 73 | </project> | 79 | </project> |
yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/config/YudaoWebAutoConfiguration.java
| @@ -2,15 +2,22 @@ package cn.iocoder.yudao.framework.web.config; | @@ -2,15 +2,22 @@ package cn.iocoder.yudao.framework.web.config; | ||
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.apilog.core.service.ApiErrorLogFrameworkService; | 3 | import cn.iocoder.yudao.framework.apilog.core.service.ApiErrorLogFrameworkService; |
| 4 | import cn.iocoder.yudao.framework.common.enums.WebFilterOrderEnum; | 4 | import cn.iocoder.yudao.framework.common.enums.WebFilterOrderEnum; |
| 5 | +import cn.iocoder.yudao.framework.web.core.clean.JsoupXssCleaner; | ||
| 6 | +import cn.iocoder.yudao.framework.web.core.clean.XssCleaner; | ||
| 5 | import cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter; | 7 | import cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter; |
| 6 | import cn.iocoder.yudao.framework.web.core.filter.DemoFilter; | 8 | import cn.iocoder.yudao.framework.web.core.filter.DemoFilter; |
| 7 | import cn.iocoder.yudao.framework.web.core.filter.XssFilter; | 9 | import cn.iocoder.yudao.framework.web.core.filter.XssFilter; |
| 8 | import cn.iocoder.yudao.framework.web.core.handler.GlobalExceptionHandler; | 10 | import cn.iocoder.yudao.framework.web.core.handler.GlobalExceptionHandler; |
| 9 | import cn.iocoder.yudao.framework.web.core.handler.GlobalResponseBodyHandler; | 11 | import cn.iocoder.yudao.framework.web.core.handler.GlobalResponseBodyHandler; |
| 12 | +import cn.iocoder.yudao.framework.web.core.json.XssStringJsonDeserializer; | ||
| 10 | import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; | 13 | import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; |
| 14 | +import com.fasterxml.jackson.databind.ObjectMapper; | ||
| 11 | import org.springframework.beans.factory.annotation.Value; | 15 | import org.springframework.beans.factory.annotation.Value; |
| 12 | import org.springframework.boot.autoconfigure.AutoConfiguration; | 16 | import org.springframework.boot.autoconfigure.AutoConfiguration; |
| 17 | +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; | ||
| 18 | +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; | ||
| 13 | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; | 19 | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
| 20 | +import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; | ||
| 14 | import org.springframework.boot.context.properties.EnableConfigurationProperties; | 21 | import org.springframework.boot.context.properties.EnableConfigurationProperties; |
| 15 | import org.springframework.boot.web.servlet.FilterRegistrationBean; | 22 | import org.springframework.boot.web.servlet.FilterRegistrationBean; |
| 16 | import org.springframework.context.annotation.Bean; | 23 | import org.springframework.context.annotation.Bean; |
| @@ -48,7 +55,7 @@ public class YudaoWebAutoConfiguration implements WebMvcConfigurer { | @@ -48,7 +55,7 @@ public class YudaoWebAutoConfiguration implements WebMvcConfigurer { | ||
| 48 | * 设置 API 前缀,仅仅匹配 controller 包下的 | 55 | * 设置 API 前缀,仅仅匹配 controller 包下的 |
| 49 | * | 56 | * |
| 50 | * @param configurer 配置 | 57 | * @param configurer 配置 |
| 51 | - * @param api API 配置 | 58 | + * @param api API 配置 |
| 52 | */ | 59 | */ |
| 53 | private void configurePathMatch(PathMatchConfigurer configurer, WebProperties.Api api) { | 60 | private void configurePathMatch(PathMatchConfigurer configurer, WebProperties.Api api) { |
| 54 | AntPathMatcher antPathMatcher = new AntPathMatcher("."); | 61 | AntPathMatcher antPathMatcher = new AntPathMatcher("."); |
| @@ -104,8 +111,9 @@ public class YudaoWebAutoConfiguration implements WebMvcConfigurer { | @@ -104,8 +111,9 @@ public class YudaoWebAutoConfiguration implements WebMvcConfigurer { | ||
| 104 | * 创建 XssFilter Bean,解决 Xss 安全问题 | 111 | * 创建 XssFilter Bean,解决 Xss 安全问题 |
| 105 | */ | 112 | */ |
| 106 | @Bean | 113 | @Bean |
| 107 | - public FilterRegistrationBean<XssFilter> xssFilter(XssProperties properties, PathMatcher pathMatcher) { | ||
| 108 | - return createFilterBean(new XssFilter(properties, pathMatcher), WebFilterOrderEnum.XSS_FILTER); | 114 | + @ConditionalOnBean(XssCleaner.class) |
| 115 | + public FilterRegistrationBean<XssFilter> xssFilter(XssProperties properties, PathMatcher pathMatcher, XssCleaner xssCleaner) { | ||
| 116 | + return createFilterBean(new XssFilter(properties, pathMatcher, xssCleaner), WebFilterOrderEnum.XSS_FILTER); | ||
| 109 | } | 117 | } |
| 110 | 118 | ||
| 111 | /** | 119 | /** |
| @@ -117,6 +125,32 @@ public class YudaoWebAutoConfiguration implements WebMvcConfigurer { | @@ -117,6 +125,32 @@ public class YudaoWebAutoConfiguration implements WebMvcConfigurer { | ||
| 117 | return createFilterBean(new DemoFilter(), WebFilterOrderEnum.DEMO_FILTER); | 125 | return createFilterBean(new DemoFilter(), WebFilterOrderEnum.DEMO_FILTER); |
| 118 | } | 126 | } |
| 119 | 127 | ||
| 128 | + | ||
| 129 | + /** | ||
| 130 | + * Xss 清理者 | ||
| 131 | + * | ||
| 132 | + * @return XssCleaner | ||
| 133 | + */ | ||
| 134 | + @Bean | ||
| 135 | + @ConditionalOnMissingBean(XssCleaner.class) | ||
| 136 | + public XssCleaner xssCleaner() { | ||
| 137 | + return new JsoupXssCleaner(); | ||
| 138 | + } | ||
| 139 | + | ||
| 140 | + /** | ||
| 141 | + * 注册 Jackson 的序列化器,用于处理 json 类型参数的 xss 过滤 | ||
| 142 | + * | ||
| 143 | + * @return Jackson2ObjectMapperBuilderCustomizer | ||
| 144 | + */ | ||
| 145 | + @Bean | ||
| 146 | + @ConditionalOnMissingBean(name = "xssJacksonCustomizer") | ||
| 147 | + @ConditionalOnBean(ObjectMapper.class) | ||
| 148 | + @ConditionalOnProperty(value = "yudao.xss.enable", havingValue = "true") | ||
| 149 | + public Jackson2ObjectMapperBuilderCustomizer xssJacksonCustomizer(XssCleaner xssCleaner) { | ||
| 150 | + // 在反序列化时进行 xss 过滤,可以替换使用 XssStringJsonSerializer,在序列化时进行处理 | ||
| 151 | + return builder -> builder.deserializerByType(String.class, new XssStringJsonDeserializer(xssCleaner)); | ||
| 152 | + } | ||
| 153 | + | ||
| 120 | private static <T extends Filter> FilterRegistrationBean<T> createFilterBean(T filter, Integer order) { | 154 | private static <T extends Filter> FilterRegistrationBean<T> createFilterBean(T filter, Integer order) { |
| 121 | FilterRegistrationBean<T> bean = new FilterRegistrationBean<>(filter); | 155 | FilterRegistrationBean<T> bean = new FilterRegistrationBean<>(filter); |
| 122 | bean.setOrder(order); | 156 | bean.setOrder(order); |
yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/clean/JsoupXssCleaner.java
0 → 100644
| 1 | +package cn.iocoder.yudao.framework.web.core.clean; | ||
| 2 | + | ||
| 3 | +import org.jsoup.Jsoup; | ||
| 4 | +import org.jsoup.nodes.Document; | ||
| 5 | +import org.jsoup.safety.Safelist; | ||
| 6 | + | ||
| 7 | +/** | ||
| 8 | + * jsonp 过滤字符串 | ||
| 9 | + */ | ||
| 10 | +public class JsoupXssCleaner implements XssCleaner { | ||
| 11 | + | ||
| 12 | + private final Safelist safelist; | ||
| 13 | + | ||
| 14 | + /** | ||
| 15 | + * 用于在 src 属性使用相对路径时,强制转换为绝对路径。 为空时不处理,值应为绝对路径的前缀(包含协议部分) | ||
| 16 | + */ | ||
| 17 | + private final String baseUri; | ||
| 18 | + | ||
| 19 | + /** | ||
| 20 | + * 无参构造,默认使用 {@link JsoupXssCleaner#buildSafelist} 方法构建一个安全列表 | ||
| 21 | + */ | ||
| 22 | + public JsoupXssCleaner() { | ||
| 23 | + this.safelist = buildSafelist(); | ||
| 24 | + this.baseUri = ""; | ||
| 25 | + } | ||
| 26 | + | ||
| 27 | + public JsoupXssCleaner(Safelist safelist) { | ||
| 28 | + this.safelist = safelist; | ||
| 29 | + this.baseUri = ""; | ||
| 30 | + } | ||
| 31 | + | ||
| 32 | + public JsoupXssCleaner(String baseUri) { | ||
| 33 | + this.safelist = buildSafelist(); | ||
| 34 | + this.baseUri = baseUri; | ||
| 35 | + } | ||
| 36 | + | ||
| 37 | + public JsoupXssCleaner(Safelist safelist, String baseUri) { | ||
| 38 | + this.safelist = safelist; | ||
| 39 | + this.baseUri = baseUri; | ||
| 40 | + } | ||
| 41 | + | ||
| 42 | + /** | ||
| 43 | + * 构建一个 Xss 清理的 Safelist 规则。 | ||
| 44 | + * 基于 Safelist#relaxed() 的基础上: | ||
| 45 | + * 1. 扩展支持了 style 和 class 属性 | ||
| 46 | + * 2. a 标签额外支持了 target 属性 | ||
| 47 | + * 3. img 标签额外支持了 data 协议,便于支持 base64 | ||
| 48 | + * | ||
| 49 | + * @return Safelist | ||
| 50 | + */ | ||
| 51 | + private Safelist buildSafelist() { | ||
| 52 | + // 使用 jsoup 提供的默认的 | ||
| 53 | + Safelist relaxedSafelist = Safelist.relaxed(); | ||
| 54 | + // 富文本编辑时一些样式是使用 style 来进行实现的 | ||
| 55 | + // 比如红色字体 style="color:red;", 所以需要给所有标签添加 style 属性 | ||
| 56 | + // 注意:style 属性会有注入风险 <img STYLE="background-image:url(javascript:alert('XSS'))"> | ||
| 57 | + relaxedSafelist.addAttributes(":all", "style", "class"); | ||
| 58 | + // 保留 a 标签的 target 属性 | ||
| 59 | + relaxedSafelist.addAttributes("a", "target"); | ||
| 60 | + // 支持img 为base64 | ||
| 61 | + relaxedSafelist.addProtocols("img", "src", "data"); | ||
| 62 | + | ||
| 63 | + // 保留相对路径, 保留相对路径时,必须提供对应的 baseUri 属性,否则依然会被删除 | ||
| 64 | + // WHITELIST.preserveRelativeLinks(false); | ||
| 65 | + | ||
| 66 | + // 移除 a 标签和 img 标签的一些协议限制,这会导致 xss 防注入失效,如 <img src=javascript:alert("xss")> | ||
| 67 | + // 虽然可以重写 WhiteList#isSafeAttribute 来处理,但是有隐患,所以暂时不支持相对路径 | ||
| 68 | + // WHITELIST.removeProtocols("a", "href", "ftp", "http", "https", "mailto"); | ||
| 69 | + // WHITELIST.removeProtocols("img", "src", "http", "https"); | ||
| 70 | + | ||
| 71 | + return relaxedSafelist; | ||
| 72 | + } | ||
| 73 | + | ||
| 74 | + @Override | ||
| 75 | + public String clean(String html) { | ||
| 76 | + return Jsoup.clean(html, baseUri, safelist, new Document.OutputSettings().prettyPrint(false)); | ||
| 77 | + } | ||
| 78 | + | ||
| 79 | +} | ||
| 80 | + |
yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/clean/XssCleaner.java
0 → 100644
yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/filter/XssFilter.java
| 1 | package cn.iocoder.yudao.framework.web.core.filter; | 1 | package cn.iocoder.yudao.framework.web.core.filter; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.web.config.XssProperties; | 3 | import cn.iocoder.yudao.framework.web.config.XssProperties; |
| 4 | +import cn.iocoder.yudao.framework.web.core.clean.XssCleaner; | ||
| 4 | import lombok.AllArgsConstructor; | 5 | import lombok.AllArgsConstructor; |
| 5 | import org.springframework.util.PathMatcher; | 6 | import org.springframework.util.PathMatcher; |
| 6 | import org.springframework.web.filter.OncePerRequestFilter; | 7 | import org.springframework.web.filter.OncePerRequestFilter; |
| @@ -13,7 +14,7 @@ import java.io.IOException; | @@ -13,7 +14,7 @@ import java.io.IOException; | ||
| 13 | 14 | ||
| 14 | /** | 15 | /** |
| 15 | * Xss 过滤器 | 16 | * Xss 过滤器 |
| 16 | - * | 17 | + * <p> |
| 17 | * 对 Xss 不了解的胖友,可以看看 http://www.iocoder.cn/Fight/The-new-girl-asked-me-why-AJAX-requests-are-not-secure-I-did-not-answer/ | 18 | * 对 Xss 不了解的胖友,可以看看 http://www.iocoder.cn/Fight/The-new-girl-asked-me-why-AJAX-requests-are-not-secure-I-did-not-answer/ |
| 18 | * | 19 | * |
| 19 | * @author 芋道源码 | 20 | * @author 芋道源码 |
| @@ -30,10 +31,12 @@ public class XssFilter extends OncePerRequestFilter { | @@ -30,10 +31,12 @@ public class XssFilter extends OncePerRequestFilter { | ||
| 30 | */ | 31 | */ |
| 31 | private final PathMatcher pathMatcher; | 32 | private final PathMatcher pathMatcher; |
| 32 | 33 | ||
| 34 | + private final XssCleaner xssCleaner; | ||
| 35 | + | ||
| 33 | @Override | 36 | @Override |
| 34 | protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) | 37 | protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) |
| 35 | throws IOException, ServletException { | 38 | throws IOException, ServletException { |
| 36 | - filterChain.doFilter(new XssRequestWrapper(request), response); | 39 | + filterChain.doFilter(new XssRequestWrapper(request, xssCleaner), response); |
| 37 | } | 40 | } |
| 38 | 41 | ||
| 39 | @Override | 42 | @Override |
yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/filter/XssRequestWrapper.java
| 1 | package cn.iocoder.yudao.framework.web.core.filter; | 1 | package cn.iocoder.yudao.framework.web.core.filter; |
| 2 | 2 | ||
| 3 | -import cn.hutool.core.collection.CollUtil; | ||
| 4 | -import cn.hutool.core.io.IoUtil; | ||
| 5 | -import cn.hutool.core.util.ArrayUtil; | ||
| 6 | -import cn.hutool.core.util.ReflectUtil; | ||
| 7 | -import cn.hutool.core.util.StrUtil; | ||
| 8 | -import cn.hutool.http.HTMLFilter; | ||
| 9 | -import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; | 3 | +import cn.iocoder.yudao.framework.web.core.clean.XssCleaner; |
| 10 | 4 | ||
| 11 | -import javax.servlet.ReadListener; | ||
| 12 | -import javax.servlet.ServletInputStream; | ||
| 13 | import javax.servlet.http.HttpServletRequest; | 5 | import javax.servlet.http.HttpServletRequest; |
| 14 | import javax.servlet.http.HttpServletRequestWrapper; | 6 | import javax.servlet.http.HttpServletRequestWrapper; |
| 15 | -import java.io.BufferedReader; | ||
| 16 | -import java.io.ByteArrayInputStream; | ||
| 17 | -import java.io.IOException; | ||
| 18 | -import java.io.InputStreamReader; | 7 | +import java.util.LinkedHashMap; |
| 19 | import java.util.Map; | 8 | import java.util.Map; |
| 20 | 9 | ||
| 21 | /** | 10 | /** |
| @@ -24,113 +13,79 @@ import java.util.Map; | @@ -24,113 +13,79 @@ import java.util.Map; | ||
| 24 | * @author 芋道源码 | 13 | * @author 芋道源码 |
| 25 | */ | 14 | */ |
| 26 | public class XssRequestWrapper extends HttpServletRequestWrapper { | 15 | public class XssRequestWrapper extends HttpServletRequestWrapper { |
| 16 | + private final XssCleaner xssCleaner; | ||
| 27 | 17 | ||
| 28 | - /** | ||
| 29 | - * 基于线程级别的 HTMLFilter 对象,因为它线程非安全 | ||
| 30 | - */ | ||
| 31 | - private static final ThreadLocal<HTMLFilter> HTML_FILTER = ThreadLocal.withInitial(() -> { | ||
| 32 | - HTMLFilter htmlFilter = new HTMLFilter(); | ||
| 33 | - // 反射修改 encodeQuotes 属性为 false,避免 " 被转移成 " 字符 | ||
| 34 | - ReflectUtil.setFieldValue(htmlFilter, "encodeQuotes", false); | ||
| 35 | - return htmlFilter; | ||
| 36 | - }); | ||
| 37 | - | ||
| 38 | - public XssRequestWrapper(HttpServletRequest request) { | 18 | + public XssRequestWrapper(HttpServletRequest request, XssCleaner xssCleaner) { |
| 39 | super(request); | 19 | super(request); |
| 20 | + this.xssCleaner = xssCleaner; | ||
| 40 | } | 21 | } |
| 41 | 22 | ||
| 42 | - private static String filterXss(String content) { | ||
| 43 | - if (StrUtil.isEmpty(content)) { | ||
| 44 | - return content; | ||
| 45 | - } | ||
| 46 | - return HTML_FILTER.get().filter(content); | ||
| 47 | - } | ||
| 48 | - | ||
| 49 | - // ========== IO 流相关 ========== | ||
| 50 | - | 23 | + // ============================ parameter ============================ |
| 51 | @Override | 24 | @Override |
| 52 | - public BufferedReader getReader() throws IOException { | ||
| 53 | - return new BufferedReader(new InputStreamReader(this.getInputStream())); | 25 | + public Map<String, String[]> getParameterMap() { |
| 26 | + Map<String, String[]> map = new LinkedHashMap<>(); | ||
| 27 | + Map<String, String[]> parameters = super.getParameterMap(); | ||
| 28 | + for (Map.Entry<String, String[]> entry : parameters.entrySet()) { | ||
| 29 | + String[] values = entry.getValue(); | ||
| 30 | + for (int i = 0; i < values.length; i++) { | ||
| 31 | + values[i] = xssCleaner.clean(values[i]); | ||
| 32 | + } | ||
| 33 | + map.put(entry.getKey(), values); | ||
| 34 | + } | ||
| 35 | + return map; | ||
| 54 | } | 36 | } |
| 55 | 37 | ||
| 56 | @Override | 38 | @Override |
| 57 | - public ServletInputStream getInputStream() throws IOException { | ||
| 58 | - // 如果非 json 请求,不进行 Xss 处理 | ||
| 59 | - if (!ServletUtils.isJsonRequest(this)) { | ||
| 60 | - return super.getInputStream(); | 39 | + public String[] getParameterValues(String name) { |
| 40 | + String[] values = super.getParameterValues(name); | ||
| 41 | + if (values == null) { | ||
| 42 | + return null; | ||
| 61 | } | 43 | } |
| 62 | - | ||
| 63 | - // 读取内容,并过滤 | ||
| 64 | - String content = IoUtil.readUtf8(super.getInputStream()); | ||
| 65 | - content = filterXss(content); | ||
| 66 | - final ByteArrayInputStream newInputStream = new ByteArrayInputStream(content.getBytes()); | ||
| 67 | - // 返回 ServletInputStream | ||
| 68 | - return new ServletInputStream() { | ||
| 69 | - | ||
| 70 | - @Override | ||
| 71 | - public int read() { | ||
| 72 | - return newInputStream.read(); | ||
| 73 | - } | ||
| 74 | - | ||
| 75 | - @Override | ||
| 76 | - public boolean isFinished() { | ||
| 77 | - return true; | ||
| 78 | - } | ||
| 79 | - | ||
| 80 | - @Override | ||
| 81 | - public boolean isReady() { | ||
| 82 | - return true; | ||
| 83 | - } | ||
| 84 | - | ||
| 85 | - @Override | ||
| 86 | - public void setReadListener(ReadListener readListener) {} | ||
| 87 | - | ||
| 88 | - }; | 44 | + int count = values.length; |
| 45 | + String[] encodedValues = new String[count]; | ||
| 46 | + for (int i = 0; i < count; i++) { | ||
| 47 | + encodedValues[i] = xssCleaner.clean(values[i]); | ||
| 48 | + } | ||
| 49 | + return encodedValues; | ||
| 89 | } | 50 | } |
| 90 | 51 | ||
| 91 | - // ========== Param 相关 ========== | ||
| 92 | - | ||
| 93 | @Override | 52 | @Override |
| 94 | public String getParameter(String name) { | 53 | public String getParameter(String name) { |
| 95 | String value = super.getParameter(name); | 54 | String value = super.getParameter(name); |
| 96 | - return filterXss(value); | 55 | + if (value == null) { |
| 56 | + return null; | ||
| 57 | + } | ||
| 58 | + return xssCleaner.clean(value); | ||
| 97 | } | 59 | } |
| 98 | 60 | ||
| 61 | + // ============================ attribute ============================ | ||
| 99 | @Override | 62 | @Override |
| 100 | - public String[] getParameterValues(String name) { | ||
| 101 | - String[] values = super.getParameterValues(name); | ||
| 102 | - if (ArrayUtil.isEmpty(values)) { | ||
| 103 | - return values; | ||
| 104 | - } | ||
| 105 | - // 过滤处理 | ||
| 106 | - for (int i = 0; i < values.length; i++) { | ||
| 107 | - values[i] = filterXss(values[i]); | 63 | + public Object getAttribute(String name) { |
| 64 | + Object value = super.getAttribute(name); | ||
| 65 | + if (value instanceof String) { | ||
| 66 | + xssCleaner.clean((String) value); | ||
| 108 | } | 67 | } |
| 109 | - return values; | 68 | + return value; |
| 110 | } | 69 | } |
| 111 | 70 | ||
| 71 | + // ============================ header ============================ | ||
| 112 | @Override | 72 | @Override |
| 113 | - public Map<String, String[]> getParameterMap() { | ||
| 114 | - Map<String, String[]> valueMap = super.getParameterMap(); | ||
| 115 | - if (CollUtil.isEmpty(valueMap)) { | ||
| 116 | - return valueMap; | ||
| 117 | - } | ||
| 118 | - // 过滤处理 | ||
| 119 | - for (Map.Entry<String, String[]> entry : valueMap.entrySet()) { | ||
| 120 | - String[] values = entry.getValue(); | ||
| 121 | - for (int i = 0; i < values.length; i++) { | ||
| 122 | - values[i] = filterXss(values[i]); | ||
| 123 | - } | 73 | + public String getHeader(String name) { |
| 74 | + String value = super.getHeader(name); | ||
| 75 | + if (value == null) { | ||
| 76 | + return null; | ||
| 124 | } | 77 | } |
| 125 | - return valueMap; | 78 | + return xssCleaner.clean(value); |
| 126 | } | 79 | } |
| 127 | 80 | ||
| 128 | - // ========== Header 相关 ========== | ||
| 129 | - | 81 | + // ============================ queryString ============================ |
| 130 | @Override | 82 | @Override |
| 131 | - public String getHeader(String name) { | ||
| 132 | - String value = super.getHeader(name); | ||
| 133 | - return filterXss(value); | 83 | + public String getQueryString() { |
| 84 | + String value = super.getQueryString(); | ||
| 85 | + if (value == null) { | ||
| 86 | + return null; | ||
| 87 | + } | ||
| 88 | + return xssCleaner.clean(value); | ||
| 134 | } | 89 | } |
| 135 | 90 | ||
| 136 | } | 91 | } |
yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/json/XssStringJsonDeserializer.java
0 → 100644
| 1 | +package cn.iocoder.yudao.framework.web.core.json; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.web.core.clean.XssCleaner; | ||
| 4 | +import com.fasterxml.jackson.core.JsonParser; | ||
| 5 | +import com.fasterxml.jackson.core.JsonToken; | ||
| 6 | +import com.fasterxml.jackson.databind.DeserializationContext; | ||
| 7 | +import com.fasterxml.jackson.databind.deser.std.StringDeserializer; | ||
| 8 | +import lombok.AllArgsConstructor; | ||
| 9 | +import lombok.extern.slf4j.Slf4j; | ||
| 10 | + | ||
| 11 | +import java.io.IOException; | ||
| 12 | + | ||
| 13 | +/** | ||
| 14 | + * XSS 过滤 jackson 反序列化器。 | ||
| 15 | + * 在反序列化的过程中,会对字符串进行 XSS 过滤。 | ||
| 16 | + * | ||
| 17 | + * @author Hccake | ||
| 18 | + */ | ||
| 19 | +@Slf4j | ||
| 20 | +@AllArgsConstructor | ||
| 21 | +public class XssStringJsonDeserializer extends StringDeserializer { | ||
| 22 | + | ||
| 23 | + private final XssCleaner xssCleaner; | ||
| 24 | + | ||
| 25 | + @Override | ||
| 26 | + public String deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { | ||
| 27 | + if (p.hasToken(JsonToken.VALUE_STRING)) { | ||
| 28 | + return xssCleaner.clean(p.getText()); | ||
| 29 | + } | ||
| 30 | + JsonToken t = p.currentToken(); | ||
| 31 | + // [databind#381] | ||
| 32 | + if (t == JsonToken.START_ARRAY) { | ||
| 33 | + return _deserializeFromArray(p, ctxt); | ||
| 34 | + } | ||
| 35 | + // need to gracefully handle byte[] data, as base64 | ||
| 36 | + if (t == JsonToken.VALUE_EMBEDDED_OBJECT) { | ||
| 37 | + Object ob = p.getEmbeddedObject(); | ||
| 38 | + if (ob == null) { | ||
| 39 | + return null; | ||
| 40 | + } | ||
| 41 | + if (ob instanceof byte[]) { | ||
| 42 | + return ctxt.getBase64Variant().encode((byte[]) ob, false); | ||
| 43 | + } | ||
| 44 | + // otherwise, try conversion using toString()... | ||
| 45 | + return ob.toString(); | ||
| 46 | + } | ||
| 47 | + // 29-Jun-2020, tatu: New! "Scalar from Object" (mostly for XML) | ||
| 48 | + if (t == JsonToken.START_OBJECT) { | ||
| 49 | + return ctxt.extractScalarFromObject(p, this, _valueClass); | ||
| 50 | + } | ||
| 51 | + | ||
| 52 | + if (t.isScalarValue()) { | ||
| 53 | + String text = p.getValueAsString(); | ||
| 54 | + return xssCleaner.clean(text); | ||
| 55 | + } | ||
| 56 | + return (String) ctxt.handleUnexpectedToken(_valueClass, p); | ||
| 57 | + } | ||
| 58 | +} | ||
| 59 | + |
yudao-framework/yudao-spring-boot-starter-websocket/pom.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<project xmlns="http://maven.apache.org/POM/4.0.0" | ||
| 3 | + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
| 4 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
| 5 | + <parent> | ||
| 6 | + <groupId>cn.iocoder.boot</groupId> | ||
| 7 | + <artifactId>yudao-framework</artifactId> | ||
| 8 | + <version>${revision}</version> | ||
| 9 | + </parent> | ||
| 10 | + <modelVersion>4.0.0</modelVersion> | ||
| 11 | + <artifactId>yudao-spring-boot-starter-websocket</artifactId> | ||
| 12 | + <packaging>jar</packaging> | ||
| 13 | + | ||
| 14 | + <name>${project.artifactId}</name> | ||
| 15 | + <description>WebSocket</description> | ||
| 16 | + <url>https://github.com/YunaiV/ruoyi-vue-pro</url> | ||
| 17 | + | ||
| 18 | + | ||
| 19 | + <dependencies> | ||
| 20 | + | ||
| 21 | + <dependency> | ||
| 22 | + <groupId>cn.iocoder.boot</groupId> | ||
| 23 | + <artifactId>yudao-common</artifactId> | ||
| 24 | + </dependency> | ||
| 25 | + | ||
| 26 | + <dependency> | ||
| 27 | + <groupId>cn.iocoder.boot</groupId> | ||
| 28 | + <artifactId>yudao-spring-boot-starter-security</artifactId> | ||
| 29 | + </dependency> | ||
| 30 | + | ||
| 31 | + <dependency> | ||
| 32 | + <groupId>org.springframework.boot</groupId> | ||
| 33 | + <artifactId>spring-boot-starter-websocket</artifactId> | ||
| 34 | + </dependency> | ||
| 35 | + </dependencies> | ||
| 36 | + | ||
| 37 | +</project> | ||
| 0 | \ No newline at end of file | 38 | \ No newline at end of file |
yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/config/WebSocketHandlerConfig.java
0 → 100644
| 1 | +package cn.iocoder.yudao.framework.websocket.config; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.websocket.core.UserHandshakeInterceptor; | ||
| 4 | +import org.springframework.boot.context.properties.EnableConfigurationProperties; | ||
| 5 | +import org.springframework.context.annotation.Bean; | ||
| 6 | +import org.springframework.web.socket.server.HandshakeInterceptor; | ||
| 7 | + | ||
| 8 | +@EnableConfigurationProperties(WebSocketProperties.class) | ||
| 9 | +public class WebSocketHandlerConfig { | ||
| 10 | + @Bean | ||
| 11 | + public HandshakeInterceptor handshakeInterceptor() { | ||
| 12 | + return new UserHandshakeInterceptor(); | ||
| 13 | + } | ||
| 14 | +} |
yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/config/WebSocketProperties.java
0 → 100644
| 1 | +package cn.iocoder.yudao.framework.websocket.config; | ||
| 2 | + | ||
| 3 | +import lombok.Data; | ||
| 4 | +import org.springframework.boot.context.properties.ConfigurationProperties; | ||
| 5 | +import org.springframework.validation.annotation.Validated; | ||
| 6 | + | ||
| 7 | +/** | ||
| 8 | + * WebSocket 配置项 | ||
| 9 | + * | ||
| 10 | + * @author xingyu4j | ||
| 11 | + */ | ||
| 12 | +@ConfigurationProperties("yudao.websocket") | ||
| 13 | +@Data | ||
| 14 | +@Validated | ||
| 15 | +public class WebSocketProperties { | ||
| 16 | + | ||
| 17 | + /** | ||
| 18 | + * 路径 | ||
| 19 | + */ | ||
| 20 | + private String path = ""; | ||
| 21 | + /** | ||
| 22 | + * 默认最多允许同时在线用户数 | ||
| 23 | + */ | ||
| 24 | + private int maxOnlineCount = 0; | ||
| 25 | + /** | ||
| 26 | + * 是否保存session | ||
| 27 | + */ | ||
| 28 | + private boolean sessionMap = true; | ||
| 29 | +} |
yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/config/YudaoWebSocketAutoConfiguration.java
0 → 100644
| 1 | +package cn.iocoder.yudao.framework.websocket.config; | ||
| 2 | + | ||
| 3 | +import org.springframework.boot.autoconfigure.AutoConfiguration; | ||
| 4 | +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; | ||
| 5 | +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; | ||
| 6 | +import org.springframework.boot.context.properties.EnableConfigurationProperties; | ||
| 7 | +import org.springframework.context.annotation.Bean; | ||
| 8 | +import org.springframework.web.socket.WebSocketHandler; | ||
| 9 | +import org.springframework.web.socket.config.annotation.WebSocketConfigurer; | ||
| 10 | +import org.springframework.web.socket.server.HandshakeInterceptor; | ||
| 11 | + | ||
| 12 | +import java.util.List; | ||
| 13 | + | ||
| 14 | +/** | ||
| 15 | + * WebSocket 自动配置 | ||
| 16 | + * | ||
| 17 | + * @author xingyu4j | ||
| 18 | + */ | ||
| 19 | +@AutoConfiguration | ||
| 20 | +// 允许使用 yudao.websocket.enable=false 禁用websocket | ||
| 21 | +@ConditionalOnProperty(prefix = "yudao.websocket", value = "enable", matchIfMissing = true) | ||
| 22 | +@EnableConfigurationProperties(WebSocketProperties.class) | ||
| 23 | +public class YudaoWebSocketAutoConfiguration { | ||
| 24 | + @Bean | ||
| 25 | + @ConditionalOnMissingBean | ||
| 26 | + public WebSocketConfigurer webSocketConfigurer(List<HandshakeInterceptor> handshakeInterceptor, | ||
| 27 | + WebSocketHandler webSocketHandler, | ||
| 28 | + WebSocketProperties webSocketProperties) { | ||
| 29 | + | ||
| 30 | + return registry -> registry | ||
| 31 | + .addHandler(webSocketHandler, webSocketProperties.getPath()) | ||
| 32 | + .addInterceptors(handshakeInterceptor.toArray(new HandshakeInterceptor[0])); | ||
| 33 | + } | ||
| 34 | +} |
yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/UserHandshakeInterceptor.java
0 → 100644
| 1 | +package cn.iocoder.yudao.framework.websocket.core; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.security.core.LoginUser; | ||
| 4 | +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; | ||
| 5 | +import org.springframework.http.server.ServerHttpRequest; | ||
| 6 | +import org.springframework.http.server.ServerHttpResponse; | ||
| 7 | +import org.springframework.web.socket.WebSocketHandler; | ||
| 8 | +import org.springframework.web.socket.server.HandshakeInterceptor; | ||
| 9 | + | ||
| 10 | +import java.util.Map; | ||
| 11 | + | ||
| 12 | +public class UserHandshakeInterceptor implements HandshakeInterceptor { | ||
| 13 | + @Override | ||
| 14 | + public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Map<String, Object> attributes) throws Exception { | ||
| 15 | + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); | ||
| 16 | + attributes.put(WebSocketKeyDefine.LOGIN_USER, loginUser); | ||
| 17 | + return true; | ||
| 18 | + } | ||
| 19 | + | ||
| 20 | + @Override | ||
| 21 | + public void afterHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Exception exception) { | ||
| 22 | + | ||
| 23 | + } | ||
| 24 | +} |
yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/WebSocketKeyDefine.java
0 → 100644
yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/WebSocketMessageDO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.framework.websocket.core; | ||
| 2 | + | ||
| 3 | +import lombok.Data; | ||
| 4 | +import lombok.experimental.Accessors; | ||
| 5 | + | ||
| 6 | +import java.util.List; | ||
| 7 | + | ||
| 8 | +@Data | ||
| 9 | +@Accessors(chain = true) | ||
| 10 | +public class WebSocketMessageDO { | ||
| 11 | + /** | ||
| 12 | + * 接收消息的seesion | ||
| 13 | + */ | ||
| 14 | + private List<Object> seesionKeyList; | ||
| 15 | + /** | ||
| 16 | + * 发送消息 | ||
| 17 | + */ | ||
| 18 | + private String msgText; | ||
| 19 | + | ||
| 20 | + public static WebSocketMessageDO build(List<Object> seesionKeyList, String msgText) { | ||
| 21 | + return new WebSocketMessageDO().setMsgText(msgText).setSeesionKeyList(seesionKeyList); | ||
| 22 | + } | ||
| 23 | + | ||
| 24 | +} |
yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/WebSocketSessionHandler.java
0 → 100644
| 1 | +package cn.iocoder.yudao.framework.websocket.core; | ||
| 2 | + | ||
| 3 | +import org.springframework.web.socket.WebSocketSession; | ||
| 4 | + | ||
| 5 | +import java.util.Collection; | ||
| 6 | +import java.util.Map; | ||
| 7 | +import java.util.Set; | ||
| 8 | +import java.util.concurrent.ConcurrentHashMap; | ||
| 9 | + | ||
| 10 | +public final class WebSocketSessionHandler { | ||
| 11 | + private WebSocketSessionHandler() { | ||
| 12 | + } | ||
| 13 | + | ||
| 14 | + private static final Map<String, WebSocketSession> SESSION_MAP = new ConcurrentHashMap<>(); | ||
| 15 | + | ||
| 16 | + public static void addSession(Object sessionKey, WebSocketSession session) { | ||
| 17 | + SESSION_MAP.put(sessionKey.toString(), session); | ||
| 18 | + } | ||
| 19 | + | ||
| 20 | + public static void removeSession(Object sessionKey) { | ||
| 21 | + SESSION_MAP.remove(sessionKey.toString()); | ||
| 22 | + } | ||
| 23 | + | ||
| 24 | + public static WebSocketSession getSession(Object sessionKey) { | ||
| 25 | + return SESSION_MAP.get(sessionKey.toString()); | ||
| 26 | + } | ||
| 27 | + | ||
| 28 | + public static Collection<WebSocketSession> getSessions() { | ||
| 29 | + return SESSION_MAP.values(); | ||
| 30 | + } | ||
| 31 | + | ||
| 32 | + public static Set<String> getSessionKeys() { | ||
| 33 | + return SESSION_MAP.keySet(); | ||
| 34 | + } | ||
| 35 | + | ||
| 36 | +} |
yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/WebSocketUtils.java
0 → 100644
| 1 | +package cn.iocoder.yudao.framework.websocket.core; | ||
| 2 | + | ||
| 3 | +import lombok.extern.slf4j.Slf4j; | ||
| 4 | +import org.springframework.web.socket.TextMessage; | ||
| 5 | +import org.springframework.web.socket.WebSocketSession; | ||
| 6 | + | ||
| 7 | +import java.io.IOException; | ||
| 8 | + | ||
| 9 | +@Slf4j | ||
| 10 | +public class WebSocketUtils { | ||
| 11 | + public static boolean sendMessage(WebSocketSession seesion, String message) { | ||
| 12 | + if (seesion == null) { | ||
| 13 | + log.error("seesion 不存在"); | ||
| 14 | + return false; | ||
| 15 | + } | ||
| 16 | + if (seesion.isOpen()) { | ||
| 17 | + try { | ||
| 18 | + seesion.sendMessage(new TextMessage(message)); | ||
| 19 | + } catch (IOException e) { | ||
| 20 | + log.error("WebSocket 消息发送异常 Session={} | msg= {} | exception={}", seesion, message, e); | ||
| 21 | + return false; | ||
| 22 | + } | ||
| 23 | + } | ||
| 24 | + return true; | ||
| 25 | + } | ||
| 26 | + | ||
| 27 | + public static boolean sendMessage(Object sessionKey, String message) { | ||
| 28 | + WebSocketSession session = WebSocketSessionHandler.getSession(sessionKey); | ||
| 29 | + return sendMessage(session, message); | ||
| 30 | + } | ||
| 31 | +} |
yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/core/YudaoWebSocketHandlerDecorator.java
0 → 100644
| 1 | +package cn.iocoder.yudao.framework.websocket.core; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.security.core.LoginUser; | ||
| 4 | +import org.springframework.web.socket.CloseStatus; | ||
| 5 | +import org.springframework.web.socket.WebSocketHandler; | ||
| 6 | +import org.springframework.web.socket.WebSocketSession; | ||
| 7 | +import org.springframework.web.socket.handler.WebSocketHandlerDecorator; | ||
| 8 | + | ||
| 9 | +public class YudaoWebSocketHandlerDecorator extends WebSocketHandlerDecorator { | ||
| 10 | + public YudaoWebSocketHandlerDecorator(WebSocketHandler delegate) { | ||
| 11 | + super(delegate); | ||
| 12 | + } | ||
| 13 | + | ||
| 14 | + /** | ||
| 15 | + * websocket 连接时执行的动作 | ||
| 16 | + * @param session websocket session 对象 | ||
| 17 | + * @throws Exception 异常对象 | ||
| 18 | + */ | ||
| 19 | + @Override | ||
| 20 | + public void afterConnectionEstablished(final WebSocketSession session) throws Exception { | ||
| 21 | + Object sessionKey = sessionKeyGen(session); | ||
| 22 | + WebSocketSessionHandler.addSession(sessionKey, session); | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | + /** | ||
| 26 | + * websocket 关闭连接时执行的动作 | ||
| 27 | + * @param session websocket session 对象 | ||
| 28 | + * @param closeStatus 关闭状态对象 | ||
| 29 | + * @throws Exception 异常对象 | ||
| 30 | + */ | ||
| 31 | + @Override | ||
| 32 | + public void afterConnectionClosed(final WebSocketSession session, CloseStatus closeStatus) throws Exception { | ||
| 33 | + Object sessionKey = sessionKeyGen(session); | ||
| 34 | + WebSocketSessionHandler.removeSession(sessionKey); | ||
| 35 | + } | ||
| 36 | + | ||
| 37 | + public Object sessionKeyGen(WebSocketSession webSocketSession) { | ||
| 38 | + | ||
| 39 | + Object obj = webSocketSession.getAttributes().get(WebSocketKeyDefine.LOGIN_USER); | ||
| 40 | + | ||
| 41 | + if (obj instanceof LoginUser) { | ||
| 42 | + LoginUser loginUser = (LoginUser) obj; | ||
| 43 | + // userId 作为唯一区分 | ||
| 44 | + return String.valueOf(loginUser.getId()); | ||
| 45 | + } | ||
| 46 | + | ||
| 47 | + return null; | ||
| 48 | + } | ||
| 49 | +} |
yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/package-info.java
0 → 100644
| 1 | +package cn.iocoder.yudao.framework.websocket; |
yudao-framework/yudao-spring-boot-starter-websocket/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
0 → 100644
yudao-module-infra/yudao-module-infra-biz/pom.xml
| @@ -111,6 +111,12 @@ | @@ -111,6 +111,12 @@ | ||
| 111 | <groupId>cn.iocoder.boot</groupId> | 111 | <groupId>cn.iocoder.boot</groupId> |
| 112 | <artifactId>yudao-spring-boot-starter-file</artifactId> | 112 | <artifactId>yudao-spring-boot-starter-file</artifactId> |
| 113 | </dependency> | 113 | </dependency> |
| 114 | + | ||
| 115 | + <!-- WebSocket --> | ||
| 116 | + <dependency> | ||
| 117 | + <groupId>org.springframework.boot</groupId> | ||
| 118 | + <artifactId>spring-boot-starter-websocket</artifactId> | ||
| 119 | + </dependency> | ||
| 114 | </dependencies> | 120 | </dependencies> |
| 115 | 121 | ||
| 116 | </project> | 122 | </project> |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/config/ConfigController.java
| @@ -75,7 +75,7 @@ public class ConfigController { | @@ -75,7 +75,7 @@ public class ConfigController { | ||
| 75 | if (config == null) { | 75 | if (config == null) { |
| 76 | return null; | 76 | return null; |
| 77 | } | 77 | } |
| 78 | - if (config.getVisible()) { | 78 | + if (!config.getVisible()) { |
| 79 | throw ServiceExceptionUtil.exception(ErrorCodeConstants.CONFIG_GET_VALUE_ERROR_IF_VISIBLE); | 79 | throw ServiceExceptionUtil.exception(ErrorCodeConstants.CONFIG_GET_VALUE_ERROR_IF_VISIBLE); |
| 80 | } | 80 | } |
| 81 | return success(config.getValue()); | 81 | return success(config.getValue()); |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/convert/codegen/CodegenConvert.java
| @@ -11,9 +11,11 @@ import cn.iocoder.yudao.module.infra.dal.dataobject.codegen.CodegenColumnDO; | @@ -11,9 +11,11 @@ import cn.iocoder.yudao.module.infra.dal.dataobject.codegen.CodegenColumnDO; | ||
| 11 | import cn.iocoder.yudao.module.infra.dal.dataobject.codegen.CodegenTableDO; | 11 | import cn.iocoder.yudao.module.infra.dal.dataobject.codegen.CodegenTableDO; |
| 12 | import com.baomidou.mybatisplus.generator.config.po.TableField; | 12 | import com.baomidou.mybatisplus.generator.config.po.TableField; |
| 13 | import com.baomidou.mybatisplus.generator.config.po.TableInfo; | 13 | import com.baomidou.mybatisplus.generator.config.po.TableInfo; |
| 14 | +import org.apache.ibatis.type.JdbcType; | ||
| 14 | import org.mapstruct.Mapper; | 15 | import org.mapstruct.Mapper; |
| 15 | import org.mapstruct.Mapping; | 16 | import org.mapstruct.Mapping; |
| 16 | import org.mapstruct.Mappings; | 17 | import org.mapstruct.Mappings; |
| 18 | +import org.mapstruct.Named; | ||
| 17 | import org.mapstruct.factory.Mappers; | 19 | import org.mapstruct.factory.Mappers; |
| 18 | 20 | ||
| 19 | import java.util.List; | 21 | import java.util.List; |
| @@ -37,7 +39,7 @@ public interface CodegenConvert { | @@ -37,7 +39,7 @@ public interface CodegenConvert { | ||
| 37 | 39 | ||
| 38 | @Mappings({ | 40 | @Mappings({ |
| 39 | @Mapping(source = "name", target = "columnName"), | 41 | @Mapping(source = "name", target = "columnName"), |
| 40 | - @Mapping(source = "type", target = "dataType"), | 42 | + @Mapping(source = "metaInfo.jdbcType", target = "dataType", qualifiedByName = "getDataType"), |
| 41 | @Mapping(source = "comment", target = "columnComment"), | 43 | @Mapping(source = "comment", target = "columnComment"), |
| 42 | @Mapping(source = "metaInfo.nullable", target = "nullable"), | 44 | @Mapping(source = "metaInfo.nullable", target = "nullable"), |
| 43 | @Mapping(source = "keyFlag", target = "primaryKey"), | 45 | @Mapping(source = "keyFlag", target = "primaryKey"), |
| @@ -47,6 +49,11 @@ public interface CodegenConvert { | @@ -47,6 +49,11 @@ public interface CodegenConvert { | ||
| 47 | }) | 49 | }) |
| 48 | CodegenColumnDO convert(TableField bean); | 50 | CodegenColumnDO convert(TableField bean); |
| 49 | 51 | ||
| 52 | + @Named("getDataType") | ||
| 53 | + default String getDataType(JdbcType jdbcType) { | ||
| 54 | + return jdbcType.name(); | ||
| 55 | + } | ||
| 56 | + | ||
| 50 | // ========== CodegenTableDO 相关 ========== | 57 | // ========== CodegenTableDO 相关 ========== |
| 51 | 58 | ||
| 52 | // List<CodegenTableRespVO> convertList02(List<CodegenTableDO> list); | 59 | // List<CodegenTableRespVO> convertList02(List<CodegenTableDO> list); |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenColumnDO.java
| @@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.infra.enums.codegen.CodegenColumnListConditionEnu | @@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.infra.enums.codegen.CodegenColumnListConditionEnu | ||
| 6 | import com.baomidou.mybatisplus.annotation.KeySequence; | 6 | import com.baomidou.mybatisplus.annotation.KeySequence; |
| 7 | import com.baomidou.mybatisplus.annotation.TableId; | 7 | import com.baomidou.mybatisplus.annotation.TableId; |
| 8 | import com.baomidou.mybatisplus.annotation.TableName; | 8 | import com.baomidou.mybatisplus.annotation.TableName; |
| 9 | +import com.baomidou.mybatisplus.generator.config.po.TableField; | ||
| 9 | import lombok.Data; | 10 | import lombok.Data; |
| 10 | import lombok.EqualsAndHashCode; | 11 | import lombok.EqualsAndHashCode; |
| 11 | import lombok.experimental.Accessors; | 12 | import lombok.experimental.Accessors; |
| @@ -29,7 +30,7 @@ public class CodegenColumnDO extends BaseDO { | @@ -29,7 +30,7 @@ public class CodegenColumnDO extends BaseDO { | ||
| 29 | private Long id; | 30 | private Long id; |
| 30 | /** | 31 | /** |
| 31 | * 表编号 | 32 | * 表编号 |
| 32 | - * | 33 | + * <p> |
| 33 | * 关联 {@link CodegenTableDO#getId()} | 34 | * 关联 {@link CodegenTableDO#getId()} |
| 34 | */ | 35 | */ |
| 35 | private Long tableId; | 36 | private Long tableId; |
| @@ -41,7 +42,8 @@ public class CodegenColumnDO extends BaseDO { | @@ -41,7 +42,8 @@ public class CodegenColumnDO extends BaseDO { | ||
| 41 | */ | 42 | */ |
| 42 | private String columnName; | 43 | private String columnName; |
| 43 | /** | 44 | /** |
| 44 | - * 字段类型 | 45 | + * 数据库字段类型 |
| 46 | + * 关联 {@link TableField.MetaInfo#getJdbcType()} | ||
| 45 | */ | 47 | */ |
| 46 | private String dataType; | 48 | private String dataType; |
| 47 | /** | 49 | /** |
| @@ -69,7 +71,7 @@ public class CodegenColumnDO extends BaseDO { | @@ -69,7 +71,7 @@ public class CodegenColumnDO extends BaseDO { | ||
| 69 | 71 | ||
| 70 | /** | 72 | /** |
| 71 | * Java 属性类型 | 73 | * Java 属性类型 |
| 72 | - * | 74 | + * <p> |
| 73 | * 例如说 String、Boolean 等等 | 75 | * 例如说 String、Boolean 等等 |
| 74 | */ | 76 | */ |
| 75 | private String javaType; | 77 | private String javaType; |
| @@ -79,7 +81,7 @@ public class CodegenColumnDO extends BaseDO { | @@ -79,7 +81,7 @@ public class CodegenColumnDO extends BaseDO { | ||
| 79 | private String javaField; | 81 | private String javaField; |
| 80 | /** | 82 | /** |
| 81 | * 字典类型 | 83 | * 字典类型 |
| 82 | - * | 84 | + * <p> |
| 83 | * 关联 DictTypeDO 的 type 属性 | 85 | * 关联 DictTypeDO 的 type 属性 |
| 84 | */ | 86 | */ |
| 85 | private String dictType; | 87 | private String dictType; |
| @@ -104,7 +106,7 @@ public class CodegenColumnDO extends BaseDO { | @@ -104,7 +106,7 @@ public class CodegenColumnDO extends BaseDO { | ||
| 104 | private Boolean listOperation; | 106 | private Boolean listOperation; |
| 105 | /** | 107 | /** |
| 106 | * List 查询操作的条件类型 | 108 | * List 查询操作的条件类型 |
| 107 | - * | 109 | + * <p> |
| 108 | * 枚举 {@link CodegenColumnListConditionEnum} | 110 | * 枚举 {@link CodegenColumnListConditionEnum} |
| 109 | */ | 111 | */ |
| 110 | private String listOperationCondition; | 112 | private String listOperationCondition; |
| @@ -117,7 +119,7 @@ public class CodegenColumnDO extends BaseDO { | @@ -117,7 +119,7 @@ public class CodegenColumnDO extends BaseDO { | ||
| 117 | 119 | ||
| 118 | /** | 120 | /** |
| 119 | * 显示类型 | 121 | * 显示类型 |
| 120 | - * | 122 | + * <p> |
| 121 | * 枚举 {@link CodegenColumnHtmlTypeEnum} | 123 | * 枚举 {@link CodegenColumnHtmlTypeEnum} |
| 122 | */ | 124 | */ |
| 123 | private String htmlType; | 125 | private String htmlType; |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/websocket/SemaphoreUtils.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.infra.websocket; | ||
| 2 | + | ||
| 3 | +import lombok.extern.slf4j.Slf4j; | ||
| 4 | + | ||
| 5 | +import java.util.concurrent.Semaphore; | ||
| 6 | + | ||
| 7 | +/** | ||
| 8 | + * 信号量相关处理 | ||
| 9 | + * | ||
| 10 | + */ | ||
| 11 | +@Slf4j | ||
| 12 | +public class SemaphoreUtils { | ||
| 13 | + | ||
| 14 | + /** | ||
| 15 | + * 获取信号量 | ||
| 16 | + * | ||
| 17 | + * @param semaphore | ||
| 18 | + * @return | ||
| 19 | + */ | ||
| 20 | + public static boolean tryAcquire(Semaphore semaphore) { | ||
| 21 | + boolean flag = false; | ||
| 22 | + | ||
| 23 | + try { | ||
| 24 | + flag = semaphore.tryAcquire(); | ||
| 25 | + } catch (Exception e) { | ||
| 26 | + log.error("获取信号量异常", e); | ||
| 27 | + } | ||
| 28 | + | ||
| 29 | + return flag; | ||
| 30 | + } | ||
| 31 | + | ||
| 32 | + /** | ||
| 33 | + * 释放信号量 | ||
| 34 | + * | ||
| 35 | + * @param semaphore | ||
| 36 | + */ | ||
| 37 | + public static void release(Semaphore semaphore) { | ||
| 38 | + | ||
| 39 | + try { | ||
| 40 | + semaphore.release(); | ||
| 41 | + } catch (Exception e) { | ||
| 42 | + log.error("释放信号量异常", e); | ||
| 43 | + } | ||
| 44 | + } | ||
| 45 | +} |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/websocket/WebSocketConfig.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.infra.websocket; | ||
| 2 | + | ||
| 3 | +import org.springframework.context.annotation.Bean; | ||
| 4 | +import org.springframework.context.annotation.Configuration; | ||
| 5 | +import org.springframework.web.socket.server.standard.ServerEndpointExporter; | ||
| 6 | + | ||
| 7 | +/** | ||
| 8 | + * websocket 配置 | ||
| 9 | + */ | ||
| 10 | +@Configuration | ||
| 11 | +public class WebSocketConfig { | ||
| 12 | + @Bean | ||
| 13 | + public ServerEndpointExporter serverEndpointExporter() { | ||
| 14 | + return new ServerEndpointExporter(); | ||
| 15 | + } | ||
| 16 | +} |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/websocket/WebSocketServer.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.infra.websocket; | ||
| 2 | + | ||
| 3 | +import lombok.extern.slf4j.Slf4j; | ||
| 4 | +import org.springframework.stereotype.Component; | ||
| 5 | + | ||
| 6 | +import javax.websocket.*; | ||
| 7 | +import javax.websocket.server.ServerEndpoint; | ||
| 8 | +import java.util.concurrent.Semaphore; | ||
| 9 | + | ||
| 10 | +/** | ||
| 11 | + * websocket 消息处理 | ||
| 12 | + */ | ||
| 13 | +@Component | ||
| 14 | +@ServerEndpoint("/websocket/message") | ||
| 15 | +@Slf4j | ||
| 16 | +public class WebSocketServer { | ||
| 17 | + | ||
| 18 | + /** | ||
| 19 | + * 默认最多允许同时在线用户数100 | ||
| 20 | + */ | ||
| 21 | + public static int socketMaxOnlineCount = 100; | ||
| 22 | + | ||
| 23 | + private static final Semaphore SOCKET_SEMAPHORE = new Semaphore(socketMaxOnlineCount); | ||
| 24 | + | ||
| 25 | + /** | ||
| 26 | + * 连接建立成功调用的方法 | ||
| 27 | + */ | ||
| 28 | + @OnOpen | ||
| 29 | + public void onOpen(Session session) throws Exception { | ||
| 30 | + // 尝试获取信号量 | ||
| 31 | + boolean semaphoreFlag = SemaphoreUtils.tryAcquire(SOCKET_SEMAPHORE); | ||
| 32 | + if (!semaphoreFlag) { | ||
| 33 | + // 未获取到信号量 | ||
| 34 | + log.error("当前在线人数超过限制数:{}", socketMaxOnlineCount); | ||
| 35 | + WebSocketUsers.sendMessage(session, "当前在线人数超过限制数:" + socketMaxOnlineCount); | ||
| 36 | + session.close(); | ||
| 37 | + } else { | ||
| 38 | + String userId = WebSocketUsers.getParam("userId", session); | ||
| 39 | + if (userId != null) { | ||
| 40 | + // 添加用户 | ||
| 41 | + WebSocketUsers.addSession(userId, session); | ||
| 42 | + log.info("用户【userId={}】建立连接,当前连接用户总数:{}", userId, WebSocketUsers.getUsers().size()); | ||
| 43 | + WebSocketUsers.sendMessage(session, "接收内容:连接成功"); | ||
| 44 | + } else { | ||
| 45 | + WebSocketUsers.sendMessage(session, "接收内容:连接失败"); | ||
| 46 | + } | ||
| 47 | + } | ||
| 48 | + } | ||
| 49 | + | ||
| 50 | + /** | ||
| 51 | + * 连接关闭时处理 | ||
| 52 | + */ | ||
| 53 | + @OnClose | ||
| 54 | + public void onClose(Session session) { | ||
| 55 | + log.info("用户【sessionId={}】关闭连接!", session.getId()); | ||
| 56 | + // 移除用户 | ||
| 57 | + WebSocketUsers.removeSession(session); | ||
| 58 | + // 获取到信号量则需释放 | ||
| 59 | + SemaphoreUtils.release(SOCKET_SEMAPHORE); | ||
| 60 | + } | ||
| 61 | + | ||
| 62 | + /** | ||
| 63 | + * 抛出异常时处理 | ||
| 64 | + */ | ||
| 65 | + @OnError | ||
| 66 | + public void onError(Session session, Throwable exception) throws Exception { | ||
| 67 | + if (session.isOpen()) { | ||
| 68 | + // 关闭连接 | ||
| 69 | + session.close(); | ||
| 70 | + } | ||
| 71 | + String sessionId = session.getId(); | ||
| 72 | + log.info("用户【sessionId={}】连接异常!异常信息:{}", sessionId, exception); | ||
| 73 | + // 移出用户 | ||
| 74 | + WebSocketUsers.removeSession(session); | ||
| 75 | + // 获取到信号量则需释放 | ||
| 76 | + SemaphoreUtils.release(SOCKET_SEMAPHORE); | ||
| 77 | + } | ||
| 78 | + | ||
| 79 | + /** | ||
| 80 | + * 收到客户端消息时调用的方法 | ||
| 81 | + */ | ||
| 82 | + @OnMessage | ||
| 83 | + public void onMessage(Session session, String message) { | ||
| 84 | + WebSocketUsers.sendMessage(session, "接收内容:" + message); | ||
| 85 | + } | ||
| 86 | +} |
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/websocket/WebSocketUsers.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.infra.websocket; | ||
| 2 | + | ||
| 3 | +import cn.hutool.core.map.MapUtil; | ||
| 4 | +import cn.hutool.core.util.StrUtil; | ||
| 5 | +import lombok.extern.slf4j.Slf4j; | ||
| 6 | +import org.bouncycastle.util.Strings; | ||
| 7 | + | ||
| 8 | +import javax.validation.constraints.NotNull; | ||
| 9 | +import javax.websocket.Session; | ||
| 10 | +import java.io.IOException; | ||
| 11 | +import java.util.List; | ||
| 12 | +import java.util.Map; | ||
| 13 | +import java.util.Set; | ||
| 14 | +import java.util.concurrent.ConcurrentHashMap; | ||
| 15 | + | ||
| 16 | +/** | ||
| 17 | + * websocket 客户端用户 | ||
| 18 | + */ | ||
| 19 | +@Slf4j | ||
| 20 | +public class WebSocketUsers { | ||
| 21 | + | ||
| 22 | + /** | ||
| 23 | + * 用户集 | ||
| 24 | + * TODO 需要登录用户的session? | ||
| 25 | + */ | ||
| 26 | + private static final Map<String, Session> SESSION_MAP = new ConcurrentHashMap<>(); | ||
| 27 | + | ||
| 28 | + /** | ||
| 29 | + * 存储用户 | ||
| 30 | + * | ||
| 31 | + * @param userId 唯一键 | ||
| 32 | + * @param session 用户信息 | ||
| 33 | + */ | ||
| 34 | + public static void addSession(String userId, Session session) { | ||
| 35 | + SESSION_MAP.put(userId, session); | ||
| 36 | + } | ||
| 37 | + | ||
| 38 | + /** | ||
| 39 | + * 移除用户 | ||
| 40 | + * | ||
| 41 | + * @param session 用户信息 | ||
| 42 | + * @return 移除结果 | ||
| 43 | + */ | ||
| 44 | + public static boolean removeSession(Session session) { | ||
| 45 | + String key = null; | ||
| 46 | + boolean flag = SESSION_MAP.containsValue(session); | ||
| 47 | + if (flag) { | ||
| 48 | + Set<Map.Entry<String, Session>> entries = SESSION_MAP.entrySet(); | ||
| 49 | + for (Map.Entry<String, Session> entry : entries) { | ||
| 50 | + Session value = entry.getValue(); | ||
| 51 | + if (value.equals(session)) { | ||
| 52 | + key = entry.getKey(); | ||
| 53 | + break; | ||
| 54 | + } | ||
| 55 | + } | ||
| 56 | + } else { | ||
| 57 | + return true; | ||
| 58 | + } | ||
| 59 | + return removeSession(key); | ||
| 60 | + } | ||
| 61 | + | ||
| 62 | + /** | ||
| 63 | + * 移出用户 | ||
| 64 | + * | ||
| 65 | + * @param userId 用户id | ||
| 66 | + */ | ||
| 67 | + public static boolean removeSession(String userId) { | ||
| 68 | + log.info("用户【userId={}】退出", userId); | ||
| 69 | + Session remove = SESSION_MAP.remove(userId); | ||
| 70 | + if (remove != null) { | ||
| 71 | + boolean containsValue = SESSION_MAP.containsValue(remove); | ||
| 72 | + log.info("用户【userId={}】退出{},当前连接用户总数:{}", userId, containsValue ? "失败" : "成功", SESSION_MAP.size()); | ||
| 73 | + return containsValue; | ||
| 74 | + } else { | ||
| 75 | + return true; | ||
| 76 | + } | ||
| 77 | + } | ||
| 78 | + | ||
| 79 | + /** | ||
| 80 | + * 获取在线用户列表 | ||
| 81 | + * | ||
| 82 | + * @return 返回用户集合 | ||
| 83 | + */ | ||
| 84 | + public static Map<String, Session> getUsers() { | ||
| 85 | + return SESSION_MAP; | ||
| 86 | + } | ||
| 87 | + | ||
| 88 | + /** | ||
| 89 | + * 向所有在线人发送消息 | ||
| 90 | + * | ||
| 91 | + * @param message 消息内容 | ||
| 92 | + */ | ||
| 93 | + public static void sendMessageToAll(String message) { | ||
| 94 | + SESSION_MAP.forEach((userId, session) -> { | ||
| 95 | + if (session.isOpen()) { | ||
| 96 | + sendMessage(session, message); | ||
| 97 | + } | ||
| 98 | + }); | ||
| 99 | + } | ||
| 100 | + | ||
| 101 | + /** | ||
| 102 | + * 异步发送文本消息 | ||
| 103 | + * | ||
| 104 | + * @param session 用户session | ||
| 105 | + * @param message 消息内容 | ||
| 106 | + */ | ||
| 107 | + public static void sendMessageAsync(Session session, String message) { | ||
| 108 | + if (session.isOpen()) { | ||
| 109 | + // TODO 需要加synchronized锁(synchronized(session))?单个session创建线程? | ||
| 110 | + session.getAsyncRemote().sendText(message); | ||
| 111 | + } else { | ||
| 112 | + log.warn("用户【session={}】不在线", session.getId()); | ||
| 113 | + } | ||
| 114 | + } | ||
| 115 | + | ||
| 116 | + /** | ||
| 117 | + * 同步发送文本消息 | ||
| 118 | + * | ||
| 119 | + * @param session 用户session | ||
| 120 | + * @param message 消息内容 | ||
| 121 | + */ | ||
| 122 | + public static void sendMessage(Session session, String message) { | ||
| 123 | + try { | ||
| 124 | + if (session.isOpen()) { | ||
| 125 | + // TODO 需要加synchronized锁(synchronized(session))?单个session创建线程? | ||
| 126 | + session.getBasicRemote().sendText(message); | ||
| 127 | + } else { | ||
| 128 | + log.warn("用户【session={}】不在线", session.getId()); | ||
| 129 | + } | ||
| 130 | + } catch (IOException e) { | ||
| 131 | + log.error("发送消息异常", e); | ||
| 132 | + } | ||
| 133 | + | ||
| 134 | + } | ||
| 135 | + | ||
| 136 | + /** | ||
| 137 | + * 根据用户id发送消息 | ||
| 138 | + * | ||
| 139 | + * @param userId 用户id | ||
| 140 | + * @param message 消息内容 | ||
| 141 | + */ | ||
| 142 | + public static void sendMessage(String userId, String message) { | ||
| 143 | + Session session = SESSION_MAP.get(userId); | ||
| 144 | + //判断是否存在该用户的session,并且是否在线 | ||
| 145 | + if (session == null || !session.isOpen()) { | ||
| 146 | + return; | ||
| 147 | + } | ||
| 148 | + sendMessage(session, message); | ||
| 149 | + } | ||
| 150 | + | ||
| 151 | + | ||
| 152 | + /** | ||
| 153 | + * 获取session中的指定参数值 | ||
| 154 | + * | ||
| 155 | + * @param key 参数key | ||
| 156 | + * @param session 用户session | ||
| 157 | + */ | ||
| 158 | + public static String getParam(@NotNull String key, Session session) { | ||
| 159 | + //TODO 目前只针对获取一个key的值,后期根据情况拓展多个 或者直接在onClose onOpen上获取参数? | ||
| 160 | + String value = null; | ||
| 161 | + Map<String, List<String>> parameters = session.getRequestParameterMap(); | ||
| 162 | + if (MapUtil.isNotEmpty(parameters)) { | ||
| 163 | + value = parameters.get(key).get(0); | ||
| 164 | + } else { | ||
| 165 | + String queryString = session.getQueryString(); | ||
| 166 | + if (!StrUtil.isEmpty(queryString)) { | ||
| 167 | + String[] params = Strings.split(queryString, '&'); | ||
| 168 | + for (String paramPair : params) { | ||
| 169 | + String[] nameValues = Strings.split(paramPair, '='); | ||
| 170 | + if (key.equals(nameValues[0])) { | ||
| 171 | + value = nameValues[1]; | ||
| 172 | + } | ||
| 173 | + } | ||
| 174 | + } | ||
| 175 | + } | ||
| 176 | + return value; | ||
| 177 | + } | ||
| 178 | +} |
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3/views/index.vue.vm
| @@ -17,7 +17,7 @@ | @@ -17,7 +17,7 @@ | ||
| 17 | preIcon="ep:download" | 17 | preIcon="ep:download" |
| 18 | :title="t('action.export')" | 18 | :title="t('action.export')" |
| 19 | v-hasPermi="['${permissionPrefix}:export']" | 19 | v-hasPermi="['${permissionPrefix}:export']" |
| 20 | - @click="handleExport()" | 20 | + @click="exportList('${table.classComment}.xls')" |
| 21 | /> | 21 | /> |
| 22 | </template> | 22 | </template> |
| 23 | <template #actionbtns_default="{ row }"> | 23 | <template #actionbtns_default="{ row }"> |
| @@ -40,7 +40,7 @@ | @@ -40,7 +40,7 @@ | ||
| 40 | preIcon="ep:delete" | 40 | preIcon="ep:delete" |
| 41 | :title="t('action.del')" | 41 | :title="t('action.del')" |
| 42 | v-hasPermi="['${permissionPrefix}:delete']" | 42 | v-hasPermi="['${permissionPrefix}:delete']" |
| 43 | - @click="handleDelete(row.id)" | 43 | + @click="deleteData(row.id)" |
| 44 | /> | 44 | /> |
| 45 | </template> | 45 | </template> |
| 46 | </XTable> | 46 | </XTable> |
| @@ -119,11 +119,6 @@ const handleCreate = () => { | @@ -119,11 +119,6 @@ const handleCreate = () => { | ||
| 119 | modelLoading.value = false | 119 | modelLoading.value = false |
| 120 | } | 120 | } |
| 121 | 121 | ||
| 122 | -// 导出操作 | ||
| 123 | -const handleExport = async () => { | ||
| 124 | - await exportList('${table.classComment}.xls') | ||
| 125 | -} | ||
| 126 | - | ||
| 127 | // 修改操作 | 122 | // 修改操作 |
| 128 | const handleUpdate = async (rowId: number) => { | 123 | const handleUpdate = async (rowId: number) => { |
| 129 | setDialogTile('update') | 124 | setDialogTile('update') |
| @@ -141,11 +136,6 @@ const handleDetail = async (rowId: number) => { | @@ -141,11 +136,6 @@ const handleDetail = async (rowId: number) => { | ||
| 141 | modelLoading.value = false | 136 | modelLoading.value = false |
| 142 | } | 137 | } |
| 143 | 138 | ||
| 144 | -// 删除操作 | ||
| 145 | -const handleDelete = async (rowId: number) => { | ||
| 146 | - await deleteData(rowId) | ||
| 147 | -} | ||
| 148 | - | ||
| 149 | // 提交按钮 | 139 | // 提交按钮 |
| 150 | const submitForm = async () => { | 140 | const submitForm = async () => { |
| 151 | const elForm = unref(formRef)?.getElFormRef() | 141 | const elForm = unref(formRef)?.getElFormRef() |
yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/DefaultDatabaseQueryTest.java
| 1 | package cn.iocoder.yudao.module.infra.service; | 1 | package cn.iocoder.yudao.module.infra.service; |
| 2 | 2 | ||
| 3 | import cn.hutool.core.util.StrUtil; | 3 | import cn.hutool.core.util.StrUtil; |
| 4 | -import com.baomidou.mybatisplus.generator.IDatabaseQuery.DefaultDatabaseQuery; | 4 | +import com.baomidou.mybatisplus.generator.query.DefaultQuery; |
| 5 | import com.baomidou.mybatisplus.generator.config.DataSourceConfig; | 5 | import com.baomidou.mybatisplus.generator.config.DataSourceConfig; |
| 6 | import com.baomidou.mybatisplus.generator.config.builder.ConfigBuilder; | 6 | import com.baomidou.mybatisplus.generator.config.builder.ConfigBuilder; |
| 7 | import com.baomidou.mybatisplus.generator.config.po.TableInfo; | 7 | import com.baomidou.mybatisplus.generator.config.po.TableInfo; |
| @@ -19,7 +19,7 @@ public class DefaultDatabaseQueryTest { | @@ -19,7 +19,7 @@ public class DefaultDatabaseQueryTest { | ||
| 19 | 19 | ||
| 20 | ConfigBuilder builder = new ConfigBuilder(null, dataSourceConfig, null, null, null, null); | 20 | ConfigBuilder builder = new ConfigBuilder(null, dataSourceConfig, null, null, null, null); |
| 21 | 21 | ||
| 22 | - DefaultDatabaseQuery query = new DefaultDatabaseQuery(builder); | 22 | + DefaultQuery query = new DefaultQuery(builder); |
| 23 | 23 | ||
| 24 | long time = System.currentTimeMillis(); | 24 | long time = System.currentTimeMillis(); |
| 25 | List<TableInfo> tableInfos = query.queryTables(); | 25 | List<TableInfo> tableInfos = query.queryTables(); |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/captcha/CaptchaController.java
| 1 | package cn.iocoder.yudao.module.system.controller.admin.captcha; | 1 | package cn.iocoder.yudao.module.system.controller.admin.captcha; |
| 2 | 2 | ||
| 3 | +import cn.hutool.core.util.StrUtil; | ||
| 4 | +import cn.hutool.extra.servlet.ServletUtil; | ||
| 3 | import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; | 5 | import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; |
| 4 | import com.anji.captcha.model.common.ResponseModel; | 6 | import com.anji.captcha.model.common.ResponseModel; |
| 5 | import com.anji.captcha.model.vo.CaptchaVO; | 7 | import com.anji.captcha.model.vo.CaptchaVO; |
| 6 | -import io.swagger.v3.oas.annotations.tags.Tag; | ||
| 7 | -import io.swagger.v3.oas.annotations.Operation; | 8 | +import com.anji.captcha.service.CaptchaService; |
| 9 | +import io.swagger.annotations.Api; | ||
| 10 | +import io.swagger.annotations.ApiOperation; | ||
| 8 | import org.springframework.web.bind.annotation.PostMapping; | 11 | import org.springframework.web.bind.annotation.PostMapping; |
| 9 | import org.springframework.web.bind.annotation.RequestBody; | 12 | import org.springframework.web.bind.annotation.RequestBody; |
| 10 | import org.springframework.web.bind.annotation.RequestMapping; | 13 | import org.springframework.web.bind.annotation.RequestMapping; |
| 11 | import org.springframework.web.bind.annotation.RestController; | 14 | import org.springframework.web.bind.annotation.RestController; |
| 12 | 15 | ||
| 16 | +import javax.annotation.Resource; | ||
| 13 | import javax.annotation.security.PermitAll; | 17 | import javax.annotation.security.PermitAll; |
| 14 | import javax.servlet.http.HttpServletRequest; | 18 | import javax.servlet.http.HttpServletRequest; |
| 15 | 19 | ||
| 16 | /** | 20 | /** |
| 17 | * 验证码 | 21 | * 验证码 |
| 18 | * | 22 | * |
| 19 | - * 问题:为什么不直接使用 anji 提供的 CaptchaController,而要另外继承? | ||
| 20 | - * 回答:管理使用 /admin-api/* 作为前缀,所以需要继承! | ||
| 21 | - * | ||
| 22 | * @author 芋道源码 | 23 | * @author 芋道源码 |
| 23 | */ | 24 | */ |
| 24 | -@Tag(name = "管理后台 - 验证码") | 25 | +@Api(tags = "管理后台 - 验证码") |
| 25 | @RestController("adminCaptchaController") | 26 | @RestController("adminCaptchaController") |
| 26 | @RequestMapping("/system/captcha") | 27 | @RequestMapping("/system/captcha") |
| 27 | -public class CaptchaController extends com.anji.captcha.controller.CaptchaController { | 28 | +public class CaptchaController { |
| 29 | + | ||
| 30 | + @Resource | ||
| 31 | + private CaptchaService captchaService; | ||
| 28 | 32 | ||
| 29 | @PostMapping({"/get"}) | 33 | @PostMapping({"/get"}) |
| 30 | - @Operation(summary = "获得验证码") | 34 | + @ApiOperation("获得验证码") |
| 31 | @PermitAll | 35 | @PermitAll |
| 32 | @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 | 36 | @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 |
| 33 | - @Override | ||
| 34 | public ResponseModel get(@RequestBody CaptchaVO data, HttpServletRequest request) { | 37 | public ResponseModel get(@RequestBody CaptchaVO data, HttpServletRequest request) { |
| 35 | - return super.get(data, request); | 38 | + assert request.getRemoteHost() != null; |
| 39 | + data.setBrowserInfo(getRemoteId(request)); | ||
| 40 | + return captchaService.get(data); | ||
| 36 | } | 41 | } |
| 37 | 42 | ||
| 38 | @PostMapping("/check") | 43 | @PostMapping("/check") |
| 39 | - @Operation(summary = "校验验证码") | 44 | + @ApiOperation("校验验证码") |
| 40 | @PermitAll | 45 | @PermitAll |
| 41 | @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 | 46 | @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 |
| 42 | - @Override | ||
| 43 | public ResponseModel check(@RequestBody CaptchaVO data, HttpServletRequest request) { | 47 | public ResponseModel check(@RequestBody CaptchaVO data, HttpServletRequest request) { |
| 44 | - return super.check(data, request); | 48 | + data.setBrowserInfo(getRemoteId(request)); |
| 49 | + return captchaService.check(data); | ||
| 50 | + } | ||
| 51 | + | ||
| 52 | + public static String getRemoteId(HttpServletRequest request) { | ||
| 53 | + String ip = ServletUtil.getClientIP(request); | ||
| 54 | + String ua = request.getHeader("user-agent"); | ||
| 55 | + if (StrUtil.isNotBlank(ip)) { | ||
| 56 | + return ip + ua; | ||
| 57 | + } | ||
| 58 | + return request.getRemoteAddr() + ua; | ||
| 45 | } | 59 | } |
| 46 | 60 | ||
| 47 | } | 61 | } |
yudao-module-visualization/yudao-module-visualization-biz/src/main/java/cn/iocoder/yudao/module/visualization/framework/jmreport/config/JmReportConfiguration.java
| 1 | package cn.iocoder.yudao.module.visualization.framework.jmreport.config; | 1 | package cn.iocoder.yudao.module.visualization.framework.jmreport.config; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.yudao.framework.security.config.SecurityProperties; | ||
| 3 | import cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApi; | 4 | import cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApi; |
| 4 | import cn.iocoder.yudao.module.visualization.framework.jmreport.core.service.JmReportTokenServiceImpl; | 5 | import cn.iocoder.yudao.module.visualization.framework.jmreport.core.service.JmReportTokenServiceImpl; |
| 5 | import org.jeecg.modules.jmreport.api.JmReportTokenServiceI; | 6 | import org.jeecg.modules.jmreport.api.JmReportTokenServiceI; |
| @@ -18,8 +19,8 @@ public class JmReportConfiguration { | @@ -18,8 +19,8 @@ public class JmReportConfiguration { | ||
| 18 | 19 | ||
| 19 | @Bean | 20 | @Bean |
| 20 | @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection") | 21 | @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection") |
| 21 | - public JmReportTokenServiceI jmReportTokenService(OAuth2TokenApi oAuth2TokenApi) { | ||
| 22 | - return new JmReportTokenServiceImpl(oAuth2TokenApi); | 22 | + public JmReportTokenServiceI jmReportTokenService(OAuth2TokenApi oAuth2TokenApi, SecurityProperties securityProperties) { |
| 23 | + return new JmReportTokenServiceImpl(oAuth2TokenApi, securityProperties); | ||
| 23 | } | 24 | } |
| 24 | 25 | ||
| 25 | } | 26 | } |
yudao-module-visualization/yudao-module-visualization-biz/src/main/java/cn/iocoder/yudao/module/visualization/framework/jmreport/core/service/JmReportTokenServiceImpl.java
| 1 | package cn.iocoder.yudao.module.visualization.framework.jmreport.core.service; | 1 | package cn.iocoder.yudao.module.visualization.framework.jmreport.core.service; |
| 2 | 2 | ||
| 3 | +import cn.hutool.core.util.ObjectUtil; | ||
| 3 | import cn.hutool.core.util.StrUtil; | 4 | import cn.hutool.core.util.StrUtil; |
| 4 | import cn.iocoder.yudao.framework.common.exception.ServiceException; | 5 | import cn.iocoder.yudao.framework.common.exception.ServiceException; |
| 6 | +import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; | ||
| 7 | +import cn.iocoder.yudao.framework.security.config.SecurityProperties; | ||
| 5 | import cn.iocoder.yudao.framework.security.core.LoginUser; | 8 | import cn.iocoder.yudao.framework.security.core.LoginUser; |
| 6 | import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; | 9 | import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; |
| 7 | import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; | 10 | import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; |
| @@ -10,6 +13,10 @@ import cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApi; | @@ -10,6 +13,10 @@ import cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApi; | ||
| 10 | import cn.iocoder.yudao.module.system.api.oauth2.dto.OAuth2AccessTokenCheckRespDTO; | 13 | import cn.iocoder.yudao.module.system.api.oauth2.dto.OAuth2AccessTokenCheckRespDTO; |
| 11 | import lombok.RequiredArgsConstructor; | 14 | import lombok.RequiredArgsConstructor; |
| 12 | import org.jeecg.modules.jmreport.api.JmReportTokenServiceI; | 15 | import org.jeecg.modules.jmreport.api.JmReportTokenServiceI; |
| 16 | +import org.springframework.http.HttpHeaders; | ||
| 17 | + | ||
| 18 | +import javax.servlet.http.HttpServletRequest; | ||
| 19 | +import java.util.Objects; | ||
| 13 | 20 | ||
| 14 | /** | 21 | /** |
| 15 | * {@link JmReportTokenServiceI} 实现类,提供积木报表的 Token 校验、用户信息的查询等功能 | 22 | * {@link JmReportTokenServiceI} 实现类,提供积木报表的 Token 校验、用户信息的查询等功能 |
| @@ -19,8 +26,37 @@ import org.jeecg.modules.jmreport.api.JmReportTokenServiceI; | @@ -19,8 +26,37 @@ import org.jeecg.modules.jmreport.api.JmReportTokenServiceI; | ||
| 19 | @RequiredArgsConstructor | 26 | @RequiredArgsConstructor |
| 20 | public class JmReportTokenServiceImpl implements JmReportTokenServiceI { | 27 | public class JmReportTokenServiceImpl implements JmReportTokenServiceI { |
| 21 | 28 | ||
| 29 | + /** | ||
| 30 | + * 积木 token head 头 | ||
| 31 | + */ | ||
| 32 | + private static final String JM_TOKEN_HEADER = "X-Access-Token"; | ||
| 33 | + /** | ||
| 34 | + * auth 相关格式 | ||
| 35 | + */ | ||
| 36 | + private static final String AUTHORIZATION_FORMAT = SecurityFrameworkUtils.AUTHORIZATION_BEARER + " %s"; | ||
| 37 | + | ||
| 22 | private final OAuth2TokenApi oauth2TokenApi; | 38 | private final OAuth2TokenApi oauth2TokenApi; |
| 23 | 39 | ||
| 40 | + private final SecurityProperties securityProperties; | ||
| 41 | + | ||
| 42 | + /** | ||
| 43 | + * 自定义 API 数据集appian自定义 Header,解决 Token 传递。 | ||
| 44 | + * 参考 <a href="http://report.jeecg.com/2222224">api数据集token机制详解</a> 文档 | ||
| 45 | + * | ||
| 46 | + * @return 新 head | ||
| 47 | + */ | ||
| 48 | + @Override | ||
| 49 | + public HttpHeaders customApiHeader() { | ||
| 50 | + // 读取积木标标系统的 token | ||
| 51 | + HttpServletRequest request = ServletUtils.getRequest(); | ||
| 52 | + String token = request.getHeader(JM_TOKEN_HEADER); | ||
| 53 | + | ||
| 54 | + // 设置到 yudao 系统的 token | ||
| 55 | + HttpHeaders headers = new HttpHeaders(); | ||
| 56 | + headers.add(securityProperties.getTokenHeader(), String.format(AUTHORIZATION_FORMAT, token)); | ||
| 57 | + return headers; | ||
| 58 | + } | ||
| 59 | + | ||
| 24 | /** | 60 | /** |
| 25 | * 校验 Token 是否有效,即验证通过 | 61 | * 校验 Token 是否有效,即验证通过 |
| 26 | * | 62 | * |
| @@ -29,8 +65,40 @@ public class JmReportTokenServiceImpl implements JmReportTokenServiceI { | @@ -29,8 +65,40 @@ public class JmReportTokenServiceImpl implements JmReportTokenServiceI { | ||
| 29 | */ | 65 | */ |
| 30 | @Override | 66 | @Override |
| 31 | public Boolean verifyToken(String token) { | 67 | public Boolean verifyToken(String token) { |
| 68 | + Long userId = SecurityFrameworkUtils.getLoginUserId(); | ||
| 69 | + if (!Objects.isNull(userId)) { | ||
| 70 | + return true; | ||
| 71 | + } | ||
| 72 | + return buildLoginUserByToken(token) != null; | ||
| 73 | + } | ||
| 74 | + | ||
| 75 | + /** | ||
| 76 | + * 获得用户编号 | ||
| 77 | + * <p> | ||
| 78 | + * 虽然方法名获得的是 username,实际对应到项目中是用户编号 | ||
| 79 | + * | ||
| 80 | + * @param token JmReport 前端传递的 token | ||
| 81 | + * @return 用户编号 | ||
| 82 | + */ | ||
| 83 | + @Override | ||
| 84 | + public String getUsername(String token) { | ||
| 85 | + Long userId = SecurityFrameworkUtils.getLoginUserId(); | ||
| 86 | + if (ObjectUtil.isNotNull(userId)) { | ||
| 87 | + return String.valueOf(userId); | ||
| 88 | + } | ||
| 89 | + LoginUser user = buildLoginUserByToken(token); | ||
| 90 | + return user == null ? null : String.valueOf(user.getId()); | ||
| 91 | + } | ||
| 92 | + | ||
| 93 | + /** | ||
| 94 | + * 基于 token 构建登录用户 | ||
| 95 | + * | ||
| 96 | + * @param token token | ||
| 97 | + * @return 返回 token 对应的用户信息 | ||
| 98 | + */ | ||
| 99 | + private LoginUser buildLoginUserByToken(String token) { | ||
| 32 | if (StrUtil.isEmpty(token)) { | 100 | if (StrUtil.isEmpty(token)) { |
| 33 | - return false; | 101 | + return null; |
| 34 | } | 102 | } |
| 35 | // TODO 如下的实现不算特别优雅,主要咱是不想搞的太复杂,所以参考对应的 Filter 先实现了 | 103 | // TODO 如下的实现不算特别优雅,主要咱是不想搞的太复杂,所以参考对应的 Filter 先实现了 |
| 36 | 104 | ||
| @@ -41,7 +109,7 @@ public class JmReportTokenServiceImpl implements JmReportTokenServiceI { | @@ -41,7 +109,7 @@ public class JmReportTokenServiceImpl implements JmReportTokenServiceI { | ||
| 41 | try { | 109 | try { |
| 42 | OAuth2AccessTokenCheckRespDTO accessToken = oauth2TokenApi.checkAccessToken(token); | 110 | OAuth2AccessTokenCheckRespDTO accessToken = oauth2TokenApi.checkAccessToken(token); |
| 43 | if (accessToken == null) { | 111 | if (accessToken == null) { |
| 44 | - return false; | 112 | + return null; |
| 45 | } | 113 | } |
| 46 | user = new LoginUser().setId(accessToken.getUserId()).setUserType(accessToken.getUserType()) | 114 | user = new LoginUser().setId(accessToken.getUserId()).setUserType(accessToken.getUserType()) |
| 47 | .setTenantId(accessToken.getTenantId()).setScopes(accessToken.getScopes()); | 115 | .setTenantId(accessToken.getTenantId()).setScopes(accessToken.getScopes()); |
| @@ -49,7 +117,7 @@ public class JmReportTokenServiceImpl implements JmReportTokenServiceI { | @@ -49,7 +117,7 @@ public class JmReportTokenServiceImpl implements JmReportTokenServiceI { | ||
| 49 | // do nothing:如果报错,说明认证失败,则返回 false 即可 | 117 | // do nothing:如果报错,说明认证失败,则返回 false 即可 |
| 50 | } | 118 | } |
| 51 | if (user == null) { | 119 | if (user == null) { |
| 52 | - return false; | 120 | + return null; |
| 53 | } | 121 | } |
| 54 | SecurityFrameworkUtils.setLoginUser(user, WebFrameworkUtils.getRequest()); | 122 | SecurityFrameworkUtils.setLoginUser(user, WebFrameworkUtils.getRequest()); |
| 55 | 123 | ||
| @@ -57,21 +125,7 @@ public class JmReportTokenServiceImpl implements JmReportTokenServiceI { | @@ -57,21 +125,7 @@ public class JmReportTokenServiceImpl implements JmReportTokenServiceI { | ||
| 57 | // 目的:基于 LoginUser 获得到的租户编号,设置到 Tenant 上下文,避免查询数据库时的报错 | 125 | // 目的:基于 LoginUser 获得到的租户编号,设置到 Tenant 上下文,避免查询数据库时的报错 |
| 58 | TenantContextHolder.setIgnore(false); | 126 | TenantContextHolder.setIgnore(false); |
| 59 | TenantContextHolder.setTenantId(user.getTenantId()); | 127 | TenantContextHolder.setTenantId(user.getTenantId()); |
| 60 | - return true; | ||
| 61 | - } | ||
| 62 | - | ||
| 63 | - /** | ||
| 64 | - * 获得用户编号 | ||
| 65 | - * | ||
| 66 | - * 虽然方法名获得的是 username,实际对应到项目中是用户编号 | ||
| 67 | - * | ||
| 68 | - * @param token JmReport 前端传递的 token | ||
| 69 | - * @return 用户编号 | ||
| 70 | - */ | ||
| 71 | - @Override | ||
| 72 | - public String getUsername(String token) { | ||
| 73 | - Long userId = SecurityFrameworkUtils.getLoginUserId(); | ||
| 74 | - return userId != null ? String.valueOf(userId) : null; | 128 | + return user; |
| 75 | } | 129 | } |
| 76 | 130 | ||
| 77 | } | 131 | } |
yudao-server/pom.xml
| @@ -104,7 +104,7 @@ | @@ -104,7 +104,7 @@ | ||
| 104 | <plugin> | 104 | <plugin> |
| 105 | <groupId>org.springframework.boot</groupId> | 105 | <groupId>org.springframework.boot</groupId> |
| 106 | <artifactId>spring-boot-maven-plugin</artifactId> | 106 | <artifactId>spring-boot-maven-plugin</artifactId> |
| 107 | - <version>2.7.6</version> <!-- 如果 spring.boot.version 版本修改,则这里也要跟着修改 --> | 107 | + <version>2.7.7</version> <!-- 如果 spring.boot.version 版本修改,则这里也要跟着修改 --> |
| 108 | <configuration> | 108 | <configuration> |
| 109 | <fork>true</fork> | 109 | <fork>true</fork> |
| 110 | </configuration> | 110 | </configuration> |
yudao-server/src/main/resources/application.yaml
| @@ -97,6 +97,11 @@ yudao: | @@ -97,6 +97,11 @@ yudao: | ||
| 97 | security: | 97 | security: |
| 98 | permit-all_urls: | 98 | permit-all_urls: |
| 99 | - /admin-ui/** # /resources/admin-ui 目录下的静态资源 | 99 | - /admin-ui/** # /resources/admin-ui 目录下的静态资源 |
| 100 | + websocket: | ||
| 101 | + enable: true # websocket的开关 | ||
| 102 | + path: /websocket/message # 路径 | ||
| 103 | + maxOnlineCount: 0 # 最大连接人数 | ||
| 104 | + sessionMap: true # 保存sessionMap | ||
| 100 | swagger: | 105 | swagger: |
| 101 | title: 管理后台 | 106 | title: 管理后台 |
| 102 | description: 提供管理员管理的所有功能 | 107 | description: 提供管理员管理的所有功能 |
yudao-ui-admin-vue3/README.md
| @@ -34,7 +34,7 @@ | @@ -34,7 +34,7 @@ | ||
| 34 | | [TypeScript](https://www.typescriptlang.org/docs/) | JavaScript 的超集 | 4.9.4 | | 34 | | [TypeScript](https://www.typescriptlang.org/docs/) | JavaScript 的超集 | 4.9.4 | |
| 35 | | [pinia](https://pinia.vuejs.org/) | Vue 存储库 替代 vuex5 | 2.0.28 | | 35 | | [pinia](https://pinia.vuejs.org/) | Vue 存储库 替代 vuex5 | 2.0.28 | |
| 36 | | [vueuse](https://vueuse.org/) | 常用工具集 | 9.10.0 | | 36 | | [vueuse](https://vueuse.org/) | 常用工具集 | 9.10.0 | |
| 37 | -| [vxe-table](https://vxetable.cn/) | vue 最强表单 | 4.3.7 | | 37 | +| [vxe-table](https://vxetable.cn/) | vue 最强表单 | 4.3.9 | |
| 38 | | [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 9.2.2 | | 38 | | [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 9.2.2 | |
| 39 | | [vue-router](https://router.vuejs.org/) | vue 路由 | 4.1.6 | | 39 | | [vue-router](https://router.vuejs.org/) | vue 路由 | 4.1.6 | |
| 40 | | [windicss](https://cn.windicss.org/) | 下一代工具优先的 CSS 框架 | 3.5.6 | | 40 | | [windicss](https://cn.windicss.org/) | 下一代工具优先的 CSS 框架 | 3.5.6 | |
yudao-ui-admin-vue3/package.json
| 1 | { | 1 | { |
| 2 | "name": "yudao-ui-admin-vue3", | 2 | "name": "yudao-ui-admin-vue3", |
| 3 | - "version": "1.6.5.1901", | 3 | + "version": "1.6.6-snapshot.1912", |
| 4 | "description": "基于vue3、vite4、element-plus、typesScript", | 4 | "description": "基于vue3、vite4、element-plus、typesScript", |
| 5 | "author": "xingyu", | 5 | "author": "xingyu", |
| 6 | "private": false, | 6 | "private": false, |
| @@ -42,7 +42,7 @@ | @@ -42,7 +42,7 @@ | ||
| 42 | "lodash-es": "^4.17.21", | 42 | "lodash-es": "^4.17.21", |
| 43 | "mitt": "^3.0.0", | 43 | "mitt": "^3.0.0", |
| 44 | "nprogress": "^0.2.0", | 44 | "nprogress": "^0.2.0", |
| 45 | - "pinia": "^2.0.28", | 45 | + "pinia": "^2.0.29", |
| 46 | "qrcode": "^1.5.1", | 46 | "qrcode": "^1.5.1", |
| 47 | "qs": "^6.11.0", | 47 | "qs": "^6.11.0", |
| 48 | "url": "^0.11.0", | 48 | "url": "^0.11.0", |
| @@ -50,14 +50,14 @@ | @@ -50,14 +50,14 @@ | ||
| 50 | "vue-i18n": "9.2.2", | 50 | "vue-i18n": "9.2.2", |
| 51 | "vue-router": "^4.1.6", | 51 | "vue-router": "^4.1.6", |
| 52 | "vue-types": "^5.0.2", | 52 | "vue-types": "^5.0.2", |
| 53 | - "vxe-table": "^4.3.7", | 53 | + "vxe-table": "^4.3.9", |
| 54 | "web-storage-cache": "^1.1.1", | 54 | "web-storage-cache": "^1.1.1", |
| 55 | "xe-utils": "^3.5.7" | 55 | "xe-utils": "^3.5.7" |
| 56 | }, | 56 | }, |
| 57 | "devDependencies": { | 57 | "devDependencies": { |
| 58 | - "@commitlint/cli": "^17.3.0", | ||
| 59 | - "@commitlint/config-conventional": "^17.3.0", | ||
| 60 | - "@iconify/json": "^2.2.1", | 58 | + "@commitlint/cli": "^17.4.2", |
| 59 | + "@commitlint/config-conventional": "^17.4.2", | ||
| 60 | + "@iconify/json": "^2.2.7", | ||
| 61 | "@intlify/unplugin-vue-i18n": "^0.8.1", | 61 | "@intlify/unplugin-vue-i18n": "^0.8.1", |
| 62 | "@purge-icons/generated": "^0.9.0", | 62 | "@purge-icons/generated": "^0.9.0", |
| 63 | "@types/intro.js": "^5.1.0", | 63 | "@types/intro.js": "^5.1.0", |
| @@ -66,32 +66,32 @@ | @@ -66,32 +66,32 @@ | ||
| 66 | "@types/nprogress": "^0.2.0", | 66 | "@types/nprogress": "^0.2.0", |
| 67 | "@types/qrcode": "^1.5.0", | 67 | "@types/qrcode": "^1.5.0", |
| 68 | "@types/qs": "^6.9.7", | 68 | "@types/qs": "^6.9.7", |
| 69 | - "@typescript-eslint/eslint-plugin": "^5.48.0", | ||
| 70 | - "@typescript-eslint/parser": "^5.48.0", | 69 | + "@typescript-eslint/eslint-plugin": "^5.48.1", |
| 70 | + "@typescript-eslint/parser": "^5.48.1", | ||
| 71 | "@vitejs/plugin-legacy": "^3.0.1", | 71 | "@vitejs/plugin-legacy": "^3.0.1", |
| 72 | "@vitejs/plugin-vue": "^4.0.0", | 72 | "@vitejs/plugin-vue": "^4.0.0", |
| 73 | "@vitejs/plugin-vue-jsx": "^3.0.0", | 73 | "@vitejs/plugin-vue-jsx": "^3.0.0", |
| 74 | "autoprefixer": "^10.4.13", | 74 | "autoprefixer": "^10.4.13", |
| 75 | "consola": "^2.15.3", | 75 | "consola": "^2.15.3", |
| 76 | - "eslint": "^8.31.0", | 76 | + "eslint": "^8.32.0", |
| 77 | "eslint-config-prettier": "^8.6.0", | 77 | "eslint-config-prettier": "^8.6.0", |
| 78 | - "eslint-define-config": "^1.13.0", | 78 | + "eslint-define-config": "^1.14.0", |
| 79 | "eslint-plugin-prettier": "^4.2.1", | 79 | "eslint-plugin-prettier": "^4.2.1", |
| 80 | - "eslint-plugin-vue": "^9.8.0", | 80 | + "eslint-plugin-vue": "^9.9.0", |
| 81 | "lint-staged": "^13.1.0", | 81 | "lint-staged": "^13.1.0", |
| 82 | - "postcss": "^8.4.20", | 82 | + "postcss": "^8.4.21", |
| 83 | "postcss-html": "^1.5.0", | 83 | "postcss-html": "^1.5.0", |
| 84 | "postcss-scss": "^4.0.6", | 84 | "postcss-scss": "^4.0.6", |
| 85 | - "prettier": "^2.8.1", | ||
| 86 | - "rimraf": "^3.0.2", | ||
| 87 | - "rollup": "^3.9.1", | 85 | + "prettier": "^2.8.3", |
| 86 | + "rimraf": "^4.0.7", | ||
| 87 | + "rollup": "^3.10.0", | ||
| 88 | "sass": "^1.57.1", | 88 | "sass": "^1.57.1", |
| 89 | "stylelint": "^14.16.1", | 89 | "stylelint": "^14.16.1", |
| 90 | "stylelint-config-html": "^1.1.0", | 90 | "stylelint-config-html": "^1.1.0", |
| 91 | "stylelint-config-prettier": "^9.0.4", | 91 | "stylelint-config-prettier": "^9.0.4", |
| 92 | "stylelint-config-recommended": "^9.0.0", | 92 | "stylelint-config-recommended": "^9.0.0", |
| 93 | "stylelint-config-standard": "^29.0.0", | 93 | "stylelint-config-standard": "^29.0.0", |
| 94 | - "stylelint-order": "^5.0.0", | 94 | + "stylelint-order": "^6.0.1", |
| 95 | "terser": "^5.16.1", | 95 | "terser": "^5.16.1", |
| 96 | "typescript": "4.9.4", | 96 | "typescript": "4.9.4", |
| 97 | "vite": "4.0.4", | 97 | "vite": "4.0.4", |
| @@ -104,7 +104,7 @@ | @@ -104,7 +104,7 @@ | ||
| 104 | "vite-plugin-svg-icons": "^2.0.1", | 104 | "vite-plugin-svg-icons": "^2.0.1", |
| 105 | "vite-plugin-vue-setup-extend": "^0.4.0", | 105 | "vite-plugin-vue-setup-extend": "^0.4.0", |
| 106 | "vite-plugin-windicss": "^1.8.10", | 106 | "vite-plugin-windicss": "^1.8.10", |
| 107 | - "vue-tsc": "^1.0.20", | 107 | + "vue-tsc": "^1.0.24", |
| 108 | "windicss": "^3.5.6" | 108 | "windicss": "^3.5.6" |
| 109 | }, | 109 | }, |
| 110 | "engines": { | 110 | "engines": { |
yudao-ui-admin-vue3/pnpm-lock.yaml
| 1 | lockfileVersion: 5.4 | 1 | lockfileVersion: 5.4 |
| 2 | 2 | ||
| 3 | specifiers: | 3 | specifiers: |
| 4 | - '@commitlint/cli': ^17.3.0 | ||
| 5 | - '@commitlint/config-conventional': ^17.3.0 | 4 | + '@commitlint/cli': ^17.4.2 |
| 5 | + '@commitlint/config-conventional': ^17.4.2 | ||
| 6 | '@iconify/iconify': ^3.0.1 | 6 | '@iconify/iconify': ^3.0.1 |
| 7 | - '@iconify/json': ^2.2.1 | 7 | + '@iconify/json': ^2.2.7 |
| 8 | '@intlify/unplugin-vue-i18n': ^0.8.1 | 8 | '@intlify/unplugin-vue-i18n': ^0.8.1 |
| 9 | '@purge-icons/generated': ^0.9.0 | 9 | '@purge-icons/generated': ^0.9.0 |
| 10 | '@types/intro.js': ^5.1.0 | 10 | '@types/intro.js': ^5.1.0 |
| @@ -13,8 +13,8 @@ specifiers: | @@ -13,8 +13,8 @@ specifiers: | ||
| 13 | '@types/nprogress': ^0.2.0 | 13 | '@types/nprogress': ^0.2.0 |
| 14 | '@types/qrcode': ^1.5.0 | 14 | '@types/qrcode': ^1.5.0 |
| 15 | '@types/qs': ^6.9.7 | 15 | '@types/qs': ^6.9.7 |
| 16 | - '@typescript-eslint/eslint-plugin': ^5.48.0 | ||
| 17 | - '@typescript-eslint/parser': ^5.48.0 | 16 | + '@typescript-eslint/eslint-plugin': ^5.48.1 |
| 17 | + '@typescript-eslint/parser': ^5.48.1 | ||
| 18 | '@vitejs/plugin-legacy': ^3.0.1 | 18 | '@vitejs/plugin-legacy': ^3.0.1 |
| 19 | '@vitejs/plugin-vue': ^4.0.0 | 19 | '@vitejs/plugin-vue': ^4.0.0 |
| 20 | '@vitejs/plugin-vue-jsx': ^3.0.0 | 20 | '@vitejs/plugin-vue-jsx': ^3.0.0 |
| @@ -32,33 +32,33 @@ specifiers: | @@ -32,33 +32,33 @@ specifiers: | ||
| 32 | echarts: ^5.4.1 | 32 | echarts: ^5.4.1 |
| 33 | echarts-wordcloud: ^2.1.0 | 33 | echarts-wordcloud: ^2.1.0 |
| 34 | element-plus: 2.2.28 | 34 | element-plus: 2.2.28 |
| 35 | - eslint: ^8.31.0 | 35 | + eslint: ^8.32.0 |
| 36 | eslint-config-prettier: ^8.6.0 | 36 | eslint-config-prettier: ^8.6.0 |
| 37 | - eslint-define-config: ^1.13.0 | 37 | + eslint-define-config: ^1.14.0 |
| 38 | eslint-plugin-prettier: ^4.2.1 | 38 | eslint-plugin-prettier: ^4.2.1 |
| 39 | - eslint-plugin-vue: ^9.8.0 | 39 | + eslint-plugin-vue: ^9.9.0 |
| 40 | intro.js: ^6.0.0 | 40 | intro.js: ^6.0.0 |
| 41 | jsencrypt: ^3.3.1 | 41 | jsencrypt: ^3.3.1 |
| 42 | lint-staged: ^13.1.0 | 42 | lint-staged: ^13.1.0 |
| 43 | lodash-es: ^4.17.21 | 43 | lodash-es: ^4.17.21 |
| 44 | mitt: ^3.0.0 | 44 | mitt: ^3.0.0 |
| 45 | nprogress: ^0.2.0 | 45 | nprogress: ^0.2.0 |
| 46 | - pinia: ^2.0.28 | ||
| 47 | - postcss: ^8.4.20 | 46 | + pinia: ^2.0.29 |
| 47 | + postcss: ^8.4.21 | ||
| 48 | postcss-html: ^1.5.0 | 48 | postcss-html: ^1.5.0 |
| 49 | postcss-scss: ^4.0.6 | 49 | postcss-scss: ^4.0.6 |
| 50 | - prettier: ^2.8.1 | 50 | + prettier: ^2.8.3 |
| 51 | qrcode: ^1.5.1 | 51 | qrcode: ^1.5.1 |
| 52 | qs: ^6.11.0 | 52 | qs: ^6.11.0 |
| 53 | - rimraf: ^3.0.2 | ||
| 54 | - rollup: ^3.9.1 | 53 | + rimraf: ^4.0.7 |
| 54 | + rollup: ^3.10.0 | ||
| 55 | sass: ^1.57.1 | 55 | sass: ^1.57.1 |
| 56 | stylelint: ^14.16.1 | 56 | stylelint: ^14.16.1 |
| 57 | stylelint-config-html: ^1.1.0 | 57 | stylelint-config-html: ^1.1.0 |
| 58 | stylelint-config-prettier: ^9.0.4 | 58 | stylelint-config-prettier: ^9.0.4 |
| 59 | stylelint-config-recommended: ^9.0.0 | 59 | stylelint-config-recommended: ^9.0.0 |
| 60 | stylelint-config-standard: ^29.0.0 | 60 | stylelint-config-standard: ^29.0.0 |
| 61 | - stylelint-order: ^5.0.0 | 61 | + stylelint-order: ^6.0.1 |
| 62 | terser: ^5.16.1 | 62 | terser: ^5.16.1 |
| 63 | typescript: 4.9.4 | 63 | typescript: 4.9.4 |
| 64 | url: ^0.11.0 | 64 | url: ^0.11.0 |
| @@ -75,9 +75,9 @@ specifiers: | @@ -75,9 +75,9 @@ specifiers: | ||
| 75 | vue: 3.2.45 | 75 | vue: 3.2.45 |
| 76 | vue-i18n: 9.2.2 | 76 | vue-i18n: 9.2.2 |
| 77 | vue-router: ^4.1.6 | 77 | vue-router: ^4.1.6 |
| 78 | - vue-tsc: ^1.0.20 | 78 | + vue-tsc: ^1.0.24 |
| 79 | vue-types: ^5.0.2 | 79 | vue-types: ^5.0.2 |
| 80 | - vxe-table: ^4.3.7 | 80 | + vxe-table: ^4.3.9 |
| 81 | web-storage-cache: ^1.1.1 | 81 | web-storage-cache: ^1.1.1 |
| 82 | windicss: ^3.5.6 | 82 | windicss: ^3.5.6 |
| 83 | xe-utils: ^3.5.7 | 83 | xe-utils: ^3.5.7 |
| @@ -93,7 +93,7 @@ dependencies: | @@ -93,7 +93,7 @@ dependencies: | ||
| 93 | cropperjs: 1.5.13 | 93 | cropperjs: 1.5.13 |
| 94 | crypto-js: 4.1.1 | 94 | crypto-js: 4.1.1 |
| 95 | dayjs: 1.11.7 | 95 | dayjs: 1.11.7 |
| 96 | - echarts: registry.npmmirror.com/echarts/5.4.1 | 96 | + echarts: 5.4.1 |
| 97 | echarts-wordcloud: 2.1.0_echarts@5.4.1 | 97 | echarts-wordcloud: 2.1.0_echarts@5.4.1 |
| 98 | element-plus: 2.2.28_vue@3.2.45 | 98 | element-plus: 2.2.28_vue@3.2.45 |
| 99 | intro.js: 6.0.0 | 99 | intro.js: 6.0.0 |
| @@ -101,7 +101,7 @@ dependencies: | @@ -101,7 +101,7 @@ dependencies: | ||
| 101 | lodash-es: 4.17.21 | 101 | lodash-es: 4.17.21 |
| 102 | mitt: 3.0.0 | 102 | mitt: 3.0.0 |
| 103 | nprogress: 0.2.0 | 103 | nprogress: 0.2.0 |
| 104 | - pinia: registry.npmmirror.com/pinia/2.0.28_prq2uz4lho2pwp6irk4cfkrxwu | 104 | + pinia: 2.0.29_prq2uz4lho2pwp6irk4cfkrxwu |
| 105 | qrcode: 1.5.1 | 105 | qrcode: 1.5.1 |
| 106 | qs: 6.11.0 | 106 | qs: 6.11.0 |
| 107 | url: 0.11.0 | 107 | url: 0.11.0 |
| @@ -109,14 +109,14 @@ dependencies: | @@ -109,14 +109,14 @@ dependencies: | ||
| 109 | vue-i18n: 9.2.2_vue@3.2.45 | 109 | vue-i18n: 9.2.2_vue@3.2.45 |
| 110 | vue-router: 4.1.6_vue@3.2.45 | 110 | vue-router: 4.1.6_vue@3.2.45 |
| 111 | vue-types: 5.0.2_vue@3.2.45 | 111 | vue-types: 5.0.2_vue@3.2.45 |
| 112 | - vxe-table: registry.npmmirror.com/vxe-table/4.3.7_vue@3.2.45+xe-utils@3.5.7 | 112 | + vxe-table: 4.3.9_vue@3.2.45+xe-utils@3.5.7 |
| 113 | web-storage-cache: 1.1.1 | 113 | web-storage-cache: 1.1.1 |
| 114 | xe-utils: 3.5.7 | 114 | xe-utils: 3.5.7 |
| 115 | 115 | ||
| 116 | devDependencies: | 116 | devDependencies: |
| 117 | - '@commitlint/cli': 17.3.0 | ||
| 118 | - '@commitlint/config-conventional': 17.3.0 | ||
| 119 | - '@iconify/json': 2.2.1 | 117 | + '@commitlint/cli': 17.4.2 |
| 118 | + '@commitlint/config-conventional': 17.4.2 | ||
| 119 | + '@iconify/json': 2.2.7 | ||
| 120 | '@intlify/unplugin-vue-i18n': 0.8.1_vue-i18n@9.2.2 | 120 | '@intlify/unplugin-vue-i18n': 0.8.1_vue-i18n@9.2.2 |
| 121 | '@purge-icons/generated': 0.9.0 | 121 | '@purge-icons/generated': 0.9.0 |
| 122 | '@types/intro.js': 5.1.0 | 122 | '@types/intro.js': 5.1.0 |
| @@ -125,66 +125,258 @@ devDependencies: | @@ -125,66 +125,258 @@ devDependencies: | ||
| 125 | '@types/nprogress': 0.2.0 | 125 | '@types/nprogress': 0.2.0 |
| 126 | '@types/qrcode': 1.5.0 | 126 | '@types/qrcode': 1.5.0 |
| 127 | '@types/qs': 6.9.7 | 127 | '@types/qs': 6.9.7 |
| 128 | - '@typescript-eslint/eslint-plugin': 5.48.0_k73wpmdolxikpyqun3p36akaaq | ||
| 129 | - '@typescript-eslint/parser': 5.48.0_iukboom6ndih5an6iafl45j2fe | ||
| 130 | - '@vitejs/plugin-legacy': registry.npmmirror.com/@vitejs/plugin-legacy/3.0.1_terser@5.16.1+vite@4.0.4 | ||
| 131 | - '@vitejs/plugin-vue': registry.npmmirror.com/@vitejs/plugin-vue/4.0.0_vite@4.0.4+vue@3.2.45 | ||
| 132 | - '@vitejs/plugin-vue-jsx': registry.npmmirror.com/@vitejs/plugin-vue-jsx/3.0.0_vite@4.0.4+vue@3.2.45 | ||
| 133 | - autoprefixer: 10.4.13_postcss@8.4.20 | 128 | + '@typescript-eslint/eslint-plugin': 5.48.1_oomjohfipuyaxs2zyomcx4f5by |
| 129 | + '@typescript-eslint/parser': 5.48.1_7uibuqfxkfaozanbtbziikiqje | ||
| 130 | + '@vitejs/plugin-legacy': 3.0.1_terser@5.16.1+vite@4.0.4 | ||
| 131 | + '@vitejs/plugin-vue': 4.0.0_vite@4.0.4+vue@3.2.45 | ||
| 132 | + '@vitejs/plugin-vue-jsx': 3.0.0_vite@4.0.4+vue@3.2.45 | ||
| 133 | + autoprefixer: 10.4.13_postcss@8.4.21 | ||
| 134 | consola: 2.15.3 | 134 | consola: 2.15.3 |
| 135 | - eslint: 8.31.0 | ||
| 136 | - eslint-config-prettier: 8.6.0_eslint@8.31.0 | ||
| 137 | - eslint-define-config: 1.13.0 | ||
| 138 | - eslint-plugin-prettier: 4.2.1_32m5uc2milwdw3tnkcq5del26y | ||
| 139 | - eslint-plugin-vue: 9.8.0_eslint@8.31.0 | 135 | + eslint: 8.32.0 |
| 136 | + eslint-config-prettier: 8.6.0_eslint@8.32.0 | ||
| 137 | + eslint-define-config: 1.14.0 | ||
| 138 | + eslint-plugin-prettier: 4.2.1_cn4lalcyadplruoxa5mhp7j3dq | ||
| 139 | + eslint-plugin-vue: 9.9.0_eslint@8.32.0 | ||
| 140 | lint-staged: 13.1.0 | 140 | lint-staged: 13.1.0 |
| 141 | - postcss: registry.npmmirror.com/postcss/8.4.20 | 141 | + postcss: 8.4.21 |
| 142 | postcss-html: 1.5.0 | 142 | postcss-html: 1.5.0 |
| 143 | - postcss-scss: 4.0.6_postcss@8.4.20 | ||
| 144 | - prettier: 2.8.1 | ||
| 145 | - rimraf: 3.0.2 | ||
| 146 | - rollup: 3.9.1 | 143 | + postcss-scss: 4.0.6_postcss@8.4.21 |
| 144 | + prettier: 2.8.3 | ||
| 145 | + rimraf: 4.0.7 | ||
| 146 | + rollup: 3.10.0 | ||
| 147 | sass: 1.57.1 | 147 | sass: 1.57.1 |
| 148 | stylelint: 14.16.1 | 148 | stylelint: 14.16.1 |
| 149 | stylelint-config-html: 1.1.0_kbto3rg3njmczth2rrsgfnlsqa | 149 | stylelint-config-html: 1.1.0_kbto3rg3njmczth2rrsgfnlsqa |
| 150 | stylelint-config-prettier: 9.0.4_stylelint@14.16.1 | 150 | stylelint-config-prettier: 9.0.4_stylelint@14.16.1 |
| 151 | stylelint-config-recommended: 9.0.0_stylelint@14.16.1 | 151 | stylelint-config-recommended: 9.0.0_stylelint@14.16.1 |
| 152 | stylelint-config-standard: 29.0.0_stylelint@14.16.1 | 152 | stylelint-config-standard: 29.0.0_stylelint@14.16.1 |
| 153 | - stylelint-order: 5.0.0_stylelint@14.16.1 | 153 | + stylelint-order: 6.0.1_stylelint@14.16.1 |
| 154 | terser: 5.16.1 | 154 | terser: 5.16.1 |
| 155 | typescript: 4.9.4 | 155 | typescript: 4.9.4 |
| 156 | vite: 4.0.4_zxbrnrc4iyldik6mikh3pswz4i | 156 | vite: 4.0.4_zxbrnrc4iyldik6mikh3pswz4i |
| 157 | vite-plugin-compression: 0.5.1_vite@4.0.4 | 157 | vite-plugin-compression: 0.5.1_vite@4.0.4 |
| 158 | vite-plugin-ejs: 1.6.4 | 158 | vite-plugin-ejs: 1.6.4 |
| 159 | - vite-plugin-eslint: 1.8.1_eslint@8.31.0+vite@4.0.4 | 159 | + vite-plugin-eslint: 1.8.1_eslint@8.32.0+vite@4.0.4 |
| 160 | vite-plugin-progress: 0.0.6_vite@4.0.4 | 160 | vite-plugin-progress: 0.0.6_vite@4.0.4 |
| 161 | - vite-plugin-purge-icons: registry.npmmirror.com/vite-plugin-purge-icons/0.9.2_vite@4.0.4 | 161 | + vite-plugin-purge-icons: 0.9.2_vite@4.0.4 |
| 162 | vite-plugin-style-import: 2.0.0_vite@4.0.4 | 162 | vite-plugin-style-import: 2.0.0_vite@4.0.4 |
| 163 | vite-plugin-svg-icons: 2.0.1_vite@4.0.4 | 163 | vite-plugin-svg-icons: 2.0.1_vite@4.0.4 |
| 164 | vite-plugin-vue-setup-extend: 0.4.0_vite@4.0.4 | 164 | vite-plugin-vue-setup-extend: 0.4.0_vite@4.0.4 |
| 165 | - vite-plugin-windicss: registry.npmmirror.com/vite-plugin-windicss/1.8.10_vite@4.0.4 | ||
| 166 | - vue-tsc: 1.0.20_typescript@4.9.4 | 165 | + vite-plugin-windicss: 1.8.10_vite@4.0.4 |
| 166 | + vue-tsc: 1.0.24_typescript@4.9.4 | ||
| 167 | windicss: 3.5.6 | 167 | windicss: 3.5.6 |
| 168 | 168 | ||
| 169 | packages: | 169 | packages: |
| 170 | 170 | ||
| 171 | + /@ampproject/remapping/2.2.0: | ||
| 172 | + resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@ampproject/remapping/-/remapping-2.2.0.tgz} | ||
| 173 | + engines: {node: '>=6.0.0'} | ||
| 174 | + dependencies: | ||
| 175 | + '@jridgewell/gen-mapping': 0.1.1 | ||
| 176 | + '@jridgewell/trace-mapping': 0.3.17 | ||
| 177 | + dev: true | ||
| 178 | + | ||
| 179 | + /@antfu/utils/0.7.2: | ||
| 180 | + resolution: {integrity: sha512-vy9fM3pIxZmX07dL+VX1aZe7ynZ+YyB0jY+jE6r3hOK6GNY2t6W8rzpFC4tgpbXUYABkFQwgJq2XYXlxbXAI0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@antfu/utils/-/utils-0.7.2.tgz} | ||
| 181 | + dev: true | ||
| 182 | + | ||
| 171 | /@babel/code-frame/7.18.6: | 183 | /@babel/code-frame/7.18.6: |
| 172 | - resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} | 184 | + resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/code-frame/-/code-frame-7.18.6.tgz} |
| 173 | engines: {node: '>=6.9.0'} | 185 | engines: {node: '>=6.9.0'} |
| 174 | dependencies: | 186 | dependencies: |
| 175 | '@babel/highlight': 7.18.6 | 187 | '@babel/highlight': 7.18.6 |
| 176 | dev: true | 188 | dev: true |
| 177 | 189 | ||
| 190 | + /@babel/compat-data/7.20.1: | ||
| 191 | + resolution: {integrity: sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/compat-data/-/compat-data-7.20.1.tgz} | ||
| 192 | + engines: {node: '>=6.9.0'} | ||
| 193 | + dev: true | ||
| 194 | + | ||
| 195 | + /@babel/core/7.20.5: | ||
| 196 | + resolution: {integrity: sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/core/-/core-7.20.5.tgz} | ||
| 197 | + engines: {node: '>=6.9.0'} | ||
| 198 | + dependencies: | ||
| 199 | + '@ampproject/remapping': 2.2.0 | ||
| 200 | + '@babel/code-frame': 7.18.6 | ||
| 201 | + '@babel/generator': 7.20.5 | ||
| 202 | + '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.20.5 | ||
| 203 | + '@babel/helper-module-transforms': 7.20.2 | ||
| 204 | + '@babel/helpers': 7.20.6 | ||
| 205 | + '@babel/parser': 7.20.5 | ||
| 206 | + '@babel/template': 7.18.10 | ||
| 207 | + '@babel/traverse': 7.20.5 | ||
| 208 | + '@babel/types': 7.20.5 | ||
| 209 | + convert-source-map: 1.9.0 | ||
| 210 | + debug: 4.3.4 | ||
| 211 | + gensync: 1.0.0-beta.2 | ||
| 212 | + json5: 2.2.1 | ||
| 213 | + semver: 6.3.0 | ||
| 214 | + transitivePeerDependencies: | ||
| 215 | + - supports-color | ||
| 216 | + dev: true | ||
| 217 | + | ||
| 218 | + /@babel/generator/7.20.5: | ||
| 219 | + resolution: {integrity: sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/generator/-/generator-7.20.5.tgz} | ||
| 220 | + engines: {node: '>=6.9.0'} | ||
| 221 | + dependencies: | ||
| 222 | + '@babel/types': 7.20.5 | ||
| 223 | + '@jridgewell/gen-mapping': 0.3.2 | ||
| 224 | + jsesc: 2.5.2 | ||
| 225 | + dev: true | ||
| 226 | + | ||
| 227 | + /@babel/helper-annotate-as-pure/7.18.6: | ||
| 228 | + resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz} | ||
| 229 | + engines: {node: '>=6.9.0'} | ||
| 230 | + dependencies: | ||
| 231 | + '@babel/types': 7.20.5 | ||
| 232 | + dev: true | ||
| 233 | + | ||
| 234 | + /@babel/helper-compilation-targets/7.20.0_@babel+core@7.20.5: | ||
| 235 | + resolution: {integrity: sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz} | ||
| 236 | + engines: {node: '>=6.9.0'} | ||
| 237 | + peerDependencies: | ||
| 238 | + '@babel/core': ^7.0.0 | ||
| 239 | + dependencies: | ||
| 240 | + '@babel/compat-data': 7.20.1 | ||
| 241 | + '@babel/core': 7.20.5 | ||
| 242 | + '@babel/helper-validator-option': 7.18.6 | ||
| 243 | + browserslist: 4.21.4 | ||
| 244 | + semver: 6.3.0 | ||
| 245 | + dev: true | ||
| 246 | + | ||
| 247 | + /@babel/helper-create-class-features-plugin/7.20.2_@babel+core@7.20.5: | ||
| 248 | + resolution: {integrity: sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz} | ||
| 249 | + engines: {node: '>=6.9.0'} | ||
| 250 | + peerDependencies: | ||
| 251 | + '@babel/core': ^7.0.0 | ||
| 252 | + dependencies: | ||
| 253 | + '@babel/core': 7.20.5 | ||
| 254 | + '@babel/helper-annotate-as-pure': 7.18.6 | ||
| 255 | + '@babel/helper-environment-visitor': 7.18.9 | ||
| 256 | + '@babel/helper-function-name': 7.19.0 | ||
| 257 | + '@babel/helper-member-expression-to-functions': 7.18.9 | ||
| 258 | + '@babel/helper-optimise-call-expression': 7.18.6 | ||
| 259 | + '@babel/helper-replace-supers': 7.19.1 | ||
| 260 | + '@babel/helper-split-export-declaration': 7.18.6 | ||
| 261 | + transitivePeerDependencies: | ||
| 262 | + - supports-color | ||
| 263 | + dev: true | ||
| 264 | + | ||
| 265 | + /@babel/helper-environment-visitor/7.18.9: | ||
| 266 | + resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz} | ||
| 267 | + engines: {node: '>=6.9.0'} | ||
| 268 | + dev: true | ||
| 269 | + | ||
| 270 | + /@babel/helper-function-name/7.19.0: | ||
| 271 | + resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz} | ||
| 272 | + engines: {node: '>=6.9.0'} | ||
| 273 | + dependencies: | ||
| 274 | + '@babel/template': 7.18.10 | ||
| 275 | + '@babel/types': 7.20.5 | ||
| 276 | + dev: true | ||
| 277 | + | ||
| 278 | + /@babel/helper-hoist-variables/7.18.6: | ||
| 279 | + resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz} | ||
| 280 | + engines: {node: '>=6.9.0'} | ||
| 281 | + dependencies: | ||
| 282 | + '@babel/types': 7.20.5 | ||
| 283 | + dev: true | ||
| 284 | + | ||
| 285 | + /@babel/helper-member-expression-to-functions/7.18.9: | ||
| 286 | + resolution: {integrity: sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz} | ||
| 287 | + engines: {node: '>=6.9.0'} | ||
| 288 | + dependencies: | ||
| 289 | + '@babel/types': 7.20.5 | ||
| 290 | + dev: true | ||
| 291 | + | ||
| 292 | + /@babel/helper-module-imports/7.18.6: | ||
| 293 | + resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz} | ||
| 294 | + engines: {node: '>=6.9.0'} | ||
| 295 | + dependencies: | ||
| 296 | + '@babel/types': 7.20.5 | ||
| 297 | + dev: true | ||
| 298 | + | ||
| 299 | + /@babel/helper-module-transforms/7.20.2: | ||
| 300 | + resolution: {integrity: sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz} | ||
| 301 | + engines: {node: '>=6.9.0'} | ||
| 302 | + dependencies: | ||
| 303 | + '@babel/helper-environment-visitor': 7.18.9 | ||
| 304 | + '@babel/helper-module-imports': 7.18.6 | ||
| 305 | + '@babel/helper-simple-access': 7.20.2 | ||
| 306 | + '@babel/helper-split-export-declaration': 7.18.6 | ||
| 307 | + '@babel/helper-validator-identifier': 7.19.1 | ||
| 308 | + '@babel/template': 7.18.10 | ||
| 309 | + '@babel/traverse': 7.20.5 | ||
| 310 | + '@babel/types': 7.20.5 | ||
| 311 | + transitivePeerDependencies: | ||
| 312 | + - supports-color | ||
| 313 | + dev: true | ||
| 314 | + | ||
| 315 | + /@babel/helper-optimise-call-expression/7.18.6: | ||
| 316 | + resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz} | ||
| 317 | + engines: {node: '>=6.9.0'} | ||
| 318 | + dependencies: | ||
| 319 | + '@babel/types': 7.20.5 | ||
| 320 | + dev: true | ||
| 321 | + | ||
| 322 | + /@babel/helper-plugin-utils/7.20.2: | ||
| 323 | + resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz} | ||
| 324 | + engines: {node: '>=6.9.0'} | ||
| 325 | + dev: true | ||
| 326 | + | ||
| 327 | + /@babel/helper-replace-supers/7.19.1: | ||
| 328 | + resolution: {integrity: sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz} | ||
| 329 | + engines: {node: '>=6.9.0'} | ||
| 330 | + dependencies: | ||
| 331 | + '@babel/helper-environment-visitor': 7.18.9 | ||
| 332 | + '@babel/helper-member-expression-to-functions': 7.18.9 | ||
| 333 | + '@babel/helper-optimise-call-expression': 7.18.6 | ||
| 334 | + '@babel/traverse': 7.20.5 | ||
| 335 | + '@babel/types': 7.20.5 | ||
| 336 | + transitivePeerDependencies: | ||
| 337 | + - supports-color | ||
| 338 | + dev: true | ||
| 339 | + | ||
| 340 | + /@babel/helper-simple-access/7.20.2: | ||
| 341 | + resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz} | ||
| 342 | + engines: {node: '>=6.9.0'} | ||
| 343 | + dependencies: | ||
| 344 | + '@babel/types': 7.20.5 | ||
| 345 | + dev: true | ||
| 346 | + | ||
| 347 | + /@babel/helper-split-export-declaration/7.18.6: | ||
| 348 | + resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz} | ||
| 349 | + engines: {node: '>=6.9.0'} | ||
| 350 | + dependencies: | ||
| 351 | + '@babel/types': 7.20.5 | ||
| 352 | + dev: true | ||
| 353 | + | ||
| 178 | /@babel/helper-string-parser/7.19.4: | 354 | /@babel/helper-string-parser/7.19.4: |
| 179 | - resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} | 355 | + resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz} |
| 180 | engines: {node: '>=6.9.0'} | 356 | engines: {node: '>=6.9.0'} |
| 181 | 357 | ||
| 182 | /@babel/helper-validator-identifier/7.19.1: | 358 | /@babel/helper-validator-identifier/7.19.1: |
| 183 | - resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} | 359 | + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz} |
| 360 | + engines: {node: '>=6.9.0'} | ||
| 361 | + | ||
| 362 | + /@babel/helper-validator-option/7.18.6: | ||
| 363 | + resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz} | ||
| 364 | + engines: {node: '>=6.9.0'} | ||
| 365 | + dev: true | ||
| 366 | + | ||
| 367 | + /@babel/helpers/7.20.6: | ||
| 368 | + resolution: {integrity: sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/helpers/-/helpers-7.20.6.tgz} | ||
| 184 | engines: {node: '>=6.9.0'} | 369 | engines: {node: '>=6.9.0'} |
| 370 | + dependencies: | ||
| 371 | + '@babel/template': 7.18.10 | ||
| 372 | + '@babel/traverse': 7.20.5 | ||
| 373 | + '@babel/types': 7.20.5 | ||
| 374 | + transitivePeerDependencies: | ||
| 375 | + - supports-color | ||
| 376 | + dev: true | ||
| 185 | 377 | ||
| 186 | /@babel/highlight/7.18.6: | 378 | /@babel/highlight/7.18.6: |
| 187 | - resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} | 379 | + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/highlight/-/highlight-7.18.6.tgz} |
| 188 | engines: {node: '>=6.9.0'} | 380 | engines: {node: '>=6.9.0'} |
| 189 | dependencies: | 381 | dependencies: |
| 190 | '@babel/helper-validator-identifier': 7.19.1 | 382 | '@babel/helper-validator-identifier': 7.19.1 |
| @@ -197,40 +389,133 @@ packages: | @@ -197,40 +389,133 @@ packages: | ||
| 197 | engines: {node: '>=6.0.0'} | 389 | engines: {node: '>=6.0.0'} |
| 198 | hasBin: true | 390 | hasBin: true |
| 199 | dependencies: | 391 | dependencies: |
| 200 | - '@babel/types': registry.npmmirror.com/@babel/types/7.20.5 | 392 | + '@babel/types': 7.20.5 |
| 201 | 393 | ||
| 202 | /@babel/parser/7.20.5: | 394 | /@babel/parser/7.20.5: |
| 203 | - resolution: {integrity: sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==} | 395 | + resolution: {integrity: sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/parser/-/parser-7.20.5.tgz} |
| 204 | engines: {node: '>=6.0.0'} | 396 | engines: {node: '>=6.0.0'} |
| 205 | hasBin: true | 397 | hasBin: true |
| 206 | dependencies: | 398 | dependencies: |
| 207 | '@babel/types': 7.20.5 | 399 | '@babel/types': 7.20.5 |
| 208 | 400 | ||
| 401 | + /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.20.5: | ||
| 402 | + resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz} | ||
| 403 | + engines: {node: '>=6.9.0'} | ||
| 404 | + peerDependencies: | ||
| 405 | + '@babel/core': ^7.0.0-0 | ||
| 406 | + dependencies: | ||
| 407 | + '@babel/core': 7.20.5 | ||
| 408 | + '@babel/helper-plugin-utils': 7.20.2 | ||
| 409 | + dev: true | ||
| 410 | + | ||
| 411 | + /@babel/plugin-syntax-typescript/7.20.0_@babel+core@7.20.5: | ||
| 412 | + resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz} | ||
| 413 | + engines: {node: '>=6.9.0'} | ||
| 414 | + peerDependencies: | ||
| 415 | + '@babel/core': ^7.0.0-0 | ||
| 416 | + dependencies: | ||
| 417 | + '@babel/core': 7.20.5 | ||
| 418 | + '@babel/helper-plugin-utils': 7.20.2 | ||
| 419 | + dev: true | ||
| 420 | + | ||
| 421 | + /@babel/plugin-transform-typescript/7.20.2_@babel+core@7.20.5: | ||
| 422 | + resolution: {integrity: sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.2.tgz} | ||
| 423 | + engines: {node: '>=6.9.0'} | ||
| 424 | + peerDependencies: | ||
| 425 | + '@babel/core': ^7.0.0-0 | ||
| 426 | + dependencies: | ||
| 427 | + '@babel/core': 7.20.5 | ||
| 428 | + '@babel/helper-create-class-features-plugin': 7.20.2_@babel+core@7.20.5 | ||
| 429 | + '@babel/helper-plugin-utils': 7.20.2 | ||
| 430 | + '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.20.5 | ||
| 431 | + transitivePeerDependencies: | ||
| 432 | + - supports-color | ||
| 433 | + dev: true | ||
| 434 | + | ||
| 209 | /@babel/runtime/7.20.1: | 435 | /@babel/runtime/7.20.1: |
| 210 | resolution: {integrity: sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==} | 436 | resolution: {integrity: sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==} |
| 211 | engines: {node: '>=6.9.0'} | 437 | engines: {node: '>=6.9.0'} |
| 212 | dependencies: | 438 | dependencies: |
| 213 | - regenerator-runtime: registry.npmmirror.com/regenerator-runtime/0.13.11 | 439 | + regenerator-runtime: 0.13.11 |
| 214 | dev: false | 440 | dev: false |
| 215 | 441 | ||
| 442 | + /@babel/standalone/7.20.6: | ||
| 443 | + resolution: {integrity: sha512-u5at/CbBLETf7kx2LOY4XdhseD79Y099WZKAOMXeT8qvd9OSR515my2UNBBLY4qIht/Qi9KySeQHQwQwxJN4Sw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/standalone/-/standalone-7.20.6.tgz} | ||
| 444 | + engines: {node: '>=6.9.0'} | ||
| 445 | + dev: true | ||
| 446 | + | ||
| 447 | + /@babel/template/7.18.10: | ||
| 448 | + resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/template/-/template-7.18.10.tgz} | ||
| 449 | + engines: {node: '>=6.9.0'} | ||
| 450 | + dependencies: | ||
| 451 | + '@babel/code-frame': 7.18.6 | ||
| 452 | + '@babel/parser': 7.20.5 | ||
| 453 | + '@babel/types': 7.20.5 | ||
| 454 | + dev: true | ||
| 455 | + | ||
| 456 | + /@babel/traverse/7.20.1: | ||
| 457 | + resolution: {integrity: sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/traverse/-/traverse-7.20.1.tgz} | ||
| 458 | + engines: {node: '>=6.9.0'} | ||
| 459 | + dependencies: | ||
| 460 | + '@babel/code-frame': 7.18.6 | ||
| 461 | + '@babel/generator': 7.20.5 | ||
| 462 | + '@babel/helper-environment-visitor': 7.18.9 | ||
| 463 | + '@babel/helper-function-name': 7.19.0 | ||
| 464 | + '@babel/helper-hoist-variables': 7.18.6 | ||
| 465 | + '@babel/helper-split-export-declaration': 7.18.6 | ||
| 466 | + '@babel/parser': 7.20.5 | ||
| 467 | + '@babel/types': 7.20.5 | ||
| 468 | + debug: 4.3.4 | ||
| 469 | + globals: 11.12.0 | ||
| 470 | + transitivePeerDependencies: | ||
| 471 | + - supports-color | ||
| 472 | + dev: true | ||
| 473 | + | ||
| 474 | + /@babel/traverse/7.20.5: | ||
| 475 | + resolution: {integrity: sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/traverse/-/traverse-7.20.5.tgz} | ||
| 476 | + engines: {node: '>=6.9.0'} | ||
| 477 | + dependencies: | ||
| 478 | + '@babel/code-frame': 7.18.6 | ||
| 479 | + '@babel/generator': 7.20.5 | ||
| 480 | + '@babel/helper-environment-visitor': 7.18.9 | ||
| 481 | + '@babel/helper-function-name': 7.19.0 | ||
| 482 | + '@babel/helper-hoist-variables': 7.18.6 | ||
| 483 | + '@babel/helper-split-export-declaration': 7.18.6 | ||
| 484 | + '@babel/parser': 7.20.5 | ||
| 485 | + '@babel/types': 7.20.5 | ||
| 486 | + debug: 4.3.4 | ||
| 487 | + globals: 11.12.0 | ||
| 488 | + transitivePeerDependencies: | ||
| 489 | + - supports-color | ||
| 490 | + dev: true | ||
| 491 | + | ||
| 492 | + /@babel/types/7.20.2: | ||
| 493 | + resolution: {integrity: sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/types/-/types-7.20.2.tgz} | ||
| 494 | + engines: {node: '>=6.9.0'} | ||
| 495 | + dependencies: | ||
| 496 | + '@babel/helper-string-parser': 7.19.4 | ||
| 497 | + '@babel/helper-validator-identifier': 7.19.1 | ||
| 498 | + to-fast-properties: 2.0.0 | ||
| 499 | + dev: true | ||
| 500 | + | ||
| 216 | /@babel/types/7.20.5: | 501 | /@babel/types/7.20.5: |
| 217 | - resolution: {integrity: sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==} | 502 | + resolution: {integrity: sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@babel/types/-/types-7.20.5.tgz} |
| 218 | engines: {node: '>=6.9.0'} | 503 | engines: {node: '>=6.9.0'} |
| 219 | dependencies: | 504 | dependencies: |
| 220 | '@babel/helper-string-parser': 7.19.4 | 505 | '@babel/helper-string-parser': 7.19.4 |
| 221 | '@babel/helper-validator-identifier': 7.19.1 | 506 | '@babel/helper-validator-identifier': 7.19.1 |
| 222 | to-fast-properties: 2.0.0 | 507 | to-fast-properties: 2.0.0 |
| 223 | 508 | ||
| 224 | - /@commitlint/cli/17.3.0: | ||
| 225 | - resolution: {integrity: sha512-/H0md7TsKflKzVPz226VfXzVafJFO1f9+r2KcFvmBu08V0T56lZU1s8WL7/xlxqLMqBTVaBf7Ixtc4bskdEEZg==} | 509 | + /@commitlint/cli/17.4.2: |
| 510 | + resolution: {integrity: sha512-0rPGJ2O1owhpxMIXL9YJ2CgPkdrFLKZElIZHXDN8L8+qWK1DGH7Q7IelBT1pchXTYTuDlqkOTdh//aTvT3bSUA==} | ||
| 226 | engines: {node: '>=v14'} | 511 | engines: {node: '>=v14'} |
| 227 | hasBin: true | 512 | hasBin: true |
| 228 | dependencies: | 513 | dependencies: |
| 229 | - '@commitlint/format': 17.0.0 | ||
| 230 | - '@commitlint/lint': 17.3.0 | ||
| 231 | - '@commitlint/load': 17.3.0 | ||
| 232 | - '@commitlint/read': 17.2.0 | ||
| 233 | - '@commitlint/types': 17.0.0 | 514 | + '@commitlint/format': 17.4.0 |
| 515 | + '@commitlint/lint': 17.4.2 | ||
| 516 | + '@commitlint/load': 17.4.2 | ||
| 517 | + '@commitlint/read': 17.4.2 | ||
| 518 | + '@commitlint/types': 17.4.0 | ||
| 234 | execa: 5.1.1 | 519 | execa: 5.1.1 |
| 235 | lodash.isfunction: 3.0.9 | 520 | lodash.isfunction: 3.0.9 |
| 236 | resolve-from: 5.0.0 | 521 | resolve-from: 5.0.0 |
| @@ -241,26 +526,26 @@ packages: | @@ -241,26 +526,26 @@ packages: | ||
| 241 | - '@swc/wasm' | 526 | - '@swc/wasm' |
| 242 | dev: true | 527 | dev: true |
| 243 | 528 | ||
| 244 | - /@commitlint/config-conventional/17.3.0: | ||
| 245 | - resolution: {integrity: sha512-hgI+fN5xF8nhS9uG/V06xyT0nlcyvHHMkq0kwRSr96vl5BFlRGaL2C0/YY4kQagfU087tmj01bJkG9Ek98Wllw==} | 529 | + /@commitlint/config-conventional/17.4.2: |
| 530 | + resolution: {integrity: sha512-JVo1moSj5eDMoql159q8zKCU8lkOhQ+b23Vl3LVVrS6PXDLQIELnJ34ChQmFVbBdSSRNAbbXnRDhosFU+wnuHw==} | ||
| 246 | engines: {node: '>=v14'} | 531 | engines: {node: '>=v14'} |
| 247 | dependencies: | 532 | dependencies: |
| 248 | conventional-changelog-conventionalcommits: 5.0.0 | 533 | conventional-changelog-conventionalcommits: 5.0.0 |
| 249 | dev: true | 534 | dev: true |
| 250 | 535 | ||
| 251 | - /@commitlint/config-validator/17.1.0: | ||
| 252 | - resolution: {integrity: sha512-Q1rRRSU09ngrTgeTXHq6ePJs2KrI+axPTgkNYDWSJIuS1Op4w3J30vUfSXjwn5YEJHklK3fSqWNHmBhmTR7Vdg==} | 536 | + /@commitlint/config-validator/17.4.0: |
| 537 | + resolution: {integrity: sha512-Sa/+8KNpDXz4zT4bVbz2fpFjvgkPO6u2V2fP4TKgt6FjmOw2z3eEX859vtfeaTav/ukBw0/0jr+5ZTZp9zCBhA==} | ||
| 253 | engines: {node: '>=v14'} | 538 | engines: {node: '>=v14'} |
| 254 | dependencies: | 539 | dependencies: |
| 255 | - '@commitlint/types': 17.0.0 | 540 | + '@commitlint/types': 17.4.0 |
| 256 | ajv: 8.11.2 | 541 | ajv: 8.11.2 |
| 257 | dev: true | 542 | dev: true |
| 258 | 543 | ||
| 259 | - /@commitlint/ensure/17.3.0: | ||
| 260 | - resolution: {integrity: sha512-kWbrQHDoW5veIUQx30gXoLOCjWvwC6OOEofhPCLl5ytRPBDAQObMbxTha1Bt2aSyNE/IrJ0s0xkdZ1Gi3wJwQg==} | 544 | + /@commitlint/ensure/17.4.0: |
| 545 | + resolution: {integrity: sha512-7oAxt25je0jeQ/E0O/M8L3ADb1Cvweu/5lc/kYF8g/kXatI0wxGE5La52onnAUAWeWlsuvBNar15WcrmDmr5Mw==} | ||
| 261 | engines: {node: '>=v14'} | 546 | engines: {node: '>=v14'} |
| 262 | dependencies: | 547 | dependencies: |
| 263 | - '@commitlint/types': 17.0.0 | 548 | + '@commitlint/types': 17.4.0 |
| 264 | lodash.camelcase: 4.3.0 | 549 | lodash.camelcase: 4.3.0 |
| 265 | lodash.kebabcase: 4.1.1 | 550 | lodash.kebabcase: 4.1.1 |
| 266 | lodash.snakecase: 4.1.1 | 551 | lodash.snakecase: 4.1.1 |
| @@ -268,122 +553,122 @@ packages: | @@ -268,122 +553,122 @@ packages: | ||
| 268 | lodash.upperfirst: 4.3.1 | 553 | lodash.upperfirst: 4.3.1 |
| 269 | dev: true | 554 | dev: true |
| 270 | 555 | ||
| 271 | - /@commitlint/execute-rule/17.0.0: | ||
| 272 | - resolution: {integrity: sha512-nVjL/w/zuqjCqSJm8UfpNaw66V9WzuJtQvEnCrK4jDw6qKTmZB+1JQ8m6BQVZbNBcwfYdDNKnhIhqI0Rk7lgpQ==} | 556 | + /@commitlint/execute-rule/17.4.0: |
| 557 | + resolution: {integrity: sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA==} | ||
| 273 | engines: {node: '>=v14'} | 558 | engines: {node: '>=v14'} |
| 274 | dev: true | 559 | dev: true |
| 275 | 560 | ||
| 276 | - /@commitlint/format/17.0.0: | ||
| 277 | - resolution: {integrity: sha512-MZzJv7rBp/r6ZQJDEodoZvdRM0vXu1PfQvMTNWFb8jFraxnISMTnPBWMMjr2G/puoMashwaNM//fl7j8gGV5lA==} | 561 | + /@commitlint/format/17.4.0: |
| 562 | + resolution: {integrity: sha512-Z2bWAU5+f1YZh9W76c84J8iLIWIvvm+mzqogTz0Nsc1x6EHW0Z2gI38g5HAjB0r0I3ZjR15IDEJKhsxyblcyhA==} | ||
| 278 | engines: {node: '>=v14'} | 563 | engines: {node: '>=v14'} |
| 279 | dependencies: | 564 | dependencies: |
| 280 | - '@commitlint/types': 17.0.0 | 565 | + '@commitlint/types': 17.4.0 |
| 281 | chalk: 4.1.2 | 566 | chalk: 4.1.2 |
| 282 | dev: true | 567 | dev: true |
| 283 | 568 | ||
| 284 | - /@commitlint/is-ignored/17.2.0: | ||
| 285 | - resolution: {integrity: sha512-rgUPUQraHxoMLxiE8GK430HA7/R2vXyLcOT4fQooNrZq9ERutNrP6dw3gdKLkq22Nede3+gEHQYUzL4Wu75ndg==} | 569 | + /@commitlint/is-ignored/17.4.2: |
| 570 | + resolution: {integrity: sha512-1b2Y2qJ6n7bHG9K6h8S4lBGUl6kc7mMhJN9gy1SQfUZqe92ToDjUTtgNWb6LbzR1X8Cq4SEus4VU8Z/riEa94Q==} | ||
| 286 | engines: {node: '>=v14'} | 571 | engines: {node: '>=v14'} |
| 287 | dependencies: | 572 | dependencies: |
| 288 | - '@commitlint/types': 17.0.0 | ||
| 289 | - semver: registry.npmmirror.com/semver/7.3.7 | 573 | + '@commitlint/types': 17.4.0 |
| 574 | + semver: 7.3.8 | ||
| 290 | dev: true | 575 | dev: true |
| 291 | 576 | ||
| 292 | - /@commitlint/lint/17.3.0: | ||
| 293 | - resolution: {integrity: sha512-VilOTPg0i9A7CCWM49E9bl5jytfTvfTxf9iwbWAWNjxJ/A5mhPKbm3sHuAdwJ87tDk1k4j8vomYfH23iaY+1Rw==} | 577 | + /@commitlint/lint/17.4.2: |
| 578 | + resolution: {integrity: sha512-HcymabrdBhsDMNzIv146+ZPNBPBK5gMNsVH+el2lCagnYgCi/4ixrHooeVyS64Fgce2K26+MC7OQ4vVH8wQWVw==} | ||
| 294 | engines: {node: '>=v14'} | 579 | engines: {node: '>=v14'} |
| 295 | dependencies: | 580 | dependencies: |
| 296 | - '@commitlint/is-ignored': 17.2.0 | ||
| 297 | - '@commitlint/parse': 17.2.0 | ||
| 298 | - '@commitlint/rules': 17.3.0 | ||
| 299 | - '@commitlint/types': 17.0.0 | 581 | + '@commitlint/is-ignored': 17.4.2 |
| 582 | + '@commitlint/parse': 17.4.2 | ||
| 583 | + '@commitlint/rules': 17.4.2 | ||
| 584 | + '@commitlint/types': 17.4.0 | ||
| 300 | dev: true | 585 | dev: true |
| 301 | 586 | ||
| 302 | - /@commitlint/load/17.3.0: | ||
| 303 | - resolution: {integrity: sha512-u/pV6rCAJrCUN+HylBHLzZ4qj1Ew3+eN9GBPhNi9otGxtOfA8b+8nJSxaNbcC23Ins/kcpjGf9zPSVW7628Umw==} | 587 | + /@commitlint/load/17.4.2: |
| 588 | + resolution: {integrity: sha512-Si++F85rJ9t4hw6JcOw1i2h0fdpdFQt0YKwjuK4bk9KhFjyFkRxvR3SB2dPaMs+EwWlDrDBGL+ygip1QD6gmPw==} | ||
| 304 | engines: {node: '>=v14'} | 589 | engines: {node: '>=v14'} |
| 305 | dependencies: | 590 | dependencies: |
| 306 | - '@commitlint/config-validator': 17.1.0 | ||
| 307 | - '@commitlint/execute-rule': 17.0.0 | ||
| 308 | - '@commitlint/resolve-extends': 17.3.0 | ||
| 309 | - '@commitlint/types': 17.0.0 | ||
| 310 | - '@types/node': 14.18.33 | 591 | + '@commitlint/config-validator': 17.4.0 |
| 592 | + '@commitlint/execute-rule': 17.4.0 | ||
| 593 | + '@commitlint/resolve-extends': 17.4.0 | ||
| 594 | + '@commitlint/types': 17.4.0 | ||
| 595 | + '@types/node': 18.11.18 | ||
| 311 | chalk: 4.1.2 | 596 | chalk: 4.1.2 |
| 312 | - cosmiconfig: 7.1.0 | ||
| 313 | - cosmiconfig-typescript-loader: 4.2.0_wb7bklcl6jlvxijczjyxggip4a | 597 | + cosmiconfig: 8.0.0 |
| 598 | + cosmiconfig-typescript-loader: 4.2.0_bxtyj3et3xbsdyxhh3oblnfbj4 | ||
| 314 | lodash.isplainobject: 4.0.6 | 599 | lodash.isplainobject: 4.0.6 |
| 315 | lodash.merge: 4.6.2 | 600 | lodash.merge: 4.6.2 |
| 316 | lodash.uniq: 4.5.0 | 601 | lodash.uniq: 4.5.0 |
| 317 | resolve-from: 5.0.0 | 602 | resolve-from: 5.0.0 |
| 318 | - ts-node: 10.9.1_rju6pyblifsagdmqm3y74zsi6q | 603 | + ts-node: 10.9.1_awa2wsr5thmg3i7jqycphctjfq |
| 319 | typescript: 4.9.4 | 604 | typescript: 4.9.4 |
| 320 | transitivePeerDependencies: | 605 | transitivePeerDependencies: |
| 321 | - '@swc/core' | 606 | - '@swc/core' |
| 322 | - '@swc/wasm' | 607 | - '@swc/wasm' |
| 323 | dev: true | 608 | dev: true |
| 324 | 609 | ||
| 325 | - /@commitlint/message/17.2.0: | ||
| 326 | - resolution: {integrity: sha512-/4l2KFKxBOuoEn1YAuuNNlAU05Zt7sNsC9H0mPdPm3chOrT4rcX0pOqrQcLtdMrMkJz0gC7b3SF80q2+LtdL9Q==} | 610 | + /@commitlint/message/17.4.2: |
| 611 | + resolution: {integrity: sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q==} | ||
| 327 | engines: {node: '>=v14'} | 612 | engines: {node: '>=v14'} |
| 328 | dev: true | 613 | dev: true |
| 329 | 614 | ||
| 330 | - /@commitlint/parse/17.2.0: | ||
| 331 | - resolution: {integrity: sha512-vLzLznK9Y21zQ6F9hf8D6kcIJRb2haAK5T/Vt1uW2CbHYOIfNsR/hJs0XnF/J9ctM20Tfsqv4zBitbYvVw7F6Q==} | 615 | + /@commitlint/parse/17.4.2: |
| 616 | + resolution: {integrity: sha512-DK4EwqhxfXpyCA+UH8TBRIAXAfmmX4q9QRBz/2h9F9sI91yt6mltTrL6TKURMcjUVmgaB80wgS9QybNIyVBIJA==} | ||
| 332 | engines: {node: '>=v14'} | 617 | engines: {node: '>=v14'} |
| 333 | dependencies: | 618 | dependencies: |
| 334 | - '@commitlint/types': 17.0.0 | 619 | + '@commitlint/types': 17.4.0 |
| 335 | conventional-changelog-angular: 5.0.13 | 620 | conventional-changelog-angular: 5.0.13 |
| 336 | conventional-commits-parser: 3.2.4 | 621 | conventional-commits-parser: 3.2.4 |
| 337 | dev: true | 622 | dev: true |
| 338 | 623 | ||
| 339 | - /@commitlint/read/17.2.0: | ||
| 340 | - resolution: {integrity: sha512-bbblBhrHkjxra3ptJNm0abxu7yeAaxumQ8ZtD6GIVqzURCETCP7Dm0tlVvGRDyXBuqX6lIJxh3W7oyKqllDsHQ==} | 624 | + /@commitlint/read/17.4.2: |
| 625 | + resolution: {integrity: sha512-hasYOdbhEg+W4hi0InmXHxtD/1favB4WdwyFxs1eOy/DvMw6+2IZBmATgGOlqhahsypk4kChhxjAFJAZ2F+JBg==} | ||
| 341 | engines: {node: '>=v14'} | 626 | engines: {node: '>=v14'} |
| 342 | dependencies: | 627 | dependencies: |
| 343 | - '@commitlint/top-level': 17.0.0 | ||
| 344 | - '@commitlint/types': 17.0.0 | ||
| 345 | - fs-extra: 10.1.0 | 628 | + '@commitlint/top-level': 17.4.0 |
| 629 | + '@commitlint/types': 17.4.0 | ||
| 630 | + fs-extra: 11.1.0 | ||
| 346 | git-raw-commits: 2.0.11 | 631 | git-raw-commits: 2.0.11 |
| 347 | minimist: 1.2.7 | 632 | minimist: 1.2.7 |
| 348 | dev: true | 633 | dev: true |
| 349 | 634 | ||
| 350 | - /@commitlint/resolve-extends/17.3.0: | ||
| 351 | - resolution: {integrity: sha512-Lf3JufJlc5yVEtJWC8o4IAZaB8FQAUaVlhlAHRACd0TTFizV2Lk2VH70et23KgvbQNf7kQzHs/2B4QZalBv6Cg==} | 635 | + /@commitlint/resolve-extends/17.4.0: |
| 636 | + resolution: {integrity: sha512-3JsmwkrCzoK8sO22AzLBvNEvC1Pmdn/65RKXzEtQMy6oYMl0Snrq97a5bQQEFETF0VsvbtUuKttLqqgn99OXRQ==} | ||
| 352 | engines: {node: '>=v14'} | 637 | engines: {node: '>=v14'} |
| 353 | dependencies: | 638 | dependencies: |
| 354 | - '@commitlint/config-validator': 17.1.0 | ||
| 355 | - '@commitlint/types': 17.0.0 | 639 | + '@commitlint/config-validator': 17.4.0 |
| 640 | + '@commitlint/types': 17.4.0 | ||
| 356 | import-fresh: 3.3.0 | 641 | import-fresh: 3.3.0 |
| 357 | lodash.mergewith: 4.6.2 | 642 | lodash.mergewith: 4.6.2 |
| 358 | resolve-from: 5.0.0 | 643 | resolve-from: 5.0.0 |
| 359 | resolve-global: 1.0.0 | 644 | resolve-global: 1.0.0 |
| 360 | dev: true | 645 | dev: true |
| 361 | 646 | ||
| 362 | - /@commitlint/rules/17.3.0: | ||
| 363 | - resolution: {integrity: sha512-s2UhDjC5yP2utx3WWqsnZRzjgzAX8BMwr1nltC0u0p8T/nzpkx4TojEfhlsOUj1t7efxzZRjUAV0NxNwdJyk+g==} | 647 | + /@commitlint/rules/17.4.2: |
| 648 | + resolution: {integrity: sha512-OGrPsMb9Fx3/bZ64/EzJehY9YDSGWzp81Pj+zJiY+r/NSgJI3nUYdlS37jykNIugzazdEXfMtQ10kmA+Kx2pZQ==} | ||
| 364 | engines: {node: '>=v14'} | 649 | engines: {node: '>=v14'} |
| 365 | dependencies: | 650 | dependencies: |
| 366 | - '@commitlint/ensure': 17.3.0 | ||
| 367 | - '@commitlint/message': 17.2.0 | ||
| 368 | - '@commitlint/to-lines': 17.0.0 | ||
| 369 | - '@commitlint/types': 17.0.0 | 651 | + '@commitlint/ensure': 17.4.0 |
| 652 | + '@commitlint/message': 17.4.2 | ||
| 653 | + '@commitlint/to-lines': 17.4.0 | ||
| 654 | + '@commitlint/types': 17.4.0 | ||
| 370 | execa: 5.1.1 | 655 | execa: 5.1.1 |
| 371 | dev: true | 656 | dev: true |
| 372 | 657 | ||
| 373 | - /@commitlint/to-lines/17.0.0: | ||
| 374 | - resolution: {integrity: sha512-nEi4YEz04Rf2upFbpnEorG8iymyH7o9jYIVFBG1QdzebbIFET3ir+8kQvCZuBE5pKCtViE4XBUsRZz139uFrRQ==} | 658 | + /@commitlint/to-lines/17.4.0: |
| 659 | + resolution: {integrity: sha512-LcIy/6ZZolsfwDUWfN1mJ+co09soSuNASfKEU5sCmgFCvX5iHwRYLiIuoqXzOVDYOy7E7IcHilr/KS0e5T+0Hg==} | ||
| 375 | engines: {node: '>=v14'} | 660 | engines: {node: '>=v14'} |
| 376 | dev: true | 661 | dev: true |
| 377 | 662 | ||
| 378 | - /@commitlint/top-level/17.0.0: | ||
| 379 | - resolution: {integrity: sha512-dZrEP1PBJvodNWYPOYiLWf6XZergdksKQaT6i1KSROLdjf5Ai0brLOv5/P+CPxBeoj3vBxK4Ax8H1Pg9t7sHIQ==} | 663 | + /@commitlint/top-level/17.4.0: |
| 664 | + resolution: {integrity: sha512-/1loE/g+dTTQgHnjoCy0AexKAEFyHsR2zRB4NWrZ6lZSMIxAhBJnmCqwao7b4H8888PsfoTBCLBYIw8vGnej8g==} | ||
| 380 | engines: {node: '>=v14'} | 665 | engines: {node: '>=v14'} |
| 381 | dependencies: | 666 | dependencies: |
| 382 | find-up: 5.0.0 | 667 | find-up: 5.0.0 |
| 383 | dev: true | 668 | dev: true |
| 384 | 669 | ||
| 385 | - /@commitlint/types/17.0.0: | ||
| 386 | - resolution: {integrity: sha512-hBAw6U+SkAT5h47zDMeOu3HSiD0SODw4Aq7rRNh1ceUmL7GyLKYhPbUvlRWqZ65XjBLPHZhFyQlRaPNz8qvUyQ==} | 670 | + /@commitlint/types/17.4.0: |
| 671 | + resolution: {integrity: sha512-2NjAnq5IcxY9kXtUeO2Ac0aPpvkuOmwbH/BxIm36XXK5LtWFObWJWjXOA+kcaABMrthjWu6la+FUpyYFMHRvbA==} | ||
| 387 | engines: {node: '>=v14'} | 672 | engines: {node: '>=v14'} |
| 388 | dependencies: | 673 | dependencies: |
| 389 | chalk: 4.1.2 | 674 | chalk: 4.1.2 |
| @@ -393,17 +678,17 @@ packages: | @@ -393,17 +678,17 @@ packages: | ||
| 393 | resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} | 678 | resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} |
| 394 | engines: {node: '>=12'} | 679 | engines: {node: '>=12'} |
| 395 | dependencies: | 680 | dependencies: |
| 396 | - '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping/0.3.9 | 681 | + '@jridgewell/trace-mapping': 0.3.9 |
| 397 | dev: true | 682 | dev: true |
| 398 | 683 | ||
| 399 | - /@csstools/selector-specificity/2.0.2_2xshye3abirqjlplmebvmaxyna: | 684 | + /@csstools/selector-specificity/2.0.2_wajs5nedgkikc5pcuwett7legi: |
| 400 | resolution: {integrity: sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==} | 685 | resolution: {integrity: sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==} |
| 401 | engines: {node: ^12 || ^14 || >=16} | 686 | engines: {node: ^12 || ^14 || >=16} |
| 402 | peerDependencies: | 687 | peerDependencies: |
| 403 | postcss: ^8.2 | 688 | postcss: ^8.2 |
| 404 | postcss-selector-parser: ^6.0.10 | 689 | postcss-selector-parser: ^6.0.10 |
| 405 | dependencies: | 690 | dependencies: |
| 406 | - postcss: 8.4.20 | 691 | + postcss: 8.4.21 |
| 407 | postcss-selector-parser: 6.0.11 | 692 | postcss-selector-parser: 6.0.11 |
| 408 | dev: true | 693 | dev: true |
| 409 | 694 | ||
| @@ -665,13 +950,21 @@ packages: | @@ -665,13 +950,21 @@ packages: | ||
| 665 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} | 950 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} |
| 666 | dev: true | 951 | dev: true |
| 667 | 952 | ||
| 953 | + /@iconify/iconify/2.1.2: | ||
| 954 | + resolution: {integrity: sha512-QcUzFeEWkE/mW+BVtEGmcWATClcCOIJFiYUD/PiCWuTcdEA297o8D4oN6Ra44WrNOHu1wqNW4J0ioaDIiqaFOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@iconify/iconify/-/iconify-2.1.2.tgz} | ||
| 955 | + dependencies: | ||
| 956 | + cross-fetch: 3.1.5 | ||
| 957 | + transitivePeerDependencies: | ||
| 958 | + - encoding | ||
| 959 | + dev: true | ||
| 960 | + | ||
| 668 | /@iconify/iconify/3.0.1: | 961 | /@iconify/iconify/3.0.1: |
| 669 | resolution: {integrity: sha512-OPqVBTh8YsfrYZRVFv3OkmFNLqacM0dy/Oiw1h2wO+RZW5LieNGHlG2f9pzaeVRFWbEB8LHTeo8mcwgUTUbibQ==} | 962 | resolution: {integrity: sha512-OPqVBTh8YsfrYZRVFv3OkmFNLqacM0dy/Oiw1h2wO+RZW5LieNGHlG2f9pzaeVRFWbEB8LHTeo8mcwgUTUbibQ==} |
| 670 | dependencies: | 963 | dependencies: |
| 671 | '@iconify/types': 2.0.0 | 964 | '@iconify/types': 2.0.0 |
| 672 | 965 | ||
| 673 | - /@iconify/json/2.2.1: | ||
| 674 | - resolution: {integrity: sha512-h6QAV4i0B/QdpJRWExgE5am3WtmNAy/NucsAGNtYsNzeLBa+TVig4QpO9nQrX172tQvEZAfSqUkvCx/y7GN0GQ==} | 966 | + /@iconify/json/2.2.7: |
| 967 | + resolution: {integrity: sha512-cWDwr+KE0KNSFmxrR0rvM5AmP4JmJWCZiyhFZ1bywwBJsrV/x+19bLbEAvmn4pmKKYWCAy4F9clpVWynYslzoQ==} | ||
| 675 | dependencies: | 968 | dependencies: |
| 676 | '@iconify/types': 2.0.0 | 969 | '@iconify/types': 2.0.0 |
| 677 | pathe: 1.0.0 | 970 | pathe: 1.0.0 |
| @@ -692,8 +985,8 @@ packages: | @@ -692,8 +985,8 @@ packages: | ||
| 692 | vue-i18n: | 985 | vue-i18n: |
| 693 | optional: true | 986 | optional: true |
| 694 | dependencies: | 987 | dependencies: |
| 695 | - '@intlify/message-compiler': 9.3.0-beta.12 | ||
| 696 | - '@intlify/shared': 9.3.0-beta.12 | 988 | + '@intlify/message-compiler': 9.3.0-beta.16 |
| 989 | + '@intlify/shared': 9.3.0-beta.16 | ||
| 697 | jsonc-eslint-parser: 1.4.1 | 990 | jsonc-eslint-parser: 1.4.1 |
| 698 | source-map: 0.6.1 | 991 | source-map: 0.6.1 |
| 699 | vue-i18n: 9.2.2_vue@3.2.45 | 992 | vue-i18n: 9.2.2_vue@3.2.45 |
| @@ -722,11 +1015,11 @@ packages: | @@ -722,11 +1015,11 @@ packages: | ||
| 722 | '@intlify/shared': 9.2.2 | 1015 | '@intlify/shared': 9.2.2 |
| 723 | source-map: 0.6.1 | 1016 | source-map: 0.6.1 |
| 724 | 1017 | ||
| 725 | - /@intlify/message-compiler/9.3.0-beta.12: | ||
| 726 | - resolution: {integrity: sha512-A8/s7pb3v8nf6HG77qFPJntxgQKI9GXxGnkn7aO+b03/X/GkF/4WceDSAIk3i+yLeIgszeBn9GZ23tSg4sTEHA==} | 1018 | + /@intlify/message-compiler/9.3.0-beta.16: |
| 1019 | + resolution: {integrity: sha512-CGQI3xRcs1ET75eDQ0DUy3MRYOqTauRIIgaMoISKiF83gqRWg93FqN8lGMKcpBqaF4tI0JhsfosCaGiBL9+dnw==} | ||
| 727 | engines: {node: '>= 14'} | 1020 | engines: {node: '>= 14'} |
| 728 | dependencies: | 1021 | dependencies: |
| 729 | - '@intlify/shared': 9.3.0-beta.11 | 1022 | + '@intlify/shared': 9.3.0-beta.16 |
| 730 | source-map: 0.6.1 | 1023 | source-map: 0.6.1 |
| 731 | dev: true | 1024 | dev: true |
| 732 | 1025 | ||
| @@ -734,13 +1027,8 @@ packages: | @@ -734,13 +1027,8 @@ packages: | ||
| 734 | resolution: {integrity: sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==} | 1027 | resolution: {integrity: sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==} |
| 735 | engines: {node: '>= 14'} | 1028 | engines: {node: '>= 14'} |
| 736 | 1029 | ||
| 737 | - /@intlify/shared/9.3.0-beta.11: | ||
| 738 | - resolution: {integrity: sha512-CtbotesxTRiC3bRyXyv1NG39fkqJ790f8z8xFaeIXSZpOdiyxoh5BIyypCzSFQZDGLwz0Q9gyWbW1XpxQJm68Q==} | ||
| 739 | - engines: {node: '>= 14'} | ||
| 740 | - dev: true | ||
| 741 | - | ||
| 742 | - /@intlify/shared/9.3.0-beta.12: | ||
| 743 | - resolution: {integrity: sha512-WsmaS54sA8xuwezPKpa/OMoaX1v2VF2fCgAmYS6prDr2ir0CkUFWPm9A8ilmxzv4nkS61/v8+vf4lGGkn5uBdA==} | 1030 | + /@intlify/shared/9.3.0-beta.16: |
| 1031 | + resolution: {integrity: sha512-kXbm4svALe3lX+EjdJxfnabOphqS4yQ1Ge/iIlR8tvUiYRCoNz3hig1M4336iY++Dfx5ytEQJPNjIcknNIuvig==} | ||
| 744 | engines: {node: '>= 14'} | 1032 | engines: {node: '>= 14'} |
| 745 | dev: true | 1033 | dev: true |
| 746 | 1034 | ||
| @@ -760,7 +1048,7 @@ packages: | @@ -760,7 +1048,7 @@ packages: | ||
| 760 | optional: true | 1048 | optional: true |
| 761 | dependencies: | 1049 | dependencies: |
| 762 | '@intlify/bundle-utils': 3.4.0_vue-i18n@9.2.2 | 1050 | '@intlify/bundle-utils': 3.4.0_vue-i18n@9.2.2 |
| 763 | - '@intlify/shared': 9.3.0-beta.12 | 1051 | + '@intlify/shared': 9.3.0-beta.16 |
| 764 | '@rollup/pluginutils': 4.2.1 | 1052 | '@rollup/pluginutils': 4.2.1 |
| 765 | '@vue/compiler-sfc': 3.2.45 | 1053 | '@vue/compiler-sfc': 3.2.45 |
| 766 | debug: 4.3.4 | 1054 | debug: 4.3.4 |
| @@ -783,13 +1071,31 @@ packages: | @@ -783,13 +1071,31 @@ packages: | ||
| 783 | '@intlify/core-base': 9.2.2 | 1071 | '@intlify/core-base': 9.2.2 |
| 784 | '@intlify/shared': 9.2.2 | 1072 | '@intlify/shared': 9.2.2 |
| 785 | 1073 | ||
| 1074 | + /@jridgewell/gen-mapping/0.1.1: | ||
| 1075 | + resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz} | ||
| 1076 | + engines: {node: '>=6.0.0'} | ||
| 1077 | + dependencies: | ||
| 1078 | + '@jridgewell/set-array': 1.1.2 | ||
| 1079 | + '@jridgewell/sourcemap-codec': 1.4.14 | ||
| 1080 | + dev: true | ||
| 1081 | + | ||
| 786 | /@jridgewell/gen-mapping/0.3.2: | 1082 | /@jridgewell/gen-mapping/0.3.2: |
| 787 | resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} | 1083 | resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} |
| 788 | engines: {node: '>=6.0.0'} | 1084 | engines: {node: '>=6.0.0'} |
| 789 | dependencies: | 1085 | dependencies: |
| 790 | - '@jridgewell/set-array': registry.npmmirror.com/@jridgewell/set-array/1.1.2 | ||
| 791 | - '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec/1.4.14 | ||
| 792 | - '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping/0.3.17 | 1086 | + '@jridgewell/set-array': 1.1.2 |
| 1087 | + '@jridgewell/sourcemap-codec': 1.4.14 | ||
| 1088 | + '@jridgewell/trace-mapping': 0.3.17 | ||
| 1089 | + dev: true | ||
| 1090 | + | ||
| 1091 | + /@jridgewell/resolve-uri/3.1.0: | ||
| 1092 | + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} | ||
| 1093 | + engines: {node: '>=6.0.0'} | ||
| 1094 | + dev: true | ||
| 1095 | + | ||
| 1096 | + /@jridgewell/set-array/1.1.2: | ||
| 1097 | + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@jridgewell/set-array/-/set-array-1.1.2.tgz} | ||
| 1098 | + engines: {node: '>=6.0.0'} | ||
| 793 | dev: true | 1099 | dev: true |
| 794 | 1100 | ||
| 795 | /@jridgewell/source-map/0.3.2: | 1101 | /@jridgewell/source-map/0.3.2: |
| @@ -799,11 +1105,22 @@ packages: | @@ -799,11 +1105,22 @@ packages: | ||
| 799 | '@jridgewell/trace-mapping': 0.3.17 | 1105 | '@jridgewell/trace-mapping': 0.3.17 |
| 800 | dev: true | 1106 | dev: true |
| 801 | 1107 | ||
| 1108 | + /@jridgewell/sourcemap-codec/1.4.14: | ||
| 1109 | + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} | ||
| 1110 | + dev: true | ||
| 1111 | + | ||
| 802 | /@jridgewell/trace-mapping/0.3.17: | 1112 | /@jridgewell/trace-mapping/0.3.17: |
| 803 | resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} | 1113 | resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} |
| 804 | dependencies: | 1114 | dependencies: |
| 805 | - '@jridgewell/resolve-uri': registry.npmmirror.com/@jridgewell/resolve-uri/3.1.0 | ||
| 806 | - '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec/1.4.14 | 1115 | + '@jridgewell/resolve-uri': 3.1.0 |
| 1116 | + '@jridgewell/sourcemap-codec': 1.4.14 | ||
| 1117 | + dev: true | ||
| 1118 | + | ||
| 1119 | + /@jridgewell/trace-mapping/0.3.9: | ||
| 1120 | + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} | ||
| 1121 | + dependencies: | ||
| 1122 | + '@jridgewell/resolve-uri': 3.1.0 | ||
| 1123 | + '@jridgewell/sourcemap-codec': 1.4.14 | ||
| 807 | dev: true | 1124 | dev: true |
| 808 | 1125 | ||
| 809 | /@nodelib/fs.scandir/2.1.5: | 1126 | /@nodelib/fs.scandir/2.1.5: |
| @@ -827,6 +1144,19 @@ packages: | @@ -827,6 +1144,19 @@ packages: | ||
| 827 | fastq: 1.13.0 | 1144 | fastq: 1.13.0 |
| 828 | dev: true | 1145 | dev: true |
| 829 | 1146 | ||
| 1147 | + /@purge-icons/core/0.9.1: | ||
| 1148 | + resolution: {integrity: sha512-sx8/a30MbbqQVEqhuMPE1wJpdVRRbEmwEPZpFzVkcDixzX4p+R2A0WVxqkb0xfHUBAVQwrSE2SeAyniIQLqbLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@purge-icons/core/-/core-0.9.1.tgz} | ||
| 1149 | + dependencies: | ||
| 1150 | + '@iconify/iconify': 2.1.2 | ||
| 1151 | + axios: 0.26.1_debug@4.3.4 | ||
| 1152 | + debug: 4.3.4 | ||
| 1153 | + fast-glob: 3.2.12 | ||
| 1154 | + fs-extra: 10.1.0 | ||
| 1155 | + transitivePeerDependencies: | ||
| 1156 | + - encoding | ||
| 1157 | + - supports-color | ||
| 1158 | + dev: true | ||
| 1159 | + | ||
| 830 | /@purge-icons/generated/0.9.0: | 1160 | /@purge-icons/generated/0.9.0: |
| 831 | resolution: {integrity: sha512-s2t+1oVtGDV6KtqfCXtUOhxfeYvOdDF90IVm+nMs/6bUP0HeGZLslguuL/AibpwtfL4FA/oCsIu/RhwapgAdJw==} | 1161 | resolution: {integrity: sha512-s2t+1oVtGDV6KtqfCXtUOhxfeYvOdDF90IVm+nMs/6bUP0HeGZLslguuL/AibpwtfL4FA/oCsIu/RhwapgAdJw==} |
| 832 | dependencies: | 1162 | dependencies: |
| @@ -909,10 +1239,6 @@ packages: | @@ -909,10 +1239,6 @@ packages: | ||
| 909 | resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} | 1239 | resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} |
| 910 | dev: true | 1240 | dev: true |
| 911 | 1241 | ||
| 912 | - /@types/node/14.18.33: | ||
| 913 | - resolution: {integrity: sha512-qelS/Ra6sacc4loe/3MSjXNL1dNQ/GjxNHVzuChwMfmk7HuycRLVQN2qNY3XahK+fZc5E2szqQSKUyAF0E+2bg==} | ||
| 914 | - dev: true | ||
| 915 | - | ||
| 916 | /@types/node/18.11.18: | 1242 | /@types/node/18.11.18: |
| 917 | resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==} | 1243 | resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==} |
| 918 | dev: true | 1244 | dev: true |
| @@ -953,8 +1279,8 @@ packages: | @@ -953,8 +1279,8 @@ packages: | ||
| 953 | resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} | 1279 | resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} |
| 954 | dev: false | 1280 | dev: false |
| 955 | 1281 | ||
| 956 | - /@typescript-eslint/eslint-plugin/5.48.0_k73wpmdolxikpyqun3p36akaaq: | ||
| 957 | - resolution: {integrity: sha512-SVLafp0NXpoJY7ut6VFVUU9I+YeFsDzeQwtK0WZ+xbRN3mtxJ08je+6Oi2N89qDn087COdO0u3blKZNv9VetRQ==} | 1282 | + /@typescript-eslint/eslint-plugin/5.48.1_oomjohfipuyaxs2zyomcx4f5by: |
| 1283 | + resolution: {integrity: sha512-9nY5K1Rp2ppmpb9s9S2aBiF3xo5uExCehMDmYmmFqqyxgenbHJ3qbarcLt4ITgaD6r/2ypdlcFRdcuVPnks+fQ==} | ||
| 958 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | 1284 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
| 959 | peerDependencies: | 1285 | peerDependencies: |
| 960 | '@typescript-eslint/parser': ^5.0.0 | 1286 | '@typescript-eslint/parser': ^5.0.0 |
| @@ -964,12 +1290,12 @@ packages: | @@ -964,12 +1290,12 @@ packages: | ||
| 964 | typescript: | 1290 | typescript: |
| 965 | optional: true | 1291 | optional: true |
| 966 | dependencies: | 1292 | dependencies: |
| 967 | - '@typescript-eslint/parser': 5.48.0_iukboom6ndih5an6iafl45j2fe | ||
| 968 | - '@typescript-eslint/scope-manager': 5.48.0 | ||
| 969 | - '@typescript-eslint/type-utils': 5.48.0_iukboom6ndih5an6iafl45j2fe | ||
| 970 | - '@typescript-eslint/utils': 5.48.0_iukboom6ndih5an6iafl45j2fe | 1293 | + '@typescript-eslint/parser': 5.48.1_7uibuqfxkfaozanbtbziikiqje |
| 1294 | + '@typescript-eslint/scope-manager': 5.48.1 | ||
| 1295 | + '@typescript-eslint/type-utils': 5.48.1_7uibuqfxkfaozanbtbziikiqje | ||
| 1296 | + '@typescript-eslint/utils': 5.48.1_7uibuqfxkfaozanbtbziikiqje | ||
| 971 | debug: 4.3.4 | 1297 | debug: 4.3.4 |
| 972 | - eslint: 8.31.0 | 1298 | + eslint: 8.32.0 |
| 973 | ignore: 5.2.1 | 1299 | ignore: 5.2.1 |
| 974 | natural-compare-lite: 1.4.0 | 1300 | natural-compare-lite: 1.4.0 |
| 975 | regexpp: 3.2.0 | 1301 | regexpp: 3.2.0 |
| @@ -980,8 +1306,8 @@ packages: | @@ -980,8 +1306,8 @@ packages: | ||
| 980 | - supports-color | 1306 | - supports-color |
| 981 | dev: true | 1307 | dev: true |
| 982 | 1308 | ||
| 983 | - /@typescript-eslint/parser/5.48.0_iukboom6ndih5an6iafl45j2fe: | ||
| 984 | - resolution: {integrity: sha512-1mxNA8qfgxX8kBvRDIHEzrRGrKHQfQlbW6iHyfHYS0Q4X1af+S6mkLNtgCOsGVl8+/LUPrqdHMssAemkrQ01qg==} | 1309 | + /@typescript-eslint/parser/5.48.1_7uibuqfxkfaozanbtbziikiqje: |
| 1310 | + resolution: {integrity: sha512-4yg+FJR/V1M9Xoq56SF9Iygqm+r5LMXvheo6DQ7/yUWynQ4YfCRnsKuRgqH4EQ5Ya76rVwlEpw4Xu+TgWQUcdA==} | ||
| 985 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | 1311 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
| 986 | peerDependencies: | 1312 | peerDependencies: |
| 987 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 | 1313 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 |
| @@ -990,26 +1316,26 @@ packages: | @@ -990,26 +1316,26 @@ packages: | ||
| 990 | typescript: | 1316 | typescript: |
| 991 | optional: true | 1317 | optional: true |
| 992 | dependencies: | 1318 | dependencies: |
| 993 | - '@typescript-eslint/scope-manager': 5.48.0 | ||
| 994 | - '@typescript-eslint/types': 5.48.0 | ||
| 995 | - '@typescript-eslint/typescript-estree': 5.48.0_typescript@4.9.4 | 1319 | + '@typescript-eslint/scope-manager': 5.48.1 |
| 1320 | + '@typescript-eslint/types': 5.48.1 | ||
| 1321 | + '@typescript-eslint/typescript-estree': 5.48.1_typescript@4.9.4 | ||
| 996 | debug: 4.3.4 | 1322 | debug: 4.3.4 |
| 997 | - eslint: 8.31.0 | 1323 | + eslint: 8.32.0 |
| 998 | typescript: 4.9.4 | 1324 | typescript: 4.9.4 |
| 999 | transitivePeerDependencies: | 1325 | transitivePeerDependencies: |
| 1000 | - supports-color | 1326 | - supports-color |
| 1001 | dev: true | 1327 | dev: true |
| 1002 | 1328 | ||
| 1003 | - /@typescript-eslint/scope-manager/5.48.0: | ||
| 1004 | - resolution: {integrity: sha512-0AA4LviDtVtZqlyUQnZMVHydDATpD9SAX/RC5qh6cBd3xmyWvmXYF+WT1oOmxkeMnWDlUVTwdODeucUnjz3gow==} | 1329 | + /@typescript-eslint/scope-manager/5.48.1: |
| 1330 | + resolution: {integrity: sha512-S035ueRrbxRMKvSTv9vJKIWgr86BD8s3RqoRZmsSh/s8HhIs90g6UlK8ZabUSjUZQkhVxt7nmZ63VJ9dcZhtDQ==} | ||
| 1005 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | 1331 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
| 1006 | dependencies: | 1332 | dependencies: |
| 1007 | - '@typescript-eslint/types': 5.48.0 | ||
| 1008 | - '@typescript-eslint/visitor-keys': 5.48.0 | 1333 | + '@typescript-eslint/types': 5.48.1 |
| 1334 | + '@typescript-eslint/visitor-keys': 5.48.1 | ||
| 1009 | dev: true | 1335 | dev: true |
| 1010 | 1336 | ||
| 1011 | - /@typescript-eslint/type-utils/5.48.0_iukboom6ndih5an6iafl45j2fe: | ||
| 1012 | - resolution: {integrity: sha512-vbtPO5sJyFjtHkGlGK4Sthmta0Bbls4Onv0bEqOGm7hP9h8UpRsHJwsrCiWtCUndTRNQO/qe6Ijz9rnT/DB+7g==} | 1337 | + /@typescript-eslint/type-utils/5.48.1_7uibuqfxkfaozanbtbziikiqje: |
| 1338 | + resolution: {integrity: sha512-Hyr8HU8Alcuva1ppmqSYtM/Gp0q4JOp1F+/JH5D1IZm/bUBrV0edoewQZiEc1r6I8L4JL21broddxK8HAcZiqQ==} | ||
| 1013 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | 1339 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
| 1014 | peerDependencies: | 1340 | peerDependencies: |
| 1015 | eslint: '*' | 1341 | eslint: '*' |
| @@ -1018,23 +1344,23 @@ packages: | @@ -1018,23 +1344,23 @@ packages: | ||
| 1018 | typescript: | 1344 | typescript: |
| 1019 | optional: true | 1345 | optional: true |
| 1020 | dependencies: | 1346 | dependencies: |
| 1021 | - '@typescript-eslint/typescript-estree': 5.48.0_typescript@4.9.4 | ||
| 1022 | - '@typescript-eslint/utils': 5.48.0_iukboom6ndih5an6iafl45j2fe | 1347 | + '@typescript-eslint/typescript-estree': 5.48.1_typescript@4.9.4 |
| 1348 | + '@typescript-eslint/utils': 5.48.1_7uibuqfxkfaozanbtbziikiqje | ||
| 1023 | debug: 4.3.4 | 1349 | debug: 4.3.4 |
| 1024 | - eslint: 8.31.0 | 1350 | + eslint: 8.32.0 |
| 1025 | tsutils: 3.21.0_typescript@4.9.4 | 1351 | tsutils: 3.21.0_typescript@4.9.4 |
| 1026 | typescript: 4.9.4 | 1352 | typescript: 4.9.4 |
| 1027 | transitivePeerDependencies: | 1353 | transitivePeerDependencies: |
| 1028 | - supports-color | 1354 | - supports-color |
| 1029 | dev: true | 1355 | dev: true |
| 1030 | 1356 | ||
| 1031 | - /@typescript-eslint/types/5.48.0: | ||
| 1032 | - resolution: {integrity: sha512-UTe67B0Ypius0fnEE518NB2N8gGutIlTojeTg4nt0GQvikReVkurqxd2LvYa9q9M5MQ6rtpNyWTBxdscw40Xhw==} | 1357 | + /@typescript-eslint/types/5.48.1: |
| 1358 | + resolution: {integrity: sha512-xHyDLU6MSuEEdIlzrrAerCGS3T7AA/L8Hggd0RCYBi0w3JMvGYxlLlXHeg50JI9Tfg5MrtsfuNxbS/3zF1/ATg==} | ||
| 1033 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | 1359 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
| 1034 | dev: true | 1360 | dev: true |
| 1035 | 1361 | ||
| 1036 | - /@typescript-eslint/typescript-estree/5.48.0_typescript@4.9.4: | ||
| 1037 | - resolution: {integrity: sha512-7pjd94vvIjI1zTz6aq/5wwE/YrfIyEPLtGJmRfyNR9NYIW+rOvzzUv3Cmq2hRKpvt6e9vpvPUQ7puzX7VSmsEw==} | 1362 | + /@typescript-eslint/typescript-estree/5.48.1_typescript@4.9.4: |
| 1363 | + resolution: {integrity: sha512-Hut+Osk5FYr+sgFh8J/FHjqX6HFcDzTlWLrFqGoK5kVUN3VBHF/QzZmAsIXCQ8T/W9nQNBTqalxi1P3LSqWnRA==} | ||
| 1038 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | 1364 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
| 1039 | peerDependencies: | 1365 | peerDependencies: |
| 1040 | typescript: '*' | 1366 | typescript: '*' |
| @@ -1042,8 +1368,8 @@ packages: | @@ -1042,8 +1368,8 @@ packages: | ||
| 1042 | typescript: | 1368 | typescript: |
| 1043 | optional: true | 1369 | optional: true |
| 1044 | dependencies: | 1370 | dependencies: |
| 1045 | - '@typescript-eslint/types': 5.48.0 | ||
| 1046 | - '@typescript-eslint/visitor-keys': 5.48.0 | 1371 | + '@typescript-eslint/types': 5.48.1 |
| 1372 | + '@typescript-eslint/visitor-keys': 5.48.1 | ||
| 1047 | debug: 4.3.4 | 1373 | debug: 4.3.4 |
| 1048 | globby: 11.1.0 | 1374 | globby: 11.1.0 |
| 1049 | is-glob: 4.0.3 | 1375 | is-glob: 4.0.3 |
| @@ -1054,31 +1380,31 @@ packages: | @@ -1054,31 +1380,31 @@ packages: | ||
| 1054 | - supports-color | 1380 | - supports-color |
| 1055 | dev: true | 1381 | dev: true |
| 1056 | 1382 | ||
| 1057 | - /@typescript-eslint/utils/5.48.0_iukboom6ndih5an6iafl45j2fe: | ||
| 1058 | - resolution: {integrity: sha512-x2jrMcPaMfsHRRIkL+x96++xdzvrdBCnYRd5QiW5Wgo1OB4kDYPbC1XjWP/TNqlfK93K/lUL92erq5zPLgFScQ==} | 1383 | + /@typescript-eslint/utils/5.48.1_7uibuqfxkfaozanbtbziikiqje: |
| 1384 | + resolution: {integrity: sha512-SmQuSrCGUOdmGMwivW14Z0Lj8dxG1mOFZ7soeJ0TQZEJcs3n5Ndgkg0A4bcMFzBELqLJ6GTHnEU+iIoaD6hFGA==} | ||
| 1059 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | 1385 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
| 1060 | peerDependencies: | 1386 | peerDependencies: |
| 1061 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 | 1387 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 |
| 1062 | dependencies: | 1388 | dependencies: |
| 1063 | '@types/json-schema': 7.0.11 | 1389 | '@types/json-schema': 7.0.11 |
| 1064 | '@types/semver': 7.3.13 | 1390 | '@types/semver': 7.3.13 |
| 1065 | - '@typescript-eslint/scope-manager': 5.48.0 | ||
| 1066 | - '@typescript-eslint/types': 5.48.0 | ||
| 1067 | - '@typescript-eslint/typescript-estree': 5.48.0_typescript@4.9.4 | ||
| 1068 | - eslint: 8.31.0 | 1391 | + '@typescript-eslint/scope-manager': 5.48.1 |
| 1392 | + '@typescript-eslint/types': 5.48.1 | ||
| 1393 | + '@typescript-eslint/typescript-estree': 5.48.1_typescript@4.9.4 | ||
| 1394 | + eslint: 8.32.0 | ||
| 1069 | eslint-scope: 5.1.1 | 1395 | eslint-scope: 5.1.1 |
| 1070 | - eslint-utils: 3.0.0_eslint@8.31.0 | 1396 | + eslint-utils: 3.0.0_eslint@8.32.0 |
| 1071 | semver: 7.3.8 | 1397 | semver: 7.3.8 |
| 1072 | transitivePeerDependencies: | 1398 | transitivePeerDependencies: |
| 1073 | - supports-color | 1399 | - supports-color |
| 1074 | - typescript | 1400 | - typescript |
| 1075 | dev: true | 1401 | dev: true |
| 1076 | 1402 | ||
| 1077 | - /@typescript-eslint/visitor-keys/5.48.0: | ||
| 1078 | - resolution: {integrity: sha512-5motVPz5EgxQ0bHjut3chzBkJ3Z3sheYVcSwS5BpHZpLqSptSmELNtGixmgj65+rIfhvtQTz5i9OP2vtzdDH7Q==} | 1403 | + /@typescript-eslint/visitor-keys/5.48.1: |
| 1404 | + resolution: {integrity: sha512-Ns0XBwmfuX7ZknznfXozgnydyR8F6ev/KEGePP4i74uL3ArsKbEhJ7raeKr1JSa997DBDwol/4a0Y+At82c9dA==} | ||
| 1079 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | 1405 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
| 1080 | dependencies: | 1406 | dependencies: |
| 1081 | - '@typescript-eslint/types': 5.48.0 | 1407 | + '@typescript-eslint/types': 5.48.1 |
| 1082 | eslint-visitor-keys: 3.3.0 | 1408 | eslint-visitor-keys: 3.3.0 |
| 1083 | dev: true | 1409 | dev: true |
| 1084 | 1410 | ||
| @@ -1123,30 +1449,73 @@ packages: | @@ -1123,30 +1449,73 @@ packages: | ||
| 1123 | nanoid: 3.3.4 | 1449 | nanoid: 3.3.4 |
| 1124 | dev: false | 1450 | dev: false |
| 1125 | 1451 | ||
| 1126 | - /@volar/language-core/1.0.20: | ||
| 1127 | - resolution: {integrity: sha512-FU6TC+xQDLkBmp226NTeZ454MTb8VFLga6CIzWP+TsxuxGwB9Exvzof9TKpilIhTdF4IGVJJ4X1aCP6ycnLMbg==} | 1452 | + /@vitejs/plugin-legacy/3.0.1_terser@5.16.1+vite@4.0.4: |
| 1453 | + resolution: {integrity: sha512-XCtEjxoR3rmy000ujYRBp5kggWqzHz9+F20/yIMUWOzbvu0+KW1e14Fvb8h7SpNn+bfjGW1RiAs1Vrgb7Js+iQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@vitejs/plugin-legacy/-/plugin-legacy-3.0.1.tgz} | ||
| 1454 | + engines: {node: ^14.18.0 || >=16.0.0} | ||
| 1455 | + peerDependencies: | ||
| 1456 | + terser: ^5.4.0 | ||
| 1457 | + vite: ^4.0.0 | ||
| 1458 | + dependencies: | ||
| 1459 | + '@babel/standalone': 7.20.6 | ||
| 1460 | + core-js: 3.26.1 | ||
| 1461 | + magic-string: 0.27.0 | ||
| 1462 | + regenerator-runtime: 0.13.11 | ||
| 1463 | + systemjs: 6.13.0 | ||
| 1464 | + terser: 5.16.1 | ||
| 1465 | + vite: 4.0.4_zxbrnrc4iyldik6mikh3pswz4i | ||
| 1466 | + dev: true | ||
| 1467 | + | ||
| 1468 | + /@vitejs/plugin-vue-jsx/3.0.0_vite@4.0.4+vue@3.2.45: | ||
| 1469 | + resolution: {integrity: sha512-vurkuzgac5SYuxd2HUZqAFAWGTF10diKBwJNbCvnWijNZfXd+7jMtqjPFbGt7idOJUn584fP1Ar9j/GN2jQ3Ew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.0.0.tgz} | ||
| 1470 | + engines: {node: ^14.18.0 || >=16.0.0} | ||
| 1471 | + peerDependencies: | ||
| 1472 | + vite: ^4.0.0 | ||
| 1473 | + vue: ^3.0.0 | ||
| 1474 | + dependencies: | ||
| 1475 | + '@babel/core': 7.20.5 | ||
| 1476 | + '@babel/plugin-transform-typescript': 7.20.2_@babel+core@7.20.5 | ||
| 1477 | + '@vue/babel-plugin-jsx': 1.1.1_@babel+core@7.20.5 | ||
| 1478 | + vite: 4.0.4_zxbrnrc4iyldik6mikh3pswz4i | ||
| 1479 | + vue: 3.2.45 | ||
| 1480 | + transitivePeerDependencies: | ||
| 1481 | + - supports-color | ||
| 1482 | + dev: true | ||
| 1483 | + | ||
| 1484 | + /@vitejs/plugin-vue/4.0.0_vite@4.0.4+vue@3.2.45: | ||
| 1485 | + resolution: {integrity: sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@vitejs/plugin-vue/-/plugin-vue-4.0.0.tgz} | ||
| 1486 | + engines: {node: ^14.18.0 || >=16.0.0} | ||
| 1487 | + peerDependencies: | ||
| 1488 | + vite: ^4.0.0 | ||
| 1489 | + vue: ^3.2.25 | ||
| 1490 | + dependencies: | ||
| 1491 | + vite: 4.0.4_zxbrnrc4iyldik6mikh3pswz4i | ||
| 1492 | + vue: 3.2.45 | ||
| 1493 | + dev: true | ||
| 1494 | + | ||
| 1495 | + /@volar/language-core/1.0.24: | ||
| 1496 | + resolution: {integrity: sha512-vTN+alJiWwK0Pax6POqrmevbtFW2dXhjwWiW/MW4f48eDYPLdyURWcr8TixO7EN/nHsUBj2udT7igFKPtjyAKg==} | ||
| 1128 | dependencies: | 1497 | dependencies: |
| 1129 | - '@volar/source-map': 1.0.20 | 1498 | + '@volar/source-map': 1.0.24 |
| 1130 | muggle-string: 0.1.0 | 1499 | muggle-string: 0.1.0 |
| 1131 | dev: true | 1500 | dev: true |
| 1132 | 1501 | ||
| 1133 | - /@volar/source-map/1.0.20: | ||
| 1134 | - resolution: {integrity: sha512-6wwrvAjuy7HepvHW7CqCw5b57YIFrj9mcfJvjic1WCX9TqjnXAcuHFqiUPid7EdZ4SCRKCYQbWmWreThYbHaZw==} | 1502 | + /@volar/source-map/1.0.24: |
| 1503 | + resolution: {integrity: sha512-Qsv/tkplx18pgBr8lKAbM1vcDqgkGKQzbChg6NW+v0CZc3G7FLmK+WrqEPzKlN7Cwdc6XVL559Nod8WKAfKr4A==} | ||
| 1135 | dependencies: | 1504 | dependencies: |
| 1136 | muggle-string: 0.1.0 | 1505 | muggle-string: 0.1.0 |
| 1137 | dev: true | 1506 | dev: true |
| 1138 | 1507 | ||
| 1139 | - /@volar/typescript/1.0.20: | ||
| 1140 | - resolution: {integrity: sha512-98D2+rC4igqPL7emqIf0NtIx3UYXZ8xqILiP/ihwP7G2T4oyoGr2vKEOwo49sUzvgUvQl2AI5p8ZQ71mFJfP7w==} | 1508 | + /@volar/typescript/1.0.24: |
| 1509 | + resolution: {integrity: sha512-f8hCSk+PfKR1/RQHxZ79V1NpDImHoivqoizK+mstphm25tn/YJ/JnKNjZHB+o21fuW0yKlI26NV3jkVb2Cc/7A==} | ||
| 1141 | dependencies: | 1510 | dependencies: |
| 1142 | - '@volar/language-core': 1.0.20 | 1511 | + '@volar/language-core': 1.0.24 |
| 1143 | dev: true | 1512 | dev: true |
| 1144 | 1513 | ||
| 1145 | - /@volar/vue-language-core/1.0.20: | ||
| 1146 | - resolution: {integrity: sha512-Zz6yuxtA6BG6YU8KPwV4qhO5kh3e2Et6+YOu0QC43SiDgjIw2Vzzi+qAqm8UYofg9UBn82OArO1L+VrZPCCK8A==} | 1514 | + /@volar/vue-language-core/1.0.24: |
| 1515 | + resolution: {integrity: sha512-2NTJzSgrwKu6uYwPqLiTMuAzi7fAY3yFy5PJ255bGJc82If0Xr+cW8pC80vpjG0D/aVLmlwAdO4+Ya2BI8GdDg==} | ||
| 1147 | dependencies: | 1516 | dependencies: |
| 1148 | - '@volar/language-core': 1.0.20 | ||
| 1149 | - '@volar/source-map': 1.0.20 | 1517 | + '@volar/language-core': 1.0.24 |
| 1518 | + '@volar/source-map': 1.0.24 | ||
| 1150 | '@vue/compiler-dom': 3.2.45 | 1519 | '@vue/compiler-dom': 3.2.45 |
| 1151 | '@vue/compiler-sfc': 3.2.45 | 1520 | '@vue/compiler-sfc': 3.2.45 |
| 1152 | '@vue/reactivity': 3.2.45 | 1521 | '@vue/reactivity': 3.2.45 |
| @@ -1155,11 +1524,32 @@ packages: | @@ -1155,11 +1524,32 @@ packages: | ||
| 1155 | vue-template-compiler: 2.7.14 | 1524 | vue-template-compiler: 2.7.14 |
| 1156 | dev: true | 1525 | dev: true |
| 1157 | 1526 | ||
| 1158 | - /@volar/vue-typescript/1.0.20: | ||
| 1159 | - resolution: {integrity: sha512-FxucnAIZc503CfkdEGmUSw8EQfT31gi0DST7YmCNBK3cWOqJTF7UaHaBDpejnYGbsB568KZQbWTLNSpid5S/lA==} | 1527 | + /@volar/vue-typescript/1.0.24: |
| 1528 | + resolution: {integrity: sha512-9a25oHDvGaNC0okRS47uqJI6FxY4hUQZUsxeOUFHcqVxZEv8s17LPuP/pMMXyz7jPygrZubB/qXqHY5jEu/akA==} | ||
| 1529 | + dependencies: | ||
| 1530 | + '@volar/typescript': 1.0.24 | ||
| 1531 | + '@volar/vue-language-core': 1.0.24 | ||
| 1532 | + dev: true | ||
| 1533 | + | ||
| 1534 | + /@vue/babel-helper-vue-transform-on/1.0.2: | ||
| 1535 | + resolution: {integrity: sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz} | ||
| 1536 | + dev: true | ||
| 1537 | + | ||
| 1538 | + /@vue/babel-plugin-jsx/1.1.1_@babel+core@7.20.5: | ||
| 1539 | + resolution: {integrity: sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz} | ||
| 1160 | dependencies: | 1540 | dependencies: |
| 1161 | - '@volar/typescript': 1.0.20 | ||
| 1162 | - '@volar/vue-language-core': 1.0.20 | 1541 | + '@babel/helper-module-imports': 7.18.6 |
| 1542 | + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.20.5 | ||
| 1543 | + '@babel/template': 7.18.10 | ||
| 1544 | + '@babel/traverse': 7.20.1 | ||
| 1545 | + '@babel/types': 7.20.2 | ||
| 1546 | + '@vue/babel-helper-vue-transform-on': 1.0.2 | ||
| 1547 | + camelcase: 6.3.0 | ||
| 1548 | + html-tags: 3.2.0 | ||
| 1549 | + svg-tags: 1.0.0 | ||
| 1550 | + transitivePeerDependencies: | ||
| 1551 | + - '@babel/core' | ||
| 1552 | + - supports-color | ||
| 1163 | dev: true | 1553 | dev: true |
| 1164 | 1554 | ||
| 1165 | /@vue/compiler-core/3.2.45: | 1555 | /@vue/compiler-core/3.2.45: |
| @@ -1186,8 +1576,8 @@ packages: | @@ -1186,8 +1576,8 @@ packages: | ||
| 1186 | '@vue/reactivity-transform': 3.2.45 | 1576 | '@vue/reactivity-transform': 3.2.45 |
| 1187 | '@vue/shared': 3.2.45 | 1577 | '@vue/shared': 3.2.45 |
| 1188 | estree-walker: 2.0.2 | 1578 | estree-walker: 2.0.2 |
| 1189 | - magic-string: registry.npmmirror.com/magic-string/0.25.9 | ||
| 1190 | - postcss: registry.npmmirror.com/postcss/8.4.20 | 1579 | + magic-string: 0.25.9 |
| 1580 | + postcss: 8.4.21 | ||
| 1191 | source-map: 0.6.1 | 1581 | source-map: 0.6.1 |
| 1192 | 1582 | ||
| 1193 | /@vue/compiler-ssr/3.2.45: | 1583 | /@vue/compiler-ssr/3.2.45: |
| @@ -1197,7 +1587,7 @@ packages: | @@ -1197,7 +1587,7 @@ packages: | ||
| 1197 | '@vue/shared': 3.2.45 | 1587 | '@vue/shared': 3.2.45 |
| 1198 | 1588 | ||
| 1199 | /@vue/devtools-api/6.4.5: | 1589 | /@vue/devtools-api/6.4.5: |
| 1200 | - resolution: {integrity: sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==} | 1590 | + resolution: {integrity: sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@vue/devtools-api/-/devtools-api-6.4.5.tgz} |
| 1201 | 1591 | ||
| 1202 | /@vue/reactivity-transform/3.2.45: | 1592 | /@vue/reactivity-transform/3.2.45: |
| 1203 | resolution: {integrity: sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==} | 1593 | resolution: {integrity: sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==} |
| @@ -1206,7 +1596,7 @@ packages: | @@ -1206,7 +1596,7 @@ packages: | ||
| 1206 | '@vue/compiler-core': 3.2.45 | 1596 | '@vue/compiler-core': 3.2.45 |
| 1207 | '@vue/shared': 3.2.45 | 1597 | '@vue/shared': 3.2.45 |
| 1208 | estree-walker: 2.0.2 | 1598 | estree-walker: 2.0.2 |
| 1209 | - magic-string: registry.npmmirror.com/magic-string/0.25.9 | 1599 | + magic-string: 0.25.9 |
| 1210 | 1600 | ||
| 1211 | /@vue/reactivity/3.2.45: | 1601 | /@vue/reactivity/3.2.45: |
| 1212 | resolution: {integrity: sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==} | 1602 | resolution: {integrity: sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==} |
| @@ -1449,6 +1839,30 @@ packages: | @@ -1449,6 +1839,30 @@ packages: | ||
| 1449 | snabbdom: 3.5.1 | 1839 | snabbdom: 3.5.1 |
| 1450 | dev: false | 1840 | dev: false |
| 1451 | 1841 | ||
| 1842 | + /@windicss/config/1.8.10: | ||
| 1843 | + resolution: {integrity: sha512-O9SsC110b1Ik3YYa4Ck/0TWuCo7YFfA9KDrwD5sAeqscT5COIGK1HszdCT3oh0MJFej2wNrvpfyW9h6yQaW6PA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@windicss/config/-/config-1.8.10.tgz} | ||
| 1844 | + dependencies: | ||
| 1845 | + debug: 4.3.4 | ||
| 1846 | + jiti: 1.16.0 | ||
| 1847 | + windicss: 3.5.6 | ||
| 1848 | + transitivePeerDependencies: | ||
| 1849 | + - supports-color | ||
| 1850 | + dev: true | ||
| 1851 | + | ||
| 1852 | + /@windicss/plugin-utils/1.8.10: | ||
| 1853 | + resolution: {integrity: sha512-Phqk5OW1w+Mv+ry6t7BzAeDq3aMhbI94gR49j9vQCufFfDGCHndhhjtMK0sBv+NPJUsIAIh6qayb1iwBCXUGrw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/@windicss/plugin-utils/-/plugin-utils-1.8.10.tgz} | ||
| 1854 | + dependencies: | ||
| 1855 | + '@antfu/utils': 0.7.2 | ||
| 1856 | + '@windicss/config': 1.8.10 | ||
| 1857 | + debug: 4.3.4 | ||
| 1858 | + fast-glob: 3.2.12 | ||
| 1859 | + magic-string: 0.27.0 | ||
| 1860 | + micromatch: 4.0.5 | ||
| 1861 | + windicss: 3.5.6 | ||
| 1862 | + transitivePeerDependencies: | ||
| 1863 | + - supports-color | ||
| 1864 | + dev: true | ||
| 1865 | + | ||
| 1452 | /@zxcvbn-ts/core/2.1.0: | 1866 | /@zxcvbn-ts/core/2.1.0: |
| 1453 | resolution: {integrity: sha512-doxol9xrO7LgyVJhguXe7vO0xthnIYmsOKoDwrLg0Ho2kkpQaVtM+AOQw+BkEiKIqNg1V48eUf4/cTzMElXdiA==} | 1867 | resolution: {integrity: sha512-doxol9xrO7LgyVJhguXe7vO0xthnIYmsOKoDwrLg0Ho2kkpQaVtM+AOQw+BkEiKIqNg1V48eUf4/cTzMElXdiA==} |
| 1454 | dev: false | 1868 | dev: false |
| @@ -1554,7 +1968,7 @@ packages: | @@ -1554,7 +1968,7 @@ packages: | ||
| 1554 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} | 1968 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} |
| 1555 | engines: {node: '>=4'} | 1969 | engines: {node: '>=4'} |
| 1556 | dependencies: | 1970 | dependencies: |
| 1557 | - color-convert: registry.npmmirror.com/color-convert/1.9.3 | 1971 | + color-convert: 1.9.3 |
| 1558 | dev: true | 1972 | dev: true |
| 1559 | 1973 | ||
| 1560 | /ansi-styles/4.3.0: | 1974 | /ansi-styles/4.3.0: |
| @@ -1562,7 +1976,6 @@ packages: | @@ -1562,7 +1976,6 @@ packages: | ||
| 1562 | engines: {node: '>=8'} | 1976 | engines: {node: '>=8'} |
| 1563 | dependencies: | 1977 | dependencies: |
| 1564 | color-convert: 2.0.1 | 1978 | color-convert: 2.0.1 |
| 1565 | - dev: true | ||
| 1566 | 1979 | ||
| 1567 | /ansi-styles/6.2.1: | 1980 | /ansi-styles/6.2.1: |
| 1568 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} | 1981 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} |
| @@ -1647,7 +2060,7 @@ packages: | @@ -1647,7 +2060,7 @@ packages: | ||
| 1647 | hasBin: true | 2060 | hasBin: true |
| 1648 | dev: true | 2061 | dev: true |
| 1649 | 2062 | ||
| 1650 | - /autoprefixer/10.4.13_postcss@8.4.20: | 2063 | + /autoprefixer/10.4.13_postcss@8.4.21: |
| 1651 | resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==} | 2064 | resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==} |
| 1652 | engines: {node: ^10 || ^12 || >=14} | 2065 | engines: {node: ^10 || ^12 || >=14} |
| 1653 | hasBin: true | 2066 | hasBin: true |
| @@ -1659,7 +2072,7 @@ packages: | @@ -1659,7 +2072,7 @@ packages: | ||
| 1659 | fraction.js: 4.2.0 | 2072 | fraction.js: 4.2.0 |
| 1660 | normalize-range: 0.1.2 | 2073 | normalize-range: 0.1.2 |
| 1661 | picocolors: 1.0.0 | 2074 | picocolors: 1.0.0 |
| 1662 | - postcss: registry.npmmirror.com/postcss/8.4.20 | 2075 | + postcss: 8.4.21 |
| 1663 | postcss-value-parser: 4.2.0 | 2076 | postcss-value-parser: 4.2.0 |
| 1664 | dev: true | 2077 | dev: true |
| 1665 | 2078 | ||
| @@ -1732,11 +2145,29 @@ packages: | @@ -1732,11 +2145,29 @@ packages: | ||
| 1732 | balanced-match: 1.0.2 | 2145 | balanced-match: 1.0.2 |
| 1733 | dev: true | 2146 | dev: true |
| 1734 | 2147 | ||
| 2148 | + /braces/2.3.2: | ||
| 2149 | + resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/braces/-/braces-2.3.2.tgz} | ||
| 2150 | + engines: {node: '>=0.10.0'} | ||
| 2151 | + dependencies: | ||
| 2152 | + arr-flatten: 1.1.0 | ||
| 2153 | + array-unique: 0.3.2 | ||
| 2154 | + extend-shallow: 2.0.1 | ||
| 2155 | + fill-range: 4.0.0 | ||
| 2156 | + isobject: 3.0.1 | ||
| 2157 | + repeat-element: 1.1.4 | ||
| 2158 | + snapdragon: 0.8.2 | ||
| 2159 | + snapdragon-node: 2.1.1 | ||
| 2160 | + split-string: 3.1.0 | ||
| 2161 | + to-regex: 3.0.2 | ||
| 2162 | + transitivePeerDependencies: | ||
| 2163 | + - supports-color | ||
| 2164 | + dev: true | ||
| 2165 | + | ||
| 1735 | /braces/3.0.2: | 2166 | /braces/3.0.2: |
| 1736 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} | 2167 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} |
| 1737 | engines: {node: '>=8'} | 2168 | engines: {node: '>=8'} |
| 1738 | dependencies: | 2169 | dependencies: |
| 1739 | - fill-range: registry.npmmirror.com/fill-range/7.0.1 | 2170 | + fill-range: 7.0.1 |
| 1740 | dev: true | 2171 | dev: true |
| 1741 | 2172 | ||
| 1742 | /browserslist/4.21.4: | 2173 | /browserslist/4.21.4: |
| @@ -1785,18 +2216,27 @@ packages: | @@ -1785,18 +2216,27 @@ packages: | ||
| 1785 | resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} | 2216 | resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} |
| 1786 | dependencies: | 2217 | dependencies: |
| 1787 | pascal-case: 3.1.2 | 2218 | pascal-case: 3.1.2 |
| 1788 | - tslib: registry.npmmirror.com/tslib/2.4.1 | 2219 | + tslib: 2.4.1 |
| 1789 | dev: true | 2220 | dev: true |
| 1790 | 2221 | ||
| 1791 | /camelcase-keys/6.2.2: | 2222 | /camelcase-keys/6.2.2: |
| 1792 | resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} | 2223 | resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} |
| 1793 | engines: {node: '>=8'} | 2224 | engines: {node: '>=8'} |
| 1794 | dependencies: | 2225 | dependencies: |
| 1795 | - camelcase: registry.npmmirror.com/camelcase/5.3.1 | 2226 | + camelcase: 5.3.1 |
| 1796 | map-obj: 4.3.0 | 2227 | map-obj: 4.3.0 |
| 1797 | quick-lru: 4.0.1 | 2228 | quick-lru: 4.0.1 |
| 1798 | dev: true | 2229 | dev: true |
| 1799 | 2230 | ||
| 2231 | + /camelcase/5.3.1: | ||
| 2232 | + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} | ||
| 2233 | + engines: {node: '>=6'} | ||
| 2234 | + | ||
| 2235 | + /camelcase/6.3.0: | ||
| 2236 | + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/camelcase/-/camelcase-6.3.0.tgz} | ||
| 2237 | + engines: {node: '>=10'} | ||
| 2238 | + dev: true | ||
| 2239 | + | ||
| 1800 | /caniuse-lite/1.0.30001431: | 2240 | /caniuse-lite/1.0.30001431: |
| 1801 | resolution: {integrity: sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==} | 2241 | resolution: {integrity: sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==} |
| 1802 | dev: true | 2242 | dev: true |
| @@ -1805,7 +2245,7 @@ packages: | @@ -1805,7 +2245,7 @@ packages: | ||
| 1805 | resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} | 2245 | resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} |
| 1806 | dependencies: | 2246 | dependencies: |
| 1807 | no-case: 3.0.4 | 2247 | no-case: 3.0.4 |
| 1808 | - tslib: registry.npmmirror.com/tslib/2.4.1 | 2248 | + tslib: 2.4.1 |
| 1809 | upper-case-first: 2.0.2 | 2249 | upper-case-first: 2.0.2 |
| 1810 | dev: true | 2250 | dev: true |
| 1811 | 2251 | ||
| @@ -1937,13 +2377,25 @@ packages: | @@ -1937,13 +2377,25 @@ packages: | ||
| 1937 | object-visit: 1.0.1 | 2377 | object-visit: 1.0.1 |
| 1938 | dev: true | 2378 | dev: true |
| 1939 | 2379 | ||
| 2380 | + /color-convert/1.9.3: | ||
| 2381 | + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} | ||
| 2382 | + dependencies: | ||
| 2383 | + color-name: 1.1.3 | ||
| 2384 | + dev: true | ||
| 2385 | + | ||
| 1940 | /color-convert/2.0.1: | 2386 | /color-convert/2.0.1: |
| 1941 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} | 2387 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} |
| 1942 | engines: {node: '>=7.0.0'} | 2388 | engines: {node: '>=7.0.0'} |
| 1943 | dependencies: | 2389 | dependencies: |
| 1944 | - color-name: registry.npmmirror.com/color-name/1.1.4 | 2390 | + color-name: 1.1.4 |
| 2391 | + | ||
| 2392 | + /color-name/1.1.3: | ||
| 2393 | + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} | ||
| 1945 | dev: true | 2394 | dev: true |
| 1946 | 2395 | ||
| 2396 | + /color-name/1.1.4: | ||
| 2397 | + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} | ||
| 2398 | + | ||
| 1947 | /colord/2.9.3: | 2399 | /colord/2.9.3: |
| 1948 | resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} | 2400 | resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} |
| 1949 | dev: true | 2401 | dev: true |
| @@ -2004,7 +2456,7 @@ packages: | @@ -2004,7 +2456,7 @@ packages: | ||
| 2004 | resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} | 2456 | resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} |
| 2005 | dependencies: | 2457 | dependencies: |
| 2006 | no-case: 3.0.4 | 2458 | no-case: 3.0.4 |
| 2007 | - tslib: registry.npmmirror.com/tslib/2.4.1 | 2459 | + tslib: 2.4.1 |
| 2008 | upper-case: 2.0.2 | 2460 | upper-case: 2.0.2 |
| 2009 | dev: true | 2461 | dev: true |
| 2010 | 2462 | ||
| @@ -2038,11 +2490,20 @@ packages: | @@ -2038,11 +2490,20 @@ packages: | ||
| 2038 | through2: 4.0.2 | 2490 | through2: 4.0.2 |
| 2039 | dev: true | 2491 | dev: true |
| 2040 | 2492 | ||
| 2493 | + /convert-source-map/1.9.0: | ||
| 2494 | + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/convert-source-map/-/convert-source-map-1.9.0.tgz} | ||
| 2495 | + dev: true | ||
| 2496 | + | ||
| 2041 | /copy-descriptor/0.1.1: | 2497 | /copy-descriptor/0.1.1: |
| 2042 | resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} | 2498 | resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} |
| 2043 | engines: {node: '>=0.10.0'} | 2499 | engines: {node: '>=0.10.0'} |
| 2044 | dev: true | 2500 | dev: true |
| 2045 | 2501 | ||
| 2502 | + /core-js/3.26.1: | ||
| 2503 | + resolution: {integrity: sha512-21491RRQVzUn0GGM9Z1Jrpr6PNPxPi+Za8OM9q4tksTSnlbXXGKK1nXNg/QvwFYettXvSX6zWKCtHHfjN4puyA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/core-js/-/core-js-3.26.1.tgz} | ||
| 2504 | + requiresBuild: true | ||
| 2505 | + dev: true | ||
| 2506 | + | ||
| 2046 | /cors/2.8.5: | 2507 | /cors/2.8.5: |
| 2047 | resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} | 2508 | resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} |
| 2048 | engines: {node: '>= 0.10'} | 2509 | engines: {node: '>= 0.10'} |
| @@ -2051,7 +2512,7 @@ packages: | @@ -2051,7 +2512,7 @@ packages: | ||
| 2051 | vary: 1.1.2 | 2512 | vary: 1.1.2 |
| 2052 | dev: true | 2513 | dev: true |
| 2053 | 2514 | ||
| 2054 | - /cosmiconfig-typescript-loader/4.2.0_wb7bklcl6jlvxijczjyxggip4a: | 2515 | + /cosmiconfig-typescript-loader/4.2.0_bxtyj3et3xbsdyxhh3oblnfbj4: |
| 2055 | resolution: {integrity: sha512-NkANeMnaHrlaSSlpKGyvn2R4rqUDeE/9E5YHx+b4nwo0R8dZyAqcih8/gxpCZvqWP9Vf6xuLpMSzSgdVEIM78g==} | 2516 | resolution: {integrity: sha512-NkANeMnaHrlaSSlpKGyvn2R4rqUDeE/9E5YHx+b4nwo0R8dZyAqcih8/gxpCZvqWP9Vf6xuLpMSzSgdVEIM78g==} |
| 2056 | engines: {node: '>=12', npm: '>=6'} | 2517 | engines: {node: '>=12', npm: '>=6'} |
| 2057 | peerDependencies: | 2518 | peerDependencies: |
| @@ -2060,9 +2521,9 @@ packages: | @@ -2060,9 +2521,9 @@ packages: | ||
| 2060 | ts-node: '>=10' | 2521 | ts-node: '>=10' |
| 2061 | typescript: '>=3' | 2522 | typescript: '>=3' |
| 2062 | dependencies: | 2523 | dependencies: |
| 2063 | - '@types/node': 14.18.33 | ||
| 2064 | - cosmiconfig: 7.1.0 | ||
| 2065 | - ts-node: 10.9.1_rju6pyblifsagdmqm3y74zsi6q | 2524 | + '@types/node': 18.11.18 |
| 2525 | + cosmiconfig: 8.0.0 | ||
| 2526 | + ts-node: 10.9.1_awa2wsr5thmg3i7jqycphctjfq | ||
| 2066 | typescript: 4.9.4 | 2527 | typescript: 4.9.4 |
| 2067 | dev: true | 2528 | dev: true |
| 2068 | 2529 | ||
| @@ -2077,6 +2538,16 @@ packages: | @@ -2077,6 +2538,16 @@ packages: | ||
| 2077 | yaml: 1.10.2 | 2538 | yaml: 1.10.2 |
| 2078 | dev: true | 2539 | dev: true |
| 2079 | 2540 | ||
| 2541 | + /cosmiconfig/8.0.0: | ||
| 2542 | + resolution: {integrity: sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==} | ||
| 2543 | + engines: {node: '>=14'} | ||
| 2544 | + dependencies: | ||
| 2545 | + import-fresh: 3.3.0 | ||
| 2546 | + js-yaml: 4.1.0 | ||
| 2547 | + parse-json: 5.2.0 | ||
| 2548 | + path-type: 4.0.0 | ||
| 2549 | + dev: true | ||
| 2550 | + | ||
| 2080 | /create-require/1.1.1: | 2551 | /create-require/1.1.1: |
| 2081 | resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} | 2552 | resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} |
| 2082 | dev: true | 2553 | dev: true |
| @@ -2085,6 +2556,14 @@ packages: | @@ -2085,6 +2556,14 @@ packages: | ||
| 2085 | resolution: {integrity: sha512-by7jKAo73y5/Do0K6sxdTKHgndY0NMjG2bEdgeJxycbcmHuCiMXqw8sxy5C5Y5WTOTcDGmbT7Sr5CgKOXR06OA==} | 2556 | resolution: {integrity: sha512-by7jKAo73y5/Do0K6sxdTKHgndY0NMjG2bEdgeJxycbcmHuCiMXqw8sxy5C5Y5WTOTcDGmbT7Sr5CgKOXR06OA==} |
| 2086 | dev: false | 2557 | dev: false |
| 2087 | 2558 | ||
| 2559 | + /cross-fetch/3.1.5: | ||
| 2560 | + resolution: {integrity: sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/cross-fetch/-/cross-fetch-3.1.5.tgz} | ||
| 2561 | + dependencies: | ||
| 2562 | + node-fetch: 2.6.7 | ||
| 2563 | + transitivePeerDependencies: | ||
| 2564 | + - encoding | ||
| 2565 | + dev: true | ||
| 2566 | + | ||
| 2088 | /cross-spawn/7.0.3: | 2567 | /cross-spawn/7.0.3: |
| 2089 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} | 2568 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} |
| 2090 | engines: {node: '>= 8'} | 2569 | engines: {node: '>= 8'} |
| @@ -2340,7 +2819,7 @@ packages: | @@ -2340,7 +2819,7 @@ packages: | ||
| 2340 | resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} | 2819 | resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} |
| 2341 | dependencies: | 2820 | dependencies: |
| 2342 | no-case: 3.0.4 | 2821 | no-case: 3.0.4 |
| 2343 | - tslib: registry.npmmirror.com/tslib/2.4.1 | 2822 | + tslib: 2.4.1 |
| 2344 | dev: true | 2823 | dev: true |
| 2345 | 2824 | ||
| 2346 | /dot-prop/5.3.0: | 2825 | /dot-prop/5.3.0: |
| @@ -2359,7 +2838,14 @@ packages: | @@ -2359,7 +2838,14 @@ packages: | ||
| 2359 | peerDependencies: | 2838 | peerDependencies: |
| 2360 | echarts: ^5.0.1 | 2839 | echarts: ^5.0.1 |
| 2361 | dependencies: | 2840 | dependencies: |
| 2362 | - echarts: registry.npmmirror.com/echarts/5.4.1 | 2841 | + echarts: 5.4.1 |
| 2842 | + dev: false | ||
| 2843 | + | ||
| 2844 | + /echarts/5.4.1: | ||
| 2845 | + resolution: {integrity: sha512-9ltS3M2JB0w2EhcYjCdmtrJ+6haZcW6acBolMGIuf01Hql1yrIV01L1aRj7jsaaIULJslEP9Z3vKlEmnJaWJVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/echarts/-/echarts-5.4.1.tgz} | ||
| 2846 | + dependencies: | ||
| 2847 | + tslib: 2.3.0 | ||
| 2848 | + zrender: 5.4.1 | ||
| 2363 | dev: false | 2849 | dev: false |
| 2364 | 2850 | ||
| 2365 | /ejs/3.1.8: | 2851 | /ejs/3.1.8: |
| @@ -2512,21 +2998,21 @@ packages: | @@ -2512,21 +2998,21 @@ packages: | ||
| 2512 | engines: {node: '>=10'} | 2998 | engines: {node: '>=10'} |
| 2513 | dev: true | 2999 | dev: true |
| 2514 | 3000 | ||
| 2515 | - /eslint-config-prettier/8.6.0_eslint@8.31.0: | 3001 | + /eslint-config-prettier/8.6.0_eslint@8.32.0: |
| 2516 | resolution: {integrity: sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==} | 3002 | resolution: {integrity: sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==} |
| 2517 | hasBin: true | 3003 | hasBin: true |
| 2518 | peerDependencies: | 3004 | peerDependencies: |
| 2519 | eslint: '>=7.0.0' | 3005 | eslint: '>=7.0.0' |
| 2520 | dependencies: | 3006 | dependencies: |
| 2521 | - eslint: 8.31.0 | 3007 | + eslint: 8.32.0 |
| 2522 | dev: true | 3008 | dev: true |
| 2523 | 3009 | ||
| 2524 | - /eslint-define-config/1.13.0: | ||
| 2525 | - resolution: {integrity: sha512-d0BfmPGBcMusfiz6QY/piAhWaEyJriJtvk9SHfuJzI7am9k4ce07SfmPkpcR0ckXNyu4FBons10akOO2Tx+X+Q==} | 3010 | + /eslint-define-config/1.14.0: |
| 3011 | + resolution: {integrity: sha512-NREt5SzMwKmLAY28YdaqIiTSJxfPpuZ+1ZLJxY2Wbj02dYF4QX81z0q9MPMjZB8C+SlCu66qAhcPpFJyhXOiuA==} | ||
| 2526 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=6.14.13', pnpm: '>= 7.0.0'} | 3012 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=6.14.13', pnpm: '>= 7.0.0'} |
| 2527 | dev: true | 3013 | dev: true |
| 2528 | 3014 | ||
| 2529 | - /eslint-plugin-prettier/4.2.1_32m5uc2milwdw3tnkcq5del26y: | 3015 | + /eslint-plugin-prettier/4.2.1_cn4lalcyadplruoxa5mhp7j3dq: |
| 2530 | resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} | 3016 | resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} |
| 2531 | engines: {node: '>=12.0.0'} | 3017 | engines: {node: '>=12.0.0'} |
| 2532 | peerDependencies: | 3018 | peerDependencies: |
| @@ -2537,25 +3023,25 @@ packages: | @@ -2537,25 +3023,25 @@ packages: | ||
| 2537 | eslint-config-prettier: | 3023 | eslint-config-prettier: |
| 2538 | optional: true | 3024 | optional: true |
| 2539 | dependencies: | 3025 | dependencies: |
| 2540 | - eslint: 8.31.0 | ||
| 2541 | - eslint-config-prettier: 8.6.0_eslint@8.31.0 | ||
| 2542 | - prettier: 2.8.1 | 3026 | + eslint: 8.32.0 |
| 3027 | + eslint-config-prettier: 8.6.0_eslint@8.32.0 | ||
| 3028 | + prettier: 2.8.3 | ||
| 2543 | prettier-linter-helpers: 1.0.0 | 3029 | prettier-linter-helpers: 1.0.0 |
| 2544 | dev: true | 3030 | dev: true |
| 2545 | 3031 | ||
| 2546 | - /eslint-plugin-vue/9.8.0_eslint@8.31.0: | ||
| 2547 | - resolution: {integrity: sha512-E/AXwcTzunyzM83C2QqDHxepMzvI2y6x+mmeYHbVDQlKFqmKYvRrhaVixEeeG27uI44p9oKDFiyCRw4XxgtfHA==} | 3032 | + /eslint-plugin-vue/9.9.0_eslint@8.32.0: |
| 3033 | + resolution: {integrity: sha512-YbubS7eK0J7DCf0U2LxvVP7LMfs6rC6UltihIgval3azO3gyDwEGVgsCMe1TmDiEkl6GdMKfRpaME6QxIYtzDQ==} | ||
| 2548 | engines: {node: ^14.17.0 || >=16.0.0} | 3034 | engines: {node: ^14.17.0 || >=16.0.0} |
| 2549 | peerDependencies: | 3035 | peerDependencies: |
| 2550 | eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 | 3036 | eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 |
| 2551 | dependencies: | 3037 | dependencies: |
| 2552 | - eslint: 8.31.0 | ||
| 2553 | - eslint-utils: 3.0.0_eslint@8.31.0 | 3038 | + eslint: 8.32.0 |
| 3039 | + eslint-utils: 3.0.0_eslint@8.32.0 | ||
| 2554 | natural-compare: 1.4.0 | 3040 | natural-compare: 1.4.0 |
| 2555 | nth-check: 2.1.1 | 3041 | nth-check: 2.1.1 |
| 2556 | - postcss-selector-parser: 6.0.10 | 3042 | + postcss-selector-parser: 6.0.11 |
| 2557 | semver: 7.3.8 | 3043 | semver: 7.3.8 |
| 2558 | - vue-eslint-parser: 9.1.0_eslint@8.31.0 | 3044 | + vue-eslint-parser: 9.1.0_eslint@8.32.0 |
| 2559 | xml-name-validator: 4.0.0 | 3045 | xml-name-validator: 4.0.0 |
| 2560 | transitivePeerDependencies: | 3046 | transitivePeerDependencies: |
| 2561 | - supports-color | 3047 | - supports-color |
| @@ -2584,13 +3070,13 @@ packages: | @@ -2584,13 +3070,13 @@ packages: | ||
| 2584 | eslint-visitor-keys: 1.3.0 | 3070 | eslint-visitor-keys: 1.3.0 |
| 2585 | dev: true | 3071 | dev: true |
| 2586 | 3072 | ||
| 2587 | - /eslint-utils/3.0.0_eslint@8.31.0: | 3073 | + /eslint-utils/3.0.0_eslint@8.32.0: |
| 2588 | resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} | 3074 | resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} |
| 2589 | engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} | 3075 | engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} |
| 2590 | peerDependencies: | 3076 | peerDependencies: |
| 2591 | eslint: '>=5' | 3077 | eslint: '>=5' |
| 2592 | dependencies: | 3078 | dependencies: |
| 2593 | - eslint: 8.31.0 | 3079 | + eslint: 8.32.0 |
| 2594 | eslint-visitor-keys: 2.1.0 | 3080 | eslint-visitor-keys: 2.1.0 |
| 2595 | dev: true | 3081 | dev: true |
| 2596 | 3082 | ||
| @@ -2609,8 +3095,8 @@ packages: | @@ -2609,8 +3095,8 @@ packages: | ||
| 2609 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | 3095 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
| 2610 | dev: true | 3096 | dev: true |
| 2611 | 3097 | ||
| 2612 | - /eslint/8.31.0: | ||
| 2613 | - resolution: {integrity: sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==} | 3098 | + /eslint/8.32.0: |
| 3099 | + resolution: {integrity: sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==} | ||
| 2614 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} | 3100 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} |
| 2615 | hasBin: true | 3101 | hasBin: true |
| 2616 | dependencies: | 3102 | dependencies: |
| @@ -2625,7 +3111,7 @@ packages: | @@ -2625,7 +3111,7 @@ packages: | ||
| 2625 | doctrine: 3.0.0 | 3111 | doctrine: 3.0.0 |
| 2626 | escape-string-regexp: 4.0.0 | 3112 | escape-string-regexp: 4.0.0 |
| 2627 | eslint-scope: 7.1.1 | 3113 | eslint-scope: 7.1.1 |
| 2628 | - eslint-utils: 3.0.0_eslint@8.31.0 | 3114 | + eslint-utils: 3.0.0_eslint@8.32.0 |
| 2629 | eslint-visitor-keys: 3.3.0 | 3115 | eslint-visitor-keys: 3.3.0 |
| 2630 | espree: 9.4.1 | 3116 | espree: 9.4.1 |
| 2631 | esquery: 1.4.0 | 3117 | esquery: 1.4.0 |
| @@ -2852,6 +3338,23 @@ packages: | @@ -2852,6 +3338,23 @@ packages: | ||
| 2852 | minimatch: 5.1.2 | 3338 | minimatch: 5.1.2 |
| 2853 | dev: true | 3339 | dev: true |
| 2854 | 3340 | ||
| 3341 | + /fill-range/4.0.0: | ||
| 3342 | + resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/fill-range/-/fill-range-4.0.0.tgz} | ||
| 3343 | + engines: {node: '>=0.10.0'} | ||
| 3344 | + dependencies: | ||
| 3345 | + extend-shallow: 2.0.1 | ||
| 3346 | + is-number: 3.0.0 | ||
| 3347 | + repeat-string: 1.6.1 | ||
| 3348 | + to-regex-range: 2.1.1 | ||
| 3349 | + dev: true | ||
| 3350 | + | ||
| 3351 | + /fill-range/7.0.1: | ||
| 3352 | + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/fill-range/-/fill-range-7.0.1.tgz} | ||
| 3353 | + engines: {node: '>=8'} | ||
| 3354 | + dependencies: | ||
| 3355 | + to-regex-range: 5.0.1 | ||
| 3356 | + dev: true | ||
| 3357 | + | ||
| 2855 | /find-up/4.1.0: | 3358 | /find-up/4.1.0: |
| 2856 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} | 3359 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} |
| 2857 | engines: {node: '>=8'} | 3360 | engines: {node: '>=8'} |
| @@ -2922,6 +3425,15 @@ packages: | @@ -2922,6 +3425,15 @@ packages: | ||
| 2922 | universalify: 2.0.0 | 3425 | universalify: 2.0.0 |
| 2923 | dev: true | 3426 | dev: true |
| 2924 | 3427 | ||
| 3428 | + /fs-extra/11.1.0: | ||
| 3429 | + resolution: {integrity: sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==} | ||
| 3430 | + engines: {node: '>=14.14'} | ||
| 3431 | + dependencies: | ||
| 3432 | + graceful-fs: 4.2.10 | ||
| 3433 | + jsonfile: 6.1.0 | ||
| 3434 | + universalify: 2.0.0 | ||
| 3435 | + dev: true | ||
| 3436 | + | ||
| 2925 | /fs.realpath/1.0.0: | 3437 | /fs.realpath/1.0.0: |
| 2926 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} | 3438 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} |
| 2927 | dev: true | 3439 | dev: true |
| @@ -2937,6 +3449,11 @@ packages: | @@ -2937,6 +3449,11 @@ packages: | ||
| 2937 | /function-bind/1.1.1: | 3449 | /function-bind/1.1.1: |
| 2938 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} | 3450 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} |
| 2939 | 3451 | ||
| 3452 | + /gensync/1.0.0-beta.2: | ||
| 3453 | + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/gensync/-/gensync-1.0.0-beta.2.tgz} | ||
| 3454 | + engines: {node: '>=6.9.0'} | ||
| 3455 | + dev: true | ||
| 3456 | + | ||
| 2940 | /get-caller-file/2.0.5: | 3457 | /get-caller-file/2.0.5: |
| 2941 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} | 3458 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} |
| 2942 | engines: {node: 6.* || 8.* || >= 10.*} | 3459 | engines: {node: 6.* || 8.* || >= 10.*} |
| @@ -3114,7 +3631,7 @@ packages: | @@ -3114,7 +3631,7 @@ packages: | ||
| 3114 | resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} | 3631 | resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} |
| 3115 | engines: {node: '>=0.10.0'} | 3632 | engines: {node: '>=0.10.0'} |
| 3116 | dependencies: | 3633 | dependencies: |
| 3117 | - is-number: registry.npmmirror.com/is-number/3.0.0 | 3634 | + is-number: 3.0.0 |
| 3118 | kind-of: 4.0.0 | 3635 | kind-of: 4.0.0 |
| 3119 | dev: true | 3636 | dev: true |
| 3120 | 3637 | ||
| @@ -3133,7 +3650,7 @@ packages: | @@ -3133,7 +3650,7 @@ packages: | ||
| 3133 | resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} | 3650 | resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} |
| 3134 | dependencies: | 3651 | dependencies: |
| 3135 | capital-case: 1.0.4 | 3652 | capital-case: 1.0.4 |
| 3136 | - tslib: registry.npmmirror.com/tslib/2.4.1 | 3653 | + tslib: 2.4.1 |
| 3137 | dev: true | 3654 | dev: true |
| 3138 | 3655 | ||
| 3139 | /hosted-git-info/2.8.9: | 3656 | /hosted-git-info/2.8.9: |
| @@ -3144,7 +3661,7 @@ packages: | @@ -3144,7 +3661,7 @@ packages: | ||
| 3144 | resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} | 3661 | resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} |
| 3145 | engines: {node: '>=10'} | 3662 | engines: {node: '>=10'} |
| 3146 | dependencies: | 3663 | dependencies: |
| 3147 | - lru-cache: registry.npmmirror.com/lru-cache/6.0.0 | 3664 | + lru-cache: 6.0.0 |
| 3148 | dev: true | 3665 | dev: true |
| 3149 | 3666 | ||
| 3150 | /html-tags/3.2.0: | 3667 | /html-tags/3.2.0: |
| @@ -3357,6 +3874,18 @@ packages: | @@ -3357,6 +3874,18 @@ packages: | ||
| 3357 | resolution: {integrity: sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==} | 3874 | resolution: {integrity: sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==} |
| 3358 | dev: false | 3875 | dev: false |
| 3359 | 3876 | ||
| 3877 | + /is-number/3.0.0: | ||
| 3878 | + resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/is-number/-/is-number-3.0.0.tgz} | ||
| 3879 | + engines: {node: '>=0.10.0'} | ||
| 3880 | + dependencies: | ||
| 3881 | + kind-of: 3.2.2 | ||
| 3882 | + dev: true | ||
| 3883 | + | ||
| 3884 | + /is-number/7.0.0: | ||
| 3885 | + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/is-number/-/is-number-7.0.0.tgz} | ||
| 3886 | + engines: {node: '>=0.12.0'} | ||
| 3887 | + dev: true | ||
| 3888 | + | ||
| 3360 | /is-obj/2.0.0: | 3889 | /is-obj/2.0.0: |
| 3361 | resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} | 3890 | resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} |
| 3362 | engines: {node: '>=8'} | 3891 | engines: {node: '>=8'} |
| @@ -3440,6 +3969,11 @@ packages: | @@ -3440,6 +3969,11 @@ packages: | ||
| 3440 | minimatch: 3.1.2 | 3969 | minimatch: 3.1.2 |
| 3441 | dev: true | 3970 | dev: true |
| 3442 | 3971 | ||
| 3972 | + /jiti/1.16.0: | ||
| 3973 | + resolution: {integrity: sha512-L3BJStEf5NAqNuzrpfbN71dp43mYIcBUlCRea/vdyv5dW/AYa1d4bpelko4SHdY3I6eN9Wzyasxirj1/vv5kmg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/jiti/-/jiti-1.16.0.tgz} | ||
| 3974 | + hasBin: true | ||
| 3975 | + dev: true | ||
| 3976 | + | ||
| 3443 | /js-base64/2.6.4: | 3977 | /js-base64/2.6.4: |
| 3444 | resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==} | 3978 | resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==} |
| 3445 | dev: true | 3979 | dev: true |
| @@ -3449,7 +3983,7 @@ packages: | @@ -3449,7 +3983,7 @@ packages: | ||
| 3449 | dev: true | 3983 | dev: true |
| 3450 | 3984 | ||
| 3451 | /js-tokens/4.0.0: | 3985 | /js-tokens/4.0.0: |
| 3452 | - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} | 3986 | + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/js-tokens/-/js-tokens-4.0.0.tgz} |
| 3453 | dev: true | 3987 | dev: true |
| 3454 | 3988 | ||
| 3455 | /js-tokens/8.0.0: | 3989 | /js-tokens/8.0.0: |
| @@ -3467,6 +4001,12 @@ packages: | @@ -3467,6 +4001,12 @@ packages: | ||
| 3467 | resolution: {integrity: sha512-dVvV54GdFuJgmEKn+oBiaifDMen4p6o6j/lJh0OVMcouME8sST0bJ7bldIgKBQk4za0zyGn0/pm4vOznR25mLw==} | 4001 | resolution: {integrity: sha512-dVvV54GdFuJgmEKn+oBiaifDMen4p6o6j/lJh0OVMcouME8sST0bJ7bldIgKBQk4za0zyGn0/pm4vOznR25mLw==} |
| 3468 | dev: false | 4002 | dev: false |
| 3469 | 4003 | ||
| 4004 | + /jsesc/2.5.2: | ||
| 4005 | + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/jsesc/-/jsesc-2.5.2.tgz} | ||
| 4006 | + engines: {node: '>=4'} | ||
| 4007 | + hasBin: true | ||
| 4008 | + dev: true | ||
| 4009 | + | ||
| 3470 | /json-parse-even-better-errors/2.3.1: | 4010 | /json-parse-even-better-errors/2.3.1: |
| 3471 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} | 4011 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} |
| 3472 | dev: true | 4012 | dev: true |
| @@ -3510,7 +4050,7 @@ packages: | @@ -3510,7 +4050,7 @@ packages: | ||
| 3510 | /jsonfile/6.1.0: | 4050 | /jsonfile/6.1.0: |
| 3511 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} | 4051 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} |
| 3512 | dependencies: | 4052 | dependencies: |
| 3513 | - universalify: registry.npmmirror.com/universalify/2.0.0 | 4053 | + universalify: 2.0.0 |
| 3514 | optionalDependencies: | 4054 | optionalDependencies: |
| 3515 | graceful-fs: 4.2.10 | 4055 | graceful-fs: 4.2.10 |
| 3516 | dev: true | 4056 | dev: true |
| @@ -3548,6 +4088,10 @@ packages: | @@ -3548,6 +4088,10 @@ packages: | ||
| 3548 | resolution: {integrity: sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==} | 4088 | resolution: {integrity: sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==} |
| 3549 | dev: true | 4089 | dev: true |
| 3550 | 4090 | ||
| 4091 | + /kolorist/1.6.0: | ||
| 4092 | + resolution: {integrity: sha512-dLkz37Ab97HWMx9KTes3Tbi3D1ln9fCAy2zr2YVExJasDRPGRaKcoE4fycWNtnCAJfjFqe0cnY+f8KT2JePEXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/kolorist/-/kolorist-1.6.0.tgz} | ||
| 4093 | + dev: true | ||
| 4094 | + | ||
| 3551 | /levn/0.4.1: | 4095 | /levn/0.4.1: |
| 3552 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} | 4096 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} |
| 3553 | engines: {node: '>= 0.8.0'} | 4097 | engines: {node: '>= 0.8.0'} |
| @@ -3728,7 +4272,7 @@ packages: | @@ -3728,7 +4272,7 @@ packages: | ||
| 3728 | /lower-case/2.0.2: | 4272 | /lower-case/2.0.2: |
| 3729 | resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} | 4273 | resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} |
| 3730 | dependencies: | 4274 | dependencies: |
| 3731 | - tslib: registry.npmmirror.com/tslib/2.4.1 | 4275 | + tslib: 2.4.1 |
| 3732 | dev: true | 4276 | dev: true |
| 3733 | 4277 | ||
| 3734 | /lru-cache/6.0.0: | 4278 | /lru-cache/6.0.0: |
| @@ -3742,6 +4286,12 @@ packages: | @@ -3742,6 +4286,12 @@ packages: | ||
| 3742 | resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} | 4286 | resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} |
| 3743 | dependencies: | 4287 | dependencies: |
| 3744 | sourcemap-codec: 1.4.8 | 4288 | sourcemap-codec: 1.4.8 |
| 4289 | + | ||
| 4290 | + /magic-string/0.27.0: | ||
| 4291 | + resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/magic-string/-/magic-string-0.27.0.tgz} | ||
| 4292 | + engines: {node: '>=12'} | ||
| 4293 | + dependencies: | ||
| 4294 | + '@jridgewell/sourcemap-codec': 1.4.14 | ||
| 3745 | dev: true | 4295 | dev: true |
| 3746 | 4296 | ||
| 3747 | /make-error/1.3.6: | 4297 | /make-error/1.3.6: |
| @@ -3839,7 +4389,7 @@ packages: | @@ -3839,7 +4389,7 @@ packages: | ||
| 3839 | dependencies: | 4389 | dependencies: |
| 3840 | arr-diff: 4.0.0 | 4390 | arr-diff: 4.0.0 |
| 3841 | array-unique: 0.3.2 | 4391 | array-unique: 0.3.2 |
| 3842 | - braces: registry.npmmirror.com/braces/2.3.2 | 4392 | + braces: 2.3.2 |
| 3843 | define-property: 1.0.0 | 4393 | define-property: 1.0.0 |
| 3844 | extend-shallow: 2.0.1 | 4394 | extend-shallow: 2.0.1 |
| 3845 | extglob: 2.0.4 | 4395 | extglob: 2.0.4 |
| @@ -3989,7 +4539,19 @@ packages: | @@ -3989,7 +4539,19 @@ packages: | ||
| 3989 | resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} | 4539 | resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} |
| 3990 | dependencies: | 4540 | dependencies: |
| 3991 | lower-case: 2.0.2 | 4541 | lower-case: 2.0.2 |
| 3992 | - tslib: registry.npmmirror.com/tslib/2.4.1 | 4542 | + tslib: 2.4.1 |
| 4543 | + dev: true | ||
| 4544 | + | ||
| 4545 | + /node-fetch/2.6.7: | ||
| 4546 | + resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/node-fetch/-/node-fetch-2.6.7.tgz} | ||
| 4547 | + engines: {node: 4.x || >=6.0.0} | ||
| 4548 | + peerDependencies: | ||
| 4549 | + encoding: ^0.1.0 | ||
| 4550 | + peerDependenciesMeta: | ||
| 4551 | + encoding: | ||
| 4552 | + optional: true | ||
| 4553 | + dependencies: | ||
| 4554 | + whatwg-url: 5.0.0 | ||
| 3993 | dev: true | 4555 | dev: true |
| 3994 | 4556 | ||
| 3995 | /node-releases/2.0.6: | 4557 | /node-releases/2.0.6: |
| @@ -4011,7 +4573,7 @@ packages: | @@ -4011,7 +4573,7 @@ packages: | ||
| 4011 | dependencies: | 4573 | dependencies: |
| 4012 | hosted-git-info: 4.1.0 | 4574 | hosted-git-info: 4.1.0 |
| 4013 | is-core-module: 2.11.0 | 4575 | is-core-module: 2.11.0 |
| 4014 | - semver: registry.npmmirror.com/semver/7.3.8 | 4576 | + semver: 7.3.8 |
| 4015 | validate-npm-package-license: 3.0.4 | 4577 | validate-npm-package-license: 3.0.4 |
| 4016 | dev: true | 4578 | dev: true |
| 4017 | 4579 | ||
| @@ -4157,7 +4719,7 @@ packages: | @@ -4157,7 +4719,7 @@ packages: | ||
| 4157 | resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} | 4719 | resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} |
| 4158 | dependencies: | 4720 | dependencies: |
| 4159 | dot-case: 3.0.4 | 4721 | dot-case: 3.0.4 |
| 4160 | - tslib: registry.npmmirror.com/tslib/2.4.1 | 4722 | + tslib: 2.4.1 |
| 4161 | dev: true | 4723 | dev: true |
| 4162 | 4724 | ||
| 4163 | /parent-module/1.0.1: | 4725 | /parent-module/1.0.1: |
| @@ -4181,7 +4743,7 @@ packages: | @@ -4181,7 +4743,7 @@ packages: | ||
| 4181 | resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} | 4743 | resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} |
| 4182 | dependencies: | 4744 | dependencies: |
| 4183 | no-case: 3.0.4 | 4745 | no-case: 3.0.4 |
| 4184 | - tslib: registry.npmmirror.com/tslib/2.4.1 | 4746 | + tslib: 2.4.1 |
| 4185 | dev: true | 4747 | dev: true |
| 4186 | 4748 | ||
| 4187 | /pascalcase/0.1.1: | 4749 | /pascalcase/0.1.1: |
| @@ -4193,7 +4755,7 @@ packages: | @@ -4193,7 +4755,7 @@ packages: | ||
| 4193 | resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} | 4755 | resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} |
| 4194 | dependencies: | 4756 | dependencies: |
| 4195 | dot-case: 3.0.4 | 4757 | dot-case: 3.0.4 |
| 4196 | - tslib: registry.npmmirror.com/tslib/2.4.1 | 4758 | + tslib: 2.4.1 |
| 4197 | dev: true | 4759 | dev: true |
| 4198 | 4760 | ||
| 4199 | /path-exists/4.0.0: | 4761 | /path-exists/4.0.0: |
| @@ -4234,7 +4796,6 @@ packages: | @@ -4234,7 +4796,6 @@ packages: | ||
| 4234 | 4796 | ||
| 4235 | /picocolors/1.0.0: | 4797 | /picocolors/1.0.0: |
| 4236 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} | 4798 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} |
| 4237 | - dev: true | ||
| 4238 | 4799 | ||
| 4239 | /picomatch/2.3.1: | 4800 | /picomatch/2.3.1: |
| 4240 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} | 4801 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} |
| @@ -4247,6 +4808,24 @@ packages: | @@ -4247,6 +4808,24 @@ packages: | ||
| 4247 | hasBin: true | 4808 | hasBin: true |
| 4248 | dev: true | 4809 | dev: true |
| 4249 | 4810 | ||
| 4811 | + /pinia/2.0.29_prq2uz4lho2pwp6irk4cfkrxwu: | ||
| 4812 | + resolution: {integrity: sha512-5z/KpFecq/cIgfeTnulJXldiLcTITRkTe3N58RKYSj0Pc1EdR6oyCdnf5A9jLoVwBqX5LtHhd0kGlpzWvk9oiQ==} | ||
| 4813 | + peerDependencies: | ||
| 4814 | + '@vue/composition-api': ^1.4.0 | ||
| 4815 | + typescript: '>=4.4.4' | ||
| 4816 | + vue: ^2.6.14 || ^3.2.0 | ||
| 4817 | + peerDependenciesMeta: | ||
| 4818 | + '@vue/composition-api': | ||
| 4819 | + optional: true | ||
| 4820 | + typescript: | ||
| 4821 | + optional: true | ||
| 4822 | + dependencies: | ||
| 4823 | + '@vue/devtools-api': 6.4.5 | ||
| 4824 | + typescript: 4.9.4 | ||
| 4825 | + vue: 3.2.45 | ||
| 4826 | + vue-demi: 0.13.11_vue@3.2.45 | ||
| 4827 | + dev: false | ||
| 4828 | + | ||
| 4250 | /pngjs/5.0.0: | 4829 | /pngjs/5.0.0: |
| 4251 | resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} | 4830 | resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} |
| 4252 | engines: {node: '>=10.13.0'} | 4831 | engines: {node: '>=10.13.0'} |
| @@ -4263,8 +4842,8 @@ packages: | @@ -4263,8 +4842,8 @@ packages: | ||
| 4263 | dependencies: | 4842 | dependencies: |
| 4264 | htmlparser2: 8.0.1 | 4843 | htmlparser2: 8.0.1 |
| 4265 | js-tokens: 8.0.0 | 4844 | js-tokens: 8.0.0 |
| 4266 | - postcss: registry.npmmirror.com/postcss/8.4.20 | ||
| 4267 | - postcss-safe-parser: 6.0.0_postcss@8.4.20 | 4845 | + postcss: 8.4.21 |
| 4846 | + postcss-safe-parser: 6.0.0_postcss@8.4.21 | ||
| 4268 | dev: true | 4847 | dev: true |
| 4269 | 4848 | ||
| 4270 | /postcss-media-query-parser/0.2.3: | 4849 | /postcss-media-query-parser/0.2.3: |
| @@ -4283,30 +4862,22 @@ packages: | @@ -4283,30 +4862,22 @@ packages: | ||
| 4283 | resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} | 4862 | resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} |
| 4284 | dev: true | 4863 | dev: true |
| 4285 | 4864 | ||
| 4286 | - /postcss-safe-parser/6.0.0_postcss@8.4.20: | 4865 | + /postcss-safe-parser/6.0.0_postcss@8.4.21: |
| 4287 | resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} | 4866 | resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} |
| 4288 | engines: {node: '>=12.0'} | 4867 | engines: {node: '>=12.0'} |
| 4289 | peerDependencies: | 4868 | peerDependencies: |
| 4290 | postcss: ^8.3.3 | 4869 | postcss: ^8.3.3 |
| 4291 | dependencies: | 4870 | dependencies: |
| 4292 | - postcss: registry.npmmirror.com/postcss/8.4.20 | 4871 | + postcss: 8.4.21 |
| 4293 | dev: true | 4872 | dev: true |
| 4294 | 4873 | ||
| 4295 | - /postcss-scss/4.0.6_postcss@8.4.20: | 4874 | + /postcss-scss/4.0.6_postcss@8.4.21: |
| 4296 | resolution: {integrity: sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==} | 4875 | resolution: {integrity: sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==} |
| 4297 | engines: {node: '>=12.0'} | 4876 | engines: {node: '>=12.0'} |
| 4298 | peerDependencies: | 4877 | peerDependencies: |
| 4299 | postcss: ^8.4.19 | 4878 | postcss: ^8.4.19 |
| 4300 | dependencies: | 4879 | dependencies: |
| 4301 | - postcss: registry.npmmirror.com/postcss/8.4.20 | ||
| 4302 | - dev: true | ||
| 4303 | - | ||
| 4304 | - /postcss-selector-parser/6.0.10: | ||
| 4305 | - resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} | ||
| 4306 | - engines: {node: '>=4'} | ||
| 4307 | - dependencies: | ||
| 4308 | - cssesc: 3.0.0 | ||
| 4309 | - util-deprecate: 1.0.2 | 4880 | + postcss: 8.4.21 |
| 4310 | dev: true | 4881 | dev: true |
| 4311 | 4882 | ||
| 4312 | /postcss-selector-parser/6.0.11: | 4883 | /postcss-selector-parser/6.0.11: |
| @@ -4317,12 +4888,12 @@ packages: | @@ -4317,12 +4888,12 @@ packages: | ||
| 4317 | util-deprecate: 1.0.2 | 4888 | util-deprecate: 1.0.2 |
| 4318 | dev: true | 4889 | dev: true |
| 4319 | 4890 | ||
| 4320 | - /postcss-sorting/7.0.1_postcss@8.4.20: | ||
| 4321 | - resolution: {integrity: sha512-iLBFYz6VRYyLJEJsBJ8M3TCqNcckVzz4wFounSc5Oez35ogE/X+aoC5fFu103Ot7NyvjU3/xqIXn93Gp3kJk4g==} | 4891 | + /postcss-sorting/8.0.1_postcss@8.4.21: |
| 4892 | + resolution: {integrity: sha512-go9Zoxx7KQH+uLrJ9xa5wRErFeXu01ydA6O8m7koPXkmAN7Ts//eRcIqjo0stBR4+Nir2gMYDOWAOx7O5EPUZA==} | ||
| 4322 | peerDependencies: | 4893 | peerDependencies: |
| 4323 | - postcss: ^8.3.9 | 4894 | + postcss: ^8.4.20 |
| 4324 | dependencies: | 4895 | dependencies: |
| 4325 | - postcss: registry.npmmirror.com/postcss/8.4.20 | 4896 | + postcss: 8.4.21 |
| 4326 | dev: true | 4897 | dev: true |
| 4327 | 4898 | ||
| 4328 | /postcss-value-parser/4.2.0: | 4899 | /postcss-value-parser/4.2.0: |
| @@ -4336,17 +4907,16 @@ packages: | @@ -4336,17 +4907,16 @@ packages: | ||
| 4336 | chalk: 1.1.3 | 4907 | chalk: 1.1.3 |
| 4337 | js-base64: 2.6.4 | 4908 | js-base64: 2.6.4 |
| 4338 | source-map: 0.5.7 | 4909 | source-map: 0.5.7 |
| 4339 | - supports-color: registry.npmmirror.com/supports-color/3.2.3 | 4910 | + supports-color: 3.2.3 |
| 4340 | dev: true | 4911 | dev: true |
| 4341 | 4912 | ||
| 4342 | - /postcss/8.4.20: | ||
| 4343 | - resolution: {integrity: sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==} | 4913 | + /postcss/8.4.21: |
| 4914 | + resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} | ||
| 4344 | engines: {node: ^10 || ^12 || >=14} | 4915 | engines: {node: ^10 || ^12 || >=14} |
| 4345 | dependencies: | 4916 | dependencies: |
| 4346 | nanoid: 3.3.4 | 4917 | nanoid: 3.3.4 |
| 4347 | picocolors: 1.0.0 | 4918 | picocolors: 1.0.0 |
| 4348 | source-map-js: 1.0.2 | 4919 | source-map-js: 1.0.2 |
| 4349 | - dev: true | ||
| 4350 | 4920 | ||
| 4351 | /posthtml-parser/0.2.1: | 4921 | /posthtml-parser/0.2.1: |
| 4352 | resolution: {integrity: sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==} | 4922 | resolution: {integrity: sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==} |
| @@ -4399,8 +4969,8 @@ packages: | @@ -4399,8 +4969,8 @@ packages: | ||
| 4399 | fast-diff: 1.2.0 | 4969 | fast-diff: 1.2.0 |
| 4400 | dev: true | 4970 | dev: true |
| 4401 | 4971 | ||
| 4402 | - /prettier/2.8.1: | ||
| 4403 | - resolution: {integrity: sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==} | 4972 | + /prettier/2.8.3: |
| 4973 | + resolution: {integrity: sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==} | ||
| 4404 | engines: {node: '>=10.13.0'} | 4974 | engines: {node: '>=10.13.0'} |
| 4405 | hasBin: true | 4975 | hasBin: true |
| 4406 | dev: true | 4976 | dev: true |
| @@ -4523,6 +5093,9 @@ packages: | @@ -4523,6 +5093,9 @@ packages: | ||
| 4523 | strip-indent: 3.0.0 | 5093 | strip-indent: 3.0.0 |
| 4524 | dev: true | 5094 | dev: true |
| 4525 | 5095 | ||
| 5096 | + /regenerator-runtime/0.13.11: | ||
| 5097 | + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz} | ||
| 5098 | + | ||
| 4526 | /regex-not/1.0.2: | 5099 | /regex-not/1.0.2: |
| 4527 | resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} | 5100 | resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} |
| 4528 | engines: {node: '>=0.10.0'} | 5101 | engines: {node: '>=0.10.0'} |
| @@ -4619,6 +5192,23 @@ packages: | @@ -4619,6 +5192,23 @@ packages: | ||
| 4619 | glob: 7.2.3 | 5192 | glob: 7.2.3 |
| 4620 | dev: true | 5193 | dev: true |
| 4621 | 5194 | ||
| 5195 | + /rimraf/4.0.7: | ||
| 5196 | + resolution: {integrity: sha512-CUEDDrZvc0swDgVdXGiv3FcYYQMpJxjvSGt85Amj6yU+MCVWurrLCeLiJDdJPHCzNJnwuebBEdcO//eP11Xa7w==} | ||
| 5197 | + engines: {node: '>=14'} | ||
| 5198 | + hasBin: true | ||
| 5199 | + dev: true | ||
| 5200 | + | ||
| 5201 | + /rollup-plugin-purge-icons/0.9.1: | ||
| 5202 | + resolution: {integrity: sha512-hRDKBsPUz47UMdBufki2feTmBF2ClEJlYqL7N6vpVAHSLd7V2BJUaNKOF7YYbLMofVVF+9hm44YSkYO6k9hUgg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/rollup-plugin-purge-icons/-/rollup-plugin-purge-icons-0.9.1.tgz} | ||
| 5203 | + engines: {node: '>= 12'} | ||
| 5204 | + dependencies: | ||
| 5205 | + '@purge-icons/core': 0.9.1 | ||
| 5206 | + '@purge-icons/generated': 0.9.0 | ||
| 5207 | + transitivePeerDependencies: | ||
| 5208 | + - encoding | ||
| 5209 | + - supports-color | ||
| 5210 | + dev: true | ||
| 5211 | + | ||
| 4622 | /rollup/2.79.1: | 5212 | /rollup/2.79.1: |
| 4623 | resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} | 5213 | resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} |
| 4624 | engines: {node: '>=10.0.0'} | 5214 | engines: {node: '>=10.0.0'} |
| @@ -4627,8 +5217,8 @@ packages: | @@ -4627,8 +5217,8 @@ packages: | ||
| 4627 | fsevents: 2.3.2 | 5217 | fsevents: 2.3.2 |
| 4628 | dev: true | 5218 | dev: true |
| 4629 | 5219 | ||
| 4630 | - /rollup/3.9.1: | ||
| 4631 | - resolution: {integrity: sha512-GswCYHXftN8ZKGVgQhTFUJB/NBXxrRGgO2NCy6E8s1rwEJ4Q9/VttNqcYfEvx4dTo4j58YqdC3OVztPzlKSX8w==} | 5220 | + /rollup/3.10.0: |
| 5221 | + resolution: {integrity: sha512-JmRYz44NjC1MjVF2VKxc0M1a97vn+cDxeqWmnwyAF4FvpjK8YFdHpaqvQB+3IxCvX05vJxKZkoMDU8TShhmJVA==} | ||
| 4632 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} | 5222 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} |
| 4633 | hasBin: true | 5223 | hasBin: true |
| 4634 | optionalDependencies: | 5224 | optionalDependencies: |
| @@ -4644,7 +5234,7 @@ packages: | @@ -4644,7 +5234,7 @@ packages: | ||
| 4644 | /rxjs/7.5.7: | 5234 | /rxjs/7.5.7: |
| 4645 | resolution: {integrity: sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==} | 5235 | resolution: {integrity: sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==} |
| 4646 | dependencies: | 5236 | dependencies: |
| 4647 | - tslib: registry.npmmirror.com/tslib/2.4.1 | 5237 | + tslib: 2.4.1 |
| 4648 | dev: true | 5238 | dev: true |
| 4649 | 5239 | ||
| 4650 | /safe-buffer/5.2.1: | 5240 | /safe-buffer/5.2.1: |
| @@ -4695,7 +5285,7 @@ packages: | @@ -4695,7 +5285,7 @@ packages: | ||
| 4695 | resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} | 5285 | resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} |
| 4696 | dependencies: | 5286 | dependencies: |
| 4697 | no-case: 3.0.4 | 5287 | no-case: 3.0.4 |
| 4698 | - tslib: registry.npmmirror.com/tslib/2.4.1 | 5288 | + tslib: 2.4.1 |
| 4699 | upper-case-first: 2.0.2 | 5289 | upper-case-first: 2.0.2 |
| 4700 | dev: true | 5290 | dev: true |
| 4701 | 5291 | ||
| @@ -4772,7 +5362,7 @@ packages: | @@ -4772,7 +5362,7 @@ packages: | ||
| 4772 | resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} | 5362 | resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} |
| 4773 | engines: {node: '>=10'} | 5363 | engines: {node: '>=10'} |
| 4774 | dependencies: | 5364 | dependencies: |
| 4775 | - ansi-styles: registry.npmmirror.com/ansi-styles/4.3.0 | 5365 | + ansi-styles: 4.3.0 |
| 4776 | astral-regex: 2.0.0 | 5366 | astral-regex: 2.0.0 |
| 4777 | is-fullwidth-code-point: 3.0.0 | 5367 | is-fullwidth-code-point: 3.0.0 |
| 4778 | dev: true | 5368 | dev: true |
| @@ -4794,7 +5384,7 @@ packages: | @@ -4794,7 +5384,7 @@ packages: | ||
| 4794 | resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} | 5384 | resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} |
| 4795 | dependencies: | 5385 | dependencies: |
| 4796 | dot-case: 3.0.4 | 5386 | dot-case: 3.0.4 |
| 4797 | - tslib: registry.npmmirror.com/tslib/2.4.1 | 5387 | + tslib: 2.4.1 |
| 4798 | dev: true | 5388 | dev: true |
| 4799 | 5389 | ||
| 4800 | /snapdragon-node/2.1.1: | 5390 | /snapdragon-node/2.1.1: |
| @@ -4832,7 +5422,6 @@ packages: | @@ -4832,7 +5422,6 @@ packages: | ||
| 4832 | /source-map-js/1.0.2: | 5422 | /source-map-js/1.0.2: |
| 4833 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} | 5423 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} |
| 4834 | engines: {node: '>=0.10.0'} | 5424 | engines: {node: '>=0.10.0'} |
| 4835 | - dev: true | ||
| 4836 | 5425 | ||
| 4837 | /source-map-resolve/0.5.3: | 5426 | /source-map-resolve/0.5.3: |
| 4838 | resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} | 5427 | resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} |
| @@ -5039,13 +5628,13 @@ packages: | @@ -5039,13 +5628,13 @@ packages: | ||
| 5039 | stylelint-config-recommended: 9.0.0_stylelint@14.16.1 | 5628 | stylelint-config-recommended: 9.0.0_stylelint@14.16.1 |
| 5040 | dev: true | 5629 | dev: true |
| 5041 | 5630 | ||
| 5042 | - /stylelint-order/5.0.0_stylelint@14.16.1: | ||
| 5043 | - resolution: {integrity: sha512-OWQ7pmicXufDw5BlRqzdz3fkGKJPgLyDwD1rFY3AIEfIH/LQY38Vu/85v8/up0I+VPiuGRwbc2Hg3zLAsJaiyw==} | 5631 | + /stylelint-order/6.0.1_stylelint@14.16.1: |
| 5632 | + resolution: {integrity: sha512-C9gJDZArRBZvn+4MPgggwYTp7dK49WPnYa5+6tBEkZnW/YWj4xBVNJdQjIik14w5orlF9RqFpYDHN0FPWIFOSQ==} | ||
| 5044 | peerDependencies: | 5633 | peerDependencies: |
| 5045 | stylelint: ^14.0.0 | 5634 | stylelint: ^14.0.0 |
| 5046 | dependencies: | 5635 | dependencies: |
| 5047 | - postcss: registry.npmmirror.com/postcss/8.4.20 | ||
| 5048 | - postcss-sorting: 7.0.1_postcss@8.4.20 | 5636 | + postcss: 8.4.21 |
| 5637 | + postcss-sorting: 8.0.1_postcss@8.4.21 | ||
| 5049 | stylelint: 14.16.1 | 5638 | stylelint: 14.16.1 |
| 5050 | dev: true | 5639 | dev: true |
| 5051 | 5640 | ||
| @@ -5054,7 +5643,7 @@ packages: | @@ -5054,7 +5643,7 @@ packages: | ||
| 5054 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} | 5643 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} |
| 5055 | hasBin: true | 5644 | hasBin: true |
| 5056 | dependencies: | 5645 | dependencies: |
| 5057 | - '@csstools/selector-specificity': 2.0.2_2xshye3abirqjlplmebvmaxyna | 5646 | + '@csstools/selector-specificity': 2.0.2_wajs5nedgkikc5pcuwett7legi |
| 5058 | balanced-match: 2.0.0 | 5647 | balanced-match: 2.0.0 |
| 5059 | colord: 2.9.3 | 5648 | colord: 2.9.3 |
| 5060 | cosmiconfig: 7.1.0 | 5649 | cosmiconfig: 7.1.0 |
| @@ -5077,10 +5666,10 @@ packages: | @@ -5077,10 +5666,10 @@ packages: | ||
| 5077 | micromatch: 4.0.5 | 5666 | micromatch: 4.0.5 |
| 5078 | normalize-path: 3.0.0 | 5667 | normalize-path: 3.0.0 |
| 5079 | picocolors: 1.0.0 | 5668 | picocolors: 1.0.0 |
| 5080 | - postcss: 8.4.20 | 5669 | + postcss: 8.4.21 |
| 5081 | postcss-media-query-parser: 0.2.3 | 5670 | postcss-media-query-parser: 0.2.3 |
| 5082 | postcss-resolve-nested-selector: 0.1.1 | 5671 | postcss-resolve-nested-selector: 0.1.1 |
| 5083 | - postcss-safe-parser: 6.0.0_postcss@8.4.20 | 5672 | + postcss-safe-parser: 6.0.0_postcss@8.4.21 |
| 5084 | postcss-selector-parser: 6.0.11 | 5673 | postcss-selector-parser: 6.0.11 |
| 5085 | postcss-value-parser: 4.2.0 | 5674 | postcss-value-parser: 4.2.0 |
| 5086 | resolve-from: 5.0.0 | 5675 | resolve-from: 5.0.0 |
| @@ -5101,6 +5690,13 @@ packages: | @@ -5101,6 +5690,13 @@ packages: | ||
| 5101 | engines: {node: '>=0.8.0'} | 5690 | engines: {node: '>=0.8.0'} |
| 5102 | dev: true | 5691 | dev: true |
| 5103 | 5692 | ||
| 5693 | + /supports-color/3.2.3: | ||
| 5694 | + resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==} | ||
| 5695 | + engines: {node: '>=0.8.0'} | ||
| 5696 | + dependencies: | ||
| 5697 | + has-flag: 1.0.0 | ||
| 5698 | + dev: true | ||
| 5699 | + | ||
| 5104 | /supports-color/5.5.0: | 5700 | /supports-color/5.5.0: |
| 5105 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} | 5701 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} |
| 5106 | engines: {node: '>=4'} | 5702 | engines: {node: '>=4'} |
| @@ -5162,10 +5758,14 @@ packages: | @@ -5162,10 +5758,14 @@ packages: | ||
| 5162 | css-select: 4.3.0 | 5758 | css-select: 4.3.0 |
| 5163 | css-tree: 1.1.3 | 5759 | css-tree: 1.1.3 |
| 5164 | csso: 4.2.0 | 5760 | csso: 4.2.0 |
| 5165 | - picocolors: registry.npmmirror.com/picocolors/1.0.0 | 5761 | + picocolors: 1.0.0 |
| 5166 | stable: 0.1.8 | 5762 | stable: 0.1.8 |
| 5167 | dev: true | 5763 | dev: true |
| 5168 | 5764 | ||
| 5765 | + /systemjs/6.13.0: | ||
| 5766 | + resolution: {integrity: sha512-P3cgh2bpaPvAO2NE3uRp/n6hmk4xPX4DQf+UzTlCAycssKdqhp6hjw+ENWe+aUS7TogKRFtptMosTSFeC6R55g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/systemjs/-/systemjs-6.13.0.tgz} | ||
| 5767 | + dev: true | ||
| 5768 | + | ||
| 5169 | /table/6.8.1: | 5769 | /table/6.8.1: |
| 5170 | resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} | 5770 | resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} |
| 5171 | engines: {node: '>=10.0.0'} | 5771 | engines: {node: '>=10.0.0'} |
| @@ -5212,7 +5812,7 @@ packages: | @@ -5212,7 +5812,7 @@ packages: | ||
| 5212 | dev: false | 5812 | dev: false |
| 5213 | 5813 | ||
| 5214 | /to-fast-properties/2.0.0: | 5814 | /to-fast-properties/2.0.0: |
| 5215 | - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} | 5815 | + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz} |
| 5216 | engines: {node: '>=4'} | 5816 | engines: {node: '>=4'} |
| 5217 | 5817 | ||
| 5218 | /to-object-path/0.3.0: | 5818 | /to-object-path/0.3.0: |
| @@ -5222,6 +5822,21 @@ packages: | @@ -5222,6 +5822,21 @@ packages: | ||
| 5222 | kind-of: 3.2.2 | 5822 | kind-of: 3.2.2 |
| 5223 | dev: true | 5823 | dev: true |
| 5224 | 5824 | ||
| 5825 | + /to-regex-range/2.1.1: | ||
| 5826 | + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/to-regex-range/-/to-regex-range-2.1.1.tgz} | ||
| 5827 | + engines: {node: '>=0.10.0'} | ||
| 5828 | + dependencies: | ||
| 5829 | + is-number: 3.0.0 | ||
| 5830 | + repeat-string: 1.6.1 | ||
| 5831 | + dev: true | ||
| 5832 | + | ||
| 5833 | + /to-regex-range/5.0.1: | ||
| 5834 | + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/to-regex-range/-/to-regex-range-5.0.1.tgz} | ||
| 5835 | + engines: {node: '>=8.0'} | ||
| 5836 | + dependencies: | ||
| 5837 | + is-number: 7.0.0 | ||
| 5838 | + dev: true | ||
| 5839 | + | ||
| 5225 | /to-regex/3.0.2: | 5840 | /to-regex/3.0.2: |
| 5226 | resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} | 5841 | resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} |
| 5227 | engines: {node: '>=0.10.0'} | 5842 | engines: {node: '>=0.10.0'} |
| @@ -5232,6 +5847,10 @@ packages: | @@ -5232,6 +5847,10 @@ packages: | ||
| 5232 | safe-regex: 1.1.0 | 5847 | safe-regex: 1.1.0 |
| 5233 | dev: true | 5848 | dev: true |
| 5234 | 5849 | ||
| 5850 | + /tr46/0.0.3: | ||
| 5851 | + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/tr46/-/tr46-0.0.3.tgz} | ||
| 5852 | + dev: true | ||
| 5853 | + | ||
| 5235 | /traverse/0.6.7: | 5854 | /traverse/0.6.7: |
| 5236 | resolution: {integrity: sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==} | 5855 | resolution: {integrity: sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==} |
| 5237 | dev: true | 5856 | dev: true |
| @@ -5241,7 +5860,7 @@ packages: | @@ -5241,7 +5860,7 @@ packages: | ||
| 5241 | engines: {node: '>=8'} | 5860 | engines: {node: '>=8'} |
| 5242 | dev: true | 5861 | dev: true |
| 5243 | 5862 | ||
| 5244 | - /ts-node/10.9.1_rju6pyblifsagdmqm3y74zsi6q: | 5863 | + /ts-node/10.9.1_awa2wsr5thmg3i7jqycphctjfq: |
| 5245 | resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} | 5864 | resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} |
| 5246 | hasBin: true | 5865 | hasBin: true |
| 5247 | peerDependencies: | 5866 | peerDependencies: |
| @@ -5260,7 +5879,7 @@ packages: | @@ -5260,7 +5879,7 @@ packages: | ||
| 5260 | '@tsconfig/node12': 1.0.11 | 5879 | '@tsconfig/node12': 1.0.11 |
| 5261 | '@tsconfig/node14': 1.0.3 | 5880 | '@tsconfig/node14': 1.0.3 |
| 5262 | '@tsconfig/node16': 1.0.3 | 5881 | '@tsconfig/node16': 1.0.3 |
| 5263 | - '@types/node': 14.18.33 | 5882 | + '@types/node': 18.11.18 |
| 5264 | acorn: 8.8.1 | 5883 | acorn: 8.8.1 |
| 5265 | acorn-walk: 8.2.0 | 5884 | acorn-walk: 8.2.0 |
| 5266 | arg: 4.1.3 | 5885 | arg: 4.1.3 |
| @@ -5276,6 +5895,10 @@ packages: | @@ -5276,6 +5895,10 @@ packages: | ||
| 5276 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} | 5895 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} |
| 5277 | dev: true | 5896 | dev: true |
| 5278 | 5897 | ||
| 5898 | + /tslib/2.3.0: | ||
| 5899 | + resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/tslib/-/tslib-2.3.0.tgz} | ||
| 5900 | + dev: false | ||
| 5901 | + | ||
| 5279 | /tslib/2.4.1: | 5902 | /tslib/2.4.1: |
| 5280 | resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} | 5903 | resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} |
| 5281 | dev: true | 5904 | dev: true |
| @@ -5381,13 +6004,13 @@ packages: | @@ -5381,13 +6004,13 @@ packages: | ||
| 5381 | /upper-case-first/2.0.2: | 6004 | /upper-case-first/2.0.2: |
| 5382 | resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} | 6005 | resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} |
| 5383 | dependencies: | 6006 | dependencies: |
| 5384 | - tslib: registry.npmmirror.com/tslib/2.4.1 | 6007 | + tslib: 2.4.1 |
| 5385 | dev: true | 6008 | dev: true |
| 5386 | 6009 | ||
| 5387 | /upper-case/2.0.2: | 6010 | /upper-case/2.0.2: |
| 5388 | resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} | 6011 | resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} |
| 5389 | dependencies: | 6012 | dependencies: |
| 5390 | - tslib: registry.npmmirror.com/tslib/2.4.1 | 6013 | + tslib: 2.4.1 |
| 5391 | dev: true | 6014 | dev: true |
| 5392 | 6015 | ||
| 5393 | /uri-js/4.4.1: | 6016 | /uri-js/4.4.1: |
| @@ -5456,7 +6079,7 @@ packages: | @@ -5456,7 +6079,7 @@ packages: | ||
| 5456 | ejs: 3.1.8 | 6079 | ejs: 3.1.8 |
| 5457 | dev: true | 6080 | dev: true |
| 5458 | 6081 | ||
| 5459 | - /vite-plugin-eslint/1.8.1_eslint@8.31.0+vite@4.0.4: | 6082 | + /vite-plugin-eslint/1.8.1_eslint@8.32.0+vite@4.0.4: |
| 5460 | resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==} | 6083 | resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==} |
| 5461 | peerDependencies: | 6084 | peerDependencies: |
| 5462 | eslint: '>=7' | 6085 | eslint: '>=7' |
| @@ -5464,7 +6087,7 @@ packages: | @@ -5464,7 +6087,7 @@ packages: | ||
| 5464 | dependencies: | 6087 | dependencies: |
| 5465 | '@rollup/pluginutils': 4.2.1 | 6088 | '@rollup/pluginutils': 4.2.1 |
| 5466 | '@types/eslint': 8.4.10 | 6089 | '@types/eslint': 8.4.10 |
| 5467 | - eslint: 8.31.0 | 6090 | + eslint: 8.32.0 |
| 5468 | rollup: 2.79.1 | 6091 | rollup: 2.79.1 |
| 5469 | vite: 4.0.4_zxbrnrc4iyldik6mikh3pswz4i | 6092 | vite: 4.0.4_zxbrnrc4iyldik6mikh3pswz4i |
| 5470 | dev: true | 6093 | dev: true |
| @@ -5481,6 +6104,21 @@ packages: | @@ -5481,6 +6104,21 @@ packages: | ||
| 5481 | vite: 4.0.4_zxbrnrc4iyldik6mikh3pswz4i | 6104 | vite: 4.0.4_zxbrnrc4iyldik6mikh3pswz4i |
| 5482 | dev: true | 6105 | dev: true |
| 5483 | 6106 | ||
| 6107 | + /vite-plugin-purge-icons/0.9.2_vite@4.0.4: | ||
| 6108 | + resolution: {integrity: sha512-vxJEMyNyckqLr/4HPsW9P6BMLUvOVMvjjFz3jLl4Wke1KWE8ITJUxIUwodxaOmEp9L2lxVk5an3TYeycZCfqFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/vite-plugin-purge-icons/-/vite-plugin-purge-icons-0.9.2.tgz} | ||
| 6109 | + engines: {node: '>= 12'} | ||
| 6110 | + peerDependencies: | ||
| 6111 | + vite: ^2.0.0 || ^3.0.0 || ^4.0.0 | ||
| 6112 | + dependencies: | ||
| 6113 | + '@purge-icons/core': 0.9.1 | ||
| 6114 | + '@purge-icons/generated': 0.9.0 | ||
| 6115 | + rollup-plugin-purge-icons: 0.9.1 | ||
| 6116 | + vite: 4.0.4_zxbrnrc4iyldik6mikh3pswz4i | ||
| 6117 | + transitivePeerDependencies: | ||
| 6118 | + - encoding | ||
| 6119 | + - supports-color | ||
| 6120 | + dev: true | ||
| 6121 | + | ||
| 5484 | /vite-plugin-style-import/2.0.0_vite@4.0.4: | 6122 | /vite-plugin-style-import/2.0.0_vite@4.0.4: |
| 5485 | resolution: {integrity: sha512-qtoHQae5dSUQPo/rYz/8p190VU5y19rtBaeV7ryLa/AYAU/e9CG89NrN/3+k7MR8mJy/GPIu91iJ3zk9foUOSA==} | 6123 | resolution: {integrity: sha512-qtoHQae5dSUQPo/rYz/8p190VU5y19rtBaeV7ryLa/AYAU/e9CG89NrN/3+k7MR8mJy/GPIu91iJ3zk9foUOSA==} |
| 5486 | peerDependencies: | 6124 | peerDependencies: |
| @@ -5524,6 +6162,20 @@ packages: | @@ -5524,6 +6162,20 @@ packages: | ||
| 5524 | vite: 4.0.4_zxbrnrc4iyldik6mikh3pswz4i | 6162 | vite: 4.0.4_zxbrnrc4iyldik6mikh3pswz4i |
| 5525 | dev: true | 6163 | dev: true |
| 5526 | 6164 | ||
| 6165 | + /vite-plugin-windicss/1.8.10_vite@4.0.4: | ||
| 6166 | + resolution: {integrity: sha512-scywsuzo46lcTBohspmF0WiwhWEte6p+OUVrX4yr7VMRvLHMHVfLtJReyD5pppjijG7YOwVsZn7XBWWZtF658Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/vite-plugin-windicss/-/vite-plugin-windicss-1.8.10.tgz} | ||
| 6167 | + peerDependencies: | ||
| 6168 | + vite: ^2.0.1 || ^3.0.0 || ^4.0.0 | ||
| 6169 | + dependencies: | ||
| 6170 | + '@windicss/plugin-utils': 1.8.10 | ||
| 6171 | + debug: 4.3.4 | ||
| 6172 | + kolorist: 1.6.0 | ||
| 6173 | + vite: 4.0.4_zxbrnrc4iyldik6mikh3pswz4i | ||
| 6174 | + windicss: 3.5.6 | ||
| 6175 | + transitivePeerDependencies: | ||
| 6176 | + - supports-color | ||
| 6177 | + dev: true | ||
| 6178 | + | ||
| 5527 | /vite/4.0.4_zxbrnrc4iyldik6mikh3pswz4i: | 6179 | /vite/4.0.4_zxbrnrc4iyldik6mikh3pswz4i: |
| 5528 | resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==} | 6180 | resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==} |
| 5529 | engines: {node: ^14.18.0 || >=16.0.0} | 6181 | engines: {node: ^14.18.0 || >=16.0.0} |
| @@ -5551,9 +6203,9 @@ packages: | @@ -5551,9 +6203,9 @@ packages: | ||
| 5551 | dependencies: | 6203 | dependencies: |
| 5552 | '@types/node': 18.11.18 | 6204 | '@types/node': 18.11.18 |
| 5553 | esbuild: 0.16.5 | 6205 | esbuild: 0.16.5 |
| 5554 | - postcss: 8.4.20 | 6206 | + postcss: 8.4.21 |
| 5555 | resolve: 1.22.1 | 6207 | resolve: 1.22.1 |
| 5556 | - rollup: 3.9.1 | 6208 | + rollup: 3.10.0 |
| 5557 | sass: 1.57.1 | 6209 | sass: 1.57.1 |
| 5558 | terser: 5.16.1 | 6210 | terser: 5.16.1 |
| 5559 | optionalDependencies: | 6211 | optionalDependencies: |
| @@ -5575,14 +6227,14 @@ packages: | @@ -5575,14 +6227,14 @@ packages: | ||
| 5575 | vue: 3.2.45 | 6227 | vue: 3.2.45 |
| 5576 | dev: false | 6228 | dev: false |
| 5577 | 6229 | ||
| 5578 | - /vue-eslint-parser/9.1.0_eslint@8.31.0: | 6230 | + /vue-eslint-parser/9.1.0_eslint@8.32.0: |
| 5579 | resolution: {integrity: sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==} | 6231 | resolution: {integrity: sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==} |
| 5580 | engines: {node: ^14.17.0 || >=16.0.0} | 6232 | engines: {node: ^14.17.0 || >=16.0.0} |
| 5581 | peerDependencies: | 6233 | peerDependencies: |
| 5582 | eslint: '>=6.0.0' | 6234 | eslint: '>=6.0.0' |
| 5583 | dependencies: | 6235 | dependencies: |
| 5584 | debug: 4.3.4 | 6236 | debug: 4.3.4 |
| 5585 | - eslint: 8.31.0 | 6237 | + eslint: 8.32.0 |
| 5586 | eslint-scope: 7.1.1 | 6238 | eslint-scope: 7.1.1 |
| 5587 | eslint-visitor-keys: 3.3.0 | 6239 | eslint-visitor-keys: 3.3.0 |
| 5588 | espree: 9.4.1 | 6240 | espree: 9.4.1 |
| @@ -5621,14 +6273,14 @@ packages: | @@ -5621,14 +6273,14 @@ packages: | ||
| 5621 | he: 1.2.0 | 6273 | he: 1.2.0 |
| 5622 | dev: true | 6274 | dev: true |
| 5623 | 6275 | ||
| 5624 | - /vue-tsc/1.0.20_typescript@4.9.4: | ||
| 5625 | - resolution: {integrity: sha512-AApewYXozAD7v4Iz9I0QzQebSVgvlUvpfbGe2e9TwtBdcw5gBsGiX8Oj5BdxRRiGnOdDG3BHPK8msl7Qhmy/1A==} | 6276 | + /vue-tsc/1.0.24_typescript@4.9.4: |
| 6277 | + resolution: {integrity: sha512-mmU1s5SAqE1nByQAiQnao9oU4vX+mSdsgI8H57SfKH6UVzq/jP9+Dbi2GaV+0b4Cn361d2ln8m6xeU60ApiEXg==} | ||
| 5626 | hasBin: true | 6278 | hasBin: true |
| 5627 | peerDependencies: | 6279 | peerDependencies: |
| 5628 | typescript: '*' | 6280 | typescript: '*' |
| 5629 | dependencies: | 6281 | dependencies: |
| 5630 | - '@volar/vue-language-core': 1.0.20 | ||
| 5631 | - '@volar/vue-typescript': 1.0.20 | 6282 | + '@volar/vue-language-core': 1.0.24 |
| 6283 | + '@volar/vue-typescript': 1.0.24 | ||
| 5632 | typescript: 4.9.4 | 6284 | typescript: 4.9.4 |
| 5633 | dev: true | 6285 | dev: true |
| 5634 | 6286 | ||
| @@ -5654,10 +6306,24 @@ packages: | @@ -5654,10 +6306,24 @@ packages: | ||
| 5654 | '@vue/server-renderer': 3.2.45_vue@3.2.45 | 6306 | '@vue/server-renderer': 3.2.45_vue@3.2.45 |
| 5655 | '@vue/shared': 3.2.45 | 6307 | '@vue/shared': 3.2.45 |
| 5656 | 6308 | ||
| 6309 | + /vxe-table/4.3.9_vue@3.2.45+xe-utils@3.5.7: | ||
| 6310 | + resolution: {integrity: sha512-Ns7Ooa7lOHBpks90i0k0BMNyxfMpUo39ryxTgKE41X3xVnI9tGQs2U6+klfDlsuqYfmG3ibyzHN3OCrWbbKo4Q==} | ||
| 6311 | + peerDependencies: | ||
| 6312 | + vue: ^3.2.28 | ||
| 6313 | + xe-utils: ^3.5.0 | ||
| 6314 | + dependencies: | ||
| 6315 | + vue: 3.2.45 | ||
| 6316 | + xe-utils: 3.5.7 | ||
| 6317 | + dev: false | ||
| 6318 | + | ||
| 5657 | /web-storage-cache/1.1.1: | 6319 | /web-storage-cache/1.1.1: |
| 5658 | resolution: {integrity: sha512-D0MieGooOs8RpsrK+vnejXnvh4OOv/+lTFB35JRkJJQt+uOjPE08XpaE0QBLMTRu47B1KGT/Nq3Gbag3Orinzw==} | 6320 | resolution: {integrity: sha512-D0MieGooOs8RpsrK+vnejXnvh4OOv/+lTFB35JRkJJQt+uOjPE08XpaE0QBLMTRu47B1KGT/Nq3Gbag3Orinzw==} |
| 5659 | dev: false | 6321 | dev: false |
| 5660 | 6322 | ||
| 6323 | + /webidl-conversions/3.0.1: | ||
| 6324 | + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz} | ||
| 6325 | + dev: true | ||
| 6326 | + | ||
| 5661 | /webpack-sources/3.2.3: | 6327 | /webpack-sources/3.2.3: |
| 5662 | resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} | 6328 | resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} |
| 5663 | engines: {node: '>=10.13.0'} | 6329 | engines: {node: '>=10.13.0'} |
| @@ -5667,6 +6333,13 @@ packages: | @@ -5667,6 +6333,13 @@ packages: | ||
| 5667 | resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} | 6333 | resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} |
| 5668 | dev: true | 6334 | dev: true |
| 5669 | 6335 | ||
| 6336 | + /whatwg-url/5.0.0: | ||
| 6337 | + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/whatwg-url/-/whatwg-url-5.0.0.tgz} | ||
| 6338 | + dependencies: | ||
| 6339 | + tr46: 0.0.3 | ||
| 6340 | + webidl-conversions: 3.0.1 | ||
| 6341 | + dev: true | ||
| 6342 | + | ||
| 5670 | /which-module/2.0.0: | 6343 | /which-module/2.0.0: |
| 5671 | resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} | 6344 | resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} |
| 5672 | dev: false | 6345 | dev: false |
| @@ -5705,7 +6378,7 @@ packages: | @@ -5705,7 +6378,7 @@ packages: | ||
| 5705 | resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} | 6378 | resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} |
| 5706 | engines: {node: '>=8'} | 6379 | engines: {node: '>=8'} |
| 5707 | dependencies: | 6380 | dependencies: |
| 5708 | - ansi-styles: registry.npmmirror.com/ansi-styles/4.3.0 | 6381 | + ansi-styles: 4.3.0 |
| 5709 | string-width: 4.2.3 | 6382 | string-width: 4.2.3 |
| 5710 | strip-ansi: 6.0.1 | 6383 | strip-ansi: 6.0.1 |
| 5711 | 6384 | ||
| @@ -5774,7 +6447,7 @@ packages: | @@ -5774,7 +6447,7 @@ packages: | ||
| 5774 | resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} | 6447 | resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} |
| 5775 | engines: {node: '>=6'} | 6448 | engines: {node: '>=6'} |
| 5776 | dependencies: | 6449 | dependencies: |
| 5777 | - camelcase: registry.npmmirror.com/camelcase/5.3.1 | 6450 | + camelcase: 5.3.1 |
| 5778 | decamelize: 1.2.0 | 6451 | decamelize: 1.2.0 |
| 5779 | dev: false | 6452 | dev: false |
| 5780 | 6453 | ||
| @@ -5828,1259 +6501,8 @@ packages: | @@ -5828,1259 +6501,8 @@ packages: | ||
| 5828 | engines: {node: '>=10'} | 6501 | engines: {node: '>=10'} |
| 5829 | dev: true | 6502 | dev: true |
| 5830 | 6503 | ||
| 5831 | - registry.npmmirror.com/@ampproject/remapping/2.2.0: | ||
| 5832 | - resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.0.tgz} | ||
| 5833 | - name: '@ampproject/remapping' | ||
| 5834 | - version: 2.2.0 | ||
| 5835 | - engines: {node: '>=6.0.0'} | ||
| 5836 | - dependencies: | ||
| 5837 | - '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping/0.1.1 | ||
| 5838 | - '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping/0.3.17 | ||
| 5839 | - dev: true | ||
| 5840 | - | ||
| 5841 | - registry.npmmirror.com/@antfu/utils/0.7.2: | ||
| 5842 | - resolution: {integrity: sha512-vy9fM3pIxZmX07dL+VX1aZe7ynZ+YyB0jY+jE6r3hOK6GNY2t6W8rzpFC4tgpbXUYABkFQwgJq2XYXlxbXAI0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.2.tgz} | ||
| 5843 | - name: '@antfu/utils' | ||
| 5844 | - version: 0.7.2 | ||
| 5845 | - dev: true | ||
| 5846 | - | ||
| 5847 | - registry.npmmirror.com/@babel/code-frame/7.18.6: | ||
| 5848 | - resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.18.6.tgz} | ||
| 5849 | - name: '@babel/code-frame' | ||
| 5850 | - version: 7.18.6 | ||
| 5851 | - engines: {node: '>=6.9.0'} | ||
| 5852 | - dependencies: | ||
| 5853 | - '@babel/highlight': registry.npmmirror.com/@babel/highlight/7.18.6 | ||
| 5854 | - dev: true | ||
| 5855 | - | ||
| 5856 | - registry.npmmirror.com/@babel/compat-data/7.20.1: | ||
| 5857 | - resolution: {integrity: sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.20.1.tgz} | ||
| 5858 | - name: '@babel/compat-data' | ||
| 5859 | - version: 7.20.1 | ||
| 5860 | - engines: {node: '>=6.9.0'} | ||
| 5861 | - dev: true | ||
| 5862 | - | ||
| 5863 | - registry.npmmirror.com/@babel/core/7.20.5: | ||
| 5864 | - resolution: {integrity: sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/core/-/core-7.20.5.tgz} | ||
| 5865 | - name: '@babel/core' | ||
| 5866 | - version: 7.20.5 | ||
| 5867 | - engines: {node: '>=6.9.0'} | ||
| 5868 | - dependencies: | ||
| 5869 | - '@ampproject/remapping': registry.npmmirror.com/@ampproject/remapping/2.2.0 | ||
| 5870 | - '@babel/code-frame': registry.npmmirror.com/@babel/code-frame/7.18.6 | ||
| 5871 | - '@babel/generator': registry.npmmirror.com/@babel/generator/7.20.5 | ||
| 5872 | - '@babel/helper-compilation-targets': registry.npmmirror.com/@babel/helper-compilation-targets/7.20.0_@babel+core@7.20.5 | ||
| 5873 | - '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms/7.20.2 | ||
| 5874 | - '@babel/helpers': registry.npmmirror.com/@babel/helpers/7.20.6 | ||
| 5875 | - '@babel/parser': registry.npmmirror.com/@babel/parser/7.20.5 | ||
| 5876 | - '@babel/template': registry.npmmirror.com/@babel/template/7.18.10 | ||
| 5877 | - '@babel/traverse': registry.npmmirror.com/@babel/traverse/7.20.5 | ||
| 5878 | - '@babel/types': registry.npmmirror.com/@babel/types/7.20.5 | ||
| 5879 | - convert-source-map: registry.npmmirror.com/convert-source-map/1.9.0 | ||
| 5880 | - debug: 4.3.4 | ||
| 5881 | - gensync: registry.npmmirror.com/gensync/1.0.0-beta.2 | ||
| 5882 | - json5: registry.npmmirror.com/json5/2.2.1 | ||
| 5883 | - semver: registry.npmmirror.com/semver/6.3.0 | ||
| 5884 | - transitivePeerDependencies: | ||
| 5885 | - - supports-color | ||
| 5886 | - dev: true | ||
| 5887 | - | ||
| 5888 | - registry.npmmirror.com/@babel/generator/7.20.5: | ||
| 5889 | - resolution: {integrity: sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/generator/-/generator-7.20.5.tgz} | ||
| 5890 | - name: '@babel/generator' | ||
| 5891 | - version: 7.20.5 | ||
| 5892 | - engines: {node: '>=6.9.0'} | ||
| 5893 | - dependencies: | ||
| 5894 | - '@babel/types': registry.npmmirror.com/@babel/types/7.20.5 | ||
| 5895 | - '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping/0.3.2 | ||
| 5896 | - jsesc: registry.npmmirror.com/jsesc/2.5.2 | ||
| 5897 | - dev: true | ||
| 5898 | - | ||
| 5899 | - registry.npmmirror.com/@babel/helper-annotate-as-pure/7.18.6: | ||
| 5900 | - resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz} | ||
| 5901 | - name: '@babel/helper-annotate-as-pure' | ||
| 5902 | - version: 7.18.6 | ||
| 5903 | - engines: {node: '>=6.9.0'} | ||
| 5904 | - dependencies: | ||
| 5905 | - '@babel/types': 7.20.5 | ||
| 5906 | - dev: true | ||
| 5907 | - | ||
| 5908 | - registry.npmmirror.com/@babel/helper-compilation-targets/7.20.0_@babel+core@7.20.5: | ||
| 5909 | - resolution: {integrity: sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz} | ||
| 5910 | - id: registry.npmmirror.com/@babel/helper-compilation-targets/7.20.0 | ||
| 5911 | - name: '@babel/helper-compilation-targets' | ||
| 5912 | - version: 7.20.0 | ||
| 5913 | - engines: {node: '>=6.9.0'} | ||
| 5914 | - peerDependencies: | ||
| 5915 | - '@babel/core': ^7.0.0 | ||
| 5916 | - dependencies: | ||
| 5917 | - '@babel/compat-data': registry.npmmirror.com/@babel/compat-data/7.20.1 | ||
| 5918 | - '@babel/core': registry.npmmirror.com/@babel/core/7.20.5 | ||
| 5919 | - '@babel/helper-validator-option': registry.npmmirror.com/@babel/helper-validator-option/7.18.6 | ||
| 5920 | - browserslist: registry.npmmirror.com/browserslist/4.21.4 | ||
| 5921 | - semver: registry.npmmirror.com/semver/6.3.0 | ||
| 5922 | - dev: true | ||
| 5923 | - | ||
| 5924 | - registry.npmmirror.com/@babel/helper-create-class-features-plugin/7.20.2_@babel+core@7.20.5: | ||
| 5925 | - resolution: {integrity: sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz} | ||
| 5926 | - id: registry.npmmirror.com/@babel/helper-create-class-features-plugin/7.20.2 | ||
| 5927 | - name: '@babel/helper-create-class-features-plugin' | ||
| 5928 | - version: 7.20.2 | ||
| 5929 | - engines: {node: '>=6.9.0'} | ||
| 5930 | - peerDependencies: | ||
| 5931 | - '@babel/core': ^7.0.0 | ||
| 5932 | - dependencies: | ||
| 5933 | - '@babel/core': registry.npmmirror.com/@babel/core/7.20.5 | ||
| 5934 | - '@babel/helper-annotate-as-pure': registry.npmmirror.com/@babel/helper-annotate-as-pure/7.18.6 | ||
| 5935 | - '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor/7.18.9 | ||
| 5936 | - '@babel/helper-function-name': registry.npmmirror.com/@babel/helper-function-name/7.19.0 | ||
| 5937 | - '@babel/helper-member-expression-to-functions': registry.npmmirror.com/@babel/helper-member-expression-to-functions/7.18.9 | ||
| 5938 | - '@babel/helper-optimise-call-expression': registry.npmmirror.com/@babel/helper-optimise-call-expression/7.18.6 | ||
| 5939 | - '@babel/helper-replace-supers': registry.npmmirror.com/@babel/helper-replace-supers/7.19.1 | ||
| 5940 | - '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration/7.18.6 | ||
| 5941 | - transitivePeerDependencies: | ||
| 5942 | - - supports-color | ||
| 5943 | - dev: true | ||
| 5944 | - | ||
| 5945 | - registry.npmmirror.com/@babel/helper-environment-visitor/7.18.9: | ||
| 5946 | - resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz} | ||
| 5947 | - name: '@babel/helper-environment-visitor' | ||
| 5948 | - version: 7.18.9 | ||
| 5949 | - engines: {node: '>=6.9.0'} | ||
| 5950 | - dev: true | ||
| 5951 | - | ||
| 5952 | - registry.npmmirror.com/@babel/helper-function-name/7.19.0: | ||
| 5953 | - resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz} | ||
| 5954 | - name: '@babel/helper-function-name' | ||
| 5955 | - version: 7.19.0 | ||
| 5956 | - engines: {node: '>=6.9.0'} | ||
| 5957 | - dependencies: | ||
| 5958 | - '@babel/template': registry.npmmirror.com/@babel/template/7.18.10 | ||
| 5959 | - '@babel/types': 7.20.5 | ||
| 5960 | - dev: true | ||
| 5961 | - | ||
| 5962 | - registry.npmmirror.com/@babel/helper-hoist-variables/7.18.6: | ||
| 5963 | - resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz} | ||
| 5964 | - name: '@babel/helper-hoist-variables' | ||
| 5965 | - version: 7.18.6 | ||
| 5966 | - engines: {node: '>=6.9.0'} | ||
| 5967 | - dependencies: | ||
| 5968 | - '@babel/types': 7.20.5 | ||
| 5969 | - dev: true | ||
| 5970 | - | ||
| 5971 | - registry.npmmirror.com/@babel/helper-member-expression-to-functions/7.18.9: | ||
| 5972 | - resolution: {integrity: sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz} | ||
| 5973 | - name: '@babel/helper-member-expression-to-functions' | ||
| 5974 | - version: 7.18.9 | ||
| 5975 | - engines: {node: '>=6.9.0'} | ||
| 5976 | - dependencies: | ||
| 5977 | - '@babel/types': 7.20.5 | ||
| 5978 | - dev: true | ||
| 5979 | - | ||
| 5980 | - registry.npmmirror.com/@babel/helper-module-imports/7.18.6: | ||
| 5981 | - resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz} | ||
| 5982 | - name: '@babel/helper-module-imports' | ||
| 5983 | - version: 7.18.6 | ||
| 5984 | - engines: {node: '>=6.9.0'} | ||
| 5985 | - dependencies: | ||
| 5986 | - '@babel/types': registry.npmmirror.com/@babel/types/7.20.5 | ||
| 5987 | - dev: true | ||
| 5988 | - | ||
| 5989 | - registry.npmmirror.com/@babel/helper-module-transforms/7.20.2: | ||
| 5990 | - resolution: {integrity: sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz} | ||
| 5991 | - name: '@babel/helper-module-transforms' | ||
| 5992 | - version: 7.20.2 | ||
| 5993 | - engines: {node: '>=6.9.0'} | ||
| 5994 | - dependencies: | ||
| 5995 | - '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor/7.18.9 | ||
| 5996 | - '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports/7.18.6 | ||
| 5997 | - '@babel/helper-simple-access': registry.npmmirror.com/@babel/helper-simple-access/7.20.2 | ||
| 5998 | - '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration/7.18.6 | ||
| 5999 | - '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier/7.19.1 | ||
| 6000 | - '@babel/template': registry.npmmirror.com/@babel/template/7.18.10 | ||
| 6001 | - '@babel/traverse': registry.npmmirror.com/@babel/traverse/7.20.5 | ||
| 6002 | - '@babel/types': registry.npmmirror.com/@babel/types/7.20.5 | ||
| 6003 | - transitivePeerDependencies: | ||
| 6004 | - - supports-color | ||
| 6005 | - dev: true | ||
| 6006 | - | ||
| 6007 | - registry.npmmirror.com/@babel/helper-optimise-call-expression/7.18.6: | ||
| 6008 | - resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz} | ||
| 6009 | - name: '@babel/helper-optimise-call-expression' | ||
| 6010 | - version: 7.18.6 | ||
| 6011 | - engines: {node: '>=6.9.0'} | ||
| 6012 | - dependencies: | ||
| 6013 | - '@babel/types': 7.20.5 | ||
| 6014 | - dev: true | ||
| 6015 | - | ||
| 6016 | - registry.npmmirror.com/@babel/helper-plugin-utils/7.20.2: | ||
| 6017 | - resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz} | ||
| 6018 | - name: '@babel/helper-plugin-utils' | ||
| 6019 | - version: 7.20.2 | ||
| 6020 | - engines: {node: '>=6.9.0'} | ||
| 6021 | - dev: true | ||
| 6022 | - | ||
| 6023 | - registry.npmmirror.com/@babel/helper-replace-supers/7.19.1: | ||
| 6024 | - resolution: {integrity: sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz} | ||
| 6025 | - name: '@babel/helper-replace-supers' | ||
| 6026 | - version: 7.19.1 | ||
| 6027 | - engines: {node: '>=6.9.0'} | ||
| 6028 | - dependencies: | ||
| 6029 | - '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor/7.18.9 | ||
| 6030 | - '@babel/helper-member-expression-to-functions': registry.npmmirror.com/@babel/helper-member-expression-to-functions/7.18.9 | ||
| 6031 | - '@babel/helper-optimise-call-expression': registry.npmmirror.com/@babel/helper-optimise-call-expression/7.18.6 | ||
| 6032 | - '@babel/traverse': registry.npmmirror.com/@babel/traverse/7.20.5 | ||
| 6033 | - '@babel/types': 7.20.5 | ||
| 6034 | - transitivePeerDependencies: | ||
| 6035 | - - supports-color | ||
| 6036 | - dev: true | ||
| 6037 | - | ||
| 6038 | - registry.npmmirror.com/@babel/helper-simple-access/7.20.2: | ||
| 6039 | - resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz} | ||
| 6040 | - name: '@babel/helper-simple-access' | ||
| 6041 | - version: 7.20.2 | ||
| 6042 | - engines: {node: '>=6.9.0'} | ||
| 6043 | - dependencies: | ||
| 6044 | - '@babel/types': 7.20.5 | ||
| 6045 | - dev: true | ||
| 6046 | - | ||
| 6047 | - registry.npmmirror.com/@babel/helper-split-export-declaration/7.18.6: | ||
| 6048 | - resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz} | ||
| 6049 | - name: '@babel/helper-split-export-declaration' | ||
| 6050 | - version: 7.18.6 | ||
| 6051 | - engines: {node: '>=6.9.0'} | ||
| 6052 | - dependencies: | ||
| 6053 | - '@babel/types': 7.20.5 | ||
| 6054 | - dev: true | ||
| 6055 | - | ||
| 6056 | - registry.npmmirror.com/@babel/helper-string-parser/7.19.4: | ||
| 6057 | - resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz} | ||
| 6058 | - name: '@babel/helper-string-parser' | ||
| 6059 | - version: 7.19.4 | ||
| 6060 | - engines: {node: '>=6.9.0'} | ||
| 6061 | - | ||
| 6062 | - registry.npmmirror.com/@babel/helper-validator-identifier/7.19.1: | ||
| 6063 | - resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz} | ||
| 6064 | - name: '@babel/helper-validator-identifier' | ||
| 6065 | - version: 7.19.1 | ||
| 6066 | - engines: {node: '>=6.9.0'} | ||
| 6067 | - | ||
| 6068 | - registry.npmmirror.com/@babel/helper-validator-option/7.18.6: | ||
| 6069 | - resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz} | ||
| 6070 | - name: '@babel/helper-validator-option' | ||
| 6071 | - version: 7.18.6 | ||
| 6072 | - engines: {node: '>=6.9.0'} | ||
| 6073 | - dev: true | ||
| 6074 | - | ||
| 6075 | - registry.npmmirror.com/@babel/helpers/7.20.6: | ||
| 6076 | - resolution: {integrity: sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helpers/-/helpers-7.20.6.tgz} | ||
| 6077 | - name: '@babel/helpers' | ||
| 6078 | - version: 7.20.6 | ||
| 6079 | - engines: {node: '>=6.9.0'} | ||
| 6080 | - dependencies: | ||
| 6081 | - '@babel/template': registry.npmmirror.com/@babel/template/7.18.10 | ||
| 6082 | - '@babel/traverse': registry.npmmirror.com/@babel/traverse/7.20.5 | ||
| 6083 | - '@babel/types': registry.npmmirror.com/@babel/types/7.20.5 | ||
| 6084 | - transitivePeerDependencies: | ||
| 6085 | - - supports-color | ||
| 6086 | - dev: true | ||
| 6087 | - | ||
| 6088 | - registry.npmmirror.com/@babel/highlight/7.18.6: | ||
| 6089 | - resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/highlight/-/highlight-7.18.6.tgz} | ||
| 6090 | - name: '@babel/highlight' | ||
| 6091 | - version: 7.18.6 | ||
| 6092 | - engines: {node: '>=6.9.0'} | ||
| 6093 | - dependencies: | ||
| 6094 | - '@babel/helper-validator-identifier': 7.19.1 | ||
| 6095 | - chalk: 2.4.2 | ||
| 6096 | - js-tokens: registry.npmmirror.com/js-tokens/4.0.0 | ||
| 6097 | - dev: true | ||
| 6098 | - | ||
| 6099 | - registry.npmmirror.com/@babel/parser/7.20.5: | ||
| 6100 | - resolution: {integrity: sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/parser/-/parser-7.20.5.tgz} | ||
| 6101 | - name: '@babel/parser' | ||
| 6102 | - version: 7.20.5 | ||
| 6103 | - engines: {node: '>=6.0.0'} | ||
| 6104 | - hasBin: true | ||
| 6105 | - dependencies: | ||
| 6106 | - '@babel/types': registry.npmmirror.com/@babel/types/7.20.5 | ||
| 6107 | - dev: true | ||
| 6108 | - | ||
| 6109 | - registry.npmmirror.com/@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.20.5: | ||
| 6110 | - resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz} | ||
| 6111 | - id: registry.npmmirror.com/@babel/plugin-syntax-jsx/7.18.6 | ||
| 6112 | - name: '@babel/plugin-syntax-jsx' | ||
| 6113 | - version: 7.18.6 | ||
| 6114 | - engines: {node: '>=6.9.0'} | ||
| 6115 | - peerDependencies: | ||
| 6116 | - '@babel/core': ^7.0.0-0 | ||
| 6117 | - dependencies: | ||
| 6118 | - '@babel/core': registry.npmmirror.com/@babel/core/7.20.5 | ||
| 6119 | - '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils/7.20.2 | ||
| 6120 | - dev: true | ||
| 6121 | - | ||
| 6122 | - registry.npmmirror.com/@babel/plugin-syntax-typescript/7.20.0_@babel+core@7.20.5: | ||
| 6123 | - resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz} | ||
| 6124 | - id: registry.npmmirror.com/@babel/plugin-syntax-typescript/7.20.0 | ||
| 6125 | - name: '@babel/plugin-syntax-typescript' | ||
| 6126 | - version: 7.20.0 | ||
| 6127 | - engines: {node: '>=6.9.0'} | ||
| 6128 | - peerDependencies: | ||
| 6129 | - '@babel/core': ^7.0.0-0 | ||
| 6130 | - dependencies: | ||
| 6131 | - '@babel/core': registry.npmmirror.com/@babel/core/7.20.5 | ||
| 6132 | - '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils/7.20.2 | ||
| 6133 | - dev: true | ||
| 6134 | - | ||
| 6135 | - registry.npmmirror.com/@babel/plugin-transform-typescript/7.20.2_@babel+core@7.20.5: | ||
| 6136 | - resolution: {integrity: sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.2.tgz} | ||
| 6137 | - id: registry.npmmirror.com/@babel/plugin-transform-typescript/7.20.2 | ||
| 6138 | - name: '@babel/plugin-transform-typescript' | ||
| 6139 | - version: 7.20.2 | ||
| 6140 | - engines: {node: '>=6.9.0'} | ||
| 6141 | - peerDependencies: | ||
| 6142 | - '@babel/core': ^7.0.0-0 | ||
| 6143 | - dependencies: | ||
| 6144 | - '@babel/core': registry.npmmirror.com/@babel/core/7.20.5 | ||
| 6145 | - '@babel/helper-create-class-features-plugin': registry.npmmirror.com/@babel/helper-create-class-features-plugin/7.20.2_@babel+core@7.20.5 | ||
| 6146 | - '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils/7.20.2 | ||
| 6147 | - '@babel/plugin-syntax-typescript': registry.npmmirror.com/@babel/plugin-syntax-typescript/7.20.0_@babel+core@7.20.5 | ||
| 6148 | - transitivePeerDependencies: | ||
| 6149 | - - supports-color | ||
| 6150 | - dev: true | ||
| 6151 | - | ||
| 6152 | - registry.npmmirror.com/@babel/standalone/7.20.6: | ||
| 6153 | - resolution: {integrity: sha512-u5at/CbBLETf7kx2LOY4XdhseD79Y099WZKAOMXeT8qvd9OSR515my2UNBBLY4qIht/Qi9KySeQHQwQwxJN4Sw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/standalone/-/standalone-7.20.6.tgz} | ||
| 6154 | - name: '@babel/standalone' | ||
| 6155 | - version: 7.20.6 | ||
| 6156 | - engines: {node: '>=6.9.0'} | ||
| 6157 | - dev: true | ||
| 6158 | - | ||
| 6159 | - registry.npmmirror.com/@babel/template/7.18.10: | ||
| 6160 | - resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/template/-/template-7.18.10.tgz} | ||
| 6161 | - name: '@babel/template' | ||
| 6162 | - version: 7.18.10 | ||
| 6163 | - engines: {node: '>=6.9.0'} | ||
| 6164 | - dependencies: | ||
| 6165 | - '@babel/code-frame': registry.npmmirror.com/@babel/code-frame/7.18.6 | ||
| 6166 | - '@babel/parser': registry.npmmirror.com/@babel/parser/7.20.5 | ||
| 6167 | - '@babel/types': registry.npmmirror.com/@babel/types/7.20.5 | ||
| 6168 | - dev: true | ||
| 6169 | - | ||
| 6170 | - registry.npmmirror.com/@babel/traverse/7.20.1: | ||
| 6171 | - resolution: {integrity: sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/traverse/-/traverse-7.20.1.tgz} | ||
| 6172 | - name: '@babel/traverse' | ||
| 6173 | - version: 7.20.1 | ||
| 6174 | - engines: {node: '>=6.9.0'} | ||
| 6175 | - dependencies: | ||
| 6176 | - '@babel/code-frame': registry.npmmirror.com/@babel/code-frame/7.18.6 | ||
| 6177 | - '@babel/generator': registry.npmmirror.com/@babel/generator/7.20.5 | ||
| 6178 | - '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor/7.18.9 | ||
| 6179 | - '@babel/helper-function-name': registry.npmmirror.com/@babel/helper-function-name/7.19.0 | ||
| 6180 | - '@babel/helper-hoist-variables': registry.npmmirror.com/@babel/helper-hoist-variables/7.18.6 | ||
| 6181 | - '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration/7.18.6 | ||
| 6182 | - '@babel/parser': registry.npmmirror.com/@babel/parser/7.20.5 | ||
| 6183 | - '@babel/types': registry.npmmirror.com/@babel/types/7.20.5 | ||
| 6184 | - debug: 4.3.4 | ||
| 6185 | - globals: 11.12.0 | ||
| 6186 | - transitivePeerDependencies: | ||
| 6187 | - - supports-color | ||
| 6188 | - dev: true | ||
| 6189 | - | ||
| 6190 | - registry.npmmirror.com/@babel/traverse/7.20.5: | ||
| 6191 | - resolution: {integrity: sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/traverse/-/traverse-7.20.5.tgz} | ||
| 6192 | - name: '@babel/traverse' | ||
| 6193 | - version: 7.20.5 | ||
| 6194 | - engines: {node: '>=6.9.0'} | ||
| 6195 | - dependencies: | ||
| 6196 | - '@babel/code-frame': registry.npmmirror.com/@babel/code-frame/7.18.6 | ||
| 6197 | - '@babel/generator': registry.npmmirror.com/@babel/generator/7.20.5 | ||
| 6198 | - '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor/7.18.9 | ||
| 6199 | - '@babel/helper-function-name': registry.npmmirror.com/@babel/helper-function-name/7.19.0 | ||
| 6200 | - '@babel/helper-hoist-variables': registry.npmmirror.com/@babel/helper-hoist-variables/7.18.6 | ||
| 6201 | - '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration/7.18.6 | ||
| 6202 | - '@babel/parser': registry.npmmirror.com/@babel/parser/7.20.5 | ||
| 6203 | - '@babel/types': registry.npmmirror.com/@babel/types/7.20.5 | ||
| 6204 | - debug: 4.3.4 | ||
| 6205 | - globals: 11.12.0 | ||
| 6206 | - transitivePeerDependencies: | ||
| 6207 | - - supports-color | ||
| 6208 | - dev: true | ||
| 6209 | - | ||
| 6210 | - registry.npmmirror.com/@babel/types/7.20.2: | ||
| 6211 | - resolution: {integrity: sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/types/-/types-7.20.2.tgz} | ||
| 6212 | - name: '@babel/types' | ||
| 6213 | - version: 7.20.2 | ||
| 6214 | - engines: {node: '>=6.9.0'} | ||
| 6215 | - dependencies: | ||
| 6216 | - '@babel/helper-string-parser': registry.npmmirror.com/@babel/helper-string-parser/7.19.4 | ||
| 6217 | - '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier/7.19.1 | ||
| 6218 | - to-fast-properties: registry.npmmirror.com/to-fast-properties/2.0.0 | ||
| 6219 | - dev: true | ||
| 6220 | - | ||
| 6221 | - registry.npmmirror.com/@babel/types/7.20.5: | ||
| 6222 | - resolution: {integrity: sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/types/-/types-7.20.5.tgz} | ||
| 6223 | - name: '@babel/types' | ||
| 6224 | - version: 7.20.5 | ||
| 6225 | - engines: {node: '>=6.9.0'} | ||
| 6226 | - dependencies: | ||
| 6227 | - '@babel/helper-string-parser': registry.npmmirror.com/@babel/helper-string-parser/7.19.4 | ||
| 6228 | - '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier/7.19.1 | ||
| 6229 | - to-fast-properties: registry.npmmirror.com/to-fast-properties/2.0.0 | ||
| 6230 | - | ||
| 6231 | - registry.npmmirror.com/@iconify/iconify/2.1.2: | ||
| 6232 | - resolution: {integrity: sha512-QcUzFeEWkE/mW+BVtEGmcWATClcCOIJFiYUD/PiCWuTcdEA297o8D4oN6Ra44WrNOHu1wqNW4J0ioaDIiqaFOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@iconify/iconify/-/iconify-2.1.2.tgz} | ||
| 6233 | - name: '@iconify/iconify' | ||
| 6234 | - version: 2.1.2 | ||
| 6235 | - dependencies: | ||
| 6236 | - cross-fetch: registry.npmmirror.com/cross-fetch/3.1.5 | ||
| 6237 | - transitivePeerDependencies: | ||
| 6238 | - - encoding | ||
| 6239 | - dev: true | ||
| 6240 | - | ||
| 6241 | - registry.npmmirror.com/@iconify/iconify/3.0.1: | ||
| 6242 | - resolution: {integrity: sha512-OPqVBTh8YsfrYZRVFv3OkmFNLqacM0dy/Oiw1h2wO+RZW5LieNGHlG2f9pzaeVRFWbEB8LHTeo8mcwgUTUbibQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@iconify/iconify/-/iconify-3.0.1.tgz} | ||
| 6243 | - name: '@iconify/iconify' | ||
| 6244 | - version: 3.0.1 | ||
| 6245 | - dependencies: | ||
| 6246 | - '@iconify/types': 2.0.0 | ||
| 6247 | - dev: true | ||
| 6248 | - | ||
| 6249 | - registry.npmmirror.com/@jridgewell/gen-mapping/0.1.1: | ||
| 6250 | - resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz} | ||
| 6251 | - name: '@jridgewell/gen-mapping' | ||
| 6252 | - version: 0.1.1 | ||
| 6253 | - engines: {node: '>=6.0.0'} | ||
| 6254 | - dependencies: | ||
| 6255 | - '@jridgewell/set-array': registry.npmmirror.com/@jridgewell/set-array/1.1.2 | ||
| 6256 | - '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec/1.4.14 | ||
| 6257 | - dev: true | ||
| 6258 | - | ||
| 6259 | - registry.npmmirror.com/@jridgewell/gen-mapping/0.3.2: | ||
| 6260 | - resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz} | ||
| 6261 | - name: '@jridgewell/gen-mapping' | ||
| 6262 | - version: 0.3.2 | ||
| 6263 | - engines: {node: '>=6.0.0'} | ||
| 6264 | - dependencies: | ||
| 6265 | - '@jridgewell/set-array': registry.npmmirror.com/@jridgewell/set-array/1.1.2 | ||
| 6266 | - '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec/1.4.14 | ||
| 6267 | - '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping/0.3.17 | ||
| 6268 | - dev: true | ||
| 6269 | - | ||
| 6270 | - registry.npmmirror.com/@jridgewell/resolve-uri/3.1.0: | ||
| 6271 | - resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz} | ||
| 6272 | - name: '@jridgewell/resolve-uri' | ||
| 6273 | - version: 3.1.0 | ||
| 6274 | - engines: {node: '>=6.0.0'} | ||
| 6275 | - dev: true | ||
| 6276 | - | ||
| 6277 | - registry.npmmirror.com/@jridgewell/set-array/1.1.2: | ||
| 6278 | - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz} | ||
| 6279 | - name: '@jridgewell/set-array' | ||
| 6280 | - version: 1.1.2 | ||
| 6281 | - engines: {node: '>=6.0.0'} | ||
| 6282 | - dev: true | ||
| 6283 | - | ||
| 6284 | - registry.npmmirror.com/@jridgewell/sourcemap-codec/1.4.14: | ||
| 6285 | - resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz} | ||
| 6286 | - name: '@jridgewell/sourcemap-codec' | ||
| 6287 | - version: 1.4.14 | ||
| 6288 | - dev: true | ||
| 6289 | - | ||
| 6290 | - registry.npmmirror.com/@jridgewell/trace-mapping/0.3.17: | ||
| 6291 | - resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz} | ||
| 6292 | - name: '@jridgewell/trace-mapping' | ||
| 6293 | - version: 0.3.17 | ||
| 6294 | - dependencies: | ||
| 6295 | - '@jridgewell/resolve-uri': registry.npmmirror.com/@jridgewell/resolve-uri/3.1.0 | ||
| 6296 | - '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec/1.4.14 | ||
| 6297 | - dev: true | ||
| 6298 | - | ||
| 6299 | - registry.npmmirror.com/@jridgewell/trace-mapping/0.3.9: | ||
| 6300 | - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz} | ||
| 6301 | - name: '@jridgewell/trace-mapping' | ||
| 6302 | - version: 0.3.9 | ||
| 6303 | - dependencies: | ||
| 6304 | - '@jridgewell/resolve-uri': registry.npmmirror.com/@jridgewell/resolve-uri/3.1.0 | ||
| 6305 | - '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec/1.4.14 | ||
| 6306 | - dev: true | ||
| 6307 | - | ||
| 6308 | - registry.npmmirror.com/@nodelib/fs.stat/2.0.5: | ||
| 6309 | - 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} | ||
| 6310 | - name: '@nodelib/fs.stat' | ||
| 6311 | - version: 2.0.5 | ||
| 6312 | - engines: {node: '>= 8'} | ||
| 6313 | - dev: true | ||
| 6314 | - | ||
| 6315 | - registry.npmmirror.com/@purge-icons/core/0.9.1: | ||
| 6316 | - resolution: {integrity: sha512-sx8/a30MbbqQVEqhuMPE1wJpdVRRbEmwEPZpFzVkcDixzX4p+R2A0WVxqkb0xfHUBAVQwrSE2SeAyniIQLqbLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@purge-icons/core/-/core-0.9.1.tgz} | ||
| 6317 | - name: '@purge-icons/core' | ||
| 6318 | - version: 0.9.1 | ||
| 6319 | - dependencies: | ||
| 6320 | - '@iconify/iconify': registry.npmmirror.com/@iconify/iconify/2.1.2 | ||
| 6321 | - axios: 0.26.1_debug@4.3.4 | ||
| 6322 | - debug: 4.3.4 | ||
| 6323 | - fast-glob: registry.npmmirror.com/fast-glob/3.2.12 | ||
| 6324 | - fs-extra: registry.npmmirror.com/fs-extra/10.1.0 | ||
| 6325 | - transitivePeerDependencies: | ||
| 6326 | - - encoding | ||
| 6327 | - - supports-color | ||
| 6328 | - dev: true | ||
| 6329 | - | ||
| 6330 | - registry.npmmirror.com/@purge-icons/generated/0.9.0: | ||
| 6331 | - resolution: {integrity: sha512-s2t+1oVtGDV6KtqfCXtUOhxfeYvOdDF90IVm+nMs/6bUP0HeGZLslguuL/AibpwtfL4FA/oCsIu/RhwapgAdJw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@purge-icons/generated/-/generated-0.9.0.tgz} | ||
| 6332 | - name: '@purge-icons/generated' | ||
| 6333 | - version: 0.9.0 | ||
| 6334 | - dependencies: | ||
| 6335 | - '@iconify/iconify': registry.npmmirror.com/@iconify/iconify/3.0.1 | ||
| 6336 | - dev: true | ||
| 6337 | - | ||
| 6338 | - registry.npmmirror.com/@vitejs/plugin-legacy/3.0.1_terser@5.16.1+vite@4.0.4: | ||
| 6339 | - resolution: {integrity: sha512-XCtEjxoR3rmy000ujYRBp5kggWqzHz9+F20/yIMUWOzbvu0+KW1e14Fvb8h7SpNn+bfjGW1RiAs1Vrgb7Js+iQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-3.0.1.tgz} | ||
| 6340 | - id: registry.npmmirror.com/@vitejs/plugin-legacy/3.0.1 | ||
| 6341 | - name: '@vitejs/plugin-legacy' | ||
| 6342 | - version: 3.0.1 | ||
| 6343 | - engines: {node: ^14.18.0 || >=16.0.0} | ||
| 6344 | - peerDependencies: | ||
| 6345 | - terser: ^5.4.0 | ||
| 6346 | - vite: ^4.0.0 | ||
| 6347 | - dependencies: | ||
| 6348 | - '@babel/standalone': registry.npmmirror.com/@babel/standalone/7.20.6 | ||
| 6349 | - core-js: registry.npmmirror.com/core-js/3.26.1 | ||
| 6350 | - magic-string: registry.npmmirror.com/magic-string/0.27.0 | ||
| 6351 | - regenerator-runtime: registry.npmmirror.com/regenerator-runtime/0.13.11 | ||
| 6352 | - systemjs: registry.npmmirror.com/systemjs/6.13.0 | ||
| 6353 | - terser: 5.16.1 | ||
| 6354 | - vite: 4.0.4_zxbrnrc4iyldik6mikh3pswz4i | ||
| 6355 | - dev: true | ||
| 6356 | - | ||
| 6357 | - registry.npmmirror.com/@vitejs/plugin-vue-jsx/3.0.0_vite@4.0.4+vue@3.2.45: | ||
| 6358 | - resolution: {integrity: sha512-vurkuzgac5SYuxd2HUZqAFAWGTF10diKBwJNbCvnWijNZfXd+7jMtqjPFbGt7idOJUn584fP1Ar9j/GN2jQ3Ew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.0.0.tgz} | ||
| 6359 | - id: registry.npmmirror.com/@vitejs/plugin-vue-jsx/3.0.0 | ||
| 6360 | - name: '@vitejs/plugin-vue-jsx' | ||
| 6361 | - version: 3.0.0 | ||
| 6362 | - engines: {node: ^14.18.0 || >=16.0.0} | ||
| 6363 | - peerDependencies: | ||
| 6364 | - vite: ^4.0.0 | ||
| 6365 | - vue: ^3.0.0 | ||
| 6366 | - dependencies: | ||
| 6367 | - '@babel/core': registry.npmmirror.com/@babel/core/7.20.5 | ||
| 6368 | - '@babel/plugin-transform-typescript': registry.npmmirror.com/@babel/plugin-transform-typescript/7.20.2_@babel+core@7.20.5 | ||
| 6369 | - '@vue/babel-plugin-jsx': registry.npmmirror.com/@vue/babel-plugin-jsx/1.1.1_@babel+core@7.20.5 | ||
| 6370 | - vite: 4.0.4_zxbrnrc4iyldik6mikh3pswz4i | ||
| 6371 | - vue: 3.2.45 | ||
| 6372 | - transitivePeerDependencies: | ||
| 6373 | - - supports-color | ||
| 6374 | - dev: true | ||
| 6375 | - | ||
| 6376 | - registry.npmmirror.com/@vitejs/plugin-vue/4.0.0_vite@4.0.4+vue@3.2.45: | ||
| 6377 | - resolution: {integrity: sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.0.0.tgz} | ||
| 6378 | - id: registry.npmmirror.com/@vitejs/plugin-vue/4.0.0 | ||
| 6379 | - name: '@vitejs/plugin-vue' | ||
| 6380 | - version: 4.0.0 | ||
| 6381 | - engines: {node: ^14.18.0 || >=16.0.0} | ||
| 6382 | - peerDependencies: | ||
| 6383 | - vite: ^4.0.0 | ||
| 6384 | - vue: ^3.2.25 | ||
| 6385 | - dependencies: | ||
| 6386 | - vite: 4.0.4_zxbrnrc4iyldik6mikh3pswz4i | ||
| 6387 | - vue: 3.2.45 | ||
| 6388 | - dev: true | ||
| 6389 | - | ||
| 6390 | - registry.npmmirror.com/@vue/babel-helper-vue-transform-on/1.0.2: | ||
| 6391 | - resolution: {integrity: sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz} | ||
| 6392 | - name: '@vue/babel-helper-vue-transform-on' | ||
| 6393 | - version: 1.0.2 | ||
| 6394 | - dev: true | ||
| 6395 | - | ||
| 6396 | - registry.npmmirror.com/@vue/babel-plugin-jsx/1.1.1_@babel+core@7.20.5: | ||
| 6397 | - resolution: {integrity: sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz} | ||
| 6398 | - id: registry.npmmirror.com/@vue/babel-plugin-jsx/1.1.1 | ||
| 6399 | - name: '@vue/babel-plugin-jsx' | ||
| 6400 | - version: 1.1.1 | ||
| 6401 | - dependencies: | ||
| 6402 | - '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports/7.18.6 | ||
| 6403 | - '@babel/plugin-syntax-jsx': registry.npmmirror.com/@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.20.5 | ||
| 6404 | - '@babel/template': registry.npmmirror.com/@babel/template/7.18.10 | ||
| 6405 | - '@babel/traverse': registry.npmmirror.com/@babel/traverse/7.20.1 | ||
| 6406 | - '@babel/types': registry.npmmirror.com/@babel/types/7.20.2 | ||
| 6407 | - '@vue/babel-helper-vue-transform-on': registry.npmmirror.com/@vue/babel-helper-vue-transform-on/1.0.2 | ||
| 6408 | - camelcase: registry.npmmirror.com/camelcase/6.3.0 | ||
| 6409 | - html-tags: registry.npmmirror.com/html-tags/3.2.0 | ||
| 6410 | - svg-tags: registry.npmmirror.com/svg-tags/1.0.0 | ||
| 6411 | - transitivePeerDependencies: | ||
| 6412 | - - '@babel/core' | ||
| 6413 | - - supports-color | ||
| 6414 | - dev: true | ||
| 6415 | - | ||
| 6416 | - registry.npmmirror.com/@vue/devtools-api/6.4.5: | ||
| 6417 | - resolution: {integrity: sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.4.5.tgz} | ||
| 6418 | - name: '@vue/devtools-api' | ||
| 6419 | - version: 6.4.5 | ||
| 6420 | - dev: false | ||
| 6421 | - | ||
| 6422 | - registry.npmmirror.com/@windicss/config/1.8.10: | ||
| 6423 | - resolution: {integrity: sha512-O9SsC110b1Ik3YYa4Ck/0TWuCo7YFfA9KDrwD5sAeqscT5COIGK1HszdCT3oh0MJFej2wNrvpfyW9h6yQaW6PA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@windicss/config/-/config-1.8.10.tgz} | ||
| 6424 | - name: '@windicss/config' | ||
| 6425 | - version: 1.8.10 | ||
| 6426 | - dependencies: | ||
| 6427 | - debug: 4.3.4 | ||
| 6428 | - jiti: registry.npmmirror.com/jiti/1.16.0 | ||
| 6429 | - windicss: registry.npmmirror.com/windicss/3.5.6 | ||
| 6430 | - transitivePeerDependencies: | ||
| 6431 | - - supports-color | ||
| 6432 | - dev: true | ||
| 6433 | - | ||
| 6434 | - registry.npmmirror.com/@windicss/plugin-utils/1.8.10: | ||
| 6435 | - resolution: {integrity: sha512-Phqk5OW1w+Mv+ry6t7BzAeDq3aMhbI94gR49j9vQCufFfDGCHndhhjtMK0sBv+NPJUsIAIh6qayb1iwBCXUGrw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@windicss/plugin-utils/-/plugin-utils-1.8.10.tgz} | ||
| 6436 | - name: '@windicss/plugin-utils' | ||
| 6437 | - version: 1.8.10 | ||
| 6438 | - dependencies: | ||
| 6439 | - '@antfu/utils': registry.npmmirror.com/@antfu/utils/0.7.2 | ||
| 6440 | - '@windicss/config': registry.npmmirror.com/@windicss/config/1.8.10 | ||
| 6441 | - debug: 4.3.4 | ||
| 6442 | - fast-glob: registry.npmmirror.com/fast-glob/3.2.12 | ||
| 6443 | - magic-string: registry.npmmirror.com/magic-string/0.27.0 | ||
| 6444 | - micromatch: registry.npmmirror.com/micromatch/4.0.5 | ||
| 6445 | - windicss: registry.npmmirror.com/windicss/3.5.6 | ||
| 6446 | - transitivePeerDependencies: | ||
| 6447 | - - supports-color | ||
| 6448 | - dev: true | ||
| 6449 | - | ||
| 6450 | - registry.npmmirror.com/ansi-styles/4.3.0: | ||
| 6451 | - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz} | ||
| 6452 | - name: ansi-styles | ||
| 6453 | - version: 4.3.0 | ||
| 6454 | - engines: {node: '>=8'} | ||
| 6455 | - dependencies: | ||
| 6456 | - color-convert: registry.npmmirror.com/color-convert/2.0.1 | ||
| 6457 | - | ||
| 6458 | - registry.npmmirror.com/braces/2.3.2: | ||
| 6459 | - resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/braces/-/braces-2.3.2.tgz} | ||
| 6460 | - name: braces | ||
| 6461 | - version: 2.3.2 | ||
| 6462 | - engines: {node: '>=0.10.0'} | ||
| 6463 | - dependencies: | ||
| 6464 | - arr-flatten: 1.1.0 | ||
| 6465 | - array-unique: 0.3.2 | ||
| 6466 | - extend-shallow: 2.0.1 | ||
| 6467 | - fill-range: registry.npmmirror.com/fill-range/4.0.0 | ||
| 6468 | - isobject: 3.0.1 | ||
| 6469 | - repeat-element: 1.1.4 | ||
| 6470 | - snapdragon: 0.8.2 | ||
| 6471 | - snapdragon-node: 2.1.1 | ||
| 6472 | - split-string: 3.1.0 | ||
| 6473 | - to-regex: 3.0.2 | ||
| 6474 | - transitivePeerDependencies: | ||
| 6475 | - - supports-color | ||
| 6476 | - dev: true | ||
| 6477 | - | ||
| 6478 | - registry.npmmirror.com/braces/3.0.2: | ||
| 6479 | - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz} | ||
| 6480 | - name: braces | ||
| 6481 | - version: 3.0.2 | ||
| 6482 | - engines: {node: '>=8'} | ||
| 6483 | - dependencies: | ||
| 6484 | - fill-range: registry.npmmirror.com/fill-range/7.0.1 | ||
| 6485 | - dev: true | ||
| 6486 | - | ||
| 6487 | - registry.npmmirror.com/browserslist/4.21.4: | ||
| 6488 | - resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserslist/-/browserslist-4.21.4.tgz} | ||
| 6489 | - name: browserslist | ||
| 6490 | - version: 4.21.4 | ||
| 6491 | - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} | ||
| 6492 | - hasBin: true | ||
| 6493 | - dependencies: | ||
| 6494 | - caniuse-lite: registry.npmmirror.com/caniuse-lite/1.0.30001431 | ||
| 6495 | - electron-to-chromium: registry.npmmirror.com/electron-to-chromium/1.4.284 | ||
| 6496 | - node-releases: registry.npmmirror.com/node-releases/2.0.6 | ||
| 6497 | - update-browserslist-db: registry.npmmirror.com/update-browserslist-db/1.0.10_browserslist@4.21.4 | ||
| 6498 | - dev: true | ||
| 6499 | - | ||
| 6500 | - registry.npmmirror.com/camelcase/5.3.1: | ||
| 6501 | - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz} | ||
| 6502 | - name: camelcase | ||
| 6503 | - version: 5.3.1 | ||
| 6504 | - engines: {node: '>=6'} | ||
| 6505 | - | ||
| 6506 | - registry.npmmirror.com/camelcase/6.3.0: | ||
| 6507 | - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz} | ||
| 6508 | - name: camelcase | ||
| 6509 | - version: 6.3.0 | ||
| 6510 | - engines: {node: '>=10'} | ||
| 6511 | - dev: true | ||
| 6512 | - | ||
| 6513 | - registry.npmmirror.com/caniuse-lite/1.0.30001431: | ||
| 6514 | - resolution: {integrity: sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz} | ||
| 6515 | - name: caniuse-lite | ||
| 6516 | - version: 1.0.30001431 | ||
| 6517 | - dev: true | ||
| 6518 | - | ||
| 6519 | - registry.npmmirror.com/color-convert/1.9.3: | ||
| 6520 | - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz} | ||
| 6521 | - name: color-convert | ||
| 6522 | - version: 1.9.3 | ||
| 6523 | - dependencies: | ||
| 6524 | - color-name: registry.npmmirror.com/color-name/1.1.3 | ||
| 6525 | - dev: true | ||
| 6526 | - | ||
| 6527 | - registry.npmmirror.com/color-convert/2.0.1: | ||
| 6528 | - 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} | ||
| 6529 | - name: color-convert | ||
| 6530 | - version: 2.0.1 | ||
| 6531 | - engines: {node: '>=7.0.0'} | ||
| 6532 | - dependencies: | ||
| 6533 | - color-name: registry.npmmirror.com/color-name/1.1.4 | ||
| 6534 | - | ||
| 6535 | - registry.npmmirror.com/color-name/1.1.3: | ||
| 6536 | - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz} | ||
| 6537 | - name: color-name | ||
| 6538 | - version: 1.1.3 | ||
| 6539 | - dev: true | ||
| 6540 | - | ||
| 6541 | - registry.npmmirror.com/color-name/1.1.4: | ||
| 6542 | - 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} | ||
| 6543 | - name: color-name | ||
| 6544 | - version: 1.1.4 | ||
| 6545 | - | ||
| 6546 | - registry.npmmirror.com/convert-source-map/1.9.0: | ||
| 6547 | - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz} | ||
| 6548 | - name: convert-source-map | ||
| 6549 | - version: 1.9.0 | ||
| 6550 | - dev: true | ||
| 6551 | - | ||
| 6552 | - registry.npmmirror.com/core-js/3.26.1: | ||
| 6553 | - resolution: {integrity: sha512-21491RRQVzUn0GGM9Z1Jrpr6PNPxPi+Za8OM9q4tksTSnlbXXGKK1nXNg/QvwFYettXvSX6zWKCtHHfjN4puyA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/core-js/-/core-js-3.26.1.tgz} | ||
| 6554 | - name: core-js | ||
| 6555 | - version: 3.26.1 | ||
| 6556 | - requiresBuild: true | ||
| 6557 | - dev: true | ||
| 6558 | - | ||
| 6559 | - registry.npmmirror.com/cross-fetch/3.1.5: | ||
| 6560 | - resolution: {integrity: sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cross-fetch/-/cross-fetch-3.1.5.tgz} | ||
| 6561 | - name: cross-fetch | ||
| 6562 | - version: 3.1.5 | ||
| 6563 | - dependencies: | ||
| 6564 | - node-fetch: registry.npmmirror.com/node-fetch/2.6.7 | ||
| 6565 | - transitivePeerDependencies: | ||
| 6566 | - - encoding | ||
| 6567 | - dev: true | ||
| 6568 | - | ||
| 6569 | - registry.npmmirror.com/debug/4.3.4: | ||
| 6570 | - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz} | ||
| 6571 | - name: debug | ||
| 6572 | - version: 4.3.4 | ||
| 6573 | - engines: {node: '>=6.0'} | ||
| 6574 | - peerDependencies: | ||
| 6575 | - supports-color: '*' | ||
| 6576 | - peerDependenciesMeta: | ||
| 6577 | - supports-color: | ||
| 6578 | - optional: true | ||
| 6579 | - dependencies: | ||
| 6580 | - ms: registry.npmmirror.com/ms/2.1.2 | ||
| 6581 | - dev: true | ||
| 6582 | - | ||
| 6583 | - registry.npmmirror.com/echarts/5.4.1: | ||
| 6584 | - resolution: {integrity: sha512-9ltS3M2JB0w2EhcYjCdmtrJ+6haZcW6acBolMGIuf01Hql1yrIV01L1aRj7jsaaIULJslEP9Z3vKlEmnJaWJVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/echarts/-/echarts-5.4.1.tgz} | ||
| 6585 | - name: echarts | ||
| 6586 | - version: 5.4.1 | ||
| 6587 | - dependencies: | ||
| 6588 | - tslib: registry.npmmirror.com/tslib/2.3.0 | ||
| 6589 | - zrender: registry.npmmirror.com/zrender/5.4.1 | ||
| 6590 | - dev: false | ||
| 6591 | - | ||
| 6592 | - registry.npmmirror.com/electron-to-chromium/1.4.284: | ||
| 6593 | - resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz} | ||
| 6594 | - name: electron-to-chromium | ||
| 6595 | - version: 1.4.284 | ||
| 6596 | - dev: true | ||
| 6597 | - | ||
| 6598 | - registry.npmmirror.com/escalade/3.1.1: | ||
| 6599 | - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz} | ||
| 6600 | - name: escalade | ||
| 6601 | - version: 3.1.1 | ||
| 6602 | - engines: {node: '>=6'} | ||
| 6603 | - dev: true | ||
| 6604 | - | ||
| 6605 | - registry.npmmirror.com/fast-glob/3.2.12: | ||
| 6606 | - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz} | ||
| 6607 | - name: fast-glob | ||
| 6608 | - version: 3.2.12 | ||
| 6609 | - engines: {node: '>=8.6.0'} | ||
| 6610 | - dependencies: | ||
| 6611 | - '@nodelib/fs.stat': registry.npmmirror.com/@nodelib/fs.stat/2.0.5 | ||
| 6612 | - '@nodelib/fs.walk': 1.2.8 | ||
| 6613 | - glob-parent: 5.1.2 | ||
| 6614 | - merge2: registry.npmmirror.com/merge2/1.4.1 | ||
| 6615 | - micromatch: 4.0.5 | ||
| 6616 | - dev: true | ||
| 6617 | - | ||
| 6618 | - registry.npmmirror.com/fill-range/4.0.0: | ||
| 6619 | - resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fill-range/-/fill-range-4.0.0.tgz} | ||
| 6620 | - name: fill-range | ||
| 6621 | - version: 4.0.0 | ||
| 6622 | - engines: {node: '>=0.10.0'} | ||
| 6623 | - dependencies: | ||
| 6624 | - extend-shallow: 2.0.1 | ||
| 6625 | - is-number: registry.npmmirror.com/is-number/3.0.0 | ||
| 6626 | - repeat-string: 1.6.1 | ||
| 6627 | - to-regex-range: registry.npmmirror.com/to-regex-range/2.1.1 | ||
| 6628 | - dev: true | ||
| 6629 | - | ||
| 6630 | - registry.npmmirror.com/fill-range/7.0.1: | ||
| 6631 | - 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} | ||
| 6632 | - name: fill-range | ||
| 6633 | - version: 7.0.1 | ||
| 6634 | - engines: {node: '>=8'} | ||
| 6635 | - dependencies: | ||
| 6636 | - to-regex-range: registry.npmmirror.com/to-regex-range/5.0.1 | ||
| 6637 | - dev: true | ||
| 6638 | - | ||
| 6639 | - registry.npmmirror.com/fs-extra/10.1.0: | ||
| 6640 | - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz} | ||
| 6641 | - name: fs-extra | ||
| 6642 | - version: 10.1.0 | ||
| 6643 | - engines: {node: '>=12'} | ||
| 6644 | - dependencies: | ||
| 6645 | - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.10 | ||
| 6646 | - jsonfile: registry.npmmirror.com/jsonfile/6.1.0 | ||
| 6647 | - universalify: registry.npmmirror.com/universalify/2.0.0 | ||
| 6648 | - dev: true | ||
| 6649 | - | ||
| 6650 | - registry.npmmirror.com/gensync/1.0.0-beta.2: | ||
| 6651 | - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz} | ||
| 6652 | - name: gensync | ||
| 6653 | - version: 1.0.0-beta.2 | ||
| 6654 | - engines: {node: '>=6.9.0'} | ||
| 6655 | - dev: true | ||
| 6656 | - | ||
| 6657 | - registry.npmmirror.com/graceful-fs/4.2.10: | ||
| 6658 | - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz} | ||
| 6659 | - name: graceful-fs | ||
| 6660 | - version: 4.2.10 | ||
| 6661 | - dev: true | ||
| 6662 | - | ||
| 6663 | - registry.npmmirror.com/html-tags/3.2.0: | ||
| 6664 | - resolution: {integrity: sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-tags/-/html-tags-3.2.0.tgz} | ||
| 6665 | - name: html-tags | ||
| 6666 | - version: 3.2.0 | ||
| 6667 | - engines: {node: '>=8'} | ||
| 6668 | - dev: true | ||
| 6669 | - | ||
| 6670 | - registry.npmmirror.com/is-number/3.0.0: | ||
| 6671 | - resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz} | ||
| 6672 | - name: is-number | ||
| 6673 | - version: 3.0.0 | ||
| 6674 | - engines: {node: '>=0.10.0'} | ||
| 6675 | - dependencies: | ||
| 6676 | - kind-of: 3.2.2 | ||
| 6677 | - dev: true | ||
| 6678 | - | ||
| 6679 | - registry.npmmirror.com/is-number/7.0.0: | ||
| 6680 | - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz} | ||
| 6681 | - name: is-number | ||
| 6682 | - version: 7.0.0 | ||
| 6683 | - engines: {node: '>=0.12.0'} | ||
| 6684 | - dev: true | ||
| 6685 | - | ||
| 6686 | - registry.npmmirror.com/jiti/1.16.0: | ||
| 6687 | - resolution: {integrity: sha512-L3BJStEf5NAqNuzrpfbN71dp43mYIcBUlCRea/vdyv5dW/AYa1d4bpelko4SHdY3I6eN9Wzyasxirj1/vv5kmg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jiti/-/jiti-1.16.0.tgz} | ||
| 6688 | - name: jiti | ||
| 6689 | - version: 1.16.0 | ||
| 6690 | - hasBin: true | ||
| 6691 | - dev: true | ||
| 6692 | - | ||
| 6693 | - registry.npmmirror.com/js-tokens/4.0.0: | ||
| 6694 | - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz} | ||
| 6695 | - name: js-tokens | ||
| 6696 | - version: 4.0.0 | ||
| 6697 | - dev: true | ||
| 6698 | - | ||
| 6699 | - registry.npmmirror.com/jsesc/2.5.2: | ||
| 6700 | - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz} | ||
| 6701 | - name: jsesc | ||
| 6702 | - version: 2.5.2 | ||
| 6703 | - engines: {node: '>=4'} | ||
| 6704 | - hasBin: true | ||
| 6705 | - dev: true | ||
| 6706 | - | ||
| 6707 | - registry.npmmirror.com/json5/2.2.1: | ||
| 6708 | - resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json5/-/json5-2.2.1.tgz} | ||
| 6709 | - name: json5 | ||
| 6710 | - version: 2.2.1 | ||
| 6711 | - engines: {node: '>=6'} | ||
| 6712 | - hasBin: true | ||
| 6713 | - dev: true | ||
| 6714 | - | ||
| 6715 | - registry.npmmirror.com/jsonfile/6.1.0: | ||
| 6716 | - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz} | ||
| 6717 | - name: jsonfile | ||
| 6718 | - version: 6.1.0 | ||
| 6719 | - dependencies: | ||
| 6720 | - universalify: registry.npmmirror.com/universalify/2.0.0 | ||
| 6721 | - optionalDependencies: | ||
| 6722 | - graceful-fs: 4.2.10 | ||
| 6723 | - dev: true | ||
| 6724 | - | ||
| 6725 | - registry.npmmirror.com/kolorist/1.6.0: | ||
| 6726 | - resolution: {integrity: sha512-dLkz37Ab97HWMx9KTes3Tbi3D1ln9fCAy2zr2YVExJasDRPGRaKcoE4fycWNtnCAJfjFqe0cnY+f8KT2JePEXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kolorist/-/kolorist-1.6.0.tgz} | ||
| 6727 | - name: kolorist | ||
| 6728 | - version: 1.6.0 | ||
| 6729 | - dev: true | ||
| 6730 | - | ||
| 6731 | - registry.npmmirror.com/lru-cache/6.0.0: | ||
| 6732 | - 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} | ||
| 6733 | - name: lru-cache | ||
| 6734 | - version: 6.0.0 | ||
| 6735 | - engines: {node: '>=10'} | ||
| 6736 | - dependencies: | ||
| 6737 | - yallist: registry.npmmirror.com/yallist/4.0.0 | ||
| 6738 | - dev: true | ||
| 6739 | - | ||
| 6740 | - registry.npmmirror.com/magic-string/0.25.9: | ||
| 6741 | - 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} | ||
| 6742 | - name: magic-string | ||
| 6743 | - version: 0.25.9 | ||
| 6744 | - dependencies: | ||
| 6745 | - sourcemap-codec: 1.4.8 | ||
| 6746 | - | ||
| 6747 | - registry.npmmirror.com/magic-string/0.27.0: | ||
| 6748 | - resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/magic-string/-/magic-string-0.27.0.tgz} | ||
| 6749 | - name: magic-string | ||
| 6750 | - version: 0.27.0 | ||
| 6751 | - engines: {node: '>=12'} | ||
| 6752 | - dependencies: | ||
| 6753 | - '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec/1.4.14 | ||
| 6754 | - dev: true | ||
| 6755 | - | ||
| 6756 | - registry.npmmirror.com/merge2/1.4.1: | ||
| 6757 | - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz} | ||
| 6758 | - name: merge2 | ||
| 6759 | - version: 1.4.1 | ||
| 6760 | - engines: {node: '>= 8'} | ||
| 6761 | - dev: true | ||
| 6762 | - | ||
| 6763 | - registry.npmmirror.com/micromatch/4.0.5: | ||
| 6764 | - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz} | ||
| 6765 | - name: micromatch | ||
| 6766 | - version: 4.0.5 | ||
| 6767 | - engines: {node: '>=8.6'} | ||
| 6768 | - dependencies: | ||
| 6769 | - braces: registry.npmmirror.com/braces/3.0.2 | ||
| 6770 | - picomatch: registry.npmmirror.com/picomatch/2.3.1 | ||
| 6771 | - dev: true | ||
| 6772 | - | ||
| 6773 | - registry.npmmirror.com/ms/2.1.2: | ||
| 6774 | - 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} | ||
| 6775 | - name: ms | ||
| 6776 | - version: 2.1.2 | ||
| 6777 | - dev: true | ||
| 6778 | - | ||
| 6779 | - registry.npmmirror.com/nanoid/3.3.4: | ||
| 6780 | - resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz} | ||
| 6781 | - name: nanoid | ||
| 6782 | - version: 3.3.4 | ||
| 6783 | - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} | ||
| 6784 | - hasBin: true | ||
| 6785 | - | ||
| 6786 | - registry.npmmirror.com/node-fetch/2.6.7: | ||
| 6787 | - resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-fetch/-/node-fetch-2.6.7.tgz} | ||
| 6788 | - name: node-fetch | ||
| 6789 | - version: 2.6.7 | ||
| 6790 | - engines: {node: 4.x || >=6.0.0} | ||
| 6791 | - peerDependencies: | ||
| 6792 | - encoding: ^0.1.0 | ||
| 6793 | - peerDependenciesMeta: | ||
| 6794 | - encoding: | ||
| 6795 | - optional: true | ||
| 6796 | - dependencies: | ||
| 6797 | - whatwg-url: registry.npmmirror.com/whatwg-url/5.0.0 | ||
| 6798 | - dev: true | ||
| 6799 | - | ||
| 6800 | - registry.npmmirror.com/node-releases/2.0.6: | ||
| 6801 | - resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-releases/-/node-releases-2.0.6.tgz} | ||
| 6802 | - name: node-releases | ||
| 6803 | - version: 2.0.6 | ||
| 6804 | - dev: true | ||
| 6805 | - | ||
| 6806 | - registry.npmmirror.com/picocolors/1.0.0: | ||
| 6807 | - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz} | ||
| 6808 | - name: picocolors | ||
| 6809 | - version: 1.0.0 | ||
| 6810 | - | ||
| 6811 | - registry.npmmirror.com/picomatch/2.3.1: | ||
| 6812 | - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz} | ||
| 6813 | - name: picomatch | ||
| 6814 | - version: 2.3.1 | ||
| 6815 | - engines: {node: '>=8.6'} | ||
| 6816 | - dev: true | ||
| 6817 | - | ||
| 6818 | - registry.npmmirror.com/pinia/2.0.28_prq2uz4lho2pwp6irk4cfkrxwu: | ||
| 6819 | - resolution: {integrity: sha512-YClq9DkqCblq9rlyUual7ezMu/iICWdBtfJrDt4oWU9Zxpijyz7xB2xTwx57DaBQ96UGvvTMORzALr+iO5PVMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pinia/-/pinia-2.0.28.tgz} | ||
| 6820 | - id: registry.npmmirror.com/pinia/2.0.28 | ||
| 6821 | - name: pinia | ||
| 6822 | - version: 2.0.28 | ||
| 6823 | - peerDependencies: | ||
| 6824 | - '@vue/composition-api': ^1.4.0 | ||
| 6825 | - typescript: '>=4.4.4' | ||
| 6826 | - vue: ^2.6.14 || ^3.2.0 | ||
| 6827 | - peerDependenciesMeta: | ||
| 6828 | - '@vue/composition-api': | ||
| 6829 | - optional: true | ||
| 6830 | - typescript: | ||
| 6831 | - optional: true | ||
| 6832 | - dependencies: | ||
| 6833 | - '@vue/devtools-api': registry.npmmirror.com/@vue/devtools-api/6.4.5 | ||
| 6834 | - typescript: 4.9.4 | ||
| 6835 | - vue: 3.2.45 | ||
| 6836 | - vue-demi: registry.npmmirror.com/vue-demi/0.13.11_vue@3.2.45 | ||
| 6837 | - dev: false | ||
| 6838 | - | ||
| 6839 | - registry.npmmirror.com/postcss/8.4.20: | ||
| 6840 | - resolution: {integrity: sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss/-/postcss-8.4.20.tgz} | ||
| 6841 | - name: postcss | ||
| 6842 | - version: 8.4.20 | ||
| 6843 | - engines: {node: ^10 || ^12 || >=14} | ||
| 6844 | - dependencies: | ||
| 6845 | - nanoid: registry.npmmirror.com/nanoid/3.3.4 | ||
| 6846 | - picocolors: registry.npmmirror.com/picocolors/1.0.0 | ||
| 6847 | - source-map-js: registry.npmmirror.com/source-map-js/1.0.2 | ||
| 6848 | - | ||
| 6849 | - registry.npmmirror.com/regenerator-runtime/0.13.11: | ||
| 6850 | - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz} | ||
| 6851 | - name: regenerator-runtime | ||
| 6852 | - version: 0.13.11 | ||
| 6853 | - | ||
| 6854 | - registry.npmmirror.com/rollup-plugin-purge-icons/0.9.1: | ||
| 6855 | - resolution: {integrity: sha512-hRDKBsPUz47UMdBufki2feTmBF2ClEJlYqL7N6vpVAHSLd7V2BJUaNKOF7YYbLMofVVF+9hm44YSkYO6k9hUgg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup-plugin-purge-icons/-/rollup-plugin-purge-icons-0.9.1.tgz} | ||
| 6856 | - name: rollup-plugin-purge-icons | ||
| 6857 | - version: 0.9.1 | ||
| 6858 | - engines: {node: '>= 12'} | ||
| 6859 | - dependencies: | ||
| 6860 | - '@purge-icons/core': registry.npmmirror.com/@purge-icons/core/0.9.1 | ||
| 6861 | - '@purge-icons/generated': registry.npmmirror.com/@purge-icons/generated/0.9.0 | ||
| 6862 | - transitivePeerDependencies: | ||
| 6863 | - - encoding | ||
| 6864 | - - supports-color | ||
| 6865 | - dev: true | ||
| 6866 | - | ||
| 6867 | - registry.npmmirror.com/semver/6.3.0: | ||
| 6868 | - resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz} | ||
| 6869 | - name: semver | ||
| 6870 | - version: 6.3.0 | ||
| 6871 | - hasBin: true | ||
| 6872 | - dev: true | ||
| 6873 | - | ||
| 6874 | - registry.npmmirror.com/semver/7.3.7: | ||
| 6875 | - 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} | ||
| 6876 | - name: semver | ||
| 6877 | - version: 7.3.7 | ||
| 6878 | - engines: {node: '>=10'} | ||
| 6879 | - hasBin: true | ||
| 6880 | - dependencies: | ||
| 6881 | - lru-cache: registry.npmmirror.com/lru-cache/6.0.0 | ||
| 6882 | - dev: true | ||
| 6883 | - | ||
| 6884 | - registry.npmmirror.com/semver/7.3.8: | ||
| 6885 | - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz} | ||
| 6886 | - name: semver | ||
| 6887 | - version: 7.3.8 | ||
| 6888 | - engines: {node: '>=10'} | ||
| 6889 | - hasBin: true | ||
| 6890 | - dependencies: | ||
| 6891 | - lru-cache: registry.npmmirror.com/lru-cache/6.0.0 | ||
| 6892 | - dev: true | ||
| 6893 | - | ||
| 6894 | - registry.npmmirror.com/source-map-js/1.0.2: | ||
| 6895 | - 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} | ||
| 6896 | - name: source-map-js | ||
| 6897 | - version: 1.0.2 | ||
| 6898 | - engines: {node: '>=0.10.0'} | ||
| 6899 | - | ||
| 6900 | - registry.npmmirror.com/supports-color/3.2.3: | ||
| 6901 | - resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-3.2.3.tgz} | ||
| 6902 | - name: supports-color | ||
| 6903 | - version: 3.2.3 | ||
| 6904 | - engines: {node: '>=0.8.0'} | ||
| 6905 | - dependencies: | ||
| 6906 | - has-flag: 1.0.0 | ||
| 6907 | - dev: true | ||
| 6908 | - | ||
| 6909 | - registry.npmmirror.com/svg-tags/1.0.0: | ||
| 6910 | - resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz} | ||
| 6911 | - name: svg-tags | ||
| 6912 | - version: 1.0.0 | ||
| 6913 | - dev: true | ||
| 6914 | - | ||
| 6915 | - registry.npmmirror.com/systemjs/6.13.0: | ||
| 6916 | - resolution: {integrity: sha512-P3cgh2bpaPvAO2NE3uRp/n6hmk4xPX4DQf+UzTlCAycssKdqhp6hjw+ENWe+aUS7TogKRFtptMosTSFeC6R55g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/systemjs/-/systemjs-6.13.0.tgz} | ||
| 6917 | - name: systemjs | ||
| 6918 | - version: 6.13.0 | ||
| 6919 | - dev: true | ||
| 6920 | - | ||
| 6921 | - registry.npmmirror.com/to-fast-properties/2.0.0: | ||
| 6922 | - 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} | ||
| 6923 | - name: to-fast-properties | ||
| 6924 | - version: 2.0.0 | ||
| 6925 | - engines: {node: '>=4'} | ||
| 6926 | - | ||
| 6927 | - registry.npmmirror.com/to-regex-range/2.1.1: | ||
| 6928 | - resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/to-regex-range/-/to-regex-range-2.1.1.tgz} | ||
| 6929 | - name: to-regex-range | ||
| 6930 | - version: 2.1.1 | ||
| 6931 | - engines: {node: '>=0.10.0'} | ||
| 6932 | - dependencies: | ||
| 6933 | - is-number: registry.npmmirror.com/is-number/3.0.0 | ||
| 6934 | - repeat-string: 1.6.1 | ||
| 6935 | - dev: true | ||
| 6936 | - | ||
| 6937 | - registry.npmmirror.com/to-regex-range/5.0.1: | ||
| 6938 | - 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} | ||
| 6939 | - name: to-regex-range | ||
| 6940 | - version: 5.0.1 | ||
| 6941 | - engines: {node: '>=8.0'} | ||
| 6942 | - dependencies: | ||
| 6943 | - is-number: registry.npmmirror.com/is-number/7.0.0 | ||
| 6944 | - dev: true | ||
| 6945 | - | ||
| 6946 | - registry.npmmirror.com/tr46/0.0.3: | ||
| 6947 | - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz} | ||
| 6948 | - name: tr46 | ||
| 6949 | - version: 0.0.3 | ||
| 6950 | - dev: true | ||
| 6951 | - | ||
| 6952 | - registry.npmmirror.com/tslib/2.3.0: | ||
| 6953 | - resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz} | ||
| 6954 | - name: tslib | ||
| 6955 | - version: 2.3.0 | ||
| 6956 | - dev: false | ||
| 6957 | - | ||
| 6958 | - registry.npmmirror.com/tslib/2.4.1: | ||
| 6959 | - resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-2.4.1.tgz} | ||
| 6960 | - name: tslib | ||
| 6961 | - version: 2.4.1 | ||
| 6962 | - dev: true | ||
| 6963 | - | ||
| 6964 | - registry.npmmirror.com/universalify/2.0.0: | ||
| 6965 | - resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz} | ||
| 6966 | - name: universalify | ||
| 6967 | - version: 2.0.0 | ||
| 6968 | - engines: {node: '>= 10.0.0'} | ||
| 6969 | - dev: true | ||
| 6970 | - | ||
| 6971 | - registry.npmmirror.com/update-browserslist-db/1.0.10_browserslist@4.21.4: | ||
| 6972 | - resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz} | ||
| 6973 | - id: registry.npmmirror.com/update-browserslist-db/1.0.10 | ||
| 6974 | - name: update-browserslist-db | ||
| 6975 | - version: 1.0.10 | ||
| 6976 | - hasBin: true | ||
| 6977 | - peerDependencies: | ||
| 6978 | - browserslist: '>= 4.21.0' | ||
| 6979 | - dependencies: | ||
| 6980 | - browserslist: registry.npmmirror.com/browserslist/4.21.4 | ||
| 6981 | - escalade: registry.npmmirror.com/escalade/3.1.1 | ||
| 6982 | - picocolors: 1.0.0 | ||
| 6983 | - dev: true | ||
| 6984 | - | ||
| 6985 | - registry.npmmirror.com/vite-plugin-purge-icons/0.9.2_vite@4.0.4: | ||
| 6986 | - resolution: {integrity: sha512-vxJEMyNyckqLr/4HPsW9P6BMLUvOVMvjjFz3jLl4Wke1KWE8ITJUxIUwodxaOmEp9L2lxVk5an3TYeycZCfqFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite-plugin-purge-icons/-/vite-plugin-purge-icons-0.9.2.tgz} | ||
| 6987 | - id: registry.npmmirror.com/vite-plugin-purge-icons/0.9.2 | ||
| 6988 | - name: vite-plugin-purge-icons | ||
| 6989 | - version: 0.9.2 | ||
| 6990 | - engines: {node: '>= 12'} | ||
| 6991 | - peerDependencies: | ||
| 6992 | - vite: ^2.0.0 || ^3.0.0 || ^4.0.0 | ||
| 6993 | - dependencies: | ||
| 6994 | - '@purge-icons/core': registry.npmmirror.com/@purge-icons/core/0.9.1 | ||
| 6995 | - '@purge-icons/generated': registry.npmmirror.com/@purge-icons/generated/0.9.0 | ||
| 6996 | - rollup-plugin-purge-icons: registry.npmmirror.com/rollup-plugin-purge-icons/0.9.1 | ||
| 6997 | - vite: 4.0.4_zxbrnrc4iyldik6mikh3pswz4i | ||
| 6998 | - transitivePeerDependencies: | ||
| 6999 | - - encoding | ||
| 7000 | - - supports-color | ||
| 7001 | - dev: true | ||
| 7002 | - | ||
| 7003 | - registry.npmmirror.com/vite-plugin-windicss/1.8.10_vite@4.0.4: | ||
| 7004 | - resolution: {integrity: sha512-scywsuzo46lcTBohspmF0WiwhWEte6p+OUVrX4yr7VMRvLHMHVfLtJReyD5pppjijG7YOwVsZn7XBWWZtF658Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite-plugin-windicss/-/vite-plugin-windicss-1.8.10.tgz} | ||
| 7005 | - id: registry.npmmirror.com/vite-plugin-windicss/1.8.10 | ||
| 7006 | - name: vite-plugin-windicss | ||
| 7007 | - version: 1.8.10 | ||
| 7008 | - peerDependencies: | ||
| 7009 | - vite: ^2.0.1 || ^3.0.0 || ^4.0.0 | ||
| 7010 | - dependencies: | ||
| 7011 | - '@windicss/plugin-utils': registry.npmmirror.com/@windicss/plugin-utils/1.8.10 | ||
| 7012 | - debug: registry.npmmirror.com/debug/4.3.4 | ||
| 7013 | - kolorist: registry.npmmirror.com/kolorist/1.6.0 | ||
| 7014 | - vite: 4.0.4_zxbrnrc4iyldik6mikh3pswz4i | ||
| 7015 | - windicss: registry.npmmirror.com/windicss/3.5.6 | ||
| 7016 | - transitivePeerDependencies: | ||
| 7017 | - - supports-color | ||
| 7018 | - dev: true | ||
| 7019 | - | ||
| 7020 | - registry.npmmirror.com/vue-demi/0.13.11_vue@3.2.45: | ||
| 7021 | - resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz} | ||
| 7022 | - id: registry.npmmirror.com/vue-demi/0.13.11 | ||
| 7023 | - name: vue-demi | ||
| 7024 | - version: 0.13.11 | ||
| 7025 | - engines: {node: '>=12'} | ||
| 7026 | - hasBin: true | ||
| 7027 | - requiresBuild: true | ||
| 7028 | - peerDependencies: | ||
| 7029 | - '@vue/composition-api': ^1.0.0-rc.1 | ||
| 7030 | - vue: ^3.0.0-0 || ^2.6.0 | ||
| 7031 | - peerDependenciesMeta: | ||
| 7032 | - '@vue/composition-api': | ||
| 7033 | - optional: true | ||
| 7034 | - dependencies: | ||
| 7035 | - vue: 3.2.45 | ||
| 7036 | - dev: false | ||
| 7037 | - | ||
| 7038 | - registry.npmmirror.com/vxe-table/4.3.7_vue@3.2.45+xe-utils@3.5.7: | ||
| 7039 | - resolution: {integrity: sha512-v+d7eEQ5uqtVTQCts4xkW0S15LZcIuEukYHGXI53SdoUj2gLFggPYAxQr1y659CM/ESRWPz9LNVHpd97KkjGHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vxe-table/-/vxe-table-4.3.7.tgz} | ||
| 7040 | - id: registry.npmmirror.com/vxe-table/4.3.7 | ||
| 7041 | - name: vxe-table | ||
| 7042 | - version: 4.3.7 | ||
| 7043 | - peerDependencies: | ||
| 7044 | - vue: ^3.2.28 | ||
| 7045 | - xe-utils: ^3.5.0 | ||
| 7046 | - dependencies: | ||
| 7047 | - vue: 3.2.45 | ||
| 7048 | - xe-utils: 3.5.7 | ||
| 7049 | - dev: false | ||
| 7050 | - | ||
| 7051 | - registry.npmmirror.com/webidl-conversions/3.0.1: | ||
| 7052 | - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz} | ||
| 7053 | - name: webidl-conversions | ||
| 7054 | - version: 3.0.1 | ||
| 7055 | - dev: true | ||
| 7056 | - | ||
| 7057 | - registry.npmmirror.com/whatwg-url/5.0.0: | ||
| 7058 | - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz} | ||
| 7059 | - name: whatwg-url | ||
| 7060 | - version: 5.0.0 | ||
| 7061 | - dependencies: | ||
| 7062 | - tr46: registry.npmmirror.com/tr46/0.0.3 | ||
| 7063 | - webidl-conversions: registry.npmmirror.com/webidl-conversions/3.0.1 | ||
| 7064 | - dev: true | ||
| 7065 | - | ||
| 7066 | - registry.npmmirror.com/windicss/3.5.6: | ||
| 7067 | - resolution: {integrity: sha512-P1mzPEjgFMZLX0ZqfFht4fhV/FX8DTG7ERG1fBLiWvd34pTLVReS5CVsewKn9PApSgXnVfPWwvq+qUsRwpnwFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/windicss/-/windicss-3.5.6.tgz} | ||
| 7068 | - name: windicss | ||
| 7069 | - version: 3.5.6 | ||
| 7070 | - engines: {node: '>= 12'} | ||
| 7071 | - hasBin: true | ||
| 7072 | - dev: true | ||
| 7073 | - | ||
| 7074 | - registry.npmmirror.com/yallist/4.0.0: | ||
| 7075 | - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz} | ||
| 7076 | - name: yallist | ||
| 7077 | - version: 4.0.0 | ||
| 7078 | - dev: true | ||
| 7079 | - | ||
| 7080 | - registry.npmmirror.com/zrender/5.4.1: | ||
| 7081 | - resolution: {integrity: sha512-M4Z05BHWtajY2241EmMPHglDQAJ1UyHQcYsxDNzD9XLSkPDqMq4bB28v9Pb4mvHnVQ0GxyTklZ/69xCFP6RXBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/zrender/-/zrender-5.4.1.tgz} | ||
| 7082 | - name: zrender | ||
| 7083 | - version: 5.4.1 | 6504 | + /zrender/5.4.1: |
| 6505 | + resolution: {integrity: sha512-M4Z05BHWtajY2241EmMPHglDQAJ1UyHQcYsxDNzD9XLSkPDqMq4bB28v9Pb4mvHnVQ0GxyTklZ/69xCFP6RXBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npm.taobao.org/zrender/-/zrender-5.4.1.tgz} | ||
| 7084 | dependencies: | 6506 | dependencies: |
| 7085 | - tslib: registry.npmmirror.com/tslib/2.3.0 | 6507 | + tslib: 2.3.0 |
| 7086 | dev: false | 6508 | dev: false |
yudao-ui-admin-vue3/src/components/Crontab/src/Crontab.vue
| @@ -353,7 +353,6 @@ const select = ref() | @@ -353,7 +353,6 @@ const select = ref() | ||
| 353 | watch( | 353 | watch( |
| 354 | () => select.value, | 354 | () => select.value, |
| 355 | () => { | 355 | () => { |
| 356 | - console.info(select.value) | ||
| 357 | if (select.value == 'custom') { | 356 | if (select.value == 'custom') { |
| 358 | open() | 357 | open() |
| 359 | } else { | 358 | } else { |
yudao-ui-admin-vue3/src/components/XTable/src/style/dark.scss
| @@ -78,4 +78,4 @@ $vxe-modal-border-color: #3b3b3b; | @@ -78,4 +78,4 @@ $vxe-modal-border-color: #3b3b3b; | ||
| 78 | /*pulldown*/ | 78 | /*pulldown*/ |
| 79 | $vxe-pulldown-panel-background-color: #262626 !default; | 79 | $vxe-pulldown-panel-background-color: #262626 !default; |
| 80 | 80 | ||
| 81 | -@import 'vxe-table/styles/index'; | 81 | +@import 'vxe-table/styles/index.scss'; |
yudao-ui-admin-vue3/src/components/XTable/src/style/index.scss
| 1 | -@import 'vxe-table/styles/variable.scss'; | ||
| 2 | -@import 'vxe-table/styles/modules.scss'; | 1 | +// @import 'vxe-table/styles/variable.scss'; |
| 2 | +// @import 'vxe-table/styles/modules.scss'; | ||
| 3 | // @import './theme/light.scss'; | 3 | // @import './theme/light.scss'; |
| 4 | i { | 4 | i { |
| 5 | border-color: initial; | 5 | border-color: initial; |
yudao-ui-admin-vue3/src/components/XTable/src/type.ts
| @@ -7,15 +7,14 @@ export type XTableProps<D = any> = VxeGridProps<D> & { | @@ -7,15 +7,14 @@ export type XTableProps<D = any> = VxeGridProps<D> & { | ||
| 7 | topActionSlots?: boolean // 是否开启表格内顶部操作栏插槽 | 7 | topActionSlots?: boolean // 是否开启表格内顶部操作栏插槽 |
| 8 | treeConfig?: VxeTablePropTypes.TreeConfig // 树形表单配置 | 8 | treeConfig?: VxeTablePropTypes.TreeConfig // 树形表单配置 |
| 9 | isList?: boolean // 是否不带分页的list | 9 | isList?: boolean // 是否不带分页的list |
| 10 | - getListApi?: Function | ||
| 11 | - getAllListApi?: Function | ||
| 12 | - deleteApi?: Function | ||
| 13 | - exportListApi?: Function | 10 | + getListApi?: Function // 获取列表接口 |
| 11 | + getAllListApi?: Function // 获取全部数据接口 用于 vxe 导出 | ||
| 12 | + deleteApi?: Function // 删除接口 | ||
| 13 | + exportListApi?: Function // 导出接口 | ||
| 14 | exportName?: string // 导出文件夹名称 | 14 | exportName?: string // 导出文件夹名称 |
| 15 | - params?: any | ||
| 16 | - pagination?: boolean | VxeGridPropTypes.PagerConfig | ||
| 17 | - toolBar?: boolean | VxeGridPropTypes.ToolbarConfig | ||
| 18 | - afterFetch?: Function | 15 | + params?: any // 其他查询参数 |
| 16 | + pagination?: boolean | VxeGridPropTypes.PagerConfig // 分页配置参数 | ||
| 17 | + toolBar?: boolean | VxeGridPropTypes.ToolbarConfig // 右侧工具栏配置参数 | ||
| 19 | } | 18 | } |
| 20 | export type XColumns = VxeGridPropTypes.Columns | 19 | export type XColumns = VxeGridPropTypes.Columns |
| 21 | 20 |
yudao-ui-admin-vue3/src/hooks/web/useVxeCrudSchemas.ts
| @@ -165,7 +165,7 @@ const filterSearchSchema = (crudSchema: VxeCrudSchema): VxeFormItemProps[] => { | @@ -165,7 +165,7 @@ const filterSearchSchema = (crudSchema: VxeCrudSchema): VxeFormItemProps[] => { | ||
| 165 | // 添加搜索按钮 | 165 | // 添加搜索按钮 |
| 166 | const buttons: VxeFormItemProps = { | 166 | const buttons: VxeFormItemProps = { |
| 167 | span: 24, | 167 | span: 24, |
| 168 | - align: 'center', | 168 | + align: 'right', |
| 169 | collapseNode: searchSchema.length > spanLength, | 169 | collapseNode: searchSchema.length > spanLength, |
| 170 | itemRender: { | 170 | itemRender: { |
| 171 | name: '$buttons', | 171 | name: '$buttons', |
yudao-ui-admin-vue3/src/main.ts
| @@ -26,15 +26,17 @@ import '@/styles/index.scss' | @@ -26,15 +26,17 @@ import '@/styles/index.scss' | ||
| 26 | import '@/plugins/animate.css' | 26 | import '@/plugins/animate.css' |
| 27 | 27 | ||
| 28 | // 路由 | 28 | // 路由 |
| 29 | -import { setupRouter } from './router' | 29 | +import router, { setupRouter } from '@/router' |
| 30 | 30 | ||
| 31 | // 权限 | 31 | // 权限 |
| 32 | -import { setupAuth } from './directives' | 32 | +import { setupAuth } from '@/directives' |
| 33 | 33 | ||
| 34 | import { createApp } from 'vue' | 34 | import { createApp } from 'vue' |
| 35 | 35 | ||
| 36 | import App from './App.vue' | 36 | import App from './App.vue' |
| 37 | 37 | ||
| 38 | +import './permission' | ||
| 39 | + | ||
| 38 | // 创建实例 | 40 | // 创建实例 |
| 39 | const setupAll = async () => { | 41 | const setupAll = async () => { |
| 40 | const app = createApp(App) | 42 | const app = createApp(App) |
| @@ -53,6 +55,8 @@ const setupAll = async () => { | @@ -53,6 +55,8 @@ const setupAll = async () => { | ||
| 53 | 55 | ||
| 54 | setupAuth(app) | 56 | setupAuth(app) |
| 55 | 57 | ||
| 58 | + await router.isReady() | ||
| 59 | + | ||
| 56 | app.mount('#app') | 60 | app.mount('#app') |
| 57 | } | 61 | } |
| 58 | 62 |
yudao-ui-admin-vue3/src/permission.ts
0 → 100644
| 1 | +import router from './router' | ||
| 2 | +import type { RouteRecordRaw } from 'vue-router' | ||
| 3 | +import { isRelogin } from '@/config/axios/service' | ||
| 4 | +import { getAccessToken } from '@/utils/auth' | ||
| 5 | +import { useTitle } from '@/hooks/web/useTitle' | ||
| 6 | +import { useNProgress } from '@/hooks/web/useNProgress' | ||
| 7 | +import { usePageLoading } from '@/hooks/web/usePageLoading' | ||
| 8 | +import { useDictStoreWithOut } from '@/store/modules/dict' | ||
| 9 | +import { useUserStoreWithOut } from '@/store/modules/user' | ||
| 10 | +import { usePermissionStoreWithOut } from '@/store/modules/permission' | ||
| 11 | + | ||
| 12 | +const { start, done } = useNProgress() | ||
| 13 | + | ||
| 14 | +const { loadStart, loadDone } = usePageLoading() | ||
| 15 | +// 路由不重定向白名单 | ||
| 16 | +const whiteList = [ | ||
| 17 | + '/login', | ||
| 18 | + '/social-login', | ||
| 19 | + '/auth-redirect', | ||
| 20 | + '/bind', | ||
| 21 | + '/register', | ||
| 22 | + '/oauthLogin/gitee' | ||
| 23 | +] | ||
| 24 | + | ||
| 25 | +// 路由加载前 | ||
| 26 | +router.beforeEach(async (to, from, next) => { | ||
| 27 | + start() | ||
| 28 | + loadStart() | ||
| 29 | + if (getAccessToken()) { | ||
| 30 | + if (to.path === '/login') { | ||
| 31 | + next({ path: '/' }) | ||
| 32 | + } else { | ||
| 33 | + // 获取所有字典 | ||
| 34 | + const dictStore = useDictStoreWithOut() | ||
| 35 | + const userStore = useUserStoreWithOut() | ||
| 36 | + const permissionStore = usePermissionStoreWithOut() | ||
| 37 | + if (!dictStore.getIsSetDict) { | ||
| 38 | + dictStore.setDictMap() | ||
| 39 | + } | ||
| 40 | + if (!userStore.getIsSetUser) { | ||
| 41 | + isRelogin.show = true | ||
| 42 | + await userStore.setUserInfoAction() | ||
| 43 | + isRelogin.show = false | ||
| 44 | + // 后端过滤菜单 | ||
| 45 | + await permissionStore.generateRoutes() | ||
| 46 | + permissionStore.getAddRouters.forEach((route) => { | ||
| 47 | + router.addRoute(route as unknown as RouteRecordRaw) // 动态添加可访问路由表 | ||
| 48 | + }) | ||
| 49 | + const redirectPath = from.query.redirect || to.path | ||
| 50 | + const redirect = decodeURIComponent(redirectPath as string) | ||
| 51 | + const nextData = to.path === redirect ? { ...to, replace: true } : { path: redirect } | ||
| 52 | + next(nextData) | ||
| 53 | + } else { | ||
| 54 | + next() | ||
| 55 | + } | ||
| 56 | + } | ||
| 57 | + } else { | ||
| 58 | + if (whiteList.indexOf(to.path) !== -1) { | ||
| 59 | + next() | ||
| 60 | + } else { | ||
| 61 | + next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页 | ||
| 62 | + } | ||
| 63 | + } | ||
| 64 | +}) | ||
| 65 | + | ||
| 66 | +router.afterEach((to) => { | ||
| 67 | + useTitle(to?.meta?.title as string) | ||
| 68 | + done() // 结束Progress | ||
| 69 | + loadDone() | ||
| 70 | +}) |
yudao-ui-admin-vue3/src/plugins/vxeTable/index.scss deleted
yudao-ui-admin-vue3/src/plugins/vxeTable/renderer/index.tsx
yudao-ui-admin-vue3/src/plugins/vxeTable/renderer/preview.tsx
0 → 100644
| 1 | +import { VXETable } from 'vxe-table' | ||
| 2 | +import { ElImage, ElLink } from 'element-plus' | ||
| 3 | + | ||
| 4 | +// 图片渲染 | ||
| 5 | +VXETable.renderer.add('XPreview', { | ||
| 6 | + // 默认显示模板 | ||
| 7 | + renderDefault(_renderOpts, params) { | ||
| 8 | + const { row, column } = params | ||
| 9 | + if (row.type.indexOf('image/') === 0) { | ||
| 10 | + return ( | ||
| 11 | + <ElImage | ||
| 12 | + style="width: 80px; height: 50px" | ||
| 13 | + src={row[column.field]} | ||
| 14 | + key={row[column.field]} | ||
| 15 | + preview-src-list={[row[column.field]]} | ||
| 16 | + fit="contain" | ||
| 17 | + lazy | ||
| 18 | + ></ElImage> | ||
| 19 | + ) | ||
| 20 | + } else if (row.type.indexOf('video/') === 0) { | ||
| 21 | + return ( | ||
| 22 | + <video> | ||
| 23 | + <source src={row[column.field]}></source> | ||
| 24 | + </video> | ||
| 25 | + ) | ||
| 26 | + } else { | ||
| 27 | + return ( | ||
| 28 | + <ElLink href={row[column.field]} target="_blank"> | ||
| 29 | + {row[column.field]} | ||
| 30 | + </ElLink> | ||
| 31 | + ) | ||
| 32 | + } | ||
| 33 | + } | ||
| 34 | +}) |
yudao-ui-admin-vue3/src/plugins/vxeTable/theme/dark.scss deleted
| 1 | -// 修改样式变量 | ||
| 2 | -//@import 'vxe-table/styles/variable.scss'; | ||
| 3 | - | ||
| 4 | -/*font*/ | ||
| 5 | -$vxe-font-color: #e5e7eb; | ||
| 6 | -// $vxe-font-size: 14px !default; | ||
| 7 | -// $vxe-font-size-medium: 16px !default; | ||
| 8 | -// $vxe-font-size-small: 14px !default; | ||
| 9 | -// $vxe-font-size-mini: 12px !default; | ||
| 10 | - | ||
| 11 | -/*color*/ | ||
| 12 | -$vxe-primary-color: #409eff !default; | ||
| 13 | -$vxe-success-color: #67c23a !default; | ||
| 14 | -$vxe-info-color: #909399 !default; | ||
| 15 | -$vxe-warning-color: #e6a23c !default; | ||
| 16 | -$vxe-danger-color: #f56c6c !default; | ||
| 17 | -$vxe-disabled-color: #bfbfbf !default; | ||
| 18 | -$vxe-primary-disabled-color: #c0c4cc !default; | ||
| 19 | - | ||
| 20 | -/*loading*/ | ||
| 21 | -$vxe-loading-color: $vxe-primary-color !default; | ||
| 22 | -$vxe-loading-background-color: #1d1e1f !default; | ||
| 23 | -$vxe-loading-z-index: 999 !default; | ||
| 24 | - | ||
| 25 | -/*icon*/ | ||
| 26 | -$vxe-icon-font-family: Verdana, Arial, Tahoma !default; | ||
| 27 | -$vxe-icon-background-color: #e5e7eb !default; | ||
| 28 | - | ||
| 29 | -/*toolbar*/ | ||
| 30 | -$vxe-toolbar-background-color: #1d1e1f !default; | ||
| 31 | -$vxe-toolbar-button-border: #dcdfe6 !default; | ||
| 32 | -$vxe-toolbar-custom-active-background-color: #d9dadb !default; | ||
| 33 | -$vxe-toolbar-panel-background-color: #e5e7eb !default; | ||
| 34 | - | ||
| 35 | -$vxe-table-font-color: #e5e7eb; | ||
| 36 | -$vxe-table-header-background-color: #1d1e1f; | ||
| 37 | -$vxe-table-body-background-color: #141414; | ||
| 38 | -$vxe-table-row-striped-background-color: #1d1d1d; | ||
| 39 | -$vxe-table-row-hover-background-color: #1d1e1f; | ||
| 40 | -$vxe-table-row-hover-striped-background-color: #1e1e1e; | ||
| 41 | -$vxe-table-footer-background-color: #1d1e1f; | ||
| 42 | -$vxe-table-row-current-background-color: #302d2d; | ||
| 43 | -$vxe-table-column-current-background-color: #302d2d; | ||
| 44 | -$vxe-table-column-hover-background-color: #302d2d; | ||
| 45 | -$vxe-table-row-hover-current-background-color: #302d2d; | ||
| 46 | -$vxe-table-row-checkbox-checked-background-color: #3e3c37 !default; | ||
| 47 | -$vxe-table-row-hover-checkbox-checked-background-color: #615a4a !default; | ||
| 48 | -$vxe-table-menu-background-color: #1d1e1f; | ||
| 49 | -$vxe-table-border-width: 1px !default; | ||
| 50 | -$vxe-table-border-color: #4c4d4f !default; | ||
| 51 | -$vxe-table-fixed-left-scrolling-box-shadow: 8px 0px 10px -5px rgba(0, 0, 0, 0.12) !default; | ||
| 52 | -$vxe-table-fixed-right-scrolling-box-shadow: -8px 0px 10px -5px rgba(0, 0, 0, 0.12) !default; | ||
| 53 | - | ||
| 54 | -$vxe-form-background-color: #141414; | ||
| 55 | - | ||
| 56 | -/*pager*/ | ||
| 57 | -$vxe-pager-background-color: #1d1e1f !default; | ||
| 58 | -$vxe-pager-perfect-background-color: #262727 !default; | ||
| 59 | -$vxe-pager-perfect-button-background-color: #a7a3a3 !default; | ||
| 60 | - | ||
| 61 | -$vxe-input-background-color: #141414; | ||
| 62 | -$vxe-input-border-color: #4c4d4f !default; | ||
| 63 | - | ||
| 64 | -$vxe-select-option-hover-background-color: #262626 !default; | ||
| 65 | -$vxe-select-panel-background-color: #141414 !default; | ||
| 66 | -$vxe-select-empty-color: #262626 !default; | ||
| 67 | -$vxe-optgroup-title-color: #909399 !default; | ||
| 68 | - | ||
| 69 | -/*button*/ | ||
| 70 | -$vxe-button-default-background-color: #262626; | ||
| 71 | -$vxe-button-dropdown-panel-background-color: #141414; | ||
| 72 | - | ||
| 73 | -/*modal*/ | ||
| 74 | -$vxe-modal-header-background-color: #141414; | ||
| 75 | -$vxe-modal-body-background-color: #141414; | ||
| 76 | -$vxe-modal-border-color: #3b3b3b; | ||
| 77 | - | ||
| 78 | -/*pulldown*/ | ||
| 79 | -$vxe-pulldown-panel-background-color: #262626 !default; | ||
| 80 | - | ||
| 81 | -@import 'vxe-table/styles/index'; |
yudao-ui-admin-vue3/src/plugins/vxeTable/theme/light.scss deleted
| 1 | -// 修改样式变量 | ||
| 2 | -// /*font*/ | ||
| 3 | -// $vxe-font-size: 12px !default; | ||
| 4 | -// $vxe-font-size-medium: 16px !default; | ||
| 5 | -// $vxe-font-size-small: 14px !default; | ||
| 6 | -// $vxe-font-size-mini: 12px !default; | ||
| 7 | -/*color*/ | ||
| 8 | -$vxe-primary-color: #409eff !default; | ||
| 9 | -$vxe-success-color: #67c23a !default; | ||
| 10 | -$vxe-info-color: #909399 !default; | ||
| 11 | -$vxe-warning-color: #e6a23c !default; | ||
| 12 | -$vxe-danger-color: #f56c6c !default; | ||
| 13 | -$vxe-disabled-color: #bfbfbf !default; | ||
| 14 | -$vxe-primary-disabled-color: #c0c4cc !default; | ||
| 15 | - | ||
| 16 | -@import 'vxe-table/styles/index.scss'; |
yudao-ui-admin-vue3/src/router/index.ts
| @@ -2,23 +2,6 @@ import type { App } from 'vue' | @@ -2,23 +2,6 @@ import type { App } from 'vue' | ||
| 2 | import type { RouteRecordRaw } from 'vue-router' | 2 | import type { RouteRecordRaw } from 'vue-router' |
| 3 | import { createRouter, createWebHashHistory } from 'vue-router' | 3 | import { createRouter, createWebHashHistory } from 'vue-router' |
| 4 | import remainingRouter from './modules/remaining' | 4 | import remainingRouter from './modules/remaining' |
| 5 | -import { isRelogin } from '@/config/axios/service' | ||
| 6 | -import { getAccessToken } from '@/utils/auth' | ||
| 7 | -import { useTitle } from '@/hooks/web/useTitle' | ||
| 8 | -import { useNProgress } from '@/hooks/web/useNProgress' | ||
| 9 | -import { CACHE_KEY, useCache } from '@/hooks/web/useCache' | ||
| 10 | -import { usePageLoading } from '@/hooks/web/usePageLoading' | ||
| 11 | -import { useDictStoreWithOut } from '@/store/modules/dict' | ||
| 12 | -import { useUserStoreWithOut } from '@/store/modules/user' | ||
| 13 | -import { usePermissionStoreWithOut } from '@/store/modules/permission' | ||
| 14 | -import { getInfoApi } from '@/api/login' | ||
| 15 | -import { listSimpleDictDataApi } from '@/api/system/dict/dict.data' | ||
| 16 | - | ||
| 17 | -const { wsCache } = useCache() | ||
| 18 | - | ||
| 19 | -const { start, done } = useNProgress() | ||
| 20 | - | ||
| 21 | -const { loadStart, loadDone } = usePageLoading() | ||
| 22 | 5 | ||
| 23 | // 创建路由实例 | 6 | // 创建路由实例 |
| 24 | const router = createRouter({ | 7 | const router = createRouter({ |
| @@ -28,66 +11,6 @@ const router = createRouter({ | @@ -28,66 +11,6 @@ const router = createRouter({ | ||
| 28 | scrollBehavior: () => ({ left: 0, top: 0 }) | 11 | scrollBehavior: () => ({ left: 0, top: 0 }) |
| 29 | }) | 12 | }) |
| 30 | 13 | ||
| 31 | -// 路由不重定向白名单 | ||
| 32 | -const whiteList = [ | ||
| 33 | - '/login', | ||
| 34 | - '/social-login', | ||
| 35 | - '/auth-redirect', | ||
| 36 | - '/bind', | ||
| 37 | - '/register', | ||
| 38 | - '/oauthLogin/gitee' | ||
| 39 | -] | ||
| 40 | - | ||
| 41 | -// 路由加载前 | ||
| 42 | -router.beforeEach(async (to, from, next) => { | ||
| 43 | - start() | ||
| 44 | - loadStart() | ||
| 45 | - if (getAccessToken()) { | ||
| 46 | - if (to.path === '/login') { | ||
| 47 | - next({ path: '/' }) | ||
| 48 | - } else { | ||
| 49 | - // 获取所有字典 | ||
| 50 | - const dictStore = useDictStoreWithOut() | ||
| 51 | - const userStore = useUserStoreWithOut() | ||
| 52 | - const permissionStore = usePermissionStoreWithOut() | ||
| 53 | - const dictMap = wsCache.get(CACHE_KEY.DICT_CACHE) | ||
| 54 | - if (!dictMap) { | ||
| 55 | - const res = await listSimpleDictDataApi() | ||
| 56 | - dictStore.setDictMap(res) | ||
| 57 | - } | ||
| 58 | - if (!userStore.getIsSetUser) { | ||
| 59 | - isRelogin.show = true | ||
| 60 | - const res = await getInfoApi() | ||
| 61 | - await userStore.setUserInfoAction(res) | ||
| 62 | - isRelogin.show = false | ||
| 63 | - // 后端过滤菜单 | ||
| 64 | - await permissionStore.generateRoutes() | ||
| 65 | - permissionStore.getAddRouters.forEach((route) => { | ||
| 66 | - router.addRoute(route as unknown as RouteRecordRaw) // 动态添加可访问路由表 | ||
| 67 | - }) | ||
| 68 | - const redirectPath = from.query.redirect || to.path | ||
| 69 | - const redirect = decodeURIComponent(redirectPath as string) | ||
| 70 | - const nextData = to.path === redirect ? { ...to, replace: true } : { path: redirect } | ||
| 71 | - next(nextData) | ||
| 72 | - } else { | ||
| 73 | - next() | ||
| 74 | - } | ||
| 75 | - } | ||
| 76 | - } else { | ||
| 77 | - if (whiteList.indexOf(to.path) !== -1) { | ||
| 78 | - next() | ||
| 79 | - } else { | ||
| 80 | - next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页 | ||
| 81 | - } | ||
| 82 | - } | ||
| 83 | -}) | ||
| 84 | - | ||
| 85 | -router.afterEach((to) => { | ||
| 86 | - useTitle(to?.meta?.title as string) | ||
| 87 | - done() // 结束Progress | ||
| 88 | - loadDone() | ||
| 89 | -}) | ||
| 90 | - | ||
| 91 | export const resetRouter = (): void => { | 14 | export const resetRouter = (): void => { |
| 92 | const resetWhiteNameList = ['Redirect', 'Login', 'NoFind', 'Root'] | 15 | const resetWhiteNameList = ['Redirect', 'Login', 'NoFind', 'Root'] |
| 93 | router.getRoutes().forEach((route) => { | 16 | router.getRoutes().forEach((route) => { |
yudao-ui-admin-vue3/src/store/modules/dict.ts
| @@ -3,6 +3,7 @@ import { store } from '../index' | @@ -3,6 +3,7 @@ import { store } from '../index' | ||
| 3 | import { DictDataVO } from '@/api/system/dict/types' | 3 | import { DictDataVO } from '@/api/system/dict/types' |
| 4 | import { CACHE_KEY, useCache } from '@/hooks/web/useCache' | 4 | import { CACHE_KEY, useCache } from '@/hooks/web/useCache' |
| 5 | const { wsCache } = useCache('sessionStorage') | 5 | const { wsCache } = useCache('sessionStorage') |
| 6 | +import { listSimpleDictDataApi } from '@/api/system/dict/dict.data' | ||
| 6 | 7 | ||
| 7 | export interface DictValueType { | 8 | export interface DictValueType { |
| 8 | value: any | 9 | value: any |
| @@ -16,45 +17,54 @@ export interface DictTypeType { | @@ -16,45 +17,54 @@ export interface DictTypeType { | ||
| 16 | } | 17 | } |
| 17 | export interface DictState { | 18 | export interface DictState { |
| 18 | dictMap: Map<string, any> | 19 | dictMap: Map<string, any> |
| 20 | + isSetDict: boolean | ||
| 19 | } | 21 | } |
| 20 | 22 | ||
| 21 | export const useDictStore = defineStore('dict', { | 23 | export const useDictStore = defineStore('dict', { |
| 22 | state: (): DictState => ({ | 24 | state: (): DictState => ({ |
| 23 | - dictMap: new Map<string, any>() | 25 | + dictMap: new Map<string, any>(), |
| 26 | + isSetDict: false | ||
| 24 | }), | 27 | }), |
| 25 | getters: { | 28 | getters: { |
| 26 | getDictMap(): Recordable { | 29 | getDictMap(): Recordable { |
| 27 | const dictMap = wsCache.get(CACHE_KEY.DICT_CACHE) | 30 | const dictMap = wsCache.get(CACHE_KEY.DICT_CACHE) |
| 28 | - return dictMap ? dictMap : this.dictMap | ||
| 29 | - }, | ||
| 30 | - getHasDictData(): boolean { | ||
| 31 | - if (this.dictMap.size > 0) { | ||
| 32 | - return true | ||
| 33 | - } else { | ||
| 34 | - return false | 31 | + if (dictMap) { |
| 32 | + this.dictMap = dictMap | ||
| 35 | } | 33 | } |
| 34 | + return this.dictMap | ||
| 35 | + }, | ||
| 36 | + getIsSetDict(): boolean { | ||
| 37 | + return this.isSetDict | ||
| 36 | } | 38 | } |
| 37 | }, | 39 | }, |
| 38 | actions: { | 40 | actions: { |
| 39 | - setDictMap(dictMap: Recordable) { | ||
| 40 | - // 设置数据 | ||
| 41 | - const dictDataMap = new Map<string, any>() | ||
| 42 | - dictMap.forEach((dictData: DictDataVO) => { | ||
| 43 | - // 获得 dictType 层级 | ||
| 44 | - const enumValueObj = dictDataMap[dictData.dictType] | ||
| 45 | - if (!enumValueObj) { | ||
| 46 | - dictDataMap[dictData.dictType] = [] | ||
| 47 | - } | ||
| 48 | - // 处理 dictValue 层级 | ||
| 49 | - dictDataMap[dictData.dictType].push({ | ||
| 50 | - value: dictData.value, | ||
| 51 | - label: dictData.label, | ||
| 52 | - colorType: dictData.colorType, | ||
| 53 | - cssClass: dictData.cssClass | 41 | + async setDictMap() { |
| 42 | + const dictMap = wsCache.get(CACHE_KEY.DICT_CACHE) | ||
| 43 | + if (dictMap) { | ||
| 44 | + this.dictMap = dictMap | ||
| 45 | + this.isSetDict = true | ||
| 46 | + } else { | ||
| 47 | + const res = await listSimpleDictDataApi() | ||
| 48 | + // 设置数据 | ||
| 49 | + const dictDataMap = new Map<string, any>() | ||
| 50 | + res.forEach((dictData: DictDataVO) => { | ||
| 51 | + // 获得 dictType 层级 | ||
| 52 | + const enumValueObj = dictDataMap[dictData.dictType] | ||
| 53 | + if (!enumValueObj) { | ||
| 54 | + dictDataMap[dictData.dictType] = [] | ||
| 55 | + } | ||
| 56 | + // 处理 dictValue 层级 | ||
| 57 | + dictDataMap[dictData.dictType].push({ | ||
| 58 | + value: dictData.value, | ||
| 59 | + label: dictData.label, | ||
| 60 | + colorType: dictData.colorType, | ||
| 61 | + cssClass: dictData.cssClass | ||
| 62 | + }) | ||
| 54 | }) | 63 | }) |
| 55 | - }) | ||
| 56 | - this.dictMap = dictDataMap | ||
| 57 | - wsCache.set(CACHE_KEY.DICT_CACHE, dictDataMap, { exp: 60 }) // 60 秒 过期 | 64 | + this.dictMap = dictDataMap |
| 65 | + this.isSetDict = true | ||
| 66 | + wsCache.set(CACHE_KEY.DICT_CACHE, dictDataMap, { exp: 60 }) // 60 秒 过期 | ||
| 67 | + } | ||
| 58 | } | 68 | } |
| 59 | } | 69 | } |
| 60 | }) | 70 | }) |
yudao-ui-admin-vue3/src/store/modules/user.ts
| @@ -2,6 +2,7 @@ import { store } from '../index' | @@ -2,6 +2,7 @@ import { store } from '../index' | ||
| 2 | import { defineStore } from 'pinia' | 2 | import { defineStore } from 'pinia' |
| 3 | import { getAccessToken, removeToken } from '@/utils/auth' | 3 | import { getAccessToken, removeToken } from '@/utils/auth' |
| 4 | import { CACHE_KEY, useCache } from '@/hooks/web/useCache' | 4 | import { CACHE_KEY, useCache } from '@/hooks/web/useCache' |
| 5 | +import { getInfoApi } from '@/api/login' | ||
| 5 | 6 | ||
| 6 | const { wsCache } = useCache() | 7 | const { wsCache } = useCache() |
| 7 | 8 | ||
| @@ -43,11 +44,15 @@ export const useUserStore = defineStore('admin-user', { | @@ -43,11 +44,15 @@ export const useUserStore = defineStore('admin-user', { | ||
| 43 | } | 44 | } |
| 44 | }, | 45 | }, |
| 45 | actions: { | 46 | actions: { |
| 46 | - async setUserInfoAction(userInfo: UserInfoVO) { | 47 | + async setUserInfoAction() { |
| 47 | if (!getAccessToken()) { | 48 | if (!getAccessToken()) { |
| 48 | this.resetState() | 49 | this.resetState() |
| 49 | return null | 50 | return null |
| 50 | } | 51 | } |
| 52 | + let userInfo = wsCache.get(CACHE_KEY.USER) | ||
| 53 | + if (!userInfo) { | ||
| 54 | + userInfo = await getInfoApi() | ||
| 55 | + } | ||
| 51 | this.permissions = userInfo.permissions | 56 | this.permissions = userInfo.permissions |
| 52 | this.roles = userInfo.roles | 57 | this.roles = userInfo.roles |
| 53 | this.user = userInfo.user | 58 | this.user = userInfo.user |
yudao-ui-admin-vue3/src/styles/variables.scss
yudao-ui-admin-vue3/src/utils/auth.ts
| @@ -36,45 +36,30 @@ export const formatToken = (token: string): string => { | @@ -36,45 +36,30 @@ export const formatToken = (token: string): string => { | ||
| 36 | } | 36 | } |
| 37 | // ========== 账号相关 ========== | 37 | // ========== 账号相关 ========== |
| 38 | 38 | ||
| 39 | -const UsernameKey = 'USERNAME' | ||
| 40 | -const PasswordKey = 'PASSWORD' | ||
| 41 | -const RememberMeKey = 'REMEMBER_ME' | 39 | +const LoginFormKey = 'LOGINFORM' |
| 42 | 40 | ||
| 43 | -export const getUsername = () => { | ||
| 44 | - return wsCache.get(UsernameKey) | 41 | +export type LoginFormType = { |
| 42 | + tenantName: string | ||
| 43 | + username: string | ||
| 44 | + password: string | ||
| 45 | + rememberMe: boolean | ||
| 45 | } | 46 | } |
| 46 | 47 | ||
| 47 | -export const setUsername = (username: string) => { | ||
| 48 | - wsCache.set(UsernameKey, username, { exp: 30 * 24 * 60 * 60 }) | 48 | +export const getLoginForm = () => { |
| 49 | + const loginForm: LoginFormType = wsCache.get(LoginFormKey) | ||
| 50 | + if (loginForm) { | ||
| 51 | + loginForm.password = decrypt(loginForm.password) as string | ||
| 52 | + } | ||
| 53 | + return loginForm | ||
| 49 | } | 54 | } |
| 50 | 55 | ||
| 51 | -export const removeUsername = () => { | ||
| 52 | - wsCache.delete(UsernameKey) | 56 | +export const setLoginForm = (loginForm: LoginFormType) => { |
| 57 | + loginForm.password = encrypt(loginForm.password) as string | ||
| 58 | + wsCache.set(LoginFormKey, loginForm, { exp: 30 * 24 * 60 * 60 }) | ||
| 53 | } | 59 | } |
| 54 | 60 | ||
| 55 | -export const getPassword = () => { | ||
| 56 | - const password = wsCache.get(PasswordKey) | ||
| 57 | - return password ? decrypt(password) : undefined | ||
| 58 | -} | ||
| 59 | - | ||
| 60 | -export const setPassword = (password: string) => { | ||
| 61 | - wsCache.set(PasswordKey, encrypt(password), { exp: 30 * 24 * 60 * 60 }) | ||
| 62 | -} | ||
| 63 | - | ||
| 64 | -export const removePassword = () => { | ||
| 65 | - wsCache.delete(PasswordKey) | ||
| 66 | -} | ||
| 67 | - | ||
| 68 | -export const getRememberMe = () => { | ||
| 69 | - return wsCache.get(RememberMeKey) === true | ||
| 70 | -} | ||
| 71 | - | ||
| 72 | -export const setRememberMe = (rememberMe: boolean) => { | ||
| 73 | - wsCache.set(RememberMeKey, rememberMe, { exp: 30 * 24 * 60 * 60 }) | ||
| 74 | -} | ||
| 75 | - | ||
| 76 | -export const removeRememberMe = () => { | ||
| 77 | - wsCache.delete(RememberMeKey) | 61 | +export const removeLoginForm = () => { |
| 62 | + wsCache.delete(LoginFormKey) | ||
| 78 | } | 63 | } |
| 79 | 64 | ||
| 80 | // ========== 租户相关 ========== | 65 | // ========== 租户相关 ========== |
yudao-ui-admin-vue3/src/utils/propTypes.ts
| @@ -17,13 +17,12 @@ const propTypes = createTypes({ | @@ -17,13 +17,12 @@ const propTypes = createTypes({ | ||
| 17 | 17 | ||
| 18 | // 需要自定义扩展的类型 | 18 | // 需要自定义扩展的类型 |
| 19 | // see: https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#the-extend-method | 19 | // see: https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#the-extend-method |
| 20 | -propTypes.extend([ | ||
| 21 | - { | ||
| 22 | - name: 'style', | ||
| 23 | - getter: true, | ||
| 24 | - type: [String, Object], | ||
| 25 | - default: undefined | ||
| 26 | - } | ||
| 27 | -]) | ||
| 28 | - | 20 | +// propTypes.extend([ |
| 21 | +// { | ||
| 22 | +// name: 'style', | ||
| 23 | +// getter: true, | ||
| 24 | +// type: [String, Object], | ||
| 25 | +// default: undefined | ||
| 26 | +// } | ||
| 27 | +// ]) | ||
| 29 | export { propTypes } | 28 | export { propTypes } |
yudao-ui-admin-vue3/src/views/Login/components/LoginForm.vue
| @@ -148,7 +148,6 @@ import { useIcon } from '@/hooks/web/useIcon' | @@ -148,7 +148,6 @@ import { useIcon } from '@/hooks/web/useIcon' | ||
| 148 | import { useMessage } from '@/hooks/web/useMessage' | 148 | import { useMessage } from '@/hooks/web/useMessage' |
| 149 | import { required } from '@/utils/formRules' | 149 | import { required } from '@/utils/formRules' |
| 150 | import * as authUtil from '@/utils/auth' | 150 | import * as authUtil from '@/utils/auth' |
| 151 | -import { decrypt } from '@/utils/jsencrypt' | ||
| 152 | import { Verify } from '@/components/Verifition' | 151 | import { Verify } from '@/components/Verifition' |
| 153 | import { usePermissionStore } from '@/store/modules/permission' | 152 | import { usePermissionStore } from '@/store/modules/permission' |
| 154 | import * as LoginApi from '@/api/login' | 153 | import * as LoginApi from '@/api/login' |
| @@ -180,10 +179,6 @@ const loginData = reactive({ | @@ -180,10 +179,6 @@ const loginData = reactive({ | ||
| 180 | isShowPassword: false, | 179 | isShowPassword: false, |
| 181 | captchaEnable: import.meta.env.VITE_APP_CAPTCHA_ENABLE, | 180 | captchaEnable: import.meta.env.VITE_APP_CAPTCHA_ENABLE, |
| 182 | tenantEnable: import.meta.env.VITE_APP_TENANT_ENABLE, | 181 | tenantEnable: import.meta.env.VITE_APP_TENANT_ENABLE, |
| 183 | - token: '', | ||
| 184 | - loading: { | ||
| 185 | - signIn: false | ||
| 186 | - }, | ||
| 187 | loginForm: { | 182 | loginForm: { |
| 188 | tenantName: '芋道源码', | 183 | tenantName: '芋道源码', |
| 189 | username: 'admin', | 184 | username: 'admin', |
| @@ -194,22 +189,10 @@ const loginData = reactive({ | @@ -194,22 +189,10 @@ const loginData = reactive({ | ||
| 194 | }) | 189 | }) |
| 195 | 190 | ||
| 196 | const socialList = [ | 191 | const socialList = [ |
| 197 | - { | ||
| 198 | - icon: 'ant-design:github-filled', | ||
| 199 | - type: 0 | ||
| 200 | - }, | ||
| 201 | - { | ||
| 202 | - icon: 'ant-design:wechat-filled', | ||
| 203 | - type: 30 | ||
| 204 | - }, | ||
| 205 | - { | ||
| 206 | - icon: 'ant-design:alipay-circle-filled', | ||
| 207 | - type: 0 | ||
| 208 | - }, | ||
| 209 | - { | ||
| 210 | - icon: 'ant-design:dingtalk-circle-filled', | ||
| 211 | - type: 20 | ||
| 212 | - } | 192 | + { icon: 'ant-design:github-filled', type: 0 }, |
| 193 | + { icon: 'ant-design:wechat-filled', type: 30 }, | ||
| 194 | + { icon: 'ant-design:alipay-circle-filled', type: 0 }, | ||
| 195 | + { icon: 'ant-design:dingtalk-circle-filled', type: 20 } | ||
| 213 | ] | 196 | ] |
| 214 | 197 | ||
| 215 | // 获取验证码 | 198 | // 获取验证码 |
| @@ -232,18 +215,15 @@ const getTenantId = async () => { | @@ -232,18 +215,15 @@ const getTenantId = async () => { | ||
| 232 | } | 215 | } |
| 233 | // 记住我 | 216 | // 记住我 |
| 234 | const getCookie = () => { | 217 | const getCookie = () => { |
| 235 | - const username = authUtil.getUsername() | ||
| 236 | - const password = authUtil.getPassword() | ||
| 237 | - ? decrypt(authUtil.getPassword() as unknown as string) | ||
| 238 | - : undefined | ||
| 239 | - const rememberMe = authUtil.getRememberMe() | ||
| 240 | - const tenantName = authUtil.getTenantName() | ||
| 241 | - loginData.loginForm = { | ||
| 242 | - ...loginData.loginForm, | ||
| 243 | - username: username ? username : loginData.loginForm.username, | ||
| 244 | - password: password ? password : loginData.loginForm.password, | ||
| 245 | - rememberMe: rememberMe ? true : false, | ||
| 246 | - tenantName: tenantName ? tenantName : loginData.loginForm.tenantName | 218 | + const loginForm = authUtil.getLoginForm() |
| 219 | + if (loginForm) { | ||
| 220 | + loginData.loginForm = { | ||
| 221 | + ...loginData.loginForm, | ||
| 222 | + username: loginForm.username ? loginForm.username : loginData.loginForm.username, | ||
| 223 | + password: loginForm.password ? loginForm.password : loginData.loginForm.password, | ||
| 224 | + rememberMe: loginForm.rememberMe ? true : false, | ||
| 225 | + tenantName: loginForm.tenantName ? loginForm.tenantName : loginData.loginForm.tenantName | ||
| 226 | + } | ||
| 247 | } | 227 | } |
| 248 | } | 228 | } |
| 249 | // 登录 | 229 | // 登录 |
| @@ -266,15 +246,9 @@ const handleLogin = async (params) => { | @@ -266,15 +246,9 @@ const handleLogin = async (params) => { | ||
| 266 | background: 'rgba(0, 0, 0, 0.7)' | 246 | background: 'rgba(0, 0, 0, 0.7)' |
| 267 | }) | 247 | }) |
| 268 | if (loginData.loginForm.rememberMe) { | 248 | if (loginData.loginForm.rememberMe) { |
| 269 | - authUtil.setUsername(loginData.loginForm.username) | ||
| 270 | - authUtil.setPassword(loginData.loginForm.password) | ||
| 271 | - authUtil.setRememberMe(loginData.loginForm.rememberMe) | ||
| 272 | - authUtil.setTenantName(loginData.loginForm.tenantName) | 249 | + authUtil.setLoginForm(loginData.loginForm) |
| 273 | } else { | 250 | } else { |
| 274 | - authUtil.removeUsername() | ||
| 275 | - authUtil.removePassword() | ||
| 276 | - authUtil.removeRememberMe() | ||
| 277 | - authUtil.removeTenantName() | 251 | + authUtil.removeLoginForm() |
| 278 | } | 252 | } |
| 279 | authUtil.setToken(res) | 253 | authUtil.setToken(res) |
| 280 | if (!redirect.value) { | 254 | if (!redirect.value) { |
yudao-ui-admin-vue3/src/views/Profile/Index.vue
| @@ -8,7 +8,7 @@ | @@ -8,7 +8,7 @@ | ||
| 8 | </template> | 8 | </template> |
| 9 | <ProfileUser /> | 9 | <ProfileUser /> |
| 10 | </el-card> | 10 | </el-card> |
| 11 | - <el-card class="w-2/3 user" style="margin-left: 10px" shadow="hover"> | 11 | + <el-card class="w-2/3 user ml-3" shadow="hover"> |
| 12 | <template #header> | 12 | <template #header> |
| 13 | <div class="card-header"> | 13 | <div class="card-header"> |
| 14 | <span>{{ t('profile.info.title') }}</span> | 14 | <span>{{ t('profile.info.title') }}</span> |
yudao-ui-admin-vue3/src/views/infra/apiErrorLog/index.vue
| @@ -8,7 +8,7 @@ | @@ -8,7 +8,7 @@ | ||
| 8 | type="warning" | 8 | type="warning" |
| 9 | preIcon="ep:download" | 9 | preIcon="ep:download" |
| 10 | :title="t('action.export')" | 10 | :title="t('action.export')" |
| 11 | - @click="handleExport()" | 11 | + @click="exportList('错误数据.xls')" |
| 12 | /> | 12 | /> |
| 13 | </template> | 13 | </template> |
| 14 | <template #duration_default="{ row }"> | 14 | <template #duration_default="{ row }"> |
| @@ -81,10 +81,7 @@ const handleDetail = (row: ApiErrorLogApi.ApiErrorLogVO) => { | @@ -81,10 +81,7 @@ const handleDetail = (row: ApiErrorLogApi.ApiErrorLogVO) => { | ||
| 81 | dialogTitle.value = t('action.detail') | 81 | dialogTitle.value = t('action.detail') |
| 82 | dialogVisible.value = true | 82 | dialogVisible.value = true |
| 83 | } | 83 | } |
| 84 | -// 导出 | ||
| 85 | -const handleExport = async () => { | ||
| 86 | - await exportList('错误数据.xls') | ||
| 87 | -} | 84 | + |
| 88 | // 异常处理操作 | 85 | // 异常处理操作 |
| 89 | const handleProcessClick = ( | 86 | const handleProcessClick = ( |
| 90 | row: ApiErrorLogApi.ApiErrorLogVO, | 87 | row: ApiErrorLogApi.ApiErrorLogVO, |
yudao-ui-admin-vue3/src/views/infra/codegen/EditTable.vue
| @@ -8,9 +8,6 @@ | @@ -8,9 +8,6 @@ | ||
| 8 | <el-tab-pane label="字段信息" name="cloum"> | 8 | <el-tab-pane label="字段信息" name="cloum"> |
| 9 | <CloumInfoForm ref="cloumInfoRef" :info="cloumCurrentRow" /> | 9 | <CloumInfoForm ref="cloumInfoRef" :info="cloumCurrentRow" /> |
| 10 | </el-tab-pane> | 10 | </el-tab-pane> |
| 11 | - <el-tab-pane label="生成信息" name="genInfo"> | ||
| 12 | - <GenInfoForm ref="genInfoRef" :genInfo="tableCurrentRow" /> | ||
| 13 | - </el-tab-pane> | ||
| 14 | </el-tabs> | 11 | </el-tabs> |
| 15 | <template #right> | 12 | <template #right> |
| 16 | <XButton | 13 | <XButton |
| @@ -30,7 +27,7 @@ import { ElTabs, ElTabPane } from 'element-plus' | @@ -30,7 +27,7 @@ import { ElTabs, ElTabPane } from 'element-plus' | ||
| 30 | import { useI18n } from '@/hooks/web/useI18n' | 27 | import { useI18n } from '@/hooks/web/useI18n' |
| 31 | import { useMessage } from '@/hooks/web/useMessage' | 28 | import { useMessage } from '@/hooks/web/useMessage' |
| 32 | import { ContentDetailWrap } from '@/components/ContentDetailWrap' | 29 | import { ContentDetailWrap } from '@/components/ContentDetailWrap' |
| 33 | -import { BasicInfoForm, CloumInfoForm, GenInfoForm } from './components' | 30 | +import { BasicInfoForm, CloumInfoForm } from './components' |
| 34 | import { getCodegenTableApi, updateCodegenTableApi } from '@/api/infra/codegen' | 31 | import { getCodegenTableApi, updateCodegenTableApi } from '@/api/infra/codegen' |
| 35 | import { CodegenTableVO, CodegenColumnVO, CodegenUpdateReqVO } from '@/api/infra/codegen/types' | 32 | import { CodegenTableVO, CodegenColumnVO, CodegenUpdateReqVO } from '@/api/infra/codegen/types' |
| 36 | 33 | ||
| @@ -40,33 +37,29 @@ const { push } = useRouter() | @@ -40,33 +37,29 @@ const { push } = useRouter() | ||
| 40 | const { query } = useRoute() | 37 | const { query } = useRoute() |
| 41 | const loading = ref(false) | 38 | const loading = ref(false) |
| 42 | const title = ref('代码生成') | 39 | const title = ref('代码生成') |
| 43 | -const activeName = ref('cloum') | 40 | +const activeName = ref('basicInfo') |
| 44 | const cloumInfoRef = ref(null) | 41 | const cloumInfoRef = ref(null) |
| 45 | const tableCurrentRow = ref<CodegenTableVO>() | 42 | const tableCurrentRow = ref<CodegenTableVO>() |
| 46 | const cloumCurrentRow = ref<CodegenColumnVO[]>([]) | 43 | const cloumCurrentRow = ref<CodegenColumnVO[]>([]) |
| 47 | const basicInfoRef = ref<ComponentRef<typeof BasicInfoForm>>() | 44 | const basicInfoRef = ref<ComponentRef<typeof BasicInfoForm>>() |
| 48 | -const genInfoRef = ref<ComponentRef<typeof GenInfoForm>>() | ||
| 49 | 45 | ||
| 50 | const getList = async () => { | 46 | const getList = async () => { |
| 51 | const id = query.id as unknown as number | 47 | const id = query.id as unknown as number |
| 52 | if (id) { | 48 | if (id) { |
| 53 | // 获取表详细信息 | 49 | // 获取表详细信息 |
| 54 | const res = await getCodegenTableApi(id) | 50 | const res = await getCodegenTableApi(id) |
| 55 | - tableCurrentRow.value = res.table | ||
| 56 | title.value = '修改[ ' + res.table.tableName + ' ]生成配置' | 51 | title.value = '修改[ ' + res.table.tableName + ' ]生成配置' |
| 52 | + tableCurrentRow.value = res.table | ||
| 57 | cloumCurrentRow.value = res.columns | 53 | cloumCurrentRow.value = res.columns |
| 58 | } | 54 | } |
| 59 | } | 55 | } |
| 60 | const submitForm = async () => { | 56 | const submitForm = async () => { |
| 61 | const basicInfo = unref(basicInfoRef) | 57 | const basicInfo = unref(basicInfoRef) |
| 62 | - const genInfo = unref(genInfoRef) | ||
| 63 | const basicForm = await basicInfo?.elFormRef?.validate()?.catch(() => {}) | 58 | const basicForm = await basicInfo?.elFormRef?.validate()?.catch(() => {}) |
| 64 | - const genForm = await genInfo?.elFormRef?.validate()?.catch(() => {}) | ||
| 65 | - if (basicForm && genForm) { | 59 | + if (basicForm) { |
| 66 | const basicInfoData = (await basicInfo?.getFormData()) as CodegenTableVO | 60 | const basicInfoData = (await basicInfo?.getFormData()) as CodegenTableVO |
| 67 | - const genInfoData = (await genInfo?.getFormData()) as CodegenTableVO | ||
| 68 | const genTable: CodegenUpdateReqVO = { | 61 | const genTable: CodegenUpdateReqVO = { |
| 69 | - table: Object.assign({}, basicInfoData, genInfoData), | 62 | + table: basicInfoData, |
| 70 | columns: cloumCurrentRow.value | 63 | columns: cloumCurrentRow.value |
| 71 | } | 64 | } |
| 72 | await updateCodegenTableApi(genTable) | 65 | await updateCodegenTableApi(genTable) |
yudao-ui-admin-vue3/src/views/infra/codegen/components/BasicInfoForm.vue
| @@ -2,26 +2,60 @@ | @@ -2,26 +2,60 @@ | ||
| 2 | <Form :rules="rules" @register="register" /> | 2 | <Form :rules="rules" @register="register" /> |
| 3 | </template> | 3 | </template> |
| 4 | <script setup lang="ts"> | 4 | <script setup lang="ts"> |
| 5 | -import { PropType, reactive, watch } from 'vue' | 5 | +import { onMounted, PropType, reactive, ref, watch } from 'vue' |
| 6 | import { required } from '@/utils/formRules' | 6 | import { required } from '@/utils/formRules' |
| 7 | import { useForm } from '@/hooks/web/useForm' | 7 | import { useForm } from '@/hooks/web/useForm' |
| 8 | import { Form } from '@/components/Form' | 8 | import { Form } from '@/components/Form' |
| 9 | import { FormSchema } from '@/types/form' | 9 | import { FormSchema } from '@/types/form' |
| 10 | import { CodegenTableVO } from '@/api/infra/codegen/types' | 10 | import { CodegenTableVO } from '@/api/infra/codegen/types' |
| 11 | +import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' | ||
| 12 | +import { listSimpleMenusApi } from '@/api/system/menu' | ||
| 13 | +import { handleTree, defaultProps } from '@/utils/tree' | ||
| 14 | + | ||
| 11 | const props = defineProps({ | 15 | const props = defineProps({ |
| 12 | basicInfo: { | 16 | basicInfo: { |
| 13 | type: Object as PropType<Nullable<CodegenTableVO>>, | 17 | type: Object as PropType<Nullable<CodegenTableVO>>, |
| 14 | default: () => null | 18 | default: () => null |
| 15 | } | 19 | } |
| 16 | }) | 20 | }) |
| 21 | + | ||
| 22 | +const templateTypeOptions = getIntDictOptions(DICT_TYPE.INFRA_CODEGEN_TEMPLATE_TYPE) | ||
| 23 | +const sceneOptions = getIntDictOptions(DICT_TYPE.INFRA_CODEGEN_SCENE) | ||
| 24 | +const menuOptions = ref<any>([]) // 树形结构 | ||
| 25 | +const getTree = async () => { | ||
| 26 | + const res = await listSimpleMenusApi() | ||
| 27 | + menuOptions.value = handleTree(res) | ||
| 28 | +} | ||
| 29 | + | ||
| 17 | const rules = reactive({ | 30 | const rules = reactive({ |
| 18 | tableName: [required], | 31 | tableName: [required], |
| 19 | tableComment: [required], | 32 | tableComment: [required], |
| 20 | className: [required], | 33 | className: [required], |
| 21 | - author: [required] | 34 | + author: [required], |
| 35 | + templateType: [required], | ||
| 36 | + scene: [required], | ||
| 37 | + moduleName: [required], | ||
| 38 | + businessName: [required], | ||
| 39 | + businessPackage: [required], | ||
| 40 | + classComment: [required] | ||
| 22 | }) | 41 | }) |
| 23 | const schema = reactive<FormSchema[]>([ | 42 | const schema = reactive<FormSchema[]>([ |
| 24 | { | 43 | { |
| 44 | + label: '上级菜单', | ||
| 45 | + field: 'parentMenuId', | ||
| 46 | + component: 'TreeSelect', | ||
| 47 | + componentProps: { | ||
| 48 | + data: menuOptions, | ||
| 49 | + props: defaultProps, | ||
| 50 | + checkStrictly: true, | ||
| 51 | + nodeKey: 'id' | ||
| 52 | + }, | ||
| 53 | + labelMessage: '分配到指定菜单下,例如 系统管理', | ||
| 54 | + colProps: { | ||
| 55 | + span: 24 | ||
| 56 | + } | ||
| 57 | + }, | ||
| 58 | + { | ||
| 25 | label: '表名称', | 59 | label: '表名称', |
| 26 | field: 'tableName', | 60 | field: 'tableName', |
| 27 | component: 'Input', | 61 | component: 'Input', |
| @@ -46,6 +80,64 @@ const schema = reactive<FormSchema[]>([ | @@ -46,6 +80,64 @@ const schema = reactive<FormSchema[]>([ | ||
| 46 | } | 80 | } |
| 47 | }, | 81 | }, |
| 48 | { | 82 | { |
| 83 | + label: '类名称', | ||
| 84 | + field: 'className', | ||
| 85 | + component: 'Input', | ||
| 86 | + labelMessage: '类名称(首字母大写),例如SysUser、SysMenu、SysDictData 等等', | ||
| 87 | + colProps: { | ||
| 88 | + span: 12 | ||
| 89 | + } | ||
| 90 | + }, | ||
| 91 | + { | ||
| 92 | + label: '生成模板', | ||
| 93 | + field: 'templateType', | ||
| 94 | + component: 'Select', | ||
| 95 | + componentProps: { | ||
| 96 | + options: templateTypeOptions | ||
| 97 | + }, | ||
| 98 | + colProps: { | ||
| 99 | + span: 12 | ||
| 100 | + } | ||
| 101 | + }, | ||
| 102 | + { | ||
| 103 | + label: '生成场景', | ||
| 104 | + field: 'scene', | ||
| 105 | + component: 'Select', | ||
| 106 | + componentProps: { | ||
| 107 | + options: sceneOptions | ||
| 108 | + }, | ||
| 109 | + colProps: { | ||
| 110 | + span: 12 | ||
| 111 | + } | ||
| 112 | + }, | ||
| 113 | + { | ||
| 114 | + label: '模块名', | ||
| 115 | + field: 'moduleName', | ||
| 116 | + component: 'Input', | ||
| 117 | + labelMessage: '模块名,即一级目录,例如 system、infra、tool 等等', | ||
| 118 | + colProps: { | ||
| 119 | + span: 12 | ||
| 120 | + } | ||
| 121 | + }, | ||
| 122 | + { | ||
| 123 | + label: '业务名', | ||
| 124 | + field: 'businessName', | ||
| 125 | + component: 'Input', | ||
| 126 | + labelMessage: '业务名,即二级目录,例如 user、permission、dict 等等', | ||
| 127 | + colProps: { | ||
| 128 | + span: 12 | ||
| 129 | + } | ||
| 130 | + }, | ||
| 131 | + { | ||
| 132 | + label: '类描述', | ||
| 133 | + field: 'classComment', | ||
| 134 | + component: 'Input', | ||
| 135 | + labelMessage: '用作类描述,例如 用户', | ||
| 136 | + colProps: { | ||
| 137 | + span: 12 | ||
| 138 | + } | ||
| 139 | + }, | ||
| 140 | + { | ||
| 49 | label: '作者', | 141 | label: '作者', |
| 50 | field: 'author', | 142 | field: 'author', |
| 51 | component: 'Input', | 143 | component: 'Input', |
| @@ -62,7 +154,7 @@ const schema = reactive<FormSchema[]>([ | @@ -62,7 +154,7 @@ const schema = reactive<FormSchema[]>([ | ||
| 62 | rows: 4 | 154 | rows: 4 |
| 63 | }, | 155 | }, |
| 64 | colProps: { | 156 | colProps: { |
| 65 | - span: 12 | 157 | + span: 24 |
| 66 | } | 158 | } |
| 67 | } | 159 | } |
| 68 | ]) | 160 | ]) |
| @@ -81,6 +173,10 @@ watch( | @@ -81,6 +173,10 @@ watch( | ||
| 81 | immediate: true | 173 | immediate: true |
| 82 | } | 174 | } |
| 83 | ) | 175 | ) |
| 176 | +// ========== 初始化 ========== | ||
| 177 | +onMounted(async () => { | ||
| 178 | + await getTree() | ||
| 179 | +}) | ||
| 84 | 180 | ||
| 85 | defineExpose({ | 181 | defineExpose({ |
| 86 | elFormRef, | 182 | elFormRef, |
yudao-ui-admin-vue3/src/views/infra/codegen/components/CloumInfoForm.vue
| 1 | <template> | 1 | <template> |
| 2 | <vxe-table | 2 | <vxe-table |
| 3 | ref="dragTable" | 3 | ref="dragTable" |
| 4 | + border | ||
| 4 | :data="info" | 5 | :data="info" |
| 5 | max-height="600" | 6 | max-height="600" |
| 6 | stripe | 7 | stripe |
| 7 | class="xtable-scrollbar" | 8 | class="xtable-scrollbar" |
| 8 | :column-config="{ resizable: true }" | 9 | :column-config="{ resizable: true }" |
| 9 | > | 10 | > |
| 10 | - <vxe-column title="字段列名" field="columnName" fixed="left" width="80" /> | ||
| 11 | - <vxe-column title="字段描述" field="columnComment"> | ||
| 12 | - <template #default="{ row }"> | ||
| 13 | - <el-input v-model="row.columnComment" /> | ||
| 14 | - </template> | ||
| 15 | - </vxe-column> | ||
| 16 | - <vxe-column title="物理类型" field="dataType" width="10%" /> | ||
| 17 | - <vxe-column title="Java类型" width="10%" field="javaType"> | ||
| 18 | - <template #default="{ row }"> | ||
| 19 | - <el-select v-model="row.javaType"> | ||
| 20 | - <el-option label="Long" value="Long" /> | ||
| 21 | - <el-option label="String" value="String" /> | ||
| 22 | - <el-option label="Integer" value="Integer" /> | ||
| 23 | - <el-option label="Double" value="Double" /> | ||
| 24 | - <el-option label="BigDecimal" value="BigDecimal" /> | ||
| 25 | - <el-option label="LocalDateTime" value="LocalDateTime" /> | ||
| 26 | - <el-option label="Boolean" value="Boolean" /> | ||
| 27 | - </el-select> | ||
| 28 | - </template> | ||
| 29 | - </vxe-column> | ||
| 30 | - <vxe-column title="java属性" width="10%" field="javaField"> | ||
| 31 | - <template #default="{ row }"> | ||
| 32 | - <el-input v-model="row.javaField" /> | ||
| 33 | - </template> | ||
| 34 | - </vxe-column> | ||
| 35 | - <vxe-column title="插入" width="4%" field="createOperation"> | ||
| 36 | - <template #default="{ row }"> | ||
| 37 | - <vxe-checkbox true-label="true" false-label="false" v-model="row.createOperation" /> | ||
| 38 | - </template> | ||
| 39 | - </vxe-column> | ||
| 40 | - <vxe-column title="编辑" width="4%" field="updateOperation"> | ||
| 41 | - <template #default="{ row }"> | ||
| 42 | - <vxe-checkbox true-label="true" false-label="false" v-model="row.updateOperation" /> | ||
| 43 | - </template> | ||
| 44 | - </vxe-column> | ||
| 45 | - <vxe-column title="列表" width="4%" field="listOperationResult"> | ||
| 46 | - <template #default="{ row }"> | ||
| 47 | - <vxe-checkbox true-label="true" false-label="false" v-model="row.listOperationResult" /> | ||
| 48 | - </template> | ||
| 49 | - </vxe-column> | ||
| 50 | - <vxe-column title="查询" width="4%" field="listOperation"> | ||
| 51 | - <template #default="{ row }"> | ||
| 52 | - <vxe-checkbox true-label="true" false-label="false" v-model="row.listOperation" /> | ||
| 53 | - </template> | ||
| 54 | - </vxe-column> | ||
| 55 | - <vxe-column title="查询方式" width="8%" field="listOperationCondition"> | ||
| 56 | - <template #default="{ row }"> | ||
| 57 | - <el-select v-model="row.listOperationCondition"> | ||
| 58 | - <el-option label="=" value="=" /> | ||
| 59 | - <el-option label="!=" value="!=" /> | ||
| 60 | - <el-option label=">" value=">" /> | ||
| 61 | - <el-option label=">=" value=">=" /> | ||
| 62 | - <el-option label="<" value="<>" /> | ||
| 63 | - <el-option label="<=" value="<=" /> | ||
| 64 | - <el-option label="LIKE" value="LIKE" /> | ||
| 65 | - <el-option label="BETWEEN" value="BETWEEN" /> | ||
| 66 | - </el-select> | ||
| 67 | - </template> | ||
| 68 | - </vxe-column> | ||
| 69 | - <vxe-column title="允许空" width="4%" field="nullable"> | ||
| 70 | - <template #default="{ row }"> | ||
| 71 | - <vxe-checkbox true-label="true" false-label="false" v-model="row.nullable" /> | ||
| 72 | - </template> | ||
| 73 | - </vxe-column> | 11 | + <vxe-column title="字段列名" field="columnName" fixed="left" width="10%" /> |
| 12 | + <vxe-colgroup title="基础属性"> | ||
| 13 | + <vxe-column title="字段描述" field="columnComment" width="10%"> | ||
| 14 | + <template #default="{ row }"> | ||
| 15 | + <vxe-input v-model="row.columnComment" placeholder="请输入字段描述" /> | ||
| 16 | + </template> | ||
| 17 | + </vxe-column> | ||
| 18 | + <vxe-column title="物理类型" field="dataType" width="10%" /> | ||
| 19 | + <vxe-column title="Java类型" width="10%" field="javaType"> | ||
| 20 | + <template #default="{ row }"> | ||
| 21 | + <vxe-select v-model="row.javaType" placeholder="请选择Java类型"> | ||
| 22 | + <vxe-option label="Long" value="Long" /> | ||
| 23 | + <vxe-option label="String" value="String" /> | ||
| 24 | + <vxe-option label="Integer" value="Integer" /> | ||
| 25 | + <vxe-option label="Double" value="Double" /> | ||
| 26 | + <vxe-option label="BigDecimal" value="BigDecimal" /> | ||
| 27 | + <vxe-option label="LocalDateTime" value="LocalDateTime" /> | ||
| 28 | + <vxe-option label="Boolean" value="Boolean" /> | ||
| 29 | + </vxe-select> | ||
| 30 | + </template> | ||
| 31 | + </vxe-column> | ||
| 32 | + <vxe-column title="java属性" width="8%" field="javaField"> | ||
| 33 | + <template #default="{ row }"> | ||
| 34 | + <vxe-input v-model="row.javaField" placeholder="请输入java属性" /> | ||
| 35 | + </template> | ||
| 36 | + </vxe-column> | ||
| 37 | + </vxe-colgroup> | ||
| 38 | + <vxe-colgroup title="增删改查"> | ||
| 39 | + <vxe-column title="插入" width="40px" field="createOperation"> | ||
| 40 | + <template #default="{ row }"> | ||
| 41 | + <vxe-checkbox true-label="true" false-label="false" v-model="row.createOperation" /> | ||
| 42 | + </template> | ||
| 43 | + </vxe-column> | ||
| 44 | + <vxe-column title="编辑" width="40px" field="updateOperation"> | ||
| 45 | + <template #default="{ row }"> | ||
| 46 | + <vxe-checkbox true-label="true" false-label="false" v-model="row.updateOperation" /> | ||
| 47 | + </template> | ||
| 48 | + </vxe-column> | ||
| 49 | + <vxe-column title="列表" width="40px" field="listOperationResult"> | ||
| 50 | + <template #default="{ row }"> | ||
| 51 | + <vxe-checkbox true-label="true" false-label="false" v-model="row.listOperationResult" /> | ||
| 52 | + </template> | ||
| 53 | + </vxe-column> | ||
| 54 | + <vxe-column title="查询" width="40px" field="listOperation"> | ||
| 55 | + <template #default="{ row }"> | ||
| 56 | + <vxe-checkbox true-label="true" false-label="false" v-model="row.listOperation" /> | ||
| 57 | + </template> | ||
| 58 | + </vxe-column> | ||
| 59 | + <vxe-column title="允许空" width="40px" field="nullable"> | ||
| 60 | + <template #default="{ row }"> | ||
| 61 | + <vxe-checkbox true-label="true" false-label="false" v-model="row.nullable" /> | ||
| 62 | + </template> | ||
| 63 | + </vxe-column> | ||
| 64 | + <vxe-column title="查询方式" width="60px" field="listOperationCondition"> | ||
| 65 | + <template #default="{ row }"> | ||
| 66 | + <vxe-select v-model="row.listOperationCondition" placeholder="请选择查询方式"> | ||
| 67 | + <vxe-option label="=" value="=" /> | ||
| 68 | + <vxe-option label="!=" value="!=" /> | ||
| 69 | + <vxe-option label=">" value=">" /> | ||
| 70 | + <vxe-option label=">=" value=">=" /> | ||
| 71 | + <vxe-option label="<" value="<>" /> | ||
| 72 | + <vxe-option label="<=" value="<=" /> | ||
| 73 | + <vxe-option label="LIKE" value="LIKE" /> | ||
| 74 | + <vxe-option label="BETWEEN" value="BETWEEN" /> | ||
| 75 | + </vxe-select> | ||
| 76 | + </template> | ||
| 77 | + </vxe-column> | ||
| 78 | + </vxe-colgroup> | ||
| 74 | <vxe-column title="显示类型" width="10%" field="htmlType"> | 79 | <vxe-column title="显示类型" width="10%" field="htmlType"> |
| 75 | <template #default="{ row }"> | 80 | <template #default="{ row }"> |
| 76 | - <el-select v-model="row.htmlType"> | ||
| 77 | - <el-option label="文本框" value="input" /> | ||
| 78 | - <el-option label="文本域" value="textarea" /> | ||
| 79 | - <el-option label="下拉框" value="select" /> | ||
| 80 | - <el-option label="单选框" value="radio" /> | ||
| 81 | - <el-option label="复选框" value="checkbox" /> | ||
| 82 | - <el-option label="日期控件" value="datetime" /> | ||
| 83 | - <el-option label="图片上传" value="imageUpload" /> | ||
| 84 | - <el-option label="文件上传" value="fileUpload" /> | ||
| 85 | - <el-option label="富文本控件" value="editor" /> | ||
| 86 | - </el-select> | 81 | + <vxe-select v-model="row.htmlType" placeholder="请选择显示类型"> |
| 82 | + <vxe-option label="文本框" value="input" /> | ||
| 83 | + <vxe-option label="文本域" value="textarea" /> | ||
| 84 | + <vxe-option label="下拉框" value="select" /> | ||
| 85 | + <vxe-option label="单选框" value="radio" /> | ||
| 86 | + <vxe-option label="复选框" value="checkbox" /> | ||
| 87 | + <vxe-option label="日期控件" value="datetime" /> | ||
| 88 | + <vxe-option label="图片上传" value="imageUpload" /> | ||
| 89 | + <vxe-option label="文件上传" value="fileUpload" /> | ||
| 90 | + <vxe-option label="富文本控件" value="editor" /> | ||
| 91 | + </vxe-select> | ||
| 87 | </template> | 92 | </template> |
| 88 | </vxe-column> | 93 | </vxe-column> |
| 89 | <vxe-column title="字典类型" width="10%" field="dictType"> | 94 | <vxe-column title="字典类型" width="10%" field="dictType"> |
| 90 | <template #default="{ row }"> | 95 | <template #default="{ row }"> |
| 91 | - <el-select v-model="row.dictType" clearable filterable placeholder="请选择"> | ||
| 92 | - <el-option | 96 | + <vxe-select v-model="row.dictType" clearable filterable placeholder="请选择字典类型"> |
| 97 | + <vxe-option | ||
| 93 | v-for="dict in dictOptions" | 98 | v-for="dict in dictOptions" |
| 94 | :key="dict.id" | 99 | :key="dict.id" |
| 95 | :label="dict.name" | 100 | :label="dict.name" |
| 96 | :value="dict.type" | 101 | :value="dict.type" |
| 97 | /> | 102 | /> |
| 98 | - </el-select> | 103 | + </vxe-select> |
| 99 | </template> | 104 | </template> |
| 100 | </vxe-column> | 105 | </vxe-column> |
| 101 | <vxe-column title="示例" field="example"> | 106 | <vxe-column title="示例" field="example"> |
| 102 | <template #default="{ row }"> | 107 | <template #default="{ row }"> |
| 103 | - <el-input v-model="row.example" /> | 108 | + <vxe-input v-model="row.example" placeholder="请输入示例" /> |
| 104 | </template> | 109 | </template> |
| 105 | </vxe-column> | 110 | </vxe-column> |
| 106 | </vxe-table> | 111 | </vxe-table> |
| 107 | </template> | 112 | </template> |
| 108 | <script setup lang="ts"> | 113 | <script setup lang="ts"> |
| 109 | import { onMounted, PropType, ref } from 'vue' | 114 | import { onMounted, PropType, ref } from 'vue' |
| 110 | -import { ElInput, ElSelect, ElOption } from 'element-plus' | ||
| 111 | import { DictTypeVO } from '@/api/system/dict/types' | 115 | import { DictTypeVO } from '@/api/system/dict/types' |
| 112 | import { CodegenColumnVO } from '@/api/infra/codegen/types' | 116 | import { CodegenColumnVO } from '@/api/infra/codegen/types' |
| 113 | import { listSimpleDictTypeApi } from '@/api/system/dict/dict.type' | 117 | import { listSimpleDictTypeApi } from '@/api/system/dict/dict.type' |
yudao-ui-admin-vue3/src/views/infra/codegen/components/GenInfoForm.vue deleted
| 1 | -<template> | ||
| 2 | - <Form :rules="rules" @register="register" /> | ||
| 3 | -</template> | ||
| 4 | -<script setup lang="ts"> | ||
| 5 | -import { onMounted, PropType, reactive, ref, watch } from 'vue' | ||
| 6 | -import { Form } from '@/components/Form' | ||
| 7 | -import { useForm } from '@/hooks/web/useForm' | ||
| 8 | -import { required } from '@/utils/formRules' | ||
| 9 | -import { handleTree, defaultProps } from '@/utils/tree' | ||
| 10 | -import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' | ||
| 11 | -import { listSimpleMenusApi } from '@/api/system/menu' | ||
| 12 | -import { CodegenTableVO } from '@/api/infra/codegen/types' | ||
| 13 | -import { FormSchema } from '@/types/form' | ||
| 14 | -const props = defineProps({ | ||
| 15 | - genInfo: { | ||
| 16 | - type: Object as PropType<Nullable<CodegenTableVO>>, | ||
| 17 | - default: () => null | ||
| 18 | - } | ||
| 19 | -}) | ||
| 20 | -const rules = reactive({ | ||
| 21 | - templateType: [required], | ||
| 22 | - scene: [required], | ||
| 23 | - moduleName: [required], | ||
| 24 | - businessName: [required], | ||
| 25 | - businessPackage: [required], | ||
| 26 | - className: [required], | ||
| 27 | - classComment: [required] | ||
| 28 | -}) | ||
| 29 | -const templateTypeOptions = getIntDictOptions(DICT_TYPE.INFRA_CODEGEN_TEMPLATE_TYPE) | ||
| 30 | -const sceneOptions = getIntDictOptions(DICT_TYPE.INFRA_CODEGEN_SCENE) | ||
| 31 | -const menuOptions = ref<any>([]) // 树形结构 | ||
| 32 | -const getTree = async () => { | ||
| 33 | - const res = await listSimpleMenusApi() | ||
| 34 | - menuOptions.value = handleTree(res) | ||
| 35 | -} | ||
| 36 | -const schema = reactive<FormSchema[]>([ | ||
| 37 | - { | ||
| 38 | - label: '生成模板', | ||
| 39 | - field: 'templateType', | ||
| 40 | - component: 'Select', | ||
| 41 | - componentProps: { | ||
| 42 | - options: templateTypeOptions | ||
| 43 | - }, | ||
| 44 | - colProps: { | ||
| 45 | - span: 12 | ||
| 46 | - } | ||
| 47 | - }, | ||
| 48 | - { | ||
| 49 | - label: '生成场景', | ||
| 50 | - field: 'scene', | ||
| 51 | - component: 'Select', | ||
| 52 | - componentProps: { | ||
| 53 | - options: sceneOptions | ||
| 54 | - }, | ||
| 55 | - colProps: { | ||
| 56 | - span: 12 | ||
| 57 | - } | ||
| 58 | - }, | ||
| 59 | - { | ||
| 60 | - label: '模块名', | ||
| 61 | - field: 'moduleName', | ||
| 62 | - component: 'Input', | ||
| 63 | - labelMessage: '模块名,即一级目录,例如 system、infra、tool 等等', | ||
| 64 | - colProps: { | ||
| 65 | - span: 12 | ||
| 66 | - } | ||
| 67 | - }, | ||
| 68 | - { | ||
| 69 | - label: '业务名', | ||
| 70 | - field: 'businessName', | ||
| 71 | - component: 'Input', | ||
| 72 | - labelMessage: '业务名,即二级目录,例如 user、permission、dict 等等', | ||
| 73 | - colProps: { | ||
| 74 | - span: 12 | ||
| 75 | - } | ||
| 76 | - }, | ||
| 77 | - { | ||
| 78 | - label: '类名称', | ||
| 79 | - field: 'className', | ||
| 80 | - component: 'Input', | ||
| 81 | - labelMessage: '类名称(首字母大写),例如SysUser、SysMenu、SysDictData 等等', | ||
| 82 | - colProps: { | ||
| 83 | - span: 12 | ||
| 84 | - } | ||
| 85 | - }, | ||
| 86 | - { | ||
| 87 | - label: '类描述', | ||
| 88 | - field: 'classComment', | ||
| 89 | - component: 'Input', | ||
| 90 | - labelMessage: '用作类描述,例如 用户', | ||
| 91 | - colProps: { | ||
| 92 | - span: 12 | ||
| 93 | - } | ||
| 94 | - }, | ||
| 95 | - { | ||
| 96 | - label: '上级菜单', | ||
| 97 | - field: 'parentMenuId', | ||
| 98 | - component: 'TreeSelect', | ||
| 99 | - componentProps: { | ||
| 100 | - data: menuOptions, | ||
| 101 | - props: defaultProps, | ||
| 102 | - checkStrictly: true, | ||
| 103 | - nodeKey: 'id' | ||
| 104 | - }, | ||
| 105 | - labelMessage: '分配到指定菜单下,例如 系统管理', | ||
| 106 | - colProps: { | ||
| 107 | - span: 12 | ||
| 108 | - } | ||
| 109 | - } | ||
| 110 | -]) | ||
| 111 | -const { register, methods, elFormRef } = useForm({ | ||
| 112 | - schema | ||
| 113 | -}) | ||
| 114 | - | ||
| 115 | -// ========== 初始化 ========== | ||
| 116 | -onMounted(async () => { | ||
| 117 | - await getTree() | ||
| 118 | -}) | ||
| 119 | -watch( | ||
| 120 | - () => props.genInfo, | ||
| 121 | - (genInfo) => { | ||
| 122 | - if (!genInfo) return | ||
| 123 | - const { setValues } = methods | ||
| 124 | - setValues(genInfo) | ||
| 125 | - }, | ||
| 126 | - { | ||
| 127 | - deep: true, | ||
| 128 | - immediate: true | ||
| 129 | - } | ||
| 130 | -) | ||
| 131 | -defineExpose({ | ||
| 132 | - elFormRef, | ||
| 133 | - getFormData: methods.getFormData | ||
| 134 | -}) | ||
| 135 | -</script> |
yudao-ui-admin-vue3/src/views/infra/codegen/components/Preview.vue
| @@ -13,7 +13,7 @@ | @@ -13,7 +13,7 @@ | ||
| 13 | /> | 13 | /> |
| 14 | </el-scrollbar> | 14 | </el-scrollbar> |
| 15 | </el-card> | 15 | </el-card> |
| 16 | - <el-card class="w-3/4" style="margin-left: 10px" :gutter="12" shadow="hover"> | 16 | + <el-card class="w-3/4 ml-3" :gutter="12" shadow="hover"> |
| 17 | <el-tabs v-model="preview.activeName"> | 17 | <el-tabs v-model="preview.activeName"> |
| 18 | <el-tab-pane | 18 | <el-tab-pane |
| 19 | v-for="item in previewCodegen" | 19 | v-for="item in previewCodegen" |
yudao-ui-admin-vue3/src/views/infra/codegen/components/index.ts
| 1 | import BasicInfoForm from './BasicInfoForm.vue' | 1 | import BasicInfoForm from './BasicInfoForm.vue' |
| 2 | import CloumInfoForm from './CloumInfoForm.vue' | 2 | import CloumInfoForm from './CloumInfoForm.vue' |
| 3 | -import GenInfoForm from './GenInfoForm.vue' | ||
| 4 | import ImportTable from './ImportTable.vue' | 3 | import ImportTable from './ImportTable.vue' |
| 5 | import Preview from './Preview.vue' | 4 | import Preview from './Preview.vue' |
| 6 | -export { BasicInfoForm, CloumInfoForm, GenInfoForm, ImportTable, Preview } | 5 | +export { BasicInfoForm, CloumInfoForm, ImportTable, Preview } |
yudao-ui-admin-vue3/src/views/infra/codegen/index.vue
| @@ -32,7 +32,7 @@ | @@ -32,7 +32,7 @@ | ||
| 32 | preIcon="ep:delete" | 32 | preIcon="ep:delete" |
| 33 | :title="t('action.del')" | 33 | :title="t('action.del')" |
| 34 | v-hasPermi="['infra:codegen:delete']" | 34 | v-hasPermi="['infra:codegen:delete']" |
| 35 | - @click="handleDelete(row.id)" | 35 | + @click="deleteData(row.id)" |
| 36 | /> | 36 | /> |
| 37 | <!-- 操作:同步 --> | 37 | <!-- 操作:同步 --> |
| 38 | <XTextButton | 38 | <XTextButton |
| @@ -52,7 +52,7 @@ | @@ -52,7 +52,7 @@ | ||
| 52 | </XTable> | 52 | </XTable> |
| 53 | </ContentWrap> | 53 | </ContentWrap> |
| 54 | <!-- 弹窗:导入表 --> | 54 | <!-- 弹窗:导入表 --> |
| 55 | - <ImportTable ref="importRef" @ok="handleQuery()" /> | 55 | + <ImportTable ref="importRef" @ok="reload()" /> |
| 56 | <!-- 弹窗:预览代码 --> | 56 | <!-- 弹窗:预览代码 --> |
| 57 | <Preview ref="previewRef" /> | 57 | <Preview ref="previewRef" /> |
| 58 | </template> | 58 | </template> |
| @@ -103,17 +103,10 @@ const handleSynchDb = (row: CodegenTableVO) => { | @@ -103,17 +103,10 @@ const handleSynchDb = (row: CodegenTableVO) => { | ||
| 103 | message.success('同步成功') | 103 | message.success('同步成功') |
| 104 | }) | 104 | }) |
| 105 | } | 105 | } |
| 106 | + | ||
| 106 | // 生成代码操作 | 107 | // 生成代码操作 |
| 107 | const handleGenTable = async (row: CodegenTableVO) => { | 108 | const handleGenTable = async (row: CodegenTableVO) => { |
| 108 | const res = await CodegenApi.downloadCodegenApi(row.id) | 109 | const res = await CodegenApi.downloadCodegenApi(row.id) |
| 109 | download.zip(res, 'codegen-' + row.className + '.zip') | 110 | download.zip(res, 'codegen-' + row.className + '.zip') |
| 110 | } | 111 | } |
| 111 | -// 删除操作 | ||
| 112 | -const handleDelete = async (rowId: number) => { | ||
| 113 | - await deleteData(rowId) | ||
| 114 | -} | ||
| 115 | -// 查询操作 | ||
| 116 | -const handleQuery = async () => { | ||
| 117 | - await reload() | ||
| 118 | -} | ||
| 119 | </script> | 112 | </script> |
yudao-ui-admin-vue3/src/views/infra/config/index.vue
| @@ -17,7 +17,7 @@ | @@ -17,7 +17,7 @@ | ||
| 17 | preIcon="ep:download" | 17 | preIcon="ep:download" |
| 18 | :title="t('action.export')" | 18 | :title="t('action.export')" |
| 19 | v-hasPermi="['infra:config:export']" | 19 | v-hasPermi="['infra:config:export']" |
| 20 | - @click="handleExport()" | 20 | + @click="exportList('配置.xls')" |
| 21 | /> | 21 | /> |
| 22 | </template> | 22 | </template> |
| 23 | <template #visible_default="{ row }"> | 23 | <template #visible_default="{ row }"> |
| @@ -43,7 +43,7 @@ | @@ -43,7 +43,7 @@ | ||
| 43 | preIcon="ep:delete" | 43 | preIcon="ep:delete" |
| 44 | :title="t('action.del')" | 44 | :title="t('action.del')" |
| 45 | v-hasPermi="['infra:config:delete']" | 45 | v-hasPermi="['infra:config:delete']" |
| 46 | - @click="handleDelete(row.id)" | 46 | + @click="deleteData(row.id)" |
| 47 | /> | 47 | /> |
| 48 | </template> | 48 | </template> |
| 49 | </XTable> | 49 | </XTable> |
| @@ -123,11 +123,6 @@ const handleCreate = () => { | @@ -123,11 +123,6 @@ const handleCreate = () => { | ||
| 123 | setDialogTile('create') | 123 | setDialogTile('create') |
| 124 | } | 124 | } |
| 125 | 125 | ||
| 126 | -// 导出操作 | ||
| 127 | -const handleExport = async () => { | ||
| 128 | - await exportList('配置.xls') | ||
| 129 | -} | ||
| 130 | - | ||
| 131 | // 修改操作 | 126 | // 修改操作 |
| 132 | const handleUpdate = async (rowId: number) => { | 127 | const handleUpdate = async (rowId: number) => { |
| 133 | setDialogTile('update') | 128 | setDialogTile('update') |
| @@ -143,11 +138,6 @@ const handleDetail = async (rowId: number) => { | @@ -143,11 +138,6 @@ const handleDetail = async (rowId: number) => { | ||
| 143 | detailData.value = res | 138 | detailData.value = res |
| 144 | } | 139 | } |
| 145 | 140 | ||
| 146 | -// 删除操作 | ||
| 147 | -const handleDelete = async (rowId: number) => { | ||
| 148 | - await deleteData(rowId) | ||
| 149 | -} | ||
| 150 | - | ||
| 151 | // 提交按钮 | 141 | // 提交按钮 |
| 152 | const submitForm = async () => { | 142 | const submitForm = async () => { |
| 153 | const elForm = unref(formRef)?.getElFormRef() | 143 | const elForm = unref(formRef)?.getElFormRef() |
yudao-ui-admin-vue3/src/views/infra/dataSourceConfig/index.vue
| @@ -31,7 +31,7 @@ | @@ -31,7 +31,7 @@ | ||
| 31 | preIcon="ep:delete" | 31 | preIcon="ep:delete" |
| 32 | :title="t('action.del')" | 32 | :title="t('action.del')" |
| 33 | v-hasPermi="['infra:data-source-config:delete']" | 33 | v-hasPermi="['infra:data-source-config:delete']" |
| 34 | - @click="handleDelete(row.id)" | 34 | + @click="deleteData(row.id)" |
| 35 | /> | 35 | /> |
| 36 | </template> | 36 | </template> |
| 37 | </XTable> | 37 | </XTable> |
| @@ -121,11 +121,6 @@ const handleDetail = async (rowId: number) => { | @@ -121,11 +121,6 @@ const handleDetail = async (rowId: number) => { | ||
| 121 | setDialogTile('detail') | 121 | setDialogTile('detail') |
| 122 | } | 122 | } |
| 123 | 123 | ||
| 124 | -// 删除操作 | ||
| 125 | -const handleDelete = async (rowId: number) => { | ||
| 126 | - await deleteData(rowId) | ||
| 127 | -} | ||
| 128 | - | ||
| 129 | // 提交按钮 | 124 | // 提交按钮 |
| 130 | const submitForm = async () => { | 125 | const submitForm = async () => { |
| 131 | const elForm = unref(formRef)?.getElFormRef() | 126 | const elForm = unref(formRef)?.getElFormRef() |
yudao-ui-admin-vue3/src/views/infra/fileConfig/index.vue
| @@ -41,7 +41,7 @@ | @@ -41,7 +41,7 @@ | ||
| 41 | preIcon="ep:delete" | 41 | preIcon="ep:delete" |
| 42 | :title="t('action.del')" | 42 | :title="t('action.del')" |
| 43 | v-hasPermi="['infra:file-config:delete']" | 43 | v-hasPermi="['infra:file-config:delete']" |
| 44 | - @click="handleDelete(row.id)" | 44 | + @click="deleteData(row.id)" |
| 45 | /> | 45 | /> |
| 46 | </template> | 46 | </template> |
| 47 | </XTable> | 47 | </XTable> |
| @@ -283,11 +283,6 @@ const handleTest = async (rowId: number) => { | @@ -283,11 +283,6 @@ const handleTest = async (rowId: number) => { | ||
| 283 | message.alert('测试通过,上传文件成功!访问地址:' + res) | 283 | message.alert('测试通过,上传文件成功!访问地址:' + res) |
| 284 | } | 284 | } |
| 285 | 285 | ||
| 286 | -// 删除操作 | ||
| 287 | -const handleDelete = async (rowId: number) => { | ||
| 288 | - await deleteData(rowId) | ||
| 289 | -} | ||
| 290 | - | ||
| 291 | // 提交按钮 | 286 | // 提交按钮 |
| 292 | const submitForm = async (formEl: FormInstance | undefined) => { | 287 | const submitForm = async (formEl: FormInstance | undefined) => { |
| 293 | if (!formEl) return | 288 | if (!formEl) return |
yudao-ui-admin-vue3/src/views/infra/fileList/fileList.data.ts
| @@ -23,7 +23,7 @@ const crudSchemas = reactive<VxeCrudSchema>({ | @@ -23,7 +23,7 @@ const crudSchemas = reactive<VxeCrudSchema>({ | ||
| 23 | field: 'url', | 23 | field: 'url', |
| 24 | table: { | 24 | table: { |
| 25 | cellRender: { | 25 | cellRender: { |
| 26 | - name: 'XImg' | 26 | + name: 'XPreview' |
| 27 | } | 27 | } |
| 28 | } | 28 | } |
| 29 | }, | 29 | }, |
yudao-ui-admin-vue3/src/views/infra/fileList/index.vue
| @@ -21,7 +21,7 @@ | @@ -21,7 +21,7 @@ | ||
| 21 | preIcon="ep:delete" | 21 | preIcon="ep:delete" |
| 22 | :title="t('action.del')" | 22 | :title="t('action.del')" |
| 23 | v-hasPermi="['infra:file:delete']" | 23 | v-hasPermi="['infra:file:delete']" |
| 24 | - @click="handleDelete(row.id)" | 24 | + @click="deleteData(row.id)" |
| 25 | /> | 25 | /> |
| 26 | </template> | 26 | </template> |
| 27 | </XTable> | 27 | </XTable> |
| @@ -162,11 +162,6 @@ const handleDetail = (row: FileApi.FileVO) => { | @@ -162,11 +162,6 @@ const handleDetail = (row: FileApi.FileVO) => { | ||
| 162 | dialogVisible.value = true | 162 | dialogVisible.value = true |
| 163 | } | 163 | } |
| 164 | 164 | ||
| 165 | -// 删除操作 | ||
| 166 | -const handleDelete = async (rowId: number) => { | ||
| 167 | - await deleteData(rowId) | ||
| 168 | -} | ||
| 169 | - | ||
| 170 | // ========== 复制相关 ========== | 165 | // ========== 复制相关 ========== |
| 171 | const handleCopy = async (text: string) => { | 166 | const handleCopy = async (text: string) => { |
| 172 | const { copy, copied, isSupported } = useClipboard({ source: text }) | 167 | const { copy, copied, isSupported } = useClipboard({ source: text }) |
yudao-ui-admin-vue3/src/views/infra/job/JobLog.vue
| @@ -8,7 +8,7 @@ | @@ -8,7 +8,7 @@ | ||
| 8 | preIcon="ep:download" | 8 | preIcon="ep:download" |
| 9 | :title="t('action.export')" | 9 | :title="t('action.export')" |
| 10 | v-hasPermi="['infra:job:export']" | 10 | v-hasPermi="['infra:job:export']" |
| 11 | - @click="handleExport()" | 11 | + @click="exportList('定时任务详情.xls')" |
| 12 | /> | 12 | /> |
| 13 | </template> | 13 | </template> |
| 14 | <template #beginTime_default="{ row }"> | 14 | <template #beginTime_default="{ row }"> |
| @@ -77,8 +77,4 @@ const handleDetail = async (row: JobLogApi.JobLogVO) => { | @@ -77,8 +77,4 @@ const handleDetail = async (row: JobLogApi.JobLogVO) => { | ||
| 77 | dialogTitle.value = t('action.detail') | 77 | dialogTitle.value = t('action.detail') |
| 78 | dialogVisible.value = true | 78 | dialogVisible.value = true |
| 79 | } | 79 | } |
| 80 | -// 导出操作 | ||
| 81 | -const handleExport = async () => { | ||
| 82 | - await exportList('定时任务详情.xls') | ||
| 83 | -} | ||
| 84 | </script> | 80 | </script> |
yudao-ui-admin-vue3/src/views/infra/job/index.vue
| @@ -17,14 +17,14 @@ | @@ -17,14 +17,14 @@ | ||
| 17 | preIcon="ep:download" | 17 | preIcon="ep:download" |
| 18 | :title="t('action.export')" | 18 | :title="t('action.export')" |
| 19 | v-hasPermi="['infra:job:export']" | 19 | v-hasPermi="['infra:job:export']" |
| 20 | - @click="handleExport()" | 20 | + @click="exportList('定时任务.xls')" |
| 21 | /> | 21 | /> |
| 22 | <XButton | 22 | <XButton |
| 23 | type="info" | 23 | type="info" |
| 24 | preIcon="ep:zoom-in" | 24 | preIcon="ep:zoom-in" |
| 25 | title="执行日志" | 25 | title="执行日志" |
| 26 | v-hasPermi="['infra:job:query']" | 26 | v-hasPermi="['infra:job:query']" |
| 27 | - @click="handleJobLog" | 27 | + @click="handleJobLog()" |
| 28 | /> | 28 | /> |
| 29 | </template> | 29 | </template> |
| 30 | <template #actionbtns_default="{ row }"> | 30 | <template #actionbtns_default="{ row }"> |
| @@ -46,7 +46,7 @@ | @@ -46,7 +46,7 @@ | ||
| 46 | preIcon="ep:delete" | 46 | preIcon="ep:delete" |
| 47 | :title="t('action.del')" | 47 | :title="t('action.del')" |
| 48 | v-hasPermi="['infra:job:delete']" | 48 | v-hasPermi="['infra:job:delete']" |
| 49 | - @click="handleDelete(row.id)" | 49 | + @click="deleteData(row.id)" |
| 50 | /> | 50 | /> |
| 51 | <el-dropdown class="p-0.5" v-hasPermi="['infra:job:trigger', 'infra:job:query']"> | 51 | <el-dropdown class="p-0.5" v-hasPermi="['infra:job:trigger', 'infra:job:query']"> |
| 52 | <XTextButton :title="t('action.more')" postIcon="ep:arrow-down" /> | 52 | <XTextButton :title="t('action.more')" postIcon="ep:arrow-down" /> |
| @@ -179,11 +179,6 @@ const handleCreate = () => { | @@ -179,11 +179,6 @@ const handleCreate = () => { | ||
| 179 | setDialogTile('create') | 179 | setDialogTile('create') |
| 180 | } | 180 | } |
| 181 | 181 | ||
| 182 | -// 导出操作 | ||
| 183 | -const handleExport = async () => { | ||
| 184 | - await exportList('定时任务.xls') | ||
| 185 | -} | ||
| 186 | - | ||
| 187 | // 修改操作 | 182 | // 修改操作 |
| 188 | const handleUpdate = async (rowId: number) => { | 183 | const handleUpdate = async (rowId: number) => { |
| 189 | setDialogTile('update') | 184 | setDialogTile('update') |
| @@ -248,10 +243,6 @@ const parseTime = (time) => { | @@ -248,10 +243,6 @@ const parseTime = (time) => { | ||
| 248 | return time_str | 243 | return time_str |
| 249 | } | 244 | } |
| 250 | 245 | ||
| 251 | -// 删除操作 | ||
| 252 | -const handleDelete = async (rowId: number) => { | ||
| 253 | - await deleteData(rowId) | ||
| 254 | -} | ||
| 255 | const handleChangeStatus = async (row: JobApi.JobVO) => { | 246 | const handleChangeStatus = async (row: JobApi.JobVO) => { |
| 256 | const text = row.status === InfraJobStatusEnum.STOP ? '开启' : '关闭' | 247 | const text = row.status === InfraJobStatusEnum.STOP ? '开启' : '关闭' |
| 257 | const status = | 248 | const status = |
| @@ -275,7 +266,7 @@ const handleChangeStatus = async (row: JobApi.JobVO) => { | @@ -275,7 +266,7 @@ const handleChangeStatus = async (row: JobApi.JobVO) => { | ||
| 275 | }) | 266 | }) |
| 276 | } | 267 | } |
| 277 | // 执行日志 | 268 | // 执行日志 |
| 278 | -const handleJobLog = (rowId: number) => { | 269 | +const handleJobLog = (rowId?: number) => { |
| 279 | if (rowId) { | 270 | if (rowId) { |
| 280 | push('/job/job-log?id=' + rowId) | 271 | push('/job/job-log?id=' + rowId) |
| 281 | } else { | 272 | } else { |
yudao-ui-admin-vue3/src/views/infra/webSocket/index.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div class="flex"> | ||
| 3 | + <el-card class="w-1/2" :gutter="12" shadow="always"> | ||
| 4 | + <template #header> | ||
| 5 | + <div class="card-header"> | ||
| 6 | + <span>连接</span> | ||
| 7 | + </div> | ||
| 8 | + </template> | ||
| 9 | + <div class="flex items-center"> | ||
| 10 | + <span class="text-lg font-medium mr-4"> 连接状态: </span> | ||
| 11 | + <el-tag :color="getTagColor">{{ status }}</el-tag> | ||
| 12 | + </div> | ||
| 13 | + <hr class="my-4" /> | ||
| 14 | + | ||
| 15 | + <div class="flex"> | ||
| 16 | + <el-input v-model="server" disabled> | ||
| 17 | + <template #prepend> 服务地址 </template> | ||
| 18 | + </el-input> | ||
| 19 | + <el-button :type="getIsOpen ? 'danger' : 'primary'" @click="toggle"> | ||
| 20 | + {{ getIsOpen ? '关闭连接' : '开启连接' }} | ||
| 21 | + </el-button> | ||
| 22 | + </div> | ||
| 23 | + <p class="text-lg font-medium mt-4">设置</p> | ||
| 24 | + <hr class="my-4" /> | ||
| 25 | + <el-input | ||
| 26 | + v-model="sendValue" | ||
| 27 | + :autosize="{ minRows: 2, maxRows: 4 }" | ||
| 28 | + type="textarea" | ||
| 29 | + :disabled="!getIsOpen" | ||
| 30 | + clearable | ||
| 31 | + /> | ||
| 32 | + <el-button type="primary" block class="mt-4" :disabled="!getIsOpen" @click="handlerSend"> | ||
| 33 | + 发送 | ||
| 34 | + </el-button> | ||
| 35 | + </el-card> | ||
| 36 | + <el-card class="w-1/2" :gutter="12" shadow="always"> | ||
| 37 | + <template #header> | ||
| 38 | + <div class="card-header"> | ||
| 39 | + <span>消息记录</span> | ||
| 40 | + </div> | ||
| 41 | + </template> | ||
| 42 | + <div class="max-h-80 overflow-auto"> | ||
| 43 | + <ul> | ||
| 44 | + <li v-for="item in getList" class="mt-2" :key="item.time"> | ||
| 45 | + <div class="flex items-center"> | ||
| 46 | + <span class="mr-2 text-primary font-medium">收到消息:</span> | ||
| 47 | + <span>{{ dayjs(item.time).format('YYYY-MM-DD HH:mm:ss') }}</span> | ||
| 48 | + </div> | ||
| 49 | + <div> | ||
| 50 | + {{ item.res }} | ||
| 51 | + </div> | ||
| 52 | + </li> | ||
| 53 | + </ul> | ||
| 54 | + </div> | ||
| 55 | + </el-card> | ||
| 56 | + </div> | ||
| 57 | +</template> | ||
| 58 | +<script setup lang="ts"> | ||
| 59 | +import { computed, reactive, ref, watchEffect } from 'vue' | ||
| 60 | +import { ElCard, ElInput, ElTag } from 'element-plus' | ||
| 61 | +import { useWebSocket } from '@vueuse/core' | ||
| 62 | +import dayjs from 'dayjs' | ||
| 63 | +import { useUserStore } from '@/store/modules/user' | ||
| 64 | + | ||
| 65 | +const userStore = useUserStore() | ||
| 66 | + | ||
| 67 | +const sendValue = ref('') | ||
| 68 | + | ||
| 69 | +const server = ref( | ||
| 70 | + (import.meta.env.VITE_BASE_URL + '/websocket/message').replace('http', 'ws') + | ||
| 71 | + '?userId=' + | ||
| 72 | + userStore.getUser.id | ||
| 73 | +) | ||
| 74 | + | ||
| 75 | +const state = reactive({ | ||
| 76 | + recordList: [] as { id: number; time: number; res: string }[] | ||
| 77 | +}) | ||
| 78 | + | ||
| 79 | +const { status, data, send, close, open } = useWebSocket(server.value, { | ||
| 80 | + autoReconnect: false, | ||
| 81 | + heartbeat: true | ||
| 82 | +}) | ||
| 83 | + | ||
| 84 | +watchEffect(() => { | ||
| 85 | + if (data.value) { | ||
| 86 | + try { | ||
| 87 | + const res = JSON.parse(data.value) | ||
| 88 | + state.recordList.push(res) | ||
| 89 | + } catch (error) { | ||
| 90 | + state.recordList.push({ | ||
| 91 | + res: data.value, | ||
| 92 | + id: Math.ceil(Math.random() * 1000), | ||
| 93 | + time: new Date().getTime() | ||
| 94 | + }) | ||
| 95 | + } | ||
| 96 | + } | ||
| 97 | +}) | ||
| 98 | + | ||
| 99 | +const getIsOpen = computed(() => status.value === 'OPEN') | ||
| 100 | +const getTagColor = computed(() => (getIsOpen.value ? 'success' : 'red')) | ||
| 101 | + | ||
| 102 | +const getList = computed(() => { | ||
| 103 | + return [...state.recordList].reverse() | ||
| 104 | +}) | ||
| 105 | + | ||
| 106 | +function handlerSend() { | ||
| 107 | + send(sendValue.value) | ||
| 108 | + sendValue.value = '' | ||
| 109 | +} | ||
| 110 | + | ||
| 111 | +function toggle() { | ||
| 112 | + if (getIsOpen.value) { | ||
| 113 | + close() | ||
| 114 | + } else { | ||
| 115 | + open() | ||
| 116 | + } | ||
| 117 | +} | ||
| 118 | +</script> |
yudao-ui-admin-vue3/src/views/pay/app/index.vue
| @@ -17,7 +17,7 @@ | @@ -17,7 +17,7 @@ | ||
| 17 | preIcon="ep:download" | 17 | preIcon="ep:download" |
| 18 | :title="t('action.export')" | 18 | :title="t('action.export')" |
| 19 | v-hasPermi="['pay:app:export']" | 19 | v-hasPermi="['pay:app:export']" |
| 20 | - @click="handleExport()" | 20 | + @click="exportList('应用信息.xls')" |
| 21 | /> | 21 | /> |
| 22 | </template> | 22 | </template> |
| 23 | <template #actionbtns_default="{ row }"> | 23 | <template #actionbtns_default="{ row }"> |
| @@ -40,7 +40,7 @@ | @@ -40,7 +40,7 @@ | ||
| 40 | preIcon="ep:delete" | 40 | preIcon="ep:delete" |
| 41 | :title="t('action.del')" | 41 | :title="t('action.del')" |
| 42 | v-hasPermi="['pay:app:delete']" | 42 | v-hasPermi="['pay:app:delete']" |
| 43 | - @click="handleDelete(row.id)" | 43 | + @click="deleteData(row.id)" |
| 44 | /> | 44 | /> |
| 45 | </template> | 45 | </template> |
| 46 | </XTable> | 46 | </XTable> |
| @@ -115,11 +115,6 @@ const handleCreate = () => { | @@ -115,11 +115,6 @@ const handleCreate = () => { | ||
| 115 | setDialogTile('create') | 115 | setDialogTile('create') |
| 116 | } | 116 | } |
| 117 | 117 | ||
| 118 | -// 导出操作 | ||
| 119 | -const handleExport = async () => { | ||
| 120 | - await exportList('应用信息.xls') | ||
| 121 | -} | ||
| 122 | - | ||
| 123 | // 修改操作 | 118 | // 修改操作 |
| 124 | const handleUpdate = async (rowId: number) => { | 119 | const handleUpdate = async (rowId: number) => { |
| 125 | setDialogTile('update') | 120 | setDialogTile('update') |
| @@ -135,11 +130,6 @@ const handleDetail = async (rowId: number) => { | @@ -135,11 +130,6 @@ const handleDetail = async (rowId: number) => { | ||
| 135 | detailData.value = res | 130 | detailData.value = res |
| 136 | } | 131 | } |
| 137 | 132 | ||
| 138 | -// 删除操作 | ||
| 139 | -const handleDelete = async (rowId: number) => { | ||
| 140 | - await deleteData(rowId) | ||
| 141 | -} | ||
| 142 | - | ||
| 143 | // 提交按钮 | 133 | // 提交按钮 |
| 144 | const submitForm = async () => { | 134 | const submitForm = async () => { |
| 145 | const elForm = unref(formRef)?.getElFormRef() | 135 | const elForm = unref(formRef)?.getElFormRef() |
yudao-ui-admin-vue3/src/views/pay/merchant/index.vue
| @@ -17,7 +17,7 @@ | @@ -17,7 +17,7 @@ | ||
| 17 | preIcon="ep:download" | 17 | preIcon="ep:download" |
| 18 | :title="t('action.export')" | 18 | :title="t('action.export')" |
| 19 | v-hasPermi="['pay:merchant:export']" | 19 | v-hasPermi="['pay:merchant:export']" |
| 20 | - @click="handleExport()" | 20 | + @click="exportList('商户列表.xls')" |
| 21 | /> | 21 | /> |
| 22 | </template> | 22 | </template> |
| 23 | <template #actionbtns_default="{ row }"> | 23 | <template #actionbtns_default="{ row }"> |
| @@ -40,7 +40,7 @@ | @@ -40,7 +40,7 @@ | ||
| 40 | preIcon="ep:delete" | 40 | preIcon="ep:delete" |
| 41 | :title="t('action.del')" | 41 | :title="t('action.del')" |
| 42 | v-hasPermi="['pay:merchant:delete']" | 42 | v-hasPermi="['pay:merchant:delete']" |
| 43 | - @click="handleDelete(row.id)" | 43 | + @click="deleteData(row.id)" |
| 44 | /> | 44 | /> |
| 45 | </template> | 45 | </template> |
| 46 | </XTable> | 46 | </XTable> |
| @@ -113,11 +113,6 @@ const handleCreate = () => { | @@ -113,11 +113,6 @@ const handleCreate = () => { | ||
| 113 | setDialogTile('create') | 113 | setDialogTile('create') |
| 114 | } | 114 | } |
| 115 | 115 | ||
| 116 | -// 导出操作 | ||
| 117 | -const handleExport = async () => { | ||
| 118 | - await exportList('商户列表.xls') | ||
| 119 | -} | ||
| 120 | - | ||
| 121 | // 修改操作 | 116 | // 修改操作 |
| 122 | const handleUpdate = async (rowId: number) => { | 117 | const handleUpdate = async (rowId: number) => { |
| 123 | setDialogTile('update') | 118 | setDialogTile('update') |
| @@ -133,11 +128,6 @@ const handleDetail = async (rowId: number) => { | @@ -133,11 +128,6 @@ const handleDetail = async (rowId: number) => { | ||
| 133 | detailData.value = res | 128 | detailData.value = res |
| 134 | } | 129 | } |
| 135 | 130 | ||
| 136 | -// 删除操作 | ||
| 137 | -const handleDelete = async (rowId: number) => { | ||
| 138 | - await deleteData(rowId) | ||
| 139 | -} | ||
| 140 | - | ||
| 141 | // 提交按钮 | 131 | // 提交按钮 |
| 142 | const submitForm = async () => { | 132 | const submitForm = async () => { |
| 143 | const elForm = unref(formRef)?.getElFormRef() | 133 | const elForm = unref(formRef)?.getElFormRef() |
yudao-ui-admin-vue3/src/views/pay/order/index.vue
| @@ -17,7 +17,7 @@ | @@ -17,7 +17,7 @@ | ||
| 17 | preIcon="ep:download" | 17 | preIcon="ep:download" |
| 18 | :title="t('action.export')" | 18 | :title="t('action.export')" |
| 19 | v-hasPermi="['pay:order:export']" | 19 | v-hasPermi="['pay:order:export']" |
| 20 | - @click="handleExport()" | 20 | + @click="exportList('订单数据.xls')" |
| 21 | /> | 21 | /> |
| 22 | </template> | 22 | </template> |
| 23 | <template #actionbtns_default="{ row }"> | 23 | <template #actionbtns_default="{ row }"> |
| @@ -72,10 +72,6 @@ const setDialogTile = (type: string) => { | @@ -72,10 +72,6 @@ const setDialogTile = (type: string) => { | ||
| 72 | const handleCreate = () => { | 72 | const handleCreate = () => { |
| 73 | setDialogTile('create') | 73 | setDialogTile('create') |
| 74 | } | 74 | } |
| 75 | -// 导出操作 | ||
| 76 | -const handleExport = async () => { | ||
| 77 | - await exportList('订单数据.xls') | ||
| 78 | -} | ||
| 79 | 75 | ||
| 80 | // 详情操作 | 76 | // 详情操作 |
| 81 | const handleDetail = async (rowId: number) => { | 77 | const handleDetail = async (rowId: number) => { |
yudao-ui-admin-vue3/src/views/pay/refund/index.vue
| @@ -9,7 +9,7 @@ | @@ -9,7 +9,7 @@ | ||
| 9 | preIcon="ep:download" | 9 | preIcon="ep:download" |
| 10 | :title="t('action.export')" | 10 | :title="t('action.export')" |
| 11 | v-hasPermi="['pay:refund:export']" | 11 | v-hasPermi="['pay:refund:export']" |
| 12 | - @click="handleExport()" | 12 | + @click="exportList('退款订单.xls')" |
| 13 | /> | 13 | /> |
| 14 | </template> | 14 | </template> |
| 15 | <template #actionbtns_default="{ row }"> | 15 | <template #actionbtns_default="{ row }"> |
| @@ -49,11 +49,6 @@ const [registerTable, { exportList }] = useXTable({ | @@ -49,11 +49,6 @@ const [registerTable, { exportList }] = useXTable({ | ||
| 49 | exportListApi: RefundApi.exportRefundApi | 49 | exportListApi: RefundApi.exportRefundApi |
| 50 | }) | 50 | }) |
| 51 | 51 | ||
| 52 | -// 导出操作 | ||
| 53 | -const handleExport = async () => { | ||
| 54 | - await exportList('退款订单.xls') | ||
| 55 | -} | ||
| 56 | - | ||
| 57 | // ========== CRUD 相关 ========== | 52 | // ========== CRUD 相关 ========== |
| 58 | const dialogVisible = ref(false) // 是否显示弹出层 | 53 | const dialogVisible = ref(false) // 是否显示弹出层 |
| 59 | const detailData = ref() // 详情 Ref | 54 | const detailData = ref() // 详情 Ref |
yudao-ui-admin-vue3/src/views/system/dept/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <XTable @register="registerTable" show-overflow> | 4 | + <XTable ref="xGrid" @register="registerTable" show-overflow> |
| 5 | <template #toolbar_buttons> | 5 | <template #toolbar_buttons> |
| 6 | <!-- 操作:新增 --> | 6 | <!-- 操作:新增 --> |
| 7 | <XButton | 7 | <XButton |
| @@ -11,8 +11,8 @@ | @@ -11,8 +11,8 @@ | ||
| 11 | v-hasPermi="['system:dept:create']" | 11 | v-hasPermi="['system:dept:create']" |
| 12 | @click="handleCreate()" | 12 | @click="handleCreate()" |
| 13 | /> | 13 | /> |
| 14 | - <XButton title="展开所有" @click="xGrid?.setAllTreeExpand(true)" /> | ||
| 15 | - <XButton title="关闭所有" @click="xGrid?.clearTreeExpand()" /> | 14 | + <XButton title="展开所有" @click="xGrid?.Ref.setAllTreeExpand(true)" /> |
| 15 | + <XButton title="关闭所有" @click="xGrid?.Ref.clearTreeExpand()" /> | ||
| 16 | </template> | 16 | </template> |
| 17 | <template #leaderUserId_default="{ row }"> | 17 | <template #leaderUserId_default="{ row }"> |
| 18 | <span>{{ userNicknameFormat(row) }}</span> | 18 | <span>{{ userNicknameFormat(row) }}</span> |
| @@ -30,7 +30,7 @@ | @@ -30,7 +30,7 @@ | ||
| 30 | preIcon="ep:delete" | 30 | preIcon="ep:delete" |
| 31 | :title="t('action.del')" | 31 | :title="t('action.del')" |
| 32 | v-hasPermi="['system:dept:delete']" | 32 | v-hasPermi="['system:dept:delete']" |
| 33 | - @click="handleDelete(row.id)" | 33 | + @click="deleteData(row.id)" |
| 34 | /> | 34 | /> |
| 35 | </template> | 35 | </template> |
| 36 | </XTable> | 36 | </XTable> |
| @@ -77,7 +77,6 @@ | @@ -77,7 +77,6 @@ | ||
| 77 | <script setup lang="ts" name="Dept"> | 77 | <script setup lang="ts" name="Dept"> |
| 78 | import { nextTick, onMounted, ref, unref } from 'vue' | 78 | import { nextTick, onMounted, ref, unref } from 'vue' |
| 79 | import { ElSelect, ElTreeSelect, ElOption } from 'element-plus' | 79 | import { ElSelect, ElTreeSelect, ElOption } from 'element-plus' |
| 80 | -import { VxeGridInstance } from 'vxe-table' | ||
| 81 | import { handleTree, defaultProps } from '@/utils/tree' | 80 | import { handleTree, defaultProps } from '@/utils/tree' |
| 82 | import { useI18n } from '@/hooks/web/useI18n' | 81 | import { useI18n } from '@/hooks/web/useI18n' |
| 83 | import { useMessage } from '@/hooks/web/useMessage' | 82 | import { useMessage } from '@/hooks/web/useMessage' |
| @@ -90,7 +89,7 @@ import { getListSimpleUsersApi, UserVO } from '@/api/system/user' | @@ -90,7 +89,7 @@ import { getListSimpleUsersApi, UserVO } from '@/api/system/user' | ||
| 90 | const { t } = useI18n() // 国际化 | 89 | const { t } = useI18n() // 国际化 |
| 91 | const message = useMessage() // 消息弹窗 | 90 | const message = useMessage() // 消息弹窗 |
| 92 | // 列表相关的变量 | 91 | // 列表相关的变量 |
| 93 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | 92 | +const xGrid = ref<any>() // 列表 Grid Ref |
| 94 | const treeConfig = { | 93 | const treeConfig = { |
| 95 | transform: true, | 94 | transform: true, |
| 96 | rowField: 'id', | 95 | rowField: 'id', |
| @@ -168,17 +167,13 @@ const submitForm = async () => { | @@ -168,17 +167,13 @@ const submitForm = async () => { | ||
| 168 | dialogVisible.value = false | 167 | dialogVisible.value = false |
| 169 | } finally { | 168 | } finally { |
| 170 | actionLoading.value = false | 169 | actionLoading.value = false |
| 170 | + await getTree() | ||
| 171 | await reload() | 171 | await reload() |
| 172 | } | 172 | } |
| 173 | } | 173 | } |
| 174 | }) | 174 | }) |
| 175 | } | 175 | } |
| 176 | 176 | ||
| 177 | -// 删除操作 | ||
| 178 | -const handleDelete = async (rowId: number) => { | ||
| 179 | - await deleteData(rowId) | ||
| 180 | -} | ||
| 181 | - | ||
| 182 | const userNicknameFormat = (row) => { | 177 | const userNicknameFormat = (row) => { |
| 183 | if (!row || !row.leaderUserId) { | 178 | if (!row || !row.leaderUserId) { |
| 184 | return '未设置' | 179 | return '未设置' |
yudao-ui-admin-vue3/src/views/system/dict/index.vue
| @@ -31,14 +31,14 @@ | @@ -31,14 +31,14 @@ | ||
| 31 | preIcon="ep:delete" | 31 | preIcon="ep:delete" |
| 32 | :title="t('action.del')" | 32 | :title="t('action.del')" |
| 33 | v-hasPermi="['system:dict:delete']" | 33 | v-hasPermi="['system:dict:delete']" |
| 34 | - @click="handleTypeDelete(row.id)" | 34 | + @click="typeDeleteData(row.id)" |
| 35 | /> | 35 | /> |
| 36 | </template> | 36 | </template> |
| 37 | </XTable> | 37 | </XTable> |
| 38 | <!-- @星语:分页和列表重叠在一起了 --> | 38 | <!-- @星语:分页和列表重叠在一起了 --> |
| 39 | </el-card> | 39 | </el-card> |
| 40 | <!-- ====== 字典数据 ====== --> | 40 | <!-- ====== 字典数据 ====== --> |
| 41 | - <el-card class="w-1/2 dict" style="margin-left: 10px" :gutter="12" shadow="hover"> | 41 | + <el-card class="w-1/2 dict ml-3" :gutter="12" shadow="hover"> |
| 42 | <template #header> | 42 | <template #header> |
| 43 | <div class="card-header"> | 43 | <div class="card-header"> |
| 44 | <span>字典数据</span> | 44 | <span>字典数据</span> |
| @@ -74,7 +74,7 @@ | @@ -74,7 +74,7 @@ | ||
| 74 | v-hasPermi="['system:dict:delete']" | 74 | v-hasPermi="['system:dict:delete']" |
| 75 | preIcon="ep:delete" | 75 | preIcon="ep:delete" |
| 76 | :title="t('action.del')" | 76 | :title="t('action.del')" |
| 77 | - @click="handleDataDelete(row.id)" | 77 | + @click="dataDeleteData(row.id)" |
| 78 | /> | 78 | /> |
| 79 | </template> | 79 | </template> |
| 80 | </XTable> | 80 | </XTable> |
| @@ -202,15 +202,6 @@ const setDialogTile = (type: string) => { | @@ -202,15 +202,6 @@ const setDialogTile = (type: string) => { | ||
| 202 | dialogVisible.value = true | 202 | dialogVisible.value = true |
| 203 | } | 203 | } |
| 204 | 204 | ||
| 205 | -// 删除操作 | ||
| 206 | -const handleTypeDelete = async (rowId: number) => { | ||
| 207 | - await typeDeleteData(rowId) | ||
| 208 | -} | ||
| 209 | - | ||
| 210 | -const handleDataDelete = async (rowId: number) => { | ||
| 211 | - await dataDeleteData(rowId) | ||
| 212 | -} | ||
| 213 | - | ||
| 214 | // 提交按钮 | 205 | // 提交按钮 |
| 215 | const submitTypeForm = async () => { | 206 | const submitTypeForm = async () => { |
| 216 | const elForm = unref(typeFormRef)?.getElFormRef() | 207 | const elForm = unref(typeFormRef)?.getElFormRef() |
yudao-ui-admin-vue3/src/views/system/errorCode/index.vue
| @@ -32,7 +32,7 @@ | @@ -32,7 +32,7 @@ | ||
| 32 | preIcon="ep:delete" | 32 | preIcon="ep:delete" |
| 33 | :title="t('action.del')" | 33 | :title="t('action.del')" |
| 34 | v-hasPermi="['system:error-code:delete']" | 34 | v-hasPermi="['system:error-code:delete']" |
| 35 | - @click="handleDelete(row.id)" | 35 | + @click="deleteData(row.id)" |
| 36 | /> | 36 | /> |
| 37 | </template> | 37 | </template> |
| 38 | </XTable> | 38 | </XTable> |
| @@ -121,11 +121,6 @@ const handleDetail = async (rowId: number) => { | @@ -121,11 +121,6 @@ const handleDetail = async (rowId: number) => { | ||
| 121 | detailData.value = res | 121 | detailData.value = res |
| 122 | } | 122 | } |
| 123 | 123 | ||
| 124 | -// 删除操作 | ||
| 125 | -const handleDelete = async (rowId: number) => { | ||
| 126 | - await deleteData(rowId) | ||
| 127 | -} | ||
| 128 | - | ||
| 129 | // 提交新增/修改的表单 | 124 | // 提交新增/修改的表单 |
| 130 | const submitForm = async () => { | 125 | const submitForm = async () => { |
| 131 | const elForm = unref(formRef)?.getElFormRef() | 126 | const elForm = unref(formRef)?.getElFormRef() |
yudao-ui-admin-vue3/src/views/system/loginlog/index.vue
| @@ -8,7 +8,7 @@ | @@ -8,7 +8,7 @@ | ||
| 8 | type="warning" | 8 | type="warning" |
| 9 | preIcon="ep:download" | 9 | preIcon="ep:download" |
| 10 | :title="t('action.export')" | 10 | :title="t('action.export')" |
| 11 | - @click="handleExport()" | 11 | + @click="exportList('登录列表.xls')" |
| 12 | /> | 12 | /> |
| 13 | </template> | 13 | </template> |
| 14 | <template #actionbtns_default="{ row }"> | 14 | <template #actionbtns_default="{ row }"> |
| @@ -54,9 +54,4 @@ const handleDetail = async (row: LoginLogVO) => { | @@ -54,9 +54,4 @@ const handleDetail = async (row: LoginLogVO) => { | ||
| 54 | detailData.value = row | 54 | detailData.value = row |
| 55 | dialogVisible.value = true | 55 | dialogVisible.value = true |
| 56 | } | 56 | } |
| 57 | - | ||
| 58 | -// 导出操作 | ||
| 59 | -const handleExport = async () => { | ||
| 60 | - await exportList('登录列表.xls') | ||
| 61 | -} | ||
| 62 | </script> | 57 | </script> |
yudao-ui-admin-vue3/src/views/system/menu/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <ContentWrap> | 2 | <ContentWrap> |
| 3 | <!-- 列表 --> | 3 | <!-- 列表 --> |
| 4 | - <XTable @register="registerTable" show-overflow> | 4 | + <XTable ref="xGrid" @register="registerTable" show-overflow> |
| 5 | <template #toolbar_buttons> | 5 | <template #toolbar_buttons> |
| 6 | <!-- 操作:新增 --> | 6 | <!-- 操作:新增 --> |
| 7 | <XButton | 7 | <XButton |
| @@ -11,8 +11,8 @@ | @@ -11,8 +11,8 @@ | ||
| 11 | v-hasPermi="['system:menu:create']" | 11 | v-hasPermi="['system:menu:create']" |
| 12 | @click="handleCreate()" | 12 | @click="handleCreate()" |
| 13 | /> | 13 | /> |
| 14 | - <XButton title="展开所有" @click="xGrid?.setAllTreeExpand(true)" /> | ||
| 15 | - <XButton title="关闭所有" @click="xGrid?.clearTreeExpand()" /> | 14 | + <XButton title="展开所有" @click="xGrid?.Ref.setAllTreeExpand(true)" /> |
| 15 | + <XButton title="关闭所有" @click="xGrid?.Ref.clearTreeExpand()" /> | ||
| 16 | </template> | 16 | </template> |
| 17 | <template #name_default="{ row }"> | 17 | <template #name_default="{ row }"> |
| 18 | <Icon :icon="row.icon" /> | 18 | <Icon :icon="row.icon" /> |
| @@ -31,7 +31,7 @@ | @@ -31,7 +31,7 @@ | ||
| 31 | preIcon="ep:delete" | 31 | preIcon="ep:delete" |
| 32 | :title="t('action.del')" | 32 | :title="t('action.del')" |
| 33 | v-hasPermi="['system:menu:delete']" | 33 | v-hasPermi="['system:menu:delete']" |
| 34 | - @click="handleDelete(row.id)" | 34 | + @click="deleteData(row.id)" |
| 35 | /> | 35 | /> |
| 36 | </template> | 36 | </template> |
| 37 | </XTable> | 37 | </XTable> |
| @@ -194,7 +194,6 @@ import { | @@ -194,7 +194,6 @@ import { | ||
| 194 | } from 'element-plus' | 194 | } from 'element-plus' |
| 195 | import { Tooltip } from '@/components/Tooltip' | 195 | import { Tooltip } from '@/components/Tooltip' |
| 196 | import { IconSelect } from '@/components/Icon' | 196 | import { IconSelect } from '@/components/Icon' |
| 197 | -import { VxeGridInstance } from 'vxe-table' | ||
| 198 | // 业务相关的 import | 197 | // 业务相关的 import |
| 199 | import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' | 198 | import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' |
| 200 | import { SystemMenuTypeEnum, CommonStatusEnum } from '@/utils/constants' | 199 | import { SystemMenuTypeEnum, CommonStatusEnum } from '@/utils/constants' |
| @@ -206,9 +205,10 @@ import { useXTable } from '@/hooks/web/useXTable' | @@ -206,9 +205,10 @@ import { useXTable } from '@/hooks/web/useXTable' | ||
| 206 | const { t } = useI18n() // 国际化 | 205 | const { t } = useI18n() // 国际化 |
| 207 | const message = useMessage() // 消息弹窗 | 206 | const message = useMessage() // 消息弹窗 |
| 208 | const { wsCache } = useCache() | 207 | const { wsCache } = useCache() |
| 208 | + | ||
| 209 | +const xGrid = ref<any>(null) | ||
| 210 | + | ||
| 209 | // 列表相关的变量 | 211 | // 列表相关的变量 |
| 210 | -// 列表相关的变量 | ||
| 211 | -const xGrid = ref<VxeGridInstance>() // 列表 Grid Ref | ||
| 212 | const treeConfig = { | 212 | const treeConfig = { |
| 213 | transform: true, | 213 | transform: true, |
| 214 | rowField: 'id', | 214 | rowField: 'id', |
| @@ -334,10 +334,4 @@ const submitForm = async () => { | @@ -334,10 +334,4 @@ const submitForm = async () => { | ||
| 334 | const isExternal = (path: string) => { | 334 | const isExternal = (path: string) => { |
| 335 | return /^(https?:|mailto:|tel:)/.test(path) | 335 | return /^(https?:|mailto:|tel:)/.test(path) |
| 336 | } | 336 | } |
| 337 | - | ||
| 338 | -// ========== 删除 ========== | ||
| 339 | -// 删除操作 | ||
| 340 | -const handleDelete = async (rowId: number) => { | ||
| 341 | - await deleteData(rowId) | ||
| 342 | -} | ||
| 343 | </script> | 337 | </script> |
yudao-ui-admin-vue3/src/views/system/notice/index.vue
| @@ -32,7 +32,7 @@ | @@ -32,7 +32,7 @@ | ||
| 32 | preIcon="ep:delete" | 32 | preIcon="ep:delete" |
| 33 | :title="t('action.del')" | 33 | :title="t('action.del')" |
| 34 | v-hasPermi="['system:notice:delete']" | 34 | v-hasPermi="['system:notice:delete']" |
| 35 | - @click="handleDelete(row.id)" | 35 | + @click="deleteData(row.id)" |
| 36 | /> | 36 | /> |
| 37 | </template> | 37 | </template> |
| 38 | </XTable> | 38 | </XTable> |
| @@ -126,11 +126,6 @@ const handleDetail = async (rowId: number) => { | @@ -126,11 +126,6 @@ const handleDetail = async (rowId: number) => { | ||
| 126 | detailData.value = res | 126 | detailData.value = res |
| 127 | } | 127 | } |
| 128 | 128 | ||
| 129 | -// 删除操作 | ||
| 130 | -const handleDelete = async (rowId: number) => { | ||
| 131 | - await deleteData(rowId) | ||
| 132 | -} | ||
| 133 | - | ||
| 134 | // 提交新增/修改的表单 | 129 | // 提交新增/修改的表单 |
| 135 | const submitForm = async () => { | 130 | const submitForm = async () => { |
| 136 | const elForm = unref(formRef)?.getElFormRef() | 131 | const elForm = unref(formRef)?.getElFormRef() |
yudao-ui-admin-vue3/src/views/system/oauth2/client/index.vue
| @@ -48,7 +48,7 @@ | @@ -48,7 +48,7 @@ | ||
| 48 | preIcon="ep:delete" | 48 | preIcon="ep:delete" |
| 49 | :title="t('action.del')" | 49 | :title="t('action.del')" |
| 50 | v-hasPermi="['system:oauth2-client:delete']" | 50 | v-hasPermi="['system:oauth2-client:delete']" |
| 51 | - @click="handleDelete(row.id)" | 51 | + @click="deleteData(row.id)" |
| 52 | /> | 52 | /> |
| 53 | </template> | 53 | </template> |
| 54 | </XTable> | 54 | </XTable> |
| @@ -184,11 +184,6 @@ const handleDetail = async (rowId: number) => { | @@ -184,11 +184,6 @@ const handleDetail = async (rowId: number) => { | ||
| 184 | detailData.value = res | 184 | detailData.value = res |
| 185 | } | 185 | } |
| 186 | 186 | ||
| 187 | -// 删除操作 | ||
| 188 | -const handleDelete = async (rowId: number) => { | ||
| 189 | - await deleteData(rowId) | ||
| 190 | -} | ||
| 191 | - | ||
| 192 | // 提交新增/修改的表单 | 187 | // 提交新增/修改的表单 |
| 193 | const submitForm = async () => { | 188 | const submitForm = async () => { |
| 194 | const elForm = unref(formRef)?.getElFormRef() | 189 | const elForm = unref(formRef)?.getElFormRef() |
yudao-ui-admin-vue3/src/views/system/oauth2/token/index.vue
| @@ -5,7 +5,7 @@ | @@ -5,7 +5,7 @@ | ||
| 5 | <template #actionbtns_default="{ row }"> | 5 | <template #actionbtns_default="{ row }"> |
| 6 | <!-- 操作:详情 --> | 6 | <!-- 操作:详情 --> |
| 7 | <XTextButton preIcon="ep:view" :title="t('action.detail')" @click="handleDetail(row)" /> | 7 | <XTextButton preIcon="ep:view" :title="t('action.detail')" @click="handleDetail(row)" /> |
| 8 | - <!-- 操作:删除 --> | 8 | + <!-- 操作:登出 --> |
| 9 | <XTextButton | 9 | <XTextButton |
| 10 | preIcon="ep:delete" | 10 | preIcon="ep:delete" |
| 11 | :title="t('action.logout')" | 11 | :title="t('action.logout')" |
yudao-ui-admin-vue3/src/views/system/operatelog/index.vue
| @@ -9,7 +9,7 @@ | @@ -9,7 +9,7 @@ | ||
| 9 | preIcon="ep:download" | 9 | preIcon="ep:download" |
| 10 | :title="t('action.export')" | 10 | :title="t('action.export')" |
| 11 | v-hasPermi="['system:operate-log:export']" | 11 | v-hasPermi="['system:operate-log:export']" |
| 12 | - @click="handleExport()" | 12 | + @click="exportList('操作日志.xls')" |
| 13 | /> | 13 | /> |
| 14 | </template> | 14 | </template> |
| 15 | <template #duration="{ row }"> | 15 | <template #duration="{ row }"> |
| @@ -68,9 +68,4 @@ const handleDetail = (row: OperateLogApi.OperateLogVO) => { | @@ -68,9 +68,4 @@ const handleDetail = (row: OperateLogApi.OperateLogVO) => { | ||
| 68 | detailData.value = row | 68 | detailData.value = row |
| 69 | dialogVisible.value = true | 69 | dialogVisible.value = true |
| 70 | } | 70 | } |
| 71 | - | ||
| 72 | -// 导出操作 | ||
| 73 | -const handleExport = async () => { | ||
| 74 | - await exportList('操作日志.xls') | ||
| 75 | -} | ||
| 76 | </script> | 71 | </script> |
yudao-ui-admin-vue3/src/views/system/post/index.vue
| @@ -17,7 +17,7 @@ | @@ -17,7 +17,7 @@ | ||
| 17 | preIcon="ep:download" | 17 | preIcon="ep:download" |
| 18 | :title="t('action.export')" | 18 | :title="t('action.export')" |
| 19 | v-hasPermi="['system:post:export']" | 19 | v-hasPermi="['system:post:export']" |
| 20 | - @click="handleExport()" | 20 | + @click="exportList('岗位列表.xls')" |
| 21 | /> | 21 | /> |
| 22 | </template> | 22 | </template> |
| 23 | <template #actionbtns_default="{ row }"> | 23 | <template #actionbtns_default="{ row }"> |
| @@ -40,7 +40,7 @@ | @@ -40,7 +40,7 @@ | ||
| 40 | preIcon="ep:delete" | 40 | preIcon="ep:delete" |
| 41 | :title="t('action.del')" | 41 | :title="t('action.del')" |
| 42 | v-hasPermi="['system:post:delete']" | 42 | v-hasPermi="['system:post:delete']" |
| 43 | - @click="handleDelete(row.id)" | 43 | + @click="deleteData(row.id)" |
| 44 | /> | 44 | /> |
| 45 | </template> | 45 | </template> |
| 46 | </XTable> | 46 | </XTable> |
| @@ -117,11 +117,6 @@ const handleCreate = () => { | @@ -117,11 +117,6 @@ const handleCreate = () => { | ||
| 117 | modelLoading.value = false | 117 | modelLoading.value = false |
| 118 | } | 118 | } |
| 119 | 119 | ||
| 120 | -// 导出操作 | ||
| 121 | -const handleExport = async () => { | ||
| 122 | - await exportList('岗位列表.xls') | ||
| 123 | -} | ||
| 124 | - | ||
| 125 | // 修改操作 | 120 | // 修改操作 |
| 126 | const handleUpdate = async (rowId: number) => { | 121 | const handleUpdate = async (rowId: number) => { |
| 127 | setDialogTile('update') | 122 | setDialogTile('update') |
| @@ -139,11 +134,6 @@ const handleDetail = async (rowId: number) => { | @@ -139,11 +134,6 @@ const handleDetail = async (rowId: number) => { | ||
| 139 | modelLoading.value = false | 134 | modelLoading.value = false |
| 140 | } | 135 | } |
| 141 | 136 | ||
| 142 | -// 删除操作 | ||
| 143 | -const handleDelete = async (rowId: number) => { | ||
| 144 | - await deleteData(rowId) | ||
| 145 | -} | ||
| 146 | - | ||
| 147 | // 提交新增/修改的表单 | 137 | // 提交新增/修改的表单 |
| 148 | const submitForm = async () => { | 138 | const submitForm = async () => { |
| 149 | const elForm = unref(formRef)?.getElFormRef() | 139 | const elForm = unref(formRef)?.getElFormRef() |
yudao-ui-admin-vue3/src/views/system/role/index.vue
| @@ -46,7 +46,7 @@ | @@ -46,7 +46,7 @@ | ||
| 46 | preIcon="ep:delete" | 46 | preIcon="ep:delete" |
| 47 | :title="t('action.del')" | 47 | :title="t('action.del')" |
| 48 | v-hasPermi="['system:role:delete']" | 48 | v-hasPermi="['system:role:delete']" |
| 49 | - @click="handleDelete(row.id)" | 49 | + @click="deleteData(row.id)" |
| 50 | /> | 50 | /> |
| 51 | </template> | 51 | </template> |
| 52 | </XTable> | 52 | </XTable> |
| @@ -217,11 +217,6 @@ const handleDetail = async (rowId: number) => { | @@ -217,11 +217,6 @@ const handleDetail = async (rowId: number) => { | ||
| 217 | detailData.value = res | 217 | detailData.value = res |
| 218 | } | 218 | } |
| 219 | 219 | ||
| 220 | -// 删除操作 | ||
| 221 | -const handleDelete = async (rowId: number) => { | ||
| 222 | - await deleteData(rowId) | ||
| 223 | -} | ||
| 224 | - | ||
| 225 | // 提交按钮 | 220 | // 提交按钮 |
| 226 | const submitForm = async () => { | 221 | const submitForm = async () => { |
| 227 | const elForm = unref(formRef)?.getElFormRef() | 222 | const elForm = unref(formRef)?.getElFormRef() |
yudao-ui-admin-vue3/src/views/system/sensitiveWord/index.vue
| @@ -17,7 +17,7 @@ | @@ -17,7 +17,7 @@ | ||
| 17 | preIcon="ep:download" | 17 | preIcon="ep:download" |
| 18 | :title="t('action.export')" | 18 | :title="t('action.export')" |
| 19 | v-hasPermi="['system:sensitive-word:export']" | 19 | v-hasPermi="['system:sensitive-word:export']" |
| 20 | - @click="handleExport()" | 20 | + @click="exportList('敏感词数据.xls')" |
| 21 | /> | 21 | /> |
| 22 | </template> | 22 | </template> |
| 23 | <template #tags_default="{ row }"> | 23 | <template #tags_default="{ row }"> |
| @@ -50,7 +50,7 @@ | @@ -50,7 +50,7 @@ | ||
| 50 | preIcon="ep:delete" | 50 | preIcon="ep:delete" |
| 51 | :title="t('action.del')" | 51 | :title="t('action.del')" |
| 52 | v-hasPermi="['system:sensitive-word:delete']" | 52 | v-hasPermi="['system:sensitive-word:delete']" |
| 53 | - @click="handleDelete(row.id)" | 53 | + @click="deleteData(row.id)" |
| 54 | /> | 54 | /> |
| 55 | </template> | 55 | </template> |
| 56 | </XTable> | 56 | </XTable> |
| @@ -147,11 +147,6 @@ const handleCreate = () => { | @@ -147,11 +147,6 @@ const handleCreate = () => { | ||
| 147 | setDialogTile('create') | 147 | setDialogTile('create') |
| 148 | } | 148 | } |
| 149 | 149 | ||
| 150 | -// 导出操作 | ||
| 151 | -const handleExport = async () => { | ||
| 152 | - await exportList('敏感词数据.xls') | ||
| 153 | -} | ||
| 154 | - | ||
| 155 | // 修改操作 | 150 | // 修改操作 |
| 156 | const handleUpdate = async (rowId: number) => { | 151 | const handleUpdate = async (rowId: number) => { |
| 157 | setDialogTile('update') | 152 | setDialogTile('update') |
| @@ -167,11 +162,6 @@ const handleDetail = async (rowId: number) => { | @@ -167,11 +162,6 @@ const handleDetail = async (rowId: number) => { | ||
| 167 | detailData.value = res | 162 | detailData.value = res |
| 168 | } | 163 | } |
| 169 | 164 | ||
| 170 | -// 删除操作 | ||
| 171 | -const handleDelete = async (rowId: number) => { | ||
| 172 | - await deleteData(rowId) | ||
| 173 | -} | ||
| 174 | - | ||
| 175 | // 提交按钮 | 165 | // 提交按钮 |
| 176 | const submitForm = async () => { | 166 | const submitForm = async () => { |
| 177 | const elForm = unref(formRef)?.getElFormRef() | 167 | const elForm = unref(formRef)?.getElFormRef() |
yudao-ui-admin-vue3/src/views/system/sms/smsChannel/index.vue
| @@ -32,7 +32,7 @@ | @@ -32,7 +32,7 @@ | ||
| 32 | preIcon="ep:delete" | 32 | preIcon="ep:delete" |
| 33 | :title="t('action.del')" | 33 | :title="t('action.del')" |
| 34 | v-hasPermi="['system:sms-channel:delete']" | 34 | v-hasPermi="['system:sms-channel:delete']" |
| 35 | - @click="handleDelete(row.id)" | 35 | + @click="deleteData(row.id)" |
| 36 | /> | 36 | /> |
| 37 | </template> | 37 | </template> |
| 38 | </XTable> | 38 | </XTable> |
| @@ -123,11 +123,6 @@ const handleDetail = async (rowId: number) => { | @@ -123,11 +123,6 @@ const handleDetail = async (rowId: number) => { | ||
| 123 | detailData.value = res | 123 | detailData.value = res |
| 124 | } | 124 | } |
| 125 | 125 | ||
| 126 | -// 删除操作 | ||
| 127 | -const handleDelete = async (rowId: number) => { | ||
| 128 | - await deleteData(rowId) | ||
| 129 | -} | ||
| 130 | - | ||
| 131 | // 提交按钮 | 126 | // 提交按钮 |
| 132 | const submitForm = async () => { | 127 | const submitForm = async () => { |
| 133 | const elForm = unref(formRef)?.getElFormRef() | 128 | const elForm = unref(formRef)?.getElFormRef() |
yudao-ui-admin-vue3/src/views/system/sms/smsLog/index.vue
| @@ -8,7 +8,7 @@ | @@ -8,7 +8,7 @@ | ||
| 8 | type="warning" | 8 | type="warning" |
| 9 | preIcon="ep:download" | 9 | preIcon="ep:download" |
| 10 | :title="t('action.export')" | 10 | :title="t('action.export')" |
| 11 | - @click="handleExport()" | 11 | + @click="exportList('短信日志.xls')" |
| 12 | /> | 12 | /> |
| 13 | </template> | 13 | </template> |
| 14 | <template #actionbtns_default="{ row }"> | 14 | <template #actionbtns_default="{ row }"> |
| @@ -57,9 +57,4 @@ const handleDetail = (row: SmsLoglApi.SmsLogVO) => { | @@ -57,9 +57,4 @@ const handleDetail = (row: SmsLoglApi.SmsLogVO) => { | ||
| 57 | detailData.value = row | 57 | detailData.value = row |
| 58 | dialogVisible.value = true | 58 | dialogVisible.value = true |
| 59 | } | 59 | } |
| 60 | - | ||
| 61 | -// 导出操作 | ||
| 62 | -const handleExport = async () => { | ||
| 63 | - await exportList('短信日志.xls') | ||
| 64 | -} | ||
| 65 | </script> | 60 | </script> |
yudao-ui-admin-vue3/src/views/system/sms/smsTemplate/index.vue
| @@ -38,7 +38,7 @@ | @@ -38,7 +38,7 @@ | ||
| 38 | preIcon="ep:delete" | 38 | preIcon="ep:delete" |
| 39 | :title="t('action.del')" | 39 | :title="t('action.del')" |
| 40 | v-hasPermi="['system:sms-template:delete']" | 40 | v-hasPermi="['system:sms-template:delete']" |
| 41 | - @click="handleDelete(row.id)" | 41 | + @click="deleteData(row.id)" |
| 42 | /> | 42 | /> |
| 43 | </template> | 43 | </template> |
| 44 | </XTable> | 44 | </XTable> |
| @@ -166,11 +166,6 @@ const handleDetail = async (rowId: number) => { | @@ -166,11 +166,6 @@ const handleDetail = async (rowId: number) => { | ||
| 166 | detailData.value = res | 166 | detailData.value = res |
| 167 | } | 167 | } |
| 168 | 168 | ||
| 169 | -// 删除操作 | ||
| 170 | -const handleDelete = async (rowId: number) => { | ||
| 171 | - await deleteData(rowId) | ||
| 172 | -} | ||
| 173 | - | ||
| 174 | // 提交按钮 | 169 | // 提交按钮 |
| 175 | const submitForm = async () => { | 170 | const submitForm = async () => { |
| 176 | const elForm = unref(formRef)?.getElFormRef() | 171 | const elForm = unref(formRef)?.getElFormRef() |
yudao-ui-admin-vue3/src/views/system/tenant/index.vue
| @@ -16,7 +16,7 @@ | @@ -16,7 +16,7 @@ | ||
| 16 | preIcon="ep:download" | 16 | preIcon="ep:download" |
| 17 | :title="t('action.export')" | 17 | :title="t('action.export')" |
| 18 | v-hasPermi="['system:tenant:export']" | 18 | v-hasPermi="['system:tenant:export']" |
| 19 | - @click="handleExport()" | 19 | + @click="exportList('租户列表.xls')" |
| 20 | /> | 20 | /> |
| 21 | </template> | 21 | </template> |
| 22 | <template #accountCount_default="{ row }"> | 22 | <template #accountCount_default="{ row }"> |
| @@ -46,7 +46,7 @@ | @@ -46,7 +46,7 @@ | ||
| 46 | preIcon="ep:delete" | 46 | preIcon="ep:delete" |
| 47 | :title="t('action.del')" | 47 | :title="t('action.del')" |
| 48 | v-hasPermi="['system:tenant:delete']" | 48 | v-hasPermi="['system:tenant:delete']" |
| 49 | - @click="handleDelete(row.id)" | 49 | + @click="deleteData(row.id)" |
| 50 | /> | 50 | /> |
| 51 | </template> | 51 | </template> |
| 52 | </XTable> | 52 | </XTable> |
| @@ -149,16 +149,6 @@ const handleDetail = async (rowId: number) => { | @@ -149,16 +149,6 @@ const handleDetail = async (rowId: number) => { | ||
| 149 | setDialogTile('detail') | 149 | setDialogTile('detail') |
| 150 | } | 150 | } |
| 151 | 151 | ||
| 152 | -// 删除操作 | ||
| 153 | -const handleDelete = async (rowId: number) => { | ||
| 154 | - await deleteData(rowId) | ||
| 155 | -} | ||
| 156 | - | ||
| 157 | -// 导出操作 | ||
| 158 | -const handleExport = async () => { | ||
| 159 | - await exportList('租户列表.xls') | ||
| 160 | -} | ||
| 161 | - | ||
| 162 | // 提交按钮 | 152 | // 提交按钮 |
| 163 | const submitForm = async () => { | 153 | const submitForm = async () => { |
| 164 | const elForm = unref(formRef)?.getElFormRef() | 154 | const elForm = unref(formRef)?.getElFormRef() |
yudao-ui-admin-vue3/src/views/system/tenantPackage/index.vue
| @@ -12,7 +12,7 @@ | @@ -12,7 +12,7 @@ | ||
| 12 | </template> | 12 | </template> |
| 13 | <template #actionbtns_default="{ row }"> | 13 | <template #actionbtns_default="{ row }"> |
| 14 | <XTextButton preIcon="ep:edit" :title="t('action.edit')" @click="handleUpdate(row.id)" /> | 14 | <XTextButton preIcon="ep:edit" :title="t('action.edit')" @click="handleUpdate(row.id)" /> |
| 15 | - <XTextButton preIcon="ep:delete" :title="t('action.del')" @click="handleDelete(row.id)" /> | 15 | + <XTextButton preIcon="ep:delete" :title="t('action.del')" @click="deleteData(row.id)" /> |
| 16 | </template> | 16 | </template> |
| 17 | </XTable> | 17 | </XTable> |
| 18 | </ContentWrap> | 18 | </ContentWrap> |
| @@ -132,11 +132,6 @@ const handleUpdate = async (rowId: number) => { | @@ -132,11 +132,6 @@ const handleUpdate = async (rowId: number) => { | ||
| 132 | unref(treeRef)?.setCheckedKeys(res.menuIds) | 132 | unref(treeRef)?.setCheckedKeys(res.menuIds) |
| 133 | } | 133 | } |
| 134 | 134 | ||
| 135 | -// 删除操作 | ||
| 136 | -const handleDelete = async (rowId: number) => { | ||
| 137 | - await deleteData(rowId) | ||
| 138 | -} | ||
| 139 | - | ||
| 140 | // 提交按钮 | 135 | // 提交按钮 |
| 141 | const submitForm = async () => { | 136 | const submitForm = async () => { |
| 142 | const elForm = unref(formRef)?.getElFormRef() | 137 | const elForm = unref(formRef)?.getElFormRef() |
| @@ -147,7 +142,10 @@ const submitForm = async () => { | @@ -147,7 +142,10 @@ const submitForm = async () => { | ||
| 147 | // 提交请求 | 142 | // 提交请求 |
| 148 | try { | 143 | try { |
| 149 | const data = unref(formRef)?.formModel as TenantPackageApi.TenantPackageVO | 144 | const data = unref(formRef)?.formModel as TenantPackageApi.TenantPackageVO |
| 150 | - data.menuIds = treeRef.value!.getCheckedKeys(false) as number[] | 145 | + data.menuIds = [ |
| 146 | + ...(treeRef.value!.getCheckedKeys(false) as unknown as Array<number>), | ||
| 147 | + ...(treeRef.value!.getHalfCheckedKeys() as unknown as Array<number>) | ||
| 148 | + ] | ||
| 151 | if (actionType.value === 'create') { | 149 | if (actionType.value === 'create') { |
| 152 | await TenantPackageApi.createTenantPackageTypeApi(data) | 150 | await TenantPackageApi.createTenantPackageTypeApi(data) |
| 153 | message.success(t('common.createSuccess')) | 151 | message.success(t('common.createSuccess')) |
yudao-ui-admin-vue3/src/views/system/user/index.vue
| @@ -112,7 +112,7 @@ | @@ -112,7 +112,7 @@ | ||
| 112 | preIcon="ep:delete" | 112 | preIcon="ep:delete" |
| 113 | :title="t('action.del')" | 113 | :title="t('action.del')" |
| 114 | v-hasPermi="['system:user:delete']" | 114 | v-hasPermi="['system:user:delete']" |
| 115 | - @click="handleDelete(row.id)" | 115 | + @click="deleteData(row.id)" |
| 116 | /> | 116 | /> |
| 117 | </el-dropdown-item> | 117 | </el-dropdown-item> |
| 118 | </el-dropdown-menu> | 118 | </el-dropdown-menu> |
| @@ -405,10 +405,7 @@ const handleDetail = async (rowId: number) => { | @@ -405,10 +405,7 @@ const handleDetail = async (rowId: number) => { | ||
| 405 | detailData.value = res | 405 | detailData.value = res |
| 406 | await setDialogTile('detail') | 406 | await setDialogTile('detail') |
| 407 | } | 407 | } |
| 408 | -// 删除操作 | ||
| 409 | -const handleDelete = async (rowId: number) => { | ||
| 410 | - await deleteData(rowId) | ||
| 411 | -} | 408 | + |
| 412 | // 提交按钮 | 409 | // 提交按钮 |
| 413 | const submitForm = async () => { | 410 | const submitForm = async () => { |
| 414 | loading.value = true | 411 | loading.value = true |
yudao-ui-admin/package.json
yudao-ui-admin/src/styles/index.scss
yudao-ui-admin/src/views/infra/file/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <div class="app-container"> | 2 | <div class="app-container"> |
| 3 | - <doc-alert title="上传下载" url="https://doc.iocoder.cn/file/" /> | 3 | + <doc-alert title="上传下载" url="https://doc.iocoder.cn/file/"/> |
| 4 | <!-- 搜索工作栏 --> | 4 | <!-- 搜索工作栏 --> |
| 5 | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> | 5 | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
| 6 | <el-form-item label="文件路径" prop="path"> | 6 | <el-form-item label="文件路径" prop="path"> |
| 7 | <el-input v-model="queryParams.path" placeholder="请输入文件路径" clearable @keyup.enter.native="handleQuery"/> | 7 | <el-input v-model="queryParams.path" placeholder="请输入文件路径" clearable @keyup.enter.native="handleQuery"/> |
| 8 | </el-form-item> | 8 | </el-form-item> |
| 9 | <el-form-item label="创建时间" prop="createTime"> | 9 | <el-form-item label="创建时间" prop="createTime"> |
| 10 | - <el-date-picker v-model="queryParams.createTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss" type="daterange" | ||
| 11 | - range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="['00:00:00', '23:59:59']" /> | 10 | + <el-date-picker v-model="queryParams.createTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss" |
| 11 | + type="daterange" | ||
| 12 | + range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" | ||
| 13 | + :default-time="['00:00:00', '23:59:59']"/> | ||
| 12 | </el-form-item> | 14 | </el-form-item> |
| 13 | <el-form-item> | 15 | <el-form-item> |
| 14 | <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button> | 16 | <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button> |
| @@ -35,6 +37,9 @@ | @@ -35,6 +37,9 @@ | ||
| 35 | <template v-slot="scope"> | 37 | <template v-slot="scope"> |
| 36 | <image-preview v-if="scope.row.type&&scope.row.type.indexOf('image/') === 0" :src="scope.row.url" | 38 | <image-preview v-if="scope.row.type&&scope.row.type.indexOf('image/') === 0" :src="scope.row.url" |
| 37 | :width="'100px'"></image-preview> | 39 | :width="'100px'"></image-preview> |
| 40 | + <video v-else-if="scope.row.type&&scope.row.type.indexOf('video/') === 0" :width="'100px'"> | ||
| 41 | + <source :src="scope.row.url"/> | ||
| 42 | + </video> | ||
| 38 | <i v-else>无法预览,点击 | 43 | <i v-else>无法预览,点击 |
| 39 | <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" target="_blank" | 44 | <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" target="_blank" |
| 40 | :href="getFileUrl + scope.row.configId + '/get/' + scope.row.path">下载 | 45 | :href="getFileUrl + scope.row.configId + '/get/' + scope.row.path">下载 |
| @@ -118,7 +123,7 @@ export default { | @@ -118,7 +123,7 @@ export default { | ||
| 118 | title: "", // 弹出层标题 | 123 | title: "", // 弹出层标题 |
| 119 | isUploading: false, // 是否禁用上传 | 124 | isUploading: false, // 是否禁用上传 |
| 120 | url: process.env.VUE_APP_BASE_API + "/admin-api/infra/file/upload", // 请求地址 | 125 | url: process.env.VUE_APP_BASE_API + "/admin-api/infra/file/upload", // 请求地址 |
| 121 | - headers: { Authorization: "Bearer " + getAccessToken() }, // 设置上传的请求头部 | 126 | + headers: {Authorization: "Bearer " + getAccessToken()}, // 设置上传的请求头部 |
| 122 | data: {} // 上传的额外数据,用于文件名 | 127 | data: {} // 上传的额外数据,用于文件名 |
| 123 | }, | 128 | }, |
| 124 | }; | 129 | }; |
| @@ -189,19 +194,20 @@ export default { | @@ -189,19 +194,20 @@ export default { | ||
| 189 | /** 删除按钮操作 */ | 194 | /** 删除按钮操作 */ |
| 190 | handleDelete(row) { | 195 | handleDelete(row) { |
| 191 | const id = row.id; | 196 | const id = row.id; |
| 192 | - this.$modal.confirm('是否确认删除文件编号为"' + id + '"的数据项?').then(function() { | 197 | + this.$modal.confirm('是否确认删除文件编号为"' + id + '"的数据项?').then(function () { |
| 193 | return deleteFile(id); | 198 | return deleteFile(id); |
| 194 | }).then(() => { | 199 | }).then(() => { |
| 195 | this.getList(); | 200 | this.getList(); |
| 196 | this.$modal.msgSuccess("删除成功"); | 201 | this.$modal.msgSuccess("删除成功"); |
| 197 | - }).catch(() => {}); | 202 | + }).catch(() => { |
| 203 | + }); | ||
| 198 | }, | 204 | }, |
| 199 | // 用户昵称展示 | 205 | // 用户昵称展示 |
| 200 | sizeFormat(row, column) { | 206 | sizeFormat(row, column) { |
| 201 | - const unitArr = ["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"]; | 207 | + const unitArr = ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"]; |
| 202 | const srcSize = parseFloat(row.size); | 208 | const srcSize = parseFloat(row.size); |
| 203 | const index = Math.floor(Math.log(srcSize) / Math.log(1024)); | 209 | const index = Math.floor(Math.log(srcSize) / Math.log(1024)); |
| 204 | - let size =srcSize/Math.pow(1024,index); | 210 | + let size = srcSize / Math.pow(1024, index); |
| 205 | size = size.toFixed(2);//保留的小数位数 | 211 | size = size.toFixed(2);//保留的小数位数 |
| 206 | return size + ' ' + unitArr[index]; | 212 | return size + ' ' + unitArr[index]; |
| 207 | }, | 213 | }, |
yudao-ui-admin/src/views/infra/redis/index.vue
| @@ -136,8 +136,8 @@ | @@ -136,8 +136,8 @@ | ||
| 136 | 136 | ||
| 137 | <script> | 137 | <script> |
| 138 | import {getCache, getKeyDefineList, getKeyList, getKeyValue, deleteKey, deleteKeys} from "@/api/infra/redis"; | 138 | import {getCache, getKeyDefineList, getKeyList, getKeyValue, deleteKey, deleteKeys} from "@/api/infra/redis"; |
| 139 | -import echarts from "echarts"; | ||
| 140 | - | 139 | +import * as echarts from 'echarts' |
| 140 | +require('echarts/theme/macarons') // echarts theme | ||
| 141 | export default { | 141 | export default { |
| 142 | name: "Server", | 142 | name: "Server", |
| 143 | data () { | 143 | data () { |
yudao-ui-admin/src/views/infra/webSocket/index.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div class="app-container"> | ||
| 3 | + <el-form label-width="120px"> | ||
| 4 | + <el-row type="flex" :gutter="0"> | ||
| 5 | + <el-col :sm="12"> | ||
| 6 | + <el-form-item label="WebSocket地址" size="small"> | ||
| 7 | + <el-input v-model="url" type="text"/> | ||
| 8 | + </el-form-item> | ||
| 9 | + </el-col> | ||
| 10 | + <el-col :offset="1"> | ||
| 11 | + <el-form-item label="" label-width="0px" size="small"> | ||
| 12 | + <el-button @click="connect" type="primary" :disabled="ws&&ws.readyState===1"> | ||
| 13 | + {{ ws && ws.readyState === 1 ? "已连接" : "连接" }} | ||
| 14 | + </el-button> | ||
| 15 | + <el-button @click="exit" type="danger">断开</el-button> | ||
| 16 | + </el-form-item> | ||
| 17 | + </el-col> | ||
| 18 | + </el-row> | ||
| 19 | + <el-form-item label="发送内容" size="small"> | ||
| 20 | + <el-input type="textarea" v-model="message" :rows="5"/> | ||
| 21 | + </el-form-item> | ||
| 22 | + <el-form-item label="" size="small"> | ||
| 23 | + <el-button type="success" @click="send">发送消息</el-button> | ||
| 24 | + </el-form-item> | ||
| 25 | + <el-form-item label="接收内容" size="small"> | ||
| 26 | + <el-input type="textarea" v-model="content" :rows="12" disabled/> | ||
| 27 | + </el-form-item> | ||
| 28 | + <el-form-item label="" size="small"> | ||
| 29 | + <el-button type="info" @click="content=''">清空消息</el-button> | ||
| 30 | + </el-form-item> | ||
| 31 | + </el-form> | ||
| 32 | + </div> | ||
| 33 | +</template> | ||
| 34 | + | ||
| 35 | +<script> | ||
| 36 | +import store from "@/store"; | ||
| 37 | +import {getNowDateTime} from "@/utils/ruoyi"; | ||
| 38 | + | ||
| 39 | +export default { | ||
| 40 | + data() { | ||
| 41 | + return { | ||
| 42 | + url: process.env.VUE_APP_BASE_API + "/websocket/message", | ||
| 43 | + message: "", | ||
| 44 | + content: "", | ||
| 45 | + ws: null, | ||
| 46 | + }; | ||
| 47 | + }, | ||
| 48 | + created() { | ||
| 49 | + this.url = this.url.replace("http", "ws") | ||
| 50 | + }, | ||
| 51 | + methods: { | ||
| 52 | + connect() { | ||
| 53 | + if (!'WebSocket' in window) { | ||
| 54 | + this.$modal.msgError("您的浏览器不支持WebSocket"); | ||
| 55 | + return; | ||
| 56 | + } | ||
| 57 | + const userId = store.getters.userId; | ||
| 58 | + this.ws = new WebSocket(this.url + "?userId=" + userId); | ||
| 59 | + const self = this; | ||
| 60 | + this.ws.onopen = function (event) { | ||
| 61 | + self.content = self.content + "\n**********************连接开始**********************\n"; | ||
| 62 | + }; | ||
| 63 | + this.ws.onmessage = function (event) { | ||
| 64 | + self.content = self.content + "接收时间:" + getNowDateTime() + "\n" + event.data + "\n"; | ||
| 65 | + }; | ||
| 66 | + this.ws.onclose = function (event) { | ||
| 67 | + self.content = self.content + "**********************连接关闭**********************\n"; | ||
| 68 | + }; | ||
| 69 | + this.ws.error = function (event) { | ||
| 70 | + self.content = self.content + "**********************连接异常**********************\n"; | ||
| 71 | + }; | ||
| 72 | + }, | ||
| 73 | + exit() { | ||
| 74 | + if (this.ws) { | ||
| 75 | + this.ws.close(); | ||
| 76 | + this.ws = null; | ||
| 77 | + } | ||
| 78 | + }, | ||
| 79 | + send() { | ||
| 80 | + if (!this.ws || this.ws.readyState !== 1) { | ||
| 81 | + this.$modal.msgError("未连接到服务器"); | ||
| 82 | + return; | ||
| 83 | + } | ||
| 84 | + if (!this.message) { | ||
| 85 | + this.$modal.msgError("请输入发送内容"); | ||
| 86 | + return; | ||
| 87 | + } | ||
| 88 | + this.ws.send(this.message); | ||
| 89 | + } | ||
| 90 | + }, | ||
| 91 | +}; | ||
| 92 | +</script> |
yudao-ui-app/api/auth.js
| @@ -10,6 +10,6 @@ export const smsLogin = data => http.post('/member/auth/sms-login', data) | @@ -10,6 +10,6 @@ export const smsLogin = data => http.post('/member/auth/sms-login', data) | ||
| 10 | //微信小程序的一键登录 | 10 | //微信小程序的一键登录 |
| 11 | export const weixinMiniAppLogin = data => http.post('/member/auth/weixin-mini-app-login', data) | 11 | export const weixinMiniAppLogin = data => http.post('/member/auth/weixin-mini-app-login', data) |
| 12 | //刷新令牌 | 12 | //刷新令牌 |
| 13 | -export const refreshToken = data => http.post('/member/auth/refresh-token', data) | 13 | +export const refreshToken = data => http.post('/member/auth/refresh-token', {data}) |
| 14 | //退出登录 | 14 | //退出登录 |
| 15 | export const logout = data => http.post('/member/auth/logout', data) | 15 | export const logout = data => http.post('/member/auth/logout', data) |
yudao-ui-app/store/getters.js
| 1 | const getters = { | 1 | const getters = { |
| 2 | accessToken: state => state.user.accessToken, | 2 | accessToken: state => state.user.accessToken, |
| 3 | + refreshToken: state => state.user.refreshToken, | ||
| 3 | userInfo: state => state.user.userInfo, | 4 | userInfo: state => state.user.userInfo, |
| 4 | hasLogin: state => !!state.user.accessToken | 5 | hasLogin: state => !!state.user.accessToken |
| 5 | } | 6 | } |
yudao-ui-app/utils/request/responseInterceptors.js
| @@ -30,13 +30,16 @@ module.exports = vm => { | @@ -30,13 +30,16 @@ module.exports = vm => { | ||
| 30 | if (!isRefreshToken) { | 30 | if (!isRefreshToken) { |
| 31 | isRefreshToken = true | 31 | isRefreshToken = true |
| 32 | // 1. 如果获取不到刷新令牌,则只能执行登出操作 | 32 | // 1. 如果获取不到刷新令牌,则只能执行登出操作 |
| 33 | - if (!vm.$store.getters.refreshToken()) { | 33 | + if (!vm.$store.getters.refreshToken) { |
| 34 | vm.$store.commit('CLEAR_LOGIN_INFO') | 34 | vm.$store.commit('CLEAR_LOGIN_INFO') |
| 35 | return Promise.reject(res) | 35 | return Promise.reject(res) |
| 36 | } | 36 | } |
| 37 | // 2. 进行刷新访问令牌 | 37 | // 2. 进行刷新访问令牌 |
| 38 | try { | 38 | try { |
| 39 | - const refreshTokenRes = await refreshToken() | 39 | + let param = {} |
| 40 | + let refreshToken = uni.getStorageSync('REFRESH_TOKEN'); | ||
| 41 | + param.refreshToken = refreshToken; | ||
| 42 | + const refreshTokenRes = await refreshToken(param) | ||
| 40 | // 2.1 刷新成功,则回放队列的请求 + 当前请求 | 43 | // 2.1 刷新成功,则回放队列的请求 + 当前请求 |
| 41 | vm.$store.commit('SET_TOKEN', refreshTokenRes.data) | 44 | vm.$store.commit('SET_TOKEN', refreshTokenRes.data) |
| 42 | requestList.forEach(cb => cb()) | 45 | requestList.forEach(cb => cb()) |