Compare commits

..

2 Commits

Author SHA1 Message Date
jianguo 953038723d Merge pull request 'feat(mock): 重构 mock 数据处理并添加用户相关 API' (#7) from develop into master
Reviewed-on: #7
2025-04-29 14:02:50 +08:00
Lexcubia 8d75703422 feat(mock): 重构 mock 数据处理并添加用户相关 API
- 重构 mock 数据处理,使用 vite-plugin-mock 替代 mockjs
- 添加用户相关 API 接口和 mock 数据
- 更新请求拦截器,添加统一错误处理
- 调整路由配置,增加 API 测试页面
- 优化 ChatInterface 组件,格式化时间戳和滚动条样式
2025-04-28 19:41:55 +08:00
16 changed files with 714 additions and 479 deletions

View File

@ -1,87 +0,0 @@
---
description:
globs:
alwaysApply: true
---
---
description:
globs:
alwaysApply: true
---
### 技术栈
- Javascript
- Vue3
- vite
- axios
- element
- pinia
- mockjs
- sass
### 包管理器
- yarn
### 文件目录
- src/
- assets/ # 静态资源文件
- components/ # 公共组件
- views/ # 页面视图组件
- router/ # 路由配置
- store/ # Pinia状态管理
- api/ # API接口封装
- utils/ # 工具函数
- styles/ # 全局样式
- mocks/ # Mock数据
- App.vue # 根组件
- main.js # 入口文件
### 开发规范
1. 命名规范
- 组件名:大驼峰命名法,如 `UserProfile.vue`
- 变量名:小驼峰命名法,如 `userInfo`
- 常量名:全大写,下划线分隔,如 `API_BASE_URL`
- 文件夹名:小写,中划线分隔,如 `user-center`
2. 代码风格
- 使用 ESLint + Prettier 进行代码格式化
- 组件内使用 `<script setup>` 语法
- 使用 TypeScript 进行类型检查
- 遵循 Vue3 组合式 API 规范
3. 组件开发
- 组件必须包含 name 属性
- Props 必须定义类型和默认值
- 使用 defineEmits 定义事件
- 复杂组件需要添加注释说明
- 高度组件化开发,细致到功能模块
4. 状态管理
- 使用 Pinia 进行状态管理
- Store 按功能模块划分
- 避免在组件中直接修改 store 状态
5. 路由规范
- 路由配置统一在 router 目录下管理
- 使用路由懒加载
- 路由命名遵循小驼峰命名法
6. API 规范
- API 请求统一在 api 目录下管理
- 使用 axios 进行请求封装
- 统一错误处理
- 请求参数和响应数据需要定义类型
7. 样式规范
- 使用 SCSS 预处理器
- 遵循 BEM 命名规范
- 全局样式统一在 styles 目录下管理
- 组件样式使用 scoped
8. 提交规范
- 遵循 Conventional Commits 规范
- 提交信息必须清晰描述改动内容
- 禁止提交大文件

View File

@ -1,16 +1,16 @@
---
description:
globs:
alwaysApply: false
description:
globs:
alwaysApply: true
---
### 技术栈
- Javascript
- Vue3
- vite
- axios
- element
- element-plus
- pinia
- mockjs
- mockjs(vite-plugin-mock)
- sass
### 包管理器
@ -27,7 +27,7 @@ alwaysApply: false
- api/ # API接口封装
- utils/ # 工具函数
- styles/ # 全局样式
- mock/ # Mock数据
- mocks/ # Mock数据
- App.vue # 根组件
- main.js # 入口文件
@ -42,8 +42,8 @@ alwaysApply: false
2. 代码风格
- 使用 ESLint + Prettier 进行代码格式化
- 组件内使用 `<script setup>` 语法
- 使用 TypeScript 进行类型检查
- 遵循 Vue3 组合式 API 规范
- 使用 JavaScript 进行类型检查
3. 组件开发
- 组件必须包含 name 属性
@ -64,18 +64,21 @@ alwaysApply: false
6. API 规范
- API 请求统一在 api 目录下管理
- 使用 axios 进行请求封装
- 新建请求需要引用utils/request.js
- 统一错误处理
- 请求参数和响应数据需要定义类型
7. 样式规范
7. mock 规范
- 生产环境允许mock数据
8. 样式规范
- 使用 SCSS 预处理器
- 遵循 BEM 命名规范
- 全局样式统一在 styles 目录下管理
- 组件样式使用 scoped
8. 提交规范
9. 提交规范
- 遵循 Conventional Commits 规范
- 提交信息必须清晰描述改动内容
- 禁止提交大文件
- 禁止提交大文件

View File

@ -63,6 +63,7 @@
"typescript": "^5.3.3",
"vite": "^5.1.4",
"vite-plugin-mkcert": "^1.17.8",
"vite-plugin-mock": "^3.0.2",
"vite-plugin-vue-devtools": "^7.0.19",
"vue-tsc": "^1.8.27"
}

View File

@ -1,4 +1,4 @@
import { sseRequest, httpRequest } from '@/utils/request'
import { httpRequest, sseRequest } from '@/utils/request'
export function sendMessage(data, token) {
return sseRequest({
@ -8,11 +8,11 @@ export function sendMessage(data, token) {
'Authorization': `Bearer ${token}`
}
})
}
}
export function getChatModes() {
return httpRequest({
url: '/api/v1/chat-modes',
url: '/api/chat/modes',
method: 'POST',
})
}
}

44
src/api/user.js Normal file
View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 获取用户列表
export function getUsers(params) {
return request({
url: '/api/users',
method: 'get',
params
})
}
// 获取用户详情
export function getUserDetail(id) {
return request({
url: `/api/users/${id}`,
method: 'get'
})
}
// 创建用户
export function createUser(data) {
return request({
url: '/api/users',
method: 'post',
data
})
}
// 更新用户
export function updateUser(id, data) {
return request({
url: `/api/users/${id}`,
method: 'put',
data
})
}
// 删除用户
export function deleteUser(id) {
return request({
url: `/api/users/${id}`,
method: 'delete'
})
}

View File

@ -1,22 +1,18 @@
import { createApp } from "vue";
import 'element-plus/theme-chalk/dark/css-vars.css'
import '@/styles/element-variables.scss'
import { router } from "@/router/index";
import { applyDisplayMode, useSettingsStore } from '@/store/settings'; // Import store and helper
import '@/styles/element-variables.scss';
import "@/styles/style.css";
import App from "./App.vue";
import {router} from "@/router/index";
import { createPinia } from "pinia";
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
import { useSettingsStore, applyDisplayMode } from '@/store/settings'; // Import store and helper
import { setTheme } from '@/styles/theme'; // Import setTheme
import 'element-plus/theme-chalk/dark/css-vars.css';
import { createPinia } from "pinia";
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate';
import { createApp } from "vue";
import App from "./App.vue";
// 引入 Element Plus
import ElementPlus from 'element-plus'
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
import ElementPlus from 'element-plus';
import zhCn from 'element-plus/dist/locale/zh-cn.mjs';
// 在开发环境下引入mock
// if (import.meta.env.VITE_APP_MOCK === 'true') {
import('@/mocks')
// }
const pinia = createPinia();
pinia.use(piniaPluginPersistedstate)
@ -43,4 +39,4 @@ app.use(router);
app.use(ElementPlus, {
locale: zhCn,
})
app.mount("#app");
app.mount("#app");

View File

@ -1,18 +1,12 @@
import Mock from 'mockjs'
import { createProdMockServer } from 'vite-plugin-mock/client'
import chatMocks from './modules/chat'
import userMocks from './modules/user'
// 设置延迟时间
Mock.setup({
timeout: '200-600'
})
// 收集所有mock模块
const mockModules = [...chatMocks, ...userMocks]
// 自动导入所有mock文件
const modules = import.meta.glob('./modules/*.js', { eager: true })
export function setupProdMockServer() {
createProdMockServer(mockModules)
}
// 注册所有mock模块
Object.values(modules).forEach(module => {
if (module.default) {
module.default(Mock)
}
})
export default Mock
export default mockModules

View File

@ -1,8 +1,15 @@
export default function (Mock) {
import chatModes from '../data/chatModes.json'
export default [
// 获取聊天模式配置
Mock.mock(/\/api\/chat\/modes/, 'get', {
'code': 200,
'message': 'success',
'data': '/data/chatModes.json'
})
}
{
url: '/api/chat/modes',
method: 'POST',
response: () => {
return {
code: 200,
message: 'success',
data: chatModes
}
}
}
]

View File

@ -1,55 +1,85 @@
export default function (Mock) {
export default [
// 用户列表
Mock.mock(/\/api\/users/, 'get', {
'code': 200,
'message': 'success',
'data|10': [{
'id|+1': 1,
'name': '@cname',
'age|18-60': 1,
'gender|1': ['男', '女'],
'email': '@email',
'phone': /^1[3-9]\d{9}$/,
'address': '@county(true)',
'createTime': '@datetime'
}]
})
{
url: '/api/users',
method: 'get',
response: () => {
return {
code: 200,
message: 'success',
data: Array.from({ length: 10 }, (_, index) => ({
id: index + 1,
name: `@cname`,
age: Math.floor(Math.random() * 42) + 18,
gender: Math.random() > 0.5 ? '男' : '女',
email: `@email`,
phone: /^1[3-9]\d{9}$/,
address: `@county(true)`,
createTime: `@datetime`
}))
}
}
},
// 用户详情
Mock.mock(/\/api\/users\/\d+/, 'get', {
'code': 200,
'message': 'success',
'data': {
'id|+1': 1,
'name': '@cname',
'age|18-60': 1,
'gender|1': ['男', '女'],
'email': '@email',
'phone': /^1[3-9]\d{9}$/,
'address': '@county(true)',
'createTime': '@datetime'
{
url: '/api/users/:id',
method: 'get',
response: ({ query }) => {
return {
code: 200,
message: 'success',
data: {
id: query.id,
name: `@cname`,
age: Math.floor(Math.random() * 42) + 18,
gender: Math.random() > 0.5 ? '男' : '女',
email: `@email`,
phone: /^1[3-9]\d{9}$/,
address: `@county(true)`,
createTime: `@datetime`
}
}
}
})
},
// 创建用户
Mock.mock(/\/api\/users/, 'post', {
'code': 200,
'message': 'success',
'data': {
'id': '@id',
'createTime': '@datetime'
{
url: '/api/users',
method: 'post',
response: () => {
return {
code: 200,
message: 'success',
data: {
id: `@id`,
createTime: `@datetime`
}
}
}
})
},
// 更新用户
Mock.mock(/\/api\/users\/\d+/, 'put', {
'code': 200,
'message': 'success'
})
{
url: '/api/users/:id',
method: 'put',
response: () => {
return {
code: 200,
message: 'success'
}
}
},
// 删除用户
Mock.mock(/\/api\/users\/\d+/, 'delete', {
'code': 200,
'message': 'success'
})
}
{
url: '/api/users/:id',
method: 'delete',
response: () => {
return {
code: 200,
message: 'success'
}
}
}
]

View File

@ -1,5 +1,5 @@
import { ChatRound, Monitor } from '@element-plus/icons-vue';
import { createRouter, createWebHistory } from "vue-router";
import { ChatRound } from '@element-plus/icons-vue'
const routes = [
{
@ -24,6 +24,15 @@ const routes = [
},
component: () => import("@/views/chat/index.vue"),
},
{
path: "/test",
name: "test",
meta: {
icon: Monitor,
title: "API测试"
},
component: () => import("@/views/chat/test/TestApi.vue"),
},
];
export const router = createRouter({
@ -41,4 +50,4 @@ router.beforeEach((to, from, next) => {
}
})
export default router;
export default router;

View File

@ -1,28 +1,33 @@
import axios from 'axios'
import { fetchEventSource } from '@microsoft/fetch-event-source'
import axios from 'axios'
import { ElMessage } from 'element-plus'
// TODO: 完善拦截器
// 判断是否在 Electron 环境中
const isElectron = window && window.process && window.process.type
const service = axios.create({
baseURL: isElectron ? process.env.VITE_APP_BASE_API : import.meta.env.VITE_APP_BASE_API,
baseURL: isElectron ? process.env.VITE_APP_BASE_API : '',
timeout: 30000
})
// 请求拦截器
service.interceptors.request.use(
config => {
// 如果配置中已经包含了 Authorization header则使用配置中的值
// 自动注入 token
if (!config.headers['Authorization']) {
const token = localStorage.getItem('token')
if (token) {
config.headers['Authorization'] = `Bearer ${token}`
}
}
config.headers['Content-Type'] = 'application/json'
// 支持自定义 Content-Type
config.headers['Content-Type'] = config.headers['Content-Type'] || 'application/json'
return config
},
error => {
ElMessage.error('请求发送失败')
return Promise.reject(error)
}
)
@ -30,9 +35,27 @@ service.interceptors.request.use(
// 响应拦截器
service.interceptors.response.use(
response => {
console.log(response, 'response')
// 统一处理后端自定义 code
if (response.data && response.data.code !== undefined && response.data.code !== 200) {
ElMessage.error(response.data.message || '请求失败')
// 401 未登录/登录失效
if (response.data.code === 401) {
// 可跳转登录页
}
return Promise.reject(response.data)
}
return response.data
},
error => {
// 统一处理 HTTP 错误
let msg = '请求出错'
if (error.response) {
msg = error.response.data?.message || `HTTP ${error.response.status}`
} else if (error.message) {
msg = error.message
}
ElMessage.error(msg)
return Promise.reject(error)
}
)
@ -42,12 +65,10 @@ export const sseRequest = (config) => {
return new Promise((resolve) => {
try {
const url = new URL(`${config.url}`, window.location.origin)
// const baseURL = isElectron ? process.env.VITE_APP_BASE_API : import.meta.env.VITE_APP_BASE_API
// const url = new URL(`${config.url}`, baseURL)
const ctrl = new AbortController()
let messageQueue = []
let resolveQueue = null
const messageGenerator = async function* () {
const source = new fetchEventSource(url.toString(), {
method: 'POST',
@ -55,21 +76,10 @@ export const sseRequest = (config) => {
'Authorization': config.headers?.Authorization || `Bearer ${localStorage.getItem('token')}`,
'Content-Type': 'application/json',
'Accept': 'text/event-stream',
// 'Cache-Control': 'no-cache',
// 'Connection': 'keep-alive'
},
body: JSON.stringify(config.params),
signal: ctrl.signal,
openWhenHidden: true,
// credentials: 'include',
// keepalive: true,
// retry: 1000,
// onopen(response) {
// if (response.ok && response.headers.get('content-type')?.includes('text/event-stream')) {
// return;
// }
// throw new Error(`Failed to open SSE connection: ${response.status} ${response.statusText}`);
// },
onmessage: (event) => {
try {
const data = JSON.parse(event.data)
@ -118,7 +128,7 @@ export const sseRequest = (config) => {
ctrl.abort()
}
}
resolve(messageGenerator())
} catch (error) {
console.error('SSE request setup failed:', error)
@ -141,32 +151,36 @@ export const httpRequest = (config) => {
} = config
// 构建请求配置
const reqMethod = method.toUpperCase()
const requestConfig = {
url,
method,
params,
data,
method: reqMethod,
headers: {
...headers,
'Content-Type': 'application/json'
'Content-Type': headers['Content-Type'] || 'application/json'
},
...restConfig
}
if (["GET", "DELETE"].includes(reqMethod)) {
requestConfig.params = params || data
} else {
requestConfig.data = data || params
}
console.log(requestConfig, 'requestConfig')
// 发送请求
service(requestConfig)
.then(response => {
resolve(response)
})
.catch(error => {
console.error('HTTP request failed:', error)
// 错误已在拦截器中处理
reject(error)
})
} catch (error) {
console.error('HTTP request setup failed:', error)
ElMessage.error('请求配置异常')
reject(error)
}
})
}
export default service
export default httpRequest

View File

@ -9,7 +9,8 @@
</div>
<div v-if="showBackground" class="background-section">
<div class="background-content">
<div class="background-text" v-html="formatMarkdown(chatStore.chatModes[chatStore.currentMode].chatBackground)"></div>
<div class="background-text"
v-html="formatMarkdown(chatStore.chatModes[chatStore.currentMode].chatBackground)"></div>
</div>
</div>
</div>
@ -28,15 +29,13 @@
</div>
<div class="message-actions">
<!-- 改进建议 -->
<EvaluationButton
:show-evaluation="message.showEvaluation"
:responding-type="message.respondingType"
@toggle="chatStore.toggleEvaluation(message.messageId)"
/>
<EvaluationButton :show-evaluation="message.showEvaluation" :responding-type="message.respondingType"
@toggle="chatStore.toggleEvaluation(message.messageId)" />
</div>
<!-- 评价总结内容 -->
<div v-if="message.showEvaluation && (message.pingfen || message.zongjie)" class="evaluation-section">
<el-button class="evaluation-close-btn" type="info" size="small" circle :icon="Close" @click="chatStore.toggleEvaluation(message.messageId)" />
<el-button class="evaluation-close-btn" type="info" size="small" circle :icon="Close"
@click="chatStore.toggleEvaluation(message.messageId)" />
<div class="evaluation-content">
<div class="evaluation-text pingfen" v-html="formatMarkdown(message.pingfen, 'pingfen')"></div>
<div class="evaluation-text zongjie" v-html="formatMarkdown(message.zongjie, 'zongjie')"></div>
@ -66,11 +65,8 @@
</div>
<div class="message-actions">
<!-- 文字转语音 -->
<TextToVoiceButton
v-if="message.kehu && message.respondingType !== 'kehu'"
class="message-action-button"
:text="message.kehu"
/>
<TextToVoiceButton v-if="message.kehu && message.respondingType !== 'kehu'"
class="message-action-button" :text="message.kehu" />
</div>
</div>
</div>
@ -83,25 +79,11 @@
</div>
<!-- Input Area Wrapper -->
<div class="input-area-wrapper">
<el-button
class="mode-switch-btn"
:icon="isVoiceInputMode ? ChatDotSquare : Microphone"
circle
@click="switchInputMode"
:disabled="isInputDisabled"
/>
<ChatInput
v-if="!isVoiceInputMode"
:is-disabled="isInputDisabled"
@send="handleSendMessage"
ref="chatInputRef"
/>
<VoiceInput
v-else
:is-disabled="isInputDisabled"
@sendText="handleVoiceSendText"
@fillInput="handleVoiceFillInput"
/>
<el-button class="mode-switch-btn" :icon="isVoiceInputMode ? ChatDotSquare : Microphone" circle
@click="switchInputMode" :disabled="isInputDisabled" />
<ChatInput v-if="!isVoiceInputMode" :is-disabled="isInputDisabled" @send="handleSendMessage" ref="chatInputRef" />
<VoiceInput v-else :is-disabled="isInputDisabled" @sendText="handleVoiceSendText"
@fillInput="handleVoiceFillInput" />
</div>
<!-- 总结弹窗 -->
<div v-if="lastMessageWithDafen" class="summary-panel" :class="{ 'summary-panel-collapsed': isSummaryCollapsed }">
@ -115,18 +97,18 @@
</template>
<script setup>
import { ref, onMounted, onUnmounted, nextTick, watch, computed, defineOptions } from 'vue'
import { marked } from 'marked'
import customAvatarUrl from '@/assets/custom.png'
import userAvatarUrl from '@/assets/user.png'
import { useChatStore } from '@/store/chat'
import ChatHeader from '@/views/chat/components/ChatHeader.vue'
import ChatInput from '@/views/chat/components/ChatInput.vue'
import VoiceInput from '@/views/chat/components/VoiceInput.vue'
import EvaluationButton from '@/views/chat/components/EvaluationButton.vue'
import TextToVoiceButton from '@/views/chat/components/TextToVoiceButton.vue'
import { ElTag, ElButton, ElAvatar } from 'element-plus'
import { Microphone, ChatDotSquare, Close } from '@element-plus/icons-vue'
import userAvatarUrl from '@/assets/user.png';
import customAvatarUrl from '@/assets/custom.png';
import VoiceInput from '@/views/chat/components/VoiceInput.vue'
import { ChatDotSquare, Close, Microphone } from '@element-plus/icons-vue'
import { ElAvatar, ElButton, ElTag } from 'element-plus'
import { marked } from 'marked'
import { computed, nextTick, onMounted, onUnmounted, ref, watch } from 'vue'
defineOptions({
name: 'ChatInterface'
@ -258,7 +240,7 @@ const handleSendMessage = (message) => {
chatStore.sendMessage(message);
shouldAutoScroll.value = true; //
scrollToBottom(true);
//
if (isVoiceInputMode.value) {
isVoiceInputMode.value = false;
@ -317,19 +299,19 @@ const toggleSummary = () => {
//
const formatTimestamp = (timestamp) => {
if (!timestamp) return ''
//
const timestampNum = typeof timestamp === 'string' ? parseInt(timestamp) : timestamp
//
const date = new Date(timestampNum.toString().length === 10 ? timestampNum * 1000 : timestampNum)
//
if (isNaN(date.getTime())) {
console.error('Invalid timestamp:', timestamp)
return ''
}
return date.toLocaleString('zh-CN', {
year: 'numeric',
month: '2-digit',
@ -413,7 +395,7 @@ html.dark .chat-container {
justify-content: center;
align-items: center;
cursor: pointer;
.background-btn {
font-size: 12px;
padding: 4px 12px;
@ -445,7 +427,7 @@ html.dark .chat-container {
max-height: 300px;
overflow-y: auto;
border-radius: 8px;
&::-webkit-scrollbar {
width: 8px;
height: 8px;
@ -476,12 +458,14 @@ html.dark .chat-container {
:deep(p) {
margin: 0 0 12px 0;
line-height: 1.6;
&:last-child {
margin-bottom: 0;
}
}
:deep(ul), :deep(ol) {
:deep(ul),
:deep(ol) {
margin: 8px 0;
padding-left: 20px;
}
@ -531,7 +515,7 @@ html.dark .background-section .background-content {
z-index: 1;
scroll-behavior: smooth;
-webkit-overflow-scrolling: touch;
&::-webkit-scrollbar {
width: 8px;
}
@ -565,19 +549,23 @@ html.dark .background-section .background-content {
display: flex;
align-items: flex-start;
gap: 12px;
&.user {
flex-direction: row-reverse;
justify-content: flex-start;
.message-text {
background-color: var(--el-color-primary);
color: var(--el-color-white);
border-color: transparent;
}
.message-content {
display: flex;
flex-direction: column;
align-items: flex-end;
}
.message-timestamp {
right: 0;
}
@ -586,10 +574,12 @@ html.dark .background-section .background-content {
&.assistant {
flex-direction: row;
justify-content: flex-start;
.message-text {
background-color: var(--el-bg-color);
color: var(--el-text-color-primary);
}
.message-content {
display: flex;
flex-direction: column;
@ -616,7 +606,7 @@ html.dark .background-section .background-content {
position: relative;
display: inline-block;
max-width: 100%;
.message-text {
// min-width: 60px;
line-height: 1.5;
@ -664,7 +654,7 @@ html.dark .background-section .background-content {
background: var(--el-fill-color-light);
overflow-y: scroll;
position: relative;
&::-webkit-scrollbar {
width: 8px;
height: 8px;
@ -686,7 +676,7 @@ html.dark .background-section .background-content {
background: var(--el-border-color);
}
}
.evaluation-text {
opacity: 0.9;
color: var(--el-text-color-regular);
@ -706,7 +696,8 @@ html.dark .background-section .background-content {
line-height: 1.6;
}
:deep(ul), :deep(ol) {
:deep(ul),
:deep(ol) {
margin: 8px 0;
padding-left: 20px;
}
@ -735,6 +726,7 @@ html.dark .background-section .background-content {
color: var(--el-text-color-primary);
transition: color 0.2s;
}
.evaluation-close-btn:hover {
color: var(--el-color-primary);
}
@ -742,11 +734,13 @@ html.dark .background-section .background-content {
.input-area-wrapper {
display: flex;
align-items: flex-end;
& > :deep(.chat-input-area),
& > :deep(div > .voice-trigger-btn) {
&> :deep(.chat-input-area),
&> :deep(div > .voice-trigger-btn) {
flex: 1;
min-width: 0;
}
gap: 8px;
padding: 16px 20px;
border-top: 1px solid var(--el-border-color-light);
@ -785,7 +779,7 @@ html.dark .background-section .background-content {
transform: translateY(-20px);
visibility: hidden;
}
.summary-header {
border-bottom: none;
}
@ -833,14 +827,17 @@ html.dark .background-section .background-content {
:deep(p) {
margin: 0 0 12px 0;
&:last-child {
margin-bottom: 0;
}
}
:deep(ul), :deep(ol) {
:deep(ul),
:deep(ol) {
margin: 8px 0;
padding-left: 20px;
&:last-child {
margin-bottom: 0;
}
@ -886,7 +883,7 @@ html.dark .background-section .background-content {
opacity: 1;
}
}
.message-text {
// min-width: 60px;
line-height: 1.5;
@ -916,7 +913,7 @@ html.dark .background-section .background-content {
display: flex;
justify-content: center;
margin: 20px 0;
.end-tag {
font-size: 12px;
padding: 4px 12px;
@ -936,11 +933,26 @@ html.dark .background-section .background-content {
margin: 0 1px;
animation: bounce 1.4s infinite ease-in-out;
}
.typing-indicator span:nth-child(1) { animation-delay: -0.32s; }
.typing-indicator span:nth-child(2) { animation-delay: -0.16s; }
.typing-indicator span:nth-child(1) {
animation-delay: -0.32s;
}
.typing-indicator span:nth-child(2) {
animation-delay: -0.16s;
}
@keyframes bounce {
0%, 80%, 100% { transform: scale(0.8); }
40% { transform: scale(1.2); }
0%,
80%,
100% {
transform: scale(0.8);
}
40% {
transform: scale(1.2);
}
}
.message-actions .message-action-button {
@ -954,4 +966,4 @@ html.dark .background-section .background-content {
opacity: 1;
pointer-events: auto;
}
</style>
</style>

View File

@ -0,0 +1,94 @@
<template>
<div class="test-api-container">
<h1>API 测试页面</h1>
<div class="test-section">
<h2>测试获取聊天模式</h2>
<el-button @click="testGetChatModes" type="primary">获取聊天模式</el-button>
<div class="response-area">
<h3>响应结果</h3>
<pre>{{ chatModesResponse }}</pre>
</div>
</div>
<div class="test-section">
<h2>测试获取用户列表</h2>
<el-button @click="testGetUsers" type="primary">获取用户列表</el-button>
<div class="response-area">
<h3>用户列表响应</h3>
<pre>{{ usersResponse }}</pre>
</div>
</div>
</div>
</template>
<script>
import { getChatModes } from '@/api/chat'
import { getUsers } from '@/api/user'
export default {
name: 'TestApi',
data() {
return {
message: '',
sendMessageResponse: '',
chatModesResponse: '',
usersResponse: '',
token: '' // token
}
},
methods: {
async testSendMessage() {
try {
const response = await sendMessage({
message: this.message
}, this.token)
this.sendMessageResponse = JSON.stringify(response, null, 2)
} catch (error) {
this.sendMessageResponse = `错误:${error.message}`
}
},
async testGetChatModes() {
try {
const response = await getChatModes()
this.chatModesResponse = JSON.stringify(response, null, 2)
} catch (error) {
this.chatModesResponse = `错误:${error.message}`
}
},
async testGetUsers() {
try {
const response = await getUsers()
this.usersResponse = JSON.stringify(response, null, 2)
} catch (error) {
this.usersResponse = `错误:${error.message}`
}
}
}
}
</script>
<style scoped>
.test-api-container {
padding: 20px;
max-width: 800px;
margin: 0 auto;
}
.test-section {
margin-bottom: 30px;
padding: 20px;
border: 1px solid #dcdfe6;
border-radius: 4px;
}
.response-area {
margin-top: 20px;
padding: 10px;
background-color: #f5f7fa;
border-radius: 4px;
}
pre {
white-space: pre-wrap;
word-wrap: break-word;
}
</style>

View File

@ -1,26 +1,23 @@
import { fileURLToPath, URL } from 'node:url'
import { fileURLToPath, URL } from 'node:url';
import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import vue from '@vitejs/plugin-vue';
import { defineConfig, loadEnv } from 'vite';
// import electron from 'vite-plugin-electron'
// import vueDevTools from 'vite-plugin-vue-devtools'
import mkcert from "vite-plugin-mkcert";
import { viteMockServe } from 'vite-plugin-mock';
// https://vite.dev/config/
export default defineConfig(({ command, mode }) => {
const env = loadEnv(mode, process.cwd())
console.log('\x1b[36m%s\x1b[0m', '[VITE_APP_ENV]', env.VITE_APP_ENV)
console.log('\x1b[33m%s\x1b[0m', '[VITE_APP_BASE_API]', env.VITE_APP_BASE_API)
// 将环境变量转换为 process.env 格式
const processEnv = {}
Object.keys(env).forEach(key => {
processEnv[key] = JSON.stringify(env[key])
})
// 始终启用mock
const isMockEnabled = true
return {
plugins: [
vue(),
@ -29,6 +26,20 @@ export default defineConfig(({ command, mode }) => {
autoUpgrade: true,
force: true,
}),
viteMockServe({
mockPath: 'src/mocks',
localEnabled: true,
prodEnabled: false,
supportTs: true,
watchFiles: true,
logger: true,
injectFile: 'src/main.js',
injectCode: `
import { setupProdMockServer } from 'src/mocks/index.js';
setupProdMockServer();
`,
}),
// electron({
// entry: 'electron/main.js',
// }),
@ -57,22 +68,9 @@ export default defineConfig(({ command, mode }) => {
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, ''),
secure: false,
ws: true,
configure: (proxy, options) => {
// proxy.on('proxyReq', (proxyReq, req, res) => {
// const targetOrigin = new URL(env.VITE_APP_BASE_API).origin;
// proxyReq.setHeader('Origin', targetOrigin);
// if (req.originalUrl && req.originalUrl.includes('chat-messages')) {
// proxyReq.setHeader('Accept', 'text/event-stream');
// }
// });
// proxy.on('proxyRes', (proxyRes, req, res) => {
// if (req.originalUrl && req.originalUrl.includes('chat-messages')) {
// proxyRes.headers['content-type'] = 'text/event-stream';
// proxyRes.headers['Cache-Control'] = 'no-cache';
// proxyRes.headers['Connection'] = 'keep-alive';
// }
// });
}
}
}
@ -94,9 +92,7 @@ export default defineConfig(({ command, mode }) => {
}
},
define: {
'process.env': processEnv,
// 注入mock环境变量
'import.meta.env.VITE_APP_MOCK': JSON.stringify(isMockEnabled)
'process.env': processEnv
}
}
})

480
yarn.lock
View File

@ -774,18 +774,17 @@
fastq "^1.6.0"
"@nuxt/kit@^3.14.1592":
version "3.16.2"
resolved "https://registry.npmmirror.com/@nuxt/kit/-/kit-3.16.2.tgz#9fbb2ef3bd9ebeb499b4cc5215e2f857c54b75d7"
integrity sha512-K1SAUo2vweTfudKZzjKsZ5YJoxPLTspR5qz5+G61xtZreLpsdpDYfBseqsIAl5VFLJuszeRpWQ01jP9LfQ6Ksw==
version "3.17.0"
resolved "https://registry.npmmirror.com/@nuxt/kit/-/kit-3.17.0.tgz#fed4532b603049a00a70bb32182cb1e3970c755a"
integrity sha512-+aS+Enqqo2qSbyl0APPPxX8BPYsaRcZ8dFRbpCOfK38lv2ckoHKCWNkT8L/7q2w+1pjNZaxlUoW9Mku1vdEb/A==
dependencies:
c12 "^3.0.2"
c12 "^3.0.3"
consola "^3.4.2"
defu "^6.1.4"
destr "^2.0.3"
destr "^2.0.5"
errx "^0.1.0"
exsolve "^1.0.4"
globby "^14.1.0"
ignore "^7.0.3"
exsolve "^1.0.5"
ignore "^7.0.4"
jiti "^2.4.2"
klona "^2.0.6"
knitwork "^1.2.0"
@ -795,10 +794,11 @@
pkg-types "^2.1.0"
scule "^1.3.0"
semver "^7.7.1"
std-env "^3.8.1"
ufo "^1.5.4"
std-env "^3.9.0"
tinyglobby "^0.2.13"
ufo "^1.6.1"
unctx "^2.4.1"
unimport "^4.1.3"
unimport "^5.0.0"
untyped "^2.0.0"
"@parcel/watcher-android-arm64@2.5.1":
@ -909,116 +909,111 @@
estree-walker "^2.0.2"
picomatch "^4.0.2"
"@rollup/rollup-android-arm-eabi@4.40.0":
version "4.40.0"
resolved "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.0.tgz#d964ee8ce4d18acf9358f96adc408689b6e27fe3"
integrity sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg==
"@rollup/rollup-android-arm-eabi@4.40.1":
version "4.40.1"
resolved "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.1.tgz#e1562d360bca73c7bef6feef86098de3a2f1d442"
integrity sha512-kxz0YeeCrRUHz3zyqvd7n+TVRlNyTifBsmnmNPtk3hQURUyG9eAB+usz6DAwagMusjx/zb3AjvDUvhFGDAexGw==
"@rollup/rollup-android-arm64@4.40.0":
version "4.40.0"
resolved "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.0.tgz#9b5e130ecc32a5fc1e96c09ff371743ee71a62d3"
integrity sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w==
"@rollup/rollup-android-arm64@4.40.1":
version "4.40.1"
resolved "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.1.tgz#37ba63940211673e15dcc5f469a78e34276dbca7"
integrity sha512-PPkxTOisoNC6TpnDKatjKkjRMsdaWIhyuMkA4UsBXT9WEZY4uHezBTjs6Vl4PbqQQeu6oION1w2voYZv9yquCw==
"@rollup/rollup-darwin-arm64@4.40.0":
version "4.40.0"
resolved "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.0.tgz#ef439182c739b20b3c4398cfc03e3c1249ac8903"
integrity sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ==
"@rollup/rollup-darwin-arm64@4.40.1":
version "4.40.1"
resolved "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.1.tgz#58b1eb86d997d71dabc5b78903233a3c27438ca0"
integrity sha512-VWXGISWFY18v/0JyNUy4A46KCFCb9NVsH+1100XP31lud+TzlezBbz24CYzbnA4x6w4hx+NYCXDfnvDVO6lcAA==
"@rollup/rollup-darwin-x64@4.40.0":
version "4.40.0"
resolved "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.0.tgz#d7380c1531ab0420ca3be16f17018ef72dd3d504"
integrity sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA==
"@rollup/rollup-darwin-x64@4.40.1":
version "4.40.1"
resolved "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.1.tgz#5e22dab3232b1e575d930ce891abb18fe19c58c9"
integrity sha512-nIwkXafAI1/QCS7pxSpv/ZtFW6TXcNUEHAIA9EIyw5OzxJZQ1YDrX+CL6JAIQgZ33CInl1R6mHet9Y/UZTg2Bw==
"@rollup/rollup-freebsd-arm64@4.40.0":
version "4.40.0"
resolved "https://registry.npmmirror.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.0.tgz#cbcbd7248823c6b430ce543c59906dd3c6df0936"
integrity sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg==
"@rollup/rollup-freebsd-arm64@4.40.1":
version "4.40.1"
resolved "https://registry.npmmirror.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.1.tgz#04c892d9ff864d66e31419634726ab0bebb33707"
integrity sha512-BdrLJ2mHTrIYdaS2I99mriyJfGGenSaP+UwGi1kB9BLOCu9SR8ZpbkmmalKIALnRw24kM7qCN0IOm6L0S44iWw==
"@rollup/rollup-freebsd-x64@4.40.0":
version "4.40.0"
resolved "https://registry.npmmirror.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.0.tgz#96bf6ff875bab5219c3472c95fa6eb992586a93b"
integrity sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw==
"@rollup/rollup-freebsd-x64@4.40.1":
version "4.40.1"
resolved "https://registry.npmmirror.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.1.tgz#f4b1e091f7cf5afc9e3a029d70128ad56409ecfb"
integrity sha512-VXeo/puqvCG8JBPNZXZf5Dqq7BzElNJzHRRw3vjBE27WujdzuOPecDPc/+1DcdcTptNBep3861jNq0mYkT8Z6Q==
"@rollup/rollup-linux-arm-gnueabihf@4.40.0":
version "4.40.0"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.0.tgz#d80cd62ce6d40f8e611008d8dbf03b5e6bbf009c"
integrity sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA==
"@rollup/rollup-linux-arm-gnueabihf@4.40.1":
version "4.40.1"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.1.tgz#c8814bb5ce047a81b1fe4a33628dfd4ac52bd864"
integrity sha512-ehSKrewwsESPt1TgSE/na9nIhWCosfGSFqv7vwEtjyAqZcvbGIg4JAcV7ZEh2tfj/IlfBeZjgOXm35iOOjadcg==
"@rollup/rollup-linux-arm-musleabihf@4.40.0":
version "4.40.0"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.0.tgz#75440cfc1e8d0f87a239b4c31dfeaf4719b656b7"
integrity sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg==
"@rollup/rollup-linux-arm-musleabihf@4.40.1":
version "4.40.1"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.1.tgz#5b4e7bd83cbebbf5ffe958802dcfd4ee34bf73a3"
integrity sha512-m39iO/aaurh5FVIu/F4/Zsl8xppd76S4qoID8E+dSRQvTyZTOI2gVk3T4oqzfq1PtcvOfAVlwLMK3KRQMaR8lg==
"@rollup/rollup-linux-arm64-gnu@4.40.0":
version "4.40.0"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.0.tgz#ac527485ecbb619247fb08253ec8c551a0712e7c"
integrity sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==
"@rollup/rollup-linux-arm64-gnu@4.40.1":
version "4.40.1"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.1.tgz#141c848e53cee011e82a11777b8a51f1b3e8d77c"
integrity sha512-Y+GHnGaku4aVLSgrT0uWe2o2Rq8te9hi+MwqGF9r9ORgXhmHK5Q71N757u0F8yU1OIwUIFy6YiJtKjtyktk5hg==
"@rollup/rollup-linux-arm64-musl@4.40.0":
version "4.40.0"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.0.tgz#74d2b5cb11cf714cd7d1682e7c8b39140e908552"
integrity sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==
"@rollup/rollup-linux-arm64-musl@4.40.1":
version "4.40.1"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.1.tgz#22ebeaf2fa301aa4aa6c84b760e6cd1d1ac7eb1e"
integrity sha512-jEwjn3jCA+tQGswK3aEWcD09/7M5wGwc6+flhva7dsQNRZZTe30vkalgIzV4tjkopsTS9Jd7Y1Bsj6a4lzz8gQ==
"@rollup/rollup-linux-loongarch64-gnu@4.40.0":
version "4.40.0"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.0.tgz#a0a310e51da0b5fea0e944b0abd4be899819aef6"
integrity sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg==
"@rollup/rollup-linux-loongarch64-gnu@4.40.1":
version "4.40.1"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.1.tgz#20b77dc78e622f5814ff8e90c14c938ceb8043bc"
integrity sha512-ySyWikVhNzv+BV/IDCsrraOAZ3UaC8SZB67FZlqVwXwnFhPihOso9rPOxzZbjp81suB1O2Topw+6Ug3JNegejQ==
"@rollup/rollup-linux-powerpc64le-gnu@4.40.0":
version "4.40.0"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.0.tgz#4077e2862b0ac9f61916d6b474d988171bd43b83"
integrity sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw==
"@rollup/rollup-linux-powerpc64le-gnu@4.40.1":
version "4.40.1"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.1.tgz#2c90f99c987ef1198d4f8d15d754c286e1f07b13"
integrity sha512-BvvA64QxZlh7WZWqDPPdt0GH4bznuL6uOO1pmgPnnv86rpUpc8ZxgZwcEgXvo02GRIZX1hQ0j0pAnhwkhwPqWg==
"@rollup/rollup-linux-riscv64-gnu@4.40.0":
version "4.40.0"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.0.tgz#5812a1a7a2f9581cbe12597307cc7ba3321cf2f3"
integrity sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA==
"@rollup/rollup-linux-riscv64-gnu@4.40.1":
version "4.40.1"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.1.tgz#9336fd5e47d7f4760d02aa85f76976176eef53ca"
integrity sha512-EQSP+8+1VuSulm9RKSMKitTav89fKbHymTf25n5+Yr6gAPZxYWpj3DzAsQqoaHAk9YX2lwEyAf9S4W8F4l3VBQ==
"@rollup/rollup-linux-riscv64-musl@4.40.0":
version "4.40.0"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.0.tgz#973aaaf4adef4531375c36616de4e01647f90039"
integrity sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ==
"@rollup/rollup-linux-riscv64-musl@4.40.1":
version "4.40.1"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.1.tgz#d75b4d54d46439bb5c6c13762788f57e798f5670"
integrity sha512-n/vQ4xRZXKuIpqukkMXZt9RWdl+2zgGNx7Uda8NtmLJ06NL8jiHxUawbwC+hdSq1rrw/9CghCpEONor+l1e2gA==
"@rollup/rollup-linux-s390x-gnu@4.40.0":
version "4.40.0"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.0.tgz#9bad59e907ba5bfcf3e9dbd0247dfe583112f70b"
integrity sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw==
"@rollup/rollup-linux-s390x-gnu@4.40.1":
version "4.40.1"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.1.tgz#e9f09b802f1291839247399028beaef9ce034c81"
integrity sha512-h8d28xzYb98fMQKUz0w2fMc1XuGzLLjdyxVIbhbil4ELfk5/orZlSTpF/xdI9C8K0I8lCkq+1En2RJsawZekkg==
"@rollup/rollup-linux-x64-gnu@4.40.0":
version "4.40.0"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.0.tgz#68b045a720bd9b4d905f462b997590c2190a6de0"
integrity sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==
"@rollup/rollup-linux-x64-gnu@4.40.1":
version "4.40.1"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.1.tgz#0413169dc00470667dea8575c1129d4e7a73eb29"
integrity sha512-XiK5z70PEFEFqcNj3/zRSz/qX4bp4QIraTy9QjwJAb/Z8GM7kVUsD0Uk8maIPeTyPCP03ChdI+VVmJriKYbRHQ==
"@rollup/rollup-linux-x64-musl@4.40.0":
version "4.40.0"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.0.tgz#8e703e2c2ad19ba7b2cb3d8c3a4ad11d4ee3a282"
integrity sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw==
"@rollup/rollup-linux-x64-musl@4.40.1":
version "4.40.1"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.1.tgz#c76fd593323c60ea219439a00da6c6d33ffd0ea6"
integrity sha512-2BRORitq5rQ4Da9blVovzNCMaUlyKrzMSvkVR0D4qPuOy/+pMCrh1d7o01RATwVy+6Fa1WBw+da7QPeLWU/1mQ==
"@rollup/rollup-win32-arm64-msvc@4.40.0":
version "4.40.0"
resolved "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.0.tgz#c5bee19fa670ff5da5f066be6a58b4568e9c650b"
integrity sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ==
"@rollup/rollup-win32-arm64-msvc@4.40.1":
version "4.40.1"
resolved "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.1.tgz#c7724c386eed0bda5ae7143e4081c1910cab349b"
integrity sha512-b2bcNm9Kbde03H+q+Jjw9tSfhYkzrDUf2d5MAd1bOJuVplXvFhWz7tRtWvD8/ORZi7qSCy0idW6tf2HgxSXQSg==
"@rollup/rollup-win32-ia32-msvc@4.40.0":
version "4.40.0"
resolved "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.0.tgz#846e02c17044bd922f6f483a3b4d36aac6e2b921"
integrity sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA==
"@rollup/rollup-win32-ia32-msvc@4.40.1":
version "4.40.1"
resolved "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.1.tgz#7749e1b65cb64fe6d41ad1ad9e970a0ccc8ac350"
integrity sha512-DfcogW8N7Zg7llVEfpqWMZcaErKfsj9VvmfSyRjCyo4BI3wPEfrzTtJkZG6gKP/Z92wFm6rz2aDO7/JfiR/whA==
"@rollup/rollup-win32-x64-msvc@4.40.0":
version "4.40.0"
resolved "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.0.tgz#fd92d31a2931483c25677b9c6698106490cbbc76"
integrity sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ==
"@rollup/rollup-win32-x64-msvc@4.40.1":
version "4.40.1"
resolved "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.1.tgz#8078b71fe0d5825dcbf83d52a7dc858b39da165c"
integrity sha512-ECyOuDeH3C1I8jH2MK1RtBJW+YPMvSfT0a5NN0nHfQYnDSJ6tUiZH3gzwVP5/Kfh/+Tt7tpWVF9LXNTnhTJ3kA==
"@sec-ant/readable-stream@^0.4.1":
version "0.4.1"
resolved "https://registry.npmmirror.com/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz#60de891bb126abfdc5410fdc6166aca065f10a0c"
integrity sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==
"@sindresorhus/merge-streams@^2.1.0":
version "2.3.0"
resolved "https://registry.npmmirror.com/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz#719df7fb41766bc143369eaa0dd56d8dc87c9958"
integrity sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==
"@sindresorhus/merge-streams@^4.0.0":
version "4.0.0"
resolved "https://registry.npmmirror.com/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz#abb11d99aeb6d27f1b563c38147a72d50058e339"
@ -1042,9 +1037,9 @@
integrity sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==
"@types/node@^20.11.19":
version "20.17.30"
resolved "https://registry.npmmirror.com/@types/node/-/node-20.17.30.tgz#1d93f656d3b869dbef7b796568ac457606ba58d0"
integrity sha512-7zf4YyHA+jvBNfVrk2Gtvs6x7E8V+YDW05bNfG2XkWDJfYRXrTiP/DsB2zSYTaHX0bGIujTBQdMVAhb+j7mwpg==
version "20.17.32"
resolved "https://registry.npmmirror.com/@types/node/-/node-20.17.32.tgz#cb9703514cd8e172c11beff582c66006644c2d88"
integrity sha512-zeMXFn8zQ+UkjK4ws0RiOC9EWByyW1CcVmLe+2rQocXRsGEDxUCwPEIVgpsGcLHS/P8JkT0oa3839BRABS0oPw==
dependencies:
undici-types "~6.19.2"
@ -1277,6 +1272,14 @@ acorn@^8.14.0, acorn@^8.14.1:
resolved "https://registry.npmmirror.com/acorn/-/acorn-8.14.1.tgz#721d5dc10f7d5b5609a891773d47731796935dfb"
integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==
anymatch@~3.1.2:
version "3.1.3"
resolved "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
dependencies:
normalize-path "^3.0.0"
picomatch "^2.0.4"
async-validator@^4.2.5:
version "4.2.5"
resolved "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz#c96ea3332a521699d0afaaceed510a54656c6339"
@ -1300,9 +1303,9 @@ autoprefixer@^10.4.17, autoprefixer@^10.4.19:
postcss-value-parser "^4.2.0"
axios@^1.8.3, axios@^1.8.4:
version "1.8.4"
resolved "https://registry.npmmirror.com/axios/-/axios-1.8.4.tgz#78990bb4bc63d2cae072952d374835950a82f447"
integrity sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==
version "1.9.0"
resolved "https://registry.npmmirror.com/axios/-/axios-1.9.0.tgz#25534e3b72b54540077d33046f77e3b8d7081901"
integrity sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==
dependencies:
follow-redirects "^1.15.6"
form-data "^4.0.0"
@ -1313,6 +1316,11 @@ balanced-match@^1.0.0:
resolved "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
binary-extensions@^2.0.0:
version "2.3.0"
resolved "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522"
integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==
birpc@^2.3.0:
version "2.3.0"
resolved "https://registry.npmmirror.com/birpc/-/birpc-2.3.0.tgz#e5a402dc785ef952a2383ef3cfc075e0842f3e8c"
@ -1325,7 +1333,7 @@ brace-expansion@^2.0.1:
dependencies:
balanced-match "^1.0.0"
braces@^3.0.3:
braces@^3.0.3, braces@~3.0.2:
version "3.0.3"
resolved "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
@ -1354,7 +1362,14 @@ bundle-name@^4.1.0:
dependencies:
run-applescript "^7.0.0"
c12@^3.0.2:
bundle-require@^4.0.1:
version "4.2.1"
resolved "https://registry.npmmirror.com/bundle-require/-/bundle-require-4.2.1.tgz#4c450a5807381d20ade987bde8ac391544257919"
integrity sha512-7Q/6vkyYAwOmQNRw75x+4yRtZCZJXUDmHHlFdkiV0wgv/reNjtJwpu1jPJ0w2kbEpIM0uoKI3S4/f39dU7AjSA==
dependencies:
load-tsconfig "^0.2.3"
c12@^3.0.3:
version "3.0.3"
resolved "https://registry.npmmirror.com/c12/-/c12-3.0.3.tgz#4d6d4d35f084606ff616d1bcae60e6676eacd4bd"
integrity sha512-uC3MacKBb0Z15o5QWCHvHWj5Zv34pGQj9P+iXKSpTuSGFS0KKhUWf4t9AJ+gWjYOdmWCPEGpEzm8sS0iqbpo1w==
@ -1385,6 +1400,21 @@ caniuse-lite@^1.0.30001688, caniuse-lite@^1.0.30001702:
resolved "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001715.tgz#bd325a37ad366e3fe90827d74062807a34fbaeb2"
integrity sha512-7ptkFGMm2OAOgvZpwgA4yjQ5SQbrNVGdRjzH0pBdy1Fasvcr+KAeECmbCAECzTuDuoX0FCY8KzUxjf9+9kfZEw==
chokidar@^3.5.3:
version "3.6.0"
resolved "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b"
integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
dependencies:
anymatch "~3.1.2"
braces "~3.0.2"
glob-parent "~5.1.2"
is-binary-path "~2.1.0"
is-glob "~4.0.1"
normalize-path "~3.0.0"
readdirp "~3.6.0"
optionalDependencies:
fsevents "~2.3.2"
chokidar@^4.0.0, chokidar@^4.0.3:
version "4.0.3"
resolved "https://registry.npmmirror.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30"
@ -1431,6 +1461,16 @@ confbox@^0.2.1, confbox@^0.2.2:
resolved "https://registry.npmmirror.com/confbox/-/confbox-0.2.2.tgz#8652f53961c74d9e081784beed78555974a9c110"
integrity sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==
connect@^3.7.0:
version "3.7.0"
resolved "https://registry.npmmirror.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8"
integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==
dependencies:
debug "2.6.9"
finalhandler "1.1.2"
parseurl "~1.3.3"
utils-merge "1.0.1"
consola@^3.2.3, consola@^3.4.0, consola@^3.4.2:
version "3.4.2"
resolved "https://registry.npmmirror.com/consola/-/consola-3.4.2.tgz#5af110145397bb67afdab77013fdc34cae590ea7"
@ -1503,7 +1543,14 @@ de-indent@^1.0.2:
resolved "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==
debug@^4.1.0, debug@^4.3.1, debug@^4.3.7, debug@^4.4.0:
debug@2.6.9:
version "2.6.9"
resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
dependencies:
ms "2.0.0"
debug@^4.1.0, debug@^4.3.1, debug@^4.3.4, debug@^4.3.7, debug@^4.4.0:
version "4.4.0"
resolved "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a"
integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==
@ -1543,7 +1590,7 @@ delayed-stream@~1.0.0:
resolved "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
destr@^2.0.3:
destr@^2.0.3, destr@^2.0.5:
version "2.0.5"
resolved "https://registry.npmmirror.com/destr/-/destr-2.0.5.tgz#7d112ff1b925fb8d2079fac5bdb4a90973b51fdb"
integrity sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==
@ -1575,15 +1622,20 @@ echarts@^5.6.0:
tslib "2.3.0"
zrender "5.6.1"
ee-first@1.1.1:
version "1.1.1"
resolved "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
electron-to-chromium@^1.5.73:
version "1.5.140"
resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.140.tgz#91d9279fe72963f22c5784cc7f3461b5fed34786"
integrity sha512-o82Rj+ONp4Ip7Cl1r7lrqx/pXhbp/lh9DpKcMNscFJdh8ebyRofnc7Sh01B4jx403RI0oqTBvlZ7OBIZLMr2+Q==
version "1.5.143"
resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.143.tgz#b057bcb9dddd3a9b24ba6c9b9e39a82bee84bdaf"
integrity sha512-QqklJMOFBMqe46k8iIOwA9l2hz57V2OKMmP5eSWcUvwx+mASAsbU+wkF1pHjn9ZVSBPrsYWr4/W/95y5SwYg2g==
element-plus@^2.9.7:
version "2.9.8"
resolved "https://registry.npmmirror.com/element-plus/-/element-plus-2.9.8.tgz#72aea48dfcd5ef70a1859d2c8a16d189451f4afb"
integrity sha512-srViUaUdfblBKGMeuEPiXxxKlH5aUmKqEwmhb/At9Sj91DbU6od/jYN1955cTnzt3wTSA7GfnZF7UiRX9sdRHg==
version "2.9.9"
resolved "https://registry.npmmirror.com/element-plus/-/element-plus-2.9.9.tgz#17679dd2e11d70ed132216a3950d9df327053d04"
integrity sha512-gN553+xr7ETkhJhH26YG0fERmd2BSCcQKslbtR8fats0Mc0yCtZOXr00bmoPOt5xGzhuRN1TWc9+f1pCaiA0/Q==
dependencies:
"@ctrl/tinycolor" "^3.4.1"
"@element-plus/icons-vue" "^2.3.1"
@ -1601,6 +1653,11 @@ element-plus@^2.9.7:
memoize-one "^6.0.0"
normalize-wheel-es "^1.2.0"
encodeurl@~1.0.2:
version "1.0.2"
resolved "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
entities@^4.5.0:
version "4.5.0"
resolved "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
@ -1677,7 +1734,7 @@ escalade@^3.2.0:
resolved "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5"
integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
escape-html@^1.0.3:
escape-html@^1.0.3, escape-html@~1.0.3:
version "1.0.3"
resolved "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
@ -1717,12 +1774,12 @@ execa@^9.5.2:
strip-final-newline "^4.0.0"
yoctocolors "^2.0.0"
exsolve@^1.0.1, exsolve@^1.0.4:
exsolve@^1.0.1, exsolve@^1.0.4, exsolve@^1.0.5:
version "1.0.5"
resolved "https://registry.npmmirror.com/exsolve/-/exsolve-1.0.5.tgz#1f5b6b4fe82ad6b28a173ccb955a635d77859dcf"
integrity sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==
fast-glob@^3.3.3:
fast-glob@^3.2.12:
version "3.3.3"
resolved "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818"
integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==
@ -1759,6 +1816,19 @@ fill-range@^7.1.1:
dependencies:
to-regex-range "^5.0.1"
finalhandler@1.1.2:
version "1.1.2"
resolved "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
dependencies:
debug "2.6.9"
encodeurl "~1.0.2"
escape-html "~1.0.3"
on-finished "~2.3.0"
parseurl "~1.3.3"
statuses "~1.5.0"
unpipe "~1.0.0"
follow-redirects@^1.15.6:
version "1.15.9"
resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1"
@ -1847,7 +1917,7 @@ giget@^2.0.0:
nypm "^0.6.0"
pathe "^2.0.3"
glob-parent@^5.1.2:
glob-parent@^5.1.2, glob-parent@~5.1.2:
version "5.1.2"
resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
@ -1859,18 +1929,6 @@ globals@^11.1.0:
resolved "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
globby@^14.1.0:
version "14.1.0"
resolved "https://registry.npmmirror.com/globby/-/globby-14.1.0.tgz#138b78e77cf5a8d794e327b15dce80bf1fb0a73e"
integrity sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==
dependencies:
"@sindresorhus/merge-streams" "^2.1.0"
fast-glob "^3.3.3"
ignore "^7.0.3"
path-type "^6.0.0"
slash "^5.1.0"
unicorn-magic "^0.3.0"
gopd@^1.2.0:
version "1.2.0"
resolved "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1"
@ -1920,16 +1978,23 @@ human-signals@^8.0.0:
resolved "https://registry.npmmirror.com/human-signals/-/human-signals-8.0.1.tgz#f08bb593b6d1db353933d06156cedec90abe51fb"
integrity sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==
ignore@^7.0.3:
version "7.0.3"
resolved "https://registry.npmmirror.com/ignore/-/ignore-7.0.3.tgz#397ef9315dfe0595671eefe8b633fec6943ab733"
integrity sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==
ignore@^7.0.4:
version "7.0.4"
resolved "https://registry.npmmirror.com/ignore/-/ignore-7.0.4.tgz#a12c70d0f2607c5bf508fb65a40c75f037d7a078"
integrity sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==
immutable@^5.0.2:
version "5.1.1"
resolved "https://registry.npmmirror.com/immutable/-/immutable-5.1.1.tgz#d4cb552686f34b076b3dcf23c4384c04424d8354"
integrity sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg==
is-binary-path@~2.1.0:
version "2.1.0"
resolved "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
dependencies:
binary-extensions "^2.0.0"
is-core-module@^2.16.0:
version "2.16.1"
resolved "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4"
@ -1947,7 +2012,7 @@ is-extglob@^2.1.1:
resolved "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
is-glob@^4.0.1, is-glob@^4.0.3:
is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
version "4.0.3"
resolved "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
@ -2047,6 +2112,11 @@ kolorist@^1.8.0:
resolved "https://registry.npmmirror.com/kolorist/-/kolorist-1.8.0.tgz#edddbbbc7894bc13302cdf740af6374d4a04743c"
integrity sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==
load-tsconfig@^0.2.3:
version "0.2.5"
resolved "https://registry.npmmirror.com/load-tsconfig/-/load-tsconfig-0.2.5.tgz#453b8cd8961bfb912dea77eb6c168fe8cca3d3a1"
integrity sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==
local-pkg@^1.1.1:
version "1.1.1"
resolved "https://registry.npmmirror.com/local-pkg/-/local-pkg-1.1.1.tgz#f5fe74a97a3bd3c165788ee08ca9fbe998dc58dd"
@ -2086,9 +2156,9 @@ magic-string@^0.30.11, magic-string@^0.30.17, magic-string@^0.30.4:
"@jridgewell/sourcemap-codec" "^1.5.0"
marked@^15.0.8:
version "15.0.9"
resolved "https://registry.npmmirror.com/marked/-/marked-15.0.9.tgz#0ac0b42834a04f8c971a2fee36106694b29c0aad"
integrity sha512-9AW/bn9DxQeZVjR52l5jsc0W2pwuhP04QaQewPvylil12Cfr2GBfWmgp6mu8i9Jy8UlBjqDZ9uMTDuJ8QOGZJA==
version "15.0.11"
resolved "https://registry.npmmirror.com/marked/-/marked-15.0.11.tgz#08a8d12c285e16259e44287b89ce0d871c9d55e8"
integrity sha512-1BEXAU2euRCG3xwgLVT1y0xbJEld1XOrmRJpUwRCcy7rxhSCwMrmEu9LXoPhHSCJG41V7YcQ2mjKRr5BA3ITIA==
math-intrinsics@^1.1.0:
version "1.1.0"
@ -2159,6 +2229,11 @@ mrmime@^2.0.0:
resolved "https://registry.npmmirror.com/mrmime/-/mrmime-2.0.1.tgz#bc3e87f7987853a54c9850eeb1f1078cd44adddc"
integrity sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==
ms@2.0.0:
version "2.0.0"
resolved "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
ms@^2.1.3:
version "2.1.3"
resolved "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
@ -2194,6 +2269,11 @@ node-releases@^2.0.19:
resolved "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314"
integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==
normalize-path@^3.0.0, normalize-path@~3.0.0:
version "3.0.0"
resolved "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
normalize-range@^0.1.2:
version "0.1.2"
resolved "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
@ -2228,6 +2308,13 @@ ohash@^2.0.11:
resolved "https://registry.npmmirror.com/ohash/-/ohash-2.0.11.tgz#60b11e8cff62ca9dee88d13747a5baa145f5900b"
integrity sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==
on-finished@~2.3.0:
version "2.3.0"
resolved "https://registry.npmmirror.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==
dependencies:
ee-first "1.1.1"
open@^10.1.0:
version "10.1.1"
resolved "https://registry.npmmirror.com/open/-/open-10.1.1.tgz#5fd814699e47ae3e1a09962d39f4f4441cae6c22"
@ -2243,6 +2330,11 @@ parse-ms@^4.0.0:
resolved "https://registry.npmmirror.com/parse-ms/-/parse-ms-4.0.0.tgz#c0c058edd47c2a590151a718990533fd62803df4"
integrity sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==
parseurl@~1.3.3:
version "1.3.3"
resolved "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
path-browserify@^1.0.1:
version "1.0.1"
resolved "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd"
@ -2263,10 +2355,10 @@ path-parse@^1.0.7:
resolved "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
path-type@^6.0.0:
version "6.0.0"
resolved "https://registry.npmmirror.com/path-type/-/path-type-6.0.0.tgz#2f1bb6791a91ce99194caede5d6c5920ed81eb51"
integrity sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==
path-to-regexp@^6.2.1:
version "6.3.0"
resolved "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-6.3.0.tgz#2b6a26a337737a8e1416f9272ed0766b1c0389f4"
integrity sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==
pathe@^2.0.1, pathe@^2.0.2, pathe@^2.0.3:
version "2.0.3"
@ -2283,7 +2375,7 @@ picocolors@^1.0.0, picocolors@^1.1.1:
resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
picomatch@^2.3.1:
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
version "2.3.1"
resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
@ -2663,6 +2755,13 @@ readdirp@^4.0.1:
resolved "https://registry.npmmirror.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d"
integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==
readdirp@~3.6.0:
version "3.6.0"
resolved "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
dependencies:
picomatch "^2.2.1"
recorder-core@^1.3.25011100:
version "1.3.25011100"
resolved "https://registry.npmmirror.com/recorder-core/-/recorder-core-1.3.25011100.tgz#128ee11f2d24547b82605a5383274226b3a20a65"
@ -2688,32 +2787,32 @@ rfdc@^1.4.1:
integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==
rollup@^4.20.0:
version "4.40.0"
resolved "https://registry.npmmirror.com/rollup/-/rollup-4.40.0.tgz#13742a615f423ccba457554f006873d5a4de1920"
integrity sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==
version "4.40.1"
resolved "https://registry.npmmirror.com/rollup/-/rollup-4.40.1.tgz#03d6c53ebb6a9c2c060ae686a61e72a2472b366f"
integrity sha512-C5VvvgCCyfyotVITIAv+4efVytl5F7wt+/I2i9q9GZcEXW9BP52YYOXC58igUi+LFZVHukErIIqQSWwv/M3WRw==
dependencies:
"@types/estree" "1.0.7"
optionalDependencies:
"@rollup/rollup-android-arm-eabi" "4.40.0"
"@rollup/rollup-android-arm64" "4.40.0"
"@rollup/rollup-darwin-arm64" "4.40.0"
"@rollup/rollup-darwin-x64" "4.40.0"
"@rollup/rollup-freebsd-arm64" "4.40.0"
"@rollup/rollup-freebsd-x64" "4.40.0"
"@rollup/rollup-linux-arm-gnueabihf" "4.40.0"
"@rollup/rollup-linux-arm-musleabihf" "4.40.0"
"@rollup/rollup-linux-arm64-gnu" "4.40.0"
"@rollup/rollup-linux-arm64-musl" "4.40.0"
"@rollup/rollup-linux-loongarch64-gnu" "4.40.0"
"@rollup/rollup-linux-powerpc64le-gnu" "4.40.0"
"@rollup/rollup-linux-riscv64-gnu" "4.40.0"
"@rollup/rollup-linux-riscv64-musl" "4.40.0"
"@rollup/rollup-linux-s390x-gnu" "4.40.0"
"@rollup/rollup-linux-x64-gnu" "4.40.0"
"@rollup/rollup-linux-x64-musl" "4.40.0"
"@rollup/rollup-win32-arm64-msvc" "4.40.0"
"@rollup/rollup-win32-ia32-msvc" "4.40.0"
"@rollup/rollup-win32-x64-msvc" "4.40.0"
"@rollup/rollup-android-arm-eabi" "4.40.1"
"@rollup/rollup-android-arm64" "4.40.1"
"@rollup/rollup-darwin-arm64" "4.40.1"
"@rollup/rollup-darwin-x64" "4.40.1"
"@rollup/rollup-freebsd-arm64" "4.40.1"
"@rollup/rollup-freebsd-x64" "4.40.1"
"@rollup/rollup-linux-arm-gnueabihf" "4.40.1"
"@rollup/rollup-linux-arm-musleabihf" "4.40.1"
"@rollup/rollup-linux-arm64-gnu" "4.40.1"
"@rollup/rollup-linux-arm64-musl" "4.40.1"
"@rollup/rollup-linux-loongarch64-gnu" "4.40.1"
"@rollup/rollup-linux-powerpc64le-gnu" "4.40.1"
"@rollup/rollup-linux-riscv64-gnu" "4.40.1"
"@rollup/rollup-linux-riscv64-musl" "4.40.1"
"@rollup/rollup-linux-s390x-gnu" "4.40.1"
"@rollup/rollup-linux-x64-gnu" "4.40.1"
"@rollup/rollup-linux-x64-musl" "4.40.1"
"@rollup/rollup-win32-arm64-msvc" "4.40.1"
"@rollup/rollup-win32-ia32-msvc" "4.40.1"
"@rollup/rollup-win32-x64-msvc" "4.40.1"
fsevents "~2.3.2"
run-applescript@^7.0.0:
@ -2922,11 +3021,6 @@ sirv@^3.0.0, sirv@^3.0.1:
mrmime "^2.0.0"
totalist "^3.0.0"
slash@^5.1.0:
version "5.1.0"
resolved "https://registry.npmmirror.com/slash/-/slash-5.1.0.tgz#be3adddcdf09ac38eebe8dcdc7b1a57a75b095ce"
integrity sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==
"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.2.0, source-map-js@^1.2.1:
version "1.2.1"
resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46"
@ -2942,7 +3036,12 @@ speakingurl@^14.0.1:
resolved "https://registry.npmmirror.com/speakingurl/-/speakingurl-14.0.1.tgz#f37ec8ddc4ab98e9600c1c9ec324a8c48d772a53"
integrity sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==
std-env@^3.8.1:
statuses@~1.5.0:
version "1.5.0"
resolved "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
std-env@^3.9.0:
version "3.9.0"
resolved "https://registry.npmmirror.com/std-env/-/std-env-3.9.0.tgz#1a6f7243b339dca4c9fd55e1c7504c77ef23e8f1"
integrity sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==
@ -2995,7 +3094,7 @@ tinyexec@^0.3.2:
resolved "https://registry.npmmirror.com/tinyexec/-/tinyexec-0.3.2.tgz#941794e657a85e496577995c6eef66f53f42b3d2"
integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==
tinyglobby@^0.2.12:
tinyglobby@^0.2.12, tinyglobby@^0.2.13:
version "0.2.13"
resolved "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.13.tgz#a0e46515ce6cbcd65331537e57484af5a7b2ff7e"
integrity sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==
@ -3030,7 +3129,7 @@ typescript@^5.3.3:
resolved "https://registry.npmmirror.com/typescript/-/typescript-5.8.3.tgz#92f8a3e5e3cf497356f4178c34cd65a7f5e8440e"
integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==
ufo@^1.5.4:
ufo@^1.5.4, ufo@^1.6.1:
version "1.6.1"
resolved "https://registry.npmmirror.com/ufo/-/ufo-1.6.1.tgz#ac2db1d54614d1b22c1d603e3aef44a85d8f146b"
integrity sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==
@ -3055,10 +3154,10 @@ unicorn-magic@^0.3.0:
resolved "https://registry.npmmirror.com/unicorn-magic/-/unicorn-magic-0.3.0.tgz#4efd45c85a69e0dd576d25532fbfa22aa5c8a104"
integrity sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==
unimport@^4.1.3:
version "4.2.0"
resolved "https://registry.npmmirror.com/unimport/-/unimport-4.2.0.tgz#c25211d206d3430e9160cc7d458e9fa9ba828ac0"
integrity sha512-mYVtA0nmzrysnYnyb3ALMbByJ+Maosee2+WyE0puXl+Xm2bUwPorPaaeZt0ETfuroPOtG8jj1g/qeFZ6buFnag==
unimport@^5.0.0:
version "5.0.0"
resolved "https://registry.npmmirror.com/unimport/-/unimport-5.0.0.tgz#c2e5a364c03fc90de192d8881384a379cf8b4d99"
integrity sha512-8jL3T+FKDg+qLFX55X9j92uFRqH5vWrNlf/eJb5IQlQB5q5wjooXQDXP1ulhJJQHbosBmlKhBo/ZVS5jHlcJGA==
dependencies:
acorn "^8.14.1"
escape-string-regexp "^5.0.0"
@ -3080,6 +3179,11 @@ universalify@^2.0.0:
resolved "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d"
integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==
unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
unplugin-utils@^0.2.4:
version "0.2.4"
resolved "https://registry.npmmirror.com/unplugin-utils/-/unplugin-utils-0.2.4.tgz#56e4029a6906645a10644f8befc404b06d5d24d0"
@ -3121,6 +3225,11 @@ util-deprecate@^1.0.2:
resolved "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
utils-merge@1.0.1:
version "1.0.1"
resolved "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==
varint@^6.0.0:
version "6.0.0"
resolved "https://registry.npmmirror.com/varint/-/varint-6.0.0.tgz#9881eb0ce8feaea6512439d19ddf84bf551661d0"
@ -3155,6 +3264,19 @@ vite-plugin-mkcert@^1.17.8:
debug "^4.4.0"
picocolors "^1.1.1"
vite-plugin-mock@^3.0.2:
version "3.0.2"
resolved "https://registry.npmmirror.com/vite-plugin-mock/-/vite-plugin-mock-3.0.2.tgz#382446642661df5623023951670cb572cb5d682b"
integrity sha512-bD//HvkTygGmk+LsIAdf0jGNlCv4iWv0kZlH9UEgWT6QYoUwfjQAE4SKxHRw2tfLgVhbPQVv/+X3YlNWvueGUA==
dependencies:
bundle-require "^4.0.1"
chokidar "^3.5.3"
connect "^3.7.0"
debug "^4.3.4"
fast-glob "^3.2.12"
path-to-regexp "^6.2.1"
picocolors "^1.0.0"
vite-plugin-vue-devtools@^7.0.19:
version "7.7.5"
resolved "https://registry.npmmirror.com/vite-plugin-vue-devtools/-/vite-plugin-vue-devtools-7.7.5.tgz#f00534f275a1cddc653618f1f0135866da14ca8f"
@ -3200,9 +3322,9 @@ vue-demi@*:
integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==
vue-router@^4.5.0:
version "4.5.0"
resolved "https://registry.npmmirror.com/vue-router/-/vue-router-4.5.0.tgz#58fc5fe374e10b6018f910328f756c3dae081f14"
integrity sha512-HDuk+PuH5monfNuY+ct49mNmkCRK4xJAV9Ts4z9UFc4rzdDnxQLyCMGGc8pKhZhHTVzfanpNwB/lwqevcBwI4w==
version "4.5.1"
resolved "https://registry.npmmirror.com/vue-router/-/vue-router-4.5.1.tgz#47bffe2d3a5479d2886a9a244547a853aa0abf69"
integrity sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==
dependencies:
"@vue/devtools-api" "^6.6.4"