├── pnpm-workspace.yaml ├── favicon.ico ├── packages ├── client │ ├── .vscode │ │ └── extensions.json │ ├── src │ │ ├── assets │ │ │ ├── css │ │ │ │ └── main.less │ │ │ ├── image │ │ │ │ ├── afb.jpg │ │ │ │ ├── weixin.png │ │ │ │ └── favicon.ico │ │ │ └── vue.svg │ │ ├── App.vue │ │ ├── modules │ │ │ ├── detail │ │ │ │ ├── index.vue │ │ │ │ └── script.js │ │ │ └── home │ │ │ │ └── index.vue │ │ ├── common │ │ │ ├── urls │ │ │ │ └── index.js │ │ │ └── utils │ │ │ │ └── axios_helper.ts │ │ ├── main.js │ │ ├── components │ │ │ └── pageNotFound.vue │ │ └── routers.js │ ├── README.md │ ├── .gitignore │ ├── index.html │ ├── package.json │ └── vite.config.js └── server │ ├── middleware │ └── index.js │ ├── config │ ├── enum.js │ ├── index.js │ └── result_code.js │ ├── service │ ├── test_service.js │ └── road_service.js │ ├── model │ └── Road.js │ ├── handler │ ├── sys_login.js │ ├── test_handler.js │ └── road_handler.js │ ├── mock │ └── userinfo.json │ ├── .gitignore │ ├── nodemon.json │ ├── package.json │ ├── utils │ ├── aes.js │ └── rsa.js │ ├── app.js │ └── router │ ├── road_router.js │ └── index.js ├── .gitignore ├── package.json ├── .vscode └── launch.json ├── start.js ├── README.md └── pnpm-lock.yaml /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | 3 | - 'packages/**' 4 | -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uct8086/jsonVee/HEAD/favicon.ico -------------------------------------------------------------------------------- /packages/client/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar"] 3 | } 4 | -------------------------------------------------------------------------------- /packages/server/middleware/index.js: -------------------------------------------------------------------------------- 1 | const fs = require("fs"); 2 | module.exports = function () { 3 | // TODO 4 | }; -------------------------------------------------------------------------------- /packages/client/src/assets/css/main.less: -------------------------------------------------------------------------------- 1 | *{ 2 | font-size: 14px; 3 | } 4 | img{ 5 | width: 200px; 6 | height: 200px; 7 | } -------------------------------------------------------------------------------- /packages/client/src/assets/image/afb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uct8086/jsonVee/HEAD/packages/client/src/assets/image/afb.jpg -------------------------------------------------------------------------------- /packages/client/src/assets/image/weixin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uct8086/jsonVee/HEAD/packages/client/src/assets/image/weixin.png -------------------------------------------------------------------------------- /packages/client/src/assets/image/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uct8086/jsonVee/HEAD/packages/client/src/assets/image/favicon.ico -------------------------------------------------------------------------------- /packages/server/config/enum.js: -------------------------------------------------------------------------------- 1 | const testEnum = { // 枚举 2 | Unknow: 0, 3 | }; 4 | 5 | 6 | module.exports = { 7 | testEnum, 8 | }; 9 | -------------------------------------------------------------------------------- /packages/client/src/App.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 8 | 10 | -------------------------------------------------------------------------------- /packages/client/src/modules/detail/index.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /packages/client/src/common/urls/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 请求地址 3 | */ 4 | 'use strict'; 5 | const URL = { 6 | getDetail: `/api/detail/getdetail`, 7 | }; 8 | 9 | export default URL; 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | dist 4 | public 5 | tmp 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* 9 | 10 | # Editor directories and files 11 | .idea 12 | *.suo 13 | *.ntvs* 14 | *.njsproj 15 | *.sln 16 | -------------------------------------------------------------------------------- /packages/server/service/test_service.js: -------------------------------------------------------------------------------- 1 | class TestService { 2 | 3 | static getDetail() { 4 | // let requestId = uuid(); 5 | let data = require("../mock/userinfo.json"); 6 | return data; 7 | } 8 | 9 | } 10 | module.exports = TestService; 11 | -------------------------------------------------------------------------------- /packages/client/README.md: -------------------------------------------------------------------------------- 1 | ### 这是jsonVee的前端部分 2 | 3 | ### 安装依赖, 也可以在最外层一次性安装 4 | 5 | ``` 6 | pnpm install 7 | ``` 8 | 9 | ### 启动服务 10 | 11 | ``` 12 | pnpm run dev 13 | ``` 14 | 15 | ### 构建生产环境 16 | 17 | ``` 18 | pnpm run build 19 | ``` 20 | build 完的文件会放到项目最外层的public目录下, 然后被 server服务引用。 -------------------------------------------------------------------------------- /packages/server/config/index.js: -------------------------------------------------------------------------------- 1 | const config = {}; 2 | config.bodyParserJsonOptions = { 3 | limit: '10mb' 4 | }; 5 | config.bodyParserUrlencodedOptions = { 6 | extended: false, 7 | limit: '20mb' 8 | }; 9 | 10 | config.db = { 11 | url: "mongodb://localhost:27017/jsonVee", 12 | } 13 | 14 | module.exports = exports = config; -------------------------------------------------------------------------------- /packages/server/model/Road.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | 3 | const roadSchema = mongoose.Schema({ 4 | title : { type:String, required : true }, 5 | desc : String, 6 | created_at : { type : Date, default : Date.now }, 7 | update_at : { type : Date, default : Date.now } 8 | }) 9 | 10 | const Road = module.exports = mongoose.model('Road',roadSchema) 11 | -------------------------------------------------------------------------------- /packages/server/handler/sys_login.js: -------------------------------------------------------------------------------- 1 | const ResultCode = require('../config/result_code'); 2 | 3 | class SysLogin{ 4 | /** 5 | * 退出登录 6 | */ 7 | static logout(req, res) { 8 | // TODO 9 | }; 10 | 11 | /** 12 | * 登录 13 | */ 14 | static login(req, res) { 15 | // TODO 16 | }; 17 | } 18 | 19 | module.exports = SysLogin; 20 | -------------------------------------------------------------------------------- /packages/server/mock/userinfo.json: -------------------------------------------------------------------------------- 1 | { 2 | "code": 0, 3 | "msg": "success", 4 | "data": { 5 | "user": { 6 | "userId": 2, 7 | "name": "MJ的斯台普斯", 8 | "nickname": "MJ的斯台普斯", 9 | "isadmin": 0, 10 | "phoneNum": "17302659317", 11 | "openid": "oFa_U0s6Tg7b3Q_5k8-X0NxVNhIA" 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /packages/client/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /packages/server/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /packages/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | JsonVee项目框架 8 | 9 | 10 | 11 |
12 | 13 | 14 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jsonvee", 3 | "version": "3.0.0", 4 | "description": "jsonVee 全新升级项目", 5 | "keywords": [], 6 | "license": "ISC", 7 | "author": "", 8 | "main": "start.js", 9 | "scripts": { 10 | "start": "node start.js", 11 | "test": "echo \"Error: no test specified\" && exit 1" 12 | }, 13 | "engines": { 14 | "node": ">=20.11.0", 15 | "npm": ">=10.1.0" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/client/src/main.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue'; 2 | import router from './routers'; 3 | import './assets/css/main.less'; 4 | import ElementPlus from 'element-plus'; 5 | import 'element-plus/dist/index.css'; 6 | import App from './App.vue' 7 | 8 | createApp(App).mount('#app') 9 | 10 | const myApp = createApp(App); 11 | 12 | myApp.use(router); 13 | 14 | myApp.use(ElementPlus); 15 | 16 | myApp.mount("#app-wrapper"); 17 | -------------------------------------------------------------------------------- /packages/server/handler/test_handler.js: -------------------------------------------------------------------------------- 1 | 2 | const testService = require('../service/test_service.js'); 3 | 4 | class TestHandler { 5 | /** 6 | * 获取详细信息 7 | */ 8 | static async getDetail(req, res) { 9 | try{ 10 | let data = await testService.getDetail(); 11 | res.json(data); 12 | } catch (e) { 13 | res.end("error ") 14 | } 15 | 16 | } 17 | 18 | } 19 | module.exports = TestHandler; 20 | -------------------------------------------------------------------------------- /packages/server/nodemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "restartable": "rs", 3 | "ignore": [ 4 | ".git", 5 | "node_modules/", 6 | "doc/", 7 | "public/", 8 | "test/" 9 | ], 10 | "verbose": true, 11 | "execMap": { 12 | "js": "node" 13 | }, 14 | "events": { 15 | 16 | }, 17 | "watch": [ 18 | "packages/server/" 19 | ], 20 | "env": { 21 | "NODE_ENV": "local" 22 | }, 23 | "ext": "js json" 24 | } -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // 使用 IntelliSense 了解相关属性。 3 | // 悬停以查看现有属性的描述。 4 | // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "type": "node", 9 | "request": "launch", 10 | "name": "启动程序", 11 | "skipFiles": [ 12 | "/**" 13 | ], 14 | "program": "${workspaceFolder}/packages/server/app.js" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /packages/client/src/assets/vue.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/client/src/modules/detail/script.js: -------------------------------------------------------------------------------- 1 | // import HttpHelper from "common/utils/axios_helper"; 2 | import { reactive, onMounted } from 'vue'; 3 | 4 | export default { 5 | setup() { 6 | const data = reactive({ 7 | id: "5d42ac3d9c149c38248c8199" 8 | }); 9 | const selectById = async () => { 10 | // await HttpHelper.axiosGet("/detail/selectById", {id: data.id}); 11 | }; 12 | 13 | onMounted(() => { 14 | selectById(); 15 | }); 16 | 17 | return { 18 | data, 19 | selectById, 20 | }; 21 | } 22 | }; -------------------------------------------------------------------------------- /packages/client/src/components/pageNotFound.vue: -------------------------------------------------------------------------------- 1 | 6 | 19 | -------------------------------------------------------------------------------- /start.js: -------------------------------------------------------------------------------- 1 | const { spawn } = require('child_process'); 2 | 3 | const repos = [ 4 | { 5 | name: 'client', 6 | startArgs: ['run', 'dev'] 7 | }, 8 | { 9 | name: 'server', 10 | startArgs: ['run', 'server'] 11 | } 12 | ]; 13 | 14 | 15 | // 启动子仓库的函数 16 | function startRepo(proj) { 17 | const startCommand = 'npm'; 18 | const startOptions = { cwd: `packages/${proj.name}`, stdio: 'inherit' }; 19 | const child = spawn(startCommand, proj.startArgs, startOptions); 20 | child.on('error', (error) => { 21 | console.error(`Error starting ${proj.name}:${error.message}`); 22 | }); 23 | } 24 | 25 | // 启动所有子仓库 26 | repos.forEach(startRepo); 27 | -------------------------------------------------------------------------------- /packages/client/src/routers.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @description 客户端路由 3 | * @author uct8086 4 | */ 5 | import homePanel from './modules/home/index.vue'; 6 | import detailPanel from './modules/detail/index.vue'; 7 | import pageNotFound from './components/pageNotFound.vue'; 8 | // router.js 9 | import { createRouter, createWebHistory } from 'vue-router'; 10 | const routes = [ 11 | { path: `/`, component: homePanel }, 12 | { 13 | path: `/detail`, 14 | component: detailPanel, 15 | }, 16 | { path: '/:pathMatch(.*)*', component: pageNotFound } 17 | ]; 18 | 19 | // 创建router实例 20 | const router = createRouter({ 21 | history: createWebHistory(), 22 | routes, 23 | }); 24 | 25 | export default router; 26 | 27 | -------------------------------------------------------------------------------- /packages/client/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jsonvee-client", 3 | "version": "1.0.0", 4 | "private": true, 5 | "description": "jsonVee 的前端部分", 6 | "type": "module", 7 | "scripts": { 8 | "build": "vite build", 9 | "dev": "vite", 10 | "preview": "vite preview" 11 | }, 12 | "dependencies": { 13 | "vue": "3.4.21" 14 | }, 15 | "devDependencies": { 16 | "@vitejs/plugin-vue": "5.0.4", 17 | "axios": "1.12.0", 18 | "element-plus": "2.11.0", 19 | "less": "4.2.0", 20 | "less-loader": "12.2.0", 21 | "unplugin-element-plus": "0.8.0", 22 | "vite": "5.4.21", 23 | "vite-plugin-html": "3.2.2", 24 | "vue-router": "4.3.0" 25 | }, 26 | "engines": { 27 | "node": ">=20.11.0", 28 | "npm": ">=10.1.0" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /packages/server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jsonvee-server", 3 | "version": "1.0.0", 4 | "description": "jsonVee 服务端", 5 | "keywords": [], 6 | "license": "ISC", 7 | "author": "", 8 | "main": "app.js", 9 | "scripts": { 10 | "server": "nodemon app.js", 11 | "test": "echo \"Error: no test specified\" && exit 1" 12 | }, 13 | "dependencies": { 14 | "body-parser": "2.2.1", 15 | "browserslist": "4.23.0", 16 | "compression": "1.7.4", 17 | "cookie-parser": "1.4.6", 18 | "crypto-js": "4.2.0", 19 | "ejs": "3.1.10", 20 | "express": "4.19.2", 21 | "express-session": "1.18.0", 22 | "express-validator": "7.0.1", 23 | "helmet": "7.1.0", 24 | "mongoose": "8.9.5", 25 | "serve-favicon": "2.5.0" 26 | }, 27 | "devDependencies": { 28 | "nodemon": "3.1.10" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /packages/server/utils/aes.js: -------------------------------------------------------------------------------- 1 | const CryptoJS = require('crypto-js'); //引用AES源码js 2 | 3 | const key = CryptoJS.enc.Utf8.parse("1234567890123456"); //十六位十六进制数作为密钥 4 | const iv = CryptoJS.enc.Utf8.parse('6543210987654321'); //十六位十六进制数作为密钥偏移量 5 | 6 | //解密方法 7 | function Decrypt(word) { 8 | let decrypt = CryptoJS.AES.decrypt(word, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }); 9 | let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8); 10 | return decryptedStr.toString(); 11 | } 12 | 13 | //加密方法 14 | function Encrypt(word) { 15 | let srcs = CryptoJS.enc.Utf8.parse(word); 16 | let encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }); 17 | return encrypted.ciphertext.toString(CryptoJS.enc.Base64); 18 | } 19 | 20 | module.exports = { 21 | Decrypt, 22 | Encrypt 23 | }; -------------------------------------------------------------------------------- /packages/client/src/modules/home/index.vue: -------------------------------------------------------------------------------- 1 | 18 | 34 | 35 | -------------------------------------------------------------------------------- /packages/server/utils/rsa.js: -------------------------------------------------------------------------------- 1 | let fs = require('fs'); 2 | const crypto = require('crypto'); 3 | 4 | class RSAKey{ 5 | //私钥解密方法 6 | static Decrypt(word) { 7 | try{ 8 | console.log('come into fun decrypt.'); 9 | let privateKey = fs.readFileSync(__dirname + `/../key/pkcs1_rsa_private_key.pem`).toString(); 10 | let decodeData = crypto.privateDecrypt({ key: privateKey, padding: crypto.constants.RSA_PKCS1_PADDING }, Buffer.from(word, 'hex')); 11 | console.log('decodeData: ', decodeData.toString('binary')); 12 | return decodeData.toString('binary'); 13 | } catch (e) { 14 | console.error(`Decrypt error is ${e && e.message || ''}`); 15 | return; 16 | } 17 | } 18 | 19 | //公钥加密方法 20 | static Encrypt(word) { 21 | let publicKey = fs.readFileSync(__dirname + `/../key/pkcs8_public_key.pem`).toString(); 22 | let encodeData = crypto.publicEncrypt({ key: publicKey, padding: crypto.constants.RSA_PKCS1_PADDING }, Buffer.from(word, 'binary')).toString('hex'); 23 | return `${encodeData}`; 24 | } 25 | } 26 | 27 | module.exports = RSAKey; 28 | 29 | -------------------------------------------------------------------------------- /packages/server/service/road_service.js: -------------------------------------------------------------------------------- 1 | const Road = require('../model/Road'); 2 | class RoadService { 3 | 4 | static async selectAll() { 5 | return await Road.find({}).sort({ update_at: -1 }); 6 | } 7 | 8 | static async selectById(params) { 9 | return await Road.findById(params.id); 10 | } 11 | 12 | static async createOne(params) { 13 | return new Promise((resolve, reject) => { 14 | Road.create(params, (err, Road) => { 15 | if (err) { 16 | reject(err) 17 | } else { 18 | resolve(Road) 19 | } 20 | }) 21 | }) 22 | } 23 | 24 | static async updateOne(params) { 25 | return new Promise((resolve, reject) => { 26 | Road.findOneAndUpdate({ _id: params.id } 27 | , { 28 | $set: { 29 | title: params.title, 30 | desc: params.desc 31 | } 32 | }, { 33 | new: true 34 | }) 35 | .then(Road => resolve(Road)) 36 | .catch(err => reject(err)) 37 | }) 38 | } 39 | 40 | static async removeOne(params) { 41 | return new Promise((resolve, reject) => { 42 | Road.findOneAndRemove({ 43 | _id: params.id 44 | }) 45 | .then(Road => resolve(`${Road.title}删除成功`)) 46 | .catch(err => reject(err)) 47 | }) 48 | } 49 | 50 | } 51 | module.exports = RoadService; 52 | -------------------------------------------------------------------------------- /packages/server/handler/road_handler.js: -------------------------------------------------------------------------------- 1 | 2 | const roadService = require('../service/road_service'); 3 | 4 | class RoadHandler { 5 | 6 | /** 7 | * 创建一条记录 8 | */ 9 | static async createOne(req, res) { 10 | let params = req.body; 11 | let data = await roadService.createOne(params); 12 | console.log(data) 13 | return res.json({code: 0 , data: {id: data.id}}); 14 | } 15 | /** 16 | * 查询所有 17 | */ 18 | static async selectAll(req, res) { 19 | let data = await roadService.selectAll(); 20 | console.log(data) 21 | return res.json({code: 0 , data}); 22 | } 23 | /** 24 | * 根据ID查询 25 | */ 26 | static async selectById(req, res) { 27 | let params = req.query; 28 | let data = await roadService.selectById(params); 29 | console.log(data) 30 | return res.json({code: 0 , data}); 31 | } 32 | 33 | /** 34 | * 更新 35 | */ 36 | static async updateOne(req, res) { 37 | let params = req.body; 38 | let data = await roadService.updateOne(params); 39 | console.log(data) 40 | return res.json({code: 0 , data}); 41 | } 42 | /** 43 | * 删除 44 | */ 45 | static async removeOne(req, res) { 46 | let params = req.query; 47 | let data = await roadService.removeOne(params); 48 | console.log(data) 49 | return res.json({code: 0 , data}); 50 | } 51 | 52 | } 53 | module.exports = RoadHandler; 54 | -------------------------------------------------------------------------------- /packages/server/config/result_code.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | //业务相关错误定义 3 | BUSINESS: { 4 | PARAMS: { 5 | errcode: 121001, 6 | errmsg: '请求参数出错' 7 | }, 8 | AUTHERROR: { 9 | errcode: 123002, 10 | errmsg: '手机号已绑定其他微信' 11 | }, 12 | NO_SYS_AUTH: { 13 | errcode: 123003, 14 | errmsg: '无系统权限' 15 | }, 16 | MOBILE_VERIFY: { 17 | errcode: 123004, 18 | errmsg: '验证码错误' 19 | }, 20 | }, 21 | PermissionCode: { 22 | DENY: 124001, 23 | DENY_OTHER_DEVICE: 124002, 24 | DENY_HOSPITAL: 124003, 25 | PERMISSION_DENY:124317, 26 | }, 27 | LoginStatusCode:{ 28 | NOT_LOGIN:124060,//未登录 29 | LOGIN_ERROR:124061,//登录异常 30 | KICKED:101,//被踢了 31 | NO_PERMISSION:124062,//没有权限 32 | }, 33 | /** 34 | * 数据库错误 35 | */ 36 | DB: { 37 | NOT_FOUND: { 38 | errcode: 124004, 39 | errmsg: '没有找到数据' 40 | }, 41 | CREATE_POOL_ERROR: { 42 | errcode: 124005, 43 | errmsg: '创建数据库连接池失败' 44 | }, 45 | UPDATE_ERROR: { 46 | errcode: 124006, 47 | errmsg: '更新数据失败' 48 | } 49 | }, 50 | SYSTEM: { 51 | DB_DATA_ERROR: { 52 | errcode: 126000, 53 | errmsg: '数据错误' 54 | }, 55 | HTTP_ERROR: { 56 | errcode: 126001, 57 | errmsg: '网络请求失败' 58 | } 59 | }, 60 | 61 | } -------------------------------------------------------------------------------- /packages/server/app.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const path = require('path'); 3 | const cookieParser = require('cookie-parser'); 4 | const bodyParser = require('body-parser'); 5 | const compress = require('compression'); 6 | const favicon = require('serve-favicon'); 7 | const mongoose = require('mongoose'); 8 | const config = require('./config'); 9 | const baseRouter = require('./router'); 10 | const app = express(); 11 | 12 | //建立连接, 需要时再打开 13 | // mongoose.connect(config.db.url); 14 | // mongoose.Promise = global.Promise; 15 | 16 | const helmet = require('helmet');//防注入中间件 17 | 18 | app.use(favicon(__dirname + '../../../favicon.ico')) 19 | 20 | app.disable('x-powered-by'); 21 | if (!process.env.NODE_ENV) { 22 | process.env.NODE_ENV = 'local'; 23 | } 24 | 25 | if(Object.is(process.env.NODE_ENV,'local')){ 26 | app.engine('.html', require('ejs').__express); 27 | app.set('view engine', 'html'); 28 | } 29 | 30 | app.use(helmet()); 31 | app.use(compress()); 32 | app.use(bodyParser.json(config.bodyParserJsonOptions)); 33 | app.use(bodyParser.urlencoded(config.bodyParserUrlencodedOptions)); 34 | app.use(cookieParser()); 35 | baseRouter.interceptorHttp(app); 36 | 37 | app.use(express.static(path.join(__dirname, '../../public'))); 38 | 39 | app.use(function (err, req, res, next) { 40 | res.status(err.status || 500); 41 | console.log(`path : ${req.path}`, err); 42 | 43 | res.json({ 44 | code: -1001, 45 | msg: err.message 46 | }); 47 | 48 | }); 49 | app.set('host', process.env.IP || 'localhost'); 50 | app.set('port', process.env.PORT || 8050); 51 | app.listen(app.get('port'), app.get('host'), function () { 52 | console.log('服务端启动成功,监听端口:' + app.get('port')); 53 | }); 54 | -------------------------------------------------------------------------------- /packages/server/router/road_router.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const RoadHandler = require('../handler/road_handler'); 4 | const TestHandler = require('../handler/test_handler'); 5 | const { check } = require('express-validator'); 6 | 7 | module.exports = { 8 | routers: [ 9 | { 10 | path: "/api/detail/getdetail", 11 | handler: TestHandler.getDetail, 12 | method: 'post', 13 | params: [] 14 | }, 15 | { 16 | path: "/api/detail/createOne", 17 | handler: RoadHandler.createOne, 18 | method: 'post', 19 | params: [ 20 | check('title').not().isEmpty() , 21 | check('desc').not().isEmpty(), 22 | ] 23 | }, 24 | { 25 | path: '/api/detail/selectAll', 26 | handler: RoadHandler.selectAll, 27 | method: "get", 28 | params: [] 29 | }, 30 | { 31 | path: '/api/detail/selectById', 32 | handler: RoadHandler.selectById, 33 | method: "get", 34 | params: [ 35 | check('id').not().isEmpty() 36 | ] 37 | }, 38 | { 39 | path: '/api/detail/updateOne', 40 | handler: RoadHandler.updateOne, 41 | method: "post", 42 | params: [ 43 | check('id').not().isEmpty(), 44 | check('title').not().isEmpty() , 45 | check('desc').not().isEmpty(), 46 | ] 47 | }, 48 | { 49 | path: '/api/detail/removeOne', 50 | handler: RoadHandler.removeOne, 51 | method: "get", 52 | params: [ 53 | check('id').not().isEmpty(), 54 | ] 55 | }, 56 | 57 | ] 58 | }; 59 | -------------------------------------------------------------------------------- /packages/client/vite.config.js: -------------------------------------------------------------------------------- 1 | import path from 'path'; 2 | import { defineConfig } from 'vite' 3 | import vue from '@vitejs/plugin-vue' 4 | import ElementPlus from 'unplugin-element-plus/vite' 5 | import { createHtmlPlugin } from 'vite-plugin-html'; 6 | 7 | const proxyPort = 8050; 8 | 9 | // https://vitejs.dev/config/ 10 | export default defineConfig({ 11 | resolve: { 12 | alias: { 13 | vue: 'vue/dist/vue.esm-bundler.js', 14 | }, 15 | }, 16 | plugins: [ 17 | vue(), 18 | ElementPlus({ 19 | // 如果你需要使用全局样式,则设置 importStyle: true 20 | importStyle: true, 21 | }), 22 | createHtmlPlugin({ 23 | minify: true, 24 | pages: [ 25 | { 26 | filename: 'index.html', 27 | template: 'index.html', 28 | injectOptions: { 29 | data: { 30 | title: 'jsonVee 项目模板', 31 | }, 32 | }, 33 | }, 34 | ], 35 | }), 36 | { 37 | name: 'custom-success-message', 38 | apply: 'serve', // 仅在开发服务器启动时应用 39 | configureServer(server) { 40 | server.httpServer.on('listening', () => { 41 | console.log(`客户端启动成功,监听端口:${server.config.server.port}`); 42 | }); 43 | }, 44 | }, 45 | ], 46 | css: { 47 | preprocessorOptions: { 48 | less: { 49 | // 允许在 Less 中使用 JavaScript 表达式(可选,根据需要开启) 50 | javascriptEnabled: true, 51 | }, 52 | }, 53 | }, 54 | build: { 55 | outDir: '../../public', // 将构建输出目录设为 'dist/custom-build' 56 | rollupOptions: { 57 | input: { 58 | // 定义不同的入口 59 | main: './src/main.js', 60 | // 可以定义更多入口 61 | // sub: './src/sub.js', 62 | }, 63 | }, 64 | }, 65 | //这个是新增的本地服务器与proxy代理设置 66 | server: { 67 | open: false, 68 | port: 8086, 69 | https: false, 70 | hotOnly: false, 71 | proxy: { 72 | "/api": { 73 | target: `http://localhost:${proxyPort}`, 74 | changeOrigin: true, //是否跨域 75 | // rewrite: (path) => path.replace(/^\/api/, '/api'), 76 | }, 77 | }, 78 | }, 79 | }) -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # jsonVee 2 | 3 | 一个高效的前后端集成框架,基于Vite、Vue、Webpack和Node.js。一键启动,开箱即用。 4 | 5 | An efficient front-end and back-end integration framework based on Vite, Vue, Webpack, and Node.js. One click start, ready to use out of the box. 6 | 7 | ## 更新 8 | 9 | - 2024-04-18 `重大更新` 10 | 11 | 1. 采用monoRepo框架来重构 12 | 2. 前端在 `packages/client` 中,并采用Vite重构,更快,依赖更简单 13 | 3. 服务端在 `packages/server` 中,升级了express,更高效,更易维护 14 | 15 | - 2022-05-27 16 | 17 | 1. 添加TypeScript支持,并新建typescript分支 18 | 19 | - 2022-04-06 20 | 21 | 1. 添加element-plus支持 22 | 2. 修复已知Bug 23 | 24 | - 2021-11-17 25 | 26 | 1. 升级Webpack,从Webpack4升级到最新的Webpack5 27 | 2. 调整打包逻辑,移除老代码 28 | 3. 更新依赖包,到最新版本 29 | 4. 切换到Vue3.0,欢迎大家尝鲜。 30 | ## 运行与调试 31 | 32 | 1. 安装依赖(也可以安装 lerna 来管理多个包,这里为了方便,直接安装所有包的依赖) 33 | 34 | ```bash 35 | # 在项目根目录运行 36 | 37 | pnpm install 38 | ``` 39 | 2. 安装MongoDB 40 | 41 | - MongoDB 预编译二进制包下载地址:https://www.mongodb.com/download-center/community 42 | 43 | 3. 基本运行项目 44 | 45 | 3.0 一次性启动前后端 46 | ```bash 47 | # 在项目根目录运行 48 | 49 | pnpm start 50 | 51 | ``` 52 | 53 | 3.1 启动服务端 54 | ```bash 55 | cd packages/server 56 | 57 | npm run server 58 | ``` 59 | 3.2 启动前端 60 | ```bash 61 | cd packages/client 62 | 63 | npm run start 64 | ``` 65 | 4. 发布 66 | ```bash 67 | cd packages/client 68 | 69 | npm run build 70 | ``` 71 | 此时会执行webpack的构建,目标文件会放到public目录 72 | 73 | ## 目录 74 | 75 | --- `/project` 76 | -------- `/packages` // monorepo包管理 77 | -------------- `/client ` 78 | -------------------- `/assets ` // 资源文件目录,存放图片、样式、字体等 79 | -------------------- `/common ` // 公共脚本,存放一些工具函数,工具类 80 | -------------------- `/components ` // 存放抽象后的公司Vue组件 81 | -------------------- `/modules ` // 主要页面逻辑以模块的形式分开 82 | -------------------------------- `/home ` // 页面,一个页面一个目录 83 | -------------------------------- `/detail ` // 页面,一个页面一个目录 84 | -------------------- `/main.js ` // 项目中的主函数 85 | -------------------- `/routers.js ` // 项目路由 86 | -------------- `/server ` 87 | -------------------- `/config ` // 服务端的一些配置文件 88 | -------------------- `/handler ` // 处理前端的请求 89 | -------------------- `/middleware ` // 中间件 90 | -------------------- `/mock ` // 本地Mock数据 91 | -------------------- `/router ` // 路由 92 | -------------------- `/service ` // 对Handler的进一步封装 93 | 94 | 95 | ## 关于 96 | 97 | [Vue 3.x 文档](https://v3.cn.vuejs.org/) 98 | 99 | [Node.js 文档](http://nodejs.cn/) 100 | 101 | [Express 框架学习](https://github.com/expressjs/express) 102 | 103 | 104 | ## 注意事项 105 | 106 | 因为是新的版本,所以要求Node.js更新到版本20及以上。可以用Nvm来进行Node.js多版本管理。 -------------------------------------------------------------------------------- /packages/client/src/common/utils/axios_helper.ts: -------------------------------------------------------------------------------- 1 | import axios, { AxiosRequestConfig } from 'axios'; 2 | const createAxiosRequest = Symbol('createAxiosRequest'); 3 | const axiosRequest = Symbol('axiosRequest'); 4 | 5 | axios.interceptors.request.use(function (config) {//请求拦截 6 | if (window.ActiveXObject || 'ActiveXObject' in window) {//兼容IE下加哈西值,每次都重新請求 7 | let params = config.params || {}; 8 | params.hash = Math.random(); 9 | } 10 | return config; 11 | }, function (error) { 12 | return Promise.reject(error); 13 | }); 14 | 15 | axios.interceptors.response.use(function (response) {//响应拦截 16 | /* //未登录就跳转到登录页面 17 | if( (Object.is(response.config.url,url.GET_USERINFO) || Object.is(response.config.url,url.GET_HEADER_DOM)) 18 | && Object.is(response.data.code,constParams.PermissionCode.DENY) ){ 19 | window.location.href = url.LOGOUT; 20 | } */ 21 | return response; 22 | }, function (error) { 23 | return Promise.reject(error); 24 | }); 25 | 26 | const defaultOpts = { 27 | headers: { 28 | 'X-Requested-With': 'XMLHttpRequest', 29 | 'content-type': 'application/json', 30 | }, 31 | timeout: 60 * 1000, 32 | withCredentials: true, 33 | }; 34 | 35 | export default class HttpHelper { 36 | 37 | static get(url: string, params = {}, timeout?: number, callback?: any) { 38 | return this[createAxiosRequest]({ method: 'get', url, params, timeout }, callback); 39 | } 40 | 41 | 42 | static post(url: string, data = {}, timeout?: number, callback?: any) { 43 | return this[createAxiosRequest]({ method: 'post', url, data, timeout }, callback); 44 | } 45 | 46 | static [createAxiosRequest](opts: AxiosRequestConfig, callback: any) { 47 | if (!opts.timeout || (typeof opts.timeout !== 'number')) { 48 | delete opts.timeout; 49 | } 50 | opts = Object.assign({}, defaultOpts, opts); 51 | if (typeof callback === 'function') { 52 | return this[axiosRequest](opts).then(callback()); 53 | } else { 54 | return this[axiosRequest](opts); 55 | } 56 | } 57 | 58 | static [axiosRequest](opts: AxiosRequestConfig) {//私有方法 59 | 60 | return new Promise((resolve, reject) => { 61 | 62 | axios(opts).then(function (response) { 63 | if (response.data.code === 0) { 64 | return resolve(response.data.data); 65 | } else { 66 | return resolve('pageNotFound'); 67 | } 68 | }) 69 | .catch(function (error) { 70 | if (error.response) {//发出了请求并且服务响应了状态码 71 | // console.log(error.response.data); 72 | // console.log(error.response.status); 73 | // console.log(error.response.headers); 74 | return reject(`发出了请求并且服务响应了状态码 : ${error.response.status}`); 75 | } else if (error.request) {//发出了请求但是没有接收到响应 76 | // console.log(error.request); 77 | return reject(`发出了请求但是没有接收到响应 : ${error.request}`); 78 | } else {//在发送请求的时候出现了一些错误 79 | // console.log('Error', error.message); 80 | return reject(`其他异常:${error.message}`); 81 | } 82 | }); 83 | }); 84 | } 85 | } -------------------------------------------------------------------------------- /packages/server/router/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 路由封装,基于 express-validator 组件 https://github.com/ctavan/express-validator 3 | * 其中 express-validator 中封装了validator.js (https://github.com/chriso/validator.js)实现了里面的所有方法 4 | * 组件中一般使用 Check 来校验请求参数,如: 5 | * 6 | * check('page').isInt().not().isEmpty() , 7 | * 8 | * 这一句校验了Page参数,是否是整形、非空(not()方法定义的是下一个调用的取反,也就是isEmpty()的取反,就是非空) 9 | * 10 | * 在Express的回调中用 validationResult 来捕获参数校验中出现的错误,如: 11 | * 12 | * const errors = validationResult(req); 13 | if (!errors.isEmpty()) { 14 | return res.status(422).json({ errors: `参数校验不通过:${JSON.stringify(errors.mapped())}` }); 15 | } 16 | * 17 | * 通过validationResult(req)取到校验的结果,如果没有错,就是 errors.isEmpty() 为True 18 | * 19 | * sanitize也是用于校验请求参数,与Check不同的是,它是把相应的入参转换成合格的值,如: 20 | * 21 | * sanitize('keyword').escape() 22 | * 23 | * 这一句校验了关键字的入参,替换 <, >, &, ', " 和 / 为 HTML entities 24 | * 25 | * 除此之外,还可以自定义参数校验,如: 26 | * 27 | * check('email').custom(value => { 28 | return findUserByEmail(value).then(user => { 29 | throw new Error('this email is already in use'); 30 | }) 31 | }), 32 | * 33 | * 更多详细的Api请参阅上述Git地址。 34 | * 2024-04-18 更新 35 | * 36 | * **/ 37 | 'use strict'; 38 | const fs = require("fs"); 39 | const path = require("path"); 40 | const { validationResult } = require('express-validator'); 41 | 42 | 43 | class BaseRouter{ 44 | 45 | /** 46 | * 拦截请求添加参数校验 47 | * @param {*} app Express上下文 48 | */ 49 | static interceptorHttp(app){ 50 | 51 | const routers = BaseRouter._getRouters(); 52 | 53 | routers.forEach((item,index)=>{ 54 | BaseRouter._dispatchHttp(app,item); 55 | }) 56 | } 57 | 58 | /** 59 | * 分发请求和参数校验规则 60 | * @param {*} app Express上下文 61 | * @param {*} config 路由详情 62 | */ 63 | static _dispatchHttp(app,config){ 64 | let method = config.method || "get"; 65 | app[method](config.path, config.params, (req, res, next) => { 66 | //参数校验,如果有异常就抛出。 67 | const errors = validationResult(req); 68 | if (!errors.isEmpty()) { 69 | return res.status(422).json({ errors: `参数校验不通过:${JSON.stringify(errors.mapped())}` }); 70 | } 71 | if (!config.handler || typeof config.handler !== "function") { 72 | throw new Error("path: " + config.path + " method: " + config.method || "GET " + " handler must be function"); 73 | } 74 | 75 | /* for (const [key, value] of Object.entries(req.query)) {//解码参数 76 | if(typeof req.query[key] === 'string' ){ 77 | req.query[key] = BaseRouter._doHtmlUnEncode(value); 78 | } 79 | } */ 80 | 81 | config.handler(req, res, next); 82 | 83 | }); 84 | } 85 | 86 | static _doHtmlUnEncode(sStr){ 87 | if (sStr == '' || sStr == null || sStr == 'null') { 88 | return sStr; 89 | } else { 90 | sStr = sStr.toString(); 91 | } 92 | sStr = sStr.replace(/&/g,"&"); 93 | sStr = sStr.replace(/>/g,">"); 94 | sStr = sStr.replace(/</g,"<"); 95 | sStr = sStr.replace(/"/g,'"'); 96 | sStr = sStr.replace(/'/g,"'"); 97 | return sStr; 98 | } 99 | 100 | /** 101 | * 得到当前目录下的所有路由 102 | */ 103 | static _getRouters(){ 104 | let routers = []; 105 | const routerPath = "./"; 106 | fs.readdirSync(path.join(__dirname, routerPath)).filter(file => file.indexOf(".") !== 0).forEach(file => { 107 | let router = require(path.join(__dirname, routerPath, file)); 108 | 109 | if (router && router.routers && file !== 'index.js') { 110 | let env = process.env.NODE_ENV; 111 | if (env !== 'local') { 112 | if (file != 'local_router.js') { 113 | routers = routers.concat(router.routers); 114 | } 115 | } else { 116 | routers = routers.concat(router.routers); 117 | } 118 | 119 | } 120 | 121 | }); 122 | return routers; 123 | } 124 | 125 | 126 | } 127 | 128 | module.exports = BaseRouter; -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: {} 10 | 11 | packages/client: 12 | dependencies: 13 | vue: 14 | specifier: 3.4.21 15 | version: 3.4.21 16 | devDependencies: 17 | '@vitejs/plugin-vue': 18 | specifier: 5.0.4 19 | version: 5.0.4(vite@5.4.21(less@4.2.0)(terser@5.30.3))(vue@3.4.21) 20 | axios: 21 | specifier: 1.12.0 22 | version: 1.12.0 23 | element-plus: 24 | specifier: 2.11.0 25 | version: 2.11.0(vue@3.4.21) 26 | less: 27 | specifier: 4.2.0 28 | version: 4.2.0 29 | less-loader: 30 | specifier: 12.2.0 31 | version: 12.2.0(less@4.2.0) 32 | unplugin-element-plus: 33 | specifier: 0.8.0 34 | version: 0.8.0(rollup@4.52.5) 35 | vite: 36 | specifier: 5.4.21 37 | version: 5.4.21(less@4.2.0)(terser@5.30.3) 38 | vite-plugin-html: 39 | specifier: 3.2.2 40 | version: 3.2.2(vite@5.4.21(less@4.2.0)(terser@5.30.3)) 41 | vue-router: 42 | specifier: 4.3.0 43 | version: 4.3.0(vue@3.4.21) 44 | 45 | packages/server: 46 | dependencies: 47 | body-parser: 48 | specifier: 2.2.1 49 | version: 2.2.1 50 | browserslist: 51 | specifier: 4.23.0 52 | version: 4.23.0 53 | compression: 54 | specifier: 1.7.4 55 | version: 1.7.4 56 | cookie-parser: 57 | specifier: 1.4.6 58 | version: 1.4.6 59 | crypto-js: 60 | specifier: 4.2.0 61 | version: 4.2.0 62 | ejs: 63 | specifier: 3.1.10 64 | version: 3.1.10 65 | express: 66 | specifier: 4.19.2 67 | version: 4.19.2 68 | express-session: 69 | specifier: 1.18.0 70 | version: 1.18.0 71 | express-validator: 72 | specifier: 7.0.1 73 | version: 7.0.1 74 | helmet: 75 | specifier: 7.1.0 76 | version: 7.1.0 77 | mongoose: 78 | specifier: 8.9.5 79 | version: 8.9.5 80 | serve-favicon: 81 | specifier: 2.5.0 82 | version: 2.5.0 83 | devDependencies: 84 | nodemon: 85 | specifier: 3.1.10 86 | version: 3.1.10 87 | 88 | packages: 89 | 90 | '@babel/helper-string-parser@7.24.1': 91 | resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} 92 | engines: {node: '>=6.9.0'} 93 | 94 | '@babel/helper-validator-identifier@7.22.20': 95 | resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} 96 | engines: {node: '>=6.9.0'} 97 | 98 | '@babel/parser@7.24.4': 99 | resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} 100 | engines: {node: '>=6.0.0'} 101 | hasBin: true 102 | 103 | '@babel/types@7.24.0': 104 | resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} 105 | engines: {node: '>=6.9.0'} 106 | 107 | '@ctrl/tinycolor@3.6.1': 108 | resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} 109 | engines: {node: '>=10'} 110 | 111 | '@element-plus/icons-vue@2.3.1': 112 | resolution: {integrity: sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==} 113 | peerDependencies: 114 | vue: ^3.2.0 115 | 116 | '@esbuild/aix-ppc64@0.21.5': 117 | resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} 118 | engines: {node: '>=12'} 119 | cpu: [ppc64] 120 | os: [aix] 121 | 122 | '@esbuild/android-arm64@0.21.5': 123 | resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} 124 | engines: {node: '>=12'} 125 | cpu: [arm64] 126 | os: [android] 127 | 128 | '@esbuild/android-arm@0.21.5': 129 | resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} 130 | engines: {node: '>=12'} 131 | cpu: [arm] 132 | os: [android] 133 | 134 | '@esbuild/android-x64@0.21.5': 135 | resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} 136 | engines: {node: '>=12'} 137 | cpu: [x64] 138 | os: [android] 139 | 140 | '@esbuild/darwin-arm64@0.21.5': 141 | resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} 142 | engines: {node: '>=12'} 143 | cpu: [arm64] 144 | os: [darwin] 145 | 146 | '@esbuild/darwin-x64@0.21.5': 147 | resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} 148 | engines: {node: '>=12'} 149 | cpu: [x64] 150 | os: [darwin] 151 | 152 | '@esbuild/freebsd-arm64@0.21.5': 153 | resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} 154 | engines: {node: '>=12'} 155 | cpu: [arm64] 156 | os: [freebsd] 157 | 158 | '@esbuild/freebsd-x64@0.21.5': 159 | resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} 160 | engines: {node: '>=12'} 161 | cpu: [x64] 162 | os: [freebsd] 163 | 164 | '@esbuild/linux-arm64@0.21.5': 165 | resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} 166 | engines: {node: '>=12'} 167 | cpu: [arm64] 168 | os: [linux] 169 | 170 | '@esbuild/linux-arm@0.21.5': 171 | resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} 172 | engines: {node: '>=12'} 173 | cpu: [arm] 174 | os: [linux] 175 | 176 | '@esbuild/linux-ia32@0.21.5': 177 | resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} 178 | engines: {node: '>=12'} 179 | cpu: [ia32] 180 | os: [linux] 181 | 182 | '@esbuild/linux-loong64@0.21.5': 183 | resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} 184 | engines: {node: '>=12'} 185 | cpu: [loong64] 186 | os: [linux] 187 | 188 | '@esbuild/linux-mips64el@0.21.5': 189 | resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} 190 | engines: {node: '>=12'} 191 | cpu: [mips64el] 192 | os: [linux] 193 | 194 | '@esbuild/linux-ppc64@0.21.5': 195 | resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} 196 | engines: {node: '>=12'} 197 | cpu: [ppc64] 198 | os: [linux] 199 | 200 | '@esbuild/linux-riscv64@0.21.5': 201 | resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} 202 | engines: {node: '>=12'} 203 | cpu: [riscv64] 204 | os: [linux] 205 | 206 | '@esbuild/linux-s390x@0.21.5': 207 | resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} 208 | engines: {node: '>=12'} 209 | cpu: [s390x] 210 | os: [linux] 211 | 212 | '@esbuild/linux-x64@0.21.5': 213 | resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} 214 | engines: {node: '>=12'} 215 | cpu: [x64] 216 | os: [linux] 217 | 218 | '@esbuild/netbsd-x64@0.21.5': 219 | resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} 220 | engines: {node: '>=12'} 221 | cpu: [x64] 222 | os: [netbsd] 223 | 224 | '@esbuild/openbsd-x64@0.21.5': 225 | resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} 226 | engines: {node: '>=12'} 227 | cpu: [x64] 228 | os: [openbsd] 229 | 230 | '@esbuild/sunos-x64@0.21.5': 231 | resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} 232 | engines: {node: '>=12'} 233 | cpu: [x64] 234 | os: [sunos] 235 | 236 | '@esbuild/win32-arm64@0.21.5': 237 | resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} 238 | engines: {node: '>=12'} 239 | cpu: [arm64] 240 | os: [win32] 241 | 242 | '@esbuild/win32-ia32@0.21.5': 243 | resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} 244 | engines: {node: '>=12'} 245 | cpu: [ia32] 246 | os: [win32] 247 | 248 | '@esbuild/win32-x64@0.21.5': 249 | resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} 250 | engines: {node: '>=12'} 251 | cpu: [x64] 252 | os: [win32] 253 | 254 | '@floating-ui/core@1.6.0': 255 | resolution: {integrity: sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==} 256 | 257 | '@floating-ui/dom@1.6.3': 258 | resolution: {integrity: sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==} 259 | 260 | '@floating-ui/utils@0.2.1': 261 | resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} 262 | 263 | '@jridgewell/gen-mapping@0.3.5': 264 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 265 | engines: {node: '>=6.0.0'} 266 | 267 | '@jridgewell/resolve-uri@3.1.2': 268 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 269 | engines: {node: '>=6.0.0'} 270 | 271 | '@jridgewell/set-array@1.2.1': 272 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 273 | engines: {node: '>=6.0.0'} 274 | 275 | '@jridgewell/source-map@0.3.6': 276 | resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} 277 | 278 | '@jridgewell/sourcemap-codec@1.4.15': 279 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 280 | 281 | '@jridgewell/trace-mapping@0.3.25': 282 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 283 | 284 | '@mongodb-js/saslprep@1.1.9': 285 | resolution: {integrity: sha512-tVkljjeEaAhCqTzajSdgbQ6gE6f3oneVwa3iXR6csiEwXXOFsiC6Uh9iAjAhXPtqa/XMDHWjjeNH/77m/Yq2dw==} 286 | 287 | '@nodelib/fs.scandir@2.1.5': 288 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 289 | engines: {node: '>= 8'} 290 | 291 | '@nodelib/fs.stat@2.0.5': 292 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 293 | engines: {node: '>= 8'} 294 | 295 | '@nodelib/fs.walk@1.2.8': 296 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 297 | engines: {node: '>= 8'} 298 | 299 | '@rollup/pluginutils@4.2.1': 300 | resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} 301 | engines: {node: '>= 8.0.0'} 302 | 303 | '@rollup/pluginutils@5.1.0': 304 | resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} 305 | engines: {node: '>=14.0.0'} 306 | peerDependencies: 307 | rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 308 | peerDependenciesMeta: 309 | rollup: 310 | optional: true 311 | 312 | '@rollup/rollup-android-arm-eabi@4.52.5': 313 | resolution: {integrity: sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==} 314 | cpu: [arm] 315 | os: [android] 316 | 317 | '@rollup/rollup-android-arm64@4.52.5': 318 | resolution: {integrity: sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==} 319 | cpu: [arm64] 320 | os: [android] 321 | 322 | '@rollup/rollup-darwin-arm64@4.52.5': 323 | resolution: {integrity: sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==} 324 | cpu: [arm64] 325 | os: [darwin] 326 | 327 | '@rollup/rollup-darwin-x64@4.52.5': 328 | resolution: {integrity: sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==} 329 | cpu: [x64] 330 | os: [darwin] 331 | 332 | '@rollup/rollup-freebsd-arm64@4.52.5': 333 | resolution: {integrity: sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==} 334 | cpu: [arm64] 335 | os: [freebsd] 336 | 337 | '@rollup/rollup-freebsd-x64@4.52.5': 338 | resolution: {integrity: sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==} 339 | cpu: [x64] 340 | os: [freebsd] 341 | 342 | '@rollup/rollup-linux-arm-gnueabihf@4.52.5': 343 | resolution: {integrity: sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==} 344 | cpu: [arm] 345 | os: [linux] 346 | 347 | '@rollup/rollup-linux-arm-musleabihf@4.52.5': 348 | resolution: {integrity: sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==} 349 | cpu: [arm] 350 | os: [linux] 351 | 352 | '@rollup/rollup-linux-arm64-gnu@4.52.5': 353 | resolution: {integrity: sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==} 354 | cpu: [arm64] 355 | os: [linux] 356 | 357 | '@rollup/rollup-linux-arm64-musl@4.52.5': 358 | resolution: {integrity: sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==} 359 | cpu: [arm64] 360 | os: [linux] 361 | 362 | '@rollup/rollup-linux-loong64-gnu@4.52.5': 363 | resolution: {integrity: sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==} 364 | cpu: [loong64] 365 | os: [linux] 366 | 367 | '@rollup/rollup-linux-ppc64-gnu@4.52.5': 368 | resolution: {integrity: sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==} 369 | cpu: [ppc64] 370 | os: [linux] 371 | 372 | '@rollup/rollup-linux-riscv64-gnu@4.52.5': 373 | resolution: {integrity: sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==} 374 | cpu: [riscv64] 375 | os: [linux] 376 | 377 | '@rollup/rollup-linux-riscv64-musl@4.52.5': 378 | resolution: {integrity: sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==} 379 | cpu: [riscv64] 380 | os: [linux] 381 | 382 | '@rollup/rollup-linux-s390x-gnu@4.52.5': 383 | resolution: {integrity: sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==} 384 | cpu: [s390x] 385 | os: [linux] 386 | 387 | '@rollup/rollup-linux-x64-gnu@4.52.5': 388 | resolution: {integrity: sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==} 389 | cpu: [x64] 390 | os: [linux] 391 | 392 | '@rollup/rollup-linux-x64-musl@4.52.5': 393 | resolution: {integrity: sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==} 394 | cpu: [x64] 395 | os: [linux] 396 | 397 | '@rollup/rollup-openharmony-arm64@4.52.5': 398 | resolution: {integrity: sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==} 399 | cpu: [arm64] 400 | os: [openharmony] 401 | 402 | '@rollup/rollup-win32-arm64-msvc@4.52.5': 403 | resolution: {integrity: sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==} 404 | cpu: [arm64] 405 | os: [win32] 406 | 407 | '@rollup/rollup-win32-ia32-msvc@4.52.5': 408 | resolution: {integrity: sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==} 409 | cpu: [ia32] 410 | os: [win32] 411 | 412 | '@rollup/rollup-win32-x64-gnu@4.52.5': 413 | resolution: {integrity: sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==} 414 | cpu: [x64] 415 | os: [win32] 416 | 417 | '@rollup/rollup-win32-x64-msvc@4.52.5': 418 | resolution: {integrity: sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==} 419 | cpu: [x64] 420 | os: [win32] 421 | 422 | '@sxzz/popperjs-es@2.11.7': 423 | resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==} 424 | 425 | '@types/estree@1.0.5': 426 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 427 | 428 | '@types/estree@1.0.8': 429 | resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} 430 | 431 | '@types/lodash-es@4.17.12': 432 | resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} 433 | 434 | '@types/lodash@4.17.0': 435 | resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} 436 | 437 | '@types/web-bluetooth@0.0.16': 438 | resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} 439 | 440 | '@types/webidl-conversions@7.0.3': 441 | resolution: {integrity: sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==} 442 | 443 | '@types/whatwg-url@11.0.3': 444 | resolution: {integrity: sha512-z1ELvMijRL1QmU7QuzDkeYXSF2+dXI0ITKoQsIoVKcNBOiK5RMmWy+pYYxJTHFt8vkpZe7UsvRErQwcxZkjoUw==} 445 | 446 | '@vitejs/plugin-vue@5.0.4': 447 | resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} 448 | engines: {node: ^18.0.0 || >=20.0.0} 449 | peerDependencies: 450 | vite: ^5.0.0 451 | vue: ^3.2.25 452 | 453 | '@vue/compiler-core@3.4.21': 454 | resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==} 455 | 456 | '@vue/compiler-dom@3.4.21': 457 | resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==} 458 | 459 | '@vue/compiler-sfc@3.4.21': 460 | resolution: {integrity: sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==} 461 | 462 | '@vue/compiler-ssr@3.4.21': 463 | resolution: {integrity: sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==} 464 | 465 | '@vue/devtools-api@6.6.1': 466 | resolution: {integrity: sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==} 467 | 468 | '@vue/reactivity@3.4.21': 469 | resolution: {integrity: sha512-UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==} 470 | 471 | '@vue/runtime-core@3.4.21': 472 | resolution: {integrity: sha512-pQthsuYzE1XcGZznTKn73G0s14eCJcjaLvp3/DKeYWoFacD9glJoqlNBxt3W2c5S40t6CCcpPf+jG01N3ULyrA==} 473 | 474 | '@vue/runtime-dom@3.4.21': 475 | resolution: {integrity: sha512-gvf+C9cFpevsQxbkRBS1NpU8CqxKw0ebqMvLwcGQrNpx6gqRDodqKqA+A2VZZpQ9RpK2f9yfg8VbW/EpdFUOJw==} 476 | 477 | '@vue/server-renderer@3.4.21': 478 | resolution: {integrity: sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg==} 479 | peerDependencies: 480 | vue: 3.4.21 481 | 482 | '@vue/shared@3.4.21': 483 | resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==} 484 | 485 | '@vueuse/core@9.13.0': 486 | resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==} 487 | 488 | '@vueuse/metadata@9.13.0': 489 | resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==} 490 | 491 | '@vueuse/shared@9.13.0': 492 | resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} 493 | 494 | accepts@1.3.8: 495 | resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} 496 | engines: {node: '>= 0.6'} 497 | 498 | acorn@8.11.3: 499 | resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} 500 | engines: {node: '>=0.4.0'} 501 | hasBin: true 502 | 503 | ansi-styles@4.3.0: 504 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 505 | engines: {node: '>=8'} 506 | 507 | anymatch@3.1.3: 508 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 509 | engines: {node: '>= 8'} 510 | 511 | array-flatten@1.1.1: 512 | resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} 513 | 514 | async-validator@4.2.5: 515 | resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} 516 | 517 | async@3.2.5: 518 | resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} 519 | 520 | asynckit@0.4.0: 521 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 522 | 523 | axios@1.12.0: 524 | resolution: {integrity: sha512-oXTDccv8PcfjZmPGlWsPSwtOJCZ/b6W5jAMCNcfwJbCzDckwG0jrYJFaWH1yvivfCXjVzV/SPDEhMB3Q+DSurg==} 525 | 526 | balanced-match@1.0.2: 527 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 528 | 529 | binary-extensions@2.3.0: 530 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 531 | engines: {node: '>=8'} 532 | 533 | body-parser@1.20.2: 534 | resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} 535 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 536 | 537 | body-parser@2.2.1: 538 | resolution: {integrity: sha512-nfDwkulwiZYQIGwxdy0RUmowMhKcFVcYXUU7m4QlKYim1rUtg83xm2yjZ40QjDuc291AJjjeSc9b++AWHSgSHw==} 539 | engines: {node: '>=18'} 540 | 541 | boolbase@1.0.0: 542 | resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 543 | 544 | brace-expansion@1.1.11: 545 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 546 | 547 | brace-expansion@2.0.1: 548 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 549 | 550 | braces@3.0.2: 551 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 552 | engines: {node: '>=8'} 553 | 554 | browserslist@4.23.0: 555 | resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} 556 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 557 | hasBin: true 558 | 559 | bson@6.10.1: 560 | resolution: {integrity: sha512-P92xmHDQjSKPLHqFxefqMxASNq/aWJMEZugpCjf+AF/pgcUpMMQCg7t7+ewko0/u8AapvF3luf/FoehddEK+sA==} 561 | engines: {node: '>=16.20.1'} 562 | deprecated: a critical bug affecting only useBigInt64=true deserialization usage is fixed in bson@6.10.3 563 | 564 | buffer-from@1.1.2: 565 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 566 | 567 | bytes@3.0.0: 568 | resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} 569 | engines: {node: '>= 0.8'} 570 | 571 | bytes@3.1.2: 572 | resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} 573 | engines: {node: '>= 0.8'} 574 | 575 | call-bind-apply-helpers@1.0.2: 576 | resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} 577 | engines: {node: '>= 0.4'} 578 | 579 | call-bind@1.0.7: 580 | resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} 581 | engines: {node: '>= 0.4'} 582 | 583 | call-bound@1.0.4: 584 | resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} 585 | engines: {node: '>= 0.4'} 586 | 587 | camel-case@4.1.2: 588 | resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} 589 | 590 | caniuse-lite@1.0.30001603: 591 | resolution: {integrity: sha512-iL2iSS0eDILMb9n5yKQoTBim9jMZ0Yrk8g0N9K7UzYyWnfIKzXBZD5ngpM37ZcL/cv0Mli8XtVMRYMQAfFpi5Q==} 592 | 593 | chalk@4.1.2: 594 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 595 | engines: {node: '>=10'} 596 | 597 | chokidar@3.6.0: 598 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 599 | engines: {node: '>= 8.10.0'} 600 | 601 | clean-css@5.3.3: 602 | resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} 603 | engines: {node: '>= 10.0'} 604 | 605 | color-convert@2.0.1: 606 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 607 | engines: {node: '>=7.0.0'} 608 | 609 | color-name@1.1.4: 610 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 611 | 612 | colorette@2.0.20: 613 | resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} 614 | 615 | combined-stream@1.0.8: 616 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 617 | engines: {node: '>= 0.8'} 618 | 619 | commander@2.20.3: 620 | resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} 621 | 622 | commander@8.3.0: 623 | resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} 624 | engines: {node: '>= 12'} 625 | 626 | compressible@2.0.18: 627 | resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} 628 | engines: {node: '>= 0.6'} 629 | 630 | compression@1.7.4: 631 | resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} 632 | engines: {node: '>= 0.8.0'} 633 | 634 | concat-map@0.0.1: 635 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 636 | 637 | connect-history-api-fallback@1.6.0: 638 | resolution: {integrity: sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==} 639 | engines: {node: '>=0.8'} 640 | 641 | consola@2.15.3: 642 | resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} 643 | 644 | content-disposition@0.5.4: 645 | resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} 646 | engines: {node: '>= 0.6'} 647 | 648 | content-type@1.0.5: 649 | resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} 650 | engines: {node: '>= 0.6'} 651 | 652 | cookie-parser@1.4.6: 653 | resolution: {integrity: sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==} 654 | engines: {node: '>= 0.8.0'} 655 | 656 | cookie-signature@1.0.6: 657 | resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} 658 | 659 | cookie-signature@1.0.7: 660 | resolution: {integrity: sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==} 661 | 662 | cookie@0.4.1: 663 | resolution: {integrity: sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==} 664 | engines: {node: '>= 0.6'} 665 | 666 | cookie@0.6.0: 667 | resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} 668 | engines: {node: '>= 0.6'} 669 | 670 | copy-anything@2.0.6: 671 | resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} 672 | 673 | crypto-js@4.2.0: 674 | resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} 675 | 676 | css-select@4.3.0: 677 | resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} 678 | 679 | css-what@6.1.0: 680 | resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} 681 | engines: {node: '>= 6'} 682 | 683 | csstype@3.1.3: 684 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 685 | 686 | dayjs@1.11.18: 687 | resolution: {integrity: sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==} 688 | 689 | debug@2.6.9: 690 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 691 | peerDependencies: 692 | supports-color: '*' 693 | peerDependenciesMeta: 694 | supports-color: 695 | optional: true 696 | 697 | debug@4.3.4: 698 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 699 | engines: {node: '>=6.0'} 700 | peerDependencies: 701 | supports-color: '*' 702 | peerDependenciesMeta: 703 | supports-color: 704 | optional: true 705 | 706 | debug@4.4.3: 707 | resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} 708 | engines: {node: '>=6.0'} 709 | peerDependencies: 710 | supports-color: '*' 711 | peerDependenciesMeta: 712 | supports-color: 713 | optional: true 714 | 715 | define-data-property@1.1.4: 716 | resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} 717 | engines: {node: '>= 0.4'} 718 | 719 | delayed-stream@1.0.0: 720 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 721 | engines: {node: '>=0.4.0'} 722 | 723 | depd@2.0.0: 724 | resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} 725 | engines: {node: '>= 0.8'} 726 | 727 | destroy@1.2.0: 728 | resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} 729 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 730 | 731 | dom-serializer@1.4.1: 732 | resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} 733 | 734 | domelementtype@2.3.0: 735 | resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} 736 | 737 | domhandler@4.3.1: 738 | resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} 739 | engines: {node: '>= 4'} 740 | 741 | domutils@2.8.0: 742 | resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} 743 | 744 | dot-case@3.0.4: 745 | resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} 746 | 747 | dotenv-expand@8.0.3: 748 | resolution: {integrity: sha512-SErOMvge0ZUyWd5B0NXMQlDkN+8r+HhVUsxgOO7IoPDOdDRD2JjExpN6y3KnFR66jsJMwSn1pqIivhU5rcJiNg==} 749 | engines: {node: '>=12'} 750 | 751 | dotenv@16.4.5: 752 | resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} 753 | engines: {node: '>=12'} 754 | 755 | dunder-proto@1.0.1: 756 | resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} 757 | engines: {node: '>= 0.4'} 758 | 759 | ee-first@1.1.1: 760 | resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} 761 | 762 | ejs@3.1.10: 763 | resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} 764 | engines: {node: '>=0.10.0'} 765 | hasBin: true 766 | 767 | electron-to-chromium@1.4.736: 768 | resolution: {integrity: sha512-Rer6wc3ynLelKNM4lOCg7/zPQj8tPOCB2hzD32PX9wd3hgRRi9MxEbmkFCokzcEhRVMiOVLjnL9ig9cefJ+6+Q==} 769 | 770 | element-plus@2.11.0: 771 | resolution: {integrity: sha512-Kdr3knlpEpUTfEDbWIyh+/CvQbeNb+Kig971M+G/QinVcD2BfsUNWo5OCogaF0Nvy/BuBFdZ7KoS+PtpWBzidw==} 772 | peerDependencies: 773 | vue: ^3.2.0 774 | 775 | encodeurl@1.0.2: 776 | resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} 777 | engines: {node: '>= 0.8'} 778 | 779 | entities@2.2.0: 780 | resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} 781 | 782 | entities@4.5.0: 783 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 784 | engines: {node: '>=0.12'} 785 | 786 | errno@0.1.8: 787 | resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} 788 | hasBin: true 789 | 790 | es-define-property@1.0.0: 791 | resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} 792 | engines: {node: '>= 0.4'} 793 | 794 | es-define-property@1.0.1: 795 | resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} 796 | engines: {node: '>= 0.4'} 797 | 798 | es-errors@1.3.0: 799 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 800 | engines: {node: '>= 0.4'} 801 | 802 | es-module-lexer@1.5.0: 803 | resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} 804 | 805 | es-object-atoms@1.1.1: 806 | resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} 807 | engines: {node: '>= 0.4'} 808 | 809 | es-set-tostringtag@2.1.0: 810 | resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} 811 | engines: {node: '>= 0.4'} 812 | 813 | esbuild@0.21.5: 814 | resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} 815 | engines: {node: '>=12'} 816 | hasBin: true 817 | 818 | escalade@3.1.2: 819 | resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} 820 | engines: {node: '>=6'} 821 | 822 | escape-html@1.0.3: 823 | resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} 824 | 825 | estree-walker@2.0.2: 826 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 827 | 828 | etag@1.8.1: 829 | resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} 830 | engines: {node: '>= 0.6'} 831 | 832 | express-session@1.18.0: 833 | resolution: {integrity: sha512-m93QLWr0ju+rOwApSsyso838LQwgfs44QtOP/WBiwtAgPIo/SAh1a5c6nn2BR6mFNZehTpqKDESzP+fRHVbxwQ==} 834 | engines: {node: '>= 0.8.0'} 835 | 836 | express-validator@7.0.1: 837 | resolution: {integrity: sha512-oB+z9QOzQIE8FnlINqyIFA8eIckahC6qc8KtqLdLJcU3/phVyuhXH3bA4qzcrhme+1RYaCSwrq+TlZ/kAKIARA==} 838 | engines: {node: '>= 8.0.0'} 839 | 840 | express@4.19.2: 841 | resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} 842 | engines: {node: '>= 0.10.0'} 843 | 844 | fast-glob@3.3.2: 845 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 846 | engines: {node: '>=8.6.0'} 847 | 848 | fastq@1.17.1: 849 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 850 | 851 | filelist@1.0.4: 852 | resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} 853 | 854 | fill-range@7.0.1: 855 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 856 | engines: {node: '>=8'} 857 | 858 | finalhandler@1.2.0: 859 | resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} 860 | engines: {node: '>= 0.8'} 861 | 862 | follow-redirects@1.15.9: 863 | resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} 864 | engines: {node: '>=4.0'} 865 | peerDependencies: 866 | debug: '*' 867 | peerDependenciesMeta: 868 | debug: 869 | optional: true 870 | 871 | form-data@4.0.4: 872 | resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} 873 | engines: {node: '>= 6'} 874 | 875 | forwarded@0.2.0: 876 | resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} 877 | engines: {node: '>= 0.6'} 878 | 879 | fresh@0.5.2: 880 | resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} 881 | engines: {node: '>= 0.6'} 882 | 883 | fs-extra@10.1.0: 884 | resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} 885 | engines: {node: '>=12'} 886 | 887 | fsevents@2.3.3: 888 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 889 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 890 | os: [darwin] 891 | 892 | function-bind@1.1.2: 893 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 894 | 895 | get-intrinsic@1.2.4: 896 | resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} 897 | engines: {node: '>= 0.4'} 898 | 899 | get-intrinsic@1.3.0: 900 | resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} 901 | engines: {node: '>= 0.4'} 902 | 903 | get-proto@1.0.1: 904 | resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} 905 | engines: {node: '>= 0.4'} 906 | 907 | glob-parent@5.1.2: 908 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 909 | engines: {node: '>= 6'} 910 | 911 | gopd@1.2.0: 912 | resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} 913 | engines: {node: '>= 0.4'} 914 | 915 | graceful-fs@4.2.11: 916 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 917 | 918 | has-flag@3.0.0: 919 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 920 | engines: {node: '>=4'} 921 | 922 | has-flag@4.0.0: 923 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 924 | engines: {node: '>=8'} 925 | 926 | has-property-descriptors@1.0.2: 927 | resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} 928 | 929 | has-proto@1.0.3: 930 | resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} 931 | engines: {node: '>= 0.4'} 932 | 933 | has-symbols@1.0.3: 934 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 935 | engines: {node: '>= 0.4'} 936 | 937 | has-symbols@1.1.0: 938 | resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} 939 | engines: {node: '>= 0.4'} 940 | 941 | has-tostringtag@1.0.2: 942 | resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} 943 | engines: {node: '>= 0.4'} 944 | 945 | hasown@2.0.2: 946 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 947 | engines: {node: '>= 0.4'} 948 | 949 | he@1.2.0: 950 | resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} 951 | hasBin: true 952 | 953 | helmet@7.1.0: 954 | resolution: {integrity: sha512-g+HZqgfbpXdCkme/Cd/mZkV0aV3BZZZSugecH03kl38m/Kmdx8jKjBikpDj2cr+Iynv4KpYEviojNdTJActJAg==} 955 | engines: {node: '>=16.0.0'} 956 | 957 | html-minifier-terser@6.1.0: 958 | resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} 959 | engines: {node: '>=12'} 960 | hasBin: true 961 | 962 | http-errors@2.0.0: 963 | resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} 964 | engines: {node: '>= 0.8'} 965 | 966 | http-errors@2.0.1: 967 | resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} 968 | engines: {node: '>= 0.8'} 969 | 970 | iconv-lite@0.4.24: 971 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} 972 | engines: {node: '>=0.10.0'} 973 | 974 | iconv-lite@0.6.3: 975 | resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} 976 | engines: {node: '>=0.10.0'} 977 | 978 | iconv-lite@0.7.0: 979 | resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==} 980 | engines: {node: '>=0.10.0'} 981 | 982 | ignore-by-default@1.0.1: 983 | resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} 984 | 985 | image-size@0.5.5: 986 | resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} 987 | engines: {node: '>=0.10.0'} 988 | hasBin: true 989 | 990 | inherits@2.0.4: 991 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 992 | 993 | ipaddr.js@1.9.1: 994 | resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} 995 | engines: {node: '>= 0.10'} 996 | 997 | is-binary-path@2.1.0: 998 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 999 | engines: {node: '>=8'} 1000 | 1001 | is-extglob@2.1.1: 1002 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1003 | engines: {node: '>=0.10.0'} 1004 | 1005 | is-glob@4.0.3: 1006 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1007 | engines: {node: '>=0.10.0'} 1008 | 1009 | is-number@7.0.0: 1010 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1011 | engines: {node: '>=0.12.0'} 1012 | 1013 | is-what@3.14.1: 1014 | resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} 1015 | 1016 | jake@10.8.7: 1017 | resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} 1018 | engines: {node: '>=10'} 1019 | hasBin: true 1020 | 1021 | jsonfile@6.1.0: 1022 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} 1023 | 1024 | kareem@2.6.3: 1025 | resolution: {integrity: sha512-C3iHfuGUXK2u8/ipq9LfjFfXFxAZMQJJq7vLS45r3D9Y2xQ/m4S8zaR4zMLFWh9AsNPXmcFfUDhTEO8UIC/V6Q==} 1026 | engines: {node: '>=12.0.0'} 1027 | 1028 | less-loader@12.2.0: 1029 | resolution: {integrity: sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==} 1030 | engines: {node: '>= 18.12.0'} 1031 | peerDependencies: 1032 | '@rspack/core': 0.x || 1.x 1033 | less: ^3.5.0 || ^4.0.0 1034 | webpack: ^5.0.0 1035 | peerDependenciesMeta: 1036 | '@rspack/core': 1037 | optional: true 1038 | webpack: 1039 | optional: true 1040 | 1041 | less@4.2.0: 1042 | resolution: {integrity: sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==} 1043 | engines: {node: '>=6'} 1044 | hasBin: true 1045 | 1046 | lodash-es@4.17.21: 1047 | resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} 1048 | 1049 | lodash-unified@1.0.3: 1050 | resolution: {integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==} 1051 | peerDependencies: 1052 | '@types/lodash-es': '*' 1053 | lodash: '*' 1054 | lodash-es: '*' 1055 | 1056 | lodash@4.17.21: 1057 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1058 | 1059 | lower-case@2.0.2: 1060 | resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} 1061 | 1062 | magic-string@0.30.9: 1063 | resolution: {integrity: sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==} 1064 | engines: {node: '>=12'} 1065 | 1066 | make-dir@2.1.0: 1067 | resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} 1068 | engines: {node: '>=6'} 1069 | 1070 | math-intrinsics@1.1.0: 1071 | resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} 1072 | engines: {node: '>= 0.4'} 1073 | 1074 | media-typer@0.3.0: 1075 | resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} 1076 | engines: {node: '>= 0.6'} 1077 | 1078 | media-typer@1.1.0: 1079 | resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} 1080 | engines: {node: '>= 0.8'} 1081 | 1082 | memoize-one@6.0.0: 1083 | resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} 1084 | 1085 | memory-pager@1.5.0: 1086 | resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==} 1087 | 1088 | merge-descriptors@1.0.1: 1089 | resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} 1090 | 1091 | merge2@1.4.1: 1092 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1093 | engines: {node: '>= 8'} 1094 | 1095 | methods@1.1.2: 1096 | resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} 1097 | engines: {node: '>= 0.6'} 1098 | 1099 | micromatch@4.0.5: 1100 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1101 | engines: {node: '>=8.6'} 1102 | 1103 | mime-db@1.52.0: 1104 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1105 | engines: {node: '>= 0.6'} 1106 | 1107 | mime-db@1.54.0: 1108 | resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} 1109 | engines: {node: '>= 0.6'} 1110 | 1111 | mime-types@2.1.35: 1112 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1113 | engines: {node: '>= 0.6'} 1114 | 1115 | mime-types@3.0.2: 1116 | resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} 1117 | engines: {node: '>=18'} 1118 | 1119 | mime@1.6.0: 1120 | resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} 1121 | engines: {node: '>=4'} 1122 | hasBin: true 1123 | 1124 | minimatch@3.1.2: 1125 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1126 | 1127 | minimatch@5.1.6: 1128 | resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} 1129 | engines: {node: '>=10'} 1130 | 1131 | mongodb-connection-string-url@3.0.0: 1132 | resolution: {integrity: sha512-t1Vf+m1I5hC2M5RJx/7AtxgABy1cZmIPQRMXw+gEIPn/cZNF3Oiy+l0UIypUwVB5trcWHq3crg2g3uAR9aAwsQ==} 1133 | 1134 | mongodb@6.12.0: 1135 | resolution: {integrity: sha512-RM7AHlvYfS7jv7+BXund/kR64DryVI+cHbVAy9P61fnb1RcWZqOW1/Wj2YhqMCx+MuYhqTRGv7AwHBzmsCKBfA==} 1136 | engines: {node: '>=16.20.1'} 1137 | peerDependencies: 1138 | '@aws-sdk/credential-providers': ^3.188.0 1139 | '@mongodb-js/zstd': ^1.1.0 || ^2.0.0 1140 | gcp-metadata: ^5.2.0 1141 | kerberos: ^2.0.1 1142 | mongodb-client-encryption: '>=6.0.0 <7' 1143 | snappy: ^7.2.2 1144 | socks: ^2.7.1 1145 | peerDependenciesMeta: 1146 | '@aws-sdk/credential-providers': 1147 | optional: true 1148 | '@mongodb-js/zstd': 1149 | optional: true 1150 | gcp-metadata: 1151 | optional: true 1152 | kerberos: 1153 | optional: true 1154 | mongodb-client-encryption: 1155 | optional: true 1156 | snappy: 1157 | optional: true 1158 | socks: 1159 | optional: true 1160 | 1161 | mongoose@8.9.5: 1162 | resolution: {integrity: sha512-SPhOrgBm0nKV3b+IIHGqpUTOmgVL5Z3OO9AwkFEmvOZznXTvplbomstCnPOGAyungtRXE5pJTgKpKcZTdjeESg==} 1163 | engines: {node: '>=16.20.1'} 1164 | 1165 | mpath@0.9.0: 1166 | resolution: {integrity: sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==} 1167 | engines: {node: '>=4.0.0'} 1168 | 1169 | mquery@5.0.0: 1170 | resolution: {integrity: sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==} 1171 | engines: {node: '>=14.0.0'} 1172 | 1173 | ms@2.0.0: 1174 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} 1175 | 1176 | ms@2.1.1: 1177 | resolution: {integrity: sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==} 1178 | 1179 | ms@2.1.2: 1180 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1181 | 1182 | ms@2.1.3: 1183 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1184 | 1185 | nanoid@3.3.11: 1186 | resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} 1187 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1188 | hasBin: true 1189 | 1190 | nanoid@3.3.7: 1191 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 1192 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1193 | hasBin: true 1194 | 1195 | needle@3.3.1: 1196 | resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==} 1197 | engines: {node: '>= 4.4.x'} 1198 | hasBin: true 1199 | 1200 | negotiator@0.6.3: 1201 | resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} 1202 | engines: {node: '>= 0.6'} 1203 | 1204 | no-case@3.0.4: 1205 | resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} 1206 | 1207 | node-html-parser@5.4.2: 1208 | resolution: {integrity: sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==} 1209 | 1210 | node-releases@2.0.14: 1211 | resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} 1212 | 1213 | nodemon@3.1.10: 1214 | resolution: {integrity: sha512-WDjw3pJ0/0jMFmyNDp3gvY2YizjLmmOUQo6DEBY+JgdvW/yQ9mEeSw6H5ythl5Ny2ytb7f9C2nIbjSxMNzbJXw==} 1215 | engines: {node: '>=10'} 1216 | hasBin: true 1217 | 1218 | normalize-path@3.0.0: 1219 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1220 | engines: {node: '>=0.10.0'} 1221 | 1222 | normalize-wheel-es@1.2.0: 1223 | resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==} 1224 | 1225 | nth-check@2.1.1: 1226 | resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} 1227 | 1228 | object-inspect@1.13.1: 1229 | resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} 1230 | 1231 | object-inspect@1.13.4: 1232 | resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} 1233 | engines: {node: '>= 0.4'} 1234 | 1235 | on-finished@2.4.1: 1236 | resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} 1237 | engines: {node: '>= 0.8'} 1238 | 1239 | on-headers@1.0.2: 1240 | resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} 1241 | engines: {node: '>= 0.8'} 1242 | 1243 | param-case@3.0.4: 1244 | resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} 1245 | 1246 | parse-node-version@1.0.1: 1247 | resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} 1248 | engines: {node: '>= 0.10'} 1249 | 1250 | parseurl@1.3.3: 1251 | resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} 1252 | engines: {node: '>= 0.8'} 1253 | 1254 | pascal-case@3.1.2: 1255 | resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} 1256 | 1257 | path-to-regexp@0.1.7: 1258 | resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} 1259 | 1260 | pathe@0.2.0: 1261 | resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} 1262 | 1263 | picocolors@1.0.0: 1264 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 1265 | 1266 | picocolors@1.1.1: 1267 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1268 | 1269 | picomatch@2.3.1: 1270 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1271 | engines: {node: '>=8.6'} 1272 | 1273 | pify@4.0.1: 1274 | resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} 1275 | engines: {node: '>=6'} 1276 | 1277 | postcss@8.4.38: 1278 | resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} 1279 | engines: {node: ^10 || ^12 || >=14} 1280 | 1281 | postcss@8.5.6: 1282 | resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} 1283 | engines: {node: ^10 || ^12 || >=14} 1284 | 1285 | proxy-addr@2.0.7: 1286 | resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} 1287 | engines: {node: '>= 0.10'} 1288 | 1289 | proxy-from-env@1.1.0: 1290 | resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} 1291 | 1292 | prr@1.0.1: 1293 | resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} 1294 | 1295 | pstree.remy@1.1.8: 1296 | resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} 1297 | 1298 | punycode@2.3.1: 1299 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1300 | engines: {node: '>=6'} 1301 | 1302 | qs@6.11.0: 1303 | resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} 1304 | engines: {node: '>=0.6'} 1305 | 1306 | qs@6.14.0: 1307 | resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} 1308 | engines: {node: '>=0.6'} 1309 | 1310 | queue-microtask@1.2.3: 1311 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1312 | 1313 | random-bytes@1.0.0: 1314 | resolution: {integrity: sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==} 1315 | engines: {node: '>= 0.8'} 1316 | 1317 | range-parser@1.2.1: 1318 | resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} 1319 | engines: {node: '>= 0.6'} 1320 | 1321 | raw-body@2.5.2: 1322 | resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} 1323 | engines: {node: '>= 0.8'} 1324 | 1325 | raw-body@3.0.2: 1326 | resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==} 1327 | engines: {node: '>= 0.10'} 1328 | 1329 | readdirp@3.6.0: 1330 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1331 | engines: {node: '>=8.10.0'} 1332 | 1333 | relateurl@0.2.7: 1334 | resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} 1335 | engines: {node: '>= 0.10'} 1336 | 1337 | reusify@1.0.4: 1338 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1339 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1340 | 1341 | rollup@4.52.5: 1342 | resolution: {integrity: sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==} 1343 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1344 | hasBin: true 1345 | 1346 | run-parallel@1.2.0: 1347 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1348 | 1349 | safe-buffer@5.1.1: 1350 | resolution: {integrity: sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==} 1351 | 1352 | safe-buffer@5.1.2: 1353 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 1354 | 1355 | safe-buffer@5.2.1: 1356 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1357 | 1358 | safer-buffer@2.1.2: 1359 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1360 | 1361 | sax@1.3.0: 1362 | resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} 1363 | 1364 | semver@5.7.2: 1365 | resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} 1366 | hasBin: true 1367 | 1368 | semver@7.7.3: 1369 | resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} 1370 | engines: {node: '>=10'} 1371 | hasBin: true 1372 | 1373 | send@0.18.0: 1374 | resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} 1375 | engines: {node: '>= 0.8.0'} 1376 | 1377 | serve-favicon@2.5.0: 1378 | resolution: {integrity: sha512-FMW2RvqNr03x+C0WxTyu6sOv21oOjkq5j8tjquWccwa6ScNyGFOGJVpuS1NmTVGBAHS07xnSKotgf2ehQmf9iA==} 1379 | engines: {node: '>= 0.8.0'} 1380 | 1381 | serve-static@1.15.0: 1382 | resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} 1383 | engines: {node: '>= 0.8.0'} 1384 | 1385 | set-function-length@1.2.2: 1386 | resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} 1387 | engines: {node: '>= 0.4'} 1388 | 1389 | setprototypeof@1.2.0: 1390 | resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} 1391 | 1392 | side-channel-list@1.0.0: 1393 | resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} 1394 | engines: {node: '>= 0.4'} 1395 | 1396 | side-channel-map@1.0.1: 1397 | resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} 1398 | engines: {node: '>= 0.4'} 1399 | 1400 | side-channel-weakmap@1.0.2: 1401 | resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} 1402 | engines: {node: '>= 0.4'} 1403 | 1404 | side-channel@1.0.6: 1405 | resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} 1406 | engines: {node: '>= 0.4'} 1407 | 1408 | side-channel@1.1.0: 1409 | resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} 1410 | engines: {node: '>= 0.4'} 1411 | 1412 | sift@17.1.3: 1413 | resolution: {integrity: sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ==} 1414 | 1415 | simple-update-notifier@2.0.0: 1416 | resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} 1417 | engines: {node: '>=10'} 1418 | 1419 | source-map-js@1.2.0: 1420 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} 1421 | engines: {node: '>=0.10.0'} 1422 | 1423 | source-map-js@1.2.1: 1424 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1425 | engines: {node: '>=0.10.0'} 1426 | 1427 | source-map-support@0.5.21: 1428 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 1429 | 1430 | source-map@0.6.1: 1431 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1432 | engines: {node: '>=0.10.0'} 1433 | 1434 | sparse-bitfield@3.0.3: 1435 | resolution: {integrity: sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==} 1436 | 1437 | statuses@2.0.1: 1438 | resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} 1439 | engines: {node: '>= 0.8'} 1440 | 1441 | statuses@2.0.2: 1442 | resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} 1443 | engines: {node: '>= 0.8'} 1444 | 1445 | supports-color@5.5.0: 1446 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 1447 | engines: {node: '>=4'} 1448 | 1449 | supports-color@7.2.0: 1450 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1451 | engines: {node: '>=8'} 1452 | 1453 | terser@5.30.3: 1454 | resolution: {integrity: sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA==} 1455 | engines: {node: '>=10'} 1456 | hasBin: true 1457 | 1458 | to-fast-properties@2.0.0: 1459 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 1460 | engines: {node: '>=4'} 1461 | 1462 | to-regex-range@5.0.1: 1463 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1464 | engines: {node: '>=8.0'} 1465 | 1466 | toidentifier@1.0.1: 1467 | resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} 1468 | engines: {node: '>=0.6'} 1469 | 1470 | touch@3.1.1: 1471 | resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} 1472 | hasBin: true 1473 | 1474 | tr46@4.1.1: 1475 | resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} 1476 | engines: {node: '>=14'} 1477 | 1478 | tslib@2.6.2: 1479 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 1480 | 1481 | type-is@1.6.18: 1482 | resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} 1483 | engines: {node: '>= 0.6'} 1484 | 1485 | type-is@2.0.1: 1486 | resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} 1487 | engines: {node: '>= 0.6'} 1488 | 1489 | uid-safe@2.1.5: 1490 | resolution: {integrity: sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==} 1491 | engines: {node: '>= 0.8'} 1492 | 1493 | undefsafe@2.0.5: 1494 | resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} 1495 | 1496 | universalify@2.0.1: 1497 | resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} 1498 | engines: {node: '>= 10.0.0'} 1499 | 1500 | unpipe@1.0.0: 1501 | resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} 1502 | engines: {node: '>= 0.8'} 1503 | 1504 | unplugin-element-plus@0.8.0: 1505 | resolution: {integrity: sha512-jByUGY3FG2B8RJKFryqxx4eNtSTj+Hjlo8edcOdJymewndDQjThZ1pRUQHRjQsbKhTV2jEctJV7t7RJ405UL4g==} 1506 | engines: {node: '>=14.19.0'} 1507 | 1508 | unplugin@1.10.1: 1509 | resolution: {integrity: sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg==} 1510 | engines: {node: '>=14.0.0'} 1511 | 1512 | update-browserslist-db@1.0.13: 1513 | resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} 1514 | hasBin: true 1515 | peerDependencies: 1516 | browserslist: '>= 4.21.0' 1517 | 1518 | utils-merge@1.0.1: 1519 | resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} 1520 | engines: {node: '>= 0.4.0'} 1521 | 1522 | validator@13.11.0: 1523 | resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==} 1524 | engines: {node: '>= 0.10'} 1525 | 1526 | vary@1.1.2: 1527 | resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} 1528 | engines: {node: '>= 0.8'} 1529 | 1530 | vite-plugin-html@3.2.2: 1531 | resolution: {integrity: sha512-vb9C9kcdzcIo/Oc3CLZVS03dL5pDlOFuhGlZYDCJ840BhWl/0nGeZWf3Qy7NlOayscY4Cm/QRgULCQkEZige5Q==} 1532 | peerDependencies: 1533 | vite: '>=2.0.0' 1534 | 1535 | vite@5.4.21: 1536 | resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==} 1537 | engines: {node: ^18.0.0 || >=20.0.0} 1538 | hasBin: true 1539 | peerDependencies: 1540 | '@types/node': ^18.0.0 || >=20.0.0 1541 | less: '*' 1542 | lightningcss: ^1.21.0 1543 | sass: '*' 1544 | sass-embedded: '*' 1545 | stylus: '*' 1546 | sugarss: '*' 1547 | terser: ^5.4.0 1548 | peerDependenciesMeta: 1549 | '@types/node': 1550 | optional: true 1551 | less: 1552 | optional: true 1553 | lightningcss: 1554 | optional: true 1555 | sass: 1556 | optional: true 1557 | sass-embedded: 1558 | optional: true 1559 | stylus: 1560 | optional: true 1561 | sugarss: 1562 | optional: true 1563 | terser: 1564 | optional: true 1565 | 1566 | vue-demi@0.14.7: 1567 | resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} 1568 | engines: {node: '>=12'} 1569 | hasBin: true 1570 | peerDependencies: 1571 | '@vue/composition-api': ^1.0.0-rc.1 1572 | vue: ^3.0.0-0 || ^2.6.0 1573 | peerDependenciesMeta: 1574 | '@vue/composition-api': 1575 | optional: true 1576 | 1577 | vue-router@4.3.0: 1578 | resolution: {integrity: sha512-dqUcs8tUeG+ssgWhcPbjHvazML16Oga5w34uCUmsk7i0BcnskoLGwjpa15fqMr2Fa5JgVBrdL2MEgqz6XZ/6IQ==} 1579 | peerDependencies: 1580 | vue: ^3.2.0 1581 | 1582 | vue@3.4.21: 1583 | resolution: {integrity: sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==} 1584 | peerDependencies: 1585 | typescript: '*' 1586 | peerDependenciesMeta: 1587 | typescript: 1588 | optional: true 1589 | 1590 | webidl-conversions@7.0.0: 1591 | resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} 1592 | engines: {node: '>=12'} 1593 | 1594 | webpack-sources@3.2.3: 1595 | resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} 1596 | engines: {node: '>=10.13.0'} 1597 | 1598 | webpack-virtual-modules@0.6.1: 1599 | resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} 1600 | 1601 | whatwg-url@13.0.0: 1602 | resolution: {integrity: sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==} 1603 | engines: {node: '>=16'} 1604 | 1605 | snapshots: 1606 | 1607 | '@babel/helper-string-parser@7.24.1': {} 1608 | 1609 | '@babel/helper-validator-identifier@7.22.20': {} 1610 | 1611 | '@babel/parser@7.24.4': 1612 | dependencies: 1613 | '@babel/types': 7.24.0 1614 | 1615 | '@babel/types@7.24.0': 1616 | dependencies: 1617 | '@babel/helper-string-parser': 7.24.1 1618 | '@babel/helper-validator-identifier': 7.22.20 1619 | to-fast-properties: 2.0.0 1620 | 1621 | '@ctrl/tinycolor@3.6.1': {} 1622 | 1623 | '@element-plus/icons-vue@2.3.1(vue@3.4.21)': 1624 | dependencies: 1625 | vue: 3.4.21 1626 | 1627 | '@esbuild/aix-ppc64@0.21.5': 1628 | optional: true 1629 | 1630 | '@esbuild/android-arm64@0.21.5': 1631 | optional: true 1632 | 1633 | '@esbuild/android-arm@0.21.5': 1634 | optional: true 1635 | 1636 | '@esbuild/android-x64@0.21.5': 1637 | optional: true 1638 | 1639 | '@esbuild/darwin-arm64@0.21.5': 1640 | optional: true 1641 | 1642 | '@esbuild/darwin-x64@0.21.5': 1643 | optional: true 1644 | 1645 | '@esbuild/freebsd-arm64@0.21.5': 1646 | optional: true 1647 | 1648 | '@esbuild/freebsd-x64@0.21.5': 1649 | optional: true 1650 | 1651 | '@esbuild/linux-arm64@0.21.5': 1652 | optional: true 1653 | 1654 | '@esbuild/linux-arm@0.21.5': 1655 | optional: true 1656 | 1657 | '@esbuild/linux-ia32@0.21.5': 1658 | optional: true 1659 | 1660 | '@esbuild/linux-loong64@0.21.5': 1661 | optional: true 1662 | 1663 | '@esbuild/linux-mips64el@0.21.5': 1664 | optional: true 1665 | 1666 | '@esbuild/linux-ppc64@0.21.5': 1667 | optional: true 1668 | 1669 | '@esbuild/linux-riscv64@0.21.5': 1670 | optional: true 1671 | 1672 | '@esbuild/linux-s390x@0.21.5': 1673 | optional: true 1674 | 1675 | '@esbuild/linux-x64@0.21.5': 1676 | optional: true 1677 | 1678 | '@esbuild/netbsd-x64@0.21.5': 1679 | optional: true 1680 | 1681 | '@esbuild/openbsd-x64@0.21.5': 1682 | optional: true 1683 | 1684 | '@esbuild/sunos-x64@0.21.5': 1685 | optional: true 1686 | 1687 | '@esbuild/win32-arm64@0.21.5': 1688 | optional: true 1689 | 1690 | '@esbuild/win32-ia32@0.21.5': 1691 | optional: true 1692 | 1693 | '@esbuild/win32-x64@0.21.5': 1694 | optional: true 1695 | 1696 | '@floating-ui/core@1.6.0': 1697 | dependencies: 1698 | '@floating-ui/utils': 0.2.1 1699 | 1700 | '@floating-ui/dom@1.6.3': 1701 | dependencies: 1702 | '@floating-ui/core': 1.6.0 1703 | '@floating-ui/utils': 0.2.1 1704 | 1705 | '@floating-ui/utils@0.2.1': {} 1706 | 1707 | '@jridgewell/gen-mapping@0.3.5': 1708 | dependencies: 1709 | '@jridgewell/set-array': 1.2.1 1710 | '@jridgewell/sourcemap-codec': 1.4.15 1711 | '@jridgewell/trace-mapping': 0.3.25 1712 | 1713 | '@jridgewell/resolve-uri@3.1.2': {} 1714 | 1715 | '@jridgewell/set-array@1.2.1': {} 1716 | 1717 | '@jridgewell/source-map@0.3.6': 1718 | dependencies: 1719 | '@jridgewell/gen-mapping': 0.3.5 1720 | '@jridgewell/trace-mapping': 0.3.25 1721 | 1722 | '@jridgewell/sourcemap-codec@1.4.15': {} 1723 | 1724 | '@jridgewell/trace-mapping@0.3.25': 1725 | dependencies: 1726 | '@jridgewell/resolve-uri': 3.1.2 1727 | '@jridgewell/sourcemap-codec': 1.4.15 1728 | 1729 | '@mongodb-js/saslprep@1.1.9': 1730 | dependencies: 1731 | sparse-bitfield: 3.0.3 1732 | 1733 | '@nodelib/fs.scandir@2.1.5': 1734 | dependencies: 1735 | '@nodelib/fs.stat': 2.0.5 1736 | run-parallel: 1.2.0 1737 | 1738 | '@nodelib/fs.stat@2.0.5': {} 1739 | 1740 | '@nodelib/fs.walk@1.2.8': 1741 | dependencies: 1742 | '@nodelib/fs.scandir': 2.1.5 1743 | fastq: 1.17.1 1744 | 1745 | '@rollup/pluginutils@4.2.1': 1746 | dependencies: 1747 | estree-walker: 2.0.2 1748 | picomatch: 2.3.1 1749 | 1750 | '@rollup/pluginutils@5.1.0(rollup@4.52.5)': 1751 | dependencies: 1752 | '@types/estree': 1.0.5 1753 | estree-walker: 2.0.2 1754 | picomatch: 2.3.1 1755 | optionalDependencies: 1756 | rollup: 4.52.5 1757 | 1758 | '@rollup/rollup-android-arm-eabi@4.52.5': 1759 | optional: true 1760 | 1761 | '@rollup/rollup-android-arm64@4.52.5': 1762 | optional: true 1763 | 1764 | '@rollup/rollup-darwin-arm64@4.52.5': 1765 | optional: true 1766 | 1767 | '@rollup/rollup-darwin-x64@4.52.5': 1768 | optional: true 1769 | 1770 | '@rollup/rollup-freebsd-arm64@4.52.5': 1771 | optional: true 1772 | 1773 | '@rollup/rollup-freebsd-x64@4.52.5': 1774 | optional: true 1775 | 1776 | '@rollup/rollup-linux-arm-gnueabihf@4.52.5': 1777 | optional: true 1778 | 1779 | '@rollup/rollup-linux-arm-musleabihf@4.52.5': 1780 | optional: true 1781 | 1782 | '@rollup/rollup-linux-arm64-gnu@4.52.5': 1783 | optional: true 1784 | 1785 | '@rollup/rollup-linux-arm64-musl@4.52.5': 1786 | optional: true 1787 | 1788 | '@rollup/rollup-linux-loong64-gnu@4.52.5': 1789 | optional: true 1790 | 1791 | '@rollup/rollup-linux-ppc64-gnu@4.52.5': 1792 | optional: true 1793 | 1794 | '@rollup/rollup-linux-riscv64-gnu@4.52.5': 1795 | optional: true 1796 | 1797 | '@rollup/rollup-linux-riscv64-musl@4.52.5': 1798 | optional: true 1799 | 1800 | '@rollup/rollup-linux-s390x-gnu@4.52.5': 1801 | optional: true 1802 | 1803 | '@rollup/rollup-linux-x64-gnu@4.52.5': 1804 | optional: true 1805 | 1806 | '@rollup/rollup-linux-x64-musl@4.52.5': 1807 | optional: true 1808 | 1809 | '@rollup/rollup-openharmony-arm64@4.52.5': 1810 | optional: true 1811 | 1812 | '@rollup/rollup-win32-arm64-msvc@4.52.5': 1813 | optional: true 1814 | 1815 | '@rollup/rollup-win32-ia32-msvc@4.52.5': 1816 | optional: true 1817 | 1818 | '@rollup/rollup-win32-x64-gnu@4.52.5': 1819 | optional: true 1820 | 1821 | '@rollup/rollup-win32-x64-msvc@4.52.5': 1822 | optional: true 1823 | 1824 | '@sxzz/popperjs-es@2.11.7': {} 1825 | 1826 | '@types/estree@1.0.5': {} 1827 | 1828 | '@types/estree@1.0.8': {} 1829 | 1830 | '@types/lodash-es@4.17.12': 1831 | dependencies: 1832 | '@types/lodash': 4.17.0 1833 | 1834 | '@types/lodash@4.17.0': {} 1835 | 1836 | '@types/web-bluetooth@0.0.16': {} 1837 | 1838 | '@types/webidl-conversions@7.0.3': {} 1839 | 1840 | '@types/whatwg-url@11.0.3': 1841 | dependencies: 1842 | '@types/webidl-conversions': 7.0.3 1843 | 1844 | '@vitejs/plugin-vue@5.0.4(vite@5.4.21(less@4.2.0)(terser@5.30.3))(vue@3.4.21)': 1845 | dependencies: 1846 | vite: 5.4.21(less@4.2.0)(terser@5.30.3) 1847 | vue: 3.4.21 1848 | 1849 | '@vue/compiler-core@3.4.21': 1850 | dependencies: 1851 | '@babel/parser': 7.24.4 1852 | '@vue/shared': 3.4.21 1853 | entities: 4.5.0 1854 | estree-walker: 2.0.2 1855 | source-map-js: 1.2.0 1856 | 1857 | '@vue/compiler-dom@3.4.21': 1858 | dependencies: 1859 | '@vue/compiler-core': 3.4.21 1860 | '@vue/shared': 3.4.21 1861 | 1862 | '@vue/compiler-sfc@3.4.21': 1863 | dependencies: 1864 | '@babel/parser': 7.24.4 1865 | '@vue/compiler-core': 3.4.21 1866 | '@vue/compiler-dom': 3.4.21 1867 | '@vue/compiler-ssr': 3.4.21 1868 | '@vue/shared': 3.4.21 1869 | estree-walker: 2.0.2 1870 | magic-string: 0.30.9 1871 | postcss: 8.4.38 1872 | source-map-js: 1.2.0 1873 | 1874 | '@vue/compiler-ssr@3.4.21': 1875 | dependencies: 1876 | '@vue/compiler-dom': 3.4.21 1877 | '@vue/shared': 3.4.21 1878 | 1879 | '@vue/devtools-api@6.6.1': {} 1880 | 1881 | '@vue/reactivity@3.4.21': 1882 | dependencies: 1883 | '@vue/shared': 3.4.21 1884 | 1885 | '@vue/runtime-core@3.4.21': 1886 | dependencies: 1887 | '@vue/reactivity': 3.4.21 1888 | '@vue/shared': 3.4.21 1889 | 1890 | '@vue/runtime-dom@3.4.21': 1891 | dependencies: 1892 | '@vue/runtime-core': 3.4.21 1893 | '@vue/shared': 3.4.21 1894 | csstype: 3.1.3 1895 | 1896 | '@vue/server-renderer@3.4.21(vue@3.4.21)': 1897 | dependencies: 1898 | '@vue/compiler-ssr': 3.4.21 1899 | '@vue/shared': 3.4.21 1900 | vue: 3.4.21 1901 | 1902 | '@vue/shared@3.4.21': {} 1903 | 1904 | '@vueuse/core@9.13.0(vue@3.4.21)': 1905 | dependencies: 1906 | '@types/web-bluetooth': 0.0.16 1907 | '@vueuse/metadata': 9.13.0 1908 | '@vueuse/shared': 9.13.0(vue@3.4.21) 1909 | vue-demi: 0.14.7(vue@3.4.21) 1910 | transitivePeerDependencies: 1911 | - '@vue/composition-api' 1912 | - vue 1913 | 1914 | '@vueuse/metadata@9.13.0': {} 1915 | 1916 | '@vueuse/shared@9.13.0(vue@3.4.21)': 1917 | dependencies: 1918 | vue-demi: 0.14.7(vue@3.4.21) 1919 | transitivePeerDependencies: 1920 | - '@vue/composition-api' 1921 | - vue 1922 | 1923 | accepts@1.3.8: 1924 | dependencies: 1925 | mime-types: 2.1.35 1926 | negotiator: 0.6.3 1927 | 1928 | acorn@8.11.3: {} 1929 | 1930 | ansi-styles@4.3.0: 1931 | dependencies: 1932 | color-convert: 2.0.1 1933 | 1934 | anymatch@3.1.3: 1935 | dependencies: 1936 | normalize-path: 3.0.0 1937 | picomatch: 2.3.1 1938 | 1939 | array-flatten@1.1.1: {} 1940 | 1941 | async-validator@4.2.5: {} 1942 | 1943 | async@3.2.5: {} 1944 | 1945 | asynckit@0.4.0: {} 1946 | 1947 | axios@1.12.0: 1948 | dependencies: 1949 | follow-redirects: 1.15.9 1950 | form-data: 4.0.4 1951 | proxy-from-env: 1.1.0 1952 | transitivePeerDependencies: 1953 | - debug 1954 | 1955 | balanced-match@1.0.2: {} 1956 | 1957 | binary-extensions@2.3.0: {} 1958 | 1959 | body-parser@1.20.2: 1960 | dependencies: 1961 | bytes: 3.1.2 1962 | content-type: 1.0.5 1963 | debug: 2.6.9 1964 | depd: 2.0.0 1965 | destroy: 1.2.0 1966 | http-errors: 2.0.0 1967 | iconv-lite: 0.4.24 1968 | on-finished: 2.4.1 1969 | qs: 6.11.0 1970 | raw-body: 2.5.2 1971 | type-is: 1.6.18 1972 | unpipe: 1.0.0 1973 | transitivePeerDependencies: 1974 | - supports-color 1975 | 1976 | body-parser@2.2.1: 1977 | dependencies: 1978 | bytes: 3.1.2 1979 | content-type: 1.0.5 1980 | debug: 4.4.3 1981 | http-errors: 2.0.1 1982 | iconv-lite: 0.7.0 1983 | on-finished: 2.4.1 1984 | qs: 6.14.0 1985 | raw-body: 3.0.2 1986 | type-is: 2.0.1 1987 | transitivePeerDependencies: 1988 | - supports-color 1989 | 1990 | boolbase@1.0.0: {} 1991 | 1992 | brace-expansion@1.1.11: 1993 | dependencies: 1994 | balanced-match: 1.0.2 1995 | concat-map: 0.0.1 1996 | 1997 | brace-expansion@2.0.1: 1998 | dependencies: 1999 | balanced-match: 1.0.2 2000 | 2001 | braces@3.0.2: 2002 | dependencies: 2003 | fill-range: 7.0.1 2004 | 2005 | browserslist@4.23.0: 2006 | dependencies: 2007 | caniuse-lite: 1.0.30001603 2008 | electron-to-chromium: 1.4.736 2009 | node-releases: 2.0.14 2010 | update-browserslist-db: 1.0.13(browserslist@4.23.0) 2011 | 2012 | bson@6.10.1: {} 2013 | 2014 | buffer-from@1.1.2: {} 2015 | 2016 | bytes@3.0.0: {} 2017 | 2018 | bytes@3.1.2: {} 2019 | 2020 | call-bind-apply-helpers@1.0.2: 2021 | dependencies: 2022 | es-errors: 1.3.0 2023 | function-bind: 1.1.2 2024 | 2025 | call-bind@1.0.7: 2026 | dependencies: 2027 | es-define-property: 1.0.0 2028 | es-errors: 1.3.0 2029 | function-bind: 1.1.2 2030 | get-intrinsic: 1.3.0 2031 | set-function-length: 1.2.2 2032 | 2033 | call-bound@1.0.4: 2034 | dependencies: 2035 | call-bind-apply-helpers: 1.0.2 2036 | get-intrinsic: 1.3.0 2037 | 2038 | camel-case@4.1.2: 2039 | dependencies: 2040 | pascal-case: 3.1.2 2041 | tslib: 2.6.2 2042 | 2043 | caniuse-lite@1.0.30001603: {} 2044 | 2045 | chalk@4.1.2: 2046 | dependencies: 2047 | ansi-styles: 4.3.0 2048 | supports-color: 7.2.0 2049 | 2050 | chokidar@3.6.0: 2051 | dependencies: 2052 | anymatch: 3.1.3 2053 | braces: 3.0.2 2054 | glob-parent: 5.1.2 2055 | is-binary-path: 2.1.0 2056 | is-glob: 4.0.3 2057 | normalize-path: 3.0.0 2058 | readdirp: 3.6.0 2059 | optionalDependencies: 2060 | fsevents: 2.3.3 2061 | 2062 | clean-css@5.3.3: 2063 | dependencies: 2064 | source-map: 0.6.1 2065 | 2066 | color-convert@2.0.1: 2067 | dependencies: 2068 | color-name: 1.1.4 2069 | 2070 | color-name@1.1.4: {} 2071 | 2072 | colorette@2.0.20: {} 2073 | 2074 | combined-stream@1.0.8: 2075 | dependencies: 2076 | delayed-stream: 1.0.0 2077 | 2078 | commander@2.20.3: {} 2079 | 2080 | commander@8.3.0: {} 2081 | 2082 | compressible@2.0.18: 2083 | dependencies: 2084 | mime-db: 1.52.0 2085 | 2086 | compression@1.7.4: 2087 | dependencies: 2088 | accepts: 1.3.8 2089 | bytes: 3.0.0 2090 | compressible: 2.0.18 2091 | debug: 2.6.9 2092 | on-headers: 1.0.2 2093 | safe-buffer: 5.1.2 2094 | vary: 1.1.2 2095 | transitivePeerDependencies: 2096 | - supports-color 2097 | 2098 | concat-map@0.0.1: {} 2099 | 2100 | connect-history-api-fallback@1.6.0: {} 2101 | 2102 | consola@2.15.3: {} 2103 | 2104 | content-disposition@0.5.4: 2105 | dependencies: 2106 | safe-buffer: 5.2.1 2107 | 2108 | content-type@1.0.5: {} 2109 | 2110 | cookie-parser@1.4.6: 2111 | dependencies: 2112 | cookie: 0.4.1 2113 | cookie-signature: 1.0.6 2114 | 2115 | cookie-signature@1.0.6: {} 2116 | 2117 | cookie-signature@1.0.7: {} 2118 | 2119 | cookie@0.4.1: {} 2120 | 2121 | cookie@0.6.0: {} 2122 | 2123 | copy-anything@2.0.6: 2124 | dependencies: 2125 | is-what: 3.14.1 2126 | 2127 | crypto-js@4.2.0: {} 2128 | 2129 | css-select@4.3.0: 2130 | dependencies: 2131 | boolbase: 1.0.0 2132 | css-what: 6.1.0 2133 | domhandler: 4.3.1 2134 | domutils: 2.8.0 2135 | nth-check: 2.1.1 2136 | 2137 | css-what@6.1.0: {} 2138 | 2139 | csstype@3.1.3: {} 2140 | 2141 | dayjs@1.11.18: {} 2142 | 2143 | debug@2.6.9: 2144 | dependencies: 2145 | ms: 2.0.0 2146 | 2147 | debug@4.3.4(supports-color@5.5.0): 2148 | dependencies: 2149 | ms: 2.1.2 2150 | optionalDependencies: 2151 | supports-color: 5.5.0 2152 | 2153 | debug@4.4.3: 2154 | dependencies: 2155 | ms: 2.1.3 2156 | 2157 | define-data-property@1.1.4: 2158 | dependencies: 2159 | es-define-property: 1.0.1 2160 | es-errors: 1.3.0 2161 | gopd: 1.2.0 2162 | 2163 | delayed-stream@1.0.0: {} 2164 | 2165 | depd@2.0.0: {} 2166 | 2167 | destroy@1.2.0: {} 2168 | 2169 | dom-serializer@1.4.1: 2170 | dependencies: 2171 | domelementtype: 2.3.0 2172 | domhandler: 4.3.1 2173 | entities: 2.2.0 2174 | 2175 | domelementtype@2.3.0: {} 2176 | 2177 | domhandler@4.3.1: 2178 | dependencies: 2179 | domelementtype: 2.3.0 2180 | 2181 | domutils@2.8.0: 2182 | dependencies: 2183 | dom-serializer: 1.4.1 2184 | domelementtype: 2.3.0 2185 | domhandler: 4.3.1 2186 | 2187 | dot-case@3.0.4: 2188 | dependencies: 2189 | no-case: 3.0.4 2190 | tslib: 2.6.2 2191 | 2192 | dotenv-expand@8.0.3: {} 2193 | 2194 | dotenv@16.4.5: {} 2195 | 2196 | dunder-proto@1.0.1: 2197 | dependencies: 2198 | call-bind-apply-helpers: 1.0.2 2199 | es-errors: 1.3.0 2200 | gopd: 1.2.0 2201 | 2202 | ee-first@1.1.1: {} 2203 | 2204 | ejs@3.1.10: 2205 | dependencies: 2206 | jake: 10.8.7 2207 | 2208 | electron-to-chromium@1.4.736: {} 2209 | 2210 | element-plus@2.11.0(vue@3.4.21): 2211 | dependencies: 2212 | '@ctrl/tinycolor': 3.6.1 2213 | '@element-plus/icons-vue': 2.3.1(vue@3.4.21) 2214 | '@floating-ui/dom': 1.6.3 2215 | '@popperjs/core': '@sxzz/popperjs-es@2.11.7' 2216 | '@types/lodash': 4.17.0 2217 | '@types/lodash-es': 4.17.12 2218 | '@vueuse/core': 9.13.0(vue@3.4.21) 2219 | async-validator: 4.2.5 2220 | dayjs: 1.11.18 2221 | escape-html: 1.0.3 2222 | lodash: 4.17.21 2223 | lodash-es: 4.17.21 2224 | lodash-unified: 1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21) 2225 | memoize-one: 6.0.0 2226 | normalize-wheel-es: 1.2.0 2227 | vue: 3.4.21 2228 | transitivePeerDependencies: 2229 | - '@vue/composition-api' 2230 | 2231 | encodeurl@1.0.2: {} 2232 | 2233 | entities@2.2.0: {} 2234 | 2235 | entities@4.5.0: {} 2236 | 2237 | errno@0.1.8: 2238 | dependencies: 2239 | prr: 1.0.1 2240 | optional: true 2241 | 2242 | es-define-property@1.0.0: 2243 | dependencies: 2244 | get-intrinsic: 1.3.0 2245 | 2246 | es-define-property@1.0.1: {} 2247 | 2248 | es-errors@1.3.0: {} 2249 | 2250 | es-module-lexer@1.5.0: {} 2251 | 2252 | es-object-atoms@1.1.1: 2253 | dependencies: 2254 | es-errors: 1.3.0 2255 | 2256 | es-set-tostringtag@2.1.0: 2257 | dependencies: 2258 | es-errors: 1.3.0 2259 | get-intrinsic: 1.3.0 2260 | has-tostringtag: 1.0.2 2261 | hasown: 2.0.2 2262 | 2263 | esbuild@0.21.5: 2264 | optionalDependencies: 2265 | '@esbuild/aix-ppc64': 0.21.5 2266 | '@esbuild/android-arm': 0.21.5 2267 | '@esbuild/android-arm64': 0.21.5 2268 | '@esbuild/android-x64': 0.21.5 2269 | '@esbuild/darwin-arm64': 0.21.5 2270 | '@esbuild/darwin-x64': 0.21.5 2271 | '@esbuild/freebsd-arm64': 0.21.5 2272 | '@esbuild/freebsd-x64': 0.21.5 2273 | '@esbuild/linux-arm': 0.21.5 2274 | '@esbuild/linux-arm64': 0.21.5 2275 | '@esbuild/linux-ia32': 0.21.5 2276 | '@esbuild/linux-loong64': 0.21.5 2277 | '@esbuild/linux-mips64el': 0.21.5 2278 | '@esbuild/linux-ppc64': 0.21.5 2279 | '@esbuild/linux-riscv64': 0.21.5 2280 | '@esbuild/linux-s390x': 0.21.5 2281 | '@esbuild/linux-x64': 0.21.5 2282 | '@esbuild/netbsd-x64': 0.21.5 2283 | '@esbuild/openbsd-x64': 0.21.5 2284 | '@esbuild/sunos-x64': 0.21.5 2285 | '@esbuild/win32-arm64': 0.21.5 2286 | '@esbuild/win32-ia32': 0.21.5 2287 | '@esbuild/win32-x64': 0.21.5 2288 | 2289 | escalade@3.1.2: {} 2290 | 2291 | escape-html@1.0.3: {} 2292 | 2293 | estree-walker@2.0.2: {} 2294 | 2295 | etag@1.8.1: {} 2296 | 2297 | express-session@1.18.0: 2298 | dependencies: 2299 | cookie: 0.6.0 2300 | cookie-signature: 1.0.7 2301 | debug: 2.6.9 2302 | depd: 2.0.0 2303 | on-headers: 1.0.2 2304 | parseurl: 1.3.3 2305 | safe-buffer: 5.2.1 2306 | uid-safe: 2.1.5 2307 | transitivePeerDependencies: 2308 | - supports-color 2309 | 2310 | express-validator@7.0.1: 2311 | dependencies: 2312 | lodash: 4.17.21 2313 | validator: 13.11.0 2314 | 2315 | express@4.19.2: 2316 | dependencies: 2317 | accepts: 1.3.8 2318 | array-flatten: 1.1.1 2319 | body-parser: 1.20.2 2320 | content-disposition: 0.5.4 2321 | content-type: 1.0.5 2322 | cookie: 0.6.0 2323 | cookie-signature: 1.0.6 2324 | debug: 2.6.9 2325 | depd: 2.0.0 2326 | encodeurl: 1.0.2 2327 | escape-html: 1.0.3 2328 | etag: 1.8.1 2329 | finalhandler: 1.2.0 2330 | fresh: 0.5.2 2331 | http-errors: 2.0.0 2332 | merge-descriptors: 1.0.1 2333 | methods: 1.1.2 2334 | on-finished: 2.4.1 2335 | parseurl: 1.3.3 2336 | path-to-regexp: 0.1.7 2337 | proxy-addr: 2.0.7 2338 | qs: 6.11.0 2339 | range-parser: 1.2.1 2340 | safe-buffer: 5.2.1 2341 | send: 0.18.0 2342 | serve-static: 1.15.0 2343 | setprototypeof: 1.2.0 2344 | statuses: 2.0.1 2345 | type-is: 1.6.18 2346 | utils-merge: 1.0.1 2347 | vary: 1.1.2 2348 | transitivePeerDependencies: 2349 | - supports-color 2350 | 2351 | fast-glob@3.3.2: 2352 | dependencies: 2353 | '@nodelib/fs.stat': 2.0.5 2354 | '@nodelib/fs.walk': 1.2.8 2355 | glob-parent: 5.1.2 2356 | merge2: 1.4.1 2357 | micromatch: 4.0.5 2358 | 2359 | fastq@1.17.1: 2360 | dependencies: 2361 | reusify: 1.0.4 2362 | 2363 | filelist@1.0.4: 2364 | dependencies: 2365 | minimatch: 5.1.6 2366 | 2367 | fill-range@7.0.1: 2368 | dependencies: 2369 | to-regex-range: 5.0.1 2370 | 2371 | finalhandler@1.2.0: 2372 | dependencies: 2373 | debug: 2.6.9 2374 | encodeurl: 1.0.2 2375 | escape-html: 1.0.3 2376 | on-finished: 2.4.1 2377 | parseurl: 1.3.3 2378 | statuses: 2.0.1 2379 | unpipe: 1.0.0 2380 | transitivePeerDependencies: 2381 | - supports-color 2382 | 2383 | follow-redirects@1.15.9: {} 2384 | 2385 | form-data@4.0.4: 2386 | dependencies: 2387 | asynckit: 0.4.0 2388 | combined-stream: 1.0.8 2389 | es-set-tostringtag: 2.1.0 2390 | hasown: 2.0.2 2391 | mime-types: 2.1.35 2392 | 2393 | forwarded@0.2.0: {} 2394 | 2395 | fresh@0.5.2: {} 2396 | 2397 | fs-extra@10.1.0: 2398 | dependencies: 2399 | graceful-fs: 4.2.11 2400 | jsonfile: 6.1.0 2401 | universalify: 2.0.1 2402 | 2403 | fsevents@2.3.3: 2404 | optional: true 2405 | 2406 | function-bind@1.1.2: {} 2407 | 2408 | get-intrinsic@1.2.4: 2409 | dependencies: 2410 | es-errors: 1.3.0 2411 | function-bind: 1.1.2 2412 | has-proto: 1.0.3 2413 | has-symbols: 1.0.3 2414 | hasown: 2.0.2 2415 | 2416 | get-intrinsic@1.3.0: 2417 | dependencies: 2418 | call-bind-apply-helpers: 1.0.2 2419 | es-define-property: 1.0.1 2420 | es-errors: 1.3.0 2421 | es-object-atoms: 1.1.1 2422 | function-bind: 1.1.2 2423 | get-proto: 1.0.1 2424 | gopd: 1.2.0 2425 | has-symbols: 1.1.0 2426 | hasown: 2.0.2 2427 | math-intrinsics: 1.1.0 2428 | 2429 | get-proto@1.0.1: 2430 | dependencies: 2431 | dunder-proto: 1.0.1 2432 | es-object-atoms: 1.1.1 2433 | 2434 | glob-parent@5.1.2: 2435 | dependencies: 2436 | is-glob: 4.0.3 2437 | 2438 | gopd@1.2.0: {} 2439 | 2440 | graceful-fs@4.2.11: {} 2441 | 2442 | has-flag@3.0.0: {} 2443 | 2444 | has-flag@4.0.0: {} 2445 | 2446 | has-property-descriptors@1.0.2: 2447 | dependencies: 2448 | es-define-property: 1.0.1 2449 | 2450 | has-proto@1.0.3: {} 2451 | 2452 | has-symbols@1.0.3: {} 2453 | 2454 | has-symbols@1.1.0: {} 2455 | 2456 | has-tostringtag@1.0.2: 2457 | dependencies: 2458 | has-symbols: 1.1.0 2459 | 2460 | hasown@2.0.2: 2461 | dependencies: 2462 | function-bind: 1.1.2 2463 | 2464 | he@1.2.0: {} 2465 | 2466 | helmet@7.1.0: {} 2467 | 2468 | html-minifier-terser@6.1.0: 2469 | dependencies: 2470 | camel-case: 4.1.2 2471 | clean-css: 5.3.3 2472 | commander: 8.3.0 2473 | he: 1.2.0 2474 | param-case: 3.0.4 2475 | relateurl: 0.2.7 2476 | terser: 5.30.3 2477 | 2478 | http-errors@2.0.0: 2479 | dependencies: 2480 | depd: 2.0.0 2481 | inherits: 2.0.4 2482 | setprototypeof: 1.2.0 2483 | statuses: 2.0.1 2484 | toidentifier: 1.0.1 2485 | 2486 | http-errors@2.0.1: 2487 | dependencies: 2488 | depd: 2.0.0 2489 | inherits: 2.0.4 2490 | setprototypeof: 1.2.0 2491 | statuses: 2.0.2 2492 | toidentifier: 1.0.1 2493 | 2494 | iconv-lite@0.4.24: 2495 | dependencies: 2496 | safer-buffer: 2.1.2 2497 | 2498 | iconv-lite@0.6.3: 2499 | dependencies: 2500 | safer-buffer: 2.1.2 2501 | optional: true 2502 | 2503 | iconv-lite@0.7.0: 2504 | dependencies: 2505 | safer-buffer: 2.1.2 2506 | 2507 | ignore-by-default@1.0.1: {} 2508 | 2509 | image-size@0.5.5: 2510 | optional: true 2511 | 2512 | inherits@2.0.4: {} 2513 | 2514 | ipaddr.js@1.9.1: {} 2515 | 2516 | is-binary-path@2.1.0: 2517 | dependencies: 2518 | binary-extensions: 2.3.0 2519 | 2520 | is-extglob@2.1.1: {} 2521 | 2522 | is-glob@4.0.3: 2523 | dependencies: 2524 | is-extglob: 2.1.1 2525 | 2526 | is-number@7.0.0: {} 2527 | 2528 | is-what@3.14.1: {} 2529 | 2530 | jake@10.8.7: 2531 | dependencies: 2532 | async: 3.2.5 2533 | chalk: 4.1.2 2534 | filelist: 1.0.4 2535 | minimatch: 3.1.2 2536 | 2537 | jsonfile@6.1.0: 2538 | dependencies: 2539 | universalify: 2.0.1 2540 | optionalDependencies: 2541 | graceful-fs: 4.2.11 2542 | 2543 | kareem@2.6.3: {} 2544 | 2545 | less-loader@12.2.0(less@4.2.0): 2546 | dependencies: 2547 | less: 4.2.0 2548 | 2549 | less@4.2.0: 2550 | dependencies: 2551 | copy-anything: 2.0.6 2552 | parse-node-version: 1.0.1 2553 | tslib: 2.6.2 2554 | optionalDependencies: 2555 | errno: 0.1.8 2556 | graceful-fs: 4.2.11 2557 | image-size: 0.5.5 2558 | make-dir: 2.1.0 2559 | mime: 1.6.0 2560 | needle: 3.3.1 2561 | source-map: 0.6.1 2562 | 2563 | lodash-es@4.17.21: {} 2564 | 2565 | lodash-unified@1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21): 2566 | dependencies: 2567 | '@types/lodash-es': 4.17.12 2568 | lodash: 4.17.21 2569 | lodash-es: 4.17.21 2570 | 2571 | lodash@4.17.21: {} 2572 | 2573 | lower-case@2.0.2: 2574 | dependencies: 2575 | tslib: 2.6.2 2576 | 2577 | magic-string@0.30.9: 2578 | dependencies: 2579 | '@jridgewell/sourcemap-codec': 1.4.15 2580 | 2581 | make-dir@2.1.0: 2582 | dependencies: 2583 | pify: 4.0.1 2584 | semver: 5.7.2 2585 | optional: true 2586 | 2587 | math-intrinsics@1.1.0: {} 2588 | 2589 | media-typer@0.3.0: {} 2590 | 2591 | media-typer@1.1.0: {} 2592 | 2593 | memoize-one@6.0.0: {} 2594 | 2595 | memory-pager@1.5.0: {} 2596 | 2597 | merge-descriptors@1.0.1: {} 2598 | 2599 | merge2@1.4.1: {} 2600 | 2601 | methods@1.1.2: {} 2602 | 2603 | micromatch@4.0.5: 2604 | dependencies: 2605 | braces: 3.0.2 2606 | picomatch: 2.3.1 2607 | 2608 | mime-db@1.52.0: {} 2609 | 2610 | mime-db@1.54.0: {} 2611 | 2612 | mime-types@2.1.35: 2613 | dependencies: 2614 | mime-db: 1.52.0 2615 | 2616 | mime-types@3.0.2: 2617 | dependencies: 2618 | mime-db: 1.54.0 2619 | 2620 | mime@1.6.0: {} 2621 | 2622 | minimatch@3.1.2: 2623 | dependencies: 2624 | brace-expansion: 1.1.11 2625 | 2626 | minimatch@5.1.6: 2627 | dependencies: 2628 | brace-expansion: 2.0.1 2629 | 2630 | mongodb-connection-string-url@3.0.0: 2631 | dependencies: 2632 | '@types/whatwg-url': 11.0.3 2633 | whatwg-url: 13.0.0 2634 | 2635 | mongodb@6.12.0: 2636 | dependencies: 2637 | '@mongodb-js/saslprep': 1.1.9 2638 | bson: 6.10.1 2639 | mongodb-connection-string-url: 3.0.0 2640 | 2641 | mongoose@8.9.5: 2642 | dependencies: 2643 | bson: 6.10.1 2644 | kareem: 2.6.3 2645 | mongodb: 6.12.0 2646 | mpath: 0.9.0 2647 | mquery: 5.0.0 2648 | ms: 2.1.3 2649 | sift: 17.1.3 2650 | transitivePeerDependencies: 2651 | - '@aws-sdk/credential-providers' 2652 | - '@mongodb-js/zstd' 2653 | - gcp-metadata 2654 | - kerberos 2655 | - mongodb-client-encryption 2656 | - snappy 2657 | - socks 2658 | - supports-color 2659 | 2660 | mpath@0.9.0: {} 2661 | 2662 | mquery@5.0.0: 2663 | dependencies: 2664 | debug: 4.4.3 2665 | transitivePeerDependencies: 2666 | - supports-color 2667 | 2668 | ms@2.0.0: {} 2669 | 2670 | ms@2.1.1: {} 2671 | 2672 | ms@2.1.2: {} 2673 | 2674 | ms@2.1.3: {} 2675 | 2676 | nanoid@3.3.11: {} 2677 | 2678 | nanoid@3.3.7: {} 2679 | 2680 | needle@3.3.1: 2681 | dependencies: 2682 | iconv-lite: 0.6.3 2683 | sax: 1.3.0 2684 | optional: true 2685 | 2686 | negotiator@0.6.3: {} 2687 | 2688 | no-case@3.0.4: 2689 | dependencies: 2690 | lower-case: 2.0.2 2691 | tslib: 2.6.2 2692 | 2693 | node-html-parser@5.4.2: 2694 | dependencies: 2695 | css-select: 4.3.0 2696 | he: 1.2.0 2697 | 2698 | node-releases@2.0.14: {} 2699 | 2700 | nodemon@3.1.10: 2701 | dependencies: 2702 | chokidar: 3.6.0 2703 | debug: 4.3.4(supports-color@5.5.0) 2704 | ignore-by-default: 1.0.1 2705 | minimatch: 3.1.2 2706 | pstree.remy: 1.1.8 2707 | semver: 7.7.3 2708 | simple-update-notifier: 2.0.0 2709 | supports-color: 5.5.0 2710 | touch: 3.1.1 2711 | undefsafe: 2.0.5 2712 | 2713 | normalize-path@3.0.0: {} 2714 | 2715 | normalize-wheel-es@1.2.0: {} 2716 | 2717 | nth-check@2.1.1: 2718 | dependencies: 2719 | boolbase: 1.0.0 2720 | 2721 | object-inspect@1.13.1: {} 2722 | 2723 | object-inspect@1.13.4: {} 2724 | 2725 | on-finished@2.4.1: 2726 | dependencies: 2727 | ee-first: 1.1.1 2728 | 2729 | on-headers@1.0.2: {} 2730 | 2731 | param-case@3.0.4: 2732 | dependencies: 2733 | dot-case: 3.0.4 2734 | tslib: 2.6.2 2735 | 2736 | parse-node-version@1.0.1: {} 2737 | 2738 | parseurl@1.3.3: {} 2739 | 2740 | pascal-case@3.1.2: 2741 | dependencies: 2742 | no-case: 3.0.4 2743 | tslib: 2.6.2 2744 | 2745 | path-to-regexp@0.1.7: {} 2746 | 2747 | pathe@0.2.0: {} 2748 | 2749 | picocolors@1.0.0: {} 2750 | 2751 | picocolors@1.1.1: {} 2752 | 2753 | picomatch@2.3.1: {} 2754 | 2755 | pify@4.0.1: 2756 | optional: true 2757 | 2758 | postcss@8.4.38: 2759 | dependencies: 2760 | nanoid: 3.3.7 2761 | picocolors: 1.0.0 2762 | source-map-js: 1.2.0 2763 | 2764 | postcss@8.5.6: 2765 | dependencies: 2766 | nanoid: 3.3.11 2767 | picocolors: 1.1.1 2768 | source-map-js: 1.2.1 2769 | 2770 | proxy-addr@2.0.7: 2771 | dependencies: 2772 | forwarded: 0.2.0 2773 | ipaddr.js: 1.9.1 2774 | 2775 | proxy-from-env@1.1.0: {} 2776 | 2777 | prr@1.0.1: 2778 | optional: true 2779 | 2780 | pstree.remy@1.1.8: {} 2781 | 2782 | punycode@2.3.1: {} 2783 | 2784 | qs@6.11.0: 2785 | dependencies: 2786 | side-channel: 1.0.6 2787 | 2788 | qs@6.14.0: 2789 | dependencies: 2790 | side-channel: 1.1.0 2791 | 2792 | queue-microtask@1.2.3: {} 2793 | 2794 | random-bytes@1.0.0: {} 2795 | 2796 | range-parser@1.2.1: {} 2797 | 2798 | raw-body@2.5.2: 2799 | dependencies: 2800 | bytes: 3.1.2 2801 | http-errors: 2.0.0 2802 | iconv-lite: 0.4.24 2803 | unpipe: 1.0.0 2804 | 2805 | raw-body@3.0.2: 2806 | dependencies: 2807 | bytes: 3.1.2 2808 | http-errors: 2.0.1 2809 | iconv-lite: 0.7.0 2810 | unpipe: 1.0.0 2811 | 2812 | readdirp@3.6.0: 2813 | dependencies: 2814 | picomatch: 2.3.1 2815 | 2816 | relateurl@0.2.7: {} 2817 | 2818 | reusify@1.0.4: {} 2819 | 2820 | rollup@4.52.5: 2821 | dependencies: 2822 | '@types/estree': 1.0.8 2823 | optionalDependencies: 2824 | '@rollup/rollup-android-arm-eabi': 4.52.5 2825 | '@rollup/rollup-android-arm64': 4.52.5 2826 | '@rollup/rollup-darwin-arm64': 4.52.5 2827 | '@rollup/rollup-darwin-x64': 4.52.5 2828 | '@rollup/rollup-freebsd-arm64': 4.52.5 2829 | '@rollup/rollup-freebsd-x64': 4.52.5 2830 | '@rollup/rollup-linux-arm-gnueabihf': 4.52.5 2831 | '@rollup/rollup-linux-arm-musleabihf': 4.52.5 2832 | '@rollup/rollup-linux-arm64-gnu': 4.52.5 2833 | '@rollup/rollup-linux-arm64-musl': 4.52.5 2834 | '@rollup/rollup-linux-loong64-gnu': 4.52.5 2835 | '@rollup/rollup-linux-ppc64-gnu': 4.52.5 2836 | '@rollup/rollup-linux-riscv64-gnu': 4.52.5 2837 | '@rollup/rollup-linux-riscv64-musl': 4.52.5 2838 | '@rollup/rollup-linux-s390x-gnu': 4.52.5 2839 | '@rollup/rollup-linux-x64-gnu': 4.52.5 2840 | '@rollup/rollup-linux-x64-musl': 4.52.5 2841 | '@rollup/rollup-openharmony-arm64': 4.52.5 2842 | '@rollup/rollup-win32-arm64-msvc': 4.52.5 2843 | '@rollup/rollup-win32-ia32-msvc': 4.52.5 2844 | '@rollup/rollup-win32-x64-gnu': 4.52.5 2845 | '@rollup/rollup-win32-x64-msvc': 4.52.5 2846 | fsevents: 2.3.3 2847 | 2848 | run-parallel@1.2.0: 2849 | dependencies: 2850 | queue-microtask: 1.2.3 2851 | 2852 | safe-buffer@5.1.1: {} 2853 | 2854 | safe-buffer@5.1.2: {} 2855 | 2856 | safe-buffer@5.2.1: {} 2857 | 2858 | safer-buffer@2.1.2: {} 2859 | 2860 | sax@1.3.0: 2861 | optional: true 2862 | 2863 | semver@5.7.2: 2864 | optional: true 2865 | 2866 | semver@7.7.3: {} 2867 | 2868 | send@0.18.0: 2869 | dependencies: 2870 | debug: 2.6.9 2871 | depd: 2.0.0 2872 | destroy: 1.2.0 2873 | encodeurl: 1.0.2 2874 | escape-html: 1.0.3 2875 | etag: 1.8.1 2876 | fresh: 0.5.2 2877 | http-errors: 2.0.0 2878 | mime: 1.6.0 2879 | ms: 2.1.3 2880 | on-finished: 2.4.1 2881 | range-parser: 1.2.1 2882 | statuses: 2.0.1 2883 | transitivePeerDependencies: 2884 | - supports-color 2885 | 2886 | serve-favicon@2.5.0: 2887 | dependencies: 2888 | etag: 1.8.1 2889 | fresh: 0.5.2 2890 | ms: 2.1.1 2891 | parseurl: 1.3.3 2892 | safe-buffer: 5.1.1 2893 | 2894 | serve-static@1.15.0: 2895 | dependencies: 2896 | encodeurl: 1.0.2 2897 | escape-html: 1.0.3 2898 | parseurl: 1.3.3 2899 | send: 0.18.0 2900 | transitivePeerDependencies: 2901 | - supports-color 2902 | 2903 | set-function-length@1.2.2: 2904 | dependencies: 2905 | define-data-property: 1.1.4 2906 | es-errors: 1.3.0 2907 | function-bind: 1.1.2 2908 | get-intrinsic: 1.3.0 2909 | gopd: 1.2.0 2910 | has-property-descriptors: 1.0.2 2911 | 2912 | setprototypeof@1.2.0: {} 2913 | 2914 | side-channel-list@1.0.0: 2915 | dependencies: 2916 | es-errors: 1.3.0 2917 | object-inspect: 1.13.4 2918 | 2919 | side-channel-map@1.0.1: 2920 | dependencies: 2921 | call-bound: 1.0.4 2922 | es-errors: 1.3.0 2923 | get-intrinsic: 1.3.0 2924 | object-inspect: 1.13.4 2925 | 2926 | side-channel-weakmap@1.0.2: 2927 | dependencies: 2928 | call-bound: 1.0.4 2929 | es-errors: 1.3.0 2930 | get-intrinsic: 1.3.0 2931 | object-inspect: 1.13.4 2932 | side-channel-map: 1.0.1 2933 | 2934 | side-channel@1.0.6: 2935 | dependencies: 2936 | call-bind: 1.0.7 2937 | es-errors: 1.3.0 2938 | get-intrinsic: 1.2.4 2939 | object-inspect: 1.13.1 2940 | 2941 | side-channel@1.1.0: 2942 | dependencies: 2943 | es-errors: 1.3.0 2944 | object-inspect: 1.13.4 2945 | side-channel-list: 1.0.0 2946 | side-channel-map: 1.0.1 2947 | side-channel-weakmap: 1.0.2 2948 | 2949 | sift@17.1.3: {} 2950 | 2951 | simple-update-notifier@2.0.0: 2952 | dependencies: 2953 | semver: 7.7.3 2954 | 2955 | source-map-js@1.2.0: {} 2956 | 2957 | source-map-js@1.2.1: {} 2958 | 2959 | source-map-support@0.5.21: 2960 | dependencies: 2961 | buffer-from: 1.1.2 2962 | source-map: 0.6.1 2963 | 2964 | source-map@0.6.1: {} 2965 | 2966 | sparse-bitfield@3.0.3: 2967 | dependencies: 2968 | memory-pager: 1.5.0 2969 | 2970 | statuses@2.0.1: {} 2971 | 2972 | statuses@2.0.2: {} 2973 | 2974 | supports-color@5.5.0: 2975 | dependencies: 2976 | has-flag: 3.0.0 2977 | 2978 | supports-color@7.2.0: 2979 | dependencies: 2980 | has-flag: 4.0.0 2981 | 2982 | terser@5.30.3: 2983 | dependencies: 2984 | '@jridgewell/source-map': 0.3.6 2985 | acorn: 8.11.3 2986 | commander: 2.20.3 2987 | source-map-support: 0.5.21 2988 | 2989 | to-fast-properties@2.0.0: {} 2990 | 2991 | to-regex-range@5.0.1: 2992 | dependencies: 2993 | is-number: 7.0.0 2994 | 2995 | toidentifier@1.0.1: {} 2996 | 2997 | touch@3.1.1: {} 2998 | 2999 | tr46@4.1.1: 3000 | dependencies: 3001 | punycode: 2.3.1 3002 | 3003 | tslib@2.6.2: {} 3004 | 3005 | type-is@1.6.18: 3006 | dependencies: 3007 | media-typer: 0.3.0 3008 | mime-types: 2.1.35 3009 | 3010 | type-is@2.0.1: 3011 | dependencies: 3012 | content-type: 1.0.5 3013 | media-typer: 1.1.0 3014 | mime-types: 3.0.2 3015 | 3016 | uid-safe@2.1.5: 3017 | dependencies: 3018 | random-bytes: 1.0.0 3019 | 3020 | undefsafe@2.0.5: {} 3021 | 3022 | universalify@2.0.1: {} 3023 | 3024 | unpipe@1.0.0: {} 3025 | 3026 | unplugin-element-plus@0.8.0(rollup@4.52.5): 3027 | dependencies: 3028 | '@rollup/pluginutils': 5.1.0(rollup@4.52.5) 3029 | es-module-lexer: 1.5.0 3030 | magic-string: 0.30.9 3031 | unplugin: 1.10.1 3032 | transitivePeerDependencies: 3033 | - rollup 3034 | 3035 | unplugin@1.10.1: 3036 | dependencies: 3037 | acorn: 8.11.3 3038 | chokidar: 3.6.0 3039 | webpack-sources: 3.2.3 3040 | webpack-virtual-modules: 0.6.1 3041 | 3042 | update-browserslist-db@1.0.13(browserslist@4.23.0): 3043 | dependencies: 3044 | browserslist: 4.23.0 3045 | escalade: 3.1.2 3046 | picocolors: 1.0.0 3047 | 3048 | utils-merge@1.0.1: {} 3049 | 3050 | validator@13.11.0: {} 3051 | 3052 | vary@1.1.2: {} 3053 | 3054 | vite-plugin-html@3.2.2(vite@5.4.21(less@4.2.0)(terser@5.30.3)): 3055 | dependencies: 3056 | '@rollup/pluginutils': 4.2.1 3057 | colorette: 2.0.20 3058 | connect-history-api-fallback: 1.6.0 3059 | consola: 2.15.3 3060 | dotenv: 16.4.5 3061 | dotenv-expand: 8.0.3 3062 | ejs: 3.1.10 3063 | fast-glob: 3.3.2 3064 | fs-extra: 10.1.0 3065 | html-minifier-terser: 6.1.0 3066 | node-html-parser: 5.4.2 3067 | pathe: 0.2.0 3068 | vite: 5.4.21(less@4.2.0)(terser@5.30.3) 3069 | 3070 | vite@5.4.21(less@4.2.0)(terser@5.30.3): 3071 | dependencies: 3072 | esbuild: 0.21.5 3073 | postcss: 8.5.6 3074 | rollup: 4.52.5 3075 | optionalDependencies: 3076 | fsevents: 2.3.3 3077 | less: 4.2.0 3078 | terser: 5.30.3 3079 | 3080 | vue-demi@0.14.7(vue@3.4.21): 3081 | dependencies: 3082 | vue: 3.4.21 3083 | 3084 | vue-router@4.3.0(vue@3.4.21): 3085 | dependencies: 3086 | '@vue/devtools-api': 6.6.1 3087 | vue: 3.4.21 3088 | 3089 | vue@3.4.21: 3090 | dependencies: 3091 | '@vue/compiler-dom': 3.4.21 3092 | '@vue/compiler-sfc': 3.4.21 3093 | '@vue/runtime-dom': 3.4.21 3094 | '@vue/server-renderer': 3.4.21(vue@3.4.21) 3095 | '@vue/shared': 3.4.21 3096 | 3097 | webidl-conversions@7.0.0: {} 3098 | 3099 | webpack-sources@3.2.3: {} 3100 | 3101 | webpack-virtual-modules@0.6.1: {} 3102 | 3103 | whatwg-url@13.0.0: 3104 | dependencies: 3105 | tr46: 4.1.1 3106 | webidl-conversions: 7.0.0 3107 | --------------------------------------------------------------------------------