diff --git a/Dockerfile b/Dockerfile index d6996dc..1faf3ae 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,64 +1,25 @@ # 阶段1:基础镜像准备 FROM node:18-alpine AS base -ARG USE_CN_MIRROR - # 设置工作目录 WORKDIR /app -# 配置国内镜像源(如果需要) -RUN \ - if [ "${USE_CN_MIRROR:-false}" = "true" ]; then \ - npm config set registry https://registry.npmmirror.com/; \ - fi +# 配置国内镜像源 +RUN npm config set registry https://registry.npmmirror.com/ -# 安装必要的系统依赖(例如CA证书) +# 安装必要的系统依赖(例如 CA 证书) RUN apk add --no-cache ca-certificates -# 创建distroless目录,准备复制必要的运行时文件 -RUN mkdir -p /distroless/bin /distroless/lib /distroless/etc/ssl/certs /distroless/etc - -# 复制Node.js可执行文件 -RUN cp /usr/local/bin/node /distroless/bin/ - -# 复制Node.js运行时依赖的库文件 -RUN ldd /usr/local/bin/node | awk '{print $3}' | grep -v '^$' | xargs -I '{}' cp '{}' /distroless/lib/ - -# 复制动态链接器 -RUN cp /lib/ld-musl-$(uname -m).so.1 /distroless/lib/ - -# 复制CA证书 -RUN cp -r /etc/ssl/certs /distroless/etc/ssl/ - -# 创建非root用户 -RUN addgroup -g 1001 appgroup && \ - adduser -D -u 1001 -G appgroup appuser - -# 复制用户和组信息 -RUN cp /etc/passwd /distroless/etc/passwd && \ - cp /etc/group /distroless/etc/group - - - # 阶段2:构建应用程序 FROM base AS builder -ARG USE_CN_MIRROR - WORKDIR /app # 复制依赖文件 COPY package.json yarn.lock ./ -# 确保在构建阶段NODE_ENV不为production -ENV NODE_ENV=development - -# 配置国内镜像源并安装依赖 -RUN \ - if [ "${USE_CN_MIRROR:-false}" = "true" ]; then \ - npm config set registry https://registry.npmmirror.com/; \ - fi && \ - yarn install +# 安装所有依赖,包括开发依赖 +RUN yarn install # 复制项目源代码 COPY . . @@ -66,25 +27,37 @@ COPY . . # 构建应用程序 RUN yarn build -# 重新设置NODE_ENV为production +# 删除 node_modules 目录 +RUN rm -rf node_modules + +# 设置 NODE_ENV 为 production ENV NODE_ENV=production -# 删除devDependencies,减小最终镜像大小 +# 安装生产依赖 RUN yarn install --production --ignore-scripts --prefer-offline -# 修改文件权限,使appuser拥有所有权 -RUN chown -R appuser:appgroup /app - - +# 清理 yarn 缓存 +RUN yarn cache clean --all # 阶段3:构建最终的生产镜像 -FROM scratch +FROM node:18-alpine + +# 设置工作目录 +WORKDIR /app -# 复制distroless文件 -COPY --from=base /distroless / +# 创建非 root 用户 +RUN addgroup -g 1001 appgroup && \ + adduser -D -u 1001 -G appgroup appuser # 复制应用程序文件 -COPY --from=builder /app /app +COPY --from=builder /app/server.js /app/server.js +COPY --from=builder /app/dist /app/dist +COPY --from=builder /app/api /app/api +COPY --from=builder /app/node_modules /app/node_modules +COPY --from=builder /app/package.json /app/package.json + +# 修改文件权限,使 appuser 拥有所有权 +RUN chown -R appuser:appgroup /app # 设置环境变量 ENV NODE_ENV=production @@ -92,15 +65,11 @@ ENV HOSTNAME="0.0.0.0" ENV PORT=13000 ENV NODE_OPTIONS="--dns-result-order=ipv4first --use-openssl-ca" -# 设置工作目录 -WORKDIR /app - # 暴露端口 EXPOSE 13000 -# 使用非root用户 +# 使用非 root 用户 USER appuser # 启动命令 -ENTRYPOINT ["/bin/node"] -CMD ["server.js"] +CMD ["node", "server.js"] diff --git a/README.md b/README.md index 74232b0..efb6e61 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,27 @@ 测试 +### v2.1.0 + +🔔 **新特性与优化** + +- ✨ **新增快捷聊天测试** + - 对接魔改 NextChat,可快捷测试模型。 + - 新增 `closeChat` 设置,方便中转站使用。 +- 🧪 **添加实验性功能模块** from [elfmaid](https://linux.do/u/elfmaid) + - 批量测试 gpt Refresh Tokens + - 批量测试 claude Session Keys + - 批量测试 gemini API Keys +- ✂️ **新增粘贴按钮 ** by [fangyuan](https://linux.do/u/fangyuan99) +- 📝 **新增自定义对话验证功能** + - 快捷prompt测试 by [fangyuan](https://linux.do/u/fangyuan99) + +🔧 **优化与修复** + +- 🐳 **优化 Dockerfile** 减小镜像体积。 + +- 🎨 **修复布局问题** 改善界面显示 + ### v2.0.0 🔔 **全新特性与优化** @@ -171,8 +192,13 @@ - **描述**: 是否关闭公告显示。设置为 `true` 时关闭公告显示,设置为 `false` 或未定义时显示公告。 **方便中转站使用** - **示例**: `"closeAnnouncement": true` +🚪 closeChat **方便中转站使用** + +- **描述**:是否关闭快捷聊天功能。设置为 `true` 时关闭聊天功能,设置为 `false` 或未定义时开启聊天功能。 +- **示例**:`"closeChat": true` + ``` -https://check.crond.dev/?settings={"key":"*sk*","url":"*api*","models":["gpt-4o-mini","gpt-4o"],"timeout":10,"concurrency":2,"closeAnnouncement":true} +https://check.crond.dev/?settings={"key":"*sk*","url":"*api*","models":["gpt-4o-mini","gpt-4o"],"timeout":10,"concurrency":2,"closeAnnouncement":true,"closeChat":true} ``` 解码后的 JSON 字符串如下: @@ -184,7 +210,8 @@ https://check.crond.dev/?settings={"key":"*sk*","url":"*api*","models":["gpt-4o- "models": ["gpt-4o-mini", "gpt-4o"], "timeout": 10, "concurrency": 2, - "closeAnnouncement": true + "closeAnnouncement": true, + "closeChat": true } ``` @@ -192,18 +219,20 @@ https://check.crond.dev/?settings={"key":"*sk*","url":"*api*","models":["gpt-4o- ``` { - "name": "check", - "link": "https://check.crond.dev/?settings={%22key%22:%22*sk*%22,%22url%22:%22*api*%22,%22models%22:[%22gpt-4o-mini%22],%22timeout%22:10,%22concurrency%22:2,%22closeAnnouncement%22:true}", - "icon": "https://check.crond.dev/logo.png" + "name": "check", + "link": "https://check.crond.dev/?settings={%22key%22:%22*sk*%22,%22url%22:%22*api*%22,%22models%22:[%22gpt-4o-mini%22],%22timeout%22:10,%22concurrency%22:2,%22closeAnnouncement%22:true,%22closeChat%22:true}", + "icon": "https://check.crond.dev/logo.png" } + ``` - **newapi** 示例 ``` { - "CHECK": "https://check.crond.dev/?settings={\"key\":\"{key}\",\"url\":\"{address}\",\"models\":[\"gpt-4o-mini\"],\"timeout\":10,\"concurrency\":2,\"closeAnnouncement\":true}" + "CHECK": "https://check.crond.dev/?settings={\"key\":\"{key}\",\"url\":\"{address}\",\"models\":[\"gpt-4o-mini\"],\"timeout\":10,\"concurrency\":2,\"closeAnnouncement\":true,\"closeChat\":true}" } + ``` ### 🛠 **高级验证功能** diff --git a/api/alive.js b/api/alive.js new file mode 100644 index 0000000..e6fc9f7 --- /dev/null +++ b/api/alive.js @@ -0,0 +1,289 @@ +const corsHeaders = { + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Allow-Methods': 'GET, POST, OPTIONS', + 'Access-Control-Allow-Headers': 'Content-Type', +}; + +export default async function (req, res) { + console.log('Received request:', req.method, req.url); + + if (req.method === 'OPTIONS') { + res.writeHead(204, corsHeaders); + res.end(); + return; + } + + if (req.method !== 'POST') { + res.writeHead(404, { 'Content-Type': 'text/plain', ...corsHeaders }); + res.end('Not Found'); + return; + } + + try { + let body = ''; + for await (const chunk of req) { + body += chunk; + } + console.log('Request body:', body); + + const content = JSON.parse(body); + console.log('Parsed request content:', content); + + const { type } = content; + let responseBody; + + switch (type) { + case 'refreshTokens': + responseBody = await handleRefreshTokens(content.tokens); + break; + case 'sessionKeys': + responseBody = await handleSessionKeys(content); + break; + case 'geminiAPI': + responseBody = await handleGeminiAPI(content); + break; + default: + res.writeHead(400, { + 'Content-Type': 'application/json', + ...corsHeaders, + }); + res.end(JSON.stringify({ error: 'Invalid request type' })); + return; + } + + res.writeHead(200, { + 'Content-Type': 'application/json', + ...corsHeaders, + }); + res.end(JSON.stringify(responseBody)); + } catch (error) { + console.error('Error processing request:', error); + res.writeHead(500, { + 'Content-Type': 'application/json', + ...corsHeaders, + }); + res.end(JSON.stringify({ error: error.message })); + } +} + +async function handleRefreshTokens(tokens) { + try { + const results = await Promise.all(tokens.map(checkTokenValidity)); + return results; + } catch (error) { + throw new Error('Error processing refresh tokens: ' + error.message); + } +} + +async function checkTokenValidity(refreshToken) { + try { + const response = await fetch('https://token.oaifree.com/api/auth/refresh', { + method: 'POST', + headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, + body: 'refresh_token=' + encodeURIComponent(refreshToken), + }); + + if (response.ok) { + const data = await response.json(); + return { + refreshToken, + accessToken: data.access_token, + valid: true, + }; + } else { + return { + refreshToken, + accessToken: null, + valid: false, + }; + } + } catch (error) { + return { + refreshToken, + accessToken: null, + valid: false, + }; + } +} + +async function handleSessionKeys(content) { + const sessionKeys = content.tokens; + const maxAttempts = content.maxAttempts; + const requestsPerSecond = content.requestsPerSecond; + const delayBetweenRequests = 1000 / requestsPerSecond; + + const delay = ms => new Promise(resolve => setTimeout(resolve, ms)); + + async function checkSessionKey(sessionKey) { + let attempts = 0; + let successCount = 0; + + while (attempts < maxAttempts) { + attempts++; + try { + const response = await fetch( + 'https://api.claude.ai/api/organizations', + { + headers: { + accept: 'application/json', + cookie: 'sessionKey=' + sessionKey, + 'user-agent': 'Mozilla/5.0 (X11; Linux x86_64)', + }, + } + ); + + if (!response.ok) { + throw new Error('HTTP error! status: ' + response.status); + } + + const responseText = await response.text(); + + if ( + responseText.toLowerCase().includes('unauthorized') || + responseText.trim() === '' + ) { + throw new Error('Invalid response'); + } + + const organizations = JSON.parse(responseText); + successCount++; + + const name = organizations[0].name || 'Unknown'; + const capabilities = organizations[0].capabilities + ? organizations[0].capabilities.join(';') + : ''; + return { + sessionKey, + name, + capabilities, + available: true, + attempts, + successRate: successCount / attempts, + }; + } catch (error) { + if (attempts >= maxAttempts) { + return { + sessionKey, + name: 'Invalid', + capabilities: '', + available: false, + attempts, + successRate: successCount / attempts, + }; + } + await delay(delayBetweenRequests); + } + } + } + + try { + const results = await Promise.all(sessionKeys.map(checkSessionKey)); + return results; + } catch (error) { + throw new Error('Error processing session keys: ' + error.message); + } +} + +async function handleGeminiAPI(content) { + const apiKeys = content.tokens; + const model = content.model; + const rateLimit = content.rateLimit; + const prompt = content.prompt; + const user = content.user; + + if (!apiKeys || !Array.isArray(apiKeys) || apiKeys.length === 0) { + throw new Error('Invalid or empty API keys'); + } + + try { + const results = await batchTestAPI(apiKeys, model, rateLimit, prompt, user); + const validKeys = results.filter(r => r.valid).map(r => r.key); + const invalidKeys = results.filter(r => !r.valid).map(r => r.key); + const errors = results + .filter(r => r.error) + .map(r => ({ key: r.key, error: r.error })); + const validResults = results.filter(r => r.valid && r.data); + + return { + valid: validKeys.length, + invalid: invalidKeys.length, + invalidKeys: invalidKeys, + errors: errors, + validResults: validResults, + }; + } catch (error) { + throw new Error('Error testing APIs: ' + error.message); + } +} + +async function batchTestAPI(apiKeys, model, rateLimit, prompt, user) { + const results = []; + const delayBetweenRequests = 1000 / rateLimit; + + const delay = ms => new Promise(resolve => setTimeout(resolve, ms)); + + for (let i = 0; i < apiKeys.length; i++) { + const apiKey = apiKeys[i]; + try { + const result = await testAPI(apiKey, model, prompt, user); + results.push(result); + } catch (error) { + results.push({ + key: apiKey, + valid: false, + error: error.message, + }); + } + await delay(delayBetweenRequests); + } + + return results; +} + +async function testAPI(apiKey, model, prompt, user) { + const url = `https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent?key=${apiKey}`; + + try { + const response = await fetch(url, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + contents: [ + { + parts: [{ text: prompt }, { text: user }], + }, + ], + safetySettings: [ + { + category: 'HARM_CATEGORY_DANGEROUS_CONTENT', + threshold: 'BLOCK_NONE', + }, + { category: 'HARM_CATEGORY_HATE_SPEECH', threshold: 'BLOCK_NONE' }, + { category: 'HARM_CATEGORY_HARASSMENT', threshold: 'BLOCK_NONE' }, + { + category: 'HARM_CATEGORY_SEXUALLY_EXPLICIT', + threshold: 'BLOCK_NONE', + }, + ], + }), + }); + + if (!response.ok) { + const errorText = await response.text(); + throw new Error( + `API request failed: ${response.status} ${response.statusText} - ${errorText}` + ); + } + + const data = await response.json(); + return { key: apiKey, valid: true, data }; + } catch (error) { + return { + key: apiKey, + valid: false, + error: error.message, + }; + } +} diff --git a/api/local/alive.js b/api/local/alive.js new file mode 100644 index 0000000..58b3836 --- /dev/null +++ b/api/local/alive.js @@ -0,0 +1,253 @@ +import express from 'express'; + +const router = express.Router(); + +// 中间件:解析 JSON 请求体 +router.use(express.json()); + +const corsHeaders = { + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Allow-Methods': 'GET, POST, OPTIONS', + 'Access-Control-Allow-Headers': 'Content-Type', +}; + +// 处理 OPTIONS 请求 +router.options('/', (req, res) => { + res.set(corsHeaders); + res.sendStatus(204); +}); + +// 处理 POST 请求 +router.post('/', async (req, res) => { + console.log('Received request:', req.method, req.url); + + try { + const requestData = req.body; + console.log('Parsed request content:', requestData); + const { type } = requestData; + + let responseData; + switch (type) { + case 'refreshTokens': + responseData = await handleRefreshTokens(requestData.tokens); + break; + case 'sessionKeys': + responseData = await handleSessionKeys(requestData); + break; + case 'geminiAPI': + responseData = await handleGeminiAPI(requestData); + break; + default: + res.status(400).json({ error: 'Invalid request type' }); + return; + } + + res.set(corsHeaders); + res.status(200).json(responseData); + } catch (error) { + console.error('Error processing request:', error); + res.set(corsHeaders); + res.status(500).json({ error: error.message }); + } +}); + +// 导出路由 +export default router; + +// 辅助函数 +async function handleRefreshTokens(tokens) { + const results = await Promise.all(tokens.map(refreshTokenValidity)); + return results; +} + +async function refreshTokenValidity(token) { + try { + const response = await fetch('https://token.oaifree.com/api/auth/refresh', { + method: 'POST', + headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, + body: 'refresh_token=' + encodeURIComponent(token), + }); + + if (response.ok) { + const data = await response.json(); + return { + refreshToken: token, + accessToken: data.access_token, + valid: true, + }; + } + return { refreshToken: token, accessToken: null, valid: false }; + } catch (error) { + return { refreshToken: token, accessToken: null, valid: false }; + } +} + +async function handleSessionKeys({ + tokens: sessionKeys, + maxAttempts, + requestsPerSecond, +}) { + const delayBetweenRequests = 1000 / requestsPerSecond; + + const results = await Promise.all( + sessionKeys.map(sessionKey => + checkSessionKey(sessionKey, maxAttempts, delayBetweenRequests) + ) + ); + return results; +} + +function delay(ms) { + return new Promise(resolve => { + setTimeout(resolve, ms); + }); +} + +async function checkSessionKey(sessionKey, maxAttempts, delayBetweenRequests) { + let attempts = 0; + + while (attempts < maxAttempts) { + attempts++; + try { + const response = await fetch('https://api.claude.ai/api/organizations', { + headers: { + Accept: 'application/json', + Cookie: 'sessionKey=' + sessionKey, + 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64)', + }, + }); + + if (!response.ok) { + throw new Error('HTTP error! status: ' + response.status); + } + + const organizations = await response.json(); + + if (!Array.isArray(organizations) || organizations.length === 0) { + throw new Error('Invalid response data'); + } + + const organization = organizations[0]; + const name = organization.name || 'Unknown'; + const capabilities = organization.capabilities + ? organization.capabilities.join(';') + : ''; + + return { + sessionKey, + name, + capabilities, + available: true, + attempts, + successRate: 1 / attempts, + }; + } catch (error) { + if (attempts >= maxAttempts) { + return { + sessionKey, + name: 'Invalid', + capabilities: '', + available: false, + attempts, + successRate: 0, + }; + } + await delay(delayBetweenRequests); + } + } +} + +async function handleGeminiAPI({ + tokens: apiKeys, + model, + rateLimit, + prompt, + user, +}) { + if (!apiKeys || !Array.isArray(apiKeys) || apiKeys.length === 0) { + throw new Error('Invalid or empty API keys'); + } + + const results = await batchTestAPI(apiKeys, model, rateLimit, prompt, user); + + const validResults = results.filter(result => result.valid && result.data); + const validKeys = validResults.map(result => result.key); + const invalidResults = results.filter(result => !result.valid); + const invalidKeys = invalidResults.map(result => result.key); + const errors = invalidResults.map(result => ({ + key: result.key, + error: result.error, + })); + + return { + valid: validKeys.length, + invalid: invalidKeys.length, + invalidKeys, + errors, + validResults, + }; +} + +async function batchTestAPI(apiKeys, model, rateLimit, prompt, user) { + const testResults = []; + const delayBetweenRequests = 1000 / rateLimit; + + for (const apiKey of apiKeys) { + try { + const result = await testAPI(apiKey, model, prompt, user); + testResults.push(result); + } catch (error) { + testResults.push({ key: apiKey, valid: false, error: error.message }); + } + await delay(delayBetweenRequests); + } + + return testResults; +} + +async function testAPI(apiKey, model, prompt, user) { + const url = `https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent?key=${apiKey}`; + const requestBody = { + contents: [ + { + parts: [{ text: prompt }, { text: user }], + }, + ], + safetySettings: [ + { + category: 'HARM_CATEGORY_DANGEROUS_CONTENT', + threshold: 'BLOCK_NONE', + }, + { + category: 'HARM_CATEGORY_HATE_SPEECH', + threshold: 'BLOCK_NONE', + }, + { + category: 'HARM_CATEGORY_HARASSMENT', + threshold: 'BLOCK_NONE', + }, + { + category: 'HARM_CATEGORY_SEXUALLY_EXPLICIT', + threshold: 'BLOCK_NONE', + }, + ], + }; + + const response = await fetch(url, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(requestBody), + }); + + if (!response.ok) { + const errorText = await response.text(); + throw new Error( + `API request failed: ${response.status} ${response.statusText} - ${errorText}` + ); + } + + const data = await response.json(); + return { key: apiKey, valid: true, data }; +} diff --git a/components.d.ts b/components.d.ts index 02287a8..c4e6706 100644 --- a/components.d.ts +++ b/components.d.ts @@ -2,12 +2,11 @@ // @ts-nocheck // Generated by unplugin-vue-components // Read more: https://github.com/vuejs/core/pull/3399 -export {} +export {}; /* prettier-ignore */ declare module 'vue' { export interface GlobalComponents { - AAlert: typeof import('ant-design-vue/es')['Alert'] AAvatar: typeof import('ant-design-vue/es')['Avatar'] AButton: typeof import('ant-design-vue/es')['Button'] ACheckbox: typeof import('ant-design-vue/es')['Checkbox'] @@ -18,6 +17,7 @@ declare module 'vue' { AConfigProvider: typeof import('ant-design-vue/es')['ConfigProvider'] ADivider: typeof import('ant-design-vue/es')['Divider'] ADropdown: typeof import('ant-design-vue/es')['Dropdown'] + AFlex: typeof import('ant-design-vue/es')['Flex'] AForm: typeof import('ant-design-vue/es')['Form'] AFormItem: typeof import('ant-design-vue/es')['FormItem'] AImage: typeof import('ant-design-vue/es')['Image'] @@ -33,6 +33,7 @@ declare module 'vue' { APopover: typeof import('ant-design-vue/es')['Popover'] AProgress: typeof import('ant-design-vue/es')['Progress'] ARow: typeof import('ant-design-vue/es')['Row'] + ASelect: typeof import('ant-design-vue/es')['Select'] ASpace: typeof import('ant-design-vue/es')['Space'] ASpin: typeof import('ant-design-vue/es')['Spin'] ATabPane: typeof import('ant-design-vue/es')['TabPane'] @@ -40,6 +41,7 @@ declare module 'vue' { ATextarea: typeof import('ant-design-vue/es')['Textarea'] ATooltip: typeof import('ant-design-vue/es')['Tooltip'] Check: typeof import('./src/components/Check.vue')['default'] + Experimental: typeof import('./src/components/Experimental.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] } diff --git a/package-lock.json b/package-lock.json index c39aaf6..14dabb6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,15 +9,12 @@ "version": "0.0.0", "dependencies": { "@ant-design/icons-vue": "^7.0.1", - "@vercel/kv": "^3.0.0", - "@vercel/node": "^3.2.24", "@vueuse/core": "^11.2.0", - "ant-design-vue": "^4.0.0-rc.6", + "ant-design-vue": "^4.2.6", "axios": "^1.7.7", "dotenv": "^16.4.5", "echarts": "^5.5.1", "express": "^4.21.1", - "path": "^0.12.7", "vue": "^3.5.12", "vue-i18n": "^9.14.1", "vue-router": "^4.4.5" @@ -26,9 +23,15 @@ "@vitejs/plugin-vue": "^5.1.4", "less": "^4.2.0", "less-loader": "^12.2.0", + "prettier": "^3.3.3", + "rollup-plugin-visualizer": "^5.12.0", "unplugin-vue-components": "^0.27.4", "vite": "^5.4.10", "vite-plugin-style-import": "^2.0.0" + }, + "optionalDependencies": { + "@vercel/kv": "^3.0.0", + "@vercel/node": "^3.2.24" } }, "node_modules/@ant-design/colors": { @@ -122,6 +125,7 @@ "version": "0.8.1", "resolved": "https://r.cnpmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "optional": true, "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -141,6 +145,7 @@ "version": "2.2.1", "resolved": "https://r.cnpmjs.org/@edge-runtime/format/-/format-2.2.1.tgz", "integrity": "sha512-JQTRVuiusQLNNLe2W9tnzBlV/GvSVcozLl4XZHk5swnRZ/v6jp8TqR8P7sqmJsQqblDZ3EztcWmLDbhRje/+8g==", + "optional": true, "engines": { "node": ">=16" } @@ -149,6 +154,7 @@ "version": "2.3.0", "resolved": "https://r.cnpmjs.org/@edge-runtime/node-utils/-/node-utils-2.3.0.tgz", "integrity": "sha512-uUtx8BFoO1hNxtHjp3eqVPC/mWImGb2exOfGjMLUoipuWgjej+f4o/VP4bUI8U40gu7Teogd5VTeZUkGvJSPOQ==", + "optional": true, "engines": { "node": ">=16" } @@ -157,6 +163,7 @@ "version": "2.4.2", "resolved": "https://r.cnpmjs.org/@edge-runtime/ponyfill/-/ponyfill-2.4.2.tgz", "integrity": "sha512-oN17GjFr69chu6sDLvXxdhg0Qe8EZviGSuqzR9qOiKh4MhFYGdBBcqRNzdmYeAdeRzOW2mM9yil4RftUQ7sUOA==", + "optional": true, "engines": { "node": ">=16" } @@ -165,6 +172,7 @@ "version": "4.1.0", "resolved": "https://r.cnpmjs.org/@edge-runtime/primitives/-/primitives-4.1.0.tgz", "integrity": "sha512-Vw0lbJ2lvRUqc7/soqygUX216Xb8T3WBZ987oywz6aJqRxcwSVWwr9e+Nqo2m9bxobA9mdbWNNoRY6S9eko1EQ==", + "optional": true, "engines": { "node": ">=16" } @@ -173,6 +181,7 @@ "version": "3.2.0", "resolved": "https://r.cnpmjs.org/@edge-runtime/vm/-/vm-3.2.0.tgz", "integrity": "sha512-0dEVyRLM/lG4gp1R/Ik5bfPl/1wX00xFwd5KcNH602tzBa09oF7pbTKETEhR1GjZ75K6OJnYFu8II2dyMhONMw==", + "optional": true, "dependencies": { "@edge-runtime/primitives": "4.1.0" }, @@ -562,6 +571,7 @@ "version": "2.1.1", "resolved": "https://r.cnpmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", + "optional": true, "engines": { "node": ">=14" } @@ -611,6 +621,7 @@ "version": "3.1.2", "resolved": "https://r.cnpmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "optional": true, "engines": { "node": ">=6.0.0" } @@ -624,6 +635,7 @@ "version": "0.3.9", "resolved": "https://r.cnpmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "optional": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -633,6 +645,7 @@ "version": "1.0.11", "resolved": "https://r.cnpmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", + "optional": true, "dependencies": { "detect-libc": "^2.0.0", "https-proxy-agent": "^5.0.0", @@ -652,6 +665,7 @@ "version": "3.1.0", "resolved": "https://r2.cnpmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "optional": true, "dependencies": { "semver": "^6.0.0" }, @@ -666,6 +680,7 @@ "version": "6.3.1", "resolved": "https://r.cnpmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "optional": true, "bin": { "semver": "bin/semver.js" } @@ -674,6 +689,7 @@ "version": "7.6.3", "resolved": "https://r.cnpmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "optional": true, "bin": { "semver": "bin/semver.js" }, @@ -685,6 +701,7 @@ "version": "2.1.5", "resolved": "https://r2.cnpmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "devOptional": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -697,6 +714,7 @@ "version": "2.0.5", "resolved": "https://r2.cnpmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "devOptional": true, "engines": { "node": ">= 8" } @@ -705,6 +723,7 @@ "version": "1.2.8", "resolved": "https://r2.cnpmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "devOptional": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -969,6 +988,7 @@ "version": "0.11.1", "resolved": "https://r2.cnpmjs.org/@ts-morph/common/-/common-0.11.1.tgz", "integrity": "sha512-7hWZS0NRpEsNV8vWJzg7FEz6V8MaLNeJOmwmghqUXTpzk16V1LLZhdo+4QvE/+zv4cVci0OviuJFnqhEfoV3+g==", + "optional": true, "dependencies": { "fast-glob": "^3.2.7", "minimatch": "^3.0.4", @@ -980,6 +1000,7 @@ "version": "1.1.11", "resolved": "https://r2.cnpmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "optional": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -989,6 +1010,7 @@ "version": "3.1.2", "resolved": "https://r.cnpmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "optional": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -999,22 +1021,26 @@ "node_modules/@tsconfig/node10": { "version": "1.0.11", "resolved": "https://r.cnpmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==" + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "optional": true }, "node_modules/@tsconfig/node12": { "version": "1.0.11", "resolved": "https://r.cnpmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "optional": true }, "node_modules/@tsconfig/node14": { "version": "1.0.3", "resolved": "https://r.cnpmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "optional": true }, "node_modules/@tsconfig/node16": { "version": "1.0.4", "resolved": "https://r.cnpmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "optional": true }, "node_modules/@types/estree": { "version": "1.0.6", @@ -1025,12 +1051,14 @@ "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://r.cnpmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "optional": true }, "node_modules/@types/node": { "version": "22.9.0", "resolved": "https://r.cnpmjs.org/@types/node/-/node-22.9.0.tgz", "integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==", + "optional": true, "peer": true, "dependencies": { "undici-types": "~6.19.8" @@ -1045,6 +1073,7 @@ "version": "1.34.3", "resolved": "https://r.cnpmjs.org/@upstash/redis/-/redis-1.34.3.tgz", "integrity": "sha512-VT25TyODGy/8ljl7GADnJoMmtmJ1F8d84UXfGonRRF8fWYJz7+2J6GzW+a6ETGtk4OyuRTt7FRSvFG5GvrfSdQ==", + "optional": true, "dependencies": { "crypto-js": "^4.2.0" } @@ -1052,17 +1081,20 @@ "node_modules/@vercel/build-utils": { "version": "8.4.12", "resolved": "https://r.cnpmjs.org/@vercel/build-utils/-/build-utils-8.4.12.tgz", - "integrity": "sha512-pIH0b965wJhd1otROVPndfZenPKFVoYSaRjtSKVOT/oNBT13ifq86UVjb5ZjoVfqUI2TtSTP+68kBqLPeoq30g==" + "integrity": "sha512-pIH0b965wJhd1otROVPndfZenPKFVoYSaRjtSKVOT/oNBT13ifq86UVjb5ZjoVfqUI2TtSTP+68kBqLPeoq30g==", + "optional": true }, "node_modules/@vercel/error-utils": { "version": "2.0.2", "resolved": "https://r.cnpmjs.org/@vercel/error-utils/-/error-utils-2.0.2.tgz", - "integrity": "sha512-Sj0LFafGpYr6pfCqrQ82X6ukRl5qpmVrHM/191kNYFqkkB9YkjlMAj6QcEsvCG259x4QZ7Tya++0AB85NDPbKQ==" + "integrity": "sha512-Sj0LFafGpYr6pfCqrQ82X6ukRl5qpmVrHM/191kNYFqkkB9YkjlMAj6QcEsvCG259x4QZ7Tya++0AB85NDPbKQ==", + "optional": true }, "node_modules/@vercel/kv": { "version": "3.0.0", "resolved": "https://r.cnpmjs.org/@vercel/kv/-/kv-3.0.0.tgz", "integrity": "sha512-pKT8fRnfyYk2MgvyB6fn6ipJPCdfZwiKDdw7vB+HL50rjboEBHDVBEcnwfkEpVSp2AjNtoaOUH7zG+bVC/rvSg==", + "optional": true, "dependencies": { "@upstash/redis": "^1.34.0" }, @@ -1074,6 +1106,7 @@ "version": "0.27.3", "resolved": "https://r.cnpmjs.org/@vercel/nft/-/nft-0.27.3.tgz", "integrity": "sha512-oySTdDSzUAFDXpsSLk9Q943o+/Yu/+TCFxnehpFQEf/3khi2stMpTHPVNwFdvZq/Z4Ky93lE+MGHpXCRpMkSCA==", + "optional": true, "dependencies": { "@mapbox/node-pre-gyp": "^1.0.5", "@rollup/pluginutils": "^4.0.0", @@ -1099,6 +1132,7 @@ "version": "4.2.1", "resolved": "https://r.cnpmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "optional": true, "dependencies": { "estree-walker": "^2.0.1", "picomatch": "^2.2.2" @@ -1111,6 +1145,7 @@ "version": "2.3.1", "resolved": "https://r.cnpmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "optional": true, "engines": { "node": ">=8.6" }, @@ -1122,6 +1157,7 @@ "version": "3.2.24", "resolved": "https://r.cnpmjs.org/@vercel/node/-/node-3.2.24.tgz", "integrity": "sha512-KEm50YBmcfRNOw5NfdcqMI4BkP4+5TD9kRwAByHHlIZXLj1NTTknvMF+69sHBYzwpK/SUZIkeo7jTrtcl4g+RQ==", + "optional": true, "dependencies": { "@edge-runtime/node-utils": "2.3.0", "@edge-runtime/primitives": "4.1.0", @@ -1148,18 +1184,21 @@ "node_modules/@vercel/node/node_modules/@types/node": { "version": "16.18.11", "resolved": "https://r.cnpmjs.org/@types/node/-/node-16.18.11.tgz", - "integrity": "sha512-3oJbGBUWuS6ahSnEq1eN2XrCyf4YsWI8OyCvo7c64zQJNplk3mO84t53o8lfTk+2ji59g5ycfc6qQ3fdHliHuA==" + "integrity": "sha512-3oJbGBUWuS6ahSnEq1eN2XrCyf4YsWI8OyCvo7c64zQJNplk3mO84t53o8lfTk+2ji59g5ycfc6qQ3fdHliHuA==", + "optional": true }, "node_modules/@vercel/node/node_modules/es-module-lexer": { "version": "1.4.1", "resolved": "https://r.cnpmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==" + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", + "optional": true }, "node_modules/@vercel/node/node_modules/esbuild": { "version": "0.14.47", "resolved": "https://r.cnpmjs.org/esbuild/-/esbuild-0.14.47.tgz", "integrity": "sha512-wI4ZiIfFxpkuxB8ju4MHrGwGLyp1+awEHAHVpx6w7a+1pmYIq8T9FGEVVwFo0iFierDoMj++Xq69GXWYn2EiwA==", "hasInstallScript": true, + "optional": true, "bin": { "esbuild": "bin/esbuild" }, @@ -1193,6 +1232,7 @@ "version": "3.0.0", "resolved": "https://r.cnpmjs.org/@vercel/static-config/-/static-config-3.0.0.tgz", "integrity": "sha512-2qtvcBJ1bGY0dYGYh3iM7yGKkk971FujLEDXzuW5wcZsPr1GSEjO/w2iSr3qve6nDDtBImsGoDEnus5FI4+fIw==", + "optional": true, "dependencies": { "ajv": "8.6.3", "json-schema-to-ts": "1.6.4", @@ -1394,7 +1434,8 @@ "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://r2.cnpmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "optional": true }, "node_modules/accepts": { "version": "1.3.8", @@ -1412,6 +1453,7 @@ "version": "8.14.0", "resolved": "https://r.cnpmjs.org/acorn/-/acorn-8.14.0.tgz", "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "devOptional": true, "bin": { "acorn": "bin/acorn" }, @@ -1423,6 +1465,7 @@ "version": "1.9.5", "resolved": "https://r.cnpmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "optional": true, "peerDependencies": { "acorn": "^8" } @@ -1431,6 +1474,7 @@ "version": "8.3.4", "resolved": "https://r.cnpmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "optional": true, "dependencies": { "acorn": "^8.11.0" }, @@ -1442,6 +1486,7 @@ "version": "6.0.2", "resolved": "https://r2.cnpmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "optional": true, "dependencies": { "debug": "4" }, @@ -1453,6 +1498,7 @@ "version": "8.6.3", "resolved": "https://r2.cnpmjs.org/ajv/-/ajv-8.6.3.tgz", "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==", + "optional": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -1468,17 +1514,33 @@ "version": "5.0.1", "resolved": "https://r2.cnpmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "devOptional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://r2.cnpmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/ant-design-vue": { - "version": "4.0.0-rc.6", - "resolved": "https://r.cnpmjs.org/ant-design-vue/-/ant-design-vue-4.0.0-rc.6.tgz", - "integrity": "sha512-j+GAhgC1p1+nmQVbaEeY2miZ1h+8jBLlxTESX93MwcshVaYTkZNhiyddtl92VvEDJTedzuX+1oT3TP5wG/+tHg==", + "version": "4.2.6", + "resolved": "https://r.cnpmjs.org/ant-design-vue/-/ant-design-vue-4.2.6.tgz", + "integrity": "sha512-t7eX13Yj3i9+i5g9lqFyYneoIb3OzTvQjq9Tts1i+eiOd3Eva/6GagxBSXM1fOCjqemIu0FYVE1ByZ/38epR3Q==", "dependencies": { "@ant-design/colors": "^6.0.0", - "@ant-design/icons-vue": "^6.1.0", + "@ant-design/icons-vue": "^7.0.0", "@babel/runtime": "^7.10.5", "@ctrl/tinycolor": "^3.5.0", "@emotion/hash": "^0.9.0", @@ -1511,18 +1573,6 @@ "vue": ">=3.2.0" } }, - "node_modules/ant-design-vue/node_modules/@ant-design/icons-vue": { - "version": "6.1.0", - "resolved": "https://r.cnpmjs.org/@ant-design/icons-vue/-/icons-vue-6.1.0.tgz", - "integrity": "sha512-EX6bYm56V+ZrKN7+3MT/ubDkvJ5rK/O2t380WFRflDcVFgsvl3NLH7Wxeau6R8DbrO5jWR6DSTC3B6gYFp77AA==", - "dependencies": { - "@ant-design/colors": "^6.0.0", - "@ant-design/icons-svg": "^4.2.1" - }, - "peerDependencies": { - "vue": ">=3.0.3" - } - }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://r.cnpmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -1551,13 +1601,15 @@ "node_modules/aproba": { "version": "2.0.0", "resolved": "https://r2.cnpmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "optional": true }, "node_modules/are-we-there-yet": { "version": "2.0.0", "resolved": "https://r2.cnpmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", "deprecated": "This package is no longer supported.", + "optional": true, "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" @@ -1569,7 +1621,8 @@ "node_modules/arg": { "version": "4.1.3", "resolved": "https://r2.cnpmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "optional": true }, "node_modules/array-flatten": { "version": "1.1.1", @@ -1585,6 +1638,7 @@ "version": "3.0.0", "resolved": "https://r.cnpmjs.org/async-listen/-/async-listen-3.0.0.tgz", "integrity": "sha512-V+SsTpDqkrWTimiotsyl33ePSjA5/KrithwupuvJ6ztsqPvGv6ge4OredFhPffVXiLN/QUWvE0XcqJaYgt6fOg==", + "optional": true, "engines": { "node": ">= 14" } @@ -1592,7 +1646,8 @@ "node_modules/async-sema": { "version": "3.1.1", "resolved": "https://r2.cnpmjs.org/async-sema/-/async-sema-3.1.1.tgz", - "integrity": "sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==" + "integrity": "sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==", + "optional": true }, "node_modules/async-validator": { "version": "4.2.5", @@ -1617,7 +1672,8 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://r2.cnpmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "devOptional": true }, "node_modules/binary-extensions": { "version": "2.3.0", @@ -1635,6 +1691,7 @@ "version": "1.5.0", "resolved": "https://r2.cnpmjs.org/bindings/-/bindings-1.5.0.tgz", "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "optional": true, "dependencies": { "file-uri-to-path": "1.0.0" } @@ -1699,6 +1756,7 @@ "version": "3.0.3", "resolved": "https://r.cnpmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "devOptional": true, "dependencies": { "fill-range": "^7.1.1" }, @@ -1801,6 +1859,7 @@ "version": "2.0.0", "resolved": "https://r2.cnpmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "optional": true, "engines": { "node": ">=10" } @@ -1808,17 +1867,52 @@ "node_modules/cjs-module-lexer": { "version": "1.2.3", "resolved": "https://r.cnpmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==" + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "optional": true + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://r.cnpmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } }, "node_modules/code-block-writer": { "version": "10.1.1", "resolved": "https://r2.cnpmjs.org/code-block-writer/-/code-block-writer-10.1.1.tgz", - "integrity": "sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw==" + "integrity": "sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw==", + "optional": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://r2.cnpmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://r2.cnpmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/color-support": { "version": "1.1.3", "resolved": "https://r2.cnpmjs.org/color-support/-/color-support-1.1.3.tgz", "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "optional": true, "bin": { "color-support": "bin.js" } @@ -1842,7 +1936,8 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://r2.cnpmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "optional": true }, "node_modules/confbox": { "version": "0.1.8", @@ -1859,7 +1954,8 @@ "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://r2.cnpmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "optional": true }, "node_modules/constant-case": { "version": "3.0.4", @@ -1895,6 +1991,7 @@ "version": "3.0.0", "resolved": "https://r2.cnpmjs.org/convert-hrtime/-/convert-hrtime-3.0.0.tgz", "integrity": "sha512-7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA==", + "optional": true, "engines": { "node": ">=8" } @@ -1937,12 +2034,14 @@ "node_modules/create-require": { "version": "1.1.1", "resolved": "https://r2.cnpmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "optional": true }, "node_modules/crypto-js": { "version": "4.2.0", "resolved": "https://r.cnpmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", - "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==", + "optional": true }, "node_modules/csstype": { "version": "3.1.3", @@ -1958,6 +2057,7 @@ "version": "4.3.7", "resolved": "https://r.cnpmjs.org/debug/-/debug-4.3.7.tgz", "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "devOptional": true, "dependencies": { "ms": "^2.1.3" }, @@ -1986,6 +2086,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://r2.cnpmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://r2.cnpmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -1997,7 +2106,8 @@ "node_modules/delegates": { "version": "1.0.0", "resolved": "https://r2.cnpmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "optional": true }, "node_modules/depd": { "version": "2.0.0", @@ -2020,6 +2130,7 @@ "version": "2.0.3", "resolved": "https://r.cnpmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "optional": true, "engines": { "node": ">=8" } @@ -2028,6 +2139,7 @@ "version": "4.0.2", "resolved": "https://r2.cnpmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "optional": true, "engines": { "node": ">=0.3.1" } @@ -2081,6 +2193,7 @@ "version": "2.5.9", "resolved": "https://r.cnpmjs.org/edge-runtime/-/edge-runtime-2.5.9.tgz", "integrity": "sha512-pk+k0oK0PVXdlT4oRp4lwh+unuKB7Ng4iZ2HB+EZ7QCEQizX360Rp/F4aRpgpRgdP2ufB35N+1KppHmYjqIGSg==", + "optional": true, "dependencies": { "@edge-runtime/format": "2.2.1", "@edge-runtime/ponyfill": "2.4.2", @@ -2103,6 +2216,7 @@ "version": "3.0.1", "resolved": "https://r.cnpmjs.org/async-listen/-/async-listen-3.0.1.tgz", "integrity": "sha512-cWMaNwUJnf37C/S5TfCkk/15MwbPRwVYALA2jtjkbHjCmAPiDXyNJy2q3p1KAZzDLHAWyarUWSujUoHR4pEgrA==", + "optional": true, "engines": { "node": ">= 14" } @@ -2110,7 +2224,8 @@ "node_modules/edge-runtime/node_modules/picocolors": { "version": "1.0.0", "resolved": "https://r2.cnpmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "optional": true }, "node_modules/ee-first": { "version": "1.1.1", @@ -2120,7 +2235,8 @@ "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://r2.cnpmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "devOptional": true }, "node_modules/encodeurl": { "version": "2.0.0", @@ -2517,6 +2633,15 @@ "node": ">=12" } }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://r.cnpmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://r2.cnpmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -2597,12 +2722,14 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://r2.cnpmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "optional": true }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://r.cnpmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "devOptional": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -2618,6 +2745,7 @@ "version": "1.17.1", "resolved": "https://r.cnpmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "devOptional": true, "dependencies": { "reusify": "^1.0.4" } @@ -2625,12 +2753,14 @@ "node_modules/file-uri-to-path": { "version": "1.0.0", "resolved": "https://r2.cnpmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "optional": true }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://r.cnpmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "devOptional": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -2734,6 +2864,7 @@ "version": "2.1.0", "resolved": "https://r2.cnpmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "optional": true, "dependencies": { "minipass": "^3.0.0" }, @@ -2745,6 +2876,7 @@ "version": "3.3.6", "resolved": "https://r.cnpmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "optional": true, "dependencies": { "yallist": "^4.0.0" }, @@ -2755,7 +2887,8 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://r2.cnpmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "optional": true }, "node_modules/fsevents": { "version": "2.3.3", @@ -2784,6 +2917,7 @@ "resolved": "https://r.cnpmjs.org/gauge/-/gauge-3.0.2.tgz", "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", "deprecated": "This package is no longer supported.", + "optional": true, "dependencies": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.2", @@ -2802,7 +2936,17 @@ "node_modules/gauge/node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://r.cnpmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "optional": true + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://r2.cnpmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } }, "node_modules/get-intrinsic": { "version": "1.2.4", @@ -2827,6 +2971,7 @@ "resolved": "https://r.cnpmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", + "optional": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -2846,6 +2991,7 @@ "version": "5.1.2", "resolved": "https://r2.cnpmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "devOptional": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -2857,6 +3003,7 @@ "version": "1.1.11", "resolved": "https://r2.cnpmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "optional": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2866,6 +3013,7 @@ "version": "3.1.2", "resolved": "https://r.cnpmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "optional": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -2887,7 +3035,8 @@ "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://r.cnpmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "devOptional": true }, "node_modules/has-property-descriptors": { "version": "1.0.2", @@ -2925,7 +3074,8 @@ "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://r2.cnpmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "optional": true }, "node_modules/hasown": { "version": "2.0.2", @@ -2967,6 +3117,7 @@ "version": "5.0.1", "resolved": "https://r.cnpmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "optional": true, "dependencies": { "agent-base": "6", "debug": "4" @@ -3006,6 +3157,7 @@ "resolved": "https://r2.cnpmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "optional": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -3036,10 +3188,26 @@ "node": ">=8" } }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://r2.cnpmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://r2.cnpmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "devOptional": true, "engines": { "node": ">=0.10.0" } @@ -3048,6 +3216,7 @@ "version": "3.0.0", "resolved": "https://r2.cnpmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "devOptional": true, "engines": { "node": ">=8" } @@ -3056,6 +3225,7 @@ "version": "4.0.3", "resolved": "https://r2.cnpmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "devOptional": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -3067,6 +3237,7 @@ "version": "7.0.0", "resolved": "https://r2.cnpmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "devOptional": true, "engines": { "node": ">=0.12.0" } @@ -3085,6 +3256,18 @@ "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", "dev": true }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://r2.cnpmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://r2.cnpmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -3094,6 +3277,7 @@ "version": "1.6.4", "resolved": "https://r2.cnpmjs.org/json-schema-to-ts/-/json-schema-to-ts-1.6.4.tgz", "integrity": "sha512-pR4yQ9DHz6itqswtHCm26mw45FSNfQ9rEQjosaZErhn5J3J2sIViQiz8rDaezjKAhFGpmsoczYVBgGHzFw/stA==", + "optional": true, "dependencies": { "@types/json-schema": "^7.0.6", "ts-toolbelt": "^6.15.5" @@ -3102,7 +3286,8 @@ "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://r2.cnpmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "optional": true }, "node_modules/jsonfile": { "version": "6.1.0", @@ -3239,7 +3424,8 @@ "node_modules/make-error": { "version": "1.3.6", "resolved": "https://r2.cnpmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "optional": true }, "node_modules/media-typer": { "version": "0.3.0", @@ -3261,6 +3447,7 @@ "version": "1.4.1", "resolved": "https://r2.cnpmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "devOptional": true, "engines": { "node": ">= 8" } @@ -3277,6 +3464,7 @@ "version": "4.0.8", "resolved": "https://r.cnpmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "devOptional": true, "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -3289,6 +3477,7 @@ "version": "2.3.1", "resolved": "https://r.cnpmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "devOptional": true, "engines": { "node": ">=8.6" }, @@ -3345,6 +3534,7 @@ "version": "5.0.0", "resolved": "https://r.cnpmjs.org/minipass/-/minipass-5.0.0.tgz", "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "optional": true, "engines": { "node": ">=8" } @@ -3353,6 +3543,7 @@ "version": "2.1.2", "resolved": "https://r2.cnpmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "optional": true, "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -3365,6 +3556,7 @@ "version": "3.3.6", "resolved": "https://r.cnpmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "optional": true, "dependencies": { "yallist": "^4.0.0" }, @@ -3376,6 +3568,7 @@ "version": "1.0.4", "resolved": "https://r2.cnpmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "optional": true, "bin": { "mkdirp": "bin/cmd.js" }, @@ -3399,6 +3592,7 @@ "version": "1.2.0", "resolved": "https://r2.cnpmjs.org/mri/-/mri-1.2.0.tgz", "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "optional": true, "engines": { "node": ">=4" } @@ -3469,6 +3663,7 @@ "version": "2.6.9", "resolved": "https://r.cnpmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "optional": true, "dependencies": { "whatwg-url": "^5.0.0" }, @@ -3488,6 +3683,7 @@ "version": "4.8.2", "resolved": "https://r.cnpmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz", "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==", + "optional": true, "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -3498,6 +3694,7 @@ "version": "5.0.0", "resolved": "https://r2.cnpmjs.org/nopt/-/nopt-5.0.0.tgz", "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "optional": true, "dependencies": { "abbrev": "1" }, @@ -3522,6 +3719,7 @@ "resolved": "https://r2.cnpmjs.org/npmlog/-/npmlog-5.0.1.tgz", "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", "deprecated": "This package is no longer supported.", + "optional": true, "dependencies": { "are-we-there-yet": "^2.0.0", "console-control-strings": "^1.1.0", @@ -3533,6 +3731,7 @@ "version": "4.1.1", "resolved": "https://r2.cnpmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "optional": true, "engines": { "node": ">=0.10.0" } @@ -3563,10 +3762,28 @@ "version": "1.4.0", "resolved": "https://r2.cnpmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "optional": true, "dependencies": { "wrappy": "1" } }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://r.cnpmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/param-case": { "version": "3.0.4", "resolved": "https://r2.cnpmjs.org/param-case/-/param-case-3.0.4.tgz", @@ -3581,6 +3798,7 @@ "version": "2.1.0", "resolved": "https://r2.cnpmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", + "optional": true, "engines": { "node": ">=6" } @@ -3612,19 +3830,11 @@ "tslib": "^2.0.3" } }, - "node_modules/path": { - "version": "0.12.7", - "resolved": "https://r2.cnpmjs.org/path/-/path-0.12.7.tgz", - "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==", - "dependencies": { - "process": "^0.11.1", - "util": "^0.10.3" - } - }, "node_modules/path-browserify": { "version": "1.0.1", "resolved": "https://r2.cnpmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "optional": true }, "node_modules/path-case": { "version": "3.0.4", @@ -3640,6 +3850,7 @@ "version": "1.0.1", "resolved": "https://r2.cnpmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "optional": true, "engines": { "node": ">=0.10.0" } @@ -3647,7 +3858,8 @@ "node_modules/path-to-regexp": { "version": "6.2.1", "resolved": "https://r.cnpmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", - "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==" + "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", + "optional": true }, "node_modules/pathe": { "version": "1.1.2", @@ -3720,10 +3932,26 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/prettier": { + "version": "3.3.3", + "resolved": "https://r.cnpmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/pretty-ms": { "version": "7.0.1", "resolved": "https://r2.cnpmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", + "optional": true, "dependencies": { "parse-ms": "^2.1.0" }, @@ -3734,14 +3962,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://r2.cnpmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "engines": { - "node": ">= 0.6.0" - } - }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://r2.cnpmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -3770,6 +3990,7 @@ "version": "2.3.1", "resolved": "https://r.cnpmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "optional": true, "engines": { "node": ">=6" } @@ -3792,6 +4013,7 @@ "version": "1.2.3", "resolved": "https://r2.cnpmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "devOptional": true, "funding": [ { "type": "github", @@ -3844,6 +4066,7 @@ "version": "3.6.2", "resolved": "https://r.cnpmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "optional": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -3882,10 +4105,20 @@ "resolved": "https://r.cnpmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://r2.cnpmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://r2.cnpmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "optional": true, "engines": { "node": ">=0.10.0" } @@ -3899,6 +4132,7 @@ "version": "5.0.0", "resolved": "https://r2.cnpmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "optional": true, "engines": { "node": ">=8" } @@ -3907,6 +4141,7 @@ "version": "1.0.4", "resolved": "https://r2.cnpmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "devOptional": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -3917,6 +4152,7 @@ "resolved": "https://r2.cnpmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "deprecated": "Rimraf versions prior to v4 are no longer supported", + "optional": true, "dependencies": { "glob": "^7.1.3" }, @@ -3964,10 +4200,58 @@ "fsevents": "~2.3.2" } }, + "node_modules/rollup-plugin-visualizer": { + "version": "5.12.0", + "resolved": "https://r.cnpmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.12.0.tgz", + "integrity": "sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==", + "dev": true, + "dependencies": { + "open": "^8.4.0", + "picomatch": "^2.3.1", + "source-map": "^0.7.4", + "yargs": "^17.5.1" + }, + "bin": { + "rollup-plugin-visualizer": "dist/bin/cli.js" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "rollup": "2.x || 3.x || 4.x" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/rollup-plugin-visualizer/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://r.cnpmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/rollup-plugin-visualizer/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://r.cnpmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://r2.cnpmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "devOptional": true, "funding": [ { "type": "github", @@ -4107,7 +4391,8 @@ "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://r2.cnpmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "optional": true }, "node_modules/set-function-length": { "version": "1.2.2", @@ -4156,6 +4441,7 @@ "version": "4.0.2", "resolved": "https://r.cnpmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", + "optional": true, "engines": { "node": ">=14" }, @@ -4210,6 +4496,7 @@ "version": "1.3.0", "resolved": "https://r2.cnpmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "optional": true, "dependencies": { "safe-buffer": "~5.2.0" } @@ -4218,6 +4505,7 @@ "version": "4.2.3", "resolved": "https://r2.cnpmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "devOptional": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -4231,6 +4519,7 @@ "version": "6.0.1", "resolved": "https://r2.cnpmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "devOptional": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -4247,6 +4536,7 @@ "version": "6.2.1", "resolved": "https://r.cnpmjs.org/tar/-/tar-6.2.1.tgz", "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "optional": true, "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -4271,6 +4561,7 @@ "version": "4.0.0", "resolved": "https://r2.cnpmjs.org/time-span/-/time-span-4.0.0.tgz", "integrity": "sha512-MyqZCTGLDZ77u4k+jqg4UlrzPTPZ49NDlaekU6uuFaJLzPIN1woaRXCbGeqOfxwc3Y37ZROGAJ614Rdv7Olt+g==", + "optional": true, "dependencies": { "convert-hrtime": "^3.0.0" }, @@ -4285,6 +4576,7 @@ "version": "5.0.1", "resolved": "https://r2.cnpmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "devOptional": true, "dependencies": { "is-number": "^7.0.0" }, @@ -4303,12 +4595,14 @@ "node_modules/tr46": { "version": "0.0.3", "resolved": "https://r2.cnpmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "optional": true }, "node_modules/ts-morph": { "version": "12.0.0", "resolved": "https://r2.cnpmjs.org/ts-morph/-/ts-morph-12.0.0.tgz", "integrity": "sha512-VHC8XgU2fFW7yO1f/b3mxKDje1vmyzFXHWzOYmKEkCEwcLjDtbdLgBQviqj4ZwP4MJkQtRo6Ha2I29lq/B+VxA==", + "optional": true, "dependencies": { "@ts-morph/common": "~0.11.0", "code-block-writer": "^10.1.1" @@ -4318,6 +4612,7 @@ "version": "10.9.1", "resolved": "https://r.cnpmjs.org/ts-node/-/ts-node-10.9.1.tgz", "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "optional": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -4359,7 +4654,8 @@ "node_modules/ts-toolbelt": { "version": "6.15.5", "resolved": "https://r2.cnpmjs.org/ts-toolbelt/-/ts-toolbelt-6.15.5.tgz", - "integrity": "sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A==" + "integrity": "sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A==", + "optional": true }, "node_modules/tslib": { "version": "2.8.1", @@ -4383,6 +4679,7 @@ "version": "4.9.5", "resolved": "https://r.cnpmjs.org/typescript/-/typescript-4.9.5.tgz", "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "optional": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -4401,6 +4698,7 @@ "version": "5.28.4", "resolved": "https://r.cnpmjs.org/undici/-/undici-5.28.4.tgz", "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", + "optional": true, "dependencies": { "@fastify/busboy": "^2.0.0" }, @@ -4412,6 +4710,7 @@ "version": "6.19.8", "resolved": "https://r.cnpmjs.org/undici-types/-/undici-types-6.19.8.tgz", "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "optional": true, "peer": true }, "node_modules/universalify": { @@ -4511,27 +4810,16 @@ "version": "4.4.1", "resolved": "https://r2.cnpmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "optional": true, "dependencies": { "punycode": "^2.1.0" } }, - "node_modules/util": { - "version": "0.10.4", - "resolved": "https://r2.cnpmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "dependencies": { - "inherits": "2.0.3" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://r2.cnpmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://r2.cnpmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "optional": true }, "node_modules/utils-merge": { "version": "1.0.1", @@ -4544,7 +4832,8 @@ "node_modules/v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://r.cnpmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "optional": true }, "node_modules/vary": { "version": "1.1.2", @@ -4749,7 +5038,8 @@ "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://r2.cnpmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "optional": true }, "node_modules/webpack-virtual-modules": { "version": "0.6.2", @@ -4761,6 +5051,7 @@ "version": "5.0.0", "resolved": "https://r2.cnpmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "optional": true, "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -4770,24 +5061,81 @@ "version": "1.1.5", "resolved": "https://r2.cnpmjs.org/wide-align/-/wide-align-1.1.5.tgz", "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "optional": true, "dependencies": { "string-width": "^1.0.2 || 2 || 3 || 4" } }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://r2.cnpmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://r2.cnpmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "optional": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://r2.cnpmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } }, "node_modules/yallist": { "version": "4.0.0", "resolved": "https://r2.cnpmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "optional": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://r.cnpmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://r.cnpmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://r2.cnpmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "optional": true, "engines": { "node": ">=6" } diff --git a/package.json b/package.json index 3f27cce..9aef940 100644 --- a/package.json +++ b/package.json @@ -11,22 +11,22 @@ "docker:install": "yarn install --production --frozen-lockfile && yarn build" }, "dependencies": { + "dotenv": "^16.4.5", + "express": "^4.21.1" + }, + "devDependencies": { "@ant-design/icons-vue": "^7.0.1", "@vueuse/core": "^11.2.0", - "ant-design-vue": "^4.0.0-rc.6", - "axios": "^1.7.7", - "dotenv": "^16.4.5", - "echarts": "^5.5.1", - "express": "^4.21.1", + "ant-design-vue": "^4.2.6", "vue": "^3.5.12", "vue-i18n": "^9.14.1", - "vue-router": "^4.4.5" - }, - "devDependencies": { + "vue-router": "^4.4.5", + "echarts": "^5.5.1", "@vitejs/plugin-vue": "^5.1.4", "less": "^4.2.0", "less-loader": "^12.2.0", "prettier": "^3.3.3", + "rollup-plugin-visualizer": "^5.12.0", "unplugin-vue-components": "^0.27.4", "vite": "^5.4.10", "vite-plugin-style-import": "^2.0.0" diff --git a/server.js b/server.js index 08c0866..7aaf590 100644 --- a/server.js +++ b/server.js @@ -19,8 +19,10 @@ app.use(express.json()); // 引入路由 import authRouter from './api/local/auth.js'; import apiRouter from './api/local/index.js'; +import aliveRouter from './api/local/alive.js'; // 设置后端接口路由,位于 `/api` 路径下 +app.use('/api/alive', aliveRouter); app.use('/api/auth', authRouter); app.use('/api', apiRouter); diff --git a/src/components/Check.vue b/src/components/Check.vue index a2d975e..832920d 100644 --- a/src/components/Check.vue +++ b/src/components/Check.vue @@ -1,411 +1,451 @@