diff --git a/assistant/package.json b/assistant/package.json index 79b47ef..2e37365 100644 --- a/assistant/package.json +++ b/assistant/package.json @@ -10,7 +10,7 @@ ], "author": "abearxiong (https://www.xiongxiao.me)", "license": "MIT", - "packageManager": "pnpm@10.11.0", + "packageManager": "pnpm@10.21.0", "type": "module", "files": [ "dist", @@ -41,32 +41,32 @@ } }, "devDependencies": { - "@kevisual/ai": "^0.0.5", + "@kevisual/ai": "^0.0.11", "@kevisual/load": "^0.0.6", - "@kevisual/local-app-manager": "^0.1.21", + "@kevisual/local-app-manager": "^0.1.23", "@kevisual/logger": "^0.0.4", - "@kevisual/query": "0.0.20", + "@kevisual/query": "0.0.29", "@kevisual/query-login": "0.0.6", - "@kevisual/router": "^0.0.21", + "@kevisual/router": "^0.0.30", "@kevisual/task-command": "^0.0.7", "@kevisual/types": "^0.0.10", - "@kevisual/use-config": "^1.0.17", - "@types/bun": "^1.2.15", + "@kevisual/use-config": "^1.0.19", + "@types/bun": "^1.3.2", "@types/lodash-es": "^4.17.12", - "@types/node": "^22.15.29", - "@types/send": "^0.17.4", + "@types/node": "^24.10.0", + "@types/send": "^1.2.1", "@types/ws": "^8.18.1", - "chalk": "^5.4.1", - "commander": "^14.0.0", - "cross-env": "^7.0.3", - "dayjs": "^1.11.13", - "dotenv": "^16.5.0", + "chalk": "^5.6.2", + "commander": "^14.0.2", + "cross-env": "^10.1.0", + "dayjs": "^1.11.19", + "dotenv": "^17.2.3", "get-port": "^7.1.0", - "inquirer": "^12.6.3", + "inquirer": "^12.11.0", "lodash-es": "^4.17.21", - "nanoid": "^5.1.5", + "nanoid": "^5.1.6", "send": "^1.2.0", - "supports-color": "^10.0.0", + "supports-color": "^10.2.2", "ws": "npm:@kevisual/ws" }, "engines": { @@ -78,6 +78,8 @@ "dependencies": { "eventemitter3": "^5.0.1", "lowdb": "^7.0.1", - "pm2": "^6.0.6" + "lru-cache": "^11.2.2", + "pm2": "^6.0.13", + "unstorage": "^1.17.2" } } \ No newline at end of file diff --git a/assistant/pnpm-lock.yaml b/assistant/pnpm-lock.yaml index 4198c37..5b61b89 100644 --- a/assistant/pnpm-lock.yaml +++ b/assistant/pnpm-lock.yaml @@ -14,6 +14,9 @@ importers: lowdb: specifier: ^7.0.1 version: 7.0.1 + lru-cache: + specifier: ^11.2.2 + version: 11.2.2 pm2: specifier: ^6.0.6 version: 6.0.6(supports-color@10.0.0) @@ -100,43 +103,6 @@ importers: specifier: npm:@kevisual/ws version: '@kevisual/ws@8.0.0' - tasks/silkyai-cli: - dependencies: - pm2: - specifier: ^6.0.5 - version: 6.0.6(supports-color@10.0.0) - devDependencies: - '@kevisual/assistant-cli': - specifier: workspace:* - version: link:../.. - '@kevisual/task-command': - specifier: ^0.0.7 - version: 0.0.7 - chalk: - specifier: ^5.4.1 - version: 5.4.1 - commander: - specifier: ^13.1.0 - version: 13.1.0 - cross-env: - specifier: ^7.0.3 - version: 7.0.3 - dayjs: - specifier: ^1.11.13 - version: 1.11.13 - dotenv: - specifier: ^16.5.0 - version: 16.5.0 - inquirer: - specifier: ^12.6.0 - version: 12.6.3(@types/node@22.15.29) - lodash-es: - specifier: ^4.17.21 - version: 4.17.21 - nanoid: - specifier: ^5.1.5 - version: 5.1.5 - packages: '@babel/code-frame@7.26.2': @@ -630,10 +596,6 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} - commander@13.1.0: - resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} - engines: {node: '>=18'} - commander@14.0.0: resolution: {integrity: sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==} engines: {node: '>=20'} @@ -1002,6 +964,10 @@ packages: resolution: {integrity: sha512-neJAj8GwF0e8EpycYIDFqEPcx9Qz4GUho20jWFR7YiFeXzF1YMLdxB36PypcTSPMA+4+LvgyMacYhlr18Zlymw==} engines: {node: '>=18'} + lru-cache@11.2.2: + resolution: {integrity: sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==} + engines: {node: 20 || >=22} + lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} @@ -1914,8 +1880,6 @@ snapshots: dependencies: delayed-stream: 1.0.0 - commander@13.1.0: {} - commander@14.0.0: {} commander@2.15.1: {} @@ -2242,6 +2206,8 @@ snapshots: dependencies: steno: 4.0.2 + lru-cache@11.2.2: {} + lru-cache@6.0.0: dependencies: yallist: 4.0.0 diff --git a/assistant/pnpm-workspace.yaml b/assistant/pnpm-workspace.yaml deleted file mode 100644 index 225135a..0000000 --- a/assistant/pnpm-workspace.yaml +++ /dev/null @@ -1,3 +0,0 @@ -packages: - - 'tasks/**' - - '!assistant-app/**' \ No newline at end of file diff --git a/assistant/src/command/app-manager/index.ts b/assistant/src/command/app-manager/index.ts index 2045d1c..0190b2a 100644 --- a/assistant/src/command/app-manager/index.ts +++ b/assistant/src/command/app-manager/index.ts @@ -70,6 +70,20 @@ appManagerCommand console.log('Restart App:', appKey); }); +appManagerCommand + .command('reload') + .description('重载配置项,对路径的app的内容变更有效') + .argument('', '应用的 key 名称') + .action(async (appKey: string) => { + const manager = new AssistantApp(assistantConfig); + try { + await manager.loadConfig(); + await manager.reload(appKey); + } catch (error) { + console.error(error); + } + console.log('Reload App:', appKey); + }); appManagerCommand .command('delete') .alias('del') diff --git a/assistant/src/module/assistant/https/sign.ts b/assistant/src/module/assistant/https/sign.ts index 0cf3670..b2e2dea 100644 --- a/assistant/src/module/assistant/https/sign.ts +++ b/assistant/src/module/assistant/https/sign.ts @@ -19,6 +19,7 @@ export class HttpsPem { assistantConfig: AssistantConfig; key: string; cert: string; + isHttps = false; constructor(assistantConfig: AssistantConfig) { this.assistantConfig = assistantConfig; this.#initKeyCert(); @@ -32,6 +33,7 @@ export class HttpsPem { console.log(chalk.yellow('当前配置文件 https.type 不是 https, 不使用证书')); return; } + this.isHttps = true; if (config.https.keyPath) { const keyPath = config.https.keyPath; const certPath = config.https.certPath; @@ -45,6 +47,7 @@ export class HttpsPem { } } } + if(!this.isHttps) return; const { key, cert } = this.getCert(); this.key = key; this.cert = cert; diff --git a/assistant/src/module/cache/auth.ts b/assistant/src/module/cache/auth.ts new file mode 100644 index 0000000..41ec63e --- /dev/null +++ b/assistant/src/module/cache/auth.ts @@ -0,0 +1,6 @@ +import { LRUCache } from 'lru-cache' + +export const authCache = new LRUCache({ + max: 10000, // 最大缓存数量 + ttl: 1000 * 60 * 60 * 24 * 7, // 缓存过期时间,单位为毫秒,这里设置为7天 +}); diff --git a/assistant/src/module/light-code/run.ts b/assistant/src/module/light-code/run.ts new file mode 100644 index 0000000..88f098c --- /dev/null +++ b/assistant/src/module/light-code/run.ts @@ -0,0 +1,149 @@ +import { fork } from 'child_process' +import fs from 'fs'; + +export const fileExists = (path: string): boolean => { + try { + fs.accessSync(path, fs.constants.F_OK); + return true; + } catch (e) { + return false; + } +} + +export type RunCodeParams = { + path?: string; + key?: string; + payload?: string; + [key: string]: any +} +type RunCodeOptions = { + timeout?: number; // 超时时间,单位毫秒 + [key: string]: any +} +type RunCode = { + // 调用进程的功能 + success?: boolean + data?: { + // 调用router的结果 + code?: number + data?: any + message?: string + [key: string]: any + }; + error?: any + timestamp?: string + [key: string]: any +} +export const runCode = async (tsPath: string, params: RunCodeParams = {}, opts?: RunCodeOptions): Promise => { + return new Promise((resolve, reject) => { + if (fileExists(tsPath) === false) { + resolve({ + success: false, + error: `文件不存在: ${tsPath}` + }) + return + } + + const timeoutMs = opts?.timeout || 30000; // 默认30秒超时 + + let child + let resolved = false // 防止多次 resolve + let isSendParam = false; + let timeout: NodeJS.Timeout + + const cleanup = () => { + if (timeout) { + clearTimeout(timeout) + } + if (child && !child.killed) { + child.kill() + } + } + const sendParam = () => { + if (!resolved && child && !isSendParam) { + isSendParam = true + child.send(params) + } + } + + const resolveOnce = (result: RunCode) => { + if (!resolved) { + resolved = true + cleanup() + resolve(result) + } + } + + try { + // 使用 Bun 的 fork 模式启动子进程 + child = fork(tsPath, [], { + silent: true // 启用 stdio 重定向 + }) + // 监听来自子进程的消息 + child.on('message', (msg: RunCode) => { + resolveOnce(msg) + }) + + // 捕获 stderr 输出(语法错误等) + if (child.stderr) { + child.stderr.on('data', (data) => { + console.log('子进程错误输出:', data.toString()) + resolveOnce({ + success: false, + error: `子进程错误输出: ${data.toString()}` + }) + }) + } + + // 监听子进程退出事件 + child.on('exit', (code, signal) => { + if (code !== 0) { + resolveOnce({ + success: false, + error: `子进程异常退出,退出码: ${code},信号: ${signal}` + }) + } else { + resolveOnce({ + success: false, + error: '子进程正常退出但未返回消息' + }) + } + }) + + // 监听子进程关闭事件 + child.on('close', (code, signal) => { + resolveOnce({ + success: false, + error: `子进程已关闭,退出码: ${code},信号: ${signal}` + }) + }) + + // 监听子进程错误事件 + child.on('error', (error) => { + resolveOnce({ + success: false, + error: `子进程错误: ${error?.message}` + }) + }) + + // 添加超时处理 + timeout = setTimeout(() => { + resolveOnce({ + success: false, + error: '子进程执行超时' + }) + }, timeoutMs) + + setTimeout(() => { + sendParam() + }, 10); // 35秒响应超时 + // 向子进程发送消息 + + } catch (error) { + resolveOnce({ + success: false, + error: `启动子进程失败: ${error instanceof Error ? error.message : '未知错误'}` + }) + } + }); +} \ No newline at end of file diff --git a/assistant/src/routes/index.ts b/assistant/src/routes/index.ts index 9dff62c..20e583c 100644 --- a/assistant/src/routes/index.ts +++ b/assistant/src/routes/index.ts @@ -3,6 +3,7 @@ import { app, assistantConfig } from '../app.ts'; import './config/index.ts'; import './shop-install/index.ts'; import './ai/index.ts'; +import './light-code/index.ts'; import os from 'node:os'; diff --git a/assistant/src/routes/light-code/call.ts b/assistant/src/routes/light-code/call.ts new file mode 100644 index 0000000..b6263ce --- /dev/null +++ b/assistant/src/routes/light-code/call.ts @@ -0,0 +1,30 @@ +import { app, assistantConfig } from '../../app.ts' +import path from 'path' +import { runCode } from '../../module/light-code/run.ts' + +// http://localhost:4005/api/router?path=call +app.route({ + path: 'call', + // middleware: ['auth'] +}).define(async (ctx) => { + const filename = ctx.query?.filename || 'root/light-code-demo/demo-router.ts' + const data = ctx.query?.data || {} + const appsConfigPath = assistantConfig.configPath?.appsDir || ''; + const testA = path.join(appsConfigPath, filename) + try { + const resulst = await runCode(testA, data); + if (resulst.success) { + const callResult = resulst.data; + if (callResult.code === 200) ctx.body = callResult.data + else { + const callError = `调用程序错误: ${callResult.message}` + ctx.throw(callResult.code, callError) + } + } else { + ctx.body = `执行脚本错误: ${resulst.error}` + } + } catch (error) { + ctx.body = `执行脚本异常: ${error?.message || error}` + } + +}).addTo(app) \ No newline at end of file diff --git a/assistant/src/routes/light-code/index.ts b/assistant/src/routes/light-code/index.ts new file mode 100644 index 0000000..689e4a1 --- /dev/null +++ b/assistant/src/routes/light-code/index.ts @@ -0,0 +1 @@ +import './call.ts' \ No newline at end of file diff --git a/assistant/src/services/app/index.ts b/assistant/src/services/app/index.ts index 6955b62..bce2a66 100644 --- a/assistant/src/services/app/index.ts +++ b/assistant/src/services/app/index.ts @@ -71,14 +71,11 @@ export class AppDownload { const command = 'ev'; const args = ['app', 'download']; args.push('-i', id); - if (type) { - args.push('-t', type); - } - const appName = opts?.appName || id.split('/').pop(); + if (type === 'web') { args.push('-o', pagesDir); } else if (type === 'app') { - args.push('-o', path.join(appsDir, appName)); + args.push('-o', path.join(appsDir)); } else { throw new Error('应用类型错误,只能是 web 或 app'); } @@ -120,7 +117,7 @@ export class AppDownload { const pagePath = path.join(pagesDir, id); deletePath = pagePath; } else if (type === 'app') { - const appPath = path.join(appsDir, appName); + const appPath = path.join(appsDir, id); deletePath = appPath; } if (deletePath && checkFileExists(deletePath)) { diff --git a/assistant/src/services/init/index.ts b/assistant/src/services/init/index.ts index 9543ca1..8cbeda2 100644 --- a/assistant/src/services/init/index.ts +++ b/assistant/src/services/init/index.ts @@ -59,9 +59,11 @@ export class AssistantInit extends AssistantConfig { } // create pem dir // const pemDir = path.join(this.configPath?.configDir, 'pem'); - if (!checkFileExists(pemDir)) { - new HttpsPem(this); - console.log(chalk.green('助手证书目录创建成功')); + const httpsPem = new HttpsPem(this); + if (httpsPem.isHttps) { + if (!checkFileExists(pemDir)) { + console.log(chalk.green('助手证书目录创建成功')); + } } } createAssistantConfig() { diff --git a/package.json b/package.json index d34c615..384b5b7 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,13 @@ { "name": "@kevisual/cli", - "version": "0.0.60", + "version": "0.0.61", "description": "envision command tools", "main": "dist/app.mjs", "type": "module", "private": false, - "basename": "/root/backend-envision-cli", + "basename": "/root/cli", "app": { - "key": "envision-cli", + "key": "cli", "entry": "dist/app.mjs", "type": "pm2-system-app", "runtime": [ @@ -51,22 +51,22 @@ "@kevisual/logger": "^0.0.4", "@kevisual/query": "0.0.29", "@kevisual/query-login": "0.0.6", - "@types/bun": "^1.3.0", + "@types/bun": "^1.3.2", "@types/crypto-js": "^4.2.2", "@types/jsonwebtoken": "^9.0.10", - "@types/micromatch": "^4.0.9", - "@types/node": "^24.7.2", + "@types/micromatch": "^4.0.10", + "@types/node": "^24.10.0", "chalk": "^5.6.2", - "commander": "^14.0.1", + "commander": "^14.0.2", "cross-env": "^10.1.0", "crypto-js": "^4.2.0", "fast-glob": "^3.3.3", "filesize": "^11.0.13", "form-data": "^4.0.4", "ignore": "^7.0.5", - "inquirer": "^12.9.6", + "inquirer": "^12.11.0", "jsonwebtoken": "^9.0.2", - "tar": "^7.5.1", + "tar": "^7.5.2", "zustand": "^5.0.8" }, "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 13355bf..ffa267a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,7 +13,7 @@ importers: version: 4.0.8 pm2: specifier: ^6.0.13 - version: 6.0.13(supports-color@10.0.0) + version: 6.0.13(supports-color@10.2.2) devDependencies: '@kevisual/dts': specifier: ^0.0.3 @@ -31,8 +31,8 @@ importers: specifier: 0.0.6 version: 0.0.6(@kevisual/query@0.0.29(ws@8.18.0))(rollup@4.43.0)(tslib@2.8.1)(typescript@5.8.2) '@types/bun': - specifier: ^1.3.0 - version: 1.3.0(@types/react@19.1.9) + specifier: ^1.3.2 + version: 1.3.2(@types/react@19.1.9) '@types/crypto-js': specifier: ^4.2.2 version: 4.2.2 @@ -40,17 +40,17 @@ importers: specifier: ^9.0.10 version: 9.0.10 '@types/micromatch': - specifier: ^4.0.9 - version: 4.0.9 + specifier: ^4.0.10 + version: 4.0.10 '@types/node': - specifier: ^24.7.2 - version: 24.7.2 + specifier: ^24.10.0 + version: 24.10.0 chalk: specifier: ^5.6.2 version: 5.6.2 commander: - specifier: ^14.0.1 - version: 14.0.1 + specifier: ^14.0.2 + version: 14.0.2 cross-env: specifier: ^10.1.0 version: 10.1.0 @@ -70,14 +70,14 @@ importers: specifier: ^7.0.5 version: 7.0.5 inquirer: - specifier: ^12.9.6 - version: 12.9.6(@types/node@24.7.2) + specifier: ^12.11.0 + version: 12.11.0(@types/node@24.10.0) jsonwebtoken: specifier: ^9.0.2 version: 9.0.2 tar: - specifier: ^7.5.1 - version: 7.5.1 + specifier: ^7.5.2 + version: 7.5.2 zustand: specifier: ^5.0.8 version: 5.0.8(@types/react@19.1.9) @@ -90,31 +90,37 @@ importers: lowdb: specifier: ^7.0.1 version: 7.0.1 + lru-cache: + specifier: ^11.2.2 + version: 11.2.2 pm2: - specifier: ^6.0.6 - version: 6.0.6(supports-color@10.0.0) + specifier: ^6.0.13 + version: 6.0.13(supports-color@10.2.2) + unstorage: + specifier: ^1.17.2 + version: 1.17.2(idb-keyval@6.2.1) devDependencies: '@kevisual/ai': - specifier: ^0.0.5 - version: 0.0.5 + specifier: ^0.0.11 + version: 0.0.11 '@kevisual/load': specifier: ^0.0.6 version: 0.0.6 '@kevisual/local-app-manager': - specifier: ^0.1.21 - version: 0.1.21(supports-color@10.0.0) + specifier: ^0.1.23 + version: 0.1.24(supports-color@10.2.2) '@kevisual/logger': specifier: ^0.0.4 version: 0.0.4 '@kevisual/query': - specifier: 0.0.20 - version: 0.0.20(@kevisual/ws@8.0.0)(encoding@0.1.13) + specifier: 0.0.29 + version: 0.0.29(@kevisual/ws@8.0.0) '@kevisual/query-login': specifier: 0.0.6 - version: 0.0.6(@kevisual/query@0.0.20(@kevisual/ws@8.0.0)(encoding@0.1.13))(rollup@4.43.0)(tslib@2.8.1)(typescript@5.8.2) + version: 0.0.6(@kevisual/query@0.0.29(@kevisual/ws@8.0.0))(rollup@4.43.0)(tslib@2.8.1)(typescript@5.8.2) '@kevisual/router': - specifier: ^0.0.21 - version: 0.0.21 + specifier: ^0.0.30 + version: 0.0.30(supports-color@10.2.2) '@kevisual/task-command': specifier: ^0.0.7 version: 0.0.7 @@ -122,56 +128,56 @@ importers: specifier: ^0.0.10 version: 0.0.10 '@kevisual/use-config': - specifier: ^1.0.17 - version: 1.0.17(dotenv@16.5.0) + specifier: ^1.0.19 + version: 1.0.19(dotenv@17.2.3) '@types/bun': - specifier: ^1.2.15 - version: 1.2.15 + specifier: ^1.3.2 + version: 1.3.2(@types/react@19.1.9) '@types/lodash-es': specifier: ^4.17.12 version: 4.17.12 '@types/node': - specifier: ^22.15.29 - version: 22.15.29 + specifier: ^24.10.0 + version: 24.10.0 '@types/send': - specifier: ^0.17.4 - version: 0.17.4 + specifier: ^1.2.1 + version: 1.2.1 '@types/ws': specifier: ^8.18.1 version: 8.18.1 chalk: - specifier: ^5.4.1 - version: 5.4.1 + specifier: ^5.6.2 + version: 5.6.2 commander: - specifier: ^14.0.0 - version: 14.0.0 + specifier: ^14.0.2 + version: 14.0.2 cross-env: - specifier: ^7.0.3 - version: 7.0.3 + specifier: ^10.1.0 + version: 10.1.0 dayjs: - specifier: ^1.11.13 - version: 1.11.13 + specifier: ^1.11.19 + version: 1.11.19 dotenv: - specifier: ^16.5.0 - version: 16.5.0 + specifier: ^17.2.3 + version: 17.2.3 get-port: specifier: ^7.1.0 version: 7.1.0 inquirer: - specifier: ^12.6.3 - version: 12.6.3(@types/node@22.15.29) + specifier: ^12.11.0 + version: 12.11.0(@types/node@24.10.0) lodash-es: specifier: ^4.17.21 version: 4.17.21 nanoid: - specifier: ^5.1.5 - version: 5.1.5 + specifier: ^5.1.6 + version: 5.1.6 send: specifier: ^1.2.0 - version: 1.2.0(supports-color@10.0.0) + version: 1.2.0(supports-color@10.2.2) supports-color: - specifier: ^10.0.0 - version: 10.0.0 + specifier: ^10.2.2 + version: 10.2.2 ws: specifier: npm:@kevisual/ws version: '@kevisual/ws@8.0.0' @@ -189,12 +195,12 @@ packages: '@epic-web/invariant@1.0.0': resolution: {integrity: sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==} - '@inquirer/ansi@1.0.0': - resolution: {integrity: sha512-JWaTfCxI1eTmJ1BIv86vUfjVatOdxwD0DAVKYevY8SazeUUZtW+tNbsdejVO1GYE0GXJW1N1ahmiC3TFd+7wZA==} + '@inquirer/ansi@1.0.2': + resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} engines: {node: '>=18'} - '@inquirer/checkbox@4.1.8': - resolution: {integrity: sha512-d/QAsnwuHX2OPolxvYcgSj7A9DO9H6gVOy2DvBTx+P2LH2iRTo/RSGV3iwCzW024nP9hw98KIuDmdyhZQj1UQg==} + '@inquirer/checkbox@4.3.1': + resolution: {integrity: sha512-rOcLotrptYIy59SGQhKlU0xBg1vvcVl2FdPIEclUvKHh0wo12OfGkId/01PIMJ/V+EimJ77t085YabgnQHBa5A==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -202,8 +208,8 @@ packages: '@types/node': optional: true - '@inquirer/checkbox@4.2.4': - resolution: {integrity: sha512-2n9Vgf4HSciFq8ttKXk+qy+GsyTXPV1An6QAwe/8bkbbqvG4VW1I/ZY1pNu2rf+h9bdzMLPbRSfcNxkHBy/Ydw==} + '@inquirer/confirm@5.1.20': + resolution: {integrity: sha512-HDGiWh2tyRZa0M1ZnEIUCQro25gW/mN8ODByicQrbR1yHx4hT+IOpozCMi5TgBtUdklLwRI2mv14eNpftDluEw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -211,8 +217,8 @@ packages: '@types/node': optional: true - '@inquirer/confirm@5.1.12': - resolution: {integrity: sha512-dpq+ielV9/bqgXRUbNH//KsY6WEw9DrGPmipkpmgC1Y46cwuBTNx7PXFWTjc3MQ+urcc0QxoVHcMI0FW4Ok0hg==} + '@inquirer/core@10.3.1': + resolution: {integrity: sha512-hzGKIkfomGFPgxKmnKEKeA+uCYBqC+TKtRx5LgyHRCrF6S2MliwRIjp3sUaWwVzMp7ZXVs8elB0Tfe682Rpg4w==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -220,8 +226,8 @@ packages: '@types/node': optional: true - '@inquirer/confirm@5.1.18': - resolution: {integrity: sha512-MilmWOzHa3Ks11tzvuAmFoAd/wRuaP3SwlT1IZhyMke31FKLxPiuDWcGXhU+PKveNOpAc4axzAgrgxuIJJRmLw==} + '@inquirer/editor@4.2.22': + resolution: {integrity: sha512-8yYZ9TCbBKoBkzHtVNMF6PV1RJEUvMlhvmS3GxH4UvXMEHlS45jFyqFy0DU+K42jBs5slOaA78xGqqqWAx3u6A==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -229,8 +235,8 @@ packages: '@types/node': optional: true - '@inquirer/core@10.1.13': - resolution: {integrity: sha512-1viSxebkYN2nJULlzCxES6G9/stgHSepZ9LqqfdIGPHj5OHhiBUXVS0a6R0bEC2A+VL4D9w6QB66ebCr6HGllA==} + '@inquirer/expand@4.0.22': + resolution: {integrity: sha512-9XOjCjvioLjwlq4S4yXzhvBmAXj5tG+jvva0uqedEsQ9VD8kZ+YT7ap23i0bIXOtow+di4+u3i6u26nDqEfY4Q==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -238,8 +244,8 @@ packages: '@types/node': optional: true - '@inquirer/core@10.1.15': - resolution: {integrity: sha512-8xrp836RZvKkpNbVvgWUlxjT4CraKk2q+I3Ksy+seI2zkcE+y6wNs1BVhgcv8VyImFecUhdQrYLdW32pAjwBdA==} + '@inquirer/external-editor@1.0.3': + resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -247,8 +253,12 @@ packages: '@types/node': optional: true - '@inquirer/core@10.2.2': - resolution: {integrity: sha512-yXq/4QUnk4sHMtmbd7irwiepjB8jXU0kkFRL4nr/aDBA2mDz13cMakEWdDwX3eSCTkk03kwcndD1zfRAIlELxA==} + '@inquirer/figures@1.0.15': + resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} + engines: {node: '>=18'} + + '@inquirer/input@4.3.0': + resolution: {integrity: sha512-h4fgse5zeGsBSW3cRQqu9a99OXRdRsNCvHoBqVmz40cjYjYFzcfwD0KA96BHIPlT7rZw0IpiefQIqXrjbzjS4Q==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -256,8 +266,8 @@ packages: '@types/node': optional: true - '@inquirer/editor@4.2.13': - resolution: {integrity: sha512-WbicD9SUQt/K8O5Vyk9iC2ojq5RHoCLK6itpp2fHsWe44VxxcA9z3GTWlvjSTGmMQpZr+lbVmrxdHcumJoLbMA==} + '@inquirer/number@3.0.22': + resolution: {integrity: sha512-oAdMJXz++fX58HsIEYmvuf5EdE8CfBHHXjoi9cTcQzgFoHGZE+8+Y3P38MlaRMeBvAVnkWtAxMUF6urL2zYsbg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -265,8 +275,8 @@ packages: '@types/node': optional: true - '@inquirer/editor@4.2.20': - resolution: {integrity: sha512-7omh5y5bK672Q+Brk4HBbnHNowOZwrb/78IFXdrEB9PfdxL3GudQyDk8O9vQ188wj3xrEebS2M9n18BjJoI83g==} + '@inquirer/password@4.0.22': + resolution: {integrity: sha512-CbdqK1ioIr0Y3akx03k/+Twf+KSlHjn05hBL+rmubMll7PsDTGH0R4vfFkr+XrkB0FOHrjIwVP9crt49dgt+1g==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -274,8 +284,8 @@ packages: '@types/node': optional: true - '@inquirer/expand@4.0.15': - resolution: {integrity: sha512-4Y+pbr/U9Qcvf+N/goHzPEXiHH8680lM3Dr3Y9h9FFw4gHS+zVpbj8LfbKWIb/jayIB4aSO4pWiBTrBYWkvi5A==} + '@inquirer/prompts@7.10.0': + resolution: {integrity: sha512-X2HAjY9BClfFkJ2RP3iIiFxlct5JJVdaYYXhA7RKxsbc9KL+VbId79PSoUGH/OLS011NFbHHDMDcBKUj3T89+Q==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -283,8 +293,8 @@ packages: '@types/node': optional: true - '@inquirer/expand@4.0.20': - resolution: {integrity: sha512-Dt9S+6qUg94fEvgn54F2Syf0Z3U8xmnBI9ATq2f5h9xt09fs2IJXSCIXyyVHwvggKWFXEY/7jATRo2K6Dkn6Ow==} + '@inquirer/rawlist@4.1.10': + resolution: {integrity: sha512-Du4uidsgTMkoH5izgpfyauTL/ItVHOLsVdcY+wGeoGaG56BV+/JfmyoQGniyhegrDzXpfn3D+LFHaxMDRygcAw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -292,8 +302,8 @@ packages: '@types/node': optional: true - '@inquirer/external-editor@1.0.2': - resolution: {integrity: sha512-yy9cOoBnx58TlsPrIxauKIFQTiyH+0MK4e97y4sV9ERbI+zDxw7i2hxHLCIEGIE/8PPvDxGhgzIOTSOWcs6/MQ==} + '@inquirer/search@3.2.1': + resolution: {integrity: sha512-cKiuUvETublmTmaOneEermfG2tI9ABpb7fW/LqzZAnSv4ZaJnbEis05lOkiBuYX5hNdnX0Q9ryOQyrNidb55WA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -301,16 +311,8 @@ packages: '@types/node': optional: true - '@inquirer/figures@1.0.12': - resolution: {integrity: sha512-MJttijd8rMFcKJC8NYmprWr6hD3r9Gd9qUC0XwPNwoEPWSMVJwA2MlXxF+nhZZNMY+HXsWa+o7KY2emWYIn0jQ==} - engines: {node: '>=18'} - - '@inquirer/figures@1.0.13': - resolution: {integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==} - engines: {node: '>=18'} - - '@inquirer/input@4.1.12': - resolution: {integrity: sha512-xJ6PFZpDjC+tC1P8ImGprgcsrzQRsUh9aH3IZixm1lAZFK49UGHxM3ltFfuInN2kPYNfyoPRh+tU4ftsjPLKqQ==} + '@inquirer/select@4.4.1': + resolution: {integrity: sha512-E9hbLU4XsNe2SAOSsFrtYtYQDVi1mfbqJrPDvXKnGlnRiApBdWMJz7r3J2Ff38AqULkPUD3XjQMD4492TymD7Q==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -318,134 +320,8 @@ packages: '@types/node': optional: true - '@inquirer/input@4.2.4': - resolution: {integrity: sha512-cwSGpLBMwpwcZZsc6s1gThm0J+it/KIJ+1qFL2euLmSKUMGumJ5TcbMgxEjMjNHRGadouIYbiIgruKoDZk7klw==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/number@3.0.15': - resolution: {integrity: sha512-xWg+iYfqdhRiM55MvqiTCleHzszpoigUpN5+t1OMcRkJrUrw7va3AzXaxvS+Ak7Gny0j2mFSTv2JJj8sMtbV2g==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/number@3.0.20': - resolution: {integrity: sha512-bbooay64VD1Z6uMfNehED2A2YOPHSJnQLs9/4WNiV/EK+vXczf/R988itL2XLDGTgmhMF2KkiWZo+iEZmc4jqg==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/password@4.0.15': - resolution: {integrity: sha512-75CT2p43DGEnfGTaqFpbDC2p2EEMrq0S+IRrf9iJvYreMy5mAWj087+mdKyLHapUEPLjN10mNvABpGbk8Wdraw==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/password@4.0.20': - resolution: {integrity: sha512-nxSaPV2cPvvoOmRygQR+h0B+Av73B01cqYLcr7NXcGXhbmsYfUb8fDdw2Us1bI2YsX+VvY7I7upgFYsyf8+Nug==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/prompts@7.5.3': - resolution: {integrity: sha512-8YL0WiV7J86hVAxrh3fE5mDCzcTDe1670unmJRz6ArDgN+DBK1a0+rbnNWp4DUB5rPMwqD5ZP6YHl9KK1mbZRg==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/prompts@7.8.6': - resolution: {integrity: sha512-68JhkiojicX9SBUD8FE/pSKbOKtwoyaVj1kwqLfvjlVXZvOy3iaSWX4dCLsZyYx/5Ur07Fq+yuDNOen+5ce6ig==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/rawlist@4.1.3': - resolution: {integrity: sha512-7XrV//6kwYumNDSsvJIPeAqa8+p7GJh7H5kRuxirct2cgOcSWwwNGoXDRgpNFbY/MG2vQ4ccIWCi8+IXXyFMZA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/rawlist@4.1.8': - resolution: {integrity: sha512-CQ2VkIASbgI2PxdzlkeeieLRmniaUU1Aoi5ggEdm6BIyqopE9GuDXdDOj9XiwOqK5qm72oI2i6J+Gnjaa26ejg==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/search@3.0.15': - resolution: {integrity: sha512-YBMwPxYBrADqyvP4nNItpwkBnGGglAvCLVW8u4pRmmvOsHUtCAUIMbUrLX5B3tFL1/WsLGdQ2HNzkqswMs5Uaw==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/search@3.1.3': - resolution: {integrity: sha512-D5T6ioybJJH0IiSUK/JXcoRrrm8sXwzrVMjibuPs+AgxmogKslaafy1oxFiorNI4s3ElSkeQZbhYQgLqiL8h6Q==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/select@4.2.3': - resolution: {integrity: sha512-OAGhXU0Cvh0PhLz9xTF/kx6g6x+sP+PcyTiLvCrewI99P3BBeexD+VbuwkNDvqGkk3y2h5ZiWLeRP7BFlhkUDg==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/select@4.3.4': - resolution: {integrity: sha512-Qp20nySRmfbuJBBsgPU7E/cL62Hf250vMZRzYDcBHty2zdD1kKCnoDFWRr0WO2ZzaXp3R7a4esaVGJUx0E6zvA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/type@3.0.7': - resolution: {integrity: sha512-PfunHQcjwnju84L+ycmcMKB/pTPIngjUJvfnRhKY6FKPuYXlM4aQCb/nIdTFR6BEhMjFvngzvng/vBAJMZpLSA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - '@inquirer/type@3.0.8': - resolution: {integrity: sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==} + '@inquirer/type@3.0.10': + resolution: {integrity: sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -460,8 +336,8 @@ packages: '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - '@kevisual/ai@0.0.5': - resolution: {integrity: sha512-yEwwFIWJz2Enj1Uo3wDH9Aa0lf42ACAZdMFCXkqI44NyA/5C59tm1Ro4Bm46Z2bgT5IMtkIDfTxJHMvVtosJ7w==} + '@kevisual/ai@0.0.11': + resolution: {integrity: sha512-SceIxodtjttLurZuXImZmJbimSt/NJW7N8vQArr0AaxqUam/WwcOTPYSVCleGhUW196Vew/FKC5k0vjyBMZZ5Q==} '@kevisual/cache@0.0.2': resolution: {integrity: sha512-2Cl5KF2Gi27uLfhO6CdTMFnRzx9vYnqevAo7d9ab3rOaqTgF8tLeAXglXyRbaWW3WUbHU2XaOb4r98uUsqIQQw==} @@ -473,8 +349,8 @@ packages: '@kevisual/load@0.0.6': resolution: {integrity: sha512-+3YTFehRcZ1haGel5DKYMUwmi5i6f2psyaPZlfkKU/cOXgkpwoG9/BEqPCnPjicKqqnksEpixVRkyHJ+5bjLVA==} - '@kevisual/local-app-manager@0.1.21': - resolution: {integrity: sha512-HXxeVJl/0u6mcrARwHDe8+NUgk1bSNqldJCl4P6CIrxFTsYgy06NjBi90A1UvzSDIsQzXvmZLeLK8cuuVzVtqQ==} + '@kevisual/local-app-manager@0.1.24': + resolution: {integrity: sha512-WAc7Q4CEPRbD0BJXRAJbhQMbHRan3qJ1HneGHNrXhjezMK6fHQZ7I+KUGFWbCm1dSS/wTGpMeRVufYbXdPoBcw==} '@kevisual/logger@0.0.4': resolution: {integrity: sha512-+fpr92eokSxoGOW1SIRl/27lPuO+zyY+feR5o2Q4YCNlAdt2x64NwC/w8r/3NEC5QenLgd4K0azyKTI2mHbARw==} @@ -484,14 +360,11 @@ packages: peerDependencies: '@kevisual/query': ^0.0.17 - '@kevisual/query@0.0.20': - resolution: {integrity: sha512-IpkQd1Pz50namxDNytLJpyR2CRLJWKTkmk68Fiw6CEkTXQDkdyBh2kIOIf7+Geu8quai/J9io3KjWzt17AeYdg==} - '@kevisual/query@0.0.29': resolution: {integrity: sha512-rQZk0J073UuC1QGzuyq+pb4Y0hu8/Qx/xYHs9NbsmslM+RuMnd1zpXmvhXNj7Kn1MdYTH90ng2MlFLBkkQFaIg==} - '@kevisual/router@0.0.21': - resolution: {integrity: sha512-XKTxbNO924cT18UOAGplWErZ+hMze8Y53F2jYCk18v4jsdsvjRho5uXXjJb6HSVsuITMtQR4R3rG0IcM3jkDKQ==} + '@kevisual/router@0.0.30': + resolution: {integrity: sha512-/mBo7aZFWjT4QfHkI5HPXfdgSwZzt3mAVei7dcNSBTPe9KQSoYKZ8BTq9VTUj3XE0sI6o1bZjlLYvinpVnZilw==} '@kevisual/task-command@0.0.7': resolution: {integrity: sha512-2vkKJVgjCQEeewKeCU7+U5K4mU6by2rWTDEsUrCbZ6K0fgg4QpfvrtXK1YGVNbywKIXuT95ol7QQS+gMN7hgcA==} @@ -499,8 +372,8 @@ packages: '@kevisual/types@0.0.10': resolution: {integrity: sha512-Q73uzzjk9UidumnmCvOpgzqDDvQxsblz22bIFuoiioUFJWwaparx8bpd8ArRyFojicYL1YJoFDzDZ9j9NN8grA==} - '@kevisual/use-config@1.0.17': - resolution: {integrity: sha512-EsuMJ5bhAbdERvpD55td1diRxx4kSxtYVaIHo0vDvnLetuXLfq+j2DPGmWl/oRdO48op0dme5oo1DctCqpgYcQ==} + '@kevisual/use-config@1.0.19': + resolution: {integrity: sha512-Q1IH4eMqUe5w6Bq8etoqOSls9FPIy0xwwD3wHf26EsQLZadhccI9qkDuFzP/rFWDa57mwFPEfwbGE5UlqWOCkw==} peerDependencies: dotenv: ^16.4.7 @@ -696,11 +569,8 @@ packages: '@types/braces@3.0.5': resolution: {integrity: sha512-SQFof9H+LXeWNz8wDe7oN5zu7ket0qwMu5vZubW4GCJ8Kkeh6nBWUz87+KTz/G3Kqsrp0j/W253XJb3KMEeg3w==} - '@types/bun@1.2.15': - resolution: {integrity: sha512-U1ljPdBEphF0nw1MIk0hI7kPg7dFdPyM7EenHsp6W5loNHl7zqy6JQf/RKCgnUn2KDzUpkBwHPnEJEjII594bA==} - - '@types/bun@1.3.0': - resolution: {integrity: sha512-+lAGCYjXjip2qY375xX/scJeVRmZ5cY0wyHYyCYxNcdEXrQ4AOe3gACgd4iQ8ksOslJtW4VNxBJ8llUwc3a6AA==} + '@types/bun@1.3.2': + resolution: {integrity: sha512-t15P7k5UIgHKkxwnMNkJbWlh/617rkDGEdSsDbu+qNHTaz9SKf7aC8fiIlUdD5RPpH6GEkP0cK7WlvmrEBRtWg==} '@types/crypto-js@4.2.2': resolution: {integrity: sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ==} @@ -717,29 +587,14 @@ packages: '@types/lodash@4.17.16': resolution: {integrity: sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==} - '@types/micromatch@4.0.9': - resolution: {integrity: sha512-7V+8ncr22h4UoYRLnLXSpTxjQrNUXtWHGeMPRJt1nULXI57G9bIcpyrHlmrQ7QK24EyyuXvYcSSWAM8GA9nqCg==} - - '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + '@types/micromatch@4.0.10': + resolution: {integrity: sha512-5jOhFDElqr4DKTrTEbnW8DZ4Hz5LRUEmyrGpCMrD/NphYv3nUnaF08xmSLx1rGGnyEs/kFnhiw6dCgcDqMr5PQ==} '@types/ms@0.7.34': resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - '@types/node-fetch@2.6.12': - resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==} - - '@types/node-forge@1.3.11': - resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} - - '@types/node@18.19.80': - resolution: {integrity: sha512-kEWeMwMeIvxYkeg1gTc01awpwLbfMRZXdIhwRcakd/KlK53jmRC26LqcbIt7fnAQTu5GzlnWmzA3H6+l1u6xxQ==} - - '@types/node@22.15.29': - resolution: {integrity: sha512-LNdjOkUDlU1RZb8e1kOIUpN1qQUlzGkEtbVNo53vbrwDg5om6oduhm4SiUaPW5ASTXhAiP0jInWG8Qx9fVlOeQ==} - - '@types/node@24.7.2': - resolution: {integrity: sha512-/NbVmcGTP+lj5oa4yiYxxeBjRivKQ5Ns1eSZeB99ExsEQ6rX5XYU1Zy/gGxY/ilqtD4Etx9mKyrPxZRetiahhA==} + '@types/node@24.10.0': + resolution: {integrity: sha512-qzQZRBqkFsYyaSWXuEHc2WR9c0a0CXwiE5FWUvn7ZM+vdy1uZLfCunD38UzhuB7YN/J11ndbDBcTmOdxJo9Q7A==} '@types/react@19.1.9': resolution: {integrity: sha512-WmdoynAX8Stew/36uTSVMcLJJ1KRh6L3IZRx1PZ7qJtBqT3dYTgyDTx8H1qoRghErydW7xw9mSJ3wS//tCRpFA==} @@ -747,24 +602,16 @@ packages: '@types/resolve@1.20.2': resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - '@types/send@0.17.4': - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + '@types/send@1.2.1': + resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} '@types/ws@8.18.1': resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} - abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - agent-base@7.1.3: resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} - agentkeepalive@4.6.0: - resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} - engines: {node: '>= 8.0.0'} - amp-message@0.1.2: resolution: {integrity: sha512-JqutcFwoU1+jhv7ArgW38bqrE+LQdcRv4NxNw0mp0JHQyB6tXesWRjtYKlDgHRY2o3JE5UTaBGUK8kSWUdxWUg==} @@ -775,10 +622,6 @@ packages: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -787,10 +630,6 @@ packages: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - ansis@4.0.0: - resolution: {integrity: sha512-P8nrHI1EyW9OfBt1X7hMSwGN2vwRuqHSKJAT1gbLWZRzDa24oHjYwGHvEgHeBepupzk878yS/HBZ0NMPYtbolw==} - engines: {node: '>=14'} - ansis@4.0.0-node10: resolution: {integrity: sha512-BRrU0Bo1X9dFGw6KgGz6hWrqQuOlVEDOzkb0QSLZY9sXHqA7pNj7yHPVJRz7y/rj4EOJ3d/D5uxH+ee9leYgsg==} engines: {node: '>=10'} @@ -823,11 +662,6 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - blessed@0.1.81: - resolution: {integrity: sha512-LoF5gae+hlmfORcG1M5+5XZi4LBmvlXTzwJWzUlPryN/SJdSflZvROM2TwkT0GMpq7oqT48NRd4GS7BiVBc5OQ==} - engines: {node: '>= 0.8.0'} - hasBin: true - bodec@0.1.0: resolution: {integrity: sha512-Ylo+MAo5BDUq1KA3f3R/MFhh+g8cnHmo8bz3YPGhI1znrMaf77ol1sfvYJzsw3nTE+Y2GryfDxBaR+AqpAkEHQ==} @@ -841,11 +675,8 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - bun-types@1.2.15: - resolution: {integrity: sha512-NarRIaS+iOaQU1JPfyKhZm4AsUOrwUOqRNHY0XxI8GI8jYxiLXLcdjYMG9UKS+fwWasc1uw1htV9AX24dD+p4w==} - - bun-types@1.3.0: - resolution: {integrity: sha512-u8X0thhx+yJ0KmkxuEo9HAtdfgCBaM/aI9K90VQcQioAmkVp3SG3FkwWGibUFz3WdXAdcsqOcbU40lK7tbHdkQ==} + bun-types@1.3.2: + resolution: {integrity: sha512-i/Gln4tbzKNuxP70OWhJRZz1MRfvqExowP7U6JKoI8cntFrtxg7RJK3jvz7wQW54UuvNC8tbKHHri5fy74FVqg==} peerDependencies: '@types/react': ^19 @@ -857,19 +688,12 @@ packages: resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} engines: {node: '>=8'} - chalk@5.4.1: - resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - chalk@5.6.2: resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - - chardet@2.1.0: - resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==} + chardet@2.1.1: + resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} charm@0.1.2: resolution: {integrity: sha512-syedaZ9cPe7r3hoQA9twWYKu5AIyCswN5+szkmPBe9ccdLrj4bYaCnLVPTLd2kgVRc7+zoX4tyPgRnFKCj5YjQ==} @@ -878,6 +702,10 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + chownr@3.0.0: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} @@ -901,12 +729,8 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} - commander@14.0.0: - resolution: {integrity: sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==} - engines: {node: '>=20'} - - commander@14.0.1: - resolution: {integrity: sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A==} + commander@14.0.2: + resolution: {integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==} engines: {node: '>=20'} commander@2.15.1: @@ -915,6 +739,9 @@ packages: commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + cookie-es@1.2.2: + resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} + croner@4.1.97: resolution: {integrity: sha512-/f6gpQuxDaqXu+1kwQYSckUglPaOrHdbIlBAu0YuW8/Cdb45XwXYNUBXg3r/9Mo6n540Kn/smKcZWko5x99KrQ==} @@ -923,19 +750,13 @@ packages: engines: {node: '>=20'} hasBin: true - cross-env@7.0.3: - resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} - engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} - hasBin: true - - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + crossws@0.3.5: + resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} + crypto-js@4.2.0: resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} @@ -949,12 +770,12 @@ packages: resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} engines: {node: '>= 14'} - dayjs@1.11.13: - resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} - dayjs@1.11.15: resolution: {integrity: sha512-MC+DfnSWiM9APs7fpiurHGCoeIx0Gdl6QZBy+5lu8MbYKN5FZEXqOgrundfibdfhGZ15o9hzmZ2xJjZnbvgKXQ==} + dayjs@1.11.19: + resolution: {integrity: sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==} + dayjs@1.8.36: resolution: {integrity: sha512-3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw==} @@ -997,6 +818,9 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + degenerator@5.0.1: resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} engines: {node: '>= 14'} @@ -1009,10 +833,17 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} + destr@2.0.5: + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} + dotenv@16.5.0: resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==} engines: {node: '>=12'} + dotenv@17.2.3: + resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==} + engines: {node: '>=12'} + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -1030,9 +861,6 @@ packages: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} - encoding@0.1.13: - resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} - enquirer@2.3.6: resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} engines: {node: '>=8.6'} @@ -1085,10 +913,6 @@ packages: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} - event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - eventemitter2@5.0.1: resolution: {integrity: sha512-5EM1GHXycJBS6mauYAbVKT1cVs7POKWb2NXD4Vyt8dDqeZa7LaDK1/sjtL+Zb0lzTpSNil4596Dyu97hz37QLg==} @@ -1098,10 +922,6 @@ packages: eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - extrareqp2@1.0.0: resolution: {integrity: sha512-Gum0g1QYb6wpPJCVypWP3bbIuaibcFiJcpuPM10YSXp/tzqi84x9PJageob+eN4xVRIOto4wjSGNLyMD54D2xA==} @@ -1143,17 +963,10 @@ packages: debug: optional: true - form-data-encoder@1.7.2: - resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} - form-data@4.0.4: resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} engines: {node: '>= 6'} - formdata-node@4.4.1: - resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} - engines: {node: '>= 12.20'} - fresh@2.0.0: resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} engines: {node: '>= 0.8'} @@ -1201,6 +1014,9 @@ packages: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} + h3@1.15.4: + resolution: {integrity: sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==} + has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -1229,17 +1045,10 @@ packages: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} - humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - iconv-lite@0.7.0: resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==} engines: {node: '>=0.10.0'} @@ -1257,17 +1066,8 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - inquirer@12.6.3: - resolution: {integrity: sha512-eX9beYAjr1MqYsIjx1vAheXsRk1jbZRvHLcBu5nA9wX0rXR1IfCZLnVLp4Ym4mrhqmh7AuANwcdtgQ291fZDfQ==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - - inquirer@12.9.6: - resolution: {integrity: sha512-603xXOgyfxhuis4nfnWaZrMaotNT0Km9XwwBNWUKbIDqeCY89jGr2F9YPEMiNhU6XjIP4VoWISMBFfcc5NgrTw==} + inquirer@12.11.0: + resolution: {integrity: sha512-E5oT7r+NxIxTuZsl/2Hg76kdT57DGc5mn5pCEz0LqZjR8hN7prgMXhUZ6A7rj/qL3X4P5lToIWNkO10uZJSzdA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -1279,6 +1079,9 @@ packages: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} engines: {node: '>= 12'} + iron-webcrypto@1.2.1: + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} @@ -1369,6 +1172,13 @@ packages: resolution: {integrity: sha512-neJAj8GwF0e8EpycYIDFqEPcx9Qz4GUho20jWFR7YiFeXzF1YMLdxB36PypcTSPMA+4+LvgyMacYhlr18Zlymw==} engines: {node: '>=18'} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@11.2.2: + resolution: {integrity: sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==} + engines: {node: 20 || >=22} + lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} @@ -1430,12 +1240,12 @@ packages: mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - mute-stream@2.0.0: - resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} - engines: {node: ^18.17.0 || >=20.5.0} + mute-stream@3.0.0: + resolution: {integrity: sha512-dkEJPVvun4FryqBmZ5KhDo0K9iDXAwn08tMLDinNdRBNPcYEDiWYysLcc6k3mjTMlbP9KyylvRpd4wFtwrT9rw==} + engines: {node: ^20.17.0 || >=22.9.0} - nanoid@5.1.5: - resolution: {integrity: sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==} + nanoid@5.1.6: + resolution: {integrity: sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==} engines: {node: ^18 || >=20} hasBin: true @@ -1448,44 +1258,27 @@ packages: resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} engines: {node: '>= 0.4.0'} - node-domexception@1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} - deprecated: Use your platform's native DOMException instead - - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true + node-fetch-native@1.6.7: + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} node-forge@1.3.1: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} + node-mock-http@1.0.3: + resolution: {integrity: sha512-jN8dK25fsfnMrVsEhluUTPkBFY+6ybu7jSB1n+ri/vOGjJxU8J9CZhpSGkHXSkFjtUhbmoncG/YG9ta5Ludqog==} + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + ofetch@1.5.1: + resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} + on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} - openai@4.100.0: - resolution: {integrity: sha512-9soq/wukv3utxcuD7TWFqKdKp0INWdeyhUCvxwrne5KwnxaCp4eHL4GdT/tMFhYolxgNhxFzg5GFwM331Z5CZg==} - hasBin: true - peerDependencies: - ws: ^8.18.0 - zod: ^3.23.8 - peerDependenciesMeta: - ws: - optional: true - zod: - optional: true - openai@5.5.1: resolution: {integrity: sha512-5i19097mGotHA1eFsM6Tjd/tJ8uo9sa5Ysv4Q6bKJ2vtN6rc0MzMrUefXnLXYAJcmMQrC1Efhj0AvfIkXrQamw==} hasBin: true @@ -1498,10 +1291,6 @@ packages: zod: optional: true - os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - pac-proxy-agent@7.2.0: resolution: {integrity: sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==} engines: {node: '>= 14'} @@ -1520,9 +1309,8 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-to-regexp@8.2.0: - resolution: {integrity: sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==} - engines: {node: '>=16'} + path-to-regexp@8.3.0: + resolution: {integrity: sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==} picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -1566,11 +1354,6 @@ packages: engines: {node: '>=16.0.0'} hasBin: true - pm2@6.0.6: - resolution: {integrity: sha512-6t+I+Gc232dKe0OjwFYlU59JoY8MWBqsBmcZMSfKollByL4q8APUFwWOt7OtPH4lGO4Sb6GiFAqu7xT42QeRBA==} - engines: {node: '>=16.0.0'} - hasBin: true - promptly@2.2.0: resolution: {integrity: sha512-aC9j+BZsRSSzEsXBNBwDnAxujdx19HycZoKgRgzWnS8eOHg1asuf9heuLprfbe739zY3IdUQx+Egv6Jn135WHA==} @@ -1584,6 +1367,9 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + radix3@1.1.2: + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + range-parser@1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} @@ -1596,6 +1382,10 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + require-in-the-middle@5.2.0: resolution: {integrity: sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==} engines: {node: '>=6'} @@ -1620,12 +1410,8 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - run-async@3.0.0: - resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} - engines: {node: '>=0.12.0'} - - run-async@4.0.5: - resolution: {integrity: sha512-oN9GTgxUNDBumHTTDmQ8dep6VIJbgj9S3dPP+9XylVLIK4xB9XTXtKWROd5pnhdXR9k0EgO1JRcNh0T+Ny2FsA==} + run-async@4.0.6: + resolution: {integrity: sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ==} engines: {node: '>=0.12.0'} run-parallel@1.2.0: @@ -1646,8 +1432,8 @@ packages: sax@1.4.1: resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} - selfsigned@2.4.1: - resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} + selfsigned@3.0.1: + resolution: {integrity: sha512-6U6w6kSLrM9Zxo0D7mC7QdGS6ZZytMWBnj/vhF9p+dAHx6CwGezuRcO4VclTbrrI7mg7SD6zNiqXUuBHOVopNQ==} engines: {node: '>=10'} semver@7.5.4: @@ -1731,8 +1517,8 @@ packages: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} - supports-color@10.0.0: - resolution: {integrity: sha512-HRVVSbCCMbj7/kdWF9Q+bbckjBHLtHMEoJWlkmYzzdwhYMkjkOwubLM6t7NbWKjgKamGDrWL1++KrjUO1t9oAQ==} + supports-color@10.2.2: + resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} engines: {node: '>=18'} supports-color@7.2.0: @@ -1749,14 +1535,10 @@ packages: os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android] hasBin: true - tar@7.5.1: - resolution: {integrity: sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==} + tar@7.5.2: + resolution: {integrity: sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==} engines: {node: '>=18'} - tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -1765,9 +1547,6 @@ packages: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - tslib@1.9.3: resolution: {integrity: sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==} @@ -1781,38 +1560,86 @@ packages: tx2@1.0.5: resolution: {integrity: sha512-sJ24w0y03Md/bxzK4FU8J8JveYYUbSs2FViLJ2D/8bytSiyPRbuE3DyL/9UKYXTZlV3yXq0L8GLlhobTnekCVg==} - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - typescript@5.8.2: resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} engines: {node: '>=14.17'} hasBin: true - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + ufo@1.6.1: + resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} - undici-types@7.14.0: - resolution: {integrity: sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==} + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + + unstorage@1.17.2: + resolution: {integrity: sha512-cKEsD6iBWJgOMJ6vW1ID/SYuqNf8oN4yqRk8OYqaVQ3nnkJXOT1PSpaMh2QfzLs78UN5kSNRD2c/mgjT8tX7+w==} + peerDependencies: + '@azure/app-configuration': ^1.8.0 + '@azure/cosmos': ^4.2.0 + '@azure/data-tables': ^13.3.0 + '@azure/identity': ^4.6.0 + '@azure/keyvault-secrets': ^4.9.0 + '@azure/storage-blob': ^12.26.0 + '@capacitor/preferences': ^6.0.3 || ^7.0.0 + '@deno/kv': '>=0.9.0' + '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 + '@planetscale/database': ^1.19.0 + '@upstash/redis': ^1.34.3 + '@vercel/blob': '>=0.27.1' + '@vercel/functions': ^2.2.12 || ^3.0.0 + '@vercel/kv': ^1.0.1 + aws4fetch: ^1.0.20 + db0: '>=0.2.1' + idb-keyval: ^6.2.1 + ioredis: ^5.4.2 + uploadthing: ^7.4.4 + peerDependenciesMeta: + '@azure/app-configuration': + optional: true + '@azure/cosmos': + optional: true + '@azure/data-tables': + optional: true + '@azure/identity': + optional: true + '@azure/keyvault-secrets': + optional: true + '@azure/storage-blob': + optional: true + '@capacitor/preferences': + optional: true + '@deno/kv': + optional: true + '@netlify/blobs': + optional: true + '@planetscale/database': + optional: true + '@upstash/redis': + optional: true + '@vercel/blob': + optional: true + '@vercel/functions': + optional: true + '@vercel/kv': + optional: true + aws4fetch: + optional: true + db0: + optional: true + idb-keyval: + optional: true + ioredis: + optional: true + uploadthing: + optional: true vizion@2.2.1: resolution: {integrity: sha512-sfAcO2yeSU0CSPFI/DmZp3FsFE9T+8913nv1xWBOyzODv13fwkn6Vl7HqxGpkr9F608M+8SuFId3s+BlZqfXww==} engines: {node: '>=4.0'} - web-streams-polyfill@4.0.0-beta.3: - resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} - engines: {node: '>= 14'} - - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -1853,8 +1680,8 @@ packages: resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} - yoctocolors-cjs@2.1.2: - resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} + yoctocolors-cjs@2.1.3: + resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} engines: {node: '>=18'} zustand@5.0.8: @@ -1889,263 +1716,130 @@ snapshots: '@epic-web/invariant@1.0.0': {} - '@inquirer/ansi@1.0.0': {} + '@inquirer/ansi@1.0.2': {} - '@inquirer/checkbox@4.1.8(@types/node@22.15.29)': + '@inquirer/checkbox@4.3.1(@types/node@24.10.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@22.15.29) - '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@22.15.29) - ansi-escapes: 4.3.2 - yoctocolors-cjs: 2.1.2 + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.1(@types/node@24.10.0) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@24.10.0) + yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 22.15.29 + '@types/node': 24.10.0 - '@inquirer/checkbox@4.2.4(@types/node@24.7.2)': + '@inquirer/confirm@5.1.20(@types/node@24.10.0)': dependencies: - '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.7.2) - '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.7.2) - yoctocolors-cjs: 2.1.2 + '@inquirer/core': 10.3.1(@types/node@24.10.0) + '@inquirer/type': 3.0.10(@types/node@24.10.0) optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.10.0 - '@inquirer/confirm@5.1.12(@types/node@22.15.29)': + '@inquirer/core@10.3.1(@types/node@24.10.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@22.15.29) - '@inquirer/type': 3.0.8(@types/node@22.15.29) - optionalDependencies: - '@types/node': 22.15.29 - - '@inquirer/confirm@5.1.18(@types/node@24.7.2)': - dependencies: - '@inquirer/core': 10.2.2(@types/node@24.7.2) - '@inquirer/type': 3.0.8(@types/node@24.7.2) - optionalDependencies: - '@types/node': 24.7.2 - - '@inquirer/core@10.1.13(@types/node@22.15.29)': - dependencies: - '@inquirer/figures': 1.0.12 - '@inquirer/type': 3.0.8(@types/node@22.15.29) - ansi-escapes: 4.3.2 + '@inquirer/ansi': 1.0.2 + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@24.10.0) cli-width: 4.1.0 - mute-stream: 2.0.0 + mute-stream: 3.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 - yoctocolors-cjs: 2.1.2 + yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 22.15.29 + '@types/node': 24.10.0 - '@inquirer/core@10.1.15(@types/node@22.15.29)': + '@inquirer/editor@4.2.22(@types/node@24.10.0)': dependencies: - '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@22.15.29) - ansi-escapes: 4.3.2 - cli-width: 4.1.0 - mute-stream: 2.0.0 - signal-exit: 4.1.0 - wrap-ansi: 6.2.0 - yoctocolors-cjs: 2.1.2 + '@inquirer/core': 10.3.1(@types/node@24.10.0) + '@inquirer/external-editor': 1.0.3(@types/node@24.10.0) + '@inquirer/type': 3.0.10(@types/node@24.10.0) optionalDependencies: - '@types/node': 22.15.29 + '@types/node': 24.10.0 - '@inquirer/core@10.2.2(@types/node@24.7.2)': + '@inquirer/expand@4.0.22(@types/node@24.10.0)': dependencies: - '@inquirer/ansi': 1.0.0 - '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.7.2) - cli-width: 4.1.0 - mute-stream: 2.0.0 - signal-exit: 4.1.0 - wrap-ansi: 6.2.0 - yoctocolors-cjs: 2.1.2 + '@inquirer/core': 10.3.1(@types/node@24.10.0) + '@inquirer/type': 3.0.10(@types/node@24.10.0) + yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.10.0 - '@inquirer/editor@4.2.13(@types/node@22.15.29)': + '@inquirer/external-editor@1.0.3(@types/node@24.10.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@22.15.29) - '@inquirer/type': 3.0.8(@types/node@22.15.29) - external-editor: 3.1.0 - optionalDependencies: - '@types/node': 22.15.29 - - '@inquirer/editor@4.2.20(@types/node@24.7.2)': - dependencies: - '@inquirer/core': 10.2.2(@types/node@24.7.2) - '@inquirer/external-editor': 1.0.2(@types/node@24.7.2) - '@inquirer/type': 3.0.8(@types/node@24.7.2) - optionalDependencies: - '@types/node': 24.7.2 - - '@inquirer/expand@4.0.15(@types/node@22.15.29)': - dependencies: - '@inquirer/core': 10.1.15(@types/node@22.15.29) - '@inquirer/type': 3.0.8(@types/node@22.15.29) - yoctocolors-cjs: 2.1.2 - optionalDependencies: - '@types/node': 22.15.29 - - '@inquirer/expand@4.0.20(@types/node@24.7.2)': - dependencies: - '@inquirer/core': 10.2.2(@types/node@24.7.2) - '@inquirer/type': 3.0.8(@types/node@24.7.2) - yoctocolors-cjs: 2.1.2 - optionalDependencies: - '@types/node': 24.7.2 - - '@inquirer/external-editor@1.0.2(@types/node@24.7.2)': - dependencies: - chardet: 2.1.0 + chardet: 2.1.1 iconv-lite: 0.7.0 optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.10.0 - '@inquirer/figures@1.0.12': {} + '@inquirer/figures@1.0.15': {} - '@inquirer/figures@1.0.13': {} - - '@inquirer/input@4.1.12(@types/node@22.15.29)': + '@inquirer/input@4.3.0(@types/node@24.10.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@22.15.29) - '@inquirer/type': 3.0.8(@types/node@22.15.29) + '@inquirer/core': 10.3.1(@types/node@24.10.0) + '@inquirer/type': 3.0.10(@types/node@24.10.0) optionalDependencies: - '@types/node': 22.15.29 + '@types/node': 24.10.0 - '@inquirer/input@4.2.4(@types/node@24.7.2)': + '@inquirer/number@3.0.22(@types/node@24.10.0)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.7.2) - '@inquirer/type': 3.0.8(@types/node@24.7.2) + '@inquirer/core': 10.3.1(@types/node@24.10.0) + '@inquirer/type': 3.0.10(@types/node@24.10.0) optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.10.0 - '@inquirer/number@3.0.15(@types/node@22.15.29)': + '@inquirer/password@4.0.22(@types/node@24.10.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@22.15.29) - '@inquirer/type': 3.0.8(@types/node@22.15.29) + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.1(@types/node@24.10.0) + '@inquirer/type': 3.0.10(@types/node@24.10.0) optionalDependencies: - '@types/node': 22.15.29 + '@types/node': 24.10.0 - '@inquirer/number@3.0.20(@types/node@24.7.2)': + '@inquirer/prompts@7.10.0(@types/node@24.10.0)': dependencies: - '@inquirer/core': 10.2.2(@types/node@24.7.2) - '@inquirer/type': 3.0.8(@types/node@24.7.2) + '@inquirer/checkbox': 4.3.1(@types/node@24.10.0) + '@inquirer/confirm': 5.1.20(@types/node@24.10.0) + '@inquirer/editor': 4.2.22(@types/node@24.10.0) + '@inquirer/expand': 4.0.22(@types/node@24.10.0) + '@inquirer/input': 4.3.0(@types/node@24.10.0) + '@inquirer/number': 3.0.22(@types/node@24.10.0) + '@inquirer/password': 4.0.22(@types/node@24.10.0) + '@inquirer/rawlist': 4.1.10(@types/node@24.10.0) + '@inquirer/search': 3.2.1(@types/node@24.10.0) + '@inquirer/select': 4.4.1(@types/node@24.10.0) optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.10.0 - '@inquirer/password@4.0.15(@types/node@22.15.29)': + '@inquirer/rawlist@4.1.10(@types/node@24.10.0)': dependencies: - '@inquirer/core': 10.1.15(@types/node@22.15.29) - '@inquirer/type': 3.0.8(@types/node@22.15.29) - ansi-escapes: 4.3.2 + '@inquirer/core': 10.3.1(@types/node@24.10.0) + '@inquirer/type': 3.0.10(@types/node@24.10.0) + yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 22.15.29 + '@types/node': 24.10.0 - '@inquirer/password@4.0.20(@types/node@24.7.2)': + '@inquirer/search@3.2.1(@types/node@24.10.0)': dependencies: - '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.7.2) - '@inquirer/type': 3.0.8(@types/node@24.7.2) + '@inquirer/core': 10.3.1(@types/node@24.10.0) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@24.10.0) + yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.10.0 - '@inquirer/prompts@7.5.3(@types/node@22.15.29)': + '@inquirer/select@4.4.1(@types/node@24.10.0)': dependencies: - '@inquirer/checkbox': 4.1.8(@types/node@22.15.29) - '@inquirer/confirm': 5.1.12(@types/node@22.15.29) - '@inquirer/editor': 4.2.13(@types/node@22.15.29) - '@inquirer/expand': 4.0.15(@types/node@22.15.29) - '@inquirer/input': 4.1.12(@types/node@22.15.29) - '@inquirer/number': 3.0.15(@types/node@22.15.29) - '@inquirer/password': 4.0.15(@types/node@22.15.29) - '@inquirer/rawlist': 4.1.3(@types/node@22.15.29) - '@inquirer/search': 3.0.15(@types/node@22.15.29) - '@inquirer/select': 4.2.3(@types/node@22.15.29) + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.1(@types/node@24.10.0) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@24.10.0) + yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 22.15.29 + '@types/node': 24.10.0 - '@inquirer/prompts@7.8.6(@types/node@24.7.2)': - dependencies: - '@inquirer/checkbox': 4.2.4(@types/node@24.7.2) - '@inquirer/confirm': 5.1.18(@types/node@24.7.2) - '@inquirer/editor': 4.2.20(@types/node@24.7.2) - '@inquirer/expand': 4.0.20(@types/node@24.7.2) - '@inquirer/input': 4.2.4(@types/node@24.7.2) - '@inquirer/number': 3.0.20(@types/node@24.7.2) - '@inquirer/password': 4.0.20(@types/node@24.7.2) - '@inquirer/rawlist': 4.1.8(@types/node@24.7.2) - '@inquirer/search': 3.1.3(@types/node@24.7.2) - '@inquirer/select': 4.3.4(@types/node@24.7.2) + '@inquirer/type@3.0.10(@types/node@24.10.0)': optionalDependencies: - '@types/node': 24.7.2 - - '@inquirer/rawlist@4.1.3(@types/node@22.15.29)': - dependencies: - '@inquirer/core': 10.1.15(@types/node@22.15.29) - '@inquirer/type': 3.0.8(@types/node@22.15.29) - yoctocolors-cjs: 2.1.2 - optionalDependencies: - '@types/node': 22.15.29 - - '@inquirer/rawlist@4.1.8(@types/node@24.7.2)': - dependencies: - '@inquirer/core': 10.2.2(@types/node@24.7.2) - '@inquirer/type': 3.0.8(@types/node@24.7.2) - yoctocolors-cjs: 2.1.2 - optionalDependencies: - '@types/node': 24.7.2 - - '@inquirer/search@3.0.15(@types/node@22.15.29)': - dependencies: - '@inquirer/core': 10.1.15(@types/node@22.15.29) - '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@22.15.29) - yoctocolors-cjs: 2.1.2 - optionalDependencies: - '@types/node': 22.15.29 - - '@inquirer/search@3.1.3(@types/node@24.7.2)': - dependencies: - '@inquirer/core': 10.2.2(@types/node@24.7.2) - '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.7.2) - yoctocolors-cjs: 2.1.2 - optionalDependencies: - '@types/node': 24.7.2 - - '@inquirer/select@4.2.3(@types/node@22.15.29)': - dependencies: - '@inquirer/core': 10.1.15(@types/node@22.15.29) - '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@22.15.29) - ansi-escapes: 4.3.2 - yoctocolors-cjs: 2.1.2 - optionalDependencies: - '@types/node': 22.15.29 - - '@inquirer/select@4.3.4(@types/node@24.7.2)': - dependencies: - '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.7.2) - '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.7.2) - yoctocolors-cjs: 2.1.2 - optionalDependencies: - '@types/node': 24.7.2 - - '@inquirer/type@3.0.7(@types/node@22.15.29)': - optionalDependencies: - '@types/node': 22.15.29 - - '@inquirer/type@3.0.8(@types/node@22.15.29)': - optionalDependencies: - '@types/node': 22.15.29 - - '@inquirer/type@3.0.8(@types/node@24.7.2)': - optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.10.0 '@isaacs/fs-minipass@4.0.1': dependencies: @@ -2153,7 +1847,7 @@ snapshots: '@jridgewell/sourcemap-codec@1.5.0': {} - '@kevisual/ai@0.0.5': + '@kevisual/ai@0.0.11': dependencies: '@kevisual/logger': 0.0.4 @@ -2184,9 +1878,9 @@ snapshots: dependencies: eventemitter3: 5.0.1 - '@kevisual/local-app-manager@0.1.21(supports-color@10.0.0)': + '@kevisual/local-app-manager@0.1.24(supports-color@10.2.2)': dependencies: - pm2: 6.0.13(supports-color@10.0.0) + pm2: 6.0.13(supports-color@10.2.2) transitivePeerDependencies: - bufferutil - supports-color @@ -2194,10 +1888,10 @@ snapshots: '@kevisual/logger@0.0.4': {} - '@kevisual/query-login@0.0.6(@kevisual/query@0.0.20(@kevisual/ws@8.0.0)(encoding@0.1.13))(rollup@4.43.0)(tslib@2.8.1)(typescript@5.8.2)': + '@kevisual/query-login@0.0.6(@kevisual/query@0.0.29(@kevisual/ws@8.0.0))(rollup@4.43.0)(tslib@2.8.1)(typescript@5.8.2)': dependencies: '@kevisual/cache': 0.0.2(rollup@4.43.0)(tslib@2.8.1)(typescript@5.8.2) - '@kevisual/query': 0.0.20(@kevisual/ws@8.0.0)(encoding@0.1.13) + '@kevisual/query': 0.0.29(@kevisual/ws@8.0.0) dotenv: 16.5.0 transitivePeerDependencies: - rollup @@ -2214,11 +1908,10 @@ snapshots: - tslib - typescript - '@kevisual/query@0.0.20(@kevisual/ws@8.0.0)(encoding@0.1.13)': + '@kevisual/query@0.0.29(@kevisual/ws@8.0.0)': dependencies: - openai: 4.100.0(@kevisual/ws@8.0.0)(encoding@0.1.13) + openai: 5.5.1(@kevisual/ws@8.0.0) transitivePeerDependencies: - - encoding - ws - zod @@ -2229,19 +1922,22 @@ snapshots: - ws - zod - '@kevisual/router@0.0.21': + '@kevisual/router@0.0.30(supports-color@10.2.2)': dependencies: - path-to-regexp: 8.2.0 - selfsigned: 2.4.1 + path-to-regexp: 8.3.0 + selfsigned: 3.0.1 + send: 1.2.0(supports-color@10.2.2) + transitivePeerDependencies: + - supports-color '@kevisual/task-command@0.0.7': {} '@kevisual/types@0.0.10': {} - '@kevisual/use-config@1.0.17(dotenv@16.5.0)': + '@kevisual/use-config@1.0.19(dotenv@17.2.3)': dependencies: '@kevisual/load': 0.0.6 - dotenv: 16.5.0 + dotenv: 17.2.3 '@kevisual/ws@8.0.0': {} @@ -2257,18 +1953,18 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@pm2/agent@2.1.1(supports-color@10.0.0)': + '@pm2/agent@2.1.1(supports-color@10.2.2)': dependencies: async: 3.2.6 chalk: 3.0.0 dayjs: 1.8.36 - debug: 4.3.7(supports-color@10.0.0) + debug: 4.3.7(supports-color@10.2.2) eventemitter2: 5.0.1 fast-json-patch: 3.1.1 fclone: 1.0.11 - pm2-axon: 4.0.1(supports-color@10.0.0) - pm2-axon-rpc: 0.7.1(supports-color@10.0.0) - proxy-agent: 6.4.0(supports-color@10.0.0) + pm2-axon: 4.0.1(supports-color@10.2.2) + pm2-axon-rpc: 0.7.1(supports-color@10.2.2) + proxy-agent: 6.4.0(supports-color@10.2.2) semver: 7.5.4 ws: 7.5.10 transitivePeerDependencies: @@ -2278,12 +1974,12 @@ snapshots: '@pm2/blessed@0.1.81': {} - '@pm2/io@6.1.0(supports-color@10.0.0)': + '@pm2/io@6.1.0(supports-color@10.2.2)': dependencies: async: 2.6.4 - debug: 4.3.7(supports-color@10.0.0) + debug: 4.3.7(supports-color@10.2.2) eventemitter2: 6.4.9 - require-in-the-middle: 5.2.0(supports-color@10.0.0) + require-in-the-middle: 5.2.0(supports-color@10.2.2) semver: 7.5.4 shimmer: 1.2.1 signal-exit: 3.0.7 @@ -2291,21 +1987,21 @@ snapshots: transitivePeerDependencies: - supports-color - '@pm2/js-api@0.8.0(supports-color@10.0.0)': + '@pm2/js-api@0.8.0(supports-color@10.2.2)': dependencies: async: 2.6.4 - debug: 4.3.7(supports-color@10.0.0) + debug: 4.3.7(supports-color@10.2.2) eventemitter2: 6.4.9 - extrareqp2: 1.0.0(debug@4.3.7(supports-color@10.0.0)) + extrareqp2: 1.0.0(debug@4.3.7(supports-color@10.2.2)) ws: 7.5.10 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@pm2/pm2-version-check@1.0.4(supports-color@10.0.0)': + '@pm2/pm2-version-check@1.0.4(supports-color@10.2.2)': dependencies: - debug: 4.4.3(supports-color@10.0.0) + debug: 4.4.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -2412,13 +2108,9 @@ snapshots: '@types/braces@3.0.5': {} - '@types/bun@1.2.15': + '@types/bun@1.3.2(@types/react@19.1.9)': dependencies: - bun-types: 1.2.15 - - '@types/bun@1.3.0(@types/react@19.1.9)': - dependencies: - bun-types: 1.3.0(@types/react@19.1.9) + bun-types: 1.3.2(@types/react@19.1.9) transitivePeerDependencies: - '@types/react' @@ -2429,7 +2121,7 @@ snapshots: '@types/jsonwebtoken@9.0.10': dependencies: '@types/ms': 0.7.34 - '@types/node': 24.7.2 + '@types/node': 24.10.0 '@types/lodash-es@4.17.12': dependencies: @@ -2437,34 +2129,15 @@ snapshots: '@types/lodash@4.17.16': {} - '@types/micromatch@4.0.9': + '@types/micromatch@4.0.10': dependencies: '@types/braces': 3.0.5 - '@types/mime@1.3.5': {} - '@types/ms@0.7.34': {} - '@types/node-fetch@2.6.12': + '@types/node@24.10.0': dependencies: - '@types/node': 22.15.29 - form-data: 4.0.4 - - '@types/node-forge@1.3.11': - dependencies: - '@types/node': 22.15.29 - - '@types/node@18.19.80': - dependencies: - undici-types: 5.26.5 - - '@types/node@22.15.29': - dependencies: - undici-types: 6.21.0 - - '@types/node@24.7.2': - dependencies: - undici-types: 7.14.0 + undici-types: 7.16.0 '@types/react@19.1.9': dependencies: @@ -2472,25 +2145,16 @@ snapshots: '@types/resolve@1.20.2': {} - '@types/send@0.17.4': + '@types/send@1.2.1': dependencies: - '@types/mime': 1.3.5 - '@types/node': 22.15.29 + '@types/node': 24.10.0 '@types/ws@8.18.1': dependencies: - '@types/node': 22.15.29 - - abort-controller@3.0.0: - dependencies: - event-target-shim: 5.0.1 + '@types/node': 24.10.0 agent-base@7.1.3: {} - agentkeepalive@4.6.0: - dependencies: - humanize-ms: 1.2.1 - amp-message@0.1.2: dependencies: amp: 0.3.1 @@ -2499,18 +2163,12 @@ snapshots: ansi-colors@4.1.3: {} - ansi-escapes@4.3.2: - dependencies: - type-fest: 0.21.3 - ansi-regex@5.0.1: {} ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 - ansis@4.0.0: {} - ansis@4.0.0-node10: {} anymatch@3.1.3: @@ -2536,8 +2194,6 @@ snapshots: binary-extensions@2.3.0: {} - blessed@0.1.81: {} - bodec@0.1.0: {} braces@3.0.3: @@ -2548,13 +2204,9 @@ snapshots: buffer-from@1.1.2: {} - bun-types@1.2.15: + bun-types@1.3.2(@types/react@19.1.9): dependencies: - '@types/node': 22.15.29 - - bun-types@1.3.0(@types/react@19.1.9): - dependencies: - '@types/node': 24.7.2 + '@types/node': 24.10.0 '@types/react': 19.1.9 call-bind-apply-helpers@1.0.2: @@ -2567,13 +2219,9 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.4.1: {} - chalk@5.6.2: {} - chardet@0.7.0: {} - - chardet@2.1.0: {} + chardet@2.1.1: {} charm@0.1.2: {} @@ -2589,6 +2237,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + chownr@3.0.0: {} cli-tableau@2.0.1: @@ -2607,14 +2259,14 @@ snapshots: dependencies: delayed-stream: 1.0.0 - commander@14.0.0: {} - - commander@14.0.1: {} + commander@14.0.2: {} commander@2.15.1: {} commondir@1.0.1: {} + cookie-es@1.2.2: {} + croner@4.1.97: {} cross-env@10.1.0: @@ -2622,22 +2274,16 @@ snapshots: '@epic-web/invariant': 1.0.0 cross-spawn: 7.0.6 - cross-env@7.0.3: - dependencies: - cross-spawn: 7.0.3 - - cross-spawn@7.0.3: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 + crossws@0.3.5: + dependencies: + uncrypto: 0.1.3 + crypto-js@4.2.0: {} csstype@3.1.3: {} @@ -2646,38 +2292,40 @@ snapshots: data-uri-to-buffer@6.0.2: {} - dayjs@1.11.13: {} - dayjs@1.11.15: {} + dayjs@1.11.19: {} + dayjs@1.8.36: {} - debug@3.2.7(supports-color@10.0.0): + debug@3.2.7(supports-color@10.2.2): dependencies: ms: 2.1.3 optionalDependencies: - supports-color: 10.0.0 + supports-color: 10.2.2 - debug@4.3.7(supports-color@10.0.0): + debug@4.3.7(supports-color@10.2.2): dependencies: ms: 2.1.3 optionalDependencies: - supports-color: 10.0.0 + supports-color: 10.2.2 - debug@4.4.0(supports-color@10.0.0): + debug@4.4.0(supports-color@10.2.2): dependencies: ms: 2.1.3 optionalDependencies: - supports-color: 10.0.0 + supports-color: 10.2.2 - debug@4.4.3(supports-color@10.0.0): + debug@4.4.3(supports-color@10.2.2): dependencies: ms: 2.1.3 optionalDependencies: - supports-color: 10.0.0 + supports-color: 10.2.2 deepmerge@4.3.1: {} + defu@6.1.4: {} + degenerator@5.0.1: dependencies: ast-types: 0.13.4 @@ -2688,8 +2336,12 @@ snapshots: depd@2.0.0: {} + destr@2.0.5: {} + dotenv@16.5.0: {} + dotenv@17.2.3: {} + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -2706,11 +2358,6 @@ snapshots: encodeurl@2.0.0: {} - encoding@0.1.13: - dependencies: - iconv-lite: 0.6.3 - optional: true - enquirer@2.3.6: dependencies: ansi-colors: 4.1.3 @@ -2752,23 +2399,15 @@ snapshots: etag@1.8.1: {} - event-target-shim@5.0.1: {} - eventemitter2@5.0.1: {} eventemitter2@6.4.9: {} eventemitter3@5.0.1: {} - external-editor@3.1.0: + extrareqp2@1.0.0(debug@4.3.7(supports-color@10.2.2)): dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - - extrareqp2@1.0.0(debug@4.3.7(supports-color@10.0.0)): - dependencies: - follow-redirects: 1.15.9(debug@4.3.7(supports-color@10.0.0)) + follow-redirects: 1.15.9(debug@4.3.7(supports-color@10.2.2)) transitivePeerDependencies: - debug @@ -2798,11 +2437,9 @@ snapshots: dependencies: to-regex-range: 5.0.1 - follow-redirects@1.15.9(debug@4.3.7(supports-color@10.0.0)): + follow-redirects@1.15.9(debug@4.3.7(supports-color@10.2.2)): optionalDependencies: - debug: 4.3.7(supports-color@10.0.0) - - form-data-encoder@1.7.2: {} + debug: 4.3.7(supports-color@10.2.2) form-data@4.0.4: dependencies: @@ -2812,11 +2449,6 @@ snapshots: hasown: 2.0.2 mime-types: 2.1.35 - formdata-node@4.4.1: - dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 4.0.0-beta.3 - fresh@2.0.0: {} fsevents@2.3.3: @@ -2844,11 +2476,11 @@ snapshots: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 - get-uri@6.0.4(supports-color@10.0.0): + get-uri@6.0.4(supports-color@10.2.2): dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 - debug: 4.4.3(supports-color@10.0.0) + debug: 4.4.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -2864,6 +2496,18 @@ snapshots: gopd@1.2.0: {} + h3@1.15.4: + dependencies: + cookie-es: 1.2.2 + crossws: 0.3.5 + defu: 6.1.4 + destr: 2.0.5 + iron-webcrypto: 1.2.1 + node-mock-http: 1.0.3 + radix3: 1.1.2 + ufo: 1.6.1 + uncrypto: 0.1.3 + has-flag@4.0.0: {} has-symbols@1.1.0: {} @@ -2884,33 +2528,24 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 - http-proxy-agent@7.0.2(supports-color@10.0.0): + http-proxy-agent@7.0.2(supports-color@10.2.2): dependencies: agent-base: 7.1.3 - debug: 4.4.3(supports-color@10.0.0) + debug: 4.4.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color - https-proxy-agent@7.0.6(supports-color@10.0.0): + https-proxy-agent@7.0.6(supports-color@10.2.2): dependencies: agent-base: 7.1.3 - debug: 4.4.3(supports-color@10.0.0) + debug: 4.4.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color - humanize-ms@1.2.1: - dependencies: - ms: 2.1.3 - iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 - iconv-lite@0.6.3: - dependencies: - safer-buffer: 2.1.2 - optional: true - iconv-lite@0.7.0: dependencies: safer-buffer: 2.1.2 @@ -2923,35 +2558,25 @@ snapshots: ini@1.3.8: {} - inquirer@12.6.3(@types/node@22.15.29): + inquirer@12.11.0(@types/node@24.10.0): dependencies: - '@inquirer/core': 10.1.13(@types/node@22.15.29) - '@inquirer/prompts': 7.5.3(@types/node@22.15.29) - '@inquirer/type': 3.0.7(@types/node@22.15.29) - ansi-escapes: 4.3.2 - mute-stream: 2.0.0 - run-async: 3.0.0 + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.1(@types/node@24.10.0) + '@inquirer/prompts': 7.10.0(@types/node@24.10.0) + '@inquirer/type': 3.0.10(@types/node@24.10.0) + mute-stream: 3.0.0 + run-async: 4.0.6 rxjs: 7.8.2 optionalDependencies: - '@types/node': 22.15.29 - - inquirer@12.9.6(@types/node@24.7.2): - dependencies: - '@inquirer/ansi': 1.0.0 - '@inquirer/core': 10.2.2(@types/node@24.7.2) - '@inquirer/prompts': 7.8.6(@types/node@24.7.2) - '@inquirer/type': 3.0.8(@types/node@24.7.2) - mute-stream: 2.0.0 - run-async: 4.0.5 - rxjs: 7.8.2 - optionalDependencies: - '@types/node': 24.7.2 + '@types/node': 24.10.0 ip-address@9.0.5: dependencies: jsbn: 1.1.0 sprintf-js: 1.1.3 + iron-webcrypto@1.2.1: {} + is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 @@ -3043,6 +2668,10 @@ snapshots: dependencies: steno: 4.0.2 + lru-cache@10.4.3: {} + + lru-cache@11.2.2: {} + lru-cache@6.0.0: dependencies: yallist: 4.0.0 @@ -3088,13 +2717,13 @@ snapshots: mute-stream@0.0.8: {} - mute-stream@2.0.0: {} + mute-stream@3.0.0: {} - nanoid@5.1.5: {} + nanoid@5.1.6: {} - needle@2.4.0(supports-color@10.0.0): + needle@2.4.0(supports-color@10.2.2): dependencies: - debug: 3.2.7(supports-color@10.0.0) + debug: 3.2.7(supports-color@10.2.2) iconv-lite: 0.4.24 sax: 1.4.1 transitivePeerDependencies: @@ -3102,52 +2731,42 @@ snapshots: netmask@2.0.2: {} - node-domexception@1.0.0: {} - - node-fetch@2.7.0(encoding@0.1.13): - dependencies: - whatwg-url: 5.0.0 - optionalDependencies: - encoding: 0.1.13 + node-fetch-native@1.6.7: {} node-forge@1.3.1: {} + node-mock-http@1.0.3: {} + normalize-path@3.0.0: {} + ofetch@1.5.1: + dependencies: + destr: 2.0.5 + node-fetch-native: 1.6.7 + ufo: 1.6.1 + on-finished@2.4.1: dependencies: ee-first: 1.1.1 - openai@4.100.0(@kevisual/ws@8.0.0)(encoding@0.1.13): - dependencies: - '@types/node': 18.19.80 - '@types/node-fetch': 2.6.12 - abort-controller: 3.0.0 - agentkeepalive: 4.6.0 - form-data-encoder: 1.7.2 - formdata-node: 4.4.1 - node-fetch: 2.7.0(encoding@0.1.13) + openai@5.5.1(@kevisual/ws@8.0.0): optionalDependencies: ws: '@kevisual/ws@8.0.0' - transitivePeerDependencies: - - encoding openai@5.5.1(ws@8.18.0): optionalDependencies: ws: 8.18.0 - os-tmpdir@1.0.2: {} - - pac-proxy-agent@7.2.0(supports-color@10.0.0): + pac-proxy-agent@7.2.0(supports-color@10.2.2): dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.3 - debug: 4.4.3(supports-color@10.0.0) - get-uri: 6.0.4(supports-color@10.0.0) - http-proxy-agent: 7.0.2(supports-color@10.0.0) - https-proxy-agent: 7.0.6(supports-color@10.0.0) + debug: 4.4.3(supports-color@10.2.2) + get-uri: 6.0.4(supports-color@10.2.2) + http-proxy-agent: 7.0.2(supports-color@10.2.2) + https-proxy-agent: 7.0.6(supports-color@10.2.2) pac-resolver: 7.0.1 - socks-proxy-agent: 8.0.5(supports-color@10.0.0) + socks-proxy-agent: 8.0.5(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -3162,7 +2781,7 @@ snapshots: path-parse@1.0.7: {} - path-to-regexp@8.2.0: {} + path-to-regexp@8.3.0: {} picocolors@1.1.1: optional: true @@ -3180,17 +2799,17 @@ snapshots: dependencies: safe-buffer: 5.2.1 - pm2-axon-rpc@0.7.1(supports-color@10.0.0): + pm2-axon-rpc@0.7.1(supports-color@10.2.2): dependencies: - debug: 4.4.0(supports-color@10.0.0) + debug: 4.4.0(supports-color@10.2.2) transitivePeerDependencies: - supports-color - pm2-axon@4.0.1(supports-color@10.0.0): + pm2-axon@4.0.1(supports-color@10.2.2): dependencies: amp: 0.3.1 amp-message: 0.1.2 - debug: 4.4.0(supports-color@10.0.0) + debug: 4.4.0(supports-color@10.2.2) escape-string-regexp: 4.0.0 transitivePeerDependencies: - supports-color @@ -3204,10 +2823,10 @@ snapshots: dependencies: charm: 0.1.2 - pm2-sysmonit@1.2.8(supports-color@10.0.0): + pm2-sysmonit@1.2.8(supports-color@10.2.2): dependencies: async: 3.2.6 - debug: 4.4.0(supports-color@10.0.0) + debug: 4.4.0(supports-color@10.2.2) pidusage: 2.0.21 systeminformation: 5.25.11 tx2: 1.0.5 @@ -3215,13 +2834,13 @@ snapshots: - supports-color optional: true - pm2@6.0.13(supports-color@10.0.0): + pm2@6.0.13(supports-color@10.2.2): dependencies: - '@pm2/agent': 2.1.1(supports-color@10.0.0) + '@pm2/agent': 2.1.1(supports-color@10.2.2) '@pm2/blessed': 0.1.81 - '@pm2/io': 6.1.0(supports-color@10.0.0) - '@pm2/js-api': 0.8.0(supports-color@10.0.0) - '@pm2/pm2-version-check': 1.0.4(supports-color@10.0.0) + '@pm2/io': 6.1.0(supports-color@10.2.2) + '@pm2/js-api': 0.8.0(supports-color@10.2.2) + '@pm2/pm2-version-check': 1.0.4(supports-color@10.2.2) ansis: 4.0.0-node10 async: 3.2.6 chokidar: 3.6.0 @@ -3229,16 +2848,16 @@ snapshots: commander: 2.15.1 croner: 4.1.97 dayjs: 1.11.15 - debug: 4.4.3(supports-color@10.0.0) + debug: 4.4.3(supports-color@10.2.2) enquirer: 2.3.6 eventemitter2: 5.0.1 fclone: 1.0.11 js-yaml: 4.1.0 mkdirp: 1.0.4 - needle: 2.4.0(supports-color@10.0.0) + needle: 2.4.0(supports-color@10.2.2) pidusage: 3.0.2 - pm2-axon: 4.0.1(supports-color@10.0.0) - pm2-axon-rpc: 0.7.1(supports-color@10.0.0) + pm2-axon: 4.0.1(supports-color@10.2.2) + pm2-axon-rpc: 0.7.1(supports-color@10.2.2) pm2-deploy: 1.0.2 pm2-multimeter: 0.1.2 promptly: 2.2.0 @@ -3247,45 +2866,7 @@ snapshots: sprintf-js: 1.1.2 vizion: 2.2.1 optionalDependencies: - pm2-sysmonit: 1.2.8(supports-color@10.0.0) - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - pm2@6.0.6(supports-color@10.0.0): - dependencies: - '@pm2/agent': 2.1.1(supports-color@10.0.0) - '@pm2/io': 6.1.0(supports-color@10.0.0) - '@pm2/js-api': 0.8.0(supports-color@10.0.0) - '@pm2/pm2-version-check': 1.0.4(supports-color@10.0.0) - ansis: 4.0.0 - async: 3.2.6 - blessed: 0.1.81 - chokidar: 3.6.0 - cli-tableau: 2.0.1 - commander: 2.15.1 - croner: 4.1.97 - dayjs: 1.11.13 - debug: 4.4.0(supports-color@10.0.0) - enquirer: 2.3.6 - eventemitter2: 5.0.1 - fclone: 1.0.11 - js-yaml: 4.1.0 - mkdirp: 1.0.4 - needle: 2.4.0(supports-color@10.0.0) - pidusage: 3.0.2 - pm2-axon: 4.0.1(supports-color@10.0.0) - pm2-axon-rpc: 0.7.1(supports-color@10.0.0) - pm2-deploy: 1.0.2 - pm2-multimeter: 0.1.2 - promptly: 2.2.0 - semver: 7.6.3 - source-map-support: 0.5.21 - sprintf-js: 1.1.2 - vizion: 2.2.1 - optionalDependencies: - pm2-sysmonit: 1.2.8(supports-color@10.0.0) + pm2-sysmonit: 1.2.8(supports-color@10.2.2) transitivePeerDependencies: - bufferutil - supports-color @@ -3295,16 +2876,16 @@ snapshots: dependencies: read: 1.0.7 - proxy-agent@6.4.0(supports-color@10.0.0): + proxy-agent@6.4.0(supports-color@10.2.2): dependencies: agent-base: 7.1.3 - debug: 4.4.0(supports-color@10.0.0) - http-proxy-agent: 7.0.2(supports-color@10.0.0) - https-proxy-agent: 7.0.6(supports-color@10.0.0) + debug: 4.4.0(supports-color@10.2.2) + http-proxy-agent: 7.0.2(supports-color@10.2.2) + https-proxy-agent: 7.0.6(supports-color@10.2.2) lru-cache: 7.18.3 - pac-proxy-agent: 7.2.0(supports-color@10.0.0) + pac-proxy-agent: 7.2.0(supports-color@10.2.2) proxy-from-env: 1.1.0 - socks-proxy-agent: 8.0.5(supports-color@10.0.0) + socks-proxy-agent: 8.0.5(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -3312,6 +2893,8 @@ snapshots: queue-microtask@1.2.3: {} + radix3@1.1.2: {} + range-parser@1.2.1: {} read@1.0.7: @@ -3322,9 +2905,11 @@ snapshots: dependencies: picomatch: 2.3.1 - require-in-the-middle@5.2.0(supports-color@10.0.0): + readdirp@4.1.2: {} + + require-in-the-middle@5.2.0(supports-color@10.2.2): dependencies: - debug: 4.4.0(supports-color@10.0.0) + debug: 4.4.0(supports-color@10.2.2) module-details-from-path: 1.0.3 resolve: 1.22.8 transitivePeerDependencies: @@ -3372,9 +2957,7 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.43.0 fsevents: 2.3.3 - run-async@3.0.0: {} - - run-async@4.0.5: {} + run-async@4.0.6: {} run-parallel@1.2.0: dependencies: @@ -3392,9 +2975,8 @@ snapshots: sax@1.4.1: {} - selfsigned@2.4.1: + selfsigned@3.0.1: dependencies: - '@types/node-forge': 1.3.11 node-forge: 1.3.1 semver@7.5.4: @@ -3405,9 +2987,9 @@ snapshots: semver@7.7.2: {} - send@1.2.0(supports-color@10.0.0): + send@1.2.0(supports-color@10.2.2): dependencies: - debug: 4.4.0(supports-color@10.0.0) + debug: 4.4.0(supports-color@10.2.2) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -3437,10 +3019,10 @@ snapshots: smart-buffer@4.2.0: {} - socks-proxy-agent@8.0.5(supports-color@10.0.0): + socks-proxy-agent@8.0.5(supports-color@10.2.2): dependencies: agent-base: 7.1.3 - debug: 4.4.3(supports-color@10.0.0) + debug: 4.4.3(supports-color@10.2.2) socks: 2.8.4 transitivePeerDependencies: - supports-color @@ -3475,7 +3057,7 @@ snapshots: dependencies: ansi-regex: 5.0.1 - supports-color@10.0.0: {} + supports-color@10.2.2: {} supports-color@7.2.0: dependencies: @@ -3486,7 +3068,7 @@ snapshots: systeminformation@5.25.11: optional: true - tar@7.5.1: + tar@7.5.2: dependencies: '@isaacs/fs-minipass': 4.0.1 chownr: 3.0.0 @@ -3494,18 +3076,12 @@ snapshots: minizlib: 3.1.0 yallist: 5.0.0 - tmp@0.0.33: - dependencies: - os-tmpdir: 1.0.2 - to-regex-range@5.0.1: dependencies: is-number: 7.0.0 toidentifier@1.0.1: {} - tr46@0.0.3: {} - tslib@1.9.3: {} tslib@2.8.1: {} @@ -3517,15 +3093,26 @@ snapshots: json-stringify-safe: 5.0.1 optional: true - type-fest@0.21.3: {} - typescript@5.8.2: {} - undici-types@5.26.5: {} + ufo@1.6.1: {} - undici-types@6.21.0: {} + uncrypto@0.1.3: {} - undici-types@7.14.0: {} + undici-types@7.16.0: {} + + unstorage@1.17.2(idb-keyval@6.2.1): + dependencies: + anymatch: 3.1.3 + chokidar: 4.0.3 + destr: 2.0.5 + h3: 1.15.4 + lru-cache: 10.4.3 + node-fetch-native: 1.6.7 + ofetch: 1.5.1 + ufo: 1.6.1 + optionalDependencies: + idb-keyval: 6.2.1 vizion@2.2.1: dependencies: @@ -3534,15 +3121,6 @@ snapshots: ini: 1.3.8 js-git: 0.7.8 - web-streams-polyfill@4.0.0-beta.3: {} - - webidl-conversions@3.0.1: {} - - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - which@2.0.2: dependencies: isexe: 2.0.0 @@ -3562,7 +3140,7 @@ snapshots: yallist@5.0.0: {} - yoctocolors-cjs@2.1.2: {} + yoctocolors-cjs@2.1.3: {} zustand@5.0.8(@types/react@19.1.9): optionalDependencies: diff --git a/src/command/app/front-app/index.ts b/src/command/app/front-app/index.ts index 1828acc..951ea51 100644 --- a/src/command/app/front-app/index.ts +++ b/src/command/app/front-app/index.ts @@ -32,7 +32,6 @@ const downloadAppCommand = new Command('download') .description('下载 app serve client的包. \napp download -i root/code-center') .option('-i, --id ', '下载 app serve client的包, id 或者user/key') .option('-o, --output ', '下载 app serve client的包, 输出路径, 默认是当前目录') - .option('-t, --type ', '下载 app serve client的包, 类型, app,或者web, 默认为web') .option('-r, --registry ', '下载 app serve client的包, 使用私有源') .option('-f, --force ', '强制覆盖') .option('-y, --yes ', '覆盖的时候不提示') @@ -71,16 +70,9 @@ const downloadAppCommand = new Command('download') console.log('registry', registry, data, options.type); if (res.code === 200) { const app = res.data; - let appType: 'app' | 'web' = 'web'; - if (options.type === 'app') { - appType = 'app'; - } else if (options.type === 'web') { - appType = 'web'; - } const result = await installApp(app, { appDir: output, kevisualUrl: registry, - appType: appType, force: options.force, yes: options.yes, }); @@ -98,7 +90,6 @@ const uninstallAppCommand = new Command('uninstall') .alias('remove') .description('卸载 app serve client的包。 手动删除更简单。') .option('-i, --id ', 'user/key') - .option('-t, --type ', 'app,或者web, 默认为web', 'web') .option('-p, --path ', '删除的路径, 如果存在,则优先执行,不会去判断 id 和 type 。') .action(async (options) => { if (options.path) { diff --git a/src/module/download/install.ts b/src/module/download/install.ts index 8223543..a884b54 100644 --- a/src/module/download/install.ts +++ b/src/module/download/install.ts @@ -121,14 +121,6 @@ export const rewritePkg = (packagePath: string, pkg: Package) => { type InstallAppOpts = { appDir?: string; kevisualUrl?: string; - /** - * 是否是客户端, 下载到 assistant-config的下面 - */ - isClient?: boolean; - /** - * 是否是web, 下载到 web-config的下面 - */ - appType?: 'app' | 'web'; /** * 是否强制覆盖, 下载前删除已有的 */ @@ -137,16 +129,16 @@ type InstallAppOpts = { }; export const installApp = async (app: Package, opts: InstallAppOpts = {}) => { // const _app = demoData; - const { appDir = '', kevisualUrl = 'https://kevisual.cn', isClient = false, appType = 'web' } = opts; + const { appDir = '', kevisualUrl = 'https://kevisual.cn', } = opts; const _app = app; try { let files = _app.data.files || []; const version = _app.version; const user = _app.user; const key = _app.key; - const downloadDirPath = appType === 'web' ? path.join(appDir, user, key) : path.join(appDir); + const downloadDirPath = path.join(appDir, user, key); await checkDelete({ force: opts?.force, yes: opts?.yes, dir: downloadDirPath }); - const packagePath = path.join(appDir, appType === 'app' ? 'package.json' : `${user}/${key}/package.json`); + const packagePath = path.join(appDir, `${user}/${key}/package.json`); const downFiles = files .filter((file: any) => file?.path) .map((file: any) => { @@ -154,9 +146,6 @@ export const installApp = async (app: Package, opts: InstallAppOpts = {}) => { const noVersionPath = file.path.replace(`/${version}`, ''); let downloadPath = noVersionPath; let downloadUrl = ''; - if (appType === 'app') { - downloadPath = noVersionPath.replace(`${user}/${key}/`, ''); - } if (file.path.startsWith('http')) { downloadUrl = file.path; } else { @@ -178,7 +167,7 @@ export const installApp = async (app: Package, opts: InstallAppOpts = {}) => { if (!fs.existsSync(dir)) { fs.mkdirSync(dir, { recursive: true }); } - console.log('downloadUrwl', downloadUrl); + console.log('downloadUrl', downloadUrl); const { blob, type } = await fetchLink(downloadUrl); if (type.includes('text/html')) { const html = await blob.text(); @@ -222,7 +211,7 @@ export const checkAppDir = (appDir: string) => { if (files.length === 0) { fs.rmSync(appDir, { recursive: true }); } - } catch (error) {} + } catch (error) { } }; export const checkFileExists = (path: string) => { try { @@ -237,7 +226,7 @@ type UninstallAppOpts = { type?: 'app' | 'web'; }; export const uninstallApp = async (app: Partial, opts: UninstallAppOpts = {}) => { - const { appDir = '', type = 'web' } = opts; + const { appDir = '' } = opts; try { const { user, key } = app; const keyDir = path.join(appDir, user, key); @@ -254,7 +243,7 @@ export const uninstallApp = async (app: Partial, opts: UninstallAppOpts } catch (error) { console.error(error); } - type === 'web' && checkAppDir(parentDir); + checkAppDir(parentDir); return { code: 200, message: 'Uninstall app success',