├── 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 |
5 |
6 |
7 |
8 |
11 |
--------------------------------------------------------------------------------
/study-project-frontend/src/components/datasource/dbmove.vue:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 | dbmove
7 |
8 |
9 |
--------------------------------------------------------------------------------
/study-project-frontend/src/components/datashow/index.vue:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 | 这是show index,是刚登录的展示页
7 |
8 |
9 |
--------------------------------------------------------------------------------
/study-project-frontend/src/components/datasource/fileimport.vue:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 | fileimport
7 |
8 |
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 |
6 |
7 |
8 |
10 |
11 |
12 |
欢迎进入达梦大数据物流中台系统
13 |
结合大数据平台,为客户提供数据获取、数据治理、数据共享等优质服务!
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
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 |
2 |
3 |
4 |
登录
5 |
在进入系统之前请先输入用户名和密码进行登录
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | 忘记密码?
26 |
27 |
28 |
29 |
30 | 立即登录
31 |
32 |
33 |
34 | 没有账户
35 |
36 |
37 | 注册账户
38 |
39 |
40 |
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 |
4 |
5 |
6 |
注册新用户
7 |
欢迎注册,请填写相关信息
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
51 | {{ coldTime > 0 ? '请稍后'+coldTime+'秒':'获取验证码' }}
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 | 立即注册
63 |
64 |
65 | 已有账号?立即登录
66 |
67 |
68 |
69 |
70 |
71 |
163 |
164 |
165 |
166 |
--------------------------------------------------------------------------------
/study-project-frontend/src/components/welcome/ForgetPage.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
重置密码
7 |
请输入账户的电子邮件地址
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
36 | {{ coldTime > 0 ? '请稍后'+coldTime+'秒':'获取验证码' }}
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 | 开始重置密码
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
重置密码
53 |
请重复输入新密码
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 | 立即重置密码
81 |
82 |
83 |
84 |
85 |
86 |
89 |
90 |
186 |
--------------------------------------------------------------------------------
/study-project-frontend/src/views/IndexView.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |

7 |
物流中台系统
8 |
9 |
10 |
11 |
12 | 账户
15 |
16 |
17 |
18 | 个人信息
19 | 其他
20 | 退出登录
21 |
22 |
23 |
24 |
25 |
40 |
41 |
42 |
43 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
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 |
--------------------------------------------------------------------------------