├── study-project-backend ├── src │ ├── lib │ │ └── DmJdbcDriver18.jar │ ├── main │ │ ├── resources │ │ │ ├── application.properties │ │ │ └── application.yaml │ │ └── java │ │ │ └── com │ │ │ └── example │ │ │ ├── entity │ │ │ ├── MyData.java │ │ │ ├── Account.java │ │ │ └── RestBean.java │ │ │ ├── SpringbootApplication.java │ │ │ ├── backend │ │ │ └── BackendApplication.java │ │ │ ├── service │ │ │ ├── AuthorizeService.java │ │ │ └── impl │ │ │ │ └── AuthorizeServiceImpl.java │ │ │ ├── mapper │ │ │ └── UserMapper.java │ │ │ ├── controller │ │ │ └── AuthorizeController.java │ │ │ └── config │ │ │ └── SecurityConfiguration.java │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ ├── backend │ │ └── BackendApplicationTests.java │ │ └── SpringbootApplicationTests.java └── pom.xml ├── study-project-frontend ├── src │ ├── img │ │ ├── logo.img │ │ └── logo.png │ ├── App.vue │ ├── components │ │ ├── datasource │ │ │ ├── dbmove.vue │ │ │ └── fileimport.vue │ │ ├── datashow │ │ │ └── index.vue │ │ └── welcome │ │ │ ├── LoginPage.vue │ │ │ ├── RegisterPage.vue │ │ │ └── ForgetPage.vue │ ├── stores │ │ └── counter.js │ ├── main.js │ ├── net │ │ └── index.js │ ├── views │ │ ├── WelcomeView.vue │ │ └── IndexView.vue │ └── router │ │ └── index.js ├── public │ └── favicon.ico ├── index.html ├── package.json ├── vite.config.js ├── README.md └── package-lock.json ├── README.md └── .gitignore /study-project-backend/src/lib/DmJdbcDriver18.jar: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /study-project-backend/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /study-project-frontend/src/img/logo.img: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bsheepcoder/SpringBoot3-vue3-template/HEAD/study-project-frontend/src/img/logo.img -------------------------------------------------------------------------------- /study-project-frontend/src/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bsheepcoder/SpringBoot3-vue3-template/HEAD/study-project-frontend/src/img/logo.png -------------------------------------------------------------------------------- /study-project-frontend/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Bsheepcoder/SpringBoot3-vue3-template/HEAD/study-project-frontend/public/favicon.ico -------------------------------------------------------------------------------- /study-project-backend/src/main/java/com/example/entity/MyData.java: -------------------------------------------------------------------------------- 1 | package com.example.entity; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class MyData { 7 | } 8 | -------------------------------------------------------------------------------- /study-project-frontend/src/App.vue: -------------------------------------------------------------------------------- 1 | 3 | 4 | 7 | 8 | 11 | -------------------------------------------------------------------------------- /study-project-frontend/src/components/datasource/dbmove.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 8 | 9 | -------------------------------------------------------------------------------- /study-project-frontend/src/components/datashow/index.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 8 | 9 | -------------------------------------------------------------------------------- /study-project-frontend/src/components/datasource/fileimport.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /study-project-backend/src/main/java/com/example/entity/Account.java: -------------------------------------------------------------------------------- 1 | package com.example.entity; 2 | 3 | 4 | import lombok.Data; 5 | 6 | @Data 7 | public class Account { 8 | int id; 9 | String username; 10 | String password; 11 | String mail; 12 | } 13 | -------------------------------------------------------------------------------- /study-project-backend/src/test/java/com/example/backend/BackendApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example.backend; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class BackendApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # SpringBoot3_Vue3项目 3 | 4 | 前后端分离项目 5 | 6 | ## 前端 7 | - 前端框架: vue3 8 | - UI框架: ElmentUI 9 | 10 | ## 后端 11 | 12 | - Java版本: Java 11 13 | - 开发框架: SpringBoot 3 14 | - 数据访问: MyBatis 15 | - 项目管理: Maven 16 | - 接口文档: 暂无 17 | 18 | ## 存储 19 | 20 | - 数据库: MySQL 21 | - 对象存储: 暂无 22 | - CDN: 暂无 23 | 24 | ## 版本控制 25 | 26 | - Git 27 | 28 | ## 项目托管 29 | 30 | - GitHub 31 | 32 | -------------------------------------------------------------------------------- /study-project-frontend/src/stores/counter.js: -------------------------------------------------------------------------------- 1 | import { ref, computed } from 'vue' 2 | import { defineStore } from 'pinia' 3 | 4 | export const useCounterStore = defineStore('counter', () => { 5 | const count = ref(0) 6 | const doubleCount = computed(() => count.value * 2) 7 | function increment() { 8 | count.value++ 9 | } 10 | 11 | return { count, doubleCount, increment } 12 | }) 13 | -------------------------------------------------------------------------------- /study-project-backend/src/main/java/com/example/SpringbootApplication.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class SpringbootApplication { 8 | public static void main(String[] args) { 9 | SpringApplication.run(SpringbootApplication.class, args); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /study-project-backend/src/main/java/com/example/backend/BackendApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.backend; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class BackendApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(BackendApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /study-project-frontend/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite App 8 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /study-project-frontend/src/main.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | import { createApp } from 'vue' 4 | import { createPinia } from 'pinia' 5 | 6 | import App from './App.vue' 7 | import router from './router' 8 | import axios from "axios"; 9 | 10 | import ElementPlus from 'element-plus';//为vue3项目特别更新的版本 11 | import 'element-plus/dist/index.css'; 12 | 13 | const app = createApp(App) 14 | 15 | //配置后端服务地址 16 | axios.defaults.baseURL = 'http://localhost:8080' 17 | app.use(createPinia()) 18 | app.use(router) 19 | 20 | app.mount('#app') 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/**/target/ 5 | !**/src/test/**/target/ 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | -------------------------------------------------------------------------------- /study-project-backend/src/main/resources/application.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | # datasource: 3 | # driver-class-name: dm.jdbc.driver.DmDriver 4 | # url: jdbc:dm://47.115.201.125:5236?schema=PRODUCTION 5 | # username: SYSDBA 6 | # password: SYSDBA001 7 | datasource: 8 | driver-class-name: com.mysql.cj.jdbc.Driver 9 | url: jdbc:mysql://#:3306/db_project 10 | username: root 11 | password: # 12 | mail: 13 | host: smtp.163.com 14 | username: # 15 | password: 16 | properties: 17 | from: qxd 18 | data: 19 | redis: 20 | database: 0 21 | host: # 22 | port: 6379 23 | password: -------------------------------------------------------------------------------- /study-project-frontend/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "study-project-frontend", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "vite", 7 | "build": "vite build", 8 | "preview": "vite preview" 9 | }, 10 | "dependencies": { 11 | "@element-plus/icons-vue": "^2.1.0", 12 | "axios": "^1.4.0", 13 | "element-plus": "^2.3.4", 14 | "pinia": "^2.0.35", 15 | "vue": "^3.2.47", 16 | "vue-axios": "^3.5.2", 17 | "vue-router": "^4.1.6" 18 | }, 19 | "devDependencies": { 20 | "@vitejs/plugin-vue": "^4.2.1", 21 | "unplugin-auto-import": "^0.15.3", 22 | "unplugin-vue-components": "^0.24.1", 23 | "vite": "^4.3.4" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /study-project-backend/src/test/java/com/example/SpringbootApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.example; 2 | 3 | import com.example.entity.Account; 4 | import com.example.entity.MyData; 5 | import jakarta.annotation.Resource; 6 | import org.junit.jupiter.api.Test; 7 | import org.springframework.boot.test.context.SpringBootTest; 8 | import org.springframework.beans.factory.annotation.Autowired; 9 | import org.springframework.jdbc.core.JdbcTemplate; 10 | import org.springframework.web.bind.annotation.GetMapping; 11 | import org.springframework.web.bind.annotation.RestController; 12 | import java.util.List; 13 | @SpringBootTest 14 | class SpringbootApplicationTests { 15 | 16 | @Test 17 | void contextLoads() { 18 | 19 | } 20 | 21 | } 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /study-project-frontend/vite.config.js: -------------------------------------------------------------------------------- 1 | import { fileURLToPath, URL } from 'node:url' 2 | 3 | import { defineConfig } from 'vite' 4 | import vue from '@vitejs/plugin-vue' 5 | 6 | 7 | import AutoImport from 'unplugin-auto-import/vite' 8 | import Components from 'unplugin-vue-components/vite' 9 | import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' 10 | 11 | 12 | // https://vitejs.dev/config/ 13 | export default defineConfig({ 14 | plugins: [vue(), 15 | AutoImport({ 16 | resolvers: [ElementPlusResolver()], 17 | }), 18 | Components({ 19 | resolvers: [ElementPlusResolver()], 20 | }) 21 | ], 22 | resolve: { 23 | alias: { 24 | '@': fileURLToPath(new URL('./src', import.meta.url)) 25 | } 26 | } 27 | }) 28 | -------------------------------------------------------------------------------- /study-project-frontend/README.md: -------------------------------------------------------------------------------- 1 | # study-project-frontend 2 | 3 | This template should help get you started developing with Vue 3 in Vite. 4 | 5 | ## Recommended IDE Setup 6 | 7 | [VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin). 8 | 9 | ## Customize configuration 10 | 11 | See [Vite Configuration Reference](https://vitejs.dev/config/). 12 | 13 | ## Project Setup 14 | 15 | ```sh 16 | npm install 17 | ``` 18 | 19 | ### Compile and Hot-Reload for Development 20 | 21 | ```sh 22 | npm run dev 23 | ``` 24 | 25 | ### Compile and Minify for Production 26 | 27 | ```sh 28 | npm run build 29 | ``` 30 | -------------------------------------------------------------------------------- /study-project-backend/src/main/java/com/example/entity/RestBean.java: -------------------------------------------------------------------------------- 1 | package com.example.entity; 2 | 3 | 4 | import lombok.Data; 5 | 6 | @Data 7 | public class RestBean { 8 | private int status; 9 | private boolean success; 10 | private T message; 11 | 12 | public RestBean(int status, boolean success,T message){ 13 | this.status = status; 14 | this.success = success; 15 | this.message = message; 16 | } 17 | 18 | public static RestBean success(){ 19 | return new RestBean<>(200,true,null); 20 | } 21 | public static RestBean success(T data){ 22 | return new RestBean<>(200,true,data); 23 | } 24 | 25 | public static RestBean failure(int status,T data){ 26 | return new RestBean<>(status,false,data); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /study-project-backend/src/main/java/com/example/service/AuthorizeService.java: -------------------------------------------------------------------------------- 1 | package com.example.service; 2 | 3 | import jakarta.servlet.http.HttpSession; 4 | import org.springframework.security.core.userdetails.UserDetails; 5 | import org.springframework.security.core.userdetails.UserDetailsService; 6 | 7 | import org.springframework.stereotype.Service; 8 | 9 | @Service 10 | public interface AuthorizeService extends UserDetailsService { 11 | UserDetails loadUserByUsername(String username); 12 | String sendValidateEmail(String email, String sessionId,boolean hasAccount); 13 | 14 | String validateAndRegister(String username,String password,String email,String code,String sessionId); 15 | 16 | String validateOnly(String email,String code,String sessionId); 17 | 18 | boolean resetPassword(String password, String email); 19 | } 20 | -------------------------------------------------------------------------------- /study-project-backend/src/main/java/com/example/mapper/UserMapper.java: -------------------------------------------------------------------------------- 1 | package com.example.mapper; 2 | 3 | import com.example.entity.Account; 4 | import org.apache.ibatis.annotations.Insert; 5 | import org.apache.ibatis.annotations.Mapper; 6 | import org.apache.ibatis.annotations.Select; 7 | import org.apache.ibatis.annotations.Update; 8 | 9 | import java.util.List; 10 | 11 | @Mapper 12 | public interface UserMapper { 13 | @Select("select * from user where username = #{text} or mail = #{text}") 14 | Account findAccountByNameOrEmail(String text); 15 | 16 | @Insert("insert into user (username,password,mail) values(#{username},#{password},#{mail})") 17 | int createAccount(String username,String password,String mail); 18 | 19 | @Update("update user set password = #{password} where mail = #{mail}") 20 | int resetPasswordByEmail(String password,String mail); 21 | } 22 | -------------------------------------------------------------------------------- /study-project-frontend/src/net/index.js: -------------------------------------------------------------------------------- 1 | import axios from "axios"; 2 | import 'element-plus/es/components/message/style/css'; 3 | import {ElMessage} from "element-plus"; 4 | 5 | const defaultError =() =>ElMessage.error('发生了一些错误,请联系管理员') 6 | const defaultFailure =(message) => ElMessage.warning(message) 7 | 8 | function post(url,data,success,failure = defaultFailure,error = defaultError){ 9 | axios.post(url,data,{ 10 | headers:{ 11 | 'Content-Type':'application/x-www-form-urlencoded' 12 | }, 13 | withCredentials:true 14 | }).then(({data}) => { 15 | if(data.success) 16 | success(data.message,data.status) 17 | else 18 | failure(data.message,data.status) 19 | }).catch(error) 20 | } 21 | 22 | function get(url,success,failure = defaultFailure,error = defaultError){ 23 | axios.get(url,{ 24 | withCredentials:true 25 | }).then(({data}) => { 26 | if(data.success) 27 | success(data.message,data.status) 28 | else 29 | failure(data.message,data.status) 30 | }).catch(error) 31 | } 32 | 33 | export {get,post} -------------------------------------------------------------------------------- /study-project-frontend/src/views/WelcomeView.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 24 | 25 | -------------------------------------------------------------------------------- /study-project-frontend/src/router/index.js: -------------------------------------------------------------------------------- 1 | import { createRouter, createWebHistory } from 'vue-router' 2 | 3 | const router = createRouter({ 4 | history: createWebHistory(import.meta.env.BASE_URL), 5 | routes: [ 6 | { 7 | path:'/', 8 | name:'welcome', 9 | component:() => import('@/views/WelcomeView.vue'), 10 | children:[ 11 | { 12 | path:'', 13 | name:'welcome-login', 14 | component:()=>import('@/components/welcome/LoginPage.vue') 15 | }, 16 | { 17 | path:'register', 18 | name:'welcome-register', 19 | component:()=>import('@/components/welcome/RegisterPage.vue') 20 | }, 21 | { 22 | path:'forget', 23 | name:'welcome-forget', 24 | component:()=>import('@/components/welcome/ForgetPage.vue') 25 | } 26 | ] 27 | },{ 28 | path:'/index', 29 | name:'index', 30 | component:() => import('@/views/IndexView.vue'), 31 | children:[ 32 | { 33 | path:'', 34 | name:'datashow-index', 35 | component:()=>import('@/components/datashow/index.vue') 36 | }, 37 | { 38 | path:'fileimport', 39 | name:'datasource-fileimport', 40 | component:()=>import('@/components/datasource/fileimport.vue') 41 | }, 42 | { 43 | path:'dbmove', 44 | name:'datasource-dbmove', 45 | component:()=>import('@/components/datasource/dbmove.vue') 46 | }, 47 | ] 48 | } 49 | ] 50 | }) 51 | 52 | export default router 53 | -------------------------------------------------------------------------------- /study-project-frontend/src/components/welcome/LoginPage.vue: -------------------------------------------------------------------------------- 1 | 41 | 42 | 43 | 46 | 47 | -------------------------------------------------------------------------------- /study-project-backend/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | org.springframework.boot 7 | spring-boot-starter-parent 8 | 3.0.6 9 | 10 | 11 | com.example 12 | springboot 13 | 0.0.1-SNAPSHOT 14 | springboot 15 | springboot 16 | 17 | 17 18 | 19 | 20 | 21 | 22 | org.yaml 23 | snakeyaml 24 | 2.0 25 | 26 | 27 | org.springframework.boot 28 | spring-boot-starter-data-jdbc 29 | 30 | 31 | org.springframework.boot 32 | spring-boot-starter-security 33 | 34 | 35 | org.springframework.boot 36 | spring-boot-starter-web 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | org.mybatis.spring.boot 47 | mybatis-spring-boot-starter 48 | 3.0.0 49 | 50 | 51 | org.springframework.boot 52 | spring-boot-starter-mail 53 | 54 | 55 | org.springframework.boot 56 | spring-boot-starter-data-redis 57 | 58 | 59 | org.springframework.boot 60 | spring-boot-starter-validation 61 | 62 | 63 | 64 | com.mysql 65 | mysql-connector-j 66 | runtime 67 | 68 | 69 | org.projectlombok 70 | lombok 71 | true 72 | 73 | 74 | org.springframework.boot 75 | spring-boot-starter-test 76 | test 77 | 78 | 79 | org.springframework.security 80 | spring-security-test 81 | test 82 | 83 | 84 | 85 | com.alibaba 86 | fastjson 87 | 1.2.67_noneautotype2 88 | 89 | 90 | 91 | 92 | 93 | 94 | org.springframework.boot 95 | spring-boot-maven-plugin 96 | 97 | 98 | 99 | org.project-lombok 100 | lombok 101 | 102 | 103 | true 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | -------------------------------------------------------------------------------- /study-project-backend/src/main/java/com/example/controller/AuthorizeController.java: -------------------------------------------------------------------------------- 1 | package com.example.controller; 2 | 3 | 4 | import com.example.entity.RestBean; 5 | import com.example.service.AuthorizeService; 6 | import jakarta.annotation.Resource; 7 | import jakarta.servlet.http.HttpSession; 8 | import jakarta.validation.constraints.Pattern; 9 | import org.hibernate.validator.constraints.Length; 10 | import org.springframework.web.bind.annotation.PostMapping; 11 | import org.springframework.web.bind.annotation.RequestMapping; 12 | import org.springframework.web.bind.annotation.RequestParam; 13 | import org.springframework.web.bind.annotation.RestController; 14 | 15 | @RestController 16 | @RequestMapping("/api/auth") 17 | public class AuthorizeController { 18 | 19 | //正则表达式 20 | private final String EMAIL_REGEX = "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$"; 21 | private final String USERNAME_REGEX = "^[\\u4e00-\\u9fa5a-zA-Z0-9_-]{4,16}$"; 22 | 23 | @Resource 24 | AuthorizeService service; 25 | 26 | 27 | //邮箱验证 28 | @PostMapping("/valid-register-email") 29 | public RestBean validateRegisterEmail(@Pattern (regexp = EMAIL_REGEX )@RequestParam("email") String email, HttpSession session){ 30 | 31 | 32 | String s = service.sendValidateEmail(email,session.getId(),false); 33 | if(s == null) 34 | return RestBean.success("邮件已发送,请注意查收"); 35 | else 36 | return RestBean.failure(400,s); 37 | } 38 | 39 | @PostMapping("/valid-reset-email") 40 | public RestBean validateResetEmail(@Pattern (regexp = EMAIL_REGEX )@RequestParam("email") String email, HttpSession session){ 41 | String s = service.sendValidateEmail(email,session.getId(),true); 42 | if(s == null) 43 | return RestBean.success("邮件已发送,请注意查收"); 44 | else 45 | return RestBean.failure(400,s); 46 | } 47 | 48 | 49 | //用户注册 50 | @PostMapping("/register") 51 | public RestBean registerUser(@Pattern(regexp = USERNAME_REGEX)@RequestParam("username") String username, 52 | @Length(min = 6,max = 16) @RequestParam("password") String password, 53 | @RequestParam("email") String email, 54 | @Length(min = 6,max = 6) @RequestParam("code") String code, 55 | HttpSession session){ 56 | String s = service.validateAndRegister(username,password,email,code,session.getId()); 57 | if(s == null){ 58 | return RestBean.success("注册成功"); 59 | }else { 60 | return RestBean.failure(400, s); 61 | } 62 | } 63 | 64 | @PostMapping("/start-rest") 65 | public RestBean startRest(@RequestParam("email") String email, 66 | @Length(min = 6,max = 6) @RequestParam("code") String code, 67 | HttpSession session){ 68 | String s = service.validateOnly(email,code,session.getId()); 69 | if(s == null){ 70 | session.setAttribute("rest-password",email); 71 | return RestBean.success(); 72 | }else { 73 | return RestBean.failure(400,s); 74 | } 75 | } 76 | 77 | @PostMapping("/do-rest") 78 | public RestBean restPassword(@Length(min = 6,max = 16) @RequestParam("password") String password,HttpSession session){ 79 | String email = (String)session.getAttribute("rest-password"); 80 | if(email == null){ 81 | return RestBean.failure(401,"请先进行邮箱验证"); 82 | }else if(service.resetPassword(password,email)){ 83 | session.removeAttribute("reset-password"); 84 | return RestBean.success("密码重置成功"); 85 | }else{ 86 | return RestBean.failure(500,"内部错误,请联系管理员"); 87 | } 88 | } 89 | 90 | } 91 | -------------------------------------------------------------------------------- /study-project-backend/src/main/java/com/example/config/SecurityConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.example.config; 2 | 3 | 4 | import com.alibaba.fastjson.JSONObject; 5 | import com.example.entity.RestBean; 6 | import com.example.service.AuthorizeService; 7 | import jakarta.annotation.Resource; 8 | import jakarta.servlet.http.HttpServletRequest; 9 | import jakarta.servlet.http.HttpServletResponse; 10 | import org.springframework.context.annotation.Bean; 11 | import org.springframework.context.annotation.Configuration; 12 | import org.springframework.security.authentication.AuthenticationManager; 13 | import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; 14 | import org.springframework.security.config.annotation.web.builders.HttpSecurity; 15 | import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; 16 | import org.springframework.security.core.Authentication; 17 | import org.springframework.security.core.AuthenticationException; 18 | import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; 19 | import org.springframework.security.web.SecurityFilterChain; 20 | import org.springframework.security.web.authentication.rememberme.JdbcTokenRepositoryImpl; 21 | import org.springframework.security.web.authentication.rememberme.PersistentTokenRepository; 22 | import org.springframework.web.cors.CorsConfiguration; 23 | import org.springframework.web.cors.CorsConfigurationSource; 24 | import org.springframework.web.cors.UrlBasedCorsConfigurationSource; 25 | 26 | import javax.sql.DataSource; 27 | import java.io.IOException; 28 | 29 | @Configuration 30 | @EnableWebSecurity 31 | public class SecurityConfiguration { 32 | 33 | @Resource 34 | AuthorizeService authorizeservice; 35 | 36 | @Resource 37 | DataSource dataSource; 38 | 39 | @Bean 40 | public SecurityFilterChain filterChain(HttpSecurity http,PersistentTokenRepository repository) throws Exception { 41 | return http 42 | .authorizeHttpRequests() 43 | .requestMatchers("/api/auth/**").permitAll() 44 | .anyRequest().authenticated() 45 | .and() 46 | .formLogin() 47 | .loginProcessingUrl("/api/auth/login") 48 | .successHandler(this::onAuthenticationSuccess) 49 | .failureHandler(this::onAuthenticationFailure) 50 | .and() 51 | .logout() 52 | .logoutUrl("/api/auth/logout") 53 | .logoutSuccessHandler(this::onAuthenticationSuccess) 54 | .and() 55 | .rememberMe() 56 | .rememberMeParameter("remember") 57 | .tokenRepository(repository) 58 | .tokenValiditySeconds(3600 * 24 * 7) 59 | .and() 60 | .csrf() 61 | .disable() 62 | .cors() 63 | .configurationSource(this.corsConfigurationSource()) //解决跨域问题 64 | .and() 65 | .exceptionHandling() 66 | .authenticationEntryPoint(this::onAuthenticationFailure) 67 | .and() 68 | .build(); 69 | } 70 | 71 | //持久化token仓库 72 | @Bean 73 | protected PersistentTokenRepository tokenRepository(){ 74 | JdbcTokenRepositoryImpl jdbcTokenRepository = new JdbcTokenRepositoryImpl(); 75 | //设定数据源 76 | jdbcTokenRepository.setDataSource(dataSource); 77 | //一开始创建表,后面改成false 78 | jdbcTokenRepository.setCreateTableOnStartup(false); 79 | return jdbcTokenRepository; 80 | } 81 | 82 | //解决跨域问题 83 | private CorsConfigurationSource corsConfigurationSource(){ 84 | CorsConfiguration cors = new CorsConfiguration(); 85 | //只有测试的时候才能写成*号,生产环境要好好配置 86 | cors.addAllowedOriginPattern("*"); 87 | cors.setAllowCredentials(true); 88 | cors.addAllowedHeader("*"); 89 | cors.addAllowedMethod("*"); 90 | cors.addExposedHeader("*"); 91 | UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); 92 | source.registerCorsConfiguration("/**",cors); 93 | return source; 94 | } 95 | 96 | @Bean 97 | public AuthenticationManager authenticationManager(HttpSecurity security) throws Exception { 98 | return security 99 | .getSharedObject(AuthenticationManagerBuilder.class) 100 | .userDetailsService(authorizeservice) 101 | .and() 102 | .build(); 103 | } 104 | 105 | 106 | @Bean 107 | public BCryptPasswordEncoder passwordEncoder(){ 108 | return new BCryptPasswordEncoder(); 109 | } 110 | 111 | public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException { 112 | response.setCharacterEncoding("utf-8"); 113 | if(request.getRequestURI().endsWith("/login")) 114 | response.getWriter().write(JSONObject.toJSONString(RestBean.success("登录成功"))); 115 | else if(request.getRequestURI().endsWith("/logout")) 116 | response.getWriter().write(JSONObject.toJSONString(RestBean.success("成功退出登录"))); 117 | } 118 | 119 | public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException{ 120 | response.setCharacterEncoding("utf-8"); 121 | response.getWriter().write(JSONObject.toJSONString(RestBean.failure(401,exception.getMessage()))); 122 | } 123 | } 124 | -------------------------------------------------------------------------------- /study-project-backend/src/main/java/com/example/service/impl/AuthorizeServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.example.service.impl; 2 | 3 | 4 | import com.example.entity.Account; 5 | import com.example.mapper.UserMapper; 6 | import com.example.service.AuthorizeService; 7 | import jakarta.annotation.Resource; 8 | import jakarta.validation.constraints.Email; 9 | import org.springframework.beans.factory.annotation.Value; 10 | import org.springframework.data.redis.connection.StringRedisConnection; 11 | import org.springframework.data.redis.core.StringRedisTemplate; 12 | import org.springframework.mail.MailException; 13 | import org.springframework.mail.MailSender; 14 | import org.springframework.mail.SimpleMailMessage; 15 | import org.springframework.security.core.userdetails.User; 16 | import org.springframework.security.core.userdetails.UserDetails; 17 | import org.springframework.security.core.userdetails.UsernameNotFoundException; 18 | import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; 19 | import org.springframework.stereotype.Service; 20 | 21 | import java.util.Optional; 22 | import java.util.Random; 23 | import java.util.concurrent.TimeUnit; 24 | 25 | @Service 26 | public class AuthorizeServiceImpl implements AuthorizeService { 27 | 28 | @Value("${spring.mail.username}") 29 | String from; 30 | 31 | 32 | //引入mapper 33 | @Resource 34 | UserMapper mapper; 35 | 36 | //引入redis 37 | @Resource 38 | StringRedisTemplate template; 39 | 40 | @Resource 41 | MailSender mailSender; 42 | 43 | 44 | BCryptPasswordEncoder encoder = new BCryptPasswordEncoder(); 45 | 46 | @Override 47 | public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException{ 48 | if(username == null){ 49 | throw new UsernameNotFoundException("user name can't be null"); 50 | } 51 | Account account = mapper.findAccountByNameOrEmail(username); 52 | if(account == null){ 53 | throw new UsernameNotFoundException("username or password is fault"); 54 | } 55 | return User.withUsername(account.getUsername()).password(account.getPassword()).roles("USERS").build(); 56 | } 57 | 58 | 59 | //邮箱验证实现 60 | @Override 61 | public String sendValidateEmail(String email,String sessionId,boolean hasAccount){ 62 | /* 63 | * 1.先生成应用的验证码 64 | * 2.把邮箱和对应的验证码直接放到Redis里面(过期时间3分钟,如果此时重新要求发邮件,那么只要剩余时间低于2分钟,就可以重新发一次,重复此流程) 65 | * 3.发送验证码到指定邮箱 66 | * 4.如果发送失败,把redis里面的刚插入的数据删除 67 | * 5.用户在注册时,再从Redis里面取出对应键值对,然后看验证码是否一致 68 | */ 69 | String key = "email:" + sessionId + ":" + email + ":"+hasAccount; 70 | if(Boolean.TRUE.equals(template.hasKey(key))){ 71 | Long expire = Optional.ofNullable(template.getExpire(key,TimeUnit.SECONDS)).orElse(0L); 72 | if(expire > 120) return "请求频繁,请稍后再试"; 73 | } 74 | Account account = mapper.findAccountByNameOrEmail(email); 75 | 76 | if(hasAccount && account == null) 77 | return "此邮箱没有注册"; 78 | if(!hasAccount && account != null){ 79 | return "此邮箱已被其他用户注册"; 80 | } 81 | 82 | Random random = new Random(); 83 | int code =random.nextInt(999999); 84 | //创建一个邮件对象 85 | SimpleMailMessage message = new SimpleMailMessage(); 86 | message.setFrom(from); 87 | message.setTo(email); 88 | message.setSubject("您的验证邮件"); 89 | message.setText("您好,欢迎注册物流中台系统,验证码为:" + code); 90 | try{ 91 | //发送邮件 92 | mailSender.send(message); 93 | template.opsForValue().set(key,String.valueOf(code),3,TimeUnit.MINUTES); 94 | return null; 95 | } catch (MailException e){ 96 | e.printStackTrace(); 97 | } 98 | return "邮件发送失败,请联系管理员,检查邮件地址是否有效"; 99 | } 100 | 101 | @Override 102 | public String validateAndRegister(String username,String password,String email,String code,String sessionId){ 103 | String key = "email:" + sessionId + ":" + email + ":false"; 104 | if(Boolean.TRUE.equals(template.hasKey(key))){ 105 | String s = template.opsForValue().get(key); 106 | if(s == null) return "验证码失效,请重新请求"; 107 | if(s.equals(code)){ 108 | //清除redis的code 109 | template.delete(key); 110 | Account account = mapper.findAccountByNameOrEmail(username); 111 | password = encoder.encode(password); //加密 112 | if(account != null) return "此用户名已被注册,请更换用户名"; 113 | if(mapper.createAccount(username,password,email) > 0){ 114 | return null; 115 | }else{ 116 | return "内部错误,请联系管理员"; 117 | } 118 | }else{ 119 | return "验证码错误,请检查后再提交"; 120 | } 121 | }else{ 122 | return "请先验证邮箱"; 123 | } 124 | } 125 | 126 | @Override 127 | public String validateOnly(String email,String code,String sessionId){ 128 | String key = "email:" + sessionId + ":" + email + ":true"; 129 | if(Boolean.TRUE.equals(template.hasKey(key))){ 130 | String s = template.opsForValue().get(key); 131 | if(s == null) return "验证码失效,请重新请求"; 132 | if(s.equals(code)){ 133 | template.delete(key); 134 | return null; 135 | }else{ 136 | return "验证码错误,请检查后再提交"; 137 | } 138 | }else{ 139 | return "请先验证邮箱"; 140 | } 141 | } 142 | 143 | @Override 144 | public boolean resetPassword(String password, String email){ 145 | password = encoder.encode(password); 146 | return mapper.resetPasswordByEmail(password,email) > 0; 147 | } 148 | } 149 | -------------------------------------------------------------------------------- /study-project-frontend/src/components/welcome/RegisterPage.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 70 | 71 | 163 | 164 | 165 | 166 | -------------------------------------------------------------------------------- /study-project-frontend/src/components/welcome/ForgetPage.vue: -------------------------------------------------------------------------------- 1 | 2 | 85 | 86 | 89 | 90 | 186 | -------------------------------------------------------------------------------- /study-project-frontend/src/views/IndexView.vue: -------------------------------------------------------------------------------- 1 | 136 | 137 | 202 | 203 | 237 | -------------------------------------------------------------------------------- /study-project-frontend/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "study-project-frontend", 3 | "version": "0.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "study-project-frontend", 9 | "version": "0.0.0", 10 | "dependencies": { 11 | "@element-plus/icons-vue": "^2.1.0", 12 | "axios": "^1.4.0", 13 | "element-plus": "^2.3.4", 14 | "pinia": "^2.0.35", 15 | "vue": "^3.2.47", 16 | "vue-axios": "^3.5.2", 17 | "vue-router": "^4.1.6" 18 | }, 19 | "devDependencies": { 20 | "@vitejs/plugin-vue": "^4.2.1", 21 | "unplugin-auto-import": "^0.15.3", 22 | "unplugin-vue-components": "^0.24.1", 23 | "vite": "^4.3.4" 24 | } 25 | }, 26 | "node_modules/@antfu/utils": { 27 | "version": "0.7.2", 28 | "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.2.tgz", 29 | "integrity": "sha512-vy9fM3pIxZmX07dL+VX1aZe7ynZ+YyB0jY+jE6r3hOK6GNY2t6W8rzpFC4tgpbXUYABkFQwgJq2XYXlxbXAI0g==", 30 | "dev": true 31 | }, 32 | "node_modules/@babel/parser": { 33 | "version": "7.21.8", 34 | "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.21.8.tgz", 35 | "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==", 36 | "bin": { 37 | "parser": "bin/babel-parser.js" 38 | }, 39 | "engines": { 40 | "node": ">=6.0.0" 41 | } 42 | }, 43 | "node_modules/@ctrl/tinycolor": { 44 | "version": "3.6.0", 45 | "resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.0.tgz", 46 | "integrity": "sha512-/Z3l6pXthq0JvMYdUFyX9j0MaCltlIn6mfh9jLyQwg5aPKxkyNa0PTHtU1AlFXLNk55ZuAeJRcpvq+tmLfKmaQ==", 47 | "engines": { 48 | "node": ">=10" 49 | } 50 | }, 51 | "node_modules/@element-plus/icons-vue": { 52 | "version": "2.1.0", 53 | "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.1.0.tgz", 54 | "integrity": "sha512-PSBn3elNoanENc1vnCfh+3WA9fimRC7n+fWkf3rE5jvv+aBohNHABC/KAR5KWPecxWxDTVT1ERpRbOMRcOV/vA==", 55 | "peerDependencies": { 56 | "vue": "^3.2.0" 57 | } 58 | }, 59 | "node_modules/@esbuild/android-arm": { 60 | "version": "0.17.19", 61 | "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz", 62 | "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", 63 | "cpu": [ 64 | "arm" 65 | ], 66 | "dev": true, 67 | "optional": true, 68 | "os": [ 69 | "android" 70 | ], 71 | "engines": { 72 | "node": ">=12" 73 | } 74 | }, 75 | "node_modules/@esbuild/android-arm64": { 76 | "version": "0.17.19", 77 | "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", 78 | "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", 79 | "cpu": [ 80 | "arm64" 81 | ], 82 | "dev": true, 83 | "optional": true, 84 | "os": [ 85 | "android" 86 | ], 87 | "engines": { 88 | "node": ">=12" 89 | } 90 | }, 91 | "node_modules/@esbuild/android-x64": { 92 | "version": "0.17.19", 93 | "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz", 94 | "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", 95 | "cpu": [ 96 | "x64" 97 | ], 98 | "dev": true, 99 | "optional": true, 100 | "os": [ 101 | "android" 102 | ], 103 | "engines": { 104 | "node": ">=12" 105 | } 106 | }, 107 | "node_modules/@esbuild/darwin-arm64": { 108 | "version": "0.17.19", 109 | "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", 110 | "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", 111 | "cpu": [ 112 | "arm64" 113 | ], 114 | "dev": true, 115 | "optional": true, 116 | "os": [ 117 | "darwin" 118 | ], 119 | "engines": { 120 | "node": ">=12" 121 | } 122 | }, 123 | "node_modules/@esbuild/darwin-x64": { 124 | "version": "0.17.19", 125 | "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", 126 | "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", 127 | "cpu": [ 128 | "x64" 129 | ], 130 | "dev": true, 131 | "optional": true, 132 | "os": [ 133 | "darwin" 134 | ], 135 | "engines": { 136 | "node": ">=12" 137 | } 138 | }, 139 | "node_modules/@esbuild/freebsd-arm64": { 140 | "version": "0.17.19", 141 | "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", 142 | "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", 143 | "cpu": [ 144 | "arm64" 145 | ], 146 | "dev": true, 147 | "optional": true, 148 | "os": [ 149 | "freebsd" 150 | ], 151 | "engines": { 152 | "node": ">=12" 153 | } 154 | }, 155 | "node_modules/@esbuild/freebsd-x64": { 156 | "version": "0.17.19", 157 | "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", 158 | "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", 159 | "cpu": [ 160 | "x64" 161 | ], 162 | "dev": true, 163 | "optional": true, 164 | "os": [ 165 | "freebsd" 166 | ], 167 | "engines": { 168 | "node": ">=12" 169 | } 170 | }, 171 | "node_modules/@esbuild/linux-arm": { 172 | "version": "0.17.19", 173 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", 174 | "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", 175 | "cpu": [ 176 | "arm" 177 | ], 178 | "dev": true, 179 | "optional": true, 180 | "os": [ 181 | "linux" 182 | ], 183 | "engines": { 184 | "node": ">=12" 185 | } 186 | }, 187 | "node_modules/@esbuild/linux-arm64": { 188 | "version": "0.17.19", 189 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", 190 | "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", 191 | "cpu": [ 192 | "arm64" 193 | ], 194 | "dev": true, 195 | "optional": true, 196 | "os": [ 197 | "linux" 198 | ], 199 | "engines": { 200 | "node": ">=12" 201 | } 202 | }, 203 | "node_modules/@esbuild/linux-ia32": { 204 | "version": "0.17.19", 205 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", 206 | "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", 207 | "cpu": [ 208 | "ia32" 209 | ], 210 | "dev": true, 211 | "optional": true, 212 | "os": [ 213 | "linux" 214 | ], 215 | "engines": { 216 | "node": ">=12" 217 | } 218 | }, 219 | "node_modules/@esbuild/linux-loong64": { 220 | "version": "0.17.19", 221 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", 222 | "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", 223 | "cpu": [ 224 | "loong64" 225 | ], 226 | "dev": true, 227 | "optional": true, 228 | "os": [ 229 | "linux" 230 | ], 231 | "engines": { 232 | "node": ">=12" 233 | } 234 | }, 235 | "node_modules/@esbuild/linux-mips64el": { 236 | "version": "0.17.19", 237 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", 238 | "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", 239 | "cpu": [ 240 | "mips64el" 241 | ], 242 | "dev": true, 243 | "optional": true, 244 | "os": [ 245 | "linux" 246 | ], 247 | "engines": { 248 | "node": ">=12" 249 | } 250 | }, 251 | "node_modules/@esbuild/linux-ppc64": { 252 | "version": "0.17.19", 253 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", 254 | "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", 255 | "cpu": [ 256 | "ppc64" 257 | ], 258 | "dev": true, 259 | "optional": true, 260 | "os": [ 261 | "linux" 262 | ], 263 | "engines": { 264 | "node": ">=12" 265 | } 266 | }, 267 | "node_modules/@esbuild/linux-riscv64": { 268 | "version": "0.17.19", 269 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", 270 | "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", 271 | "cpu": [ 272 | "riscv64" 273 | ], 274 | "dev": true, 275 | "optional": true, 276 | "os": [ 277 | "linux" 278 | ], 279 | "engines": { 280 | "node": ">=12" 281 | } 282 | }, 283 | "node_modules/@esbuild/linux-s390x": { 284 | "version": "0.17.19", 285 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", 286 | "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", 287 | "cpu": [ 288 | "s390x" 289 | ], 290 | "dev": true, 291 | "optional": true, 292 | "os": [ 293 | "linux" 294 | ], 295 | "engines": { 296 | "node": ">=12" 297 | } 298 | }, 299 | "node_modules/@esbuild/linux-x64": { 300 | "version": "0.17.19", 301 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", 302 | "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", 303 | "cpu": [ 304 | "x64" 305 | ], 306 | "dev": true, 307 | "optional": true, 308 | "os": [ 309 | "linux" 310 | ], 311 | "engines": { 312 | "node": ">=12" 313 | } 314 | }, 315 | "node_modules/@esbuild/netbsd-x64": { 316 | "version": "0.17.19", 317 | "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", 318 | "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", 319 | "cpu": [ 320 | "x64" 321 | ], 322 | "dev": true, 323 | "optional": true, 324 | "os": [ 325 | "netbsd" 326 | ], 327 | "engines": { 328 | "node": ">=12" 329 | } 330 | }, 331 | "node_modules/@esbuild/openbsd-x64": { 332 | "version": "0.17.19", 333 | "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", 334 | "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", 335 | "cpu": [ 336 | "x64" 337 | ], 338 | "dev": true, 339 | "optional": true, 340 | "os": [ 341 | "openbsd" 342 | ], 343 | "engines": { 344 | "node": ">=12" 345 | } 346 | }, 347 | "node_modules/@esbuild/sunos-x64": { 348 | "version": "0.17.19", 349 | "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", 350 | "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", 351 | "cpu": [ 352 | "x64" 353 | ], 354 | "dev": true, 355 | "optional": true, 356 | "os": [ 357 | "sunos" 358 | ], 359 | "engines": { 360 | "node": ">=12" 361 | } 362 | }, 363 | "node_modules/@esbuild/win32-arm64": { 364 | "version": "0.17.19", 365 | "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", 366 | "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", 367 | "cpu": [ 368 | "arm64" 369 | ], 370 | "dev": true, 371 | "optional": true, 372 | "os": [ 373 | "win32" 374 | ], 375 | "engines": { 376 | "node": ">=12" 377 | } 378 | }, 379 | "node_modules/@esbuild/win32-ia32": { 380 | "version": "0.17.19", 381 | "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", 382 | "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", 383 | "cpu": [ 384 | "ia32" 385 | ], 386 | "dev": true, 387 | "optional": true, 388 | "os": [ 389 | "win32" 390 | ], 391 | "engines": { 392 | "node": ">=12" 393 | } 394 | }, 395 | "node_modules/@esbuild/win32-x64": { 396 | "version": "0.17.19", 397 | "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", 398 | "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", 399 | "cpu": [ 400 | "x64" 401 | ], 402 | "dev": true, 403 | "optional": true, 404 | "os": [ 405 | "win32" 406 | ], 407 | "engines": { 408 | "node": ">=12" 409 | } 410 | }, 411 | "node_modules/@floating-ui/core": { 412 | "version": "1.2.6", 413 | "resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-1.2.6.tgz", 414 | "integrity": "sha512-EvYTiXet5XqweYGClEmpu3BoxmsQ4hkj3QaYA6qEnigCWffTP3vNRwBReTdrwDwo7OoJ3wM8Uoe9Uk4n+d4hfg==" 415 | }, 416 | "node_modules/@floating-ui/dom": { 417 | "version": "1.2.8", 418 | "resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.2.8.tgz", 419 | "integrity": "sha512-XLwhYV90MxiHDq6S0rzFZj00fnDM+A1R9jhSioZoMsa7G0Q0i+Q4x40ajR8FHSdYDE1bgjG45mIWe6jtv9UPmg==", 420 | "dependencies": { 421 | "@floating-ui/core": "^1.2.6" 422 | } 423 | }, 424 | "node_modules/@jridgewell/sourcemap-codec": { 425 | "version": "1.4.15", 426 | "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", 427 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" 428 | }, 429 | "node_modules/@nodelib/fs.scandir": { 430 | "version": "2.1.5", 431 | "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 432 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 433 | "dev": true, 434 | "dependencies": { 435 | "@nodelib/fs.stat": "2.0.5", 436 | "run-parallel": "^1.1.9" 437 | }, 438 | "engines": { 439 | "node": ">= 8" 440 | } 441 | }, 442 | "node_modules/@nodelib/fs.stat": { 443 | "version": "2.0.5", 444 | "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 445 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 446 | "dev": true, 447 | "engines": { 448 | "node": ">= 8" 449 | } 450 | }, 451 | "node_modules/@nodelib/fs.walk": { 452 | "version": "1.2.8", 453 | "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 454 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 455 | "dev": true, 456 | "dependencies": { 457 | "@nodelib/fs.scandir": "2.1.5", 458 | "fastq": "^1.6.0" 459 | }, 460 | "engines": { 461 | "node": ">= 8" 462 | } 463 | }, 464 | "node_modules/@popperjs/core": { 465 | "name": "@sxzz/popperjs-es", 466 | "version": "2.11.7", 467 | "resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz", 468 | "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==" 469 | }, 470 | "node_modules/@rollup/pluginutils": { 471 | "version": "5.0.2", 472 | "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", 473 | "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", 474 | "dev": true, 475 | "dependencies": { 476 | "@types/estree": "^1.0.0", 477 | "estree-walker": "^2.0.2", 478 | "picomatch": "^2.3.1" 479 | }, 480 | "engines": { 481 | "node": ">=14.0.0" 482 | }, 483 | "peerDependencies": { 484 | "rollup": "^1.20.0||^2.0.0||^3.0.0" 485 | }, 486 | "peerDependenciesMeta": { 487 | "rollup": { 488 | "optional": true 489 | } 490 | } 491 | }, 492 | "node_modules/@types/estree": { 493 | "version": "1.0.1", 494 | "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.1.tgz", 495 | "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", 496 | "dev": true 497 | }, 498 | "node_modules/@types/lodash": { 499 | "version": "4.14.194", 500 | "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.194.tgz", 501 | "integrity": "sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==" 502 | }, 503 | "node_modules/@types/lodash-es": { 504 | "version": "4.17.7", 505 | "resolved": "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.7.tgz", 506 | "integrity": "sha512-z0ptr6UI10VlU6l5MYhGwS4mC8DZyYer2mCoyysZtSF7p26zOX8UpbrV0YpNYLGS8K4PUFIyEr62IMFFjveSiQ==", 507 | "dependencies": { 508 | "@types/lodash": "*" 509 | } 510 | }, 511 | "node_modules/@types/web-bluetooth": { 512 | "version": "0.0.16", 513 | "resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz", 514 | "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==" 515 | }, 516 | "node_modules/@vitejs/plugin-vue": { 517 | "version": "4.2.3", 518 | "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.2.3.tgz", 519 | "integrity": "sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==", 520 | "dev": true, 521 | "engines": { 522 | "node": "^14.18.0 || >=16.0.0" 523 | }, 524 | "peerDependencies": { 525 | "vite": "^4.0.0", 526 | "vue": "^3.2.25" 527 | } 528 | }, 529 | "node_modules/@vue/compiler-core": { 530 | "version": "3.3.2", 531 | "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.2.tgz", 532 | "integrity": "sha512-CKZWo1dzsQYTNTft7whzjL0HsrEpMfiK7pjZ2WFE3bC1NA7caUjWioHSK+49y/LK7Bsm4poJZzAMnvZMQ7OTeg==", 533 | "dependencies": { 534 | "@babel/parser": "^7.21.3", 535 | "@vue/shared": "3.3.2", 536 | "estree-walker": "^2.0.2", 537 | "source-map-js": "^1.0.2" 538 | } 539 | }, 540 | "node_modules/@vue/compiler-dom": { 541 | "version": "3.3.2", 542 | "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.2.tgz", 543 | "integrity": "sha512-6gS3auANuKXLw0XH6QxkWqyPYPunziS2xb6VRenM3JY7gVfZcJvkCBHkb5RuNY1FCbBO3lkIi0CdXUCW1c7SXw==", 544 | "dependencies": { 545 | "@vue/compiler-core": "3.3.2", 546 | "@vue/shared": "3.3.2" 547 | } 548 | }, 549 | "node_modules/@vue/compiler-sfc": { 550 | "version": "3.3.2", 551 | "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.2.tgz", 552 | "integrity": "sha512-jG4jQy28H4BqzEKsQqqW65BZgmo3vzdLHTBjF+35RwtDdlFE+Fk1VWJYUnDMMqkFBo6Ye1ltSKVOMPgkzYj7SQ==", 553 | "dependencies": { 554 | "@babel/parser": "^7.20.15", 555 | "@vue/compiler-core": "3.3.2", 556 | "@vue/compiler-dom": "3.3.2", 557 | "@vue/compiler-ssr": "3.3.2", 558 | "@vue/reactivity-transform": "3.3.2", 559 | "@vue/shared": "3.3.2", 560 | "estree-walker": "^2.0.2", 561 | "magic-string": "^0.30.0", 562 | "postcss": "^8.1.10", 563 | "source-map-js": "^1.0.2" 564 | } 565 | }, 566 | "node_modules/@vue/compiler-ssr": { 567 | "version": "3.3.2", 568 | "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.2.tgz", 569 | "integrity": "sha512-K8OfY5FQtZaSOJHHe8xhEfIfLrefL/Y9frv4k4NsyQL3+0lRKxr9QuJhfdBDjkl7Fhz8CzKh63mULvmOfx3l2w==", 570 | "dependencies": { 571 | "@vue/compiler-dom": "3.3.2", 572 | "@vue/shared": "3.3.2" 573 | } 574 | }, 575 | "node_modules/@vue/devtools-api": { 576 | "version": "6.5.0", 577 | "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz", 578 | "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" 579 | }, 580 | "node_modules/@vue/reactivity": { 581 | "version": "3.3.2", 582 | "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.2.tgz", 583 | "integrity": "sha512-yX8C4uTgg2Tdj+512EEMnMKbLveoITl7YdQX35AYgx8vBvQGszKiiCN46g4RY6/deeo/5DLbeUUGxCq1qWMf5g==", 584 | "dependencies": { 585 | "@vue/shared": "3.3.2" 586 | } 587 | }, 588 | "node_modules/@vue/reactivity-transform": { 589 | "version": "3.3.2", 590 | "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.2.tgz", 591 | "integrity": "sha512-iu2WaQvlJHdnONrsyv4ibIEnSsuKF+aHFngGj/y1lwpHQtalpVhKg9wsKMoiKXS9zPNjG9mNKzJS9vudvjzvyg==", 592 | "dependencies": { 593 | "@babel/parser": "^7.20.15", 594 | "@vue/compiler-core": "3.3.2", 595 | "@vue/shared": "3.3.2", 596 | "estree-walker": "^2.0.2", 597 | "magic-string": "^0.30.0" 598 | } 599 | }, 600 | "node_modules/@vue/runtime-core": { 601 | "version": "3.3.2", 602 | "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.2.tgz", 603 | "integrity": "sha512-qSl95qj0BvKfcsO+hICqFEoLhJn6++HtsPxmTkkadFbuhe3uQfJ8HmQwvEr7xbxBd2rcJB6XOJg7nWAn/ymC5A==", 604 | "dependencies": { 605 | "@vue/reactivity": "3.3.2", 606 | "@vue/shared": "3.3.2" 607 | } 608 | }, 609 | "node_modules/@vue/runtime-dom": { 610 | "version": "3.3.2", 611 | "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.2.tgz", 612 | "integrity": "sha512-+drStsJT+0mtgHdarT7cXZReCcTFfm6ptxMrz0kAW5hms6UNBd8Q1pi4JKlncAhu+Ld/TevsSp7pqAZxBBoGng==", 613 | "dependencies": { 614 | "@vue/runtime-core": "3.3.2", 615 | "@vue/shared": "3.3.2", 616 | "csstype": "^3.1.1" 617 | } 618 | }, 619 | "node_modules/@vue/server-renderer": { 620 | "version": "3.3.2", 621 | "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.2.tgz", 622 | "integrity": "sha512-QCwh6OGwJg6GDLE0fbQhRTR6tnU+XDJ1iCsTYHXBiezCXAhqMygFRij7BiLF4ytvvHcg5kX9joX5R5vP85++wg==", 623 | "dependencies": { 624 | "@vue/compiler-ssr": "3.3.2", 625 | "@vue/shared": "3.3.2" 626 | }, 627 | "peerDependencies": { 628 | "vue": "3.3.2" 629 | } 630 | }, 631 | "node_modules/@vue/shared": { 632 | "version": "3.3.2", 633 | "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.2.tgz", 634 | "integrity": "sha512-0rFu3h8JbclbnvvKrs7Fe5FNGV9/5X2rPD7KmOzhLSUAiQH5//Hq437Gv0fR5Mev3u/nbtvmLl8XgwCU20/ZfQ==" 635 | }, 636 | "node_modules/@vueuse/core": { 637 | "version": "9.13.0", 638 | "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.13.0.tgz", 639 | "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==", 640 | "dependencies": { 641 | "@types/web-bluetooth": "^0.0.16", 642 | "@vueuse/metadata": "9.13.0", 643 | "@vueuse/shared": "9.13.0", 644 | "vue-demi": "*" 645 | } 646 | }, 647 | "node_modules/@vueuse/core/node_modules/vue-demi": { 648 | "version": "0.14.1", 649 | "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.1.tgz", 650 | "integrity": "sha512-rt+yuCtXvscYot9SQQj3WKZJVSriPNqVkpVBNEHPzSgBv7QIYzsS410VqVgvx8f9AAPgjg+XPKvmV3vOqqkJQQ==", 651 | "hasInstallScript": true, 652 | "bin": { 653 | "vue-demi-fix": "bin/vue-demi-fix.js", 654 | "vue-demi-switch": "bin/vue-demi-switch.js" 655 | }, 656 | "engines": { 657 | "node": ">=12" 658 | }, 659 | "peerDependencies": { 660 | "@vue/composition-api": "^1.0.0-rc.1", 661 | "vue": "^3.0.0-0 || ^2.6.0" 662 | }, 663 | "peerDependenciesMeta": { 664 | "@vue/composition-api": { 665 | "optional": true 666 | } 667 | } 668 | }, 669 | "node_modules/@vueuse/metadata": { 670 | "version": "9.13.0", 671 | "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.13.0.tgz", 672 | "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==" 673 | }, 674 | "node_modules/@vueuse/shared": { 675 | "version": "9.13.0", 676 | "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.13.0.tgz", 677 | "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==", 678 | "dependencies": { 679 | "vue-demi": "*" 680 | } 681 | }, 682 | "node_modules/@vueuse/shared/node_modules/vue-demi": { 683 | "version": "0.14.1", 684 | "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.1.tgz", 685 | "integrity": "sha512-rt+yuCtXvscYot9SQQj3WKZJVSriPNqVkpVBNEHPzSgBv7QIYzsS410VqVgvx8f9AAPgjg+XPKvmV3vOqqkJQQ==", 686 | "hasInstallScript": true, 687 | "bin": { 688 | "vue-demi-fix": "bin/vue-demi-fix.js", 689 | "vue-demi-switch": "bin/vue-demi-switch.js" 690 | }, 691 | "engines": { 692 | "node": ">=12" 693 | }, 694 | "peerDependencies": { 695 | "@vue/composition-api": "^1.0.0-rc.1", 696 | "vue": "^3.0.0-0 || ^2.6.0" 697 | }, 698 | "peerDependenciesMeta": { 699 | "@vue/composition-api": { 700 | "optional": true 701 | } 702 | } 703 | }, 704 | "node_modules/acorn": { 705 | "version": "8.8.2", 706 | "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.8.2.tgz", 707 | "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", 708 | "dev": true, 709 | "bin": { 710 | "acorn": "bin/acorn" 711 | }, 712 | "engines": { 713 | "node": ">=0.4.0" 714 | } 715 | }, 716 | "node_modules/anymatch": { 717 | "version": "3.1.3", 718 | "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", 719 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", 720 | "dev": true, 721 | "dependencies": { 722 | "normalize-path": "^3.0.0", 723 | "picomatch": "^2.0.4" 724 | }, 725 | "engines": { 726 | "node": ">= 8" 727 | } 728 | }, 729 | "node_modules/async-validator": { 730 | "version": "4.2.5", 731 | "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz", 732 | "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" 733 | }, 734 | "node_modules/asynckit": { 735 | "version": "0.4.0", 736 | "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", 737 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" 738 | }, 739 | "node_modules/axios": { 740 | "version": "1.4.0", 741 | "resolved": "https://registry.npmmirror.com/axios/-/axios-1.4.0.tgz", 742 | "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", 743 | "dependencies": { 744 | "follow-redirects": "^1.15.0", 745 | "form-data": "^4.0.0", 746 | "proxy-from-env": "^1.1.0" 747 | } 748 | }, 749 | "node_modules/balanced-match": { 750 | "version": "1.0.2", 751 | "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", 752 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 753 | "dev": true 754 | }, 755 | "node_modules/binary-extensions": { 756 | "version": "2.2.0", 757 | "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", 758 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 759 | "dev": true, 760 | "engines": { 761 | "node": ">=8" 762 | } 763 | }, 764 | "node_modules/brace-expansion": { 765 | "version": "2.0.1", 766 | "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", 767 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 768 | "dev": true, 769 | "dependencies": { 770 | "balanced-match": "^1.0.0" 771 | } 772 | }, 773 | "node_modules/braces": { 774 | "version": "3.0.2", 775 | "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", 776 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 777 | "dev": true, 778 | "dependencies": { 779 | "fill-range": "^7.0.1" 780 | }, 781 | "engines": { 782 | "node": ">=8" 783 | } 784 | }, 785 | "node_modules/chokidar": { 786 | "version": "3.5.3", 787 | "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", 788 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 789 | "dev": true, 790 | "dependencies": { 791 | "anymatch": "~3.1.2", 792 | "braces": "~3.0.2", 793 | "glob-parent": "~5.1.2", 794 | "is-binary-path": "~2.1.0", 795 | "is-glob": "~4.0.1", 796 | "normalize-path": "~3.0.0", 797 | "readdirp": "~3.6.0" 798 | }, 799 | "engines": { 800 | "node": ">= 8.10.0" 801 | }, 802 | "optionalDependencies": { 803 | "fsevents": "~2.3.2" 804 | } 805 | }, 806 | "node_modules/combined-stream": { 807 | "version": "1.0.8", 808 | "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", 809 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 810 | "dependencies": { 811 | "delayed-stream": "~1.0.0" 812 | }, 813 | "engines": { 814 | "node": ">= 0.8" 815 | } 816 | }, 817 | "node_modules/csstype": { 818 | "version": "3.1.2", 819 | "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz", 820 | "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" 821 | }, 822 | "node_modules/dayjs": { 823 | "version": "1.11.7", 824 | "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.7.tgz", 825 | "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==" 826 | }, 827 | "node_modules/debug": { 828 | "version": "4.3.4", 829 | "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", 830 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 831 | "dev": true, 832 | "dependencies": { 833 | "ms": "2.1.2" 834 | }, 835 | "engines": { 836 | "node": ">=6.0" 837 | }, 838 | "peerDependenciesMeta": { 839 | "supports-color": { 840 | "optional": true 841 | } 842 | } 843 | }, 844 | "node_modules/delayed-stream": { 845 | "version": "1.0.0", 846 | "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", 847 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", 848 | "engines": { 849 | "node": ">=0.4.0" 850 | } 851 | }, 852 | "node_modules/element-plus": { 853 | "version": "2.3.4", 854 | "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.3.4.tgz", 855 | "integrity": "sha512-SQr0J9z7N4z48WYk/l9NE2tizl8Q7j2OhqlpTc42k4pGncry3+rVX6dsmcsglFynn6vt3NzYxWJqmLFyDKQq+g==", 856 | "dependencies": { 857 | "@ctrl/tinycolor": "^3.4.1", 858 | "@element-plus/icons-vue": "^2.0.6", 859 | "@floating-ui/dom": "^1.0.1", 860 | "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7", 861 | "@types/lodash": "^4.14.182", 862 | "@types/lodash-es": "^4.17.6", 863 | "@vueuse/core": "^9.1.0", 864 | "async-validator": "^4.2.5", 865 | "dayjs": "^1.11.3", 866 | "escape-html": "^1.0.3", 867 | "lodash": "^4.17.21", 868 | "lodash-es": "^4.17.21", 869 | "lodash-unified": "^1.0.2", 870 | "memoize-one": "^6.0.0", 871 | "normalize-wheel-es": "^1.2.0" 872 | }, 873 | "peerDependencies": { 874 | "vue": "^3.2.0" 875 | } 876 | }, 877 | "node_modules/esbuild": { 878 | "version": "0.17.19", 879 | "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz", 880 | "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", 881 | "dev": true, 882 | "hasInstallScript": true, 883 | "bin": { 884 | "esbuild": "bin/esbuild" 885 | }, 886 | "engines": { 887 | "node": ">=12" 888 | }, 889 | "optionalDependencies": { 890 | "@esbuild/android-arm": "0.17.19", 891 | "@esbuild/android-arm64": "0.17.19", 892 | "@esbuild/android-x64": "0.17.19", 893 | "@esbuild/darwin-arm64": "0.17.19", 894 | "@esbuild/darwin-x64": "0.17.19", 895 | "@esbuild/freebsd-arm64": "0.17.19", 896 | "@esbuild/freebsd-x64": "0.17.19", 897 | "@esbuild/linux-arm": "0.17.19", 898 | "@esbuild/linux-arm64": "0.17.19", 899 | "@esbuild/linux-ia32": "0.17.19", 900 | "@esbuild/linux-loong64": "0.17.19", 901 | "@esbuild/linux-mips64el": "0.17.19", 902 | "@esbuild/linux-ppc64": "0.17.19", 903 | "@esbuild/linux-riscv64": "0.17.19", 904 | "@esbuild/linux-s390x": "0.17.19", 905 | "@esbuild/linux-x64": "0.17.19", 906 | "@esbuild/netbsd-x64": "0.17.19", 907 | "@esbuild/openbsd-x64": "0.17.19", 908 | "@esbuild/sunos-x64": "0.17.19", 909 | "@esbuild/win32-arm64": "0.17.19", 910 | "@esbuild/win32-ia32": "0.17.19", 911 | "@esbuild/win32-x64": "0.17.19" 912 | } 913 | }, 914 | "node_modules/escape-html": { 915 | "version": "1.0.3", 916 | "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", 917 | "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" 918 | }, 919 | "node_modules/escape-string-regexp": { 920 | "version": "5.0.0", 921 | "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", 922 | "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", 923 | "dev": true, 924 | "engines": { 925 | "node": ">=12" 926 | } 927 | }, 928 | "node_modules/estree-walker": { 929 | "version": "2.0.2", 930 | "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", 931 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" 932 | }, 933 | "node_modules/fast-glob": { 934 | "version": "3.2.12", 935 | "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz", 936 | "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", 937 | "dev": true, 938 | "dependencies": { 939 | "@nodelib/fs.stat": "^2.0.2", 940 | "@nodelib/fs.walk": "^1.2.3", 941 | "glob-parent": "^5.1.2", 942 | "merge2": "^1.3.0", 943 | "micromatch": "^4.0.4" 944 | }, 945 | "engines": { 946 | "node": ">=8.6.0" 947 | } 948 | }, 949 | "node_modules/fastq": { 950 | "version": "1.15.0", 951 | "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.15.0.tgz", 952 | "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", 953 | "dev": true, 954 | "dependencies": { 955 | "reusify": "^1.0.4" 956 | } 957 | }, 958 | "node_modules/fill-range": { 959 | "version": "7.0.1", 960 | "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", 961 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 962 | "dev": true, 963 | "dependencies": { 964 | "to-regex-range": "^5.0.1" 965 | }, 966 | "engines": { 967 | "node": ">=8" 968 | } 969 | }, 970 | "node_modules/follow-redirects": { 971 | "version": "1.15.2", 972 | "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz", 973 | "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", 974 | "engines": { 975 | "node": ">=4.0" 976 | }, 977 | "peerDependenciesMeta": { 978 | "debug": { 979 | "optional": true 980 | } 981 | } 982 | }, 983 | "node_modules/form-data": { 984 | "version": "4.0.0", 985 | "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", 986 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", 987 | "dependencies": { 988 | "asynckit": "^0.4.0", 989 | "combined-stream": "^1.0.8", 990 | "mime-types": "^2.1.12" 991 | }, 992 | "engines": { 993 | "node": ">= 6" 994 | } 995 | }, 996 | "node_modules/fsevents": { 997 | "version": "2.3.2", 998 | "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz", 999 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 1000 | "dev": true, 1001 | "hasInstallScript": true, 1002 | "optional": true, 1003 | "os": [ 1004 | "darwin" 1005 | ], 1006 | "engines": { 1007 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1008 | } 1009 | }, 1010 | "node_modules/function-bind": { 1011 | "version": "1.1.1", 1012 | "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz", 1013 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1014 | "dev": true 1015 | }, 1016 | "node_modules/glob-parent": { 1017 | "version": "5.1.2", 1018 | "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", 1019 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1020 | "dev": true, 1021 | "dependencies": { 1022 | "is-glob": "^4.0.1" 1023 | }, 1024 | "engines": { 1025 | "node": ">= 6" 1026 | } 1027 | }, 1028 | "node_modules/has": { 1029 | "version": "1.0.3", 1030 | "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz", 1031 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1032 | "dev": true, 1033 | "dependencies": { 1034 | "function-bind": "^1.1.1" 1035 | }, 1036 | "engines": { 1037 | "node": ">= 0.4.0" 1038 | } 1039 | }, 1040 | "node_modules/is-binary-path": { 1041 | "version": "2.1.0", 1042 | "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", 1043 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 1044 | "dev": true, 1045 | "dependencies": { 1046 | "binary-extensions": "^2.0.0" 1047 | }, 1048 | "engines": { 1049 | "node": ">=8" 1050 | } 1051 | }, 1052 | "node_modules/is-core-module": { 1053 | "version": "2.12.0", 1054 | "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.12.0.tgz", 1055 | "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", 1056 | "dev": true, 1057 | "dependencies": { 1058 | "has": "^1.0.3" 1059 | } 1060 | }, 1061 | "node_modules/is-extglob": { 1062 | "version": "2.1.1", 1063 | "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", 1064 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 1065 | "dev": true, 1066 | "engines": { 1067 | "node": ">=0.10.0" 1068 | } 1069 | }, 1070 | "node_modules/is-glob": { 1071 | "version": "4.0.3", 1072 | "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", 1073 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 1074 | "dev": true, 1075 | "dependencies": { 1076 | "is-extglob": "^2.1.1" 1077 | }, 1078 | "engines": { 1079 | "node": ">=0.10.0" 1080 | } 1081 | }, 1082 | "node_modules/is-number": { 1083 | "version": "7.0.0", 1084 | "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", 1085 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 1086 | "dev": true, 1087 | "engines": { 1088 | "node": ">=0.12.0" 1089 | } 1090 | }, 1091 | "node_modules/jsonc-parser": { 1092 | "version": "3.2.0", 1093 | "resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz", 1094 | "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", 1095 | "dev": true 1096 | }, 1097 | "node_modules/local-pkg": { 1098 | "version": "0.4.3", 1099 | "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.3.tgz", 1100 | "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", 1101 | "dev": true, 1102 | "engines": { 1103 | "node": ">=14" 1104 | } 1105 | }, 1106 | "node_modules/lodash": { 1107 | "version": "4.17.21", 1108 | "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", 1109 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 1110 | }, 1111 | "node_modules/lodash-es": { 1112 | "version": "4.17.21", 1113 | "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz", 1114 | "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" 1115 | }, 1116 | "node_modules/lodash-unified": { 1117 | "version": "1.0.3", 1118 | "resolved": "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz", 1119 | "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==", 1120 | "peerDependencies": { 1121 | "@types/lodash-es": "*", 1122 | "lodash": "*", 1123 | "lodash-es": "*" 1124 | } 1125 | }, 1126 | "node_modules/magic-string": { 1127 | "version": "0.30.0", 1128 | "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.0.tgz", 1129 | "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", 1130 | "dependencies": { 1131 | "@jridgewell/sourcemap-codec": "^1.4.13" 1132 | }, 1133 | "engines": { 1134 | "node": ">=12" 1135 | } 1136 | }, 1137 | "node_modules/memoize-one": { 1138 | "version": "6.0.0", 1139 | "resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz", 1140 | "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" 1141 | }, 1142 | "node_modules/merge2": { 1143 | "version": "1.4.1", 1144 | "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", 1145 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 1146 | "dev": true, 1147 | "engines": { 1148 | "node": ">= 8" 1149 | } 1150 | }, 1151 | "node_modules/micromatch": { 1152 | "version": "4.0.5", 1153 | "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", 1154 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", 1155 | "dev": true, 1156 | "dependencies": { 1157 | "braces": "^3.0.2", 1158 | "picomatch": "^2.3.1" 1159 | }, 1160 | "engines": { 1161 | "node": ">=8.6" 1162 | } 1163 | }, 1164 | "node_modules/mime-db": { 1165 | "version": "1.52.0", 1166 | "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", 1167 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", 1168 | "engines": { 1169 | "node": ">= 0.6" 1170 | } 1171 | }, 1172 | "node_modules/mime-types": { 1173 | "version": "2.1.35", 1174 | "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", 1175 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 1176 | "dependencies": { 1177 | "mime-db": "1.52.0" 1178 | }, 1179 | "engines": { 1180 | "node": ">= 0.6" 1181 | } 1182 | }, 1183 | "node_modules/minimatch": { 1184 | "version": "9.0.0", 1185 | "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.0.tgz", 1186 | "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", 1187 | "dev": true, 1188 | "dependencies": { 1189 | "brace-expansion": "^2.0.1" 1190 | }, 1191 | "engines": { 1192 | "node": ">=16 || 14 >=14.17" 1193 | } 1194 | }, 1195 | "node_modules/mlly": { 1196 | "version": "1.2.1", 1197 | "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.2.1.tgz", 1198 | "integrity": "sha512-1aMEByaWgBPEbWV2BOPEMySRrzl7rIHXmQxam4DM8jVjalTQDjpN2ZKOLUrwyhfZQO7IXHml2StcHMhooDeEEQ==", 1199 | "dev": true, 1200 | "dependencies": { 1201 | "acorn": "^8.8.2", 1202 | "pathe": "^1.1.0", 1203 | "pkg-types": "^1.0.3", 1204 | "ufo": "^1.1.2" 1205 | } 1206 | }, 1207 | "node_modules/ms": { 1208 | "version": "2.1.2", 1209 | "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", 1210 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 1211 | "dev": true 1212 | }, 1213 | "node_modules/nanoid": { 1214 | "version": "3.3.6", 1215 | "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz", 1216 | "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", 1217 | "bin": { 1218 | "nanoid": "bin/nanoid.cjs" 1219 | }, 1220 | "engines": { 1221 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 1222 | } 1223 | }, 1224 | "node_modules/normalize-path": { 1225 | "version": "3.0.0", 1226 | "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", 1227 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 1228 | "dev": true, 1229 | "engines": { 1230 | "node": ">=0.10.0" 1231 | } 1232 | }, 1233 | "node_modules/normalize-wheel-es": { 1234 | "version": "1.2.0", 1235 | "resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", 1236 | "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==" 1237 | }, 1238 | "node_modules/path-parse": { 1239 | "version": "1.0.7", 1240 | "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", 1241 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 1242 | "dev": true 1243 | }, 1244 | "node_modules/pathe": { 1245 | "version": "1.1.0", 1246 | "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.0.tgz", 1247 | "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==", 1248 | "dev": true 1249 | }, 1250 | "node_modules/picocolors": { 1251 | "version": "1.0.0", 1252 | "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", 1253 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" 1254 | }, 1255 | "node_modules/picomatch": { 1256 | "version": "2.3.1", 1257 | "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", 1258 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 1259 | "dev": true, 1260 | "engines": { 1261 | "node": ">=8.6" 1262 | } 1263 | }, 1264 | "node_modules/pinia": { 1265 | "version": "2.0.36", 1266 | "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.0.36.tgz", 1267 | "integrity": "sha512-4UKApwjlmJH+VuHKgA+zQMddcCb3ezYnyewQ9NVrsDqZ/j9dMv5+rh+1r48whKNdpFkZAWVxhBp5ewYaYX9JcQ==", 1268 | "dependencies": { 1269 | "@vue/devtools-api": "^6.5.0", 1270 | "vue-demi": "*" 1271 | }, 1272 | "peerDependencies": { 1273 | "@vue/composition-api": "^1.4.0", 1274 | "typescript": ">=4.4.4", 1275 | "vue": "^2.6.14 || ^3.2.0" 1276 | }, 1277 | "peerDependenciesMeta": { 1278 | "@vue/composition-api": { 1279 | "optional": true 1280 | }, 1281 | "typescript": { 1282 | "optional": true 1283 | } 1284 | } 1285 | }, 1286 | "node_modules/pinia/node_modules/vue-demi": { 1287 | "version": "0.14.1", 1288 | "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.1.tgz", 1289 | "integrity": "sha512-rt+yuCtXvscYot9SQQj3WKZJVSriPNqVkpVBNEHPzSgBv7QIYzsS410VqVgvx8f9AAPgjg+XPKvmV3vOqqkJQQ==", 1290 | "hasInstallScript": true, 1291 | "bin": { 1292 | "vue-demi-fix": "bin/vue-demi-fix.js", 1293 | "vue-demi-switch": "bin/vue-demi-switch.js" 1294 | }, 1295 | "engines": { 1296 | "node": ">=12" 1297 | }, 1298 | "peerDependencies": { 1299 | "@vue/composition-api": "^1.0.0-rc.1", 1300 | "vue": "^3.0.0-0 || ^2.6.0" 1301 | }, 1302 | "peerDependenciesMeta": { 1303 | "@vue/composition-api": { 1304 | "optional": true 1305 | } 1306 | } 1307 | }, 1308 | "node_modules/pkg-types": { 1309 | "version": "1.0.3", 1310 | "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.0.3.tgz", 1311 | "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", 1312 | "dev": true, 1313 | "dependencies": { 1314 | "jsonc-parser": "^3.2.0", 1315 | "mlly": "^1.2.0", 1316 | "pathe": "^1.1.0" 1317 | } 1318 | }, 1319 | "node_modules/postcss": { 1320 | "version": "8.4.23", 1321 | "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.23.tgz", 1322 | "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", 1323 | "dependencies": { 1324 | "nanoid": "^3.3.6", 1325 | "picocolors": "^1.0.0", 1326 | "source-map-js": "^1.0.2" 1327 | }, 1328 | "engines": { 1329 | "node": "^10 || ^12 || >=14" 1330 | } 1331 | }, 1332 | "node_modules/proxy-from-env": { 1333 | "version": "1.1.0", 1334 | "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", 1335 | "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" 1336 | }, 1337 | "node_modules/queue-microtask": { 1338 | "version": "1.2.3", 1339 | "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", 1340 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 1341 | "dev": true 1342 | }, 1343 | "node_modules/readdirp": { 1344 | "version": "3.6.0", 1345 | "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", 1346 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 1347 | "dev": true, 1348 | "dependencies": { 1349 | "picomatch": "^2.2.1" 1350 | }, 1351 | "engines": { 1352 | "node": ">=8.10.0" 1353 | } 1354 | }, 1355 | "node_modules/resolve": { 1356 | "version": "1.22.2", 1357 | "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.2.tgz", 1358 | "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", 1359 | "dev": true, 1360 | "dependencies": { 1361 | "is-core-module": "^2.11.0", 1362 | "path-parse": "^1.0.7", 1363 | "supports-preserve-symlinks-flag": "^1.0.0" 1364 | }, 1365 | "bin": { 1366 | "resolve": "bin/resolve" 1367 | } 1368 | }, 1369 | "node_modules/reusify": { 1370 | "version": "1.0.4", 1371 | "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", 1372 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 1373 | "dev": true, 1374 | "engines": { 1375 | "iojs": ">=1.0.0", 1376 | "node": ">=0.10.0" 1377 | } 1378 | }, 1379 | "node_modules/rollup": { 1380 | "version": "3.21.7", 1381 | "resolved": "https://registry.npmmirror.com/rollup/-/rollup-3.21.7.tgz", 1382 | "integrity": "sha512-KXPaEuR8FfUoK2uHwNjxTmJ18ApyvD6zJpYv9FOJSqLStmt6xOY84l1IjK2dSolQmoXknrhEFRaPRgOPdqCT5w==", 1383 | "dev": true, 1384 | "bin": { 1385 | "rollup": "dist/bin/rollup" 1386 | }, 1387 | "engines": { 1388 | "node": ">=14.18.0", 1389 | "npm": ">=8.0.0" 1390 | }, 1391 | "optionalDependencies": { 1392 | "fsevents": "~2.3.2" 1393 | } 1394 | }, 1395 | "node_modules/run-parallel": { 1396 | "version": "1.2.0", 1397 | "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", 1398 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 1399 | "dev": true, 1400 | "dependencies": { 1401 | "queue-microtask": "^1.2.2" 1402 | } 1403 | }, 1404 | "node_modules/scule": { 1405 | "version": "1.0.0", 1406 | "resolved": "https://registry.npmmirror.com/scule/-/scule-1.0.0.tgz", 1407 | "integrity": "sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==", 1408 | "dev": true 1409 | }, 1410 | "node_modules/source-map-js": { 1411 | "version": "1.0.2", 1412 | "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz", 1413 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 1414 | "engines": { 1415 | "node": ">=0.10.0" 1416 | } 1417 | }, 1418 | "node_modules/strip-literal": { 1419 | "version": "1.0.1", 1420 | "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-1.0.1.tgz", 1421 | "integrity": "sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==", 1422 | "dev": true, 1423 | "dependencies": { 1424 | "acorn": "^8.8.2" 1425 | } 1426 | }, 1427 | "node_modules/supports-preserve-symlinks-flag": { 1428 | "version": "1.0.0", 1429 | "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 1430 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 1431 | "dev": true, 1432 | "engines": { 1433 | "node": ">= 0.4" 1434 | } 1435 | }, 1436 | "node_modules/to-regex-range": { 1437 | "version": "5.0.1", 1438 | "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", 1439 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 1440 | "dev": true, 1441 | "dependencies": { 1442 | "is-number": "^7.0.0" 1443 | }, 1444 | "engines": { 1445 | "node": ">=8.0" 1446 | } 1447 | }, 1448 | "node_modules/ufo": { 1449 | "version": "1.1.2", 1450 | "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.1.2.tgz", 1451 | "integrity": "sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==", 1452 | "dev": true 1453 | }, 1454 | "node_modules/unimport": { 1455 | "version": "3.0.6", 1456 | "resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.0.6.tgz", 1457 | "integrity": "sha512-GYxGJ1Bri1oqx8VFDjdgooGzeK7jBk3bvhXmamTIpu3nONOcUMGwZbX7X0L5RA7OWMXpR4vzpSQP7pXUzJg1/Q==", 1458 | "dev": true, 1459 | "dependencies": { 1460 | "@rollup/pluginutils": "^5.0.2", 1461 | "escape-string-regexp": "^5.0.0", 1462 | "fast-glob": "^3.2.12", 1463 | "local-pkg": "^0.4.3", 1464 | "magic-string": "^0.30.0", 1465 | "mlly": "^1.2.0", 1466 | "pathe": "^1.1.0", 1467 | "pkg-types": "^1.0.2", 1468 | "scule": "^1.0.0", 1469 | "strip-literal": "^1.0.1", 1470 | "unplugin": "^1.3.1" 1471 | } 1472 | }, 1473 | "node_modules/unplugin": { 1474 | "version": "1.3.1", 1475 | "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.3.1.tgz", 1476 | "integrity": "sha512-h4uUTIvFBQRxUKS2Wjys6ivoeofGhxzTe2sRWlooyjHXVttcVfV/JiavNd3d4+jty0SVV0dxGw9AkY9MwiaCEw==", 1477 | "dev": true, 1478 | "dependencies": { 1479 | "acorn": "^8.8.2", 1480 | "chokidar": "^3.5.3", 1481 | "webpack-sources": "^3.2.3", 1482 | "webpack-virtual-modules": "^0.5.0" 1483 | } 1484 | }, 1485 | "node_modules/unplugin-auto-import": { 1486 | "version": "0.15.3", 1487 | "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.15.3.tgz", 1488 | "integrity": "sha512-RLT8SqbPn4bT7yBshZId0uPSofKWnwr66RyDaxWaFb/+f7OTDOWAsVNz+hOQLBWSjvbekr2xZY9ccS8TDHJbCQ==", 1489 | "dev": true, 1490 | "dependencies": { 1491 | "@antfu/utils": "^0.7.2", 1492 | "@rollup/pluginutils": "^5.0.2", 1493 | "local-pkg": "^0.4.3", 1494 | "magic-string": "^0.30.0", 1495 | "minimatch": "^9.0.0", 1496 | "unimport": "^3.0.6", 1497 | "unplugin": "^1.3.1" 1498 | }, 1499 | "engines": { 1500 | "node": ">=14" 1501 | }, 1502 | "peerDependencies": { 1503 | "@nuxt/kit": "^3.2.2", 1504 | "@vueuse/core": "*" 1505 | }, 1506 | "peerDependenciesMeta": { 1507 | "@nuxt/kit": { 1508 | "optional": true 1509 | }, 1510 | "@vueuse/core": { 1511 | "optional": true 1512 | } 1513 | } 1514 | }, 1515 | "node_modules/unplugin-vue-components": { 1516 | "version": "0.24.1", 1517 | "resolved": "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.24.1.tgz", 1518 | "integrity": "sha512-T3A8HkZoIE1Cja95xNqolwza0yD5IVlgZZ1PVAGvVCx8xthmjsv38xWRCtHtwl+rvZyL9uif42SRkDGw9aCfMA==", 1519 | "dev": true, 1520 | "dependencies": { 1521 | "@antfu/utils": "^0.7.2", 1522 | "@rollup/pluginutils": "^5.0.2", 1523 | "chokidar": "^3.5.3", 1524 | "debug": "^4.3.4", 1525 | "fast-glob": "^3.2.12", 1526 | "local-pkg": "^0.4.3", 1527 | "magic-string": "^0.30.0", 1528 | "minimatch": "^7.4.2", 1529 | "resolve": "^1.22.1", 1530 | "unplugin": "^1.1.0" 1531 | }, 1532 | "engines": { 1533 | "node": ">=14" 1534 | }, 1535 | "peerDependencies": { 1536 | "@babel/parser": "^7.15.8", 1537 | "@nuxt/kit": "^3.2.2", 1538 | "vue": "2 || 3" 1539 | }, 1540 | "peerDependenciesMeta": { 1541 | "@babel/parser": { 1542 | "optional": true 1543 | }, 1544 | "@nuxt/kit": { 1545 | "optional": true 1546 | } 1547 | } 1548 | }, 1549 | "node_modules/unplugin-vue-components/node_modules/minimatch": { 1550 | "version": "7.4.6", 1551 | "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-7.4.6.tgz", 1552 | "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", 1553 | "dev": true, 1554 | "dependencies": { 1555 | "brace-expansion": "^2.0.1" 1556 | }, 1557 | "engines": { 1558 | "node": ">=10" 1559 | } 1560 | }, 1561 | "node_modules/vite": { 1562 | "version": "4.3.5", 1563 | "resolved": "https://registry.npmmirror.com/vite/-/vite-4.3.5.tgz", 1564 | "integrity": "sha512-0gEnL9wiRFxgz40o/i/eTBwm+NEbpUeTWhzKrZDSdKm6nplj+z4lKz8ANDgildxHm47Vg8EUia0aicKbawUVVA==", 1565 | "dev": true, 1566 | "dependencies": { 1567 | "esbuild": "^0.17.5", 1568 | "postcss": "^8.4.23", 1569 | "rollup": "^3.21.0" 1570 | }, 1571 | "bin": { 1572 | "vite": "bin/vite.js" 1573 | }, 1574 | "engines": { 1575 | "node": "^14.18.0 || >=16.0.0" 1576 | }, 1577 | "optionalDependencies": { 1578 | "fsevents": "~2.3.2" 1579 | }, 1580 | "peerDependencies": { 1581 | "@types/node": ">= 14", 1582 | "less": "*", 1583 | "sass": "*", 1584 | "stylus": "*", 1585 | "sugarss": "*", 1586 | "terser": "^5.4.0" 1587 | }, 1588 | "peerDependenciesMeta": { 1589 | "@types/node": { 1590 | "optional": true 1591 | }, 1592 | "less": { 1593 | "optional": true 1594 | }, 1595 | "sass": { 1596 | "optional": true 1597 | }, 1598 | "stylus": { 1599 | "optional": true 1600 | }, 1601 | "sugarss": { 1602 | "optional": true 1603 | }, 1604 | "terser": { 1605 | "optional": true 1606 | } 1607 | } 1608 | }, 1609 | "node_modules/vue": { 1610 | "version": "3.3.2", 1611 | "resolved": "https://registry.npmmirror.com/vue/-/vue-3.3.2.tgz", 1612 | "integrity": "sha512-98hJcAhyDwZoOo2flAQBSPVYG/o0HA9ivIy2ktHshjE+6/q8IMQ+kvDKQzOZTFPxvnNMcGM+zS2A00xeZMA7tA==", 1613 | "dependencies": { 1614 | "@vue/compiler-dom": "3.3.2", 1615 | "@vue/compiler-sfc": "3.3.2", 1616 | "@vue/runtime-dom": "3.3.2", 1617 | "@vue/server-renderer": "3.3.2", 1618 | "@vue/shared": "3.3.2" 1619 | } 1620 | }, 1621 | "node_modules/vue-axios": { 1622 | "version": "3.5.2", 1623 | "resolved": "https://registry.npmmirror.com/vue-axios/-/vue-axios-3.5.2.tgz", 1624 | "integrity": "sha512-GP+dct7UlAWkl1qoP3ppw0z6jcSua5/IrMpjB5O8bh089iIiJ+hdxPYH2NPEpajlYgkW5EVMP95ttXWdas1O0g==", 1625 | "peerDependencies": { 1626 | "axios": "*", 1627 | "vue": "^3.0.0 || ^2.0.0" 1628 | } 1629 | }, 1630 | "node_modules/vue-router": { 1631 | "version": "4.2.0", 1632 | "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.2.0.tgz", 1633 | "integrity": "sha512-c+usESa6ZoWsm4PPdzRSyenp5A4dsUtnDJnrI03fY1IpIihA9TK3x5ffgkFDpjhLJZewsXoKURapNLFdZjuqTg==", 1634 | "dependencies": { 1635 | "@vue/devtools-api": "^6.5.0" 1636 | }, 1637 | "peerDependencies": { 1638 | "vue": "^3.2.0" 1639 | } 1640 | }, 1641 | "node_modules/webpack-sources": { 1642 | "version": "3.2.3", 1643 | "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz", 1644 | "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", 1645 | "dev": true, 1646 | "engines": { 1647 | "node": ">=10.13.0" 1648 | } 1649 | }, 1650 | "node_modules/webpack-virtual-modules": { 1651 | "version": "0.5.0", 1652 | "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz", 1653 | "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==", 1654 | "dev": true 1655 | } 1656 | }, 1657 | "dependencies": { 1658 | "@antfu/utils": { 1659 | "version": "0.7.2", 1660 | "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.2.tgz", 1661 | "integrity": "sha512-vy9fM3pIxZmX07dL+VX1aZe7ynZ+YyB0jY+jE6r3hOK6GNY2t6W8rzpFC4tgpbXUYABkFQwgJq2XYXlxbXAI0g==", 1662 | "dev": true 1663 | }, 1664 | "@babel/parser": { 1665 | "version": "7.21.8", 1666 | "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.21.8.tgz", 1667 | "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==" 1668 | }, 1669 | "@ctrl/tinycolor": { 1670 | "version": "3.6.0", 1671 | "resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.0.tgz", 1672 | "integrity": "sha512-/Z3l6pXthq0JvMYdUFyX9j0MaCltlIn6mfh9jLyQwg5aPKxkyNa0PTHtU1AlFXLNk55ZuAeJRcpvq+tmLfKmaQ==" 1673 | }, 1674 | "@element-plus/icons-vue": { 1675 | "version": "2.1.0", 1676 | "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.1.0.tgz", 1677 | "integrity": "sha512-PSBn3elNoanENc1vnCfh+3WA9fimRC7n+fWkf3rE5jvv+aBohNHABC/KAR5KWPecxWxDTVT1ERpRbOMRcOV/vA==", 1678 | "requires": {} 1679 | }, 1680 | "@esbuild/android-arm": { 1681 | "version": "0.17.19", 1682 | "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz", 1683 | "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", 1684 | "dev": true, 1685 | "optional": true 1686 | }, 1687 | "@esbuild/android-arm64": { 1688 | "version": "0.17.19", 1689 | "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", 1690 | "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", 1691 | "dev": true, 1692 | "optional": true 1693 | }, 1694 | "@esbuild/android-x64": { 1695 | "version": "0.17.19", 1696 | "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz", 1697 | "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", 1698 | "dev": true, 1699 | "optional": true 1700 | }, 1701 | "@esbuild/darwin-arm64": { 1702 | "version": "0.17.19", 1703 | "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", 1704 | "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", 1705 | "dev": true, 1706 | "optional": true 1707 | }, 1708 | "@esbuild/darwin-x64": { 1709 | "version": "0.17.19", 1710 | "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", 1711 | "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", 1712 | "dev": true, 1713 | "optional": true 1714 | }, 1715 | "@esbuild/freebsd-arm64": { 1716 | "version": "0.17.19", 1717 | "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", 1718 | "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", 1719 | "dev": true, 1720 | "optional": true 1721 | }, 1722 | "@esbuild/freebsd-x64": { 1723 | "version": "0.17.19", 1724 | "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", 1725 | "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", 1726 | "dev": true, 1727 | "optional": true 1728 | }, 1729 | "@esbuild/linux-arm": { 1730 | "version": "0.17.19", 1731 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", 1732 | "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", 1733 | "dev": true, 1734 | "optional": true 1735 | }, 1736 | "@esbuild/linux-arm64": { 1737 | "version": "0.17.19", 1738 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", 1739 | "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", 1740 | "dev": true, 1741 | "optional": true 1742 | }, 1743 | "@esbuild/linux-ia32": { 1744 | "version": "0.17.19", 1745 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", 1746 | "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", 1747 | "dev": true, 1748 | "optional": true 1749 | }, 1750 | "@esbuild/linux-loong64": { 1751 | "version": "0.17.19", 1752 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", 1753 | "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", 1754 | "dev": true, 1755 | "optional": true 1756 | }, 1757 | "@esbuild/linux-mips64el": { 1758 | "version": "0.17.19", 1759 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", 1760 | "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", 1761 | "dev": true, 1762 | "optional": true 1763 | }, 1764 | "@esbuild/linux-ppc64": { 1765 | "version": "0.17.19", 1766 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", 1767 | "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", 1768 | "dev": true, 1769 | "optional": true 1770 | }, 1771 | "@esbuild/linux-riscv64": { 1772 | "version": "0.17.19", 1773 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", 1774 | "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", 1775 | "dev": true, 1776 | "optional": true 1777 | }, 1778 | "@esbuild/linux-s390x": { 1779 | "version": "0.17.19", 1780 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", 1781 | "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", 1782 | "dev": true, 1783 | "optional": true 1784 | }, 1785 | "@esbuild/linux-x64": { 1786 | "version": "0.17.19", 1787 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", 1788 | "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", 1789 | "dev": true, 1790 | "optional": true 1791 | }, 1792 | "@esbuild/netbsd-x64": { 1793 | "version": "0.17.19", 1794 | "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", 1795 | "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", 1796 | "dev": true, 1797 | "optional": true 1798 | }, 1799 | "@esbuild/openbsd-x64": { 1800 | "version": "0.17.19", 1801 | "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", 1802 | "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", 1803 | "dev": true, 1804 | "optional": true 1805 | }, 1806 | "@esbuild/sunos-x64": { 1807 | "version": "0.17.19", 1808 | "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", 1809 | "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", 1810 | "dev": true, 1811 | "optional": true 1812 | }, 1813 | "@esbuild/win32-arm64": { 1814 | "version": "0.17.19", 1815 | "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", 1816 | "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", 1817 | "dev": true, 1818 | "optional": true 1819 | }, 1820 | "@esbuild/win32-ia32": { 1821 | "version": "0.17.19", 1822 | "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", 1823 | "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", 1824 | "dev": true, 1825 | "optional": true 1826 | }, 1827 | "@esbuild/win32-x64": { 1828 | "version": "0.17.19", 1829 | "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", 1830 | "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", 1831 | "dev": true, 1832 | "optional": true 1833 | }, 1834 | "@floating-ui/core": { 1835 | "version": "1.2.6", 1836 | "resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-1.2.6.tgz", 1837 | "integrity": "sha512-EvYTiXet5XqweYGClEmpu3BoxmsQ4hkj3QaYA6qEnigCWffTP3vNRwBReTdrwDwo7OoJ3wM8Uoe9Uk4n+d4hfg==" 1838 | }, 1839 | "@floating-ui/dom": { 1840 | "version": "1.2.8", 1841 | "resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.2.8.tgz", 1842 | "integrity": "sha512-XLwhYV90MxiHDq6S0rzFZj00fnDM+A1R9jhSioZoMsa7G0Q0i+Q4x40ajR8FHSdYDE1bgjG45mIWe6jtv9UPmg==", 1843 | "requires": { 1844 | "@floating-ui/core": "^1.2.6" 1845 | } 1846 | }, 1847 | "@jridgewell/sourcemap-codec": { 1848 | "version": "1.4.15", 1849 | "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", 1850 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" 1851 | }, 1852 | "@nodelib/fs.scandir": { 1853 | "version": "2.1.5", 1854 | "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 1855 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 1856 | "dev": true, 1857 | "requires": { 1858 | "@nodelib/fs.stat": "2.0.5", 1859 | "run-parallel": "^1.1.9" 1860 | } 1861 | }, 1862 | "@nodelib/fs.stat": { 1863 | "version": "2.0.5", 1864 | "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 1865 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 1866 | "dev": true 1867 | }, 1868 | "@nodelib/fs.walk": { 1869 | "version": "1.2.8", 1870 | "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 1871 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 1872 | "dev": true, 1873 | "requires": { 1874 | "@nodelib/fs.scandir": "2.1.5", 1875 | "fastq": "^1.6.0" 1876 | } 1877 | }, 1878 | "@popperjs/core": { 1879 | "version": "npm:@sxzz/popperjs-es@2.11.7", 1880 | "resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz", 1881 | "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==" 1882 | }, 1883 | "@rollup/pluginutils": { 1884 | "version": "5.0.2", 1885 | "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", 1886 | "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", 1887 | "dev": true, 1888 | "requires": { 1889 | "@types/estree": "^1.0.0", 1890 | "estree-walker": "^2.0.2", 1891 | "picomatch": "^2.3.1" 1892 | } 1893 | }, 1894 | "@types/estree": { 1895 | "version": "1.0.1", 1896 | "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.1.tgz", 1897 | "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", 1898 | "dev": true 1899 | }, 1900 | "@types/lodash": { 1901 | "version": "4.14.194", 1902 | "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.194.tgz", 1903 | "integrity": "sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==" 1904 | }, 1905 | "@types/lodash-es": { 1906 | "version": "4.17.7", 1907 | "resolved": "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.7.tgz", 1908 | "integrity": "sha512-z0ptr6UI10VlU6l5MYhGwS4mC8DZyYer2mCoyysZtSF7p26zOX8UpbrV0YpNYLGS8K4PUFIyEr62IMFFjveSiQ==", 1909 | "requires": { 1910 | "@types/lodash": "*" 1911 | } 1912 | }, 1913 | "@types/web-bluetooth": { 1914 | "version": "0.0.16", 1915 | "resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz", 1916 | "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==" 1917 | }, 1918 | "@vitejs/plugin-vue": { 1919 | "version": "4.2.3", 1920 | "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.2.3.tgz", 1921 | "integrity": "sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==", 1922 | "dev": true, 1923 | "requires": {} 1924 | }, 1925 | "@vue/compiler-core": { 1926 | "version": "3.3.2", 1927 | "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.2.tgz", 1928 | "integrity": "sha512-CKZWo1dzsQYTNTft7whzjL0HsrEpMfiK7pjZ2WFE3bC1NA7caUjWioHSK+49y/LK7Bsm4poJZzAMnvZMQ7OTeg==", 1929 | "requires": { 1930 | "@babel/parser": "^7.21.3", 1931 | "@vue/shared": "3.3.2", 1932 | "estree-walker": "^2.0.2", 1933 | "source-map-js": "^1.0.2" 1934 | } 1935 | }, 1936 | "@vue/compiler-dom": { 1937 | "version": "3.3.2", 1938 | "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.2.tgz", 1939 | "integrity": "sha512-6gS3auANuKXLw0XH6QxkWqyPYPunziS2xb6VRenM3JY7gVfZcJvkCBHkb5RuNY1FCbBO3lkIi0CdXUCW1c7SXw==", 1940 | "requires": { 1941 | "@vue/compiler-core": "3.3.2", 1942 | "@vue/shared": "3.3.2" 1943 | } 1944 | }, 1945 | "@vue/compiler-sfc": { 1946 | "version": "3.3.2", 1947 | "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.2.tgz", 1948 | "integrity": "sha512-jG4jQy28H4BqzEKsQqqW65BZgmo3vzdLHTBjF+35RwtDdlFE+Fk1VWJYUnDMMqkFBo6Ye1ltSKVOMPgkzYj7SQ==", 1949 | "requires": { 1950 | "@babel/parser": "^7.20.15", 1951 | "@vue/compiler-core": "3.3.2", 1952 | "@vue/compiler-dom": "3.3.2", 1953 | "@vue/compiler-ssr": "3.3.2", 1954 | "@vue/reactivity-transform": "3.3.2", 1955 | "@vue/shared": "3.3.2", 1956 | "estree-walker": "^2.0.2", 1957 | "magic-string": "^0.30.0", 1958 | "postcss": "^8.1.10", 1959 | "source-map-js": "^1.0.2" 1960 | } 1961 | }, 1962 | "@vue/compiler-ssr": { 1963 | "version": "3.3.2", 1964 | "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.2.tgz", 1965 | "integrity": "sha512-K8OfY5FQtZaSOJHHe8xhEfIfLrefL/Y9frv4k4NsyQL3+0lRKxr9QuJhfdBDjkl7Fhz8CzKh63mULvmOfx3l2w==", 1966 | "requires": { 1967 | "@vue/compiler-dom": "3.3.2", 1968 | "@vue/shared": "3.3.2" 1969 | } 1970 | }, 1971 | "@vue/devtools-api": { 1972 | "version": "6.5.0", 1973 | "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz", 1974 | "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" 1975 | }, 1976 | "@vue/reactivity": { 1977 | "version": "3.3.2", 1978 | "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.2.tgz", 1979 | "integrity": "sha512-yX8C4uTgg2Tdj+512EEMnMKbLveoITl7YdQX35AYgx8vBvQGszKiiCN46g4RY6/deeo/5DLbeUUGxCq1qWMf5g==", 1980 | "requires": { 1981 | "@vue/shared": "3.3.2" 1982 | } 1983 | }, 1984 | "@vue/reactivity-transform": { 1985 | "version": "3.3.2", 1986 | "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.2.tgz", 1987 | "integrity": "sha512-iu2WaQvlJHdnONrsyv4ibIEnSsuKF+aHFngGj/y1lwpHQtalpVhKg9wsKMoiKXS9zPNjG9mNKzJS9vudvjzvyg==", 1988 | "requires": { 1989 | "@babel/parser": "^7.20.15", 1990 | "@vue/compiler-core": "3.3.2", 1991 | "@vue/shared": "3.3.2", 1992 | "estree-walker": "^2.0.2", 1993 | "magic-string": "^0.30.0" 1994 | } 1995 | }, 1996 | "@vue/runtime-core": { 1997 | "version": "3.3.2", 1998 | "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.2.tgz", 1999 | "integrity": "sha512-qSl95qj0BvKfcsO+hICqFEoLhJn6++HtsPxmTkkadFbuhe3uQfJ8HmQwvEr7xbxBd2rcJB6XOJg7nWAn/ymC5A==", 2000 | "requires": { 2001 | "@vue/reactivity": "3.3.2", 2002 | "@vue/shared": "3.3.2" 2003 | } 2004 | }, 2005 | "@vue/runtime-dom": { 2006 | "version": "3.3.2", 2007 | "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.2.tgz", 2008 | "integrity": "sha512-+drStsJT+0mtgHdarT7cXZReCcTFfm6ptxMrz0kAW5hms6UNBd8Q1pi4JKlncAhu+Ld/TevsSp7pqAZxBBoGng==", 2009 | "requires": { 2010 | "@vue/runtime-core": "3.3.2", 2011 | "@vue/shared": "3.3.2", 2012 | "csstype": "^3.1.1" 2013 | } 2014 | }, 2015 | "@vue/server-renderer": { 2016 | "version": "3.3.2", 2017 | "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.2.tgz", 2018 | "integrity": "sha512-QCwh6OGwJg6GDLE0fbQhRTR6tnU+XDJ1iCsTYHXBiezCXAhqMygFRij7BiLF4ytvvHcg5kX9joX5R5vP85++wg==", 2019 | "requires": { 2020 | "@vue/compiler-ssr": "3.3.2", 2021 | "@vue/shared": "3.3.2" 2022 | } 2023 | }, 2024 | "@vue/shared": { 2025 | "version": "3.3.2", 2026 | "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.2.tgz", 2027 | "integrity": "sha512-0rFu3h8JbclbnvvKrs7Fe5FNGV9/5X2rPD7KmOzhLSUAiQH5//Hq437Gv0fR5Mev3u/nbtvmLl8XgwCU20/ZfQ==" 2028 | }, 2029 | "@vueuse/core": { 2030 | "version": "9.13.0", 2031 | "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.13.0.tgz", 2032 | "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==", 2033 | "requires": { 2034 | "@types/web-bluetooth": "^0.0.16", 2035 | "@vueuse/metadata": "9.13.0", 2036 | "@vueuse/shared": "9.13.0", 2037 | "vue-demi": "*" 2038 | }, 2039 | "dependencies": { 2040 | "vue-demi": { 2041 | "version": "0.14.1", 2042 | "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.1.tgz", 2043 | "integrity": "sha512-rt+yuCtXvscYot9SQQj3WKZJVSriPNqVkpVBNEHPzSgBv7QIYzsS410VqVgvx8f9AAPgjg+XPKvmV3vOqqkJQQ==", 2044 | "requires": {} 2045 | } 2046 | } 2047 | }, 2048 | "@vueuse/metadata": { 2049 | "version": "9.13.0", 2050 | "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.13.0.tgz", 2051 | "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==" 2052 | }, 2053 | "@vueuse/shared": { 2054 | "version": "9.13.0", 2055 | "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.13.0.tgz", 2056 | "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==", 2057 | "requires": { 2058 | "vue-demi": "*" 2059 | }, 2060 | "dependencies": { 2061 | "vue-demi": { 2062 | "version": "0.14.1", 2063 | "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.1.tgz", 2064 | "integrity": "sha512-rt+yuCtXvscYot9SQQj3WKZJVSriPNqVkpVBNEHPzSgBv7QIYzsS410VqVgvx8f9AAPgjg+XPKvmV3vOqqkJQQ==", 2065 | "requires": {} 2066 | } 2067 | } 2068 | }, 2069 | "acorn": { 2070 | "version": "8.8.2", 2071 | "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.8.2.tgz", 2072 | "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", 2073 | "dev": true 2074 | }, 2075 | "anymatch": { 2076 | "version": "3.1.3", 2077 | "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", 2078 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", 2079 | "dev": true, 2080 | "requires": { 2081 | "normalize-path": "^3.0.0", 2082 | "picomatch": "^2.0.4" 2083 | } 2084 | }, 2085 | "async-validator": { 2086 | "version": "4.2.5", 2087 | "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz", 2088 | "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" 2089 | }, 2090 | "asynckit": { 2091 | "version": "0.4.0", 2092 | "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", 2093 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" 2094 | }, 2095 | "axios": { 2096 | "version": "1.4.0", 2097 | "resolved": "https://registry.npmmirror.com/axios/-/axios-1.4.0.tgz", 2098 | "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", 2099 | "requires": { 2100 | "follow-redirects": "^1.15.0", 2101 | "form-data": "^4.0.0", 2102 | "proxy-from-env": "^1.1.0" 2103 | } 2104 | }, 2105 | "balanced-match": { 2106 | "version": "1.0.2", 2107 | "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", 2108 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 2109 | "dev": true 2110 | }, 2111 | "binary-extensions": { 2112 | "version": "2.2.0", 2113 | "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", 2114 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 2115 | "dev": true 2116 | }, 2117 | "brace-expansion": { 2118 | "version": "2.0.1", 2119 | "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", 2120 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 2121 | "dev": true, 2122 | "requires": { 2123 | "balanced-match": "^1.0.0" 2124 | } 2125 | }, 2126 | "braces": { 2127 | "version": "3.0.2", 2128 | "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", 2129 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 2130 | "dev": true, 2131 | "requires": { 2132 | "fill-range": "^7.0.1" 2133 | } 2134 | }, 2135 | "chokidar": { 2136 | "version": "3.5.3", 2137 | "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", 2138 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 2139 | "dev": true, 2140 | "requires": { 2141 | "anymatch": "~3.1.2", 2142 | "braces": "~3.0.2", 2143 | "fsevents": "~2.3.2", 2144 | "glob-parent": "~5.1.2", 2145 | "is-binary-path": "~2.1.0", 2146 | "is-glob": "~4.0.1", 2147 | "normalize-path": "~3.0.0", 2148 | "readdirp": "~3.6.0" 2149 | } 2150 | }, 2151 | "combined-stream": { 2152 | "version": "1.0.8", 2153 | "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", 2154 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 2155 | "requires": { 2156 | "delayed-stream": "~1.0.0" 2157 | } 2158 | }, 2159 | "csstype": { 2160 | "version": "3.1.2", 2161 | "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz", 2162 | "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" 2163 | }, 2164 | "dayjs": { 2165 | "version": "1.11.7", 2166 | "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.7.tgz", 2167 | "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==" 2168 | }, 2169 | "debug": { 2170 | "version": "4.3.4", 2171 | "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", 2172 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 2173 | "dev": true, 2174 | "requires": { 2175 | "ms": "2.1.2" 2176 | } 2177 | }, 2178 | "delayed-stream": { 2179 | "version": "1.0.0", 2180 | "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", 2181 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" 2182 | }, 2183 | "element-plus": { 2184 | "version": "2.3.4", 2185 | "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.3.4.tgz", 2186 | "integrity": "sha512-SQr0J9z7N4z48WYk/l9NE2tizl8Q7j2OhqlpTc42k4pGncry3+rVX6dsmcsglFynn6vt3NzYxWJqmLFyDKQq+g==", 2187 | "requires": { 2188 | "@ctrl/tinycolor": "^3.4.1", 2189 | "@element-plus/icons-vue": "^2.0.6", 2190 | "@floating-ui/dom": "^1.0.1", 2191 | "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7", 2192 | "@types/lodash": "^4.14.182", 2193 | "@types/lodash-es": "^4.17.6", 2194 | "@vueuse/core": "^9.1.0", 2195 | "async-validator": "^4.2.5", 2196 | "dayjs": "^1.11.3", 2197 | "escape-html": "^1.0.3", 2198 | "lodash": "^4.17.21", 2199 | "lodash-es": "^4.17.21", 2200 | "lodash-unified": "^1.0.2", 2201 | "memoize-one": "^6.0.0", 2202 | "normalize-wheel-es": "^1.2.0" 2203 | } 2204 | }, 2205 | "esbuild": { 2206 | "version": "0.17.19", 2207 | "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz", 2208 | "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", 2209 | "dev": true, 2210 | "requires": { 2211 | "@esbuild/android-arm": "0.17.19", 2212 | "@esbuild/android-arm64": "0.17.19", 2213 | "@esbuild/android-x64": "0.17.19", 2214 | "@esbuild/darwin-arm64": "0.17.19", 2215 | "@esbuild/darwin-x64": "0.17.19", 2216 | "@esbuild/freebsd-arm64": "0.17.19", 2217 | "@esbuild/freebsd-x64": "0.17.19", 2218 | "@esbuild/linux-arm": "0.17.19", 2219 | "@esbuild/linux-arm64": "0.17.19", 2220 | "@esbuild/linux-ia32": "0.17.19", 2221 | "@esbuild/linux-loong64": "0.17.19", 2222 | "@esbuild/linux-mips64el": "0.17.19", 2223 | "@esbuild/linux-ppc64": "0.17.19", 2224 | "@esbuild/linux-riscv64": "0.17.19", 2225 | "@esbuild/linux-s390x": "0.17.19", 2226 | "@esbuild/linux-x64": "0.17.19", 2227 | "@esbuild/netbsd-x64": "0.17.19", 2228 | "@esbuild/openbsd-x64": "0.17.19", 2229 | "@esbuild/sunos-x64": "0.17.19", 2230 | "@esbuild/win32-arm64": "0.17.19", 2231 | "@esbuild/win32-ia32": "0.17.19", 2232 | "@esbuild/win32-x64": "0.17.19" 2233 | } 2234 | }, 2235 | "escape-html": { 2236 | "version": "1.0.3", 2237 | "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", 2238 | "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" 2239 | }, 2240 | "escape-string-regexp": { 2241 | "version": "5.0.0", 2242 | "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", 2243 | "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", 2244 | "dev": true 2245 | }, 2246 | "estree-walker": { 2247 | "version": "2.0.2", 2248 | "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", 2249 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" 2250 | }, 2251 | "fast-glob": { 2252 | "version": "3.2.12", 2253 | "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz", 2254 | "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", 2255 | "dev": true, 2256 | "requires": { 2257 | "@nodelib/fs.stat": "^2.0.2", 2258 | "@nodelib/fs.walk": "^1.2.3", 2259 | "glob-parent": "^5.1.2", 2260 | "merge2": "^1.3.0", 2261 | "micromatch": "^4.0.4" 2262 | } 2263 | }, 2264 | "fastq": { 2265 | "version": "1.15.0", 2266 | "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.15.0.tgz", 2267 | "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", 2268 | "dev": true, 2269 | "requires": { 2270 | "reusify": "^1.0.4" 2271 | } 2272 | }, 2273 | "fill-range": { 2274 | "version": "7.0.1", 2275 | "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", 2276 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 2277 | "dev": true, 2278 | "requires": { 2279 | "to-regex-range": "^5.0.1" 2280 | } 2281 | }, 2282 | "follow-redirects": { 2283 | "version": "1.15.2", 2284 | "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz", 2285 | "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" 2286 | }, 2287 | "form-data": { 2288 | "version": "4.0.0", 2289 | "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", 2290 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", 2291 | "requires": { 2292 | "asynckit": "^0.4.0", 2293 | "combined-stream": "^1.0.8", 2294 | "mime-types": "^2.1.12" 2295 | } 2296 | }, 2297 | "fsevents": { 2298 | "version": "2.3.2", 2299 | "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz", 2300 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 2301 | "dev": true, 2302 | "optional": true 2303 | }, 2304 | "function-bind": { 2305 | "version": "1.1.1", 2306 | "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz", 2307 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 2308 | "dev": true 2309 | }, 2310 | "glob-parent": { 2311 | "version": "5.1.2", 2312 | "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", 2313 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 2314 | "dev": true, 2315 | "requires": { 2316 | "is-glob": "^4.0.1" 2317 | } 2318 | }, 2319 | "has": { 2320 | "version": "1.0.3", 2321 | "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz", 2322 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 2323 | "dev": true, 2324 | "requires": { 2325 | "function-bind": "^1.1.1" 2326 | } 2327 | }, 2328 | "is-binary-path": { 2329 | "version": "2.1.0", 2330 | "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", 2331 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 2332 | "dev": true, 2333 | "requires": { 2334 | "binary-extensions": "^2.0.0" 2335 | } 2336 | }, 2337 | "is-core-module": { 2338 | "version": "2.12.0", 2339 | "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.12.0.tgz", 2340 | "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", 2341 | "dev": true, 2342 | "requires": { 2343 | "has": "^1.0.3" 2344 | } 2345 | }, 2346 | "is-extglob": { 2347 | "version": "2.1.1", 2348 | "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", 2349 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 2350 | "dev": true 2351 | }, 2352 | "is-glob": { 2353 | "version": "4.0.3", 2354 | "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", 2355 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 2356 | "dev": true, 2357 | "requires": { 2358 | "is-extglob": "^2.1.1" 2359 | } 2360 | }, 2361 | "is-number": { 2362 | "version": "7.0.0", 2363 | "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", 2364 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 2365 | "dev": true 2366 | }, 2367 | "jsonc-parser": { 2368 | "version": "3.2.0", 2369 | "resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz", 2370 | "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", 2371 | "dev": true 2372 | }, 2373 | "local-pkg": { 2374 | "version": "0.4.3", 2375 | "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.3.tgz", 2376 | "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", 2377 | "dev": true 2378 | }, 2379 | "lodash": { 2380 | "version": "4.17.21", 2381 | "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", 2382 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 2383 | }, 2384 | "lodash-es": { 2385 | "version": "4.17.21", 2386 | "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz", 2387 | "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" 2388 | }, 2389 | "lodash-unified": { 2390 | "version": "1.0.3", 2391 | "resolved": "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz", 2392 | "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==", 2393 | "requires": {} 2394 | }, 2395 | "magic-string": { 2396 | "version": "0.30.0", 2397 | "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.0.tgz", 2398 | "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", 2399 | "requires": { 2400 | "@jridgewell/sourcemap-codec": "^1.4.13" 2401 | } 2402 | }, 2403 | "memoize-one": { 2404 | "version": "6.0.0", 2405 | "resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz", 2406 | "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" 2407 | }, 2408 | "merge2": { 2409 | "version": "1.4.1", 2410 | "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", 2411 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 2412 | "dev": true 2413 | }, 2414 | "micromatch": { 2415 | "version": "4.0.5", 2416 | "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", 2417 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", 2418 | "dev": true, 2419 | "requires": { 2420 | "braces": "^3.0.2", 2421 | "picomatch": "^2.3.1" 2422 | } 2423 | }, 2424 | "mime-db": { 2425 | "version": "1.52.0", 2426 | "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", 2427 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" 2428 | }, 2429 | "mime-types": { 2430 | "version": "2.1.35", 2431 | "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", 2432 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 2433 | "requires": { 2434 | "mime-db": "1.52.0" 2435 | } 2436 | }, 2437 | "minimatch": { 2438 | "version": "9.0.0", 2439 | "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.0.tgz", 2440 | "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", 2441 | "dev": true, 2442 | "requires": { 2443 | "brace-expansion": "^2.0.1" 2444 | } 2445 | }, 2446 | "mlly": { 2447 | "version": "1.2.1", 2448 | "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.2.1.tgz", 2449 | "integrity": "sha512-1aMEByaWgBPEbWV2BOPEMySRrzl7rIHXmQxam4DM8jVjalTQDjpN2ZKOLUrwyhfZQO7IXHml2StcHMhooDeEEQ==", 2450 | "dev": true, 2451 | "requires": { 2452 | "acorn": "^8.8.2", 2453 | "pathe": "^1.1.0", 2454 | "pkg-types": "^1.0.3", 2455 | "ufo": "^1.1.2" 2456 | } 2457 | }, 2458 | "ms": { 2459 | "version": "2.1.2", 2460 | "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", 2461 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 2462 | "dev": true 2463 | }, 2464 | "nanoid": { 2465 | "version": "3.3.6", 2466 | "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz", 2467 | "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" 2468 | }, 2469 | "normalize-path": { 2470 | "version": "3.0.0", 2471 | "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", 2472 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 2473 | "dev": true 2474 | }, 2475 | "normalize-wheel-es": { 2476 | "version": "1.2.0", 2477 | "resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", 2478 | "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==" 2479 | }, 2480 | "path-parse": { 2481 | "version": "1.0.7", 2482 | "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", 2483 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 2484 | "dev": true 2485 | }, 2486 | "pathe": { 2487 | "version": "1.1.0", 2488 | "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.0.tgz", 2489 | "integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==", 2490 | "dev": true 2491 | }, 2492 | "picocolors": { 2493 | "version": "1.0.0", 2494 | "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", 2495 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" 2496 | }, 2497 | "picomatch": { 2498 | "version": "2.3.1", 2499 | "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", 2500 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 2501 | "dev": true 2502 | }, 2503 | "pinia": { 2504 | "version": "2.0.36", 2505 | "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.0.36.tgz", 2506 | "integrity": "sha512-4UKApwjlmJH+VuHKgA+zQMddcCb3ezYnyewQ9NVrsDqZ/j9dMv5+rh+1r48whKNdpFkZAWVxhBp5ewYaYX9JcQ==", 2507 | "requires": { 2508 | "@vue/devtools-api": "^6.5.0", 2509 | "vue-demi": "*" 2510 | }, 2511 | "dependencies": { 2512 | "vue-demi": { 2513 | "version": "0.14.1", 2514 | "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.1.tgz", 2515 | "integrity": "sha512-rt+yuCtXvscYot9SQQj3WKZJVSriPNqVkpVBNEHPzSgBv7QIYzsS410VqVgvx8f9AAPgjg+XPKvmV3vOqqkJQQ==", 2516 | "requires": {} 2517 | } 2518 | } 2519 | }, 2520 | "pkg-types": { 2521 | "version": "1.0.3", 2522 | "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.0.3.tgz", 2523 | "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", 2524 | "dev": true, 2525 | "requires": { 2526 | "jsonc-parser": "^3.2.0", 2527 | "mlly": "^1.2.0", 2528 | "pathe": "^1.1.0" 2529 | } 2530 | }, 2531 | "postcss": { 2532 | "version": "8.4.23", 2533 | "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.23.tgz", 2534 | "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", 2535 | "requires": { 2536 | "nanoid": "^3.3.6", 2537 | "picocolors": "^1.0.0", 2538 | "source-map-js": "^1.0.2" 2539 | } 2540 | }, 2541 | "proxy-from-env": { 2542 | "version": "1.1.0", 2543 | "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", 2544 | "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" 2545 | }, 2546 | "queue-microtask": { 2547 | "version": "1.2.3", 2548 | "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", 2549 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 2550 | "dev": true 2551 | }, 2552 | "readdirp": { 2553 | "version": "3.6.0", 2554 | "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", 2555 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 2556 | "dev": true, 2557 | "requires": { 2558 | "picomatch": "^2.2.1" 2559 | } 2560 | }, 2561 | "resolve": { 2562 | "version": "1.22.2", 2563 | "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.2.tgz", 2564 | "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", 2565 | "dev": true, 2566 | "requires": { 2567 | "is-core-module": "^2.11.0", 2568 | "path-parse": "^1.0.7", 2569 | "supports-preserve-symlinks-flag": "^1.0.0" 2570 | } 2571 | }, 2572 | "reusify": { 2573 | "version": "1.0.4", 2574 | "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", 2575 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 2576 | "dev": true 2577 | }, 2578 | "rollup": { 2579 | "version": "3.21.7", 2580 | "resolved": "https://registry.npmmirror.com/rollup/-/rollup-3.21.7.tgz", 2581 | "integrity": "sha512-KXPaEuR8FfUoK2uHwNjxTmJ18ApyvD6zJpYv9FOJSqLStmt6xOY84l1IjK2dSolQmoXknrhEFRaPRgOPdqCT5w==", 2582 | "dev": true, 2583 | "requires": { 2584 | "fsevents": "~2.3.2" 2585 | } 2586 | }, 2587 | "run-parallel": { 2588 | "version": "1.2.0", 2589 | "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", 2590 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 2591 | "dev": true, 2592 | "requires": { 2593 | "queue-microtask": "^1.2.2" 2594 | } 2595 | }, 2596 | "scule": { 2597 | "version": "1.0.0", 2598 | "resolved": "https://registry.npmmirror.com/scule/-/scule-1.0.0.tgz", 2599 | "integrity": "sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==", 2600 | "dev": true 2601 | }, 2602 | "source-map-js": { 2603 | "version": "1.0.2", 2604 | "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz", 2605 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" 2606 | }, 2607 | "strip-literal": { 2608 | "version": "1.0.1", 2609 | "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-1.0.1.tgz", 2610 | "integrity": "sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==", 2611 | "dev": true, 2612 | "requires": { 2613 | "acorn": "^8.8.2" 2614 | } 2615 | }, 2616 | "supports-preserve-symlinks-flag": { 2617 | "version": "1.0.0", 2618 | "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 2619 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 2620 | "dev": true 2621 | }, 2622 | "to-regex-range": { 2623 | "version": "5.0.1", 2624 | "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", 2625 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 2626 | "dev": true, 2627 | "requires": { 2628 | "is-number": "^7.0.0" 2629 | } 2630 | }, 2631 | "ufo": { 2632 | "version": "1.1.2", 2633 | "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.1.2.tgz", 2634 | "integrity": "sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==", 2635 | "dev": true 2636 | }, 2637 | "unimport": { 2638 | "version": "3.0.6", 2639 | "resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.0.6.tgz", 2640 | "integrity": "sha512-GYxGJ1Bri1oqx8VFDjdgooGzeK7jBk3bvhXmamTIpu3nONOcUMGwZbX7X0L5RA7OWMXpR4vzpSQP7pXUzJg1/Q==", 2641 | "dev": true, 2642 | "requires": { 2643 | "@rollup/pluginutils": "^5.0.2", 2644 | "escape-string-regexp": "^5.0.0", 2645 | "fast-glob": "^3.2.12", 2646 | "local-pkg": "^0.4.3", 2647 | "magic-string": "^0.30.0", 2648 | "mlly": "^1.2.0", 2649 | "pathe": "^1.1.0", 2650 | "pkg-types": "^1.0.2", 2651 | "scule": "^1.0.0", 2652 | "strip-literal": "^1.0.1", 2653 | "unplugin": "^1.3.1" 2654 | } 2655 | }, 2656 | "unplugin": { 2657 | "version": "1.3.1", 2658 | "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.3.1.tgz", 2659 | "integrity": "sha512-h4uUTIvFBQRxUKS2Wjys6ivoeofGhxzTe2sRWlooyjHXVttcVfV/JiavNd3d4+jty0SVV0dxGw9AkY9MwiaCEw==", 2660 | "dev": true, 2661 | "requires": { 2662 | "acorn": "^8.8.2", 2663 | "chokidar": "^3.5.3", 2664 | "webpack-sources": "^3.2.3", 2665 | "webpack-virtual-modules": "^0.5.0" 2666 | } 2667 | }, 2668 | "unplugin-auto-import": { 2669 | "version": "0.15.3", 2670 | "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.15.3.tgz", 2671 | "integrity": "sha512-RLT8SqbPn4bT7yBshZId0uPSofKWnwr66RyDaxWaFb/+f7OTDOWAsVNz+hOQLBWSjvbekr2xZY9ccS8TDHJbCQ==", 2672 | "dev": true, 2673 | "requires": { 2674 | "@antfu/utils": "^0.7.2", 2675 | "@rollup/pluginutils": "^5.0.2", 2676 | "local-pkg": "^0.4.3", 2677 | "magic-string": "^0.30.0", 2678 | "minimatch": "^9.0.0", 2679 | "unimport": "^3.0.6", 2680 | "unplugin": "^1.3.1" 2681 | } 2682 | }, 2683 | "unplugin-vue-components": { 2684 | "version": "0.24.1", 2685 | "resolved": "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.24.1.tgz", 2686 | "integrity": "sha512-T3A8HkZoIE1Cja95xNqolwza0yD5IVlgZZ1PVAGvVCx8xthmjsv38xWRCtHtwl+rvZyL9uif42SRkDGw9aCfMA==", 2687 | "dev": true, 2688 | "requires": { 2689 | "@antfu/utils": "^0.7.2", 2690 | "@rollup/pluginutils": "^5.0.2", 2691 | "chokidar": "^3.5.3", 2692 | "debug": "^4.3.4", 2693 | "fast-glob": "^3.2.12", 2694 | "local-pkg": "^0.4.3", 2695 | "magic-string": "^0.30.0", 2696 | "minimatch": "^7.4.2", 2697 | "resolve": "^1.22.1", 2698 | "unplugin": "^1.1.0" 2699 | }, 2700 | "dependencies": { 2701 | "minimatch": { 2702 | "version": "7.4.6", 2703 | "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-7.4.6.tgz", 2704 | "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", 2705 | "dev": true, 2706 | "requires": { 2707 | "brace-expansion": "^2.0.1" 2708 | } 2709 | } 2710 | } 2711 | }, 2712 | "vite": { 2713 | "version": "4.3.5", 2714 | "resolved": "https://registry.npmmirror.com/vite/-/vite-4.3.5.tgz", 2715 | "integrity": "sha512-0gEnL9wiRFxgz40o/i/eTBwm+NEbpUeTWhzKrZDSdKm6nplj+z4lKz8ANDgildxHm47Vg8EUia0aicKbawUVVA==", 2716 | "dev": true, 2717 | "requires": { 2718 | "esbuild": "^0.17.5", 2719 | "fsevents": "~2.3.2", 2720 | "postcss": "^8.4.23", 2721 | "rollup": "^3.21.0" 2722 | } 2723 | }, 2724 | "vue": { 2725 | "version": "3.3.2", 2726 | "resolved": "https://registry.npmmirror.com/vue/-/vue-3.3.2.tgz", 2727 | "integrity": "sha512-98hJcAhyDwZoOo2flAQBSPVYG/o0HA9ivIy2ktHshjE+6/q8IMQ+kvDKQzOZTFPxvnNMcGM+zS2A00xeZMA7tA==", 2728 | "requires": { 2729 | "@vue/compiler-dom": "3.3.2", 2730 | "@vue/compiler-sfc": "3.3.2", 2731 | "@vue/runtime-dom": "3.3.2", 2732 | "@vue/server-renderer": "3.3.2", 2733 | "@vue/shared": "3.3.2" 2734 | } 2735 | }, 2736 | "vue-axios": { 2737 | "version": "3.5.2", 2738 | "resolved": "https://registry.npmmirror.com/vue-axios/-/vue-axios-3.5.2.tgz", 2739 | "integrity": "sha512-GP+dct7UlAWkl1qoP3ppw0z6jcSua5/IrMpjB5O8bh089iIiJ+hdxPYH2NPEpajlYgkW5EVMP95ttXWdas1O0g==", 2740 | "requires": {} 2741 | }, 2742 | "vue-router": { 2743 | "version": "4.2.0", 2744 | "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.2.0.tgz", 2745 | "integrity": "sha512-c+usESa6ZoWsm4PPdzRSyenp5A4dsUtnDJnrI03fY1IpIihA9TK3x5ffgkFDpjhLJZewsXoKURapNLFdZjuqTg==", 2746 | "requires": { 2747 | "@vue/devtools-api": "^6.5.0" 2748 | } 2749 | }, 2750 | "webpack-sources": { 2751 | "version": "3.2.3", 2752 | "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz", 2753 | "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", 2754 | "dev": true 2755 | }, 2756 | "webpack-virtual-modules": { 2757 | "version": "0.5.0", 2758 | "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz", 2759 | "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==", 2760 | "dev": true 2761 | } 2762 | } 2763 | } 2764 | --------------------------------------------------------------------------------