diff --git a/packages/devtools-kit/src/types/index.ts b/packages/devtools-kit/src/types/index.ts index 0683fae..884f23e 100644 --- a/packages/devtools-kit/src/types/index.ts +++ b/packages/devtools-kit/src/types/index.ts @@ -2,4 +2,5 @@ import './extend' export * from './rpc' export * from './utils' +export * from './views' export * from './vite' diff --git a/packages/devtools-kit/src/types/rpc.ts b/packages/devtools-kit/src/types/rpc.ts index 890d54a..d50f65e 100644 --- a/packages/devtools-kit/src/types/rpc.ts +++ b/packages/devtools-kit/src/types/rpc.ts @@ -1,5 +1,10 @@ import type { EntriesToObject, Thenable } from './utils' +/** + * To be extended + */ +export interface ViteDevtoolsRpcFunctions {} + /** * Type of the RPC function, * - static: A function that returns a static data (can be cached and dumped) @@ -8,6 +13,12 @@ import type { EntriesToObject, Thenable } from './utils' */ export type RpcFunctionType = 'static' | 'action' | 'query' +export interface RpcFunctionsHost { + readonly functions: ViteDevtoolsRpcFunctions + readonly definitions: Map> + register: (fn: RpcFunctionDefinition) => void +} + export interface RpcFunctionSetupResult< ARGS extends any[], RETURN = void, @@ -18,7 +29,7 @@ export interface RpcFunctionSetupResult< export interface RpcFunctionDefinition< NAME extends string, TYPE extends RpcFunctionType, - ARGS extends any[], + ARGS extends any[] = [], RETURN = void, > { name: NAME @@ -31,6 +42,7 @@ export interface RpcFunctionDefinition< export interface RpcContext { cwd: string mode: 'dev' | 'build' + functions: RpcFunctionsHost meta?: any } diff --git a/packages/devtools-kit/src/types/views.ts b/packages/devtools-kit/src/types/views.ts new file mode 100644 index 0000000..563e134 --- /dev/null +++ b/packages/devtools-kit/src/types/views.ts @@ -0,0 +1,29 @@ +export interface DevtoolsViewHost { + register: (view: DevtoolsViewTab) => void +} + +export interface DevtoolsViewTab { + name: string + icon: string + viewId: string + view: DevtoolsViewMeta +} + +export interface DevtoolsViewIframe { + type: 'iframe' + url: string + /** + * The id of the iframe, if multiple tabs is assigned with the same id, the iframe will be shared. + * + * When not provided, it would be treated as a unique frame. + */ + frameId?: string +} + +export interface DevtoolsViewWebComponent { + type: 'webcomponent' + from: string + import: string +} + +export type DevtoolsViewMeta = DevtoolsViewIframe | DevtoolsViewWebComponent diff --git a/packages/devtools-kit/src/types/vite.ts b/packages/devtools-kit/src/types/vite.ts index b934db6..91c0357 100644 --- a/packages/devtools-kit/src/types/vite.ts +++ b/packages/devtools-kit/src/types/vite.ts @@ -1,9 +1,20 @@ -import type { RpcContext } from './rpc' +import type { ResolvedConfig } from 'vite' +import type { RpcFunctionsHost } from './rpc' +import type { DevtoolsViewHost } from './views' export interface DevToolsPluginOptions { - setup: () => void | Promise + setup: (context: DevToolsSetupContext) => void | Promise } export interface DevToolsSetupContext { - rpc: RpcContext + readonly cwd: string + readonly mode: 'dev' | 'build' + readonly viteConfig: ResolvedConfig + rpc: RpcFunctionsHost + views: DevtoolsViewHost +} + +export interface ConnectionMeta { + backend: 'websocket' | 'static' + websocket?: number | string } diff --git a/packages/devtools-vite/src/modules/rpc/runtime/plugin.ts b/packages/devtools-vite/src/modules/rpc/runtime/plugin.ts index 3bd20c2..8d85b7d 100644 --- a/packages/devtools-vite/src/modules/rpc/runtime/plugin.ts +++ b/packages/devtools-vite/src/modules/rpc/runtime/plugin.ts @@ -1,6 +1,7 @@ +import type { ConnectionMeta } from '@vitejs/devtools-kit' import type { BirpcReturn } from 'birpc' import type { ServerFunctions } from '../../../node/rpc' -import type { ClientFunctions, ConnectionMeta } from '../../../shared/types' +import type { ClientFunctions } from '../../../shared/types' import { defineNuxtPlugin } from '#app' import { useRuntimeConfig } from '#app/nuxt' import { createRpcClient as _createRpcClient } from '@vitejs/devtools-rpc' diff --git a/packages/devtools-vite/src/node/ws.ts b/packages/devtools-vite/src/node/ws.ts index fbb0a24..0436b74 100644 --- a/packages/devtools-vite/src/node/ws.ts +++ b/packages/devtools-vite/src/node/ws.ts @@ -1,5 +1,5 @@ +import type { ConnectionMeta } from '@vitejs/devtools-kit' import type { WebSocket } from 'ws' -import type { ConnectionMeta } from '../shared/types' import type { CreateServerFunctionsOptions } from './functions' import type { ServerFunctions } from './rpc' import { createRpcServer } from '@vitejs/devtools-rpc' diff --git a/packages/devtools-vite/src/plugin.ts b/packages/devtools-vite/src/plugin.ts new file mode 100644 index 0000000..3466275 --- /dev/null +++ b/packages/devtools-vite/src/plugin.ts @@ -0,0 +1,21 @@ +import type { Plugin } from 'vite' +import '@vitejs/devtools-kit' + +export function DevToolsVite(): Plugin { + return { + name: 'vite:devtools', + devtools: { + setup(ctx) { + ctx.views.register({ + name: 'Vite', + icon: 'vite', + viewId: 'vite', + view: { + type: 'iframe', + url: 'http://localhost:3000', + }, + }) + }, + }, + } +} diff --git a/packages/devtools-vite/src/shared/types/vite.ts b/packages/devtools-vite/src/shared/types/vite.ts index 83f5c2b..d5771e4 100644 --- a/packages/devtools-vite/src/shared/types/vite.ts +++ b/packages/devtools-vite/src/shared/types/vite.ts @@ -28,8 +28,3 @@ export interface ViteDevToolsConfig { export type RemoveVoidKeysFromObject = { [K in keyof T]: T[K] extends void ? never : K } extends { [_ in keyof T]: never } ? T : { [K in keyof T as T[K] extends void ? never : K]: T[K] } export interface ClientFunctions {} - -export interface ConnectionMeta { - backend: 'websocket' | 'static' - websocket?: number | string -} diff --git a/packages/devtools/bin.mjs b/packages/devtools/bin.mjs new file mode 100755 index 0000000..8b4bc90 --- /dev/null +++ b/packages/devtools/bin.mjs @@ -0,0 +1,4 @@ +#!/usr/bin/env node + +// eslint-disable-next-line antfu/no-top-level-await +await import('./dist/cli.mjs') diff --git a/packages/devtools/package.json b/packages/devtools/package.json index 9233941..0ec62c4 100644 --- a/packages/devtools/package.json +++ b/packages/devtools/package.json @@ -23,6 +23,9 @@ }, "main": "./dist/index.mjs", "types": "./dist/index.d.mts", + "bin": { + "vite-devtools": "./dist/cli.mjs" + }, "files": [ "dist" ], @@ -36,7 +39,8 @@ }, "dependencies": { "@vitejs/devtools-kit": "workspace:*", - "@vitejs/devtools-rpc": "workspace:*" + "@vitejs/devtools-rpc": "workspace:*", + "ws": "catalog:deps" }, "devDependencies": { "tsdown": "catalog:build" diff --git a/packages/devtools/src/cli.ts b/packages/devtools/src/cli.ts new file mode 100644 index 0000000..b874c50 --- /dev/null +++ b/packages/devtools/src/cli.ts @@ -0,0 +1 @@ +export * from './node/cli' diff --git a/packages/devtools/src/dirs.ts b/packages/devtools/src/dirs.ts new file mode 100644 index 0000000..4258d9c --- /dev/null +++ b/packages/devtools/src/dirs.ts @@ -0,0 +1,3 @@ +import { fileURLToPath } from 'node:url' + +export const distDir: string = fileURLToPath(new URL('../dist/public', import.meta.url)) diff --git a/packages/devtools/src/index.ts b/packages/devtools/src/index.ts index b0b75bd..08b2f47 100644 --- a/packages/devtools/src/index.ts +++ b/packages/devtools/src/index.ts @@ -1,11 +1,13 @@ import type { Plugin } from 'vite' +import { startStandaloneServer } from './node/server' import '@vitejs/devtools-kit' export function ViteDevTools(): Plugin { return { name: 'vite:devtools', enforce: 'post', - configureServer(_server) { + configureServer(server) { + startStandaloneServer(server.config) // console.log(server) }, } diff --git a/packages/devtools/src/node/cli.ts b/packages/devtools/src/node/cli.ts new file mode 100644 index 0000000..2bf5805 --- /dev/null +++ b/packages/devtools/src/node/cli.ts @@ -0,0 +1,125 @@ +import process from 'node:process' +import c from 'ansis' +import cac from 'cac' +import { getPort } from 'get-port-please' +import open from 'open' +import { MARK_NODE } from './constants' +import { startStandaloneServer } from './server' +import { startStandaloneDevTools } from './standalone' + +const cli = cac('vite-devtools') + +cli + .command('build', 'Build devtools with current config file for static hosting') + .option('--root ', 'Root directory', { default: process.cwd() }) + .option('--config ', 'Config file') + .option('--depth ', 'Max depth to list dependencies', { default: 8 }) + // Build specific options + .option('--base ', 'Base URL for deployment', { default: '/' }) + .option('--outDir ', 'Output directory', { default: '.vite-devtools' }) + // Action + .action(async (_options) => { + console.log(c.cyan`${MARK_NODE} Building static Vite DevTools...`) + + throw new Error('Not implemented') + + // const cwd = process.cwd() + // const outDir = resolve(cwd, options.outDir) + + // const rpc = await import('./functions') + // .then(async r => await r.createServerFunctions({ + // cwd, + // mode: 'build', + // // TODO: redesign how the manager is passed + // meta: { + // manager: new RolldownLogsManager(join(cwd, '.rolldown')), + // }, + // })) + // const rpcDump: ServerFunctionsDump = { + // 'vite:get-payload': await rpc['vite:get-payload'](), + // } + + // let baseURL = options.base + // if (!baseURL.endsWith('/')) + // baseURL += '/' + // if (!baseURL.startsWith('/')) + // baseURL = `/${baseURL}` + // baseURL = baseURL.replace(/\/+/g, '/') + + // if (existsSync(outDir)) + // await fs.rm(outDir, { recursive: true }) + // await fs.mkdir(outDir, { recursive: true }) + // await fs.cp(distDir, outDir, { recursive: true }) + // const htmlFiles = await glob('**/*.html', { cwd: distDir, onlyFiles: true, dot: true, expandDirectories: false }) + // // Rewrite HTML files with base URL + // if (baseURL !== '/') { + // for (const file of htmlFiles) { + // const content = await fs.readFile(resolve(distDir, file), 'utf-8') + // const newContent = content + // .replaceAll(/\s(href|src)="\//g, ` $1="${baseURL}`) + // .replaceAll('baseURL:"/"', `baseURL:"${baseURL}"`) + // await fs.writeFile(resolve(outDir, file), newContent, 'utf-8') + // } + // } + + // await fs.mkdir(resolve(outDir, 'api'), { recursive: true }) + // await fs.writeFile(resolve(outDir, 'api/metadata.json'), JSON.stringify({ backend: 'static' }, null, 2), 'utf-8') + // await fs.writeFile(resolve(outDir, 'api/rpc-dump.json'), stringify(rpcDump), 'utf-8') + + // console.log(c.green`${MARK_CHECK} Built to ${relative(cwd, outDir)}`) + // console.log(c.blue`${MARK_NODE} You can use static server like \`npx serve ${relative(cwd, outDir)}\` to serve the devtools`) + }) + +cli + .command('', 'Start devtools') + .option('--root ', 'Root directory', { default: process.cwd() }) + .option('--config ', 'Config file') + .option('--depth ', 'Max depth to list dependencies', { default: 8 }) + // Dev specific options + .option('--host ', 'Host', { default: process.env.HOST || '127.0.0.1' }) + .option('--port ', 'Port', { default: process.env.PORT || 9999 }) + .option('--open', 'Open browser', { default: true }) + // Action + .action(async (options) => { + const host = options.host + const port = await getPort({ port: options.port, portRange: [9999, 15000], host }) + + console.log(c.green`${MARK_NODE} Starting Vite DevTools at`, c.green(`http://${host === '127.0.0.1' ? 'localhost' : host}:${port}`), '\n') + + const devtools = await startStandaloneDevTools() + + const { server } = await startStandaloneServer({ + cwd: devtools.config.root, + port, + context: devtools.context, + functions: devtools.context.rpc, + }) + + server.listen(port, host, async () => { + console.log(c.green`${MARK_NODE} Vite DevTools started at`, c.green(`http://${host === '127.0.0.1' ? 'localhost' : host}:${port}`), '\n') + if (options.open) + await open(`http://${host === '127.0.0.1' ? 'localhost' : host}:${port}`) + }) + + // const { server, rpc } = await createHostServer({ + // cwd: options.root, + // mode: 'dev', + // // TODO: redesign how the manager is passed + // meta: { + // manager: new RolldownLogsManager(join(options.root, '.rolldown')), + // }, + // }) + + // // Warm up the payload + // setTimeout(() => { + // rpc.functions['vite:get-payload']() + // }, 1) + + // server.listen(port, host, async () => { + // if (options.open) + // await open(`http://${host === '127.0.0.1' ? 'localhost' : host}:${port}`) + // }) + }) + +cli.help() +cli.parse() diff --git a/packages/devtools/src/node/constants.ts b/packages/devtools/src/node/constants.ts new file mode 100644 index 0000000..1d31c72 --- /dev/null +++ b/packages/devtools/src/node/constants.ts @@ -0,0 +1,6 @@ +import c from 'ansis' + +export const MARK_CHECK: string = c.green('✔') +export const MARK_INFO: string = c.blue('ℹ') +export const MARK_ERROR: string = c.red('✖') +export const MARK_NODE: string = '⬢' diff --git a/packages/devtools/src/node/functions.ts b/packages/devtools/src/node/functions.ts new file mode 100644 index 0000000..cdc1b6c --- /dev/null +++ b/packages/devtools/src/node/functions.ts @@ -0,0 +1,19 @@ +import type { RpcFunctionDefinition, RpcFunctionsHost as RpcFunctionsHostType, ViteDevtoolsRpcFunctions } from '@vitejs/devtools-kit' + +export class RpcFunctionsHost implements RpcFunctionsHostType { + public readonly definitions: Map> = new Map() + + constructor() { + } + + register(fn: RpcFunctionDefinition): void { + this.definitions.set(fn.name, fn) + } + + get functions(): ViteDevtoolsRpcFunctions { + return Object.fromEntries( + Array.from(this.definitions.entries()) + .map(([name, fn]) => [name, fn.handler]), + ) as ViteDevtoolsRpcFunctions + } +} diff --git a/packages/devtools/src/node/index.ts b/packages/devtools/src/node/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/packages/devtools/src/node/server.ts b/packages/devtools/src/node/server.ts new file mode 100644 index 0000000..300915c --- /dev/null +++ b/packages/devtools/src/node/server.ts @@ -0,0 +1,94 @@ +import type { DevToolsSetupContext } from '@vitejs/devtools-kit' +import type { Buffer } from 'node:buffer' +import type { ResolvedConfig } from 'vite' +import type { CreateWsServerOptions } from './ws' +import { readFile, stat } from 'node:fs/promises' +import { createServer } from 'node:http' +import { createApp, eventHandler, serveStatic, toNodeListener } from 'h3' +import { lookup } from 'mrmime' +import { join } from 'pathe' +import { distDir } from '../dirs' +import { RpcFunctionsHost } from './functions' +import { DevtoolsViewHost } from './views' +import { createWsServer } from './ws' + +export async function resolveDevtoolsConfig(viteConfig: ResolvedConfig): Promise { + const cwd = viteConfig.root + + const context: DevToolsSetupContext = { + cwd, + viteConfig, + mode: viteConfig.command === 'serve' ? 'dev' : 'build', + rpc: new RpcFunctionsHost(), + views: new DevtoolsViewHost(), + } + + const plugins = viteConfig.plugins.filter(plugin => 'devtools' in plugin) + + for (const plugin of plugins) { + try { + await plugin.devtools?.setup?.(context) + } + catch (error) { + console.error(`[Vite DevTools] Error setting up plugin ${plugin.name}:`, error) + throw error + } + } + + return context +} + +export async function createDevtoolsMiddleware(options: CreateWsServerOptions) { + const app = createApp() + + const { rpc, getMetadata } = await createWsServer(options) + + const fileMap = new Map | undefined>>() + const readCachedFile = (id: string) => { + if (!fileMap.has(id)) + fileMap.set(id, readFile(id).catch(() => undefined)) + return fileMap.get(id) + } + + app.use('/api/metadata.json', eventHandler(async (event) => { + event.node.res.setHeader('Content-Type', 'application/json') + return event.node.res.end(JSON.stringify(await getMetadata())) + })) + + app.use('/', eventHandler(async (event) => { + const result = await serveStatic(event, { + fallthrough: true, + getContents: id => readCachedFile(join(distDir, id)), + getMeta: async (id) => { + const stats = await stat(join(distDir, id)).catch(() => {}) + if (!stats || !stats.isFile()) + return + return { + type: lookup(id), + size: stats.size, + mtime: stats.mtimeMs, + } + }, + }) + + if (result === false) + return readCachedFile(join(distDir, 'index.html')) + })) + + return { + middleware: toNodeListener(app), + rpc, + } +} + +export async function startStandaloneServer(options: CreateWsServerOptions) { + const { middleware, rpc } = await createDevtoolsMiddleware(options) + + const server = createServer(middleware) + + return { + server, + middleware, + rpc, + } +} diff --git a/packages/devtools/src/node/standalone.ts b/packages/devtools/src/node/standalone.ts new file mode 100644 index 0000000..a2f7b2b --- /dev/null +++ b/packages/devtools/src/node/standalone.ts @@ -0,0 +1,37 @@ +import type { DevToolsSetupContext } from '@vitejs/devtools-kit' +import type { ResolvedConfig } from 'vite' +import process from 'node:process' +import { loadConfigFromFile, resolveConfig } from 'vite' +import { resolveDevtoolsConfig } from './server' + +export interface StandaloneDevToolsOptions { + cwd?: string + port?: number +} + +export async function startStandaloneDevTools(options: StandaloneDevToolsOptions = {}): Promise<{ + config: ResolvedConfig + context: DevToolsSetupContext +}> { + const { + cwd = process.cwd(), + } = options + + const loaded = await loadConfigFromFile( + { + command: 'build', + mode: 'development', + }, + undefined, + cwd, + ) + + const resolved = await resolveConfig(loaded?.config || {}, 'build', 'development') + + const context = await resolveDevtoolsConfig(resolved) + + return { + config: resolved, + context, + } +} diff --git a/packages/devtools/src/node/views.ts b/packages/devtools/src/node/views.ts new file mode 100644 index 0000000..ab6a377 --- /dev/null +++ b/packages/devtools/src/node/views.ts @@ -0,0 +1,9 @@ +import type { DevtoolsViewHost as DevtoolsViewHostType, DevtoolsViewTab } from '@vitejs/devtools-kit' + +export class DevtoolsViewHost implements DevtoolsViewHostType { + constructor() { + } + + register(view: DevtoolsViewTab): void { + } +} diff --git a/packages/devtools/src/node/ws.ts b/packages/devtools/src/node/ws.ts new file mode 100644 index 0000000..d9bcb5e --- /dev/null +++ b/packages/devtools/src/node/ws.ts @@ -0,0 +1,63 @@ +import type { ConnectionMeta, DevToolsSetupContext } from '@vitejs/devtools-kit' +import type { ResolvedConfig } from 'vite' +import type { WebSocket } from 'ws' +import type { RpcFunctionsHost } from './functions' +import { createRpcServer } from '@vitejs/devtools-rpc' +import { createWsRpcPreset } from '@vitejs/devtools-rpc/presets/ws/server' +import c from 'ansis' +import { getPort } from 'get-port-please' +import { MARK_CHECK } from './constants' + +export interface CreateWsServerOptions { + cwd: string + port?: number + context: DevToolsSetupContext + functions: RpcFunctionsHost +} + +export async function createWsServer(options: CreateWsServerOptions) { + const functions = options.functions + const port = options.port ?? await getPort({ port: 7812, random: true }) + + const wsClients = new Set() + + const preset = createWsRpcPreset({ + port: port!, + onConnected: (ws) => { + wsClients.add(ws) + console.log(c.green`${MARK_CHECK} Websocket client connected`) + }, + onDisconnected: (ws) => { + wsClients.delete(ws) + console.log(c.red`${MARK_CHECK} Websocket client disconnected`) + }, + }) + + const rpc = createRpcServer( + options.functions.functions, + { + preset, + rpcOptions: { + onError(error, name) { + console.error(c.red`⬢ RPC error on executing "${c.bold(name)}":`) + console.error(error) + throw error + }, + }, + }, + ) + + const getMetadata = async (): Promise => { + return { + backend: 'websocket', + websocket: port, + } + } + + return { + port, + rpc, + functions, + getMetadata, + } +} diff --git a/packages/devtools/tsdown.config.ts b/packages/devtools/tsdown.config.ts index 294c115..7f0509e 100644 --- a/packages/devtools/tsdown.config.ts +++ b/packages/devtools/tsdown.config.ts @@ -3,6 +3,8 @@ import { defineConfig } from 'tsdown' export default defineConfig({ entry: [ 'src/index.ts', + 'src/cli.ts', + 'src/dirs.ts', ], clean: true, tsconfig: '../../tsconfig.pkgs.json', diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a8e1089..18590c9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -286,10 +286,10 @@ importers: version: 1.2.4 '@nuxt/devtools': specifier: ^2.6.2 - version: 2.6.2(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.18(typescript@5.9.2)) + version: 2.6.2(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.18(typescript@5.9.2)) '@nuxt/eslint': specifier: catalog:devtools - version: 1.8.0(@typescript-eslint/utils@8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(@vue/compiler-sfc@3.5.18)(eslint@9.33.0(jiti@2.5.1))(magicast@0.3.5)(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(typescript@5.9.2) + version: 1.8.0(@typescript-eslint/utils@8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(@vue/compiler-sfc@3.5.18)(eslint@9.33.0(jiti@2.5.1))(magicast@0.3.5)(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(typescript@5.9.2) '@types/chrome': specifier: catalog:types version: 0.1.3 @@ -328,13 +328,13 @@ importers: version: 16.1.5 nuxt: specifier: ^4.0.3 - version: 4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@24.0.7)(@vue/compiler-sfc@3.5.18)(db0@0.3.2)(eslint@9.33.0(jiti@2.5.1))(idb-keyval@6.2.2)(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.9.2)(vue-tsc@3.0.5(typescript@5.9.2))(yaml@2.8.1) + version: 4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@24.0.7)(@vue/compiler-sfc@3.5.18)(db0@0.3.2)(eslint@9.33.0(jiti@2.5.1))(idb-keyval@6.2.2)(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.9.2)(vue-tsc@3.0.5(typescript@5.9.2))(yaml@2.8.1) nuxt-eslint-auto-explicit-import: specifier: catalog:devtools version: 0.1.1(eslint@9.33.0(jiti@2.5.1))(magicast@0.3.5)(rollup@4.45.1)(typescript@5.9.2) nuxt-mcp: specifier: catalog:build - version: 0.2.4(magicast@0.3.5)(nitropack@2.12.4(@netlify/blobs@9.1.2)(idb-keyval@6.2.2))(nuxi@3.23.0)(nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@24.0.7)(@vue/compiler-sfc@3.5.18)(db0@0.3.2)(eslint@9.33.0(jiti@2.5.1))(idb-keyval@6.2.2)(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.9.2)(vue-tsc@3.0.5(typescript@5.9.2))(yaml@2.8.1))(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) + version: 0.2.4(magicast@0.3.5)(nitropack@2.12.4(@netlify/blobs@9.1.2)(idb-keyval@6.2.2))(nuxi@3.23.0)(nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@24.0.7)(@vue/compiler-sfc@3.5.18)(db0@0.3.2)(eslint@9.33.0(jiti@2.5.1))(idb-keyval@6.2.2)(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.9.2)(vue-tsc@3.0.5(typescript@5.9.2))(yaml@2.8.1))(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) p-limit: specifier: catalog:deps version: 6.2.0 @@ -352,10 +352,10 @@ importers: version: 1.16.1(@netlify/blobs@9.1.2)(db0@0.3.2)(idb-keyval@6.2.2)(ioredis@5.6.1) vite: specifier: npm:rolldown-vite@^7.1.0 - version: rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + version: rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) vite-plugin-inspect: specifier: catalog:devtools - version: 11.3.2(@nuxt/kit@4.0.3(magicast@0.3.5))(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) + version: 11.3.2(@nuxt/kit@4.0.3(magicast@0.3.5))(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) vitest: specifier: catalog:testing version: 3.2.4(@types/debug@4.1.12)(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) @@ -376,7 +376,10 @@ importers: version: link:../devtools-rpc vite: specifier: npm:rolldown-vite@^7.1.0 - version: rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + version: rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + ws: + specifier: catalog:deps + version: 8.18.3 devDependencies: tsdown: specifier: catalog:build @@ -386,7 +389,7 @@ importers: dependencies: vite: specifier: npm:rolldown-vite@^7.1.0 - version: rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + version: rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) devDependencies: tsdown: specifier: catalog:build @@ -713,6 +716,11 @@ packages: resolution: {integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==} engines: {node: '>=6.9.0'} + '@babel/parser@7.27.7': + resolution: {integrity: sha512-qnzXzDXdr/po3bOTbTIQZ7+TxNKxpkN5IifVLXS+r7qwynkZfPyjZfE7hCXbo7IoO9TNcSyibgONsf2HauUd3Q==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/parser@7.28.0': resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==} engines: {node: '>=6.0.0'} @@ -740,6 +748,10 @@ packages: resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.27.7': + resolution: {integrity: sha512-X6ZlfR/O/s5EQ/SnUSLzr+6kGnkg8HXGMzpgsMsrJVcfDtH1vIp6ctCN4eZ1LS5c0+te5Cb6Y514fASjMRJ1nw==} + engines: {node: '>=6.9.0'} + '@babel/traverse@7.28.0': resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} engines: {node: '>=6.9.0'} @@ -748,6 +760,14 @@ packages: resolution: {integrity: sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==} engines: {node: '>=6.9.0'} + '@babel/types@7.27.7': + resolution: {integrity: sha512-8OLQgDScAOHXnAz2cV+RfzzNMipuLVBz2biuAJFMV9bfkNf393je3VM8CLkjQodW5+iWsSJdSgSWT6rsZoXHPw==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.28.1': + resolution: {integrity: sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==} + engines: {node: '>=6.9.0'} + '@babel/types@7.28.2': resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} engines: {node: '>=6.9.0'} @@ -985,6 +1005,10 @@ packages: peerDependencies: eslint: ^8.50.0 || ^9.0.0 + '@eslint/core@0.15.1': + resolution: {integrity: sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/core@0.15.2': resolution: {integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -993,6 +1017,10 @@ packages: resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/js@9.32.0': + resolution: {integrity: sha512-BBpRFZK3eX6uMLKz8WxFOBIFFcGFJ/g8XuwjTHCqHROSIsopI+ddn/d5Cfh36+7+e5edVS8dbSHnBNhrLEX0zg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/js@9.33.0': resolution: {integrity: sha512-5K1/mKhWaMfreBGJTwval43JJmkip0RmM+3+IuqupeSKNC/Th2Kc7ucaq5ovTSra/OOKB9c58CGSz3QMVbWt0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1005,6 +1033,10 @@ packages: resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/plugin-kit@0.3.4': + resolution: {integrity: sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/plugin-kit@0.3.5': resolution: {integrity: sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1120,13 +1152,16 @@ packages: engines: {node: '>=18'} hasBin: true - '@modelcontextprotocol/sdk@1.17.1': - resolution: {integrity: sha512-CPle1OQehbWqd25La9Ack5B07StKIxh4+Bf19qnpZKJC1oI22Y0czZHbifjw1UoczIfKBwBDAp/dFxvHG13B5A==} + '@modelcontextprotocol/sdk@1.17.2': + resolution: {integrity: sha512-EFLRNXR/ixpXQWu6/3Cu30ndDFIFNaqUXcTqsGebujeMan9FzhAaFFswLRiFj61rgygDRr8WO1N+UijjgRxX9g==} engines: {node: '>=18'} '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} + '@napi-rs/wasm-runtime@1.0.1': + resolution: {integrity: sha512-KVlQ/jgywZpixGCKMNwxStmmbYEMyokZpCf2YuIChhfJA2uqfAKNEM8INz7zzTo55iEXfBhIIs3VqYyqzDLj8g==} + '@napi-rs/wasm-runtime@1.0.3': resolution: {integrity: sha512-rZxtMsLwjdXkMUGC3WwsPwLNVqVqnTJT6MNIB6e+5fhMcSCPP0AOsNWuMQ5mdCq6HNjs/ZeWAEchpqeprqBD2Q==} @@ -1190,8 +1225,8 @@ packages: resolution: {integrity: sha512-nIh/M6Kh3ZtOmlY00DaUYB4xeeV6F3/ts1l29iwl3/cfyY/OuCfUx+v08zgx8TKPTifXRcjjqVQ4KB2zOYSbyw==} engines: {node: '>=18.18.0'} - '@nuxt/cli@3.27.0': - resolution: {integrity: sha512-lOdzEvEbGaV06ebKKYgpumLLzbOZMFQzZfT4ZE7foa8/8aXG+GR3g8w9RX2IUyomTdSfapa3UcHDC8srQKRIEw==} + '@nuxt/cli@3.28.0': + resolution: {integrity: sha512-WQ751WxWLBIeH3TDFt/LWQ2znyAKxpR5+gpv80oerwnVQs4GKajAfR6dIgExXZkjaPUHEFv2lVD9vM+frbprzw==} engines: {node: ^16.10.0 || >=18.0.0} hasBin: true @@ -1627,6 +1662,10 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} + '@pkgr/core@0.2.7': + resolution: {integrity: sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + '@pkgr/core@0.2.9': resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -1742,8 +1781,8 @@ packages: '@rolldown/pluginutils@1.0.0-beta.29': resolution: {integrity: sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==} - '@rolldown/pluginutils@1.0.0-beta.32': - resolution: {integrity: sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==} + '@rolldown/pluginutils@1.0.0-beta.30': + resolution: {integrity: sha512-whXaSoNUFiyDAjkUF8OBpOm77Szdbk5lGNqFe6CbVbJFrhCCPinCbRA3NjawwlNHla1No7xvXXh+CpSxnPfUEw==} '@rolldown/pluginutils@https://pkg.pr.new/rolldown/rolldown/@rolldown/pluginutils@c09bd00': resolution: {tarball: https://pkg.pr.new/rolldown/rolldown/@rolldown/pluginutils@c09bd00} @@ -1932,6 +1971,12 @@ packages: '@speed-highlight/core@1.2.7': resolution: {integrity: sha512-0dxmVj4gxg3Jg879kvFS/msl4s9F3T9UXC1InxgOf7t5NvcPD97u/WTA5vL/IxWHMn7qSxBozqrnnE2wvl1m8g==} + '@stylistic/eslint-plugin@5.2.2': + resolution: {integrity: sha512-bE2DUjruqXlHYP3Q2Gpqiuj2bHq7/88FnuaS0FjeGGLCy+X6a07bGVuwtiOYnPSLHR6jmx5Bwdv+j7l8H+G97A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=9.0.0' + '@stylistic/eslint-plugin@5.2.3': resolution: {integrity: sha512-oY7GVkJGVMI5benlBDCaRrSC1qPasafyv5dOBLLv5MTilMGnErKhO6ziEfodDDIZbo5QxPUNW360VudJOFODMw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2126,26 +2171,26 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.39.0': - resolution: {integrity: sha512-bhEz6OZeUR+O/6yx9Jk6ohX6H9JSFTaiY0v9/PuKT3oGK0rn0jNplLmyFUGV+a9gfYnVNwGDwS/UkLIuXNb2Rw==} + '@typescript-eslint/eslint-plugin@8.39.1': + resolution: {integrity: sha512-yYegZ5n3Yr6eOcqgj2nJH8cH/ZZgF+l0YIdKILSDjYFRjgYQMgv/lRjV5Z7Up04b9VYUondt8EPMqg7kTWgJ2g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.39.0 + '@typescript-eslint/parser': ^8.39.1 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.39.0': - resolution: {integrity: sha512-g3WpVQHngx0aLXn6kfIYCZxM6rRJlWzEkVpqEFLT3SgEDsp9cpCbxxgwnE504q4H+ruSDh/VGS6nqZIDynP+vg==} + '@typescript-eslint/parser@8.39.1': + resolution: {integrity: sha512-pUXGCuHnnKw6PyYq93lLRiZm3vjuslIy7tus1lIQTYVK9bL8XBgJnCWm8a0KcTtHC84Yya1Q6rtll+duSMj0dg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.39.0': - resolution: {integrity: sha512-CTzJqaSq30V/Z2Og9jogzZt8lJRR5TKlAdXmWgdu4hgcC9Kww5flQ+xFvMxIBWVNdxJO7OifgdOK4PokMIWPew==} + '@typescript-eslint/project-service@8.38.0': + resolution: {integrity: sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <5.9.0' '@typescript-eslint/project-service@8.39.1': resolution: {integrity: sha512-8fZxek3ONTwBu9ptw5nCKqZOSkXshZB7uAxuFF0J/wTMkKydjXCzqqga7MlFMpHi9DoG4BadhmTkITBcg8Aybw==} @@ -2153,19 +2198,19 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.39.0': - resolution: {integrity: sha512-8QOzff9UKxOh6npZQ/4FQu4mjdOCGSdO3p44ww0hk8Vu+IGbg0tB/H1LcTARRDzGCC8pDGbh2rissBuuoPgH8A==} + '@typescript-eslint/scope-manager@8.38.0': + resolution: {integrity: sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/scope-manager@8.39.1': resolution: {integrity: sha512-RkBKGBrjgskFGWuyUGz/EtD8AF/GW49S21J8dvMzpJitOF1slLEbbHnNEtAHtnDAnx8qDEdRrULRnWVx27wGBw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.39.0': - resolution: {integrity: sha512-Fd3/QjmFV2sKmvv3Mrj8r6N8CryYiCS8Wdb/6/rgOXAWGcFuc+VkQuG28uk/4kVNVZBQuuDHEDUpo/pQ32zsIQ==} + '@typescript-eslint/tsconfig-utils@8.38.0': + resolution: {integrity: sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <5.9.0' '@typescript-eslint/tsconfig-utils@8.39.1': resolution: {integrity: sha512-ePUPGVtTMR8XMU2Hee8kD0Pu4NDE1CN9Q1sxGSGd/mbOtGZDM7pnhXNJnzW63zk/q+Z54zVzj44HtwXln5CvHA==} @@ -2173,26 +2218,26 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.39.0': - resolution: {integrity: sha512-6B3z0c1DXVT2vYA9+z9axjtc09rqKUPRmijD5m9iv8iQpHBRYRMBcgxSiKTZKm6FwWw1/cI4v6em35OsKCiN5Q==} + '@typescript-eslint/type-utils@8.39.1': + resolution: {integrity: sha512-gu9/ahyatyAdQbKeHnhT4R+y3YLtqqHyvkfDxaBYk97EcbfChSJXyaJnIL3ygUv7OuZatePHmQvuH5ru0lnVeA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.39.0': - resolution: {integrity: sha512-ArDdaOllnCj3yn/lzKn9s0pBQYmmyme/v1HbGIGB0GB/knFI3fWMHloC+oYTJW46tVbYnGKTMDK4ah1sC2v0Kg==} + '@typescript-eslint/types@8.38.0': + resolution: {integrity: sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/types@8.39.1': resolution: {integrity: sha512-7sPDKQQp+S11laqTrhHqeAbsCfMkwJMrV7oTDvtDds4mEofJYir414bYKUEb8YPUm9QL3U+8f6L6YExSoAGdQw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.39.0': - resolution: {integrity: sha512-ndWdiflRMvfIgQRpckQQLiB5qAKQ7w++V4LlCHwp62eym1HLB/kw7D9f2e8ytONls/jt89TEasgvb+VwnRprsw==} + '@typescript-eslint/typescript-estree@8.38.0': + resolution: {integrity: sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <5.9.0' '@typescript-eslint/typescript-estree@8.39.1': resolution: {integrity: sha512-EKkpcPuIux48dddVDXyQBlKdeTPMmALqBUbEk38McWv0qVEZwOpVJBi7ugK5qVNgeuYjGNQxrrnoM/5+TI/BPw==} @@ -2200,13 +2245,6 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.39.0': - resolution: {integrity: sha512-4GVSvNA0Vx1Ktwvf4sFE+exxJ3QGUorQG1/A5mRfRNZtkBT2xrA/BCO2H0eALx/PnvCS6/vmYwRdDA41EoffkQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.39.1': resolution: {integrity: sha512-VF5tZ2XnUSTuiqZFXCZfZs1cgkdd3O/sSYmdo2EpSyDlC86UM/8YytTmKnehOW3TGAlivqTDT6bS87B/GQ/jyg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2214,8 +2252,8 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.39.0': - resolution: {integrity: sha512-ldgiJ+VAhQCfIjeOgu8Kj5nSxds0ktPOSO9p4+0VDH2R2pLvQraaM5Oen2d7NxzMCm+Sn/vJT+mv2H5u6b/3fA==} + '@typescript-eslint/visitor-keys@8.38.0': + resolution: {integrity: sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/visitor-keys@8.39.1': @@ -2484,9 +2522,15 @@ packages: '@vitest/utils@3.2.4': resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} + '@volar/language-core@2.4.20': + resolution: {integrity: sha512-dRDF1G33xaAIDqR6+mXUIjXYdu9vzSxlMGfMEwBxQsfY/JMUEXSpLTR057oTKlUQ2nIvCmP9k94A8h8z2VrNSA==} + '@volar/language-core@2.4.22': resolution: {integrity: sha512-gp4M7Di5KgNyIyO903wTClYBavRt6UyFNpc5LWfyZr1lBsTUY+QrVZfmbNF2aCyfklBOVk9YC4p+zkwoyT7ECg==} + '@volar/source-map@2.4.20': + resolution: {integrity: sha512-mVjmFQH8mC+nUaVwmbxoYUy8cww+abaO8dWzqPUjilsavjxH0jCJ3Mp8HFuHsdewZs2c+SP+EO7hCd8Z92whJg==} + '@volar/source-map@2.4.22': resolution: {integrity: sha512-L2nVr/1vei0xKRgO2tYVXtJYd09HTRjaZi418e85Q+QdbbqA8h7bBjfNyPPSsjnrOO4l4kaAo78c8SQUAdHvgA==} @@ -2547,6 +2591,14 @@ packages: '@vue/devtools-shared@7.7.7': resolution: {integrity: sha512-+udSj47aRl5aKb0memBvcUG9koarqnxNM5yjuREvqwK6T3ap4mn3Zqqc17QrBFTqSMjr3HK1cvStEZpMDpfdyw==} + '@vue/language-core@3.0.4': + resolution: {integrity: sha512-BvueED4LfBCSNH66eeUQk37MQCb7hjdezzGgxniM0LbriW53AJIyLorgshAtStmjfsAuOCcTl/c1b+nz/ye8xQ==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@vue/language-core@3.0.5': resolution: {integrity: sha512-gCEjn9Ik7I/seHVNIEipOm8W+f3/kg60e8s1IgIkMYma2wu9ZGUTMv3mSL2bX+Md2L8fslceJ4SU8j1fgSRoiw==} peerDependencies: @@ -4121,6 +4173,10 @@ packages: resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} engines: {node: '>=18'} + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} @@ -4163,6 +4219,9 @@ packages: resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + h3@1.15.3: + resolution: {integrity: sha512-z6GknHqyX0h9aQaTx22VZDf6QyZn+0Nh+Ym8O/u0SGSkyF5cuTJYKlc8MkzW3Nzf9LE1ivcpmYC3FUGpywhuUQ==} + h3@1.15.4: resolution: {integrity: sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==} @@ -4404,6 +4463,10 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} + jiti@2.4.2: + resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + hasBin: true + jiti@2.5.1: resolution: {integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==} hasBin: true @@ -4499,6 +4562,9 @@ packages: engines: {node: '>=8'} hasBin: true + launch-editor@2.10.0: + resolution: {integrity: sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA==} + launch-editor@2.11.1: resolution: {integrity: sha512-SEET7oNfgSaB6Ym0jufAdCeo3meJVeCaaDyzRygy0xsp2BFKCprcfHljTq4QkzTLUxEKkFK6OK4811YM2oSrRg==} @@ -5023,6 +5089,9 @@ packages: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true + node-mock-http@1.0.1: + resolution: {integrity: sha512-0gJJgENizp4ghds/Ywu2FCmcRsgBTmRQzYPZm61wy+Em2sBarSka0OhQS5huLBg6od1zkNpnWMCZloQDFVvOMQ==} + node-mock-http@1.0.2: resolution: {integrity: sha512-zWaamgDUdo9SSLw47we78+zYw/bDr5gH8pH7oRRs8V3KmBtu8GLgGIbV2p/gRPd3LWpEOpjQj7X1FOU3VFMJ8g==} @@ -5094,6 +5163,11 @@ packages: '@types/node': optional: true + nypm@0.6.0: + resolution: {integrity: sha512-mn8wBFV9G9+UFHIrq+pZ2r2zL4aPau/by3kJb3cM7+5tQHMt6HGQB8FDIeKFYp8o0D2pnH6nVsO88N4AmUxIWg==} + engines: {node: ^14.16.0 || >=16.10.0} + hasBin: true + nypm@0.6.1: resolution: {integrity: sha512-hlacBiRiv1k9hZFiphPUkfSQ/ZfQzZDzC+8z0wL3lvDAOUu/2NnChkKuMoMjNur/9OpKuz2QsIeiPVN0xM5Q0w==} engines: {node: ^14.16.0 || >=16.10.0} @@ -5295,6 +5369,10 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + picomatch@4.0.3: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} @@ -5696,8 +5774,8 @@ packages: vue-tsc: optional: true - rolldown-vite@7.1.0: - resolution: {integrity: sha512-DCfutVwSkuc3NA75SdFuetKwcpq97tO2JZdM6gYv7GwW6/9qyXnITYER+8zrJt+vQVGP2SadAkMOpWw7B4LVwg==} + rolldown-vite@7.1.2: + resolution: {integrity: sha512-9VwY/BOirnPDJ8HXiXTdVdLXTSQkNGDVgpuhfmMxAH7HxSBb71VaTyQh/FHPtMk2psAyglQXWheYKXV53N27/Q==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -5842,6 +5920,10 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + shell-quote@1.8.2: + resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} + engines: {node: '>= 0.4'} + shell-quote@1.8.3: resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} engines: {node: '>= 0.4'} @@ -6059,6 +6141,10 @@ packages: resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} engines: {node: ^14.18.0 || >=16.0.0} + synckit@0.11.8: + resolution: {integrity: sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==} + engines: {node: ^14.18.0 || >=16.0.0} + system-architecture@0.1.0: resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} engines: {node: '>=18'} @@ -6256,6 +6342,9 @@ packages: undici-types@7.8.0: resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==} + unenv@2.0.0-rc.18: + resolution: {integrity: sha512-O0oVQVJ2X3Q8H4HITJr4e2cWxMYBeZ+p8S25yoKCxVCgDWtIJDcgwWNonYz12tI3ylVQCRyPV/Bdq0KJeXo7AA==} + unenv@2.0.0-rc.19: resolution: {integrity: sha512-t/OMHBNAkknVCI7bVB9OWjUUAwhVv9vsPIAGnNUxnu3FxPQN11rjh0sksLMzc3g7IlTgvHmOTl4JM7JHpcv5wA==} @@ -6733,6 +6822,11 @@ packages: resolution: {integrity: sha512-E/+VitOorXSLiAqtTd7Yqax0/pAS3xaYMP+AUUJGOK1OZG3rhcj9fcJOM5HJ2VrP1FrStVCWr1muTfQCdj4tAA==} engines: {node: ^14.17.0 || >=16.0.0} + yaml@2.8.0: + resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==} + engines: {node: '>= 14.6'} + hasBin: true + yaml@2.8.1: resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} engines: {node: '>= 14.6'} @@ -6760,8 +6854,8 @@ packages: youch-core@0.3.3: resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==} - youch@4.1.0-beta.10: - resolution: {integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==} + youch@4.1.0-beta.11: + resolution: {integrity: sha512-sQi6PERyO/mT8w564ojOVeAlYTtVQmC2GaktQAf+IdI75/GKIggosBuvyVXvEV+FATAT6RbLdIjFoiIId4ozoQ==} youch@4.1.0-beta.8: resolution: {integrity: sha512-rY2A2lSF7zC+l7HH9Mq+83D1dLlsPnEvy8jTouzaptDZM6geqZ3aJe/b7ULCwRURPtWV3vbDjA2DDMdoBol0HQ==} @@ -6776,6 +6870,9 @@ packages: peerDependencies: zod: ^3.24.1 + zod@3.25.67: + resolution: {integrity: sha512-idA2YXwpCdqUSKRCACDE6ItZD9TZzy3OZMtpfLoh6oPR47lipysRrJfjzMqFxQ3uJuUPyUeWe1r9vLH33xO/Qw==} + zod@3.25.76: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} @@ -6796,8 +6893,8 @@ snapshots: '@eslint-community/eslint-plugin-eslint-comments': 4.5.0(eslint@9.33.0(jiti@2.5.1)) '@eslint/markdown': 7.1.0 '@stylistic/eslint-plugin': 5.2.3(eslint@9.33.0(jiti@2.5.1)) - '@typescript-eslint/eslint-plugin': 8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/parser': 8.39.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/eslint-plugin': 8.39.1(@typescript-eslint/parser@8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/parser': 8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) '@vitest/eslint-plugin': 1.3.4(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) ansis: 4.1.0 cac: 6.7.14 @@ -6817,8 +6914,8 @@ snapshots: eslint-plugin-regexp: 2.10.0(eslint@9.33.0(jiti@2.5.1)) eslint-plugin-toml: 0.12.0(eslint@9.33.0(jiti@2.5.1)) eslint-plugin-unicorn: 60.0.0(eslint@9.33.0(jiti@2.5.1)) - eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.33.0(jiti@2.5.1)) - eslint-plugin-vue: 10.4.0(@typescript-eslint/parser@8.39.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.33.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.33.0(jiti@2.5.1))) + eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.39.1(@typescript-eslint/parser@8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.33.0(jiti@2.5.1)) + eslint-plugin-vue: 10.4.0(@typescript-eslint/parser@8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.33.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.33.0(jiti@2.5.1))) eslint-plugin-yml: 1.18.0(eslint@9.33.0(jiti@2.5.1)) eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.18)(eslint@9.33.0(jiti@2.5.1)) globals: 16.3.0 @@ -6867,8 +6964,8 @@ snapshots: '@babel/helpers': 7.27.6 '@babel/parser': 7.28.0 '@babel/template': 7.27.2 - '@babel/traverse': 7.28.0 - '@babel/types': 7.28.2 + '@babel/traverse': 7.27.7 + '@babel/types': 7.28.1 convert-source-map: 2.0.0 debug: 4.4.1 gensync: 1.0.0-beta.2 @@ -6887,7 +6984,7 @@ snapshots: '@babel/helper-annotate-as-pure@7.27.3': dependencies: - '@babel/types': 7.28.2 + '@babel/types': 7.28.1 '@babel/helper-compilation-targets@7.27.2': dependencies: @@ -6905,7 +7002,7 @@ snapshots: '@babel/helper-optimise-call-expression': 7.27.1 '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.7) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.27.7 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -6914,15 +7011,15 @@ snapshots: '@babel/helper-member-expression-to-functions@7.27.1': dependencies: - '@babel/traverse': 7.28.0 - '@babel/types': 7.28.2 + '@babel/traverse': 7.27.7 + '@babel/types': 7.28.1 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.27.1': dependencies: - '@babel/traverse': 7.28.0 - '@babel/types': 7.28.2 + '@babel/traverse': 7.27.7 + '@babel/types': 7.28.1 transitivePeerDependencies: - supports-color @@ -6931,13 +7028,13 @@ snapshots: '@babel/core': 7.27.7 '@babel/helper-module-imports': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.27.7 transitivePeerDependencies: - supports-color '@babel/helper-optimise-call-expression@7.27.1': dependencies: - '@babel/types': 7.28.2 + '@babel/types': 7.28.1 '@babel/helper-plugin-utils@7.27.1': {} @@ -6946,14 +7043,14 @@ snapshots: '@babel/core': 7.27.7 '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.27.7 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.28.0 - '@babel/types': 7.28.2 + '@babel/traverse': 7.27.7 + '@babel/types': 7.28.1 transitivePeerDependencies: - supports-color @@ -6966,11 +7063,15 @@ snapshots: '@babel/helpers@7.27.6': dependencies: '@babel/template': 7.27.2 - '@babel/types': 7.28.2 + '@babel/types': 7.28.1 + + '@babel/parser@7.27.7': + dependencies: + '@babel/types': 7.27.7 '@babel/parser@7.28.0': dependencies: - '@babel/types': 7.28.2 + '@babel/types': 7.28.1 '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.27.7)': dependencies: @@ -6997,7 +7098,19 @@ snapshots: dependencies: '@babel/code-frame': 7.27.1 '@babel/parser': 7.28.0 - '@babel/types': 7.28.2 + '@babel/types': 7.28.1 + + '@babel/traverse@7.27.7': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.0 + '@babel/parser': 7.28.0 + '@babel/template': 7.27.2 + '@babel/types': 7.28.1 + debug: 4.4.1 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color '@babel/traverse@7.28.0': dependencies: @@ -7006,7 +7119,7 @@ snapshots: '@babel/helper-globals': 7.28.0 '@babel/parser': 7.28.0 '@babel/template': 7.27.2 - '@babel/types': 7.28.2 + '@babel/types': 7.28.1 debug: 4.4.1 transitivePeerDependencies: - supports-color @@ -7016,6 +7129,16 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 + '@babel/types@7.27.7': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + + '@babel/types@7.28.1': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/types@7.28.2': dependencies: '@babel/helper-string-parser': 7.27.1 @@ -7068,7 +7191,7 @@ snapshots: '@es-joy/jsdoccomment@0.50.2': dependencies: '@types/estree': 1.0.8 - '@typescript-eslint/types': 8.39.1 + '@typescript-eslint/types': 8.38.0 comment-parser: 1.4.1 esquery: 1.6.0 jsdoc-type-pratt-parser: 4.1.0 @@ -7076,7 +7199,7 @@ snapshots: '@es-joy/jsdoccomment@0.52.0': dependencies: '@types/estree': 1.0.8 - '@typescript-eslint/types': 8.39.1 + '@typescript-eslint/types': 8.38.0 comment-parser: 1.4.1 esquery: 1.6.0 jsdoc-type-pratt-parser: 4.1.0 @@ -7198,7 +7321,7 @@ snapshots: eslint: 9.33.0(jiti@2.5.1) find-up: 7.0.0 get-port-please: 3.2.0 - h3: 1.15.4 + h3: 1.15.3 mlly: 1.7.4 mrmime: 2.0.1 open: 10.2.0 @@ -7209,6 +7332,10 @@ snapshots: - supports-color - utf-8-validate + '@eslint/core@0.15.1': + dependencies: + '@types/json-schema': 7.0.15 + '@eslint/core@0.15.2': dependencies: '@types/json-schema': 7.0.15 @@ -7227,12 +7354,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@eslint/js@9.32.0': {} + '@eslint/js@9.33.0': {} '@eslint/markdown@7.1.0': dependencies: - '@eslint/core': 0.15.2 - '@eslint/plugin-kit': 0.3.5 + '@eslint/core': 0.15.1 + '@eslint/plugin-kit': 0.3.4 github-slugger: 2.0.0 mdast-util-from-markdown: 2.0.2 mdast-util-frontmatter: 2.0.1 @@ -7244,6 +7373,11 @@ snapshots: '@eslint/object-schema@2.1.6': {} + '@eslint/plugin-kit@0.3.4': + dependencies: + '@eslint/core': 0.15.1 + levn: 0.4.1 + '@eslint/plugin-kit@0.3.5': dependencies: '@eslint/core': 0.15.2 @@ -7386,7 +7520,7 @@ snapshots: - encoding - supports-color - '@modelcontextprotocol/sdk@1.17.1': + '@modelcontextprotocol/sdk@1.17.2': dependencies: ajv: 6.12.6 content-type: 1.0.5 @@ -7410,6 +7544,13 @@ snapshots: '@tybys/wasm-util': 0.10.0 optional: true + '@napi-rs/wasm-runtime@1.0.1': + dependencies: + '@emnapi/core': 1.4.5 + '@emnapi/runtime': 1.4.5 + '@tybys/wasm-util': 0.10.0 + optional: true + '@napi-rs/wasm-runtime@1.0.3': dependencies: '@emnapi/core': 1.4.5 @@ -7499,7 +7640,7 @@ snapshots: unixify: 1.0.0 urlpattern-polyfill: 8.0.2 yargs: 17.7.2 - zod: 3.25.76 + zod: 3.25.67 transitivePeerDependencies: - encoding - rollup @@ -7529,7 +7670,7 @@ snapshots: '@nodelib/fs.scandir': 4.0.1 fastq: 1.19.1 - '@nuxt/cli@3.27.0(magicast@0.3.5)': + '@nuxt/cli@3.28.0(magicast@0.3.5)': dependencies: c12: 3.2.0(magicast@0.3.5) citty: 0.1.6 @@ -7556,17 +7697,17 @@ snapshots: std-env: 3.9.0 tinyexec: 1.0.1 ufo: 1.6.1 - youch: 4.1.0-beta.10 + youch: 4.1.0-beta.11 transitivePeerDependencies: - magicast '@nuxt/devalue@2.0.2': {} - '@nuxt/devtools-kit@2.6.2(magicast@0.3.5)(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))': + '@nuxt/devtools-kit@2.6.2(magicast@0.3.5)(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))': dependencies: '@nuxt/kit': 4.0.3(magicast@0.3.5) execa: 8.0.1 - vite: rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + vite: rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) transitivePeerDependencies: - magicast @@ -7589,12 +7730,12 @@ snapshots: prompts: 2.4.2 semver: 7.7.2 - '@nuxt/devtools@2.6.2(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.18(typescript@5.9.2))': + '@nuxt/devtools@2.6.2(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.18(typescript@5.9.2))': dependencies: - '@nuxt/devtools-kit': 2.6.2(magicast@0.3.5)(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) + '@nuxt/devtools-kit': 2.6.2(magicast@0.3.5)(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) '@nuxt/devtools-wizard': 2.6.2 '@nuxt/kit': 4.0.3(magicast@0.3.5) - '@vue/devtools-core': 7.7.7(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.18(typescript@5.9.2)) + '@vue/devtools-core': 7.7.7(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.18(typescript@5.9.2)) '@vue/devtools-kit': 7.7.7 birpc: 2.5.0 consola: 3.4.2 @@ -7606,10 +7747,10 @@ snapshots: hookable: 5.5.3 image-meta: 0.2.1 is-installed-globally: 1.0.0 - launch-editor: 2.11.1 + launch-editor: 2.10.0 local-pkg: 1.1.1 magicast: 0.3.5 - nypm: 0.6.1 + nypm: 0.6.0 ohash: 2.0.11 pathe: 2.0.3 perfect-debounce: 1.0.0 @@ -7619,9 +7760,9 @@ snapshots: sirv: 3.0.1 structured-clone-es: 1.0.0 tinyglobby: 0.2.14 - vite: rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) - vite-plugin-inspect: 11.3.2(@nuxt/kit@4.0.3(magicast@0.3.5))(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) - vite-plugin-vue-tracer: 1.0.0(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.18(typescript@5.9.2)) + vite: rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + vite-plugin-inspect: 11.3.2(@nuxt/kit@4.0.3(magicast@0.3.5))(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) + vite-plugin-vue-tracer: 1.0.0(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.18(typescript@5.9.2)) which: 5.0.0 ws: 8.18.3 transitivePeerDependencies: @@ -7647,10 +7788,10 @@ snapshots: hookable: 5.5.3 image-meta: 0.2.1 is-installed-globally: 1.0.0 - launch-editor: 2.11.1 + launch-editor: 2.10.0 local-pkg: 1.1.1 magicast: 0.3.5 - nypm: 0.6.1 + nypm: 0.6.0 ohash: 2.0.11 pathe: 2.0.3 perfect-debounce: 1.0.0 @@ -7675,11 +7816,11 @@ snapshots: dependencies: '@antfu/install-pkg': 1.1.0 '@clack/prompts': 0.11.0 - '@eslint/js': 9.33.0 + '@eslint/js': 9.32.0 '@nuxt/eslint-plugin': 1.8.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) - '@stylistic/eslint-plugin': 5.2.3(eslint@9.33.0(jiti@2.5.1)) - '@typescript-eslint/eslint-plugin': 8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/parser': 8.39.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) + '@stylistic/eslint-plugin': 5.2.2(eslint@9.33.0(jiti@2.5.1)) + '@typescript-eslint/eslint-plugin': 8.39.1(@typescript-eslint/parser@8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/parser': 8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) eslint: 9.33.0(jiti@2.5.1) eslint-config-flat-gitignore: 2.1.0(eslint@9.33.0(jiti@2.5.1)) eslint-flat-config-utils: 2.1.1 @@ -7689,7 +7830,7 @@ snapshots: eslint-plugin-jsdoc: 52.0.4(eslint@9.33.0(jiti@2.5.1)) eslint-plugin-regexp: 2.10.0(eslint@9.33.0(jiti@2.5.1)) eslint-plugin-unicorn: 60.0.0(eslint@9.33.0(jiti@2.5.1)) - eslint-plugin-vue: 10.4.0(@typescript-eslint/parser@8.39.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.33.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.33.0(jiti@2.5.1))) + eslint-plugin-vue: 10.4.0(@typescript-eslint/parser@8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.33.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.33.0(jiti@2.5.1))) eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.18)(eslint@9.33.0(jiti@2.5.1)) globals: 16.3.0 local-pkg: 1.1.1 @@ -7711,10 +7852,10 @@ snapshots: - supports-color - typescript - '@nuxt/eslint@1.8.0(@typescript-eslint/utils@8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(@vue/compiler-sfc@3.5.18)(eslint@9.33.0(jiti@2.5.1))(magicast@0.3.5)(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(typescript@5.9.2)': + '@nuxt/eslint@1.8.0(@typescript-eslint/utils@8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(@vue/compiler-sfc@3.5.18)(eslint@9.33.0(jiti@2.5.1))(magicast@0.3.5)(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(typescript@5.9.2)': dependencies: '@eslint/config-inspector': 1.1.0(eslint@9.33.0(jiti@2.5.1)) - '@nuxt/devtools-kit': 2.6.2(magicast@0.3.5)(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) + '@nuxt/devtools-kit': 2.6.2(magicast@0.3.5)(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) '@nuxt/eslint-config': 1.8.0(@typescript-eslint/utils@8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(@vue/compiler-sfc@3.5.18)(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) '@nuxt/eslint-plugin': 1.8.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) '@nuxt/kit': 4.0.3(magicast@0.3.5) @@ -7795,8 +7936,8 @@ snapshots: dependencies: '@nuxt/kit': 4.0.3(magicast@0.3.5) '@rollup/plugin-replace': 6.0.2(rollup@4.45.1) - '@vitejs/plugin-vue': 6.0.1(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.18(typescript@5.9.2)) - '@vitejs/plugin-vue-jsx': 5.0.1(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.18(typescript@5.9.2)) + '@vitejs/plugin-vue': 6.0.1(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.18(typescript@5.9.2)) + '@vitejs/plugin-vue-jsx': 5.0.1(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.18(typescript@5.9.2)) autoprefixer: 10.4.21(postcss@8.5.6) consola: 3.4.2 cssnano: 7.1.0(postcss@8.5.6) @@ -7818,9 +7959,9 @@ snapshots: std-env: 3.9.0 ufo: 1.6.1 unenv: 2.0.0-rc.19 - vite: rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + vite: rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) vite-node: 3.2.4(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) - vite-plugin-checker: 0.10.2(eslint@9.33.0(jiti@2.5.1))(optionator@0.9.4)(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(typescript@5.9.2)(vue-tsc@3.0.5(typescript@5.9.2)) + vite-plugin-checker: 0.10.2(eslint@9.33.0(jiti@2.5.1))(optionator@0.9.4)(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(typescript@5.9.2)(vue-tsc@3.0.5(typescript@5.9.2)) vue: 3.5.18(typescript@5.9.2) vue-bundle-renderer: 2.1.2 transitivePeerDependencies: @@ -7885,7 +8026,7 @@ snapshots: '@oxc-minify/binding-wasm32-wasi@0.80.0': dependencies: - '@napi-rs/wasm-runtime': 1.0.3 + '@napi-rs/wasm-runtime': 1.0.1 optional: true '@oxc-minify/binding-win32-arm64-msvc@0.80.0': @@ -7932,7 +8073,7 @@ snapshots: '@oxc-parser/binding-wasm32-wasi@0.80.0': dependencies: - '@napi-rs/wasm-runtime': 1.0.3 + '@napi-rs/wasm-runtime': 1.0.1 optional: true '@oxc-parser/binding-win32-arm64-msvc@0.80.0': @@ -7985,7 +8126,7 @@ snapshots: '@oxc-transform/binding-wasm32-wasi@0.80.0': dependencies: - '@napi-rs/wasm-runtime': 1.0.3 + '@napi-rs/wasm-runtime': 1.0.1 optional: true '@oxc-transform/binding-win32-arm64-msvc@0.80.0': @@ -8062,6 +8203,8 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true + '@pkgr/core@0.2.7': {} + '@pkgr/core@0.2.9': {} '@polka/url@1.0.0-next.29': {} @@ -8132,7 +8275,7 @@ snapshots: '@rolldown/pluginutils@1.0.0-beta.29': {} - '@rolldown/pluginutils@1.0.0-beta.32': {} + '@rolldown/pluginutils@1.0.0-beta.30': {} '@rolldown/pluginutils@https://pkg.pr.new/rolldown/rolldown/@rolldown/pluginutils@c09bd00': {} @@ -8265,10 +8408,20 @@ snapshots: '@speed-highlight/core@1.2.7': {} + '@stylistic/eslint-plugin@5.2.2(eslint@9.33.0(jiti@2.5.1))': + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0(jiti@2.5.1)) + '@typescript-eslint/types': 8.38.0 + eslint: 9.33.0(jiti@2.5.1) + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + estraverse: 5.3.0 + picomatch: 4.0.3 + '@stylistic/eslint-plugin@5.2.3(eslint@9.33.0(jiti@2.5.1))': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0(jiti@2.5.1)) - '@typescript-eslint/types': 8.39.1 + '@typescript-eslint/types': 8.38.0 eslint: 9.33.0(jiti@2.5.1) eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -8496,14 +8649,14 @@ snapshots: '@types/node': 24.0.7 optional: true - '@typescript-eslint/eslint-plugin@8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/eslint-plugin@8.39.1(@typescript-eslint/parser@8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.39.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/scope-manager': 8.39.0 - '@typescript-eslint/type-utils': 8.39.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/utils': 8.39.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 8.39.0 + '@typescript-eslint/parser': 8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/scope-manager': 8.39.1 + '@typescript-eslint/type-utils': 8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/utils': 8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.39.1 eslint: 9.33.0(jiti@2.5.1) graphemer: 1.4.0 ignore: 7.0.5 @@ -8513,22 +8666,22 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.39.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/parser@8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@typescript-eslint/scope-manager': 8.39.0 - '@typescript-eslint/types': 8.39.0 - '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 8.39.0 + '@typescript-eslint/scope-manager': 8.39.1 + '@typescript-eslint/types': 8.39.1 + '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.39.1 debug: 4.4.1 eslint: 9.33.0(jiti@2.5.1) typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.39.0(typescript@5.9.2)': + '@typescript-eslint/project-service@8.38.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.39.1(typescript@5.9.2) - '@typescript-eslint/types': 8.39.1 + '@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.9.2) + '@typescript-eslint/types': 8.38.0 debug: 4.4.1 typescript: 5.9.2 transitivePeerDependencies: @@ -8543,17 +8696,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.39.0': + '@typescript-eslint/scope-manager@8.38.0': dependencies: - '@typescript-eslint/types': 8.39.0 - '@typescript-eslint/visitor-keys': 8.39.0 + '@typescript-eslint/types': 8.38.0 + '@typescript-eslint/visitor-keys': 8.38.0 '@typescript-eslint/scope-manager@8.39.1': dependencies: '@typescript-eslint/types': 8.39.1 '@typescript-eslint/visitor-keys': 8.39.1 - '@typescript-eslint/tsconfig-utils@8.39.0(typescript@5.9.2)': + '@typescript-eslint/tsconfig-utils@8.38.0(typescript@5.9.2)': dependencies: typescript: 5.9.2 @@ -8561,11 +8714,11 @@ snapshots: dependencies: typescript: 5.9.2 - '@typescript-eslint/type-utils@8.39.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/type-utils@8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@typescript-eslint/types': 8.39.0 - '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.9.2) - '@typescript-eslint/utils': 8.39.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/types': 8.39.1 + '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.9.2) + '@typescript-eslint/utils': 8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) debug: 4.4.1 eslint: 9.33.0(jiti@2.5.1) ts-api-utils: 2.1.0(typescript@5.9.2) @@ -8573,16 +8726,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.39.0': {} + '@typescript-eslint/types@8.38.0': {} '@typescript-eslint/types@8.39.1': {} - '@typescript-eslint/typescript-estree@8.39.0(typescript@5.9.2)': + '@typescript-eslint/typescript-estree@8.38.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/project-service': 8.39.0(typescript@5.9.2) - '@typescript-eslint/tsconfig-utils': 8.39.0(typescript@5.9.2) - '@typescript-eslint/types': 8.39.0 - '@typescript-eslint/visitor-keys': 8.39.0 + '@typescript-eslint/project-service': 8.38.0(typescript@5.9.2) + '@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.9.2) + '@typescript-eslint/types': 8.38.0 + '@typescript-eslint/visitor-keys': 8.38.0 debug: 4.4.1 fast-glob: 3.3.3 is-glob: 4.0.3 @@ -8609,17 +8762,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.39.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2)': - dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0(jiti@2.5.1)) - '@typescript-eslint/scope-manager': 8.39.0 - '@typescript-eslint/types': 8.39.0 - '@typescript-eslint/typescript-estree': 8.39.0(typescript@5.9.2) - eslint: 9.33.0(jiti@2.5.1) - typescript: 5.9.2 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/utils@8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0(jiti@2.5.1)) @@ -8631,9 +8773,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.39.0': + '@typescript-eslint/visitor-keys@8.38.0': dependencies: - '@typescript-eslint/types': 8.39.0 + '@typescript-eslint/types': 8.38.0 eslint-visitor-keys: 4.2.1 '@typescript-eslint/visitor-keys@8.39.1': @@ -8933,21 +9075,21 @@ snapshots: - rollup - supports-color - '@vitejs/plugin-vue-jsx@5.0.1(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.18(typescript@5.9.2))': + '@vitejs/plugin-vue-jsx@5.0.1(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.18(typescript@5.9.2))': dependencies: '@babel/core': 7.27.7 '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.7) - '@rolldown/pluginutils': 1.0.0-beta.32 + '@rolldown/pluginutils': 1.0.0-beta.30 '@vue/babel-plugin-jsx': 1.4.0(@babel/core@7.27.7) - vite: rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + vite: rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) vue: 3.5.18(typescript@5.9.2) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@6.0.1(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.18(typescript@5.9.2))': + '@vitejs/plugin-vue@6.0.1(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.18(typescript@5.9.2))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.29 - vite: rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + vite: rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) vue: 3.5.18(typescript@5.9.2) '@vitest/eslint-plugin@1.3.4(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))': @@ -8968,13 +9110,13 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + vite: rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -9002,10 +9144,16 @@ snapshots: loupe: 3.1.4 tinyrainbow: 2.0.0 + '@volar/language-core@2.4.20': + dependencies: + '@volar/source-map': 2.4.20 + '@volar/language-core@2.4.22': dependencies: '@volar/source-map': 2.4.22 + '@volar/source-map@2.4.20': {} + '@volar/source-map@2.4.22': {} '@volar/typescript@2.4.22': @@ -9032,8 +9180,8 @@ snapshots: '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.7) '@babel/template': 7.27.2 - '@babel/traverse': 7.28.0 - '@babel/types': 7.28.2 + '@babel/traverse': 7.27.7 + '@babel/types': 7.28.1 '@vue/babel-helper-vue-transform-on': 1.4.0 '@vue/babel-plugin-resolve-type': 1.4.0(@babel/core@7.27.7) '@vue/shared': 3.5.18 @@ -9090,14 +9238,14 @@ snapshots: '@vue/devtools-api@6.6.4': {} - '@vue/devtools-core@7.7.7(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.18(typescript@5.9.2))': + '@vue/devtools-core@7.7.7(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.18(typescript@5.9.2))': dependencies: '@vue/devtools-kit': 7.7.7 '@vue/devtools-shared': 7.7.7 mitt: 3.0.1 nanoid: 5.1.5 pathe: 2.0.3 - vite-hot-client: 2.1.0(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) + vite-hot-client: 2.1.0(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) vue: 3.5.18(typescript@5.9.2) transitivePeerDependencies: - vite @@ -9128,6 +9276,19 @@ snapshots: dependencies: rfdc: 1.4.1 + '@vue/language-core@3.0.4(typescript@5.9.2)': + dependencies: + '@volar/language-core': 2.4.20 + '@vue/compiler-dom': 3.5.18 + '@vue/compiler-vue2': 2.7.16 + '@vue/shared': 3.5.18 + alien-signals: 2.0.5 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + picomatch: 4.0.3 + optionalDependencies: + typescript: 5.9.2 + '@vue/language-core@3.0.5(typescript@5.9.2)': dependencies: '@volar/language-core': 2.4.22 @@ -10101,7 +10262,7 @@ snapshots: detective-typescript@14.0.0(typescript@5.9.2): dependencies: - '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.2) ast-module-types: 6.0.1 node-source-walk: 7.0.1 typescript: 5.9.2 @@ -10316,14 +10477,14 @@ snapshots: eslint-plugin-import-lite@0.3.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2): dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0(jiti@2.5.1)) - '@typescript-eslint/types': 8.39.1 + '@typescript-eslint/types': 8.38.0 eslint: 9.33.0(jiti@2.5.1) optionalDependencies: typescript: 5.9.2 eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.33.0(jiti@2.5.1)): dependencies: - '@typescript-eslint/types': 8.39.1 + '@typescript-eslint/types': 8.38.0 comment-parser: 1.4.1 debug: 4.4.1 eslint: 9.33.0(jiti@2.5.1) @@ -10364,7 +10525,7 @@ snapshots: graphemer: 1.4.0 jsonc-eslint-parser: 2.4.0 natural-compare: 1.4.0 - synckit: 0.11.11 + synckit: 0.11.8 transitivePeerDependencies: - '@eslint/json' @@ -10387,7 +10548,7 @@ snapshots: eslint-plugin-perfectionist@4.15.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2): dependencies: - '@typescript-eslint/types': 8.39.1 + '@typescript-eslint/types': 8.38.0 '@typescript-eslint/utils': 8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) eslint: 9.33.0(jiti@2.5.1) natural-orderby: 5.0.0 @@ -10430,7 +10591,7 @@ snapshots: dependencies: '@babel/helper-validator-identifier': 7.27.1 '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0(jiti@2.5.1)) - '@eslint/plugin-kit': 0.3.5 + '@eslint/plugin-kit': 0.3.4 change-case: 5.4.4 ci-info: 4.3.0 clean-regexp: 1.0.0 @@ -10450,7 +10611,7 @@ snapshots: eslint-plugin-unimport@0.1.2(eslint@9.33.0(jiti@2.5.1))(rollup@4.45.1)(typescript@5.9.2): dependencies: - '@typescript-eslint/scope-manager': 8.39.1 + '@typescript-eslint/scope-manager': 8.38.0 '@typescript-eslint/utils': 8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) debug: 4.4.1 eslint: 9.33.0(jiti@2.5.1) @@ -10461,13 +10622,13 @@ snapshots: - supports-color - typescript - eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.33.0(jiti@2.5.1)): + eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.39.1(@typescript-eslint/parser@8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.33.0(jiti@2.5.1)): dependencies: eslint: 9.33.0(jiti@2.5.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/eslint-plugin': 8.39.1(@typescript-eslint/parser@8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) - eslint-plugin-vue@10.4.0(@typescript-eslint/parser@8.39.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.33.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.33.0(jiti@2.5.1))): + eslint-plugin-vue@10.4.0(@typescript-eslint/parser@8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.33.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.33.0(jiti@2.5.1))): dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0(jiti@2.5.1)) eslint: 9.33.0(jiti@2.5.1) @@ -10478,7 +10639,7 @@ snapshots: vue-eslint-parser: 10.2.0(eslint@9.33.0(jiti@2.5.1)) xml-name-validator: 4.0.0 optionalDependencies: - '@typescript-eslint/parser': 8.39.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/parser': 8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) eslint-plugin-yml@1.18.0(eslint@9.33.0(jiti@2.5.1)): dependencies: @@ -10835,7 +10996,7 @@ snapshots: consola: 3.4.2 defu: 6.1.4 node-fetch-native: 1.6.6 - nypm: 0.6.1 + nypm: 0.6.0 pathe: 2.0.3 git-up@8.1.1: @@ -10872,6 +11033,8 @@ snapshots: dependencies: ini: 4.1.1 + globals@11.12.0: {} + globals@14.0.0: {} globals@15.15.0: {} @@ -10907,6 +11070,18 @@ snapshots: dependencies: duplexer: 0.1.2 + h3@1.15.3: + 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.1 + radix3: 1.1.2 + ufo: 1.6.1 + uncrypto: 0.1.3 + h3@1.15.4: dependencies: cookie-es: 1.2.2 @@ -11118,6 +11293,8 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 + jiti@2.4.2: {} + jiti@2.5.1: {} js-tokens@4.0.0: {} @@ -11186,6 +11363,11 @@ snapshots: dotenv: 16.6.1 winston: 3.17.0 + launch-editor@2.10.0: + dependencies: + picocolors: 1.1.1 + shell-quote: 1.8.2 + launch-editor@2.11.1: dependencies: picocolors: 1.1.1 @@ -11375,8 +11557,8 @@ snapshots: magicast@0.3.5: dependencies: - '@babel/parser': 7.28.0 - '@babel/types': 7.28.2 + '@babel/parser': 7.27.7 + '@babel/types': 7.27.7 source-map-js: 1.2.1 markdown-table@3.0.4: {} @@ -11869,7 +12051,7 @@ snapshots: mime: 4.0.7 mlly: 1.7.4 node-fetch-native: 1.6.6 - node-mock-http: 1.0.2 + node-mock-http: 1.0.1 ofetch: 1.4.1 ohash: 2.0.11 pathe: 2.0.3 @@ -11889,7 +12071,7 @@ snapshots: ultrahtml: 1.6.0 uncrypto: 0.1.3 unctx: 2.4.1 - unenv: 2.0.0-rc.19 + unenv: 2.0.0-rc.18 unimport: 5.2.0 unplugin-utils: 0.2.4 unstorage: 1.16.1(@netlify/blobs@9.1.2)(db0@0.3.2)(idb-keyval@6.2.2)(ioredis@5.6.1) @@ -11944,6 +12126,8 @@ snapshots: node-gyp-build@4.8.4: {} + node-mock-http@1.0.1: {} + node-mock-http@1.0.2: {} node-releases@2.0.19: {} @@ -11996,9 +12180,9 @@ snapshots: - supports-color - typescript - nuxt-mcp@0.2.4(magicast@0.3.5)(nitropack@2.12.4(@netlify/blobs@9.1.2)(idb-keyval@6.2.2))(nuxi@3.23.0)(nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@24.0.7)(@vue/compiler-sfc@3.5.18)(db0@0.3.2)(eslint@9.33.0(jiti@2.5.1))(idb-keyval@6.2.2)(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.9.2)(vue-tsc@3.0.5(typescript@5.9.2))(yaml@2.8.1))(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)): + nuxt-mcp@0.2.4(magicast@0.3.5)(nitropack@2.12.4(@netlify/blobs@9.1.2)(idb-keyval@6.2.2))(nuxi@3.23.0)(nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@24.0.7)(@vue/compiler-sfc@3.5.18)(db0@0.3.2)(eslint@9.33.0(jiti@2.5.1))(idb-keyval@6.2.2)(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.9.2)(vue-tsc@3.0.5(typescript@5.9.2))(yaml@2.8.1))(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)): dependencies: - '@modelcontextprotocol/sdk': 1.17.1 + '@modelcontextprotocol/sdk': 1.17.2 '@nuxt/kit': 4.0.3(magicast@0.3.5) ansis: 4.1.0 async-cache-dedupe: 2.2.0 @@ -12006,21 +12190,21 @@ snapshots: debug: 4.4.1 nitropack: 2.12.4(@netlify/blobs@9.1.2)(idb-keyval@6.2.2) nuxi: 3.23.0 - nuxt: 4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@24.0.7)(@vue/compiler-sfc@3.5.18)(db0@0.3.2)(eslint@9.33.0(jiti@2.5.1))(idb-keyval@6.2.2)(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.9.2)(vue-tsc@3.0.5(typescript@5.9.2))(yaml@2.8.1) + nuxt: 4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@24.0.7)(@vue/compiler-sfc@3.5.18)(db0@0.3.2)(eslint@9.33.0(jiti@2.5.1))(idb-keyval@6.2.2)(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.9.2)(vue-tsc@3.0.5(typescript@5.9.2))(yaml@2.8.1) pathe: 2.0.3 unimport: 5.2.0 - vite: rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) - vite-plugin-mcp: 0.2.4(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) + vite: rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + vite-plugin-mcp: 0.2.4(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) zod: 3.25.76 transitivePeerDependencies: - magicast - supports-color - nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@24.0.7)(@vue/compiler-sfc@3.5.18)(db0@0.3.2)(eslint@9.33.0(jiti@2.5.1))(idb-keyval@6.2.2)(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.9.2)(vue-tsc@3.0.5(typescript@5.9.2))(yaml@2.8.1): + nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@24.0.7)(@vue/compiler-sfc@3.5.18)(db0@0.3.2)(eslint@9.33.0(jiti@2.5.1))(idb-keyval@6.2.2)(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.9.2)(vue-tsc@3.0.5(typescript@5.9.2))(yaml@2.8.1): dependencies: - '@nuxt/cli': 3.27.0(magicast@0.3.5) + '@nuxt/cli': 3.28.0(magicast@0.3.5) '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 2.6.2(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.18(typescript@5.9.2)) + '@nuxt/devtools': 2.6.2(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.18(typescript@5.9.2)) '@nuxt/kit': 4.0.3(magicast@0.3.5) '@nuxt/schema': 4.0.3 '@nuxt/telemetry': 2.6.6(magicast@0.3.5) @@ -12140,7 +12324,7 @@ snapshots: nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.1)(@types/node@24.0.7)(@vue/compiler-sfc@3.5.18)(db0@0.3.2)(eslint@9.33.0(jiti@2.5.1))(idb-keyval@6.2.2)(ioredis@5.6.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.9.2)(vite@6.2.6(@types/node@24.0.7)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue-tsc@3.0.5(typescript@5.9.2))(yaml@2.8.1): dependencies: - '@nuxt/cli': 3.27.0(magicast@0.3.5) + '@nuxt/cli': 3.28.0(magicast@0.3.5) '@nuxt/devalue': 2.0.2 '@nuxt/devtools': 2.6.2(vite@6.2.6(@types/node@24.0.7)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.18(typescript@5.9.2)) '@nuxt/kit': 4.0.3(magicast@0.3.5) @@ -12260,6 +12444,14 @@ snapshots: - xml2js - yaml + nypm@0.6.0: + dependencies: + citty: 0.1.6 + consola: 3.4.2 + pathe: 2.0.3 + pkg-types: 2.2.0 + tinyexec: 0.3.2 + nypm@0.6.1: dependencies: citty: 0.1.6 @@ -12488,6 +12680,8 @@ snapshots: picomatch@2.3.1: {} + picomatch@4.0.2: {} + picomatch@4.0.3: {} pidtree@0.6.0: {} @@ -12510,7 +12704,7 @@ snapshots: pnpm-workspace-yaml@1.1.0: dependencies: - yaml: 2.8.1 + yaml: 2.8.0 postcss-calc@10.1.1(postcss@8.5.6): dependencies: @@ -12894,7 +13088,7 @@ snapshots: - oxc-resolver - supports-color - rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1): + rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1): dependencies: fdir: 6.4.6(picomatch@4.0.3) lightningcss: 1.30.1 @@ -13064,6 +13258,8 @@ snapshots: shebang-regex@3.0.0: {} + shell-quote@1.8.2: {} + shell-quote@1.8.3: {} side-channel-list@1.0.0: @@ -13287,6 +13483,10 @@ snapshots: dependencies: '@pkgr/core': 0.2.9 + synckit@0.11.8: + dependencies: + '@pkgr/core': 0.2.7 + system-architecture@0.1.0: {} tapable@2.2.2: {} @@ -13448,7 +13648,7 @@ snapshots: dependencies: '@quansync/fs': 0.1.1 defu: 6.1.4 - jiti: 2.5.1 + jiti: 2.4.2 quansync: 0.2.10 uncrypto@0.1.3: {} @@ -13462,6 +13662,14 @@ snapshots: undici-types@7.8.0: {} + unenv@2.0.0-rc.18: + dependencies: + defu: 6.1.4 + exsolve: 1.0.7 + ohash: 2.0.11 + pathe: 2.0.3 + ufo: 1.6.1 + unenv@2.0.0-rc.19: dependencies: defu: 6.1.4 @@ -13576,7 +13784,7 @@ snapshots: dependencies: '@vue-macros/common': 3.0.0-beta.16(vue@3.5.18(typescript@5.9.2)) '@vue/compiler-sfc': 3.5.18 - '@vue/language-core': 3.0.5(typescript@5.9.2) + '@vue/language-core': 3.0.4(typescript@5.9.2) ast-walker-scope: 0.8.1 chokidar: 4.0.3 json5: 2.2.3 @@ -13590,7 +13798,7 @@ snapshots: tinyglobby: 0.2.14 unplugin: 2.3.5 unplugin-utils: 0.2.4 - yaml: 2.8.1 + yaml: 2.8.0 optionalDependencies: vue-router: 4.5.1(vue@3.5.18(typescript@5.9.2)) transitivePeerDependencies: @@ -13637,7 +13845,7 @@ snapshots: anymatch: 3.1.3 chokidar: 4.0.3 destr: 2.0.5 - h3: 1.15.4 + h3: 1.15.3 lru-cache: 10.4.3 node-fetch-native: 1.6.6 ofetch: 1.4.1 @@ -13698,11 +13906,11 @@ snapshots: vary@1.1.2: {} - vite-dev-rpc@1.1.0(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)): + vite-dev-rpc@1.1.0(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)): dependencies: birpc: 2.5.0 - vite: rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) - vite-hot-client: 2.1.0(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) + vite: rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + vite-hot-client: 2.1.0(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) vite-dev-rpc@1.1.0(vite@6.2.6(@types/node@24.0.7)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)): dependencies: @@ -13710,9 +13918,9 @@ snapshots: vite: 6.2.6(@types/node@24.0.7)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) vite-hot-client: 2.1.0(vite@6.2.6(@types/node@24.0.7)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) - vite-hot-client@2.1.0(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)): + vite-hot-client@2.1.0(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)): dependencies: - vite: rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + vite: rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) vite-hot-client@2.1.0(vite@6.2.6(@types/node@24.0.7)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)): dependencies: @@ -13724,7 +13932,7 @@ snapshots: debug: 4.4.1 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + vite: rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - esbuild @@ -13739,7 +13947,7 @@ snapshots: - tsx - yaml - vite-plugin-checker@0.10.2(eslint@9.33.0(jiti@2.5.1))(optionator@0.9.4)(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(typescript@5.9.2)(vue-tsc@3.0.5(typescript@5.9.2)): + vite-plugin-checker@0.10.2(eslint@9.33.0(jiti@2.5.1))(optionator@0.9.4)(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(typescript@5.9.2)(vue-tsc@3.0.5(typescript@5.9.2)): dependencies: '@babel/code-frame': 7.27.1 chokidar: 4.0.3 @@ -13749,7 +13957,7 @@ snapshots: strip-ansi: 7.1.0 tiny-invariant: 1.3.3 tinyglobby: 0.2.14 - vite: rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + vite: rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) vscode-uri: 3.1.0 optionalDependencies: eslint: 9.33.0(jiti@2.5.1) @@ -13757,7 +13965,7 @@ snapshots: typescript: 5.9.2 vue-tsc: 3.0.5(typescript@5.9.2) - vite-plugin-inspect@11.3.2(@nuxt/kit@4.0.3(magicast@0.3.5))(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)): + vite-plugin-inspect@11.3.2(@nuxt/kit@4.0.3(magicast@0.3.5))(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)): dependencies: ansis: 4.1.0 debug: 4.4.1 @@ -13767,8 +13975,8 @@ snapshots: perfect-debounce: 1.0.0 sirv: 3.0.1 unplugin-utils: 0.2.4 - vite: rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) - vite-dev-rpc: 1.1.0(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) + vite: rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + vite-dev-rpc: 1.1.0(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) optionalDependencies: '@nuxt/kit': 4.0.3(magicast@0.3.5) transitivePeerDependencies: @@ -13791,25 +13999,25 @@ snapshots: transitivePeerDependencies: - supports-color - vite-plugin-mcp@0.2.4(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)): + vite-plugin-mcp@0.2.4(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)): dependencies: - '@modelcontextprotocol/sdk': 1.17.1 + '@modelcontextprotocol/sdk': 1.17.2 ansis: 4.1.0 debug: 4.4.1 pathe: 2.0.3 - vite: rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + vite: rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) zod: 3.25.76 transitivePeerDependencies: - supports-color - vite-plugin-vue-tracer@1.0.0(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.18(typescript@5.9.2)): + vite-plugin-vue-tracer@1.0.0(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.18(typescript@5.9.2)): dependencies: estree-walker: 3.0.3 exsolve: 1.0.7 magic-string: 0.30.17 pathe: 2.0.3 source-map-js: 1.2.1 - vite: rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + vite: rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) vue: 3.5.18(typescript@5.9.2) vite-plugin-vue-tracer@1.0.0(vite@6.2.6(@types/node@24.0.7)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1))(vue@3.5.18(typescript@5.9.2)): @@ -13840,7 +14048,7 @@ snapshots: dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -13851,14 +14059,14 @@ snapshots: expect-type: 1.2.1 magic-string: 0.30.17 pathe: 2.0.3 - picomatch: 4.0.3 + picomatch: 4.0.2 std-env: 3.9.0 tinybench: 2.9.0 tinyexec: 0.3.2 tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: rolldown-vite@7.1.0(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) + vite: rolldown-vite@7.1.2(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) vite-node: 3.2.4(@types/node@24.0.7)(esbuild@0.25.8)(jiti@2.5.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: @@ -14060,7 +14268,9 @@ snapshots: yaml-eslint-parser@1.3.0: dependencies: eslint-visitor-keys: 3.4.3 - yaml: 2.8.1 + yaml: 2.8.0 + + yaml@2.8.0: {} yaml@2.8.1: {} @@ -14090,7 +14300,7 @@ snapshots: '@poppinss/exception': 1.2.2 error-stack-parser-es: 1.0.5 - youch@4.1.0-beta.10: + youch@4.1.0-beta.11: dependencies: '@poppinss/colors': 4.1.5 '@poppinss/dumper': 0.6.4 @@ -14116,6 +14326,8 @@ snapshots: dependencies: zod: 3.25.76 + zod@3.25.67: {} + zod@3.25.76: {} zwitch@2.0.4: {} diff --git a/tsconfig.pkgs.json b/tsconfig.pkgs.json index 9f8422d..9596544 100644 --- a/tsconfig.pkgs.json +++ b/tsconfig.pkgs.json @@ -9,5 +9,8 @@ "packages/devtools/src/**/*.ts", "packages/devtools-kit/src/**/*.ts", "packages/devtools-rpc/src/**/*.ts" + ], + "exclude": [ + "packages/devtools-vite/src/app/**/*.ts" ] }