feat(auth): add authentication routes and user token handling
- Implemented user authentication routes in `auth.ts` for fetching current user info and admin verification. - Added caching mechanism for user tokens to improve performance. - Created middleware for admin authentication. feat(opencode): create OpenCode client route - Added `opencode-cnb` route for creating OpenCode clients with session management. - Integrated OpenCode SDK for client operations and session handling. refactor(client): encapsulate OpenCode client creation - Created a utility function `getClient` in `client.ts` to initialize OpenCode clients. test(opencode): add tests for OpenCode routes - Implemented test cases for OpenCode routes in `list.ts` to validate functionality. - Created common utilities for testing in `common.ts`.
This commit is contained in:
@@ -54,13 +54,13 @@
|
||||
"@kevisual/use-config": "^1.0.30",
|
||||
"@opencode-ai/plugin": "^1.2.24",
|
||||
"@types/bun": "^1.3.10",
|
||||
"@types/node": "^25.4.0",
|
||||
"@types/node": "^25.5.0",
|
||||
"@types/send": "^1.2.1",
|
||||
"@types/ws": "^8.18.1",
|
||||
"chalk": "^5.6.2",
|
||||
"commander": "^14.0.3",
|
||||
"cross-env": "^10.1.0",
|
||||
"dayjs": "^1.11.19",
|
||||
"dayjs": "^1.11.20",
|
||||
"dotenv": "^17.3.1",
|
||||
"get-port": "^7.1.0",
|
||||
"nanoid": "^5.1.6",
|
||||
@@ -76,7 +76,7 @@
|
||||
"access": "public"
|
||||
},
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-s3": "^3.1007.0",
|
||||
"@aws-sdk/client-s3": "^3.1008.0",
|
||||
"@kevisual/js-filter": "^0.0.6",
|
||||
"@kevisual/oss": "^0.0.20",
|
||||
"@kevisual/video-tools": "^0.0.13",
|
||||
|
||||
119
assistant/src/routes/auth.ts
Normal file
119
assistant/src/routes/auth.ts
Normal file
@@ -0,0 +1,119 @@
|
||||
import { app, assistantConfig } from '../app.ts';
|
||||
import { authCache } from '@/module/cache/auth.ts';
|
||||
|
||||
import { logger } from '@/module/logger.ts';
|
||||
const getTokenUser = async (token: string) => {
|
||||
const query = assistantConfig.query
|
||||
const res = await query.post({
|
||||
path: 'user',
|
||||
key: 'me',
|
||||
token: token,
|
||||
});
|
||||
return res;
|
||||
}
|
||||
export const getTokenUserCache = async (token: string) => {
|
||||
const tokenUser = await authCache.get(token);
|
||||
if (tokenUser) {
|
||||
return {
|
||||
code: 200,
|
||||
data: tokenUser,
|
||||
};
|
||||
}
|
||||
const res = await getTokenUser(token);
|
||||
if (res.code === 200) {
|
||||
authCache.set(token, res.data);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
export const checkAuth = async (ctx: any, isAdmin = false) => {
|
||||
const config = assistantConfig.getConfig();
|
||||
const { auth = {} } = config;
|
||||
const token = ctx.query.token;
|
||||
logger.debug('checkAuth', ctx.query, { token });
|
||||
if (!token) {
|
||||
return {
|
||||
code: 401,
|
||||
message: '未登录',
|
||||
}
|
||||
}
|
||||
// 鉴权代理
|
||||
let tokenUser = await authCache.get(token);
|
||||
if (!tokenUser) {
|
||||
const tokenUserRes = await getTokenUser(token);
|
||||
if (tokenUserRes.code !== 200) {
|
||||
return {
|
||||
code: tokenUserRes.code,
|
||||
message: '验证失败' + tokenUserRes.message,
|
||||
}
|
||||
} else {
|
||||
tokenUser = tokenUserRes.data;
|
||||
}
|
||||
authCache.set(token, tokenUser);
|
||||
}
|
||||
ctx.state = {
|
||||
...ctx.state,
|
||||
token,
|
||||
tokenUser,
|
||||
};
|
||||
const { username } = tokenUser;
|
||||
if (!auth.username) {
|
||||
// 初始管理员账号
|
||||
auth.username = username;
|
||||
assistantConfig.setConfig({ auth });
|
||||
}
|
||||
if (isAdmin && auth.username) {
|
||||
const admins = config.auth?.admin || [];
|
||||
let isCheckAdmin = false;
|
||||
const admin = auth.username;
|
||||
if (admin === username) {
|
||||
isCheckAdmin = true;
|
||||
}
|
||||
if (!isCheckAdmin && admins.length > 0 && admins.includes(username)) {
|
||||
isCheckAdmin = true;
|
||||
}
|
||||
if (!isCheckAdmin) {
|
||||
return {
|
||||
code: 403,
|
||||
message: '非管理员用户',
|
||||
}
|
||||
}
|
||||
}
|
||||
return {
|
||||
code: 200,
|
||||
data: { tokenUser, token }
|
||||
}
|
||||
};
|
||||
app
|
||||
.route({
|
||||
path: 'auth',
|
||||
id: 'auth',
|
||||
description: '获取当前登录用户信息, 第一个登录的用户为管理员用户',
|
||||
})
|
||||
.define(async (ctx) => {
|
||||
if (!ctx.query?.token && ctx.appId === app.appId) {
|
||||
return;
|
||||
}
|
||||
const authResult = await checkAuth(ctx);
|
||||
if (authResult.code !== 200) {
|
||||
ctx.throw(authResult.code, authResult.message);
|
||||
}
|
||||
})
|
||||
.addTo(app);
|
||||
app
|
||||
.route({
|
||||
path: 'auth-admin',
|
||||
id: 'auth-admin',
|
||||
description: '管理员鉴权, 获取用户信息,并验证是否为管理员。',
|
||||
})
|
||||
.define(async (ctx) => {
|
||||
// logger.debug('query', ctx.query);
|
||||
if (!ctx.query?.token && ctx.appId === app.appId) {
|
||||
return;
|
||||
}
|
||||
ctx.state.isAdmin = true;
|
||||
const authResult = await checkAuth(ctx, true);
|
||||
if (authResult.code !== 200) {
|
||||
ctx.throw(authResult.code, authResult.message);
|
||||
}
|
||||
})
|
||||
.addTo(app);
|
||||
@@ -1,4 +1,4 @@
|
||||
import { app, assistantConfig } from '../app.ts';
|
||||
|
||||
import './config/index.ts';
|
||||
import './client/index.ts';
|
||||
import './shop-install/index.ts';
|
||||
@@ -11,121 +11,8 @@ import './remote/index.ts';
|
||||
// import './kevisual/index.ts'
|
||||
import './cnb-board/index.ts';
|
||||
|
||||
import { authCache } from '@/module/cache/auth.ts';
|
||||
import './auth.ts';
|
||||
|
||||
import { getTokenUserCache, checkAuth } from './auth.ts';
|
||||
export { getTokenUserCache, checkAuth }
|
||||
|
||||
import { logger } from '@/module/logger.ts';
|
||||
const getTokenUser = async (token: string) => {
|
||||
const query = assistantConfig.query
|
||||
const res = await query.post({
|
||||
path: 'user',
|
||||
key: 'me',
|
||||
token: token,
|
||||
});
|
||||
return res;
|
||||
}
|
||||
export const getTokenUserCache = async (token: string) => {
|
||||
const tokenUser = await authCache.get(token);
|
||||
if (tokenUser) {
|
||||
return {
|
||||
code: 200,
|
||||
data: tokenUser,
|
||||
};
|
||||
}
|
||||
const res = await getTokenUser(token);
|
||||
if (res.code === 200) {
|
||||
authCache.set(token, res.data);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
export const checkAuth = async (ctx: any, isAdmin = false) => {
|
||||
const config = assistantConfig.getConfig();
|
||||
const { auth = {} } = config;
|
||||
const token = ctx.query.token;
|
||||
logger.debug('checkAuth', ctx.query, { token });
|
||||
if (!token) {
|
||||
return {
|
||||
code: 401,
|
||||
message: '未登录',
|
||||
}
|
||||
}
|
||||
// 鉴权代理
|
||||
let tokenUser = await authCache.get(token);
|
||||
if (!tokenUser) {
|
||||
const tokenUserRes = await getTokenUser(token);
|
||||
if (tokenUserRes.code !== 200) {
|
||||
return {
|
||||
code: tokenUserRes.code,
|
||||
message: '验证失败' + tokenUserRes.message,
|
||||
}
|
||||
} else {
|
||||
tokenUser = tokenUserRes.data;
|
||||
}
|
||||
authCache.set(token, tokenUser);
|
||||
}
|
||||
ctx.state = {
|
||||
...ctx.state,
|
||||
token,
|
||||
tokenUser,
|
||||
};
|
||||
const { username } = tokenUser;
|
||||
if (!auth.username) {
|
||||
// 初始管理员账号
|
||||
auth.username = username;
|
||||
assistantConfig.setConfig({ auth });
|
||||
}
|
||||
if (isAdmin && auth.username) {
|
||||
const admins = config.auth?.admin || [];
|
||||
let isCheckAdmin = false;
|
||||
const admin = auth.username;
|
||||
if (admin === username) {
|
||||
isCheckAdmin = true;
|
||||
}
|
||||
if (!isCheckAdmin && admins.length > 0 && admins.includes(username)) {
|
||||
isCheckAdmin = true;
|
||||
}
|
||||
if (!isCheckAdmin) {
|
||||
return {
|
||||
code: 403,
|
||||
message: '非管理员用户',
|
||||
}
|
||||
}
|
||||
}
|
||||
return {
|
||||
code: 200,
|
||||
data: { tokenUser, token }
|
||||
}
|
||||
};
|
||||
app
|
||||
.route({
|
||||
path: 'auth',
|
||||
id: 'auth',
|
||||
description: '获取当前登录用户信息, 第一个登录的用户为管理员用户',
|
||||
})
|
||||
.define(async (ctx) => {
|
||||
if (!ctx.query?.token && ctx.appId === app.appId) {
|
||||
return;
|
||||
}
|
||||
const authResult = await checkAuth(ctx);
|
||||
if (authResult.code !== 200) {
|
||||
ctx.throw(authResult.code, authResult.message);
|
||||
}
|
||||
})
|
||||
.addTo(app);
|
||||
app
|
||||
.route({
|
||||
path: 'auth-admin',
|
||||
id: 'auth-admin',
|
||||
description: '管理员鉴权, 获取用户信息,并验证是否为管理员。',
|
||||
})
|
||||
.define(async (ctx) => {
|
||||
// logger.debug('query', ctx.query);
|
||||
if (!ctx.query?.token && ctx.appId === app.appId) {
|
||||
return;
|
||||
}
|
||||
ctx.state.isAdmin = true;
|
||||
const authResult = await checkAuth(ctx, true);
|
||||
if (authResult.code !== 200) {
|
||||
ctx.throw(authResult.code, authResult.message);
|
||||
}
|
||||
})
|
||||
.addTo(app);
|
||||
|
||||
68
assistant/src/routes/opencode/cnb.ts
Normal file
68
assistant/src/routes/opencode/cnb.ts
Normal file
@@ -0,0 +1,68 @@
|
||||
import { app } from '@/app.ts'
|
||||
import { z } from 'zod';
|
||||
import { getClient } from './module/client.ts';
|
||||
import dayjs from 'dayjs';
|
||||
import { Session } from '@opencode-ai/sdk';
|
||||
|
||||
app.route({
|
||||
path: 'opencode-cnb',
|
||||
key: 'question',
|
||||
middleware: ['auth-admin'],
|
||||
description: '创建 OpenCode 客户端',
|
||||
metadata: {
|
||||
args: {
|
||||
question: z.string().describe('问题'),
|
||||
baseUrl: z.string().optional().describe('OpenCode 服务地址,默认为 http://localhost:4096'),
|
||||
directory: z.string().optional().describe('运行目录,默认为根目录'),
|
||||
messageID: z.string().optional().describe('消息 ID,选填'),
|
||||
sessionId: z.string().optional().describe('会话 ID,选填'),
|
||||
parts: z.array(z.any()).optional().describe('消息内容的分块,优先于 question 参数'),
|
||||
}
|
||||
}
|
||||
}).define(async (ctx) => {
|
||||
const { question, baseUrl, directory = '/workspace', messageID, sessionId, parts } = ctx.query;
|
||||
const client = await getClient({ baseUrl: baseUrl });
|
||||
if (!client) {
|
||||
ctx.body = { content: `OpenCode 客户端获取失败` };
|
||||
return;
|
||||
}
|
||||
if (!question) {
|
||||
ctx.body = { content: `问题不能为空` };
|
||||
return;
|
||||
}
|
||||
// const sessionList = await client.session.list()
|
||||
let session: Session | null = null;
|
||||
// const hasSession = sessionList.data.find(s => s.directory === directory);
|
||||
// if (hasSession) {
|
||||
// session = hasSession;
|
||||
// } else {
|
||||
if (sessionId) {
|
||||
try {
|
||||
const getSession = await client.session.get({ path: { id: sessionId } });
|
||||
session = getSession.data;
|
||||
} catch (error) {
|
||||
// 无法获取会话,继续往下走创建会话的逻辑
|
||||
}
|
||||
}
|
||||
if (!session) {
|
||||
const createSession = await client.session.create({
|
||||
query: {
|
||||
directory,
|
||||
},
|
||||
})
|
||||
session = createSession.data;
|
||||
}
|
||||
let _parts: any[] = parts ?? [{ type: "text", text: question }];
|
||||
const message = await client.session.prompt({
|
||||
body: {
|
||||
messageID: messageID,
|
||||
parts: _parts,
|
||||
},
|
||||
path: {
|
||||
id: sessionId || session.id,
|
||||
},
|
||||
})
|
||||
const data = message.data;
|
||||
|
||||
ctx.body = { content: `已经启动`, data };
|
||||
}).addTo(app);
|
||||
@@ -7,7 +7,7 @@ import { useKey } from '@kevisual/use-config';
|
||||
app.route({
|
||||
path: 'opencode',
|
||||
key: 'create',
|
||||
middleware: ['auth'],
|
||||
middleware: ['auth-admin'],
|
||||
description: '创建 OpenCode 客户端',
|
||||
metadata: {
|
||||
tags: ['opencode'],
|
||||
@@ -16,7 +16,7 @@ app.route({
|
||||
title: '创建 OpenCode 客户端',
|
||||
summary: '创建 OpenCode 客户端,如果存在则复用',
|
||||
args: {
|
||||
port: tool.schema.number().optional().describe('OpenCode 服务端口,默认为 5000')
|
||||
port: tool.schema.number().optional().describe('OpenCode 服务端口,默认为 4096')
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -25,11 +25,11 @@ app.route({
|
||||
ctx.body = { content: `${opencodeManager.url} OpenCode 客户端已就绪` };
|
||||
}).addTo(app);
|
||||
|
||||
// 关闭 opencode 客户端 5000
|
||||
// 关闭 opencode 客户端 4096
|
||||
app.route({
|
||||
path: 'opencode',
|
||||
key: 'close',
|
||||
middleware: ['auth'],
|
||||
middleware: ['auth-admin'],
|
||||
description: '关闭 OpenCode 客户端',
|
||||
metadata: {
|
||||
tags: ['opencode'],
|
||||
@@ -38,7 +38,7 @@ app.route({
|
||||
title: '关闭 OpenCode 客户端',
|
||||
summary: '关闭 OpenCode 客户端, 未提供端口则关闭默认端口',
|
||||
args: {
|
||||
port: tool.schema.number().optional().describe('OpenCode 服务端口,默认为 5000')
|
||||
port: tool.schema.number().optional().describe('OpenCode 服务端口,默认为 4096')
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -51,7 +51,7 @@ app.route({
|
||||
app.route({
|
||||
path: 'opencode',
|
||||
key: 'restart',
|
||||
middleware: ['auth'],
|
||||
middleware: ['auth-admin'],
|
||||
description: '重启 OpenCode 客户端',
|
||||
metadata: {
|
||||
tags: ['opencode'],
|
||||
@@ -60,7 +60,7 @@ app.route({
|
||||
title: '重启 OpenCode 客户端',
|
||||
summary: '重启 OpenCode 客户端',
|
||||
args: {
|
||||
port: tool.schema.number().optional().describe('OpenCode 服务端口,默认为 5000')
|
||||
port: tool.schema.number().optional().describe('OpenCode 服务端口,默认为 4096')
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -73,7 +73,7 @@ app.route({
|
||||
app.route({
|
||||
path: 'opencode',
|
||||
key: 'getUrl',
|
||||
middleware: ['auth'],
|
||||
middleware: ['auth-admin'],
|
||||
description: '获取 OpenCode 服务 URL',
|
||||
metadata: {
|
||||
tags: ['opencode'],
|
||||
@@ -82,7 +82,7 @@ app.route({
|
||||
title: '获取 OpenCode 服务 URL',
|
||||
summary: '获取当前 OpenCode 服务的 URL 地址',
|
||||
args: {
|
||||
port: tool.schema.number().optional().describe('OpenCode 服务端口,默认为 5000')
|
||||
port: tool.schema.number().optional().describe('OpenCode 服务端口,默认为 4096')
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -91,7 +91,7 @@ app.route({
|
||||
const cnbURL = useKey('CNB_VSCODE_PROXY_URI') as string | undefined;
|
||||
let content = `本地访问地址: ${url}`
|
||||
if (cnbURL) {
|
||||
content += `\n云端访问地址: ${cnbURL.replace('{{port}}', '5000')}`;
|
||||
content += `\n云端访问地址: ${cnbURL.replace('{{port}}', '4096')}`;
|
||||
}
|
||||
ctx.body = { content };
|
||||
}).addTo(app);
|
||||
@@ -114,7 +114,7 @@ app.route({
|
||||
app.route({
|
||||
path: 'opencode',
|
||||
key: 'runProject',
|
||||
middleware: ['auth'],
|
||||
middleware: ['auth-admin'],
|
||||
metadata: {
|
||||
tags: ['opencode'],
|
||||
...createSkill({
|
||||
|
||||
8
assistant/src/routes/opencode/module/client.ts
Normal file
8
assistant/src/routes/opencode/module/client.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
import { createOpencodeClient } from "@opencode-ai/sdk"
|
||||
|
||||
export const getClient = async (opts?: { baseUrl?: string }) => {
|
||||
const client = await createOpencodeClient({
|
||||
baseUrl: opts?.baseUrl ?? "http://localhost:4096",
|
||||
})
|
||||
return client;
|
||||
}
|
||||
@@ -3,7 +3,7 @@ import getPort from "get-port";
|
||||
import os from "node:os";
|
||||
import { execSync } from "node:child_process";
|
||||
|
||||
const DEFAULT_PORT = 5000;
|
||||
const DEFAULT_PORT = 4096;
|
||||
|
||||
export class OpencodeManager {
|
||||
private static instance: OpencodeManager | null = null;
|
||||
@@ -57,7 +57,7 @@ export class OpencodeManager {
|
||||
|
||||
async createOpencodeProject({
|
||||
directory,
|
||||
port = 5000
|
||||
port = DEFAULT_PORT
|
||||
}: { directory?: string, port?: number }): Promise<OpencodeClient> {
|
||||
const client = createOpencodeClient({
|
||||
baseUrl: `http://localhost:${port}`,
|
||||
|
||||
9
assistant/src/routes/opencode/test/common.ts
Normal file
9
assistant/src/routes/opencode/test/common.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
import { app } from '@/app.ts';
|
||||
import '../cnb.ts'
|
||||
import "@/routes/auth.ts"
|
||||
import util from "node:util"
|
||||
export { app }
|
||||
|
||||
export const showMore = (data: any) => {
|
||||
return util.inspect(data, { depth: null, colors: true })
|
||||
}
|
||||
14
assistant/src/routes/opencode/test/list.ts
Normal file
14
assistant/src/routes/opencode/test/list.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import { app, showMore } from './common.ts';
|
||||
|
||||
const main = async () => {
|
||||
const res = await app.run({
|
||||
path: 'opencode-cnb',
|
||||
key: 'question',
|
||||
payload: {
|
||||
question: '当前的projects目录下有哪些文件?',
|
||||
}
|
||||
}, { appId: app.appId });
|
||||
console.log('res', showMore(res));
|
||||
}
|
||||
|
||||
main();
|
||||
@@ -62,7 +62,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@kevisual/api": "^0.0.64",
|
||||
"@kevisual/cnb": "^0.0.42",
|
||||
"@kevisual/cnb": "^0.0.43",
|
||||
"@kevisual/dts": "^0.0.4",
|
||||
"@kevisual/load": "^0.0.6",
|
||||
"@kevisual/logger": "^0.0.4",
|
||||
@@ -71,7 +71,7 @@
|
||||
"@types/crypto-js": "^4.2.2",
|
||||
"@types/jsonwebtoken": "^9.0.10",
|
||||
"@types/micromatch": "^4.0.10",
|
||||
"@types/node": "^25.4.0",
|
||||
"@types/node": "^25.5.0",
|
||||
"@types/semver": "^7.7.1",
|
||||
"chalk": "^5.6.2",
|
||||
"commander": "^14.0.3",
|
||||
|
||||
398
pnpm-lock.yaml
generated
398
pnpm-lock.yaml
generated
@@ -10,7 +10,7 @@ importers:
|
||||
dependencies:
|
||||
'@inquirer/prompts':
|
||||
specifier: ^8.3.0
|
||||
version: 8.3.0(@types/node@25.4.0)
|
||||
version: 8.3.0(@types/node@25.5.0)
|
||||
'@kevisual/app':
|
||||
specifier: ^0.0.2
|
||||
version: 0.0.2(dotenv@17.3.1)
|
||||
@@ -21,8 +21,8 @@ importers:
|
||||
specifier: ^0.0.8
|
||||
version: 0.0.8
|
||||
'@kevisual/router':
|
||||
specifier: ^0.1.0
|
||||
version: 0.1.0
|
||||
specifier: ^0.1.1
|
||||
version: 0.1.1
|
||||
'@kevisual/use-config':
|
||||
specifier: ^1.0.30
|
||||
version: 1.0.30(dotenv@17.3.1)
|
||||
@@ -64,11 +64,11 @@ importers:
|
||||
version: 1.17.4(idb-keyval@6.2.2)(ioredis@5.9.3(supports-color@10.2.2))
|
||||
devDependencies:
|
||||
'@kevisual/api':
|
||||
specifier: ^0.0.62
|
||||
version: 0.0.62(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
|
||||
specifier: ^0.0.64
|
||||
version: 0.0.64(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
|
||||
'@kevisual/cnb':
|
||||
specifier: ^0.0.42
|
||||
version: 0.0.42(dotenv@17.3.1)(idb-keyval@6.2.2)(ioredis@5.9.3)
|
||||
specifier: ^0.0.43
|
||||
version: 0.0.43(dotenv@17.3.1)(idb-keyval@6.2.2)(ioredis@5.9.3)
|
||||
'@kevisual/dts':
|
||||
specifier: ^0.0.4
|
||||
version: 0.0.4(typescript@5.8.2)
|
||||
@@ -94,8 +94,8 @@ importers:
|
||||
specifier: ^4.0.10
|
||||
version: 4.0.10
|
||||
'@types/node':
|
||||
specifier: ^25.4.0
|
||||
version: 25.4.0
|
||||
specifier: ^25.5.0
|
||||
version: 25.5.0
|
||||
'@types/semver':
|
||||
specifier: ^7.7.1
|
||||
version: 7.7.1
|
||||
@@ -133,8 +133,8 @@ importers:
|
||||
assistant:
|
||||
dependencies:
|
||||
'@aws-sdk/client-s3':
|
||||
specifier: ^3.1006.0
|
||||
version: 3.1006.0
|
||||
specifier: ^3.1008.0
|
||||
version: 3.1008.0
|
||||
'@kevisual/js-filter':
|
||||
specifier: ^0.0.6
|
||||
version: 0.0.6
|
||||
@@ -171,13 +171,13 @@ importers:
|
||||
devDependencies:
|
||||
'@inquirer/prompts':
|
||||
specifier: ^8.3.0
|
||||
version: 8.3.0(@types/node@25.4.0)
|
||||
version: 8.3.0(@types/node@25.5.0)
|
||||
'@kevisual/ai':
|
||||
specifier: ^0.0.27
|
||||
version: 0.0.27
|
||||
specifier: ^0.0.28
|
||||
version: 0.0.28
|
||||
'@kevisual/api':
|
||||
specifier: ^0.0.62
|
||||
version: 0.0.62(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
|
||||
specifier: ^0.0.64
|
||||
version: 0.0.64(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
|
||||
'@kevisual/load':
|
||||
specifier: ^0.0.6
|
||||
version: 0.0.6
|
||||
@@ -191,8 +191,8 @@ importers:
|
||||
specifier: 0.0.53
|
||||
version: 0.0.53
|
||||
'@kevisual/router':
|
||||
specifier: ^0.1.0
|
||||
version: 0.1.0
|
||||
specifier: ^0.1.1
|
||||
version: 0.1.1
|
||||
'@kevisual/types':
|
||||
specifier: ^0.0.12
|
||||
version: 0.0.12
|
||||
@@ -206,8 +206,8 @@ importers:
|
||||
specifier: ^1.3.10
|
||||
version: 1.3.10
|
||||
'@types/node':
|
||||
specifier: ^25.4.0
|
||||
version: 25.4.0
|
||||
specifier: ^25.5.0
|
||||
version: 25.5.0
|
||||
'@types/send':
|
||||
specifier: ^1.2.1
|
||||
version: 1.2.1
|
||||
@@ -224,8 +224,8 @@ importers:
|
||||
specifier: ^10.1.0
|
||||
version: 10.1.0
|
||||
dayjs:
|
||||
specifier: ^1.11.19
|
||||
version: 1.11.19
|
||||
specifier: ^1.11.20
|
||||
version: 1.11.20
|
||||
dotenv:
|
||||
specifier: ^17.3.1
|
||||
version: 17.3.1
|
||||
@@ -252,16 +252,16 @@ importers:
|
||||
dependencies:
|
||||
'@astrojs/mdx':
|
||||
specifier: ^4.3.13
|
||||
version: 4.3.13(astro@5.16.15(@types/node@25.4.0)(idb-keyval@6.2.2)(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.57.1)(typescript@5.8.2))
|
||||
version: 4.3.13(astro@5.16.15(@types/node@25.5.0)(idb-keyval@6.2.2)(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.57.1)(typescript@5.8.2))
|
||||
'@astrojs/react':
|
||||
specifier: ^4.4.2
|
||||
version: 4.4.2(@types/node@25.4.0)(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(jiti@2.6.1)(lightningcss@1.30.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
|
||||
version: 4.4.2(@types/node@25.5.0)(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(jiti@2.6.1)(lightningcss@1.30.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
|
||||
'@astrojs/sitemap':
|
||||
specifier: ^3.7.0
|
||||
version: 3.7.0
|
||||
'@astrojs/vue':
|
||||
specifier: ^5.1.4
|
||||
version: 5.1.4(@types/node@25.4.0)(astro@5.16.15(@types/node@25.4.0)(idb-keyval@6.2.2)(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.57.1)(typescript@5.8.2))(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.57.1)(vue@3.5.27(typescript@5.8.2))
|
||||
version: 5.1.4(@types/node@25.5.0)(astro@5.16.15(@types/node@25.5.0)(idb-keyval@6.2.2)(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.57.1)(typescript@5.8.2))(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.57.1)(vue@3.5.27(typescript@5.8.2))
|
||||
'@kevisual/api':
|
||||
specifier: ^0.0.28
|
||||
version: 0.0.28
|
||||
@@ -282,7 +282,7 @@ importers:
|
||||
version: 1.2.4(@types/react@19.2.10)(react@19.2.4)
|
||||
'@tailwindcss/vite':
|
||||
specifier: ^4.1.18
|
||||
version: 4.1.18(vite@6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2))
|
||||
version: 4.1.18(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2))
|
||||
'@uiw/react-md-editor':
|
||||
specifier: ^4.0.11
|
||||
version: 4.0.11(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
|
||||
@@ -291,7 +291,7 @@ importers:
|
||||
version: 6.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
|
||||
astro:
|
||||
specifier: ^5.16.15
|
||||
version: 5.16.15(@types/node@25.4.0)(idb-keyval@6.2.2)(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.57.1)(typescript@5.8.2)
|
||||
version: 5.16.15(@types/node@25.5.0)(idb-keyval@6.2.2)(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.57.1)(typescript@5.8.2)
|
||||
class-variance-authority:
|
||||
specifier: ^0.7.1
|
||||
version: 0.7.1
|
||||
@@ -499,8 +499,8 @@ packages:
|
||||
'@aws-crypto/util@5.2.0':
|
||||
resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==}
|
||||
|
||||
'@aws-sdk/client-s3@3.1006.0':
|
||||
resolution: {integrity: sha512-tm8R/LgWDC3zWPMCdD990owvBrmuIM2A39+OWKW/HyAomWi6ancPz/H1K/hmxf0bqdXAaRUHBQMAmzwb1aR33Q==}
|
||||
'@aws-sdk/client-s3@3.1008.0':
|
||||
resolution: {integrity: sha512-w/SIRD25v2zVMbkn8CYIxUsac8yf5Jghkhw5j7EsNWdJhl56m/nWpUX7t1etFUW1cnzpFjZV0lXt0dNFSnbXwA==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/core@3.973.19':
|
||||
@@ -519,28 +519,28 @@ packages:
|
||||
resolution: {integrity: sha512-9EJROO8LXll5a7eUFqu48k6BChrtokbmgeMWmsH7lBb6lVbtjslUYz/ShLi+SHkYzTomiGBhmzTW7y+H4BxsnA==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-ini@3.972.18':
|
||||
resolution: {integrity: sha512-vthIAXJISZnj2576HeyLBj4WTeX+I7PwWeRkbOa0mVX39K13SCGxCgOFuKj2ytm9qTlLOmXe4cdEnroteFtJfw==}
|
||||
'@aws-sdk/credential-provider-ini@3.972.19':
|
||||
resolution: {integrity: sha512-pVJVjWqVrPqjpFq7o0mCmeZu1Y0c94OCHSYgivdCD2wfmYVtBbwQErakruhgOD8pcMcx9SCqRw1pzHKR7OGBcA==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-login@3.972.18':
|
||||
resolution: {integrity: sha512-kINzc5BBxdYBkPZ0/i1AMPMOk5b5QaFNbYMElVw5QTX13AKj6jcxnv/YNl9oW9mg+Y08ti19hh01HhyEAxsSJQ==}
|
||||
'@aws-sdk/credential-provider-login@3.972.19':
|
||||
resolution: {integrity: sha512-jOXdZ1o+CywQKr6gyxgxuUmnGwTTnY2Kxs1PM7fI6AYtDWDnmW/yKXayNqkF8KjP1unflqMWKVbVt5VgmE3L0g==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-node@3.972.19':
|
||||
resolution: {integrity: sha512-yDWQ9dFTr+IMxwanFe7+tbN5++q8psZBjlUwOiCXn1EzANoBgtqBwcpYcHaMGtn0Wlfj4NuXdf2JaEx1lz5RaQ==}
|
||||
'@aws-sdk/credential-provider-node@3.972.20':
|
||||
resolution: {integrity: sha512-0xHca2BnPY0kzjDYPH7vk8YbfdBPpWVS67rtqQMalYDQUCBYS37cZ55K6TuFxCoIyNZgSCFrVKr9PXC5BVvQQw==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-process@3.972.17':
|
||||
resolution: {integrity: sha512-c8G8wT1axpJDgaP3xzcy+q8Y1fTi9A2eIQJvyhQ9xuXrUZhlCfXbC0vM9bM1CUXiZppFQ1p7g0tuUMvil/gCPg==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-sso@3.972.18':
|
||||
resolution: {integrity: sha512-YHYEfj5S2aqInRt5ub8nDOX8vAxgMvd84wm2Y3WVNfFa/53vOv9T7WOAqXI25qjj3uEcV46xxfqdDQk04h5XQA==}
|
||||
'@aws-sdk/credential-provider-sso@3.972.19':
|
||||
resolution: {integrity: sha512-kVjQsEU3b///q7EZGrUzol9wzwJFKbEzqJKSq82A9ShrUTEO7FNylTtby3sPV19ndADZh1H3FB3+5ZrvKtEEeg==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-web-identity@3.972.18':
|
||||
resolution: {integrity: sha512-OqlEQpJ+J3T5B96qtC1zLLwkBloechP+fezKbCH0sbd2cCc0Ra55XpxWpk/hRj69xAOYtHvoC4orx6eTa4zU7g==}
|
||||
'@aws-sdk/credential-provider-web-identity@3.972.19':
|
||||
resolution: {integrity: sha512-BV1BlTFdG4w4tAihxN7iXDBoNcNewXD4q8uZlNQiUrnqxwGWUhKHODIQVSPlQGxXClEj+63m+cqZskw+ESmeZg==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/middleware-bucket-endpoint@3.972.7':
|
||||
@@ -583,8 +583,8 @@ packages:
|
||||
resolution: {integrity: sha512-3kNTLtpUdeahxtnJRnj/oIdLAUdzTfr9N40KtxNhtdrq+Q1RPMdCJINRXq37m4t5+r3H70wgC3opW46OzFcZYA==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/nested-clients@3.996.8':
|
||||
resolution: {integrity: sha512-6HlLm8ciMW8VzfB80kfIx16PBA9lOa9Dl+dmCBi78JDhvGlx3I7Rorwi5PpVRkL31RprXnYna3yBf6UKkD/PqA==}
|
||||
'@aws-sdk/nested-clients@3.996.9':
|
||||
resolution: {integrity: sha512-+RpVtpmQbbtzFOKhMlsRcXM/3f1Z49qTOHaA8gEpHOYruERmog6f2AUtf/oTRLCWjR9H2b3roqryV/hI7QMW8w==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/region-config-resolver@3.972.7':
|
||||
@@ -595,8 +595,8 @@ packages:
|
||||
resolution: {integrity: sha512-mYhh7FY+7OOqjkYkd6+6GgJOsXK1xBWmuR+c5mxJPj2kr5TBNeZq+nUvE9kANWAux5UxDVrNOSiEM/wlHzC3Lg==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/token-providers@3.1005.0':
|
||||
resolution: {integrity: sha512-vMxd+ivKqSxU9bHx5vmAlFKDAkjGotFU56IOkDa5DaTu1WWwbcse0yFHEm9I537oVvodaiwMl3VBwgHfzQ2rvw==}
|
||||
'@aws-sdk/token-providers@3.1008.0':
|
||||
resolution: {integrity: sha512-TulwlHQBWcJs668kNUDMZHN51DeLrDsYT59Ux4a/nbvr025gM6HjKJJ3LvnZccam7OS/ZKUVkWomCneRQKJbBg==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/types@3.973.5':
|
||||
@@ -618,8 +618,8 @@ packages:
|
||||
'@aws-sdk/util-user-agent-browser@3.972.7':
|
||||
resolution: {integrity: sha512-7SJVuvhKhMF/BkNS1n0QAJYgvEwYbK2QLKBrzDiwQGiTRU6Yf1f3nehTzm/l21xdAOtWSfp2uWSddPnP2ZtsVw==}
|
||||
|
||||
'@aws-sdk/util-user-agent-node@3.973.5':
|
||||
resolution: {integrity: sha512-Dyy38O4GeMk7UQ48RupfHif//gqnOPbq/zlvRssc11E2mClT+aUfc3VS2yD8oLtzqO3RsqQ9I3gOBB4/+HjPOw==}
|
||||
'@aws-sdk/util-user-agent-node@3.973.6':
|
||||
resolution: {integrity: sha512-iF7G0prk7AvmOK64FcLvc/fW+Ty1H+vttajL7PvJFReU8urMxfYmynTTuFKDTA76Wgpq3FzTPKwabMQIXQHiXQ==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
peerDependencies:
|
||||
aws-crt: '>=1.0.0'
|
||||
@@ -1316,14 +1316,14 @@ packages:
|
||||
'@kevisual/ai@0.0.19':
|
||||
resolution: {integrity: sha512-AFc8m6OcHZNxCb88bvzhvwWTZ4EVYyPupBzPUsLKLpdNBvsqm9TRboKCM2brJj2cqHnm+H+RbAk9AcGJkYhRCA==}
|
||||
|
||||
'@kevisual/ai@0.0.27':
|
||||
resolution: {integrity: sha512-1FlDg3Tj4171XY5NpTq+do69CyACgDE5oTA1RJYxQlGgaPeAjx2V2ahBgIDHRRhMSX/ztB1pBF1rx4zDoXq99A==}
|
||||
'@kevisual/ai@0.0.28':
|
||||
resolution: {integrity: sha512-GLwCNXfopDvOj+hEZwEIwOV2/3VGd+TCPgBClaYuAv30KzhgehlCW05HPjBducSg+uPcdKacEzZsecHjo5fMUQ==}
|
||||
|
||||
'@kevisual/api@0.0.28':
|
||||
resolution: {integrity: sha512-WQluRlu2qGM1qktIhPLODie8x382a6jEMfFOcay/rnkCgXK0BRpnqOKwlX7IMLdMqka7GY/BD69kSMnK1Exf5g==}
|
||||
|
||||
'@kevisual/api@0.0.62':
|
||||
resolution: {integrity: sha512-GB8Ho2absXoXoZP2GKyuoRqRqjdwtV0JR512DXBaKJR2sIPn1KvuglbBiX+zPjDBBskv/ApvZKOoSwj1OmkrKQ==}
|
||||
'@kevisual/api@0.0.64':
|
||||
resolution: {integrity: sha512-y7wP8ucvi/rflVGd6uJpvuEUTwI7wMef8+ITQzv4flg7a2pwWZYe/DT0TOyaqDAqKOTlXaVIdBeI15jXuUxIIg==}
|
||||
|
||||
'@kevisual/app@0.0.1':
|
||||
resolution: {integrity: sha512-PEx8P3l0iNSqrz9Ib9kVCYfqNMX6/LfNu+cEafmY6ECP1cV5Vmv+TH2fuasMosKjtbH2fAdDi97sbd29tdEK+g==}
|
||||
@@ -1334,8 +1334,8 @@ packages:
|
||||
'@kevisual/auth@2.0.3':
|
||||
resolution: {integrity: sha512-4xpijaIhlCTr/DlJaV/gmkCQeg45EO1yxWpRvUX+1jCdVbuxSR0wZrF0SD9oybnjmKWMKDNPLsXyduFjMGcItA==}
|
||||
|
||||
'@kevisual/cnb@0.0.42':
|
||||
resolution: {integrity: sha512-eVrTB2kFNaTYFkDx3U7TSdlFKitu+m8wCUCGZoDgH92q0diQI2Gy+Tcaw4NwMtxszPDvd0tzeRwxp+9wDcLdWQ==}
|
||||
'@kevisual/cnb@0.0.43':
|
||||
resolution: {integrity: sha512-KgqlxtKqJomnRSPg7n5mAOj/CP0pqbzam6vbUvzJzsMg9uWWKiyCqr202+QbVCBXmfDFBV/38kjgllUZJCRAyg==}
|
||||
hasBin: true
|
||||
|
||||
'@kevisual/context@0.0.4':
|
||||
@@ -1399,11 +1399,8 @@ packages:
|
||||
'@kevisual/router@0.0.51':
|
||||
resolution: {integrity: sha512-i9qYBeS/um78oC912oWJD3iElB+5NTKyTrz1Hzf4DckiUFnjLL81UPwjIh5I2l9+ul0IZ/Pxx+sFSF99fJkzKg==}
|
||||
|
||||
'@kevisual/router@0.0.90':
|
||||
resolution: {integrity: sha512-pFNfjsJkN9NqSVuyQB6QjvJnBeyrR/JQrM/KPa+PtvkByp0UA2FFFtSbB/OX7rduEKcXg5GImm4yucqFLdzewQ==}
|
||||
|
||||
'@kevisual/router@0.1.0':
|
||||
resolution: {integrity: sha512-7NHoKP36uWkTDp/hxeUBMtawma91BrOAwG/caOrVsO8tM3wjqhlmCt0sIvLBM+snVJkmylROQR0WGaygd3JqYw==}
|
||||
'@kevisual/router@0.1.1':
|
||||
resolution: {integrity: sha512-+uaJc+Bf/T1mfxyfy9PmwuxJGPOLhVqrmsli2xUPqkkFvizrFIGB1vBTITuo5XP/FnwGqxgbjsitG57AMubm3w==}
|
||||
|
||||
'@kevisual/types@0.0.12':
|
||||
resolution: {integrity: sha512-zJXH2dosir3jVrQ6QG4i0+iLQeT9gJ3H+cKXs8ReWboxBSYzUZO78XssVeVrFPsJ33iaAqo4q3DWbSS1dWGn7Q==}
|
||||
@@ -2553,8 +2550,8 @@ packages:
|
||||
'@types/node@17.0.45':
|
||||
resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
|
||||
|
||||
'@types/node@25.4.0':
|
||||
resolution: {integrity: sha512-9wLpoeWuBlcbBpOY3XmzSTG3oscB6xjBEEtn+pYXTfhyXhIxC5FsBer2KTopBlvKEiW9l13po9fq+SJY/5lkhw==}
|
||||
'@types/node@25.5.0':
|
||||
resolution: {integrity: sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==}
|
||||
|
||||
'@types/prismjs@1.26.5':
|
||||
resolution: {integrity: sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==}
|
||||
@@ -3072,6 +3069,9 @@ packages:
|
||||
dayjs@1.11.19:
|
||||
resolution: {integrity: sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==}
|
||||
|
||||
dayjs@1.11.20:
|
||||
resolution: {integrity: sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==}
|
||||
|
||||
dayjs@1.8.36:
|
||||
resolution: {integrity: sha512-3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw==}
|
||||
|
||||
@@ -5469,12 +5469,12 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@astrojs/mdx@4.3.13(astro@5.16.15(@types/node@25.4.0)(idb-keyval@6.2.2)(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.57.1)(typescript@5.8.2))':
|
||||
'@astrojs/mdx@4.3.13(astro@5.16.15(@types/node@25.5.0)(idb-keyval@6.2.2)(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.57.1)(typescript@5.8.2))':
|
||||
dependencies:
|
||||
'@astrojs/markdown-remark': 6.3.10
|
||||
'@mdx-js/mdx': 3.1.1
|
||||
acorn: 8.15.0
|
||||
astro: 5.16.15(@types/node@25.4.0)(idb-keyval@6.2.2)(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.57.1)(typescript@5.8.2)
|
||||
astro: 5.16.15(@types/node@25.5.0)(idb-keyval@6.2.2)(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.57.1)(typescript@5.8.2)
|
||||
es-module-lexer: 1.7.0
|
||||
estree-util-visit: 2.0.0
|
||||
hast-util-to-html: 9.0.5
|
||||
@@ -5492,15 +5492,15 @@ snapshots:
|
||||
dependencies:
|
||||
prismjs: 1.30.0
|
||||
|
||||
'@astrojs/react@4.4.2(@types/node@25.4.0)(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(jiti@2.6.1)(lightningcss@1.30.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
|
||||
'@astrojs/react@4.4.2(@types/node@25.5.0)(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(jiti@2.6.1)(lightningcss@1.30.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
|
||||
dependencies:
|
||||
'@types/react': 19.2.10
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.10)
|
||||
'@vitejs/plugin-react': 4.7.0(vite@6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2))
|
||||
'@vitejs/plugin-react': 4.7.0(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2))
|
||||
react: 19.2.4
|
||||
react-dom: 19.2.4(react@19.2.4)
|
||||
ultrahtml: 1.6.0
|
||||
vite: 6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||
vite: 6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
- jiti
|
||||
@@ -5533,14 +5533,14 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@astrojs/vue@5.1.4(@types/node@25.4.0)(astro@5.16.15(@types/node@25.4.0)(idb-keyval@6.2.2)(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.57.1)(typescript@5.8.2))(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.57.1)(vue@3.5.27(typescript@5.8.2))':
|
||||
'@astrojs/vue@5.1.4(@types/node@25.5.0)(astro@5.16.15(@types/node@25.5.0)(idb-keyval@6.2.2)(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.57.1)(typescript@5.8.2))(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.57.1)(vue@3.5.27(typescript@5.8.2))':
|
||||
dependencies:
|
||||
'@vitejs/plugin-vue': 5.2.4(vite@6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))
|
||||
'@vitejs/plugin-vue-jsx': 4.2.0(vite@6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))
|
||||
'@vitejs/plugin-vue': 5.2.4(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))
|
||||
'@vitejs/plugin-vue-jsx': 4.2.0(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))
|
||||
'@vue/compiler-sfc': 3.5.27
|
||||
astro: 5.16.15(@types/node@25.4.0)(idb-keyval@6.2.2)(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.57.1)(typescript@5.8.2)
|
||||
vite: 6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||
vite-plugin-vue-devtools: 7.7.9(rollup@4.57.1)(vite@6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))
|
||||
astro: 5.16.15(@types/node@25.5.0)(idb-keyval@6.2.2)(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.57.1)(typescript@5.8.2)
|
||||
vite: 6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||
vite-plugin-vue-devtools: 7.7.9(rollup@4.57.1)(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))
|
||||
vue: 3.5.27(typescript@5.8.2)
|
||||
transitivePeerDependencies:
|
||||
- '@nuxt/kit'
|
||||
@@ -5605,13 +5605,13 @@ snapshots:
|
||||
'@smithy/util-utf8': 2.3.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/client-s3@3.1006.0':
|
||||
'@aws-sdk/client-s3@3.1008.0':
|
||||
dependencies:
|
||||
'@aws-crypto/sha1-browser': 5.2.0
|
||||
'@aws-crypto/sha256-browser': 5.2.0
|
||||
'@aws-crypto/sha256-js': 5.2.0
|
||||
'@aws-sdk/core': 3.973.19
|
||||
'@aws-sdk/credential-provider-node': 3.972.19
|
||||
'@aws-sdk/credential-provider-node': 3.972.20
|
||||
'@aws-sdk/middleware-bucket-endpoint': 3.972.7
|
||||
'@aws-sdk/middleware-expect-continue': 3.972.7
|
||||
'@aws-sdk/middleware-flexible-checksums': 3.973.5
|
||||
@@ -5627,7 +5627,7 @@ snapshots:
|
||||
'@aws-sdk/types': 3.973.5
|
||||
'@aws-sdk/util-endpoints': 3.996.4
|
||||
'@aws-sdk/util-user-agent-browser': 3.972.7
|
||||
'@aws-sdk/util-user-agent-node': 3.973.5
|
||||
'@aws-sdk/util-user-agent-node': 3.973.6
|
||||
'@smithy/config-resolver': 4.4.10
|
||||
'@smithy/core': 3.23.9
|
||||
'@smithy/eventstream-serde-browser': 4.2.11
|
||||
@@ -5707,16 +5707,16 @@ snapshots:
|
||||
'@smithy/util-stream': 4.5.17
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/credential-provider-ini@3.972.18':
|
||||
'@aws-sdk/credential-provider-ini@3.972.19':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.973.19
|
||||
'@aws-sdk/credential-provider-env': 3.972.17
|
||||
'@aws-sdk/credential-provider-http': 3.972.19
|
||||
'@aws-sdk/credential-provider-login': 3.972.18
|
||||
'@aws-sdk/credential-provider-login': 3.972.19
|
||||
'@aws-sdk/credential-provider-process': 3.972.17
|
||||
'@aws-sdk/credential-provider-sso': 3.972.18
|
||||
'@aws-sdk/credential-provider-web-identity': 3.972.18
|
||||
'@aws-sdk/nested-clients': 3.996.8
|
||||
'@aws-sdk/credential-provider-sso': 3.972.19
|
||||
'@aws-sdk/credential-provider-web-identity': 3.972.19
|
||||
'@aws-sdk/nested-clients': 3.996.9
|
||||
'@aws-sdk/types': 3.973.5
|
||||
'@smithy/credential-provider-imds': 4.2.11
|
||||
'@smithy/property-provider': 4.2.11
|
||||
@@ -5726,10 +5726,10 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/credential-provider-login@3.972.18':
|
||||
'@aws-sdk/credential-provider-login@3.972.19':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.973.19
|
||||
'@aws-sdk/nested-clients': 3.996.8
|
||||
'@aws-sdk/nested-clients': 3.996.9
|
||||
'@aws-sdk/types': 3.973.5
|
||||
'@smithy/property-provider': 4.2.11
|
||||
'@smithy/protocol-http': 5.3.11
|
||||
@@ -5739,14 +5739,14 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/credential-provider-node@3.972.19':
|
||||
'@aws-sdk/credential-provider-node@3.972.20':
|
||||
dependencies:
|
||||
'@aws-sdk/credential-provider-env': 3.972.17
|
||||
'@aws-sdk/credential-provider-http': 3.972.19
|
||||
'@aws-sdk/credential-provider-ini': 3.972.18
|
||||
'@aws-sdk/credential-provider-ini': 3.972.19
|
||||
'@aws-sdk/credential-provider-process': 3.972.17
|
||||
'@aws-sdk/credential-provider-sso': 3.972.18
|
||||
'@aws-sdk/credential-provider-web-identity': 3.972.18
|
||||
'@aws-sdk/credential-provider-sso': 3.972.19
|
||||
'@aws-sdk/credential-provider-web-identity': 3.972.19
|
||||
'@aws-sdk/types': 3.973.5
|
||||
'@smithy/credential-provider-imds': 4.2.11
|
||||
'@smithy/property-provider': 4.2.11
|
||||
@@ -5765,11 +5765,11 @@ snapshots:
|
||||
'@smithy/types': 4.13.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/credential-provider-sso@3.972.18':
|
||||
'@aws-sdk/credential-provider-sso@3.972.19':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.973.19
|
||||
'@aws-sdk/nested-clients': 3.996.8
|
||||
'@aws-sdk/token-providers': 3.1005.0
|
||||
'@aws-sdk/nested-clients': 3.996.9
|
||||
'@aws-sdk/token-providers': 3.1008.0
|
||||
'@aws-sdk/types': 3.973.5
|
||||
'@smithy/property-provider': 4.2.11
|
||||
'@smithy/shared-ini-file-loader': 4.4.6
|
||||
@@ -5778,10 +5778,10 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/credential-provider-web-identity@3.972.18':
|
||||
'@aws-sdk/credential-provider-web-identity@3.972.19':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.973.19
|
||||
'@aws-sdk/nested-clients': 3.996.8
|
||||
'@aws-sdk/nested-clients': 3.996.9
|
||||
'@aws-sdk/types': 3.973.5
|
||||
'@smithy/property-provider': 4.2.11
|
||||
'@smithy/shared-ini-file-loader': 4.4.6
|
||||
@@ -5885,7 +5885,7 @@ snapshots:
|
||||
'@smithy/util-retry': 4.2.11
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/nested-clients@3.996.8':
|
||||
'@aws-sdk/nested-clients@3.996.9':
|
||||
dependencies:
|
||||
'@aws-crypto/sha256-browser': 5.2.0
|
||||
'@aws-crypto/sha256-js': 5.2.0
|
||||
@@ -5898,7 +5898,7 @@ snapshots:
|
||||
'@aws-sdk/types': 3.973.5
|
||||
'@aws-sdk/util-endpoints': 3.996.4
|
||||
'@aws-sdk/util-user-agent-browser': 3.972.7
|
||||
'@aws-sdk/util-user-agent-node': 3.973.5
|
||||
'@aws-sdk/util-user-agent-node': 3.973.6
|
||||
'@smithy/config-resolver': 4.4.10
|
||||
'@smithy/core': 3.23.9
|
||||
'@smithy/fetch-http-handler': 5.3.13
|
||||
@@ -5945,10 +5945,10 @@ snapshots:
|
||||
'@smithy/types': 4.13.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/token-providers@3.1005.0':
|
||||
'@aws-sdk/token-providers@3.1008.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.973.19
|
||||
'@aws-sdk/nested-clients': 3.996.8
|
||||
'@aws-sdk/nested-clients': 3.996.9
|
||||
'@aws-sdk/types': 3.973.5
|
||||
'@smithy/property-provider': 4.2.11
|
||||
'@smithy/shared-ini-file-loader': 4.4.6
|
||||
@@ -5985,12 +5985,13 @@ snapshots:
|
||||
bowser: 2.13.1
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/util-user-agent-node@3.973.5':
|
||||
'@aws-sdk/util-user-agent-node@3.973.6':
|
||||
dependencies:
|
||||
'@aws-sdk/middleware-user-agent': 3.972.20
|
||||
'@aws-sdk/types': 3.973.5
|
||||
'@smithy/node-config-provider': 4.3.11
|
||||
'@smithy/types': 4.13.0
|
||||
'@smithy/util-config-provider': 4.2.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/xml-builder@3.972.10':
|
||||
@@ -6491,122 +6492,122 @@ snapshots:
|
||||
|
||||
'@inquirer/ansi@2.0.3': {}
|
||||
|
||||
'@inquirer/checkbox@5.1.0(@types/node@25.4.0)':
|
||||
'@inquirer/checkbox@5.1.0(@types/node@25.5.0)':
|
||||
dependencies:
|
||||
'@inquirer/ansi': 2.0.3
|
||||
'@inquirer/core': 11.1.5(@types/node@25.4.0)
|
||||
'@inquirer/core': 11.1.5(@types/node@25.5.0)
|
||||
'@inquirer/figures': 2.0.3
|
||||
'@inquirer/type': 4.0.3(@types/node@25.4.0)
|
||||
'@inquirer/type': 4.0.3(@types/node@25.5.0)
|
||||
optionalDependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@inquirer/confirm@6.0.8(@types/node@25.4.0)':
|
||||
'@inquirer/confirm@6.0.8(@types/node@25.5.0)':
|
||||
dependencies:
|
||||
'@inquirer/core': 11.1.5(@types/node@25.4.0)
|
||||
'@inquirer/type': 4.0.3(@types/node@25.4.0)
|
||||
'@inquirer/core': 11.1.5(@types/node@25.5.0)
|
||||
'@inquirer/type': 4.0.3(@types/node@25.5.0)
|
||||
optionalDependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@inquirer/core@11.1.5(@types/node@25.4.0)':
|
||||
'@inquirer/core@11.1.5(@types/node@25.5.0)':
|
||||
dependencies:
|
||||
'@inquirer/ansi': 2.0.3
|
||||
'@inquirer/figures': 2.0.3
|
||||
'@inquirer/type': 4.0.3(@types/node@25.4.0)
|
||||
'@inquirer/type': 4.0.3(@types/node@25.5.0)
|
||||
cli-width: 4.1.0
|
||||
fast-wrap-ansi: 0.2.0
|
||||
mute-stream: 3.0.0
|
||||
signal-exit: 4.1.0
|
||||
optionalDependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@inquirer/editor@5.0.8(@types/node@25.4.0)':
|
||||
'@inquirer/editor@5.0.8(@types/node@25.5.0)':
|
||||
dependencies:
|
||||
'@inquirer/core': 11.1.5(@types/node@25.4.0)
|
||||
'@inquirer/external-editor': 2.0.3(@types/node@25.4.0)
|
||||
'@inquirer/type': 4.0.3(@types/node@25.4.0)
|
||||
'@inquirer/core': 11.1.5(@types/node@25.5.0)
|
||||
'@inquirer/external-editor': 2.0.3(@types/node@25.5.0)
|
||||
'@inquirer/type': 4.0.3(@types/node@25.5.0)
|
||||
optionalDependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@inquirer/expand@5.0.8(@types/node@25.4.0)':
|
||||
'@inquirer/expand@5.0.8(@types/node@25.5.0)':
|
||||
dependencies:
|
||||
'@inquirer/core': 11.1.5(@types/node@25.4.0)
|
||||
'@inquirer/type': 4.0.3(@types/node@25.4.0)
|
||||
'@inquirer/core': 11.1.5(@types/node@25.5.0)
|
||||
'@inquirer/type': 4.0.3(@types/node@25.5.0)
|
||||
optionalDependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@inquirer/external-editor@2.0.3(@types/node@25.4.0)':
|
||||
'@inquirer/external-editor@2.0.3(@types/node@25.5.0)':
|
||||
dependencies:
|
||||
chardet: 2.1.1
|
||||
iconv-lite: 0.7.2
|
||||
optionalDependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@inquirer/figures@2.0.3': {}
|
||||
|
||||
'@inquirer/input@5.0.8(@types/node@25.4.0)':
|
||||
'@inquirer/input@5.0.8(@types/node@25.5.0)':
|
||||
dependencies:
|
||||
'@inquirer/core': 11.1.5(@types/node@25.4.0)
|
||||
'@inquirer/type': 4.0.3(@types/node@25.4.0)
|
||||
'@inquirer/core': 11.1.5(@types/node@25.5.0)
|
||||
'@inquirer/type': 4.0.3(@types/node@25.5.0)
|
||||
optionalDependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@inquirer/number@4.0.8(@types/node@25.4.0)':
|
||||
'@inquirer/number@4.0.8(@types/node@25.5.0)':
|
||||
dependencies:
|
||||
'@inquirer/core': 11.1.5(@types/node@25.4.0)
|
||||
'@inquirer/type': 4.0.3(@types/node@25.4.0)
|
||||
'@inquirer/core': 11.1.5(@types/node@25.5.0)
|
||||
'@inquirer/type': 4.0.3(@types/node@25.5.0)
|
||||
optionalDependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@inquirer/password@5.0.8(@types/node@25.4.0)':
|
||||
'@inquirer/password@5.0.8(@types/node@25.5.0)':
|
||||
dependencies:
|
||||
'@inquirer/ansi': 2.0.3
|
||||
'@inquirer/core': 11.1.5(@types/node@25.4.0)
|
||||
'@inquirer/type': 4.0.3(@types/node@25.4.0)
|
||||
'@inquirer/core': 11.1.5(@types/node@25.5.0)
|
||||
'@inquirer/type': 4.0.3(@types/node@25.5.0)
|
||||
optionalDependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@inquirer/prompts@8.3.0(@types/node@25.4.0)':
|
||||
'@inquirer/prompts@8.3.0(@types/node@25.5.0)':
|
||||
dependencies:
|
||||
'@inquirer/checkbox': 5.1.0(@types/node@25.4.0)
|
||||
'@inquirer/confirm': 6.0.8(@types/node@25.4.0)
|
||||
'@inquirer/editor': 5.0.8(@types/node@25.4.0)
|
||||
'@inquirer/expand': 5.0.8(@types/node@25.4.0)
|
||||
'@inquirer/input': 5.0.8(@types/node@25.4.0)
|
||||
'@inquirer/number': 4.0.8(@types/node@25.4.0)
|
||||
'@inquirer/password': 5.0.8(@types/node@25.4.0)
|
||||
'@inquirer/rawlist': 5.2.4(@types/node@25.4.0)
|
||||
'@inquirer/search': 4.1.4(@types/node@25.4.0)
|
||||
'@inquirer/select': 5.1.0(@types/node@25.4.0)
|
||||
'@inquirer/checkbox': 5.1.0(@types/node@25.5.0)
|
||||
'@inquirer/confirm': 6.0.8(@types/node@25.5.0)
|
||||
'@inquirer/editor': 5.0.8(@types/node@25.5.0)
|
||||
'@inquirer/expand': 5.0.8(@types/node@25.5.0)
|
||||
'@inquirer/input': 5.0.8(@types/node@25.5.0)
|
||||
'@inquirer/number': 4.0.8(@types/node@25.5.0)
|
||||
'@inquirer/password': 5.0.8(@types/node@25.5.0)
|
||||
'@inquirer/rawlist': 5.2.4(@types/node@25.5.0)
|
||||
'@inquirer/search': 4.1.4(@types/node@25.5.0)
|
||||
'@inquirer/select': 5.1.0(@types/node@25.5.0)
|
||||
optionalDependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@inquirer/rawlist@5.2.4(@types/node@25.4.0)':
|
||||
'@inquirer/rawlist@5.2.4(@types/node@25.5.0)':
|
||||
dependencies:
|
||||
'@inquirer/core': 11.1.5(@types/node@25.4.0)
|
||||
'@inquirer/type': 4.0.3(@types/node@25.4.0)
|
||||
'@inquirer/core': 11.1.5(@types/node@25.5.0)
|
||||
'@inquirer/type': 4.0.3(@types/node@25.5.0)
|
||||
optionalDependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@inquirer/search@4.1.4(@types/node@25.4.0)':
|
||||
'@inquirer/search@4.1.4(@types/node@25.5.0)':
|
||||
dependencies:
|
||||
'@inquirer/core': 11.1.5(@types/node@25.4.0)
|
||||
'@inquirer/core': 11.1.5(@types/node@25.5.0)
|
||||
'@inquirer/figures': 2.0.3
|
||||
'@inquirer/type': 4.0.3(@types/node@25.4.0)
|
||||
'@inquirer/type': 4.0.3(@types/node@25.5.0)
|
||||
optionalDependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@inquirer/select@5.1.0(@types/node@25.4.0)':
|
||||
'@inquirer/select@5.1.0(@types/node@25.5.0)':
|
||||
dependencies:
|
||||
'@inquirer/ansi': 2.0.3
|
||||
'@inquirer/core': 11.1.5(@types/node@25.4.0)
|
||||
'@inquirer/core': 11.1.5(@types/node@25.5.0)
|
||||
'@inquirer/figures': 2.0.3
|
||||
'@inquirer/type': 4.0.3(@types/node@25.4.0)
|
||||
'@inquirer/type': 4.0.3(@types/node@25.5.0)
|
||||
optionalDependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@inquirer/type@4.0.3(@types/node@25.4.0)':
|
||||
'@inquirer/type@4.0.3(@types/node@25.5.0)':
|
||||
optionalDependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@ioredis/commands@1.5.0':
|
||||
optional: true
|
||||
@@ -6640,7 +6641,7 @@ snapshots:
|
||||
'@kevisual/permission': 0.0.3
|
||||
'@kevisual/query': 0.0.31
|
||||
|
||||
'@kevisual/ai@0.0.27':
|
||||
'@kevisual/ai@0.0.28':
|
||||
dependencies:
|
||||
'@ai-sdk/anthropic': 3.0.58(zod@4.3.6)
|
||||
'@ai-sdk/openai': 3.0.41(zod@4.3.6)
|
||||
@@ -6661,10 +6662,10 @@ snapshots:
|
||||
fuse.js: 7.1.0
|
||||
nanoid: 5.1.6
|
||||
|
||||
'@kevisual/api@0.0.62(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
|
||||
'@kevisual/api@0.0.64(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
|
||||
dependencies:
|
||||
'@kevisual/context': 0.0.8
|
||||
'@kevisual/js-filter': 0.0.5
|
||||
'@kevisual/js-filter': 0.0.6
|
||||
'@kevisual/load': 0.0.6
|
||||
'@paralleldrive/cuid2': 3.3.0
|
||||
es-toolkit: 1.45.1
|
||||
@@ -6709,11 +6710,12 @@ snapshots:
|
||||
|
||||
'@kevisual/auth@2.0.3': {}
|
||||
|
||||
'@kevisual/cnb@0.0.42(dotenv@17.3.1)(idb-keyval@6.2.2)(ioredis@5.9.3)':
|
||||
'@kevisual/cnb@0.0.43(dotenv@17.3.1)(idb-keyval@6.2.2)(ioredis@5.9.3)':
|
||||
dependencies:
|
||||
'@kevisual/query': 0.0.53
|
||||
'@kevisual/router': 0.0.90
|
||||
'@kevisual/router': 0.1.1
|
||||
'@kevisual/use-config': 1.0.30(dotenv@17.3.1)
|
||||
'@opencode-ai/sdk': 1.2.24
|
||||
es-toolkit: 1.45.1
|
||||
nanoid: 5.1.6
|
||||
unstorage: 1.17.4(idb-keyval@6.2.2)(ioredis@5.9.3(supports-color@10.2.2))
|
||||
@@ -6861,11 +6863,7 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@kevisual/router@0.0.90':
|
||||
dependencies:
|
||||
es-toolkit: 1.45.1
|
||||
|
||||
'@kevisual/router@0.1.0':
|
||||
'@kevisual/router@0.1.1':
|
||||
dependencies:
|
||||
es-toolkit: 1.45.1
|
||||
|
||||
@@ -6889,7 +6887,7 @@ snapshots:
|
||||
'@kevisual/use-config': 1.0.30(dotenv@17.3.1)
|
||||
'@kevisual/video': 0.0.2
|
||||
crypto-js: 4.2.0
|
||||
dayjs: 1.11.19
|
||||
dayjs: 1.11.20
|
||||
eventemitter3: 5.0.4
|
||||
nanoid: 5.1.6
|
||||
transitivePeerDependencies:
|
||||
@@ -8125,12 +8123,12 @@ snapshots:
|
||||
'@tailwindcss/oxide-win32-arm64-msvc': 4.1.18
|
||||
'@tailwindcss/oxide-win32-x64-msvc': 4.1.18
|
||||
|
||||
'@tailwindcss/vite@4.1.18(vite@6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2))':
|
||||
'@tailwindcss/vite@4.1.18(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2))':
|
||||
dependencies:
|
||||
'@tailwindcss/node': 4.1.18
|
||||
'@tailwindcss/oxide': 4.1.18
|
||||
tailwindcss: 4.1.18
|
||||
vite: 6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||
vite: 6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||
|
||||
'@tootallnate/quickjs-emscripten@0.23.0': {}
|
||||
|
||||
@@ -8163,7 +8161,7 @@ snapshots:
|
||||
|
||||
'@types/busboy@1.5.4':
|
||||
dependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@types/crypto-js@4.2.2': {}
|
||||
|
||||
@@ -8190,7 +8188,7 @@ snapshots:
|
||||
'@types/jsonwebtoken@9.0.10':
|
||||
dependencies:
|
||||
'@types/ms': 0.7.34
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@types/mdast@4.0.4':
|
||||
dependencies:
|
||||
@@ -8210,7 +8208,7 @@ snapshots:
|
||||
|
||||
'@types/node@17.0.45': {}
|
||||
|
||||
'@types/node@25.4.0':
|
||||
'@types/node@25.5.0':
|
||||
dependencies:
|
||||
undici-types: 7.18.2
|
||||
|
||||
@@ -8228,13 +8226,13 @@ snapshots:
|
||||
|
||||
'@types/sax@1.2.7':
|
||||
dependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@types/semver@7.7.1': {}
|
||||
|
||||
'@types/send@1.2.1':
|
||||
dependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@types/trusted-types@2.0.7': {}
|
||||
|
||||
@@ -8244,7 +8242,7 @@ snapshots:
|
||||
|
||||
'@types/ws@8.18.1':
|
||||
dependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
'@uiw/copy-to-clipboard@1.0.19': {}
|
||||
|
||||
@@ -8285,7 +8283,7 @@ snapshots:
|
||||
|
||||
'@vercel/oidc@3.1.0': {}
|
||||
|
||||
'@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2))':
|
||||
'@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2))':
|
||||
dependencies:
|
||||
'@babel/core': 7.28.5
|
||||
'@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5)
|
||||
@@ -8293,24 +8291,24 @@ snapshots:
|
||||
'@rolldown/pluginutils': 1.0.0-beta.27
|
||||
'@types/babel__core': 7.20.5
|
||||
react-refresh: 0.17.0
|
||||
vite: 6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||
vite: 6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@vitejs/plugin-vue-jsx@4.2.0(vite@6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))':
|
||||
'@vitejs/plugin-vue-jsx@4.2.0(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))':
|
||||
dependencies:
|
||||
'@babel/core': 7.28.5
|
||||
'@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5)
|
||||
'@rolldown/pluginutils': 1.0.0-beta.55
|
||||
'@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.5)
|
||||
vite: 6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||
vite: 6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||
vue: 3.5.27(typescript@5.8.2)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@vitejs/plugin-vue@5.2.4(vite@6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))':
|
||||
'@vitejs/plugin-vue@5.2.4(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))':
|
||||
dependencies:
|
||||
vite: 6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||
vite: 6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||
vue: 3.5.27(typescript@5.8.2)
|
||||
|
||||
'@vue/babel-helper-vue-transform-on@1.5.0': {}
|
||||
@@ -8372,14 +8370,14 @@ snapshots:
|
||||
'@vue/compiler-dom': 3.5.27
|
||||
'@vue/shared': 3.5.27
|
||||
|
||||
'@vue/devtools-core@7.7.9(vite@6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))':
|
||||
'@vue/devtools-core@7.7.9(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))':
|
||||
dependencies:
|
||||
'@vue/devtools-kit': 7.7.9
|
||||
'@vue/devtools-shared': 7.7.9
|
||||
mitt: 3.0.1
|
||||
nanoid: 5.1.6
|
||||
pathe: 2.0.3
|
||||
vite-hot-client: 2.1.0(vite@6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2))
|
||||
vite-hot-client: 2.1.0(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2))
|
||||
vue: 3.5.27(typescript@5.8.2)
|
||||
transitivePeerDependencies:
|
||||
- vite
|
||||
@@ -8553,7 +8551,7 @@ snapshots:
|
||||
|
||||
astring@1.9.0: {}
|
||||
|
||||
astro@5.16.15(@types/node@25.4.0)(idb-keyval@6.2.2)(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.57.1)(typescript@5.8.2):
|
||||
astro@5.16.15(@types/node@25.5.0)(idb-keyval@6.2.2)(ioredis@5.9.3)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.57.1)(typescript@5.8.2):
|
||||
dependencies:
|
||||
'@astrojs/compiler': 2.13.0
|
||||
'@astrojs/internal-helpers': 0.7.5
|
||||
@@ -8610,8 +8608,8 @@ snapshots:
|
||||
unist-util-visit: 5.0.0
|
||||
unstorage: 1.17.4(idb-keyval@6.2.2)(ioredis@5.9.3(supports-color@10.2.2))
|
||||
vfile: 6.0.3
|
||||
vite: 6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||
vitefu: 1.1.1(vite@6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2))
|
||||
vite: 6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||
vitefu: 1.1.1(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2))
|
||||
xxhash-wasm: 1.1.0
|
||||
yargs-parser: 21.1.1
|
||||
yocto-spinner: 0.2.3
|
||||
@@ -8716,7 +8714,7 @@ snapshots:
|
||||
|
||||
bun-types@1.3.10:
|
||||
dependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
|
||||
bundle-name@4.1.0:
|
||||
dependencies:
|
||||
@@ -8906,6 +8904,8 @@ snapshots:
|
||||
|
||||
dayjs@1.11.19: {}
|
||||
|
||||
dayjs@1.11.20: {}
|
||||
|
||||
dayjs@1.8.36: {}
|
||||
|
||||
debug@3.2.7(supports-color@10.2.2):
|
||||
@@ -11454,11 +11454,11 @@ snapshots:
|
||||
'@types/unist': 3.0.3
|
||||
vfile-message: 4.0.3
|
||||
|
||||
vite-hot-client@2.1.0(vite@6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2)):
|
||||
vite-hot-client@2.1.0(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2)):
|
||||
dependencies:
|
||||
vite: 6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||
vite: 6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||
|
||||
vite-plugin-inspect@0.8.9(rollup@4.57.1)(vite@6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2)):
|
||||
vite-plugin-inspect@0.8.9(rollup@4.57.1)(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2)):
|
||||
dependencies:
|
||||
'@antfu/utils': 0.7.10
|
||||
'@rollup/pluginutils': 5.3.0(rollup@4.57.1)
|
||||
@@ -11469,28 +11469,28 @@ snapshots:
|
||||
perfect-debounce: 1.0.0
|
||||
picocolors: 1.1.1
|
||||
sirv: 3.0.2
|
||||
vite: 6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||
vite: 6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
- supports-color
|
||||
|
||||
vite-plugin-vue-devtools@7.7.9(rollup@4.57.1)(vite@6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2)):
|
||||
vite-plugin-vue-devtools@7.7.9(rollup@4.57.1)(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2)):
|
||||
dependencies:
|
||||
'@vue/devtools-core': 7.7.9(vite@6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))
|
||||
'@vue/devtools-core': 7.7.9(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))
|
||||
'@vue/devtools-kit': 7.7.9
|
||||
'@vue/devtools-shared': 7.7.9
|
||||
execa: 9.6.1
|
||||
sirv: 3.0.2
|
||||
vite: 6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||
vite-plugin-inspect: 0.8.9(rollup@4.57.1)(vite@6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2))
|
||||
vite-plugin-vue-inspector: 5.3.2(vite@6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2))
|
||||
vite: 6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||
vite-plugin-inspect: 0.8.9(rollup@4.57.1)(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2))
|
||||
vite-plugin-vue-inspector: 5.3.2(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2))
|
||||
transitivePeerDependencies:
|
||||
- '@nuxt/kit'
|
||||
- rollup
|
||||
- supports-color
|
||||
- vue
|
||||
|
||||
vite-plugin-vue-inspector@5.3.2(vite@6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2)):
|
||||
vite-plugin-vue-inspector@5.3.2(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2)):
|
||||
dependencies:
|
||||
'@babel/core': 7.28.5
|
||||
'@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.5)
|
||||
@@ -11501,11 +11501,11 @@ snapshots:
|
||||
'@vue/compiler-dom': 3.5.27
|
||||
kolorist: 1.8.0
|
||||
magic-string: 0.30.21
|
||||
vite: 6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||
vite: 6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
vite@6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2):
|
||||
vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2):
|
||||
dependencies:
|
||||
esbuild: 0.25.12
|
||||
fdir: 6.5.0(picomatch@4.0.3)
|
||||
@@ -11514,14 +11514,14 @@ snapshots:
|
||||
rollup: 4.43.0
|
||||
tinyglobby: 0.2.15
|
||||
optionalDependencies:
|
||||
'@types/node': 25.4.0
|
||||
'@types/node': 25.5.0
|
||||
fsevents: 2.3.3
|
||||
jiti: 2.6.1
|
||||
lightningcss: 1.30.2
|
||||
|
||||
vitefu@1.1.1(vite@6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2)):
|
||||
vitefu@1.1.1(vite@6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2)):
|
||||
optionalDependencies:
|
||||
vite: 6.4.1(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||
vite: 6.4.1(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||
|
||||
vizion@2.2.1:
|
||||
dependencies:
|
||||
|
||||
Reference in New Issue
Block a user