diff --git a/README.md b/README.md index ebaad42..1d04e53 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,3 @@ -
Starlight Launcher Logo

Starlight Launcher

@@ -73,3 +72,310 @@ Starlight Launcher 的进步离不开社区的反馈与贡献。 参与社区和贡献代码前,也请先阅读[行为准则 (CODE_OF_CONDUCT.md)](CODE_OF_CONDUCT.md)。 --- + +# 🌟 启动过渡动画(本次改动) + +> 本节记录「游戏启动时窗口平滑过渡」功能的完整实现,供后续维护、移植与继续开发使用。 +> **生效平台:仅 Windows**(其他平台为空实现,行为与改动前一致)。 + +## 一、功能目标 + +消除「点击启动 → MC 游戏窗口突然弹出 → 把启动器挤走」的割裂感,用一套完整的窗口动画把这段过渡变得顺滑。 + +启动一个实例后,会经历以下动画序列: + +``` +点击「启动实例」 + ↓ +① 纯色遮罩出现(启动器主题色,无图)—— 立刻盖住后续所有抖动 + ↓ +② 启动器放大到全屏(0.4s 动画,全程置顶 + 聚焦) + ↓ +③ 全屏后,遮罩上渐显 Mojang SVG logo(0.5s) + ↓ +④ 等待 MC 游戏窗口出现(最多 60 秒,期间遮罩一直盖着) + ↓ +⑤ 缩小前:遮罩背景色 → Mojang 红 (#db1f29) + 渐隐 logo(0.5s) + ↓ +⑥ 启动器缩放到 MC 窗口的位置和大小(0.4s) + ↓ +⑦ 等待 1 秒(让游戏稳定,遮罩仍在) + ↓ +⑧ 整体淡出透明(0.5s)→ 聚焦游戏窗口 → 启动器最小化 + ↓ +进入轻量模式(隐藏到系统托盘) +``` + +**设计要点**: + +- **遮罩提前**:纯色遮罩在放大**之前**就出现,所以放大和缩小时的窗口抖动都被盖住,用户看不到。 +- **缩放与淡出串行**:先缩放完成,再淡出,不再同步进行(早期版本两者同步,观感差)。 +- **动画放慢**:缩放 0.4s(早期 0.2s 太快),淡出 0.5s。 +- **修复重开透明**:最小化后重置窗口透明度,并且恢复时用轻量模式**重建全新窗口**,彻底杜绝「重新打开启动器一片透明、需要点击/拖动才恢复」的问题。 +- **轻量模式接管**:过渡动画结束后,统一进入轻量模式(隐藏到托盘),不再分别判断用户的「轻量模式 / 启动后隐藏」设置,避免冲突。 + +## 二、改动文件总览 + +| 文件 | 改动类型 | 说明 | +|---|---|---| +| `apps/app/src/mc_transition.rs` | **新建** | 核心模块(约 470 行),负责窗口查找、四段动画、遮罩/淡出协调 | +| `apps/app/src/main.rs` | 修改 | 声明模块 + 注册 4 个 Tauri 命令 | +| `apps/app/src/lightweight_mode.rs` | 修改 | `launched` 分支接入过渡,并统一进轻量模式 | +| `apps/app/Cargo.toml` | 修改 | windows crate 增加 `Win32_Graphics_Gdi` feature | +| `apps/app-frontend/src/App.vue` | 修改 | 遮罩三阶段、淡出、透明度重置等前端逻辑 | +| `apps/app-frontend/public/mojang-logo.svg` | 新建 | 过渡遮罩上显示的 Mojang logo | +| `packages/app-lib/.env` | 新建 | 从 `.env.prod` 复制,提供编译期环境变量(非功能改动) | + +## 三、各文件详细说明 + +### 1. `apps/app/src/mc_transition.rs`(新建 · 核心) + +> 搜索定位关键词:`mc_transition` + +**关键常量**: + +| 常量 | 值 | 含义 | +|---|---|---| +| `FIND_RETRIES` | 120 | 等待 MC 窗口的最大轮询次数 | +| `FIND_INTERVAL_MS` | 500 | 每次轮询间隔(120 × 500ms = 60 秒) | +| `ANIM_DURATION_MS` | 400 | 放大/缩小动画时长(0.4s) | +| `ANIM_STEPS` | 50 | 动画帧数(400ms / 50 = 8ms 一帧) | +| `FADE_TIMEOUT_MS` | 700 | 等待前端淡出的超时兜底 | + +**静态变量(跨 await 传信号)**: + +- `FADE_DONE` — 等前端淡出完成 +- `COVER_DONE` — 等纯色遮罩出现 +- `LOGO_IN_DONE` — 等 logo 渐显完成 +- `LOGO_OUT_DONE` — 等 logo 渐隐 + 变红完成 + +**关键函数**: + +| 函数 | 关键词 | 作用 | +|---|---|---| +| `pub async fn run(app, pid, maximize)` | `run() invoked` | 主入口,串联全部 8 步 | +| `async fn animate_resize(...)` | `animate_resize` | 分帧移动 + 缩放窗口 | +| `fn ease_in_out(t)` | `ease_in_out` | 缓入缓出曲线 | +| `win_impl::find_window(pid)` | `find_cb` / `FOUND_HWND` | 按 pid 枚举顶层窗口 | +| `win_impl::covers_monitor(raw)` | `covers_monitor` | 判断窗口是否铺满显示器 | +| `win_impl::get_rect(raw)` | `get_rect` | 取窗口矩形 | +| `win_impl::focus(raw)` | `SetForegroundWindow` | 把焦点交给游戏 | +| `win_impl::dump_pid_windows(pid)` | `dump_pid_windows` | **调试用**:列出 pid 下所有窗口 | +| `#[tauri::command] mc_transition_fade_done` | — | 前端淡出完成回调 | +| `#[tauri::command] mc_transition_cover_ready` | — | 遮罩出现完成回调 | +| `#[tauri::command] mc_transition_logo_in_done` | — | logo 渐显完成回调 | +| `#[tauri::command] mc_transition_logo_out_done` | — | logo 渐隐完成回调 | + +**⚠️ 三个关键设计约束(改代码前必读)**: + +1. **HWND 不能跨 await 持有**。 + `HWND` 是裸指针,非 `Send`,一旦跨 `await` 持有,async 块就不是 `Send`,无法被 `tauri::async_runtime::spawn`。 + → 因此全程用 `usize` 保存窗口句柄(变量 `mc_raw`),只在同步的 win32 调用里通过 `to_hwnd()` 临时转回。 + 搜索关键词:`to_hwnd`、`FOUND_HWND` + +2. **`BOOL` 的导入路径**。 + `windows` crate 0.61 中,`BOOL` 位于 `windows::core::BOOL`,**不在** `Win32::Foundation`。 + 搜索关键词:`use windows::core::BOOL` + +3. **窗口尺寸过滤阈值**。 + `find_cb` 里只认宽高都 > 50 的可见窗口,用来排除工具窗口 / 0 尺寸窗口。 + +**⚠️ 调试代码仍在(上线前需清理)**: + +- `fn dbg(msg)` —— 把日志直接写入 `%USERPROFILE%\mc_transition_debug.log`,绕过 tracing 配置 +- 全文件多处 `dbg(...)` 调用 +- 等待窗口期间每 2 秒调用一次 `dump_pid_windows` +- 搜索关键词:`fn dbg(`、`mc_transition_debug.log`、`dump_pid_windows` + +### 2. `apps/app/src/main.rs` + +- 第 25 行附近:`mod mc_transition;` +- `invoke_handler` 的 `generate_handler!` 宏内注册 4 个命令: + +```rust +mc_transition::mc_transition_fade_done, +mc_transition::mc_transition_cover_ready, +mc_transition::mc_transition_logo_in_done, +mc_transition::mc_transition_logo_out_done, +``` + +- 搜索关键词:`mod mc_transition`、`mc_transition_fade_done` + +### 3. `apps/app/src/lightweight_mode.rs` + +`process_event` 中 `None if payload.event == "launched"` 分支(约 250 行起): + +- 新增调用:`crate::mc_transition::run(&app, payload.pid, payload.maximize_window).await;` +- 过渡完成后**统一**进入轻量模式:`state.enter(&app)` +- **删除**了原来分别判断 `settings.enter_lightweight_mode_on_game_launch` 与 `settings.hide_on_process_start` 的逻辑 +- 搜索关键词:`crate::mc_transition::run`、`launched`、`enter lightweight mode after transition` + +**执行顺序**: +``` +maximize_minecraft_window(若用户勾选最大化) + → mc_transition::run(完整过渡动画) + → state.enter()(隐藏到托盘) +``` + +### 4. `apps/app/Cargo.toml` + +`[target."cfg(windows)".dependencies.windows]` 的 features 中新增: + +```toml +"Win32_Graphics_Gdi", +``` + +> 原因:`GetMonitorInfoW` / `MonitorFromWindow` / `MONITORINFO` 属于 GDI 模块,不加会编译失败。 + +- 搜索关键词:`Win32_Graphics_Gdi` + +### 5. `apps/app-frontend/src/App.vue` + +**变量声明**(约 376~381 行): + +```ts +let unlistenMcTransitionFadeout: (() => void) | undefined +let unlistenMcTransitionFocus: (() => void) | undefined +let unlistenMcTransitionCover: (() => void) | undefined +let unlistenMcTransitionLogoIn: (() => void) | undefined +let unlistenMcTransitionLogoOut: (() => void) | undefined +let unlistenMcTransitionReset: (() => void) | undefined +``` + +**`onMounted` 内注册的监听**(约 500 行起): + +| 监听事件 | 作用 | +|---|---| +| `mc-transition-fadeout` | `#app` 设 `opacity: 0` + 500ms 过渡,510ms 后回调 `mc_transition_fade_done` | +| `mc-transition-cover-show` | 动态创建遮罩 div(主题色背景 + 隐藏的 logo),渐显后回调 `mc_transition_cover_ready` | +| `mc-transition-logo-in` | logo 渐显(opacity 0→1),520ms 后回调 `mc_transition_logo_in_done` | +| `mc-transition-logo-out` | 遮罩背景 → `#db1f29` + logo 渐隐,520ms 后回调 `mc_transition_logo_out_done` | +| `mc-transition-reset-opacity` | 重置 `#app` 透明度 + 移除遮罩 | + +**透明度重置(修复重开透明)**——三重兜底: +- `window` 的 `focus` 事件 +- `document` 的 `visibilitychange` 事件 +- Tauri 的 `getCurrentWindow().onFocusChanged` + +任一触发即调用 `resetLauncherOpacity()`,把 `#app` 的 opacity 清空。 + +**`onUnmounted` 内清理**(约 674 行起):6 个 `unlistenMcTransition*.?.()` + +- 搜索关键词:`unlistenMcTransitionFadeout`、`mc-transition-fadeout`、`mc_transition_fade_done`、`mcCoverEl`、`resetLauncherOpacity` + +**遮罩实现细节**: + +遮罩是**运行时动态创建**的 DOM(不是 Vue template),避免改动庞大的 template 结构: + +```ts +mcCoverEl = document.createElement('div') // 固定定位、铺满、主题色背景、最高 z-index +mcCoverImg = document.createElement('img') // /mojang-logo.svg,初始 opacity 0 +``` + +- 遮罩 id:`mc-transition-cover` +- 背景色:`var(--color-brand, #db1f29)`(跟随启动器主题色) +- logo 宽度:42%,最大 640px + +### 6. `apps/app-frontend/public/mojang-logo.svg`(新建) + +过渡遮罩上显示的 Mojang 官方 logo(矢量图)。 + +## 四、实测记录 + +调试日志 `%USERPROFILE%\mc_transition_debug.log` 中的一次完整流程实录: + +``` +run() invoked pid=3088 maximize=false +try#0 ... try#38 candidates: [] <- MC 窗口约 20 秒后才出现 +FOUND hwnd=0x3b03da try#40 covers=false +... +``` + +**关键发现**: +- **MC 窗口需要约 20 秒才出现**(带 mod 的实例更慢),所以等待轮询必须足够长(当前 60s)。 +- 早期版本只等 5 秒,导致「启动器毫无变化」的假象——实际是超时静默放弃了。 + +## 五、编译与运行(Windows) + +### 前置准备 + +```bat +:: 1. 子模块(本项目不是 git 仓库,需手动 clone) +git clone https://github.com/Cubitect/cubiomes.git apps/app/vendor/cubiomes +git clone https://github.com/Axolotl-Launcher/blockbench-skin-standalone.git third-party/blockbench + +:: 2. 环境变量(或把 .env.prod 复制为 packages/app-lib/.env) +set "PATH=%USERPROFILE%\.cargo\bin;%PATH%" +set "MODRINTH_URL=https://modrinth.com/" +set "MODRINTH_API_BASE_URL=https://api.modrinth.com/" +set "MODRINTH_ARCHON_BASE_URL=https://archon.modrinth.com/" +set "MODRINTH_API_URL=https://api.modrinth.com/v2/" +set "MODRINTH_API_URL_V3=https://api.modrinth.com/v3/" +set "MODRINTH_SOCKET_URL=wss://api.modrinth.com/" +set "MODRINTH_LAUNCHER_META_URL=https://launcher-meta.modrinth.com/" +``` + +### 构建 + +```bat +:: 前端 +pnpm install +pnpm --filter @modrinth/app-frontend run build + +:: 后端 debug(产物 target/debug/theseus_gui.exe,约 155 MB) +cargo build -p theseus_gui + +:: 后端 release(产物 target/release/theseus_gui.exe,约 75 MB) +cargo build -p theseus_gui --release +``` + +### 已知坑 + +| 坑 | 现象 | 解决 | +|---|---|---| +| 子模块缺失 | `build.rs` panic:`Blockbench skin editor submodule is missing` | 手动 clone 两个子模块 | +| 资源路径校验 | `resource path resources\blockbench-skin doesn't exist` | 构建会自动生成;若报错手动建空目录 | +| 环境变量缺失 | `environment variable MODRINTH_API_URL not defined` | 见上方环境变量,或复制 `.env` | +| 数据库迁移冲突 | `migration ... was previously applied but is missing` | 删除 `%APPDATA%\cool.starlight.launcher\release\app.db` 后重启 | +| exe 被占用 | `failed to remove file ...theseus_gui.exe`(拒绝访问) | `taskkill /F /IM theseus_gui.exe` 后重编 | +| `pnpm app:build` 失败 | 找不到 cargo | 那会走完整 `tauri build` 打包;只构建前端请用 `--filter @modrinth/app-frontend` | + +## 六、待办 / TODO + +| # | 事项 | 优先级 | 关键词 | +|---|---|---|---| +| 1 | **清理调试代码**:删 `fn dbg` + 所有 `dbg(...)` + `dump_pid_windows` 调用 | 高 | `fn dbg(`、`mc_transition_debug.log` | +| 2 | 等待窗口超时(60s)可做成可配置 / 事件驱动 | 中 | `FIND_RETRIES` | +| 3 | 多显示器场景未充分测试(已按窗口所在屏取显示器) | 中 | `monitor_rect` | +| 4 | 前端淡出若卡顿靠 700ms 兜底 | 低 | `FADE_TIMEOUT_MS` | +| 5 | `SetForegroundWindow` 可能被系统拒绝,未做失败重试 | 低 | `focus` | +| 6 | 未来若做 macOS / Linux 支持:需 `CGWindowListCopyWindowInfo` / X11(Wayland 基本不可行) | 低 | `#[cfg(target_os]` | + +## 七、快速搜索索引 + +| 想找什么 | 搜这个关键词 | +|---|---| +| 核心模块 | `mc_transition` | +| 过渡主流程 | `pub async fn run(app` | +| 八步流程标记 | `step 1` ~ `step 8` | +| 找 MC 窗口 | `find_window`、`find_cb` | +| 全屏判定 | `covers_monitor` | +| 缩放动画 | `animate_resize`、`ANIM_DURATION_MS` | +| 缓动曲线 | `ease_in_out` | +| 纯色遮罩事件 | `mc-transition-cover-show` | +| logo 渐显事件 | `mc-transition-logo-in` | +| logo 渐隐/变红事件 | `mc-transition-logo-out` | +| 淡出事件 | `mc-transition-fadeout` | +| 透明度重置事件 | `mc-transition-reset-opacity` | +| 前端回调命令 | `mc_transition_cover_ready`、`mc_transition_logo_in_done`、`mc_transition_logo_out_done`、`mc_transition_fade_done` | +| 接入点 | `crate::mc_transition::run` | +| 透明度重置函数 | `resetLauncherOpacity` | +| 遮罩 DOM | `mc-transition-cover`、`mcCoverEl` | +| 调试日志(待删) | `fn dbg(`、`mc_transition_debug.log` | +| 调试日志文件 | `%USERPROFILE%\mc_transition_debug.log` | +| windows feature | `Win32_Graphics_Gdi` | +| 数据库冲突 | `previously applied but is missing` | + +--- + +_文档结束。功能已跑通,上线前记得清理调试代码喵。_ \ No newline at end of file diff --git a/apps/app-frontend/public/mojang-logo.svg b/apps/app-frontend/public/mojang-logo.svg new file mode 100644 index 0000000..3e6e49f --- /dev/null +++ b/apps/app-frontend/public/mojang-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/app-frontend/src/App.vue b/apps/app-frontend/src/App.vue index d7eb03e..2eeb9a8 100644 --- a/apps/app-frontend/src/App.vue +++ b/apps/app-frontend/src/App.vue @@ -373,6 +373,12 @@ let allowWindowClose = false let unlistenCloseRequested: (() => void) | undefined let unlistenLightweightModeError: (() => void) | undefined let unlistenSystemAccentColor: (() => void) | undefined +let unlistenMcTransitionFadeout: (() => void) | undefined +let unlistenMcTransitionFocus: (() => void) | undefined +let unlistenMcTransitionCover: (() => void) | undefined +let unlistenMcTransitionLogoIn: (() => void) | undefined +let unlistenMcTransitionLogoOut: (() => void) | undefined +let unlistenMcTransitionReset: (() => void) | undefined let maximizedStateTimer: ReturnType | undefined let unlistenWindowResize: (() => void) | undefined const minecraftCrashModal = ref() @@ -491,6 +497,104 @@ onMounted(async () => { checkUpdates() void warnIfRunningElevated() startDirectLinkSync() + unlistenMcTransitionFadeout = await listen('mc-transition-fadeout', async () => { + // 游戏窗口已就位、启动器已缩放到同尺寸。这里做 0.5s CSS 淡出, + // 完成后回调 Rust,由后端执行聚焦游戏 + 最小化启动器。 + const root = document.getElementById('app') + if (root) { + root.style.transition = 'opacity 500ms ease-out' + root.style.opacity = '0' + } + window.setTimeout(() => { + void invoke('mc_transition_fade_done').catch(() => {}) + }, 510) + }) + + // 窗口恢复可见时,清掉残留的淡出透明度,避免再次打开时全透明。 + const resetLauncherOpacity = () => { + const root = document.getElementById('app') + if (root) { + root.style.transition = 'none' + root.style.opacity = '' + void root.offsetHeight + } + } + window.addEventListener('focus', resetLauncherOpacity) + document.addEventListener('visibilitychange', () => { + if (document.visibilityState === 'visible') resetLauncherOpacity() + }) + unlistenMcTransitionFocus = await getCurrentWindow().onFocusChanged(({ payload: focused }) => { + if (focused) resetLauncherOpacity() + }) + + // ============ 启动过渡遮罩(三阶段) ============ + // 阶段1:纯色遮罩(主题色,无图)—— 盖住放大抖动 + // 阶段2:全屏后渐显 SVG logo + // 阶段3:缩小前背景变 Mojang 红 + 渐隐 logo + let mcCoverEl = null + let mcCoverImg = null + + unlistenMcTransitionCover = await listen('mc-transition-cover-show', () => { + const app = document.getElementById('app') + if (!app) return + if (!mcCoverEl) { + mcCoverEl = document.createElement('div') + mcCoverEl.id = 'mc-transition-cover' + mcCoverEl.style.cssText = [ + 'position: fixed', + 'inset: 0', + 'z-index: 999999', + 'display: flex', + 'align-items: center', + 'justify-content: center', + 'background: var(--color-brand, #db1f29)', + 'transition: background-color 500ms ease, opacity 300ms ease-out', + 'opacity: 0', + 'pointer-events: none', + ].join(';') + mcCoverImg = document.createElement('img') + mcCoverImg.src = '/mojang-logo.svg' + mcCoverImg.alt = '' + mcCoverImg.style.cssText = + 'width: 42%; max-width: 640px; height: auto; opacity: 0; transition: opacity 500ms ease-out;' + mcCoverEl.appendChild(mcCoverImg) + app.appendChild(mcCoverEl) + } + requestAnimationFrame(() => { + mcCoverEl.style.opacity = '1' + }) + window.setTimeout(() => { + void invoke('mc_transition_cover_ready').catch(() => {}) + }, 320) + }) + + unlistenMcTransitionLogoIn = await listen('mc-transition-logo-in', () => { + if (mcCoverImg) mcCoverImg.style.opacity = '1' + window.setTimeout(() => { + void invoke('mc_transition_logo_in_done').catch(() => {}) + }, 520) + }) + + unlistenMcTransitionLogoOut = await listen('mc-transition-logo-out', () => { + if (mcCoverEl) mcCoverEl.style.backgroundColor = '#db1f29' + if (mcCoverImg) mcCoverImg.style.opacity = '0' + window.setTimeout(() => { + void invoke('mc_transition_logo_out_done').catch(() => {}) + }, 520) + }) + + unlistenMcTransitionReset = await listen('mc-transition-reset-opacity', () => { + const app = document.getElementById('app') + if (app) { + app.style.transition = 'none' + app.style.opacity = '' + } + if (mcCoverEl) { + mcCoverEl.remove() + mcCoverEl = null + mcCoverImg = null + } + }) }) let directLinkSync: (() => Promise) | undefined @@ -567,6 +671,12 @@ onUnmounted(async () => { window.removeEventListener('keydown', handleGlobalKeydown, true) unlistenCloseRequested?.() unlistenLightweightModeError?.() + unlistenMcTransitionFadeout?.() + unlistenMcTransitionFocus?.() + unlistenMcTransitionCover?.() + unlistenMcTransitionLogoIn?.() + unlistenMcTransitionLogoOut?.() + unlistenMcTransitionReset?.() unlistenSystemAccentColor?.() document.querySelector('body').removeEventListener('click', handleClick) document.querySelector('body').removeEventListener('auxclick', handleAuxClick) diff --git a/apps/app/Cargo.toml b/apps/app/Cargo.toml index 4671426..6261f3d 100644 --- a/apps/app/Cargo.toml +++ b/apps/app/Cargo.toml @@ -92,6 +92,7 @@ features = [ "Foundation", "UI_ViewManagement", "Win32_Graphics_Dwm", + "Win32_Graphics_Gdi", "Win32_System_Com", "Win32_UI_Shell", "Win32_UI_WindowsAndMessaging", diff --git a/apps/app/src/lightweight_mode.rs b/apps/app/src/lightweight_mode.rs index fba37e7..6691435 100644 --- a/apps/app/src/lightweight_mode.rs +++ b/apps/app/src/lightweight_mode.rs @@ -253,29 +253,22 @@ impl LightweightMode { if payload.maximize_window { maximize_minecraft_window(payload.pid).await; } - let settings = match theseus::settings::get().await { - Ok(settings) => settings, - Err(error) => { - tracing::warn!( - "Failed to read lightweight mode setting: {error}" - ); - return; - } - }; - if settings.enter_lightweight_mode_on_game_launch { - let state = app.state::(); - if let Err(error) = state.enter(&app) { - tracing::warn!( - "Failed to enter lightweight mode: {error}" - ); - } - } else if settings.hide_on_process_start - && let Some(window) = - app.get_webview_window(MAIN_WINDOW_LABEL) - && let Err(error) = window.minimize() - { + // 窗口过渡:把启动器全屏遮罩 → 缩放 → 淡出 → 最小化 + crate::mc_transition::run( + &app, + payload.pid, + payload.maximize_window, + ) + .await; + // 过渡动画结束后,统一进入轻量模式(隐藏到托盘)。 + // 由过渡流程接管,不再各自判断用户的「轻量模式 / + // 启动后隐藏」设置,避免与动画收尾冲突,也顺带修掉 + // 「重开时窗口全透明」的问题(轻量模式恢复时是重建 + // 全新窗口,不残留旧的 opacity)。 + let state = app.state::(); + if let Err(error) = state.enter(&app) { tracing::warn!( - "Failed to minimize launcher after Minecraft started: {error}" + "Failed to enter lightweight mode after transition: {error}" ); } }); diff --git a/apps/app/src/main.rs b/apps/app/src/main.rs index 6c0254a..125680d 100644 --- a/apps/app/src/main.rs +++ b/apps/app/src/main.rs @@ -22,6 +22,7 @@ use theseus::prelude::*; mod api; mod error; mod lightweight_mode; +mod mc_transition; mod mod_translation; mod portable; mod seed_map; @@ -867,6 +868,10 @@ fn main() { lightweight_mode::lightweight_mode_frontend_ready, lightweight_mode::lightweight_mode_set_route, lightweight_mode::lightweight_mode_enter, + mc_transition::mc_transition_fade_done, + mc_transition::mc_transition_cover_ready, + mc_transition::mc_transition_logo_in_done, + mc_transition::mc_transition_logo_out_done, ]); tracing::info!("Initializing app..."); diff --git a/apps/app/src/mc_transition.rs b/apps/app/src/mc_transition.rs new file mode 100644 index 0000000..41f384d --- /dev/null +++ b/apps/app/src/mc_transition.rs @@ -0,0 +1,470 @@ +//! Minecraft 启动时的窗口过渡动画(仅 Windows 生效)。 +//! +//! 流程(四阶段): +//! 阶段A:启动器放大到全屏(1s 动画),全程置顶 + 聚焦; +//! 阶段B:等待 MC 窗口出现(最多 60s),期间启动器盖住游戏; +//! 阶段C:获取 MC 窗口位置/大小,1s 动画缩放到相同大小; +//! 阶段D:大小一致后,0.5s 淡出(不与缩放同步); +//! 阶段E:聚焦游戏窗口 → 启动器最小化。 +//! +//! 过渡结束后返回,由调用方继续执行用户的轻量模式 / 隐藏设置。 +//! +//! 注意:HWND 是裸指针,非 Send,不能跨 await 持有,因此一律用 `usize` +//! 保存窗口句柄,只在同步的 win32 调用里临时转回 HWND。 + +#![cfg_attr(not(target_os = "windows"), allow(dead_code, unused_imports))] + +use tauri::{AppHandle, Emitter, Manager, WebviewWindow}; + +/// 主窗口 label,与 lightweight_mode.rs 保持一致。 +pub const MAIN_WINDOW_LABEL: &str = "main"; + +/// 等待 MC 窗口出现的轮询次数与间隔(120 × 500ms = 60s)。 +const FIND_RETRIES: u32 = 120; +const FIND_INTERVAL_MS: u64 = 500; +/// 缩放动画总时长与帧数(1000ms / 50 帧 = 20ms 一帧)。 +const ANIM_DURATION_MS: u64 = 400; +const ANIM_STEPS: u32 = 50; +/// 等待前端完成 CSS 淡出的超时兜底(毫秒)。淡出 500ms,留足余量。 +const FADE_TIMEOUT_MS: u64 = 700; + +#[cfg(target_os = "windows")] +static FADE_DONE: std::sync::Mutex< + Option>, +> = std::sync::Mutex::new(None); + +#[cfg(target_os = "windows")] +static COVER_DONE: std::sync::Mutex< + Option>, +> = std::sync::Mutex::new(None); + +#[cfg(target_os = "windows")] +static LOGO_IN_DONE: std::sync::Mutex< + Option>, +> = std::sync::Mutex::new(None); + +#[cfg(target_os = "windows")] +static LOGO_OUT_DONE: std::sync::Mutex< + Option>, +> = std::sync::Mutex::new(None); + +/// 调试日志:直接追加到用户目录下固定文件,绕过 tracing 配置。 +/// TODO(上线前清理):连同所有 `dbg(...)` 调用一起删除。 +fn dbg(msg: &str) { + use std::io::Write; + let base = + std::env::var("USERPROFILE").unwrap_or_else(|_| "C:\\".to_string()); + let path = format!("{base}\\mc_transition_debug.log"); + if let Ok(mut f) = + std::fs::OpenOptions::new().create(true).append(true).open(path) + { + let _ = writeln!(f, "{msg}"); + } +} + +/// 前端完成淡出动画后的回调命令。 +#[tauri::command] +pub fn mc_transition_fade_done() { + #[cfg(target_os = "windows")] + { + dbg("fade_done callback"); + if let Ok(mut guard) = FADE_DONE.lock() + && let Some(tx) = guard.take() + { + let _ = tx.send(()); + } + } +} + +/// 前端覆盖层渐显完成后的回调命令。 +#[tauri::command] +pub fn mc_transition_cover_ready() { + #[cfg(target_os = "windows")] + { + dbg("cover_ready callback"); + if let Ok(mut guard) = COVER_DONE.lock() + && let Some(tx) = guard.take() + { + let _ = tx.send(()); + } + } +} + +/// 前端 SVG logo 渐显完成后的回调命令。 +#[tauri::command] +pub fn mc_transition_logo_in_done() { + #[cfg(target_os = "windows")] + { + dbg("logo_in_done callback"); + if let Ok(mut guard) = LOGO_IN_DONE.lock() + && let Some(tx) = guard.take() + { + let _ = tx.send(()); + } + } +} + +/// 前端 SVG logo 渐隐 + 背景变红完成后的回调命令。 +#[tauri::command] +pub fn mc_transition_logo_out_done() { + #[cfg(target_os = "windows")] + { + dbg("logo_out_done callback"); + if let Ok(mut guard) = LOGO_OUT_DONE.lock() + && let Some(tx) = guard.take() + { + let _ = tx.send(()); + } + } +} + +/// 缓入缓出曲线,比纯 ease-out 更柔和自然。 +#[cfg(target_os = "windows")] +fn ease_in_out(t: f64) -> f64 { + if t < 0.5 { + 4.0 * t * t * t + } else { + 1.0 - (-2.0 * t + 2.0).powi(3) / 2.0 + } +} + +/// 分帧移动 + 缩放启动器窗口。`from`/`to` 为 (x, y, w, h)。 +/// 若起止相同则直接返回;结束时补一帧精确坐标,避免累积误差。 +#[cfg(target_os = "windows")] +async fn animate_resize( + window: &WebviewWindow, + from: (i32, i32, u32, u32), + to: (i32, i32, u32, u32), + duration_ms: u64, +) { + use tauri::{PhysicalPosition, PhysicalSize}; + + if from == to { + return; + } + let step_ms = (duration_ms / ANIM_STEPS as u64).max(1); + for step in 1..=ANIM_STEPS { + let t = step as f64 / ANIM_STEPS as f64; + let e = ease_in_out(t); + let x = from.0 as f64 + (to.0 - from.0) as f64 * e; + let y = from.1 as f64 + (to.1 - from.1) as f64 * e; + let w = from.2 as f64 + (to.2 as i64 - from.2 as i64) as f64 * e; + let h = from.3 as f64 + (to.3 as i64 - from.3 as i64) as f64 * e; + let _ = + window.set_position(PhysicalPosition::new(x as i32, y as i32)); + let _ = window.set_size(PhysicalSize::new( + w.max(1.0) as u32, + h.max(1.0) as u32, + )); + tokio::time::sleep(std::time::Duration::from_millis(step_ms)).await; + } + // 补最后一帧精确值 + let _ = window.set_position(PhysicalPosition::new(to.0, to.1)); + let _ = window.set_size(PhysicalSize::new(to.2.max(1), to.3.max(1))); +} +pub async fn run(app: &AppHandle, pid: u32, _maximize: bool) { + if pid == 0 { + dbg("run() aborted: pid=0"); + return; + } + let Some(window) = app.get_webview_window(MAIN_WINDOW_LABEL) else { + dbg("run() aborted: main window not found"); + return; + }; + dbg(&format!("run() invoked pid={pid}")); + + // 记录启动器当前矩形作为起点 + let start = { + let p = window.outer_position().map(|p| (p.x, p.y)).unwrap_or((0, 0)); + let s = + window.outer_size().map(|s| (s.width, s.height)).unwrap_or((1280, 800)); + (p.0, p.1, s.0, s.1) + }; + dbg(&format!("launcher start rect = {start:?}")); + + // 全屏目标 = 启动器当前所在显示器的完整矩形 + let fullscreen = match window + .current_monitor() + .ok() + .flatten() + .or_else(|| window.primary_monitor().ok().flatten()) + { + Some(m) => { + (m.position().x, m.position().y, m.size().width, m.size().height) + } + None => { + dbg("no monitor info, abort"); + return; + } + }; + dbg(&format!("fullscreen target = {fullscreen:?}")); + + // 全程置顶 + 聚焦 + let _ = window.set_always_on_top(true); + let _ = window.set_focus(); + + // ---------- 第①步:显示纯色遮罩(无图,主题色) ---------- + dbg("step 1: show plain cover"); + let (cover_tx, cover_rx) = tokio::sync::oneshot::channel::<()>(); + if let Ok(mut guard) = COVER_DONE.lock() { + *guard = Some(cover_tx); + } + let _ = app.emit("mc-transition-cover-show", ()); + let covered = tokio::time::timeout( + std::time::Duration::from_millis(1000), + cover_rx, + ) + .await; + dbg(&format!("step 1: cover ready ok={}", covered.is_ok())); + + // ---------- 第②步:放大到全屏(1s) ---------- + dbg("step 2: expand to fullscreen"); + animate_resize(&window, start, fullscreen, ANIM_DURATION_MS).await; + dbg("step 2 done"); + + // ---------- 第③步:全屏后,渐显 SVG logo ---------- + dbg("step 3: fade in logo"); + let (lin_tx, lin_rx) = tokio::sync::oneshot::channel::<()>(); + if let Ok(mut guard) = LOGO_IN_DONE.lock() { + *guard = Some(lin_tx); + } + let _ = app.emit("mc-transition-logo-in", ()); + let logo_in = tokio::time::timeout( + std::time::Duration::from_millis(1500), + lin_rx, + ) + .await; + dbg(&format!("step 3: logo in done ok={}", logo_in.is_ok())); + + // ---------- 等待 MC 窗口出现(最多 60s) ---------- + dbg("waiting for MC window"); + let mut mc_raw: usize = 0; + for i in 0..FIND_RETRIES { + if let Some(raw) = win_impl::find_window(pid) { + mc_raw = raw; + dbg(&format!("MC window found at try#{i} hwnd={raw:#x}")); + break; + } + if i % 4 == 0 { + dbg(&format!( + "try#{i} pid={pid} candidates: {:?}", + win_impl::dump_pid_windows(pid) + )); + } + tokio::time::sleep(std::time::Duration::from_millis(FIND_INTERVAL_MS)) + .await; + } + if mc_raw == 0 { + dbg("MC window NOT FOUND -> restore launcher"); + let _ = window.set_always_on_top(false); + animate_resize(&window, fullscreen, start, 300).await; + let _ = app.emit("mc-transition-reset-opacity", ()); + return; + } + + // ---------- 第④步:缩小前,背景变 Mojang 红 + 渐隐 logo ---------- + dbg("step 4: turn red + fade out logo"); + let (lout_tx, lout_rx) = tokio::sync::oneshot::channel::<()>(); + if let Ok(mut guard) = LOGO_OUT_DONE.lock() { + *guard = Some(lout_tx); + } + let _ = app.emit("mc-transition-logo-out", ()); + let logo_out = tokio::time::timeout( + std::time::Duration::from_millis(1500), + lout_rx, + ) + .await; + dbg(&format!("step 4: logo out done ok={}", logo_out.is_ok())); + + // ---------- 第⑤步:缩小到 MC 窗口矩形(1s) ---------- + let mc_rect = win_impl::get_rect(mc_raw).unwrap_or(( + fullscreen.0, + fullscreen.1, + fullscreen.2 as i32, + fullscreen.3 as i32, + )); + let covers = win_impl::covers_monitor(mc_raw); + dbg(&format!("step 5: MC rect={mc_rect:?} covers_monitor={covers}")); + let target = ( + mc_rect.0, + mc_rect.1, + mc_rect.2.max(1) as u32, + mc_rect.3.max(1) as u32, + ); + let _ = window.set_always_on_top(true); + let _ = window.set_focus(); + animate_resize(&window, fullscreen, target, ANIM_DURATION_MS).await; + dbg("step 5 done"); + + // ---------- 第⑥步:等待 1s(游戏稳定,遮罩仍在) ---------- + dbg("step 6: settle 1s"); + tokio::time::sleep(std::time::Duration::from_millis(1000)).await; + dbg("step 6 done"); + + // ---------- 第⑦步:淡出(0.5s,含遮罩一起) ---------- + dbg("step 7: fade out, waiting frontend"); + let (done_tx, done_rx) = tokio::sync::oneshot::channel::<()>(); + if let Ok(mut guard) = FADE_DONE.lock() { + *guard = Some(done_tx); + } + let _ = app.emit("mc-transition-fadeout", ()); + let faded = tokio::time::timeout( + std::time::Duration::from_millis(FADE_TIMEOUT_MS), + done_rx, + ) + .await; + dbg(&format!("step 7: fade wait ok={}", faded.is_ok())); + + // ---------- 第⑧步:聚焦游戏 + 最小化启动器 ---------- + dbg("step 8: focus game + minimize launcher"); + let _ = window.set_always_on_top(false); + win_impl::focus(mc_raw); + tokio::time::sleep(std::time::Duration::from_millis(80)).await; + let _ = window.minimize(); + let _ = app.emit("mc-transition-reset-opacity", ()); + dbg("step 8 done (launcher minimized)"); +} +#[cfg(not(target_os = "windows"))] +pub async fn run(_app: &AppHandle, _pid: u32, _maximize: bool) {} + +#[cfg(target_os = "windows")] +mod win_impl { + use std::sync::{ + Mutex, + atomic::{AtomicU32, AtomicUsize, Ordering}, + }; + use windows::Win32::Foundation::{HWND, LPARAM, RECT}; + use windows::Win32::Graphics::Gdi::{ + GetMonitorInfoW, MONITOR_DEFAULTTONEAREST, MONITORINFO, MonitorFromWindow, + }; + use windows::Win32::UI::WindowsAndMessaging::{ + EnumWindows, GetWindowRect, GetWindowThreadProcessId, IsWindowVisible, + SetForegroundWindow, + }; + use windows::core::BOOL; + + /// 目标进程 pid(枚举回调通过静态变量传递)。 + static TARGET_PID: AtomicU32 = AtomicU32::new(0); + /// 命中的窗口句柄,以 usize 存储(HWND 非 Send/Sync)。 + static FOUND_HWND: AtomicUsize = AtomicUsize::new(0); + /// 串行化枚举,避免并发查找互相覆盖静态变量。 + static ENUM_LOCK: Mutex<()> = Mutex::new(()); + + /// usize → HWND。调用方保证数值来自真实句柄。 + fn to_hwnd(raw: usize) -> HWND { + HWND(raw as *mut core::ffi::c_void) + } + + unsafe extern "system" fn find_cb(hwnd: HWND, _: LPARAM) -> BOOL { + let mut pid = 0u32; + unsafe { GetWindowThreadProcessId(hwnd, Some(&mut pid)) }; + if pid != TARGET_PID.load(Ordering::Relaxed) + || !unsafe { IsWindowVisible(hwnd).as_bool() } + { + return BOOL(1); + } + let mut rect = RECT::default(); + if unsafe { GetWindowRect(hwnd, &mut rect) }.is_ok() { + let w = rect.right - rect.left; + let h = rect.bottom - rect.top; + // 过滤掉工具窗口 / 0 尺寸窗口,只认真正的游戏主窗口 + if w > 50 && h > 50 { + FOUND_HWND.store(hwnd.0 as usize, Ordering::Relaxed); + return BOOL(0); // 找到即停止枚举 + } + } + BOOL(1) + } + + /// 诊断用:列出属于 `pid` 的所有顶层窗口(含不可见/小窗口)。 + /// 返回 (hwnd, 宽, 高, 是否可见)。 + pub fn dump_pid_windows(pid: u32) -> Vec<(usize, i32, i32, bool)> { + use windows::core::BOOL as B; + + static DUMP_PID: AtomicU32 = AtomicU32::new(0); + static DUMP: Mutex> = + Mutex::new(Vec::new()); + + unsafe extern "system" fn cb(hwnd: HWND, _: LPARAM) -> B { + let mut p = 0u32; + unsafe { GetWindowThreadProcessId(hwnd, Some(&mut p)) }; + if p != DUMP_PID.load(Ordering::Relaxed) { + return B(1); + } + let mut r = RECT::default(); + let _ = unsafe { GetWindowRect(hwnd, &mut r) }; + let vis = unsafe { IsWindowVisible(hwnd).as_bool() }; + if let Ok(mut v) = DUMP.lock() { + v.push((hwnd.0 as usize, r.right - r.left, r.bottom - r.top, vis)); + } + B(1) + } + + let _g = ENUM_LOCK.lock(); + let _g = match _g { + Ok(g) => g, + Err(_) => return Vec::new(), + }; + DUMP_PID.store(pid, Ordering::Relaxed); + if let Ok(mut v) = DUMP.lock() { + v.clear(); + } + unsafe { + let _ = EnumWindows(Some(cb), LPARAM(0)); + } + DUMP.lock().map(|v| v.clone()).unwrap_or_default() + } + + /// 查找属于 `pid` 的可见顶层窗口,返回句柄原始值(0 表示未找到)。 + pub fn find_window(pid: u32) -> Option { + let _guard = ENUM_LOCK.lock().ok()?; + TARGET_PID.store(pid, Ordering::Relaxed); + FOUND_HWND.store(0, Ordering::Relaxed); + unsafe { + let _ = EnumWindows(Some(find_cb), LPARAM(0)); + } + let raw = FOUND_HWND.load(Ordering::Relaxed); + (raw != 0).then_some(raw) + } + + /// 取窗口矩形,返回 (x, y, width, height)。 + pub fn get_rect(raw: usize) -> Option<(i32, i32, i32, i32)> { + let mut r = RECT::default(); + unsafe { GetWindowRect(to_hwnd(raw), &mut r).ok()? }; + Some((r.left, r.top, r.right - r.left, r.bottom - r.top)) + } + + /// 取窗口所在显示器的完整矩形,返回 (x, y, width, height)。 + pub fn monitor_rect(raw: usize) -> Option<(i32, i32, i32, i32)> { + let mon = + unsafe { MonitorFromWindow(to_hwnd(raw), MONITOR_DEFAULTTONEAREST) }; + let mut mi = MONITORINFO { + cbSize: std::mem::size_of::() as u32, + rcMonitor: RECT::default(), + rcWork: RECT::default(), + dwFlags: 0, + }; + if !unsafe { GetMonitorInfoW(mon, &mut mi) }.as_bool() { + return None; + } + let r = mi.rcMonitor; + Some((r.left, r.top, r.right - r.left, r.bottom - r.top)) + } + + /// 判断窗口是否铺满其所在显示器(全屏 / 无边框全屏 / 最大化)。 + pub fn covers_monitor(raw: usize) -> bool { + let (Some((_, _, w, h)), Some((_, _, mw, mh))) = + (get_rect(raw), monitor_rect(raw)) + else { + return false; + }; + w >= mw && h >= mh + } + + /// 把前台焦点交给游戏窗口。 + pub fn focus(raw: usize) { + unsafe { + let _ = SetForegroundWindow(to_hwnd(raw)); + } + } +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 04624b9..ca102de 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,11 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +patchedDependencies: + readable-stream@2.3.8: + hash: 3045f7adf989b4e668a4a13819b7285b0de186b79bbf22408acaf2a41c6eaa86 + path: patches/readable-stream@2.3.8.patch + importers: .: @@ -13,7 +18,7 @@ importers: version: 1.1.0 '@crowdin/crowdin-api-client': specifier: ^1.55.2 - version: 1.55.2(debug@4.4.3(supports-color@10.2.2))(supports-color@10.2.2) + version: 1.55.2 '@formatjs/icu-messageformat-parser': specifier: ^2.11.4 version: 2.11.4 @@ -177,7 +182,7 @@ importers: devDependencies: '@eslint/compat': specifier: ^1.1.1 - version: 1.4.1(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2)) + version: 1.4.1(eslint@9.39.2(jiti@1.21.7)) '@formatjs/cli': specifier: ^6.2.12 version: 6.12.2(@vue/compiler-core@3.5.27)(vue@3.5.27(typescript@5.9.3)) @@ -186,7 +191,7 @@ importers: version: link:../../packages/tooling-config '@nuxt/eslint-config': specifier: ^0.5.6 - version: 0.5.7(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) + version: 0.5.7(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@vitejs/plugin-vue': specifier: ^6.0.3 version: 6.0.4(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@1.21.7)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3)) @@ -195,10 +200,10 @@ importers: version: 10.4.24(postcss@8.5.6) eslint: specifier: ^9.9.1 - version: 9.39.2(jiti@1.21.7)(supports-color@10.2.2) + version: 9.39.2(jiti@1.21.7) eslint-plugin-turbo: specifier: ^2.5.4 - version: 2.8.2(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(turbo@2.8.2) + version: 2.8.2(eslint@9.39.2(jiti@1.21.7))(turbo@2.8.2) postcss: specifier: ^8.4.39 version: 8.5.6 @@ -219,7 +224,7 @@ importers: version: 8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@1.21.7)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) vite-plugin-vue-devtools: specifier: ^8.2.1 - version: 8.2.1(@nuxt/kit@3.21.0(magicast@0.5.1))(supports-color@10.2.2)(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@1.21.7)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3)) + version: 8.2.1(@nuxt/kit@3.21.0(magicast@0.5.1))(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@1.21.7)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3)) vue-component-type-helpers: specifier: ^3.1.8 version: 3.2.4 @@ -259,7 +264,7 @@ importers: version: 10.4.24(postcss@8.5.8) nuxt: specifier: '=3.20.2' - version: 3.20.2(@parcel/watcher@2.5.6)(@types/node@24.12.2)(@vue/compiler-sfc@3.5.27)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(ioredis@5.9.2(supports-color@10.2.2))(lightningcss@1.32.0)(magicast@0.5.1)(optionator@0.9.4)(rolldown@1.0.0-rc.12)(rollup@4.57.1)(sass@1.97.3)(supports-color@10.2.2)(terser@5.46.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2) + version: 3.20.2(@parcel/watcher@2.5.6)(@types/node@24.12.2)(@vue/compiler-sfc@3.5.27)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.9.2)(lightningcss@1.32.0)(magicast@0.5.1)(optionator@0.9.4)(rolldown@1.0.0-rc.12)(rollup@4.57.1)(sass@1.97.3)(terser@5.46.0)(typescript@5.9.3)(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2) postcss: specifier: ^8.4.39 version: 8.5.8 @@ -349,43 +354,43 @@ importers: devDependencies: '@eslint/compat': specifier: ^1.4.1 - version: 1.4.1(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2)) + version: 1.4.1(eslint@9.39.2(jiti@2.6.1)) '@eslint/js': specifier: ^9.32.0 version: 9.39.2 '@nuxt/eslint-config': specifier: ^0.5.7 - version: 0.5.7(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) + version: 0.5.7(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@vue/tsconfig': specifier: ^0.7.0 version: 0.7.0(typescript@5.9.3)(vue@3.5.27(typescript@5.9.3)) eslint: specifier: ^9.32.0 - version: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) + version: 9.39.2(jiti@2.6.1) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2)) + version: 10.1.8(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-prettier: specifier: ^5.5.3 - version: 5.5.5(eslint-config-prettier@10.1.8(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2)))(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(prettier@3.8.1) + version: 5.5.5(eslint-config-prettier@10.1.8(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(prettier@3.8.1) eslint-plugin-simple-import-sort: specifier: ^12.1.1 - version: 12.1.1(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2)) + version: 12.1.1(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-turbo: specifier: ^2.5.4 - version: 2.8.2(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(turbo@2.8.2) + version: 2.8.2(eslint@9.39.2(jiti@2.6.1))(turbo@2.8.2) eslint-plugin-vue: specifier: ^10.4.0 - version: 10.7.0(@stylistic/eslint-plugin@2.13.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3))(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)) + version: 10.7.0(@stylistic/eslint-plugin@2.13.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1))) globals: specifier: ^16.3.0 version: 16.5.0 typescript-eslint: specifier: ^8.38.0 - version: 8.54.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) + version: 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) vue-eslint-parser: specifier: ^10.1.3 - version: 10.2.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2) + version: 10.2.0(eslint@9.39.2(jiti@2.6.1)) packages/ui: dependencies: @@ -2989,11 +2994,6 @@ packages: '@volar/typescript@2.4.15': resolution: {integrity: sha512-2aZ8i0cqPGjXb4BhkMsPYDkkuc2ZQ6yOpqwAuNwUoncELqoy5fRgOQtLR9gB0g902iS0NAkvpIzs27geVyVdPg==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true '@vue-macros/common@3.1.2': resolution: {integrity: sha512-h9t4ArDdniO9ekYHAD95t9AZcAbb19lEGK+26iAjUODOIJKmObDNBSe4+6ELQAA3vtYiFPPBtHh7+cQCKi3Dng==} @@ -4339,7 +4339,7 @@ packages: engines: {node: '>=12.0.0'} highlightjs-mcfunction@https://codeload.github.com/modrinth/better-highlightjs-mcfunction/tar.gz/aa999b763fd792ffb950d28347eeb6811c83ea8e: - resolution: {gitHosted: true, integrity: sha512-pCS2yd9Polaee8CnfjSS41H1Zk4Qr3SwNHl/wjV7qZU4Plc2rsbrIvffcCCKU/QZcwPOuP9bIIefstjMn+zU5g==, tarball: https://codeload.github.com/modrinth/better-highlightjs-mcfunction/tar.gz/aa999b763fd792ffb950d28347eeb6811c83ea8e} + resolution: {integrity: sha512-pCS2yd9Polaee8CnfjSS41H1Zk4Qr3SwNHl/wjV7qZU4Plc2rsbrIvffcCCKU/QZcwPOuP9bIIefstjMn+zU5g==, tarball: https://codeload.github.com/modrinth/better-highlightjs-mcfunction/tar.gz/aa999b763fd792ffb950d28347eeb6811c83ea8e} version: 1.0.0 hookable@5.5.3: @@ -6535,7 +6535,6 @@ packages: engines: {node: '>=v14.21.3'} peerDependencies: vite: ^6.0.0 || ^7.0.0 || ^8.0.0 - vue: '*' vite-plugin-vue-inspector@6.0.0: resolution: {integrity: sha512-OpyITJLgZNibxlrik1EmRtvXHDjLRxNPsWkGFTERZs2LgMEdG4W0WoFt5GIgp3a3jRou+eJR8U1zOBk/XQgEbw==} @@ -6896,20 +6895,20 @@ snapshots: '@babel/compat-data@7.29.0': {} - '@babel/core@7.29.0(supports-color@10.2.2)': + '@babel/core@7.29.0': dependencies: '@babel/code-frame': 7.29.0 '@babel/generator': 7.29.0 '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0(supports-color@10.2.2))(supports-color@10.2.2) + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) '@babel/helpers': 7.28.6 '@babel/parser': 7.29.0 '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0(supports-color@10.2.2) + '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -6948,28 +6947,28 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.29.0(supports-color@10.2.2))(supports-color@10.2.2)': + '@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.0(supports-color@10.2.2) + '@babel/core': 7.29.0 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-member-expression-to-functions': 7.28.5(supports-color@10.2.2) + '@babel/helper-member-expression-to-functions': 7.28.5 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0(supports-color@10.2.2))(supports-color@10.2.2) - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1(supports-color@10.2.2) - '@babel/traverse': 7.29.0(supports-color@10.2.2) + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.29.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-class-features-plugin@7.29.7(@babel/core@7.29.0(supports-color@10.2.2))(supports-color@10.2.2)': + '@babel/helper-create-class-features-plugin@7.29.7(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.0(supports-color@10.2.2) + '@babel/core': 7.29.0 '@babel/helper-annotate-as-pure': 7.29.7 - '@babel/helper-member-expression-to-functions': 7.29.7(supports-color@10.2.2) + '@babel/helper-member-expression-to-functions': 7.29.7 '@babel/helper-optimise-call-expression': 7.29.7 - '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.0(supports-color@10.2.2))(supports-color@10.2.2) - '@babel/helper-skip-transparent-expression-wrappers': 7.29.7(supports-color@10.2.2) - '@babel/traverse': 7.29.8(supports-color@10.2.2) + '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/traverse': 7.29.8 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -6978,33 +6977,33 @@ snapshots: '@babel/helper-globals@7.29.7': {} - '@babel/helper-member-expression-to-functions@7.28.5(supports-color@10.2.2)': + '@babel/helper-member-expression-to-functions@7.28.5': dependencies: - '@babel/traverse': 7.29.0(supports-color@10.2.2) + '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/helper-member-expression-to-functions@7.29.7(supports-color@10.2.2)': + '@babel/helper-member-expression-to-functions@7.29.7': dependencies: - '@babel/traverse': 7.29.8(supports-color@10.2.2) + '@babel/traverse': 7.29.8 '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color - '@babel/helper-module-imports@7.28.6(supports-color@10.2.2)': + '@babel/helper-module-imports@7.28.6': dependencies: - '@babel/traverse': 7.29.0(supports-color@10.2.2) + '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0(supports-color@10.2.2))(supports-color@10.2.2)': + '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.0(supports-color@10.2.2) - '@babel/helper-module-imports': 7.28.6(supports-color@10.2.2) + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.29.0(supports-color@10.2.2) + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color @@ -7020,34 +7019,34 @@ snapshots: '@babel/helper-plugin-utils@7.29.7': {} - '@babel/helper-replace-supers@7.28.6(@babel/core@7.29.0(supports-color@10.2.2))(supports-color@10.2.2)': + '@babel/helper-replace-supers@7.28.6(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.0(supports-color@10.2.2) - '@babel/helper-member-expression-to-functions': 7.28.5(supports-color@10.2.2) + '@babel/core': 7.29.0 + '@babel/helper-member-expression-to-functions': 7.28.5 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.29.0(supports-color@10.2.2) + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.29.7(@babel/core@7.29.0(supports-color@10.2.2))(supports-color@10.2.2)': + '@babel/helper-replace-supers@7.29.7(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.0(supports-color@10.2.2) - '@babel/helper-member-expression-to-functions': 7.29.7(supports-color@10.2.2) + '@babel/core': 7.29.0 + '@babel/helper-member-expression-to-functions': 7.29.7 '@babel/helper-optimise-call-expression': 7.29.7 - '@babel/traverse': 7.29.8(supports-color@10.2.2) + '@babel/traverse': 7.29.8 transitivePeerDependencies: - supports-color - '@babel/helper-skip-transparent-expression-wrappers@7.27.1(supports-color@10.2.2)': + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.29.0(supports-color@10.2.2) + '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/helper-skip-transparent-expression-wrappers@7.29.7(supports-color@10.2.2)': + '@babel/helper-skip-transparent-expression-wrappers@7.29.7': dependencies: - '@babel/traverse': 7.29.8(supports-color@10.2.2) + '@babel/traverse': 7.29.8 '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color @@ -7075,48 +7074,48 @@ snapshots: dependencies: '@babel/types': 7.29.8 - '@babel/plugin-proposal-decorators@7.29.7(@babel/core@7.29.0(supports-color@10.2.2))(supports-color@10.2.2)': + '@babel/plugin-proposal-decorators@7.29.7(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.0(supports-color@10.2.2) - '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.0(supports-color@10.2.2))(supports-color@10.2.2) + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.0) '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-decorators': 7.29.7(@babel/core@7.29.0(supports-color@10.2.2)) + '@babel/plugin-syntax-decorators': 7.29.7(@babel/core@7.29.0) transitivePeerDependencies: - supports-color - '@babel/plugin-syntax-decorators@7.29.7(@babel/core@7.29.0(supports-color@10.2.2))': + '@babel/plugin-syntax-decorators@7.29.7(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.0(supports-color@10.2.2) + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-import-attributes@7.29.7(@babel/core@7.29.0(supports-color@10.2.2))': + '@babel/plugin-syntax-import-attributes@7.29.7(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.0(supports-color@10.2.2) + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.0(supports-color@10.2.2))': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.0(supports-color@10.2.2) + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0(supports-color@10.2.2))': + '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.0(supports-color@10.2.2) + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.0(supports-color@10.2.2))': + '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.0(supports-color@10.2.2) + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-typescript@7.28.6(@babel/core@7.29.0(supports-color@10.2.2))(supports-color@10.2.2)': + '@babel/plugin-transform-typescript@7.28.6(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.0(supports-color@10.2.2) + '@babel/core': 7.29.0 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0(supports-color@10.2.2))(supports-color@10.2.2) + '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1(supports-color@10.2.2) - '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0(supports-color@10.2.2)) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) transitivePeerDependencies: - supports-color @@ -7132,7 +7131,7 @@ snapshots: '@babel/parser': 7.29.8 '@babel/types': 7.29.8 - '@babel/traverse@7.29.0(supports-color@10.2.2)': + '@babel/traverse@7.29.0': dependencies: '@babel/code-frame': 7.29.0 '@babel/generator': 7.29.0 @@ -7140,11 +7139,11 @@ snapshots: '@babel/parser': 7.29.0 '@babel/template': 7.28.6 '@babel/types': 7.29.0 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3 transitivePeerDependencies: - supports-color - '@babel/traverse@7.29.8(supports-color@10.2.2)': + '@babel/traverse@7.29.8': dependencies: '@babel/code-frame': 7.29.7 '@babel/generator': 7.29.8 @@ -7152,7 +7151,7 @@ snapshots: '@babel/parser': 7.29.8 '@babel/template': 7.29.7 '@babel/types': 7.29.8 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -7273,9 +7272,9 @@ snapshots: style-mod: 4.1.3 w3c-keyname: 2.2.8 - '@crowdin/crowdin-api-client@1.55.2(debug@4.4.3(supports-color@10.2.2))(supports-color@10.2.2)': + '@crowdin/crowdin-api-client@1.55.2': dependencies: - axios: 1.16.1(debug@4.4.3(supports-color@10.2.2))(supports-color@10.2.2) + axios: 1.16.1 transitivePeerDependencies: - debug - supports-color @@ -7541,34 +7540,34 @@ snapshots: '@esbuild/win32-x64@0.27.3': optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))': + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2(jiti@1.21.7))': dependencies: - eslint: 9.39.2(jiti@1.21.7)(supports-color@10.2.2) + eslint: 9.39.2(jiti@1.21.7) eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))': + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2(jiti@2.6.1))': dependencies: - eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) + eslint: 9.39.2(jiti@2.6.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} - '@eslint/compat@1.4.1(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))': + '@eslint/compat@1.4.1(eslint@9.39.2(jiti@1.21.7))': dependencies: '@eslint/core': 0.17.0 optionalDependencies: - eslint: 9.39.2(jiti@1.21.7)(supports-color@10.2.2) + eslint: 9.39.2(jiti@1.21.7) - '@eslint/compat@1.4.1(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))': + '@eslint/compat@1.4.1(eslint@9.39.2(jiti@2.6.1))': dependencies: '@eslint/core': 0.17.0 optionalDependencies: - eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) + eslint: 9.39.2(jiti@2.6.1) - '@eslint/config-array@0.21.1(supports-color@10.2.2)': + '@eslint/config-array@0.21.1': dependencies: '@eslint/object-schema': 2.1.7 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -7581,10 +7580,10 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.3.3(supports-color@10.2.2)': + '@eslint/eslintrc@3.3.3': dependencies: ajv: 6.12.6 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3 espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 @@ -7762,9 +7761,9 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@kwsites/file-exists@1.1.1(supports-color@10.2.2)': + '@kwsites/file-exists@1.1.1': dependencies: - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -7805,11 +7804,11 @@ snapshots: '@lobehub/icons-static-svg@1.94.0': {} - '@mapbox/node-pre-gyp@2.0.3(supports-color@10.2.2)': + '@mapbox/node-pre-gyp@2.0.3': dependencies: consola: 3.4.2 detect-libc: 2.1.2 - https-proxy-agent: 7.0.6(supports-color@10.2.2) + https-proxy-agent: 7.0.6 node-fetch: 2.7.0 nopt: 8.1.0 semver: 7.8.5 @@ -7846,7 +7845,7 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.20.1 - '@nuxt/cli@3.32.0(cac@6.7.14)(magicast@0.5.1)(supports-color@10.2.2)': + '@nuxt/cli@3.32.0(cac@6.7.14)(magicast@0.5.1)': dependencies: '@bomb.sh/tab': 0.0.11(cac@6.7.14)(citty@0.1.6) '@clack/prompts': 1.0.0-alpha.9 @@ -7855,7 +7854,7 @@ snapshots: confbox: 0.2.2 consola: 3.4.2 copy-paste: 2.2.0 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3 defu: 6.1.4 exsolve: 1.0.8 fuse.js: 7.1.0 @@ -7883,11 +7882,11 @@ snapshots: '@nuxt/devalue@2.0.2': {} - '@nuxt/devtools-kit@3.1.1(magicast@0.5.1)(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))': + '@nuxt/devtools-kit@3.1.1(magicast@0.5.1)(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))': dependencies: '@nuxt/kit': 4.3.0(magicast@0.5.1) execa: 8.0.1 - vite: 7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) + vite: 8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) transitivePeerDependencies: - magicast @@ -7902,12 +7901,12 @@ snapshots: prompts: 2.4.2 semver: 7.8.5 - '@nuxt/devtools@3.1.1(supports-color@10.2.2)(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3))': + '@nuxt/devtools@3.1.1(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3))': dependencies: - '@nuxt/devtools-kit': 3.1.1(magicast@0.5.1)(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) + '@nuxt/devtools-kit': 3.1.1(magicast@0.5.1)(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) '@nuxt/devtools-wizard': 3.1.1 '@nuxt/kit': 4.3.0(magicast@0.5.1) - '@vue/devtools-core': 8.0.5(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3)) + '@vue/devtools-core': 8.0.5(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3)) '@vue/devtools-kit': 8.0.5 birpc: 2.9.0 consola: 3.4.2 @@ -7928,13 +7927,13 @@ snapshots: perfect-debounce: 2.1.0 pkg-types: 2.3.0 semver: 7.8.5 - simple-git: 3.30.0(supports-color@10.2.2) + simple-git: 3.30.0 sirv: 3.0.2 structured-clone-es: 1.0.0 tinyglobby: 0.2.15 - vite: 7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) - vite-plugin-inspect: 11.3.3(@nuxt/kit@4.3.0(magicast@0.5.1))(supports-color@10.2.2)(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) - vite-plugin-vue-tracer: 1.2.0(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3)) + vite: 8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) + vite-plugin-inspect: 11.3.3(@nuxt/kit@4.3.0(magicast@0.5.1))(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) + vite-plugin-vue-tracer: 1.2.0(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3)) which: 5.0.0 ws: 8.21.0 transitivePeerDependencies: @@ -7943,70 +7942,70 @@ snapshots: - utf-8-validate - vue - '@nuxt/eslint-config@0.5.7(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3)': + '@nuxt/eslint-config@0.5.7(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': dependencies: '@eslint/js': 9.39.2 - '@nuxt/eslint-plugin': 0.5.7(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) - '@stylistic/eslint-plugin': 2.13.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) - '@typescript-eslint/eslint-plugin': 8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) - '@typescript-eslint/parser': 8.54.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) - eslint: 9.39.2(jiti@1.21.7)(supports-color@10.2.2) - eslint-config-flat-gitignore: 0.3.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2)) + '@nuxt/eslint-plugin': 0.5.7(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + '@stylistic/eslint-plugin': 2.13.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + '@typescript-eslint/parser': 8.54.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + eslint: 9.39.2(jiti@1.21.7) + eslint-config-flat-gitignore: 0.3.0(eslint@9.39.2(jiti@1.21.7)) eslint-flat-config-utils: 0.4.0 - eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2) - eslint-plugin-jsdoc: 50.8.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2) - eslint-plugin-regexp: 2.10.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2)) - eslint-plugin-unicorn: 55.0.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2)) - eslint-plugin-vue: 9.33.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2) + eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7)) + eslint-plugin-jsdoc: 50.8.0(eslint@9.39.2(jiti@1.21.7)) + eslint-plugin-regexp: 2.10.0(eslint@9.39.2(jiti@1.21.7)) + eslint-plugin-unicorn: 55.0.0(eslint@9.39.2(jiti@1.21.7)) + eslint-plugin-vue: 9.33.0(eslint@9.39.2(jiti@1.21.7)) globals: 15.15.0 local-pkg: 0.5.1 pathe: 1.1.2 - vue-eslint-parser: 9.4.3(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2) + vue-eslint-parser: 9.4.3(eslint@9.39.2(jiti@1.21.7)) transitivePeerDependencies: - '@typescript-eslint/utils' - eslint-import-resolver-node - supports-color - typescript - '@nuxt/eslint-config@0.5.7(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3)': + '@nuxt/eslint-config@0.5.7(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint/js': 9.39.2 - '@nuxt/eslint-plugin': 0.5.7(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) - '@stylistic/eslint-plugin': 2.13.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) - '@typescript-eslint/eslint-plugin': 8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) - '@typescript-eslint/parser': 8.54.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) - eslint-config-flat-gitignore: 0.3.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2)) + '@nuxt/eslint-plugin': 0.5.7(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@stylistic/eslint-plugin': 2.13.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) + eslint-config-flat-gitignore: 0.3.0(eslint@9.39.2(jiti@2.6.1)) eslint-flat-config-utils: 0.4.0 - eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2) - eslint-plugin-jsdoc: 50.8.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2) - eslint-plugin-regexp: 2.10.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2)) - eslint-plugin-unicorn: 55.0.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2)) - eslint-plugin-vue: 9.33.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2) + eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-jsdoc: 50.8.0(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-regexp: 2.10.0(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-unicorn: 55.0.0(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-vue: 9.33.0(eslint@9.39.2(jiti@2.6.1)) globals: 15.15.0 local-pkg: 0.5.1 pathe: 1.1.2 - vue-eslint-parser: 9.4.3(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2) + vue-eslint-parser: 9.4.3(eslint@9.39.2(jiti@2.6.1)) transitivePeerDependencies: - '@typescript-eslint/utils' - eslint-import-resolver-node - supports-color - typescript - '@nuxt/eslint-plugin@0.5.7(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3)': + '@nuxt/eslint-plugin@0.5.7(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 8.54.0 - '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) - eslint: 9.39.2(jiti@1.21.7)(supports-color@10.2.2) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + eslint: 9.39.2(jiti@1.21.7) transitivePeerDependencies: - supports-color - typescript - '@nuxt/eslint-plugin@0.5.7(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3)': + '@nuxt/eslint-plugin@0.5.7(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 8.54.0 - '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) transitivePeerDependencies: - supports-color - typescript @@ -8088,7 +8087,7 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/nitro-server@3.20.2(db0@0.3.4)(ioredis@5.9.2(supports-color@10.2.2))(magicast@0.5.1)(nuxt@3.20.2(@parcel/watcher@2.5.6)(@types/node@24.12.2)(@vue/compiler-sfc@3.5.27)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(ioredis@5.9.2(supports-color@10.2.2))(lightningcss@1.32.0)(magicast@0.5.1)(optionator@0.9.4)(rolldown@1.0.0-rc.12)(rollup@4.57.1)(sass@1.97.3)(supports-color@10.2.2)(terser@5.46.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2))(rolldown@1.0.0-rc.12)(supports-color@10.2.2)(typescript@5.9.3)(xml2js@0.6.2)': + '@nuxt/nitro-server@3.20.2(db0@0.3.4)(ioredis@5.9.2)(magicast@0.5.1)(nuxt@3.20.2(@parcel/watcher@2.5.6)(@types/node@24.12.2)(@vue/compiler-sfc@3.5.27)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.9.2)(lightningcss@1.32.0)(magicast@0.5.1)(optionator@0.9.4)(rolldown@1.0.0-rc.12)(rollup@4.57.1)(sass@1.97.3)(terser@5.46.0)(typescript@5.9.3)(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2))(rolldown@1.0.0-rc.12)(typescript@5.9.3)(xml2js@0.6.2)': dependencies: '@nuxt/devalue': 2.0.2 '@nuxt/kit': 3.20.2(magicast@0.5.1) @@ -8105,15 +8104,15 @@ snapshots: impound: 1.0.0 klona: 2.0.6 mocked-exports: 0.1.1 - nitropack: 2.13.1(rolldown@1.0.0-rc.12)(supports-color@10.2.2)(xml2js@0.6.2) - nuxt: 3.20.2(@parcel/watcher@2.5.6)(@types/node@24.12.2)(@vue/compiler-sfc@3.5.27)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(ioredis@5.9.2(supports-color@10.2.2))(lightningcss@1.32.0)(magicast@0.5.1)(optionator@0.9.4)(rolldown@1.0.0-rc.12)(rollup@4.57.1)(sass@1.97.3)(supports-color@10.2.2)(terser@5.46.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2) + nitropack: 2.13.1(rolldown@1.0.0-rc.12)(xml2js@0.6.2) + nuxt: 3.20.2(@parcel/watcher@2.5.6)(@types/node@24.12.2)(@vue/compiler-sfc@3.5.27)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.9.2)(lightningcss@1.32.0)(magicast@0.5.1)(optionator@0.9.4)(rolldown@1.0.0-rc.12)(rollup@4.57.1)(sass@1.97.3)(terser@5.46.0)(typescript@5.9.3)(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2) pathe: 2.0.3 pkg-types: 2.3.0 radix3: 1.1.2 std-env: 3.10.0 ufo: 1.6.3 unctx: 2.5.0 - unstorage: 1.17.4(db0@0.3.4)(ioredis@5.9.2(supports-color@10.2.2)) + unstorage: 1.17.4(db0@0.3.4)(ioredis@5.9.2) vue: 3.5.27(typescript@5.9.3) vue-bundle-renderer: 2.2.0 vue-devtools-stub: 0.1.0 @@ -8177,12 +8176,12 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/vite-builder@3.20.2(@types/node@24.12.2)(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(lightningcss@1.32.0)(magicast@0.5.1)(nuxt@3.20.2(@parcel/watcher@2.5.6)(@types/node@24.12.2)(@vue/compiler-sfc@3.5.27)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(ioredis@5.9.2(supports-color@10.2.2))(lightningcss@1.32.0)(magicast@0.5.1)(optionator@0.9.4)(rolldown@1.0.0-rc.12)(rollup@4.57.1)(sass@1.97.3)(supports-color@10.2.2)(terser@5.46.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2))(optionator@0.9.4)(rolldown@1.0.0-rc.12)(rollup@4.57.1)(sass@1.97.3)(supports-color@10.2.2)(terser@5.46.0)(typescript@5.9.3)(vue-tsc@2.2.12(typescript@5.9.3))(vue@3.5.27(typescript@5.9.3))(yaml@2.8.2)': + '@nuxt/vite-builder@3.20.2(@types/node@24.12.2)(eslint@9.39.2(jiti@2.6.1))(lightningcss@1.32.0)(magicast@0.5.1)(nuxt@3.20.2(@parcel/watcher@2.5.6)(@types/node@24.12.2)(@vue/compiler-sfc@3.5.27)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.9.2)(lightningcss@1.32.0)(magicast@0.5.1)(optionator@0.9.4)(rolldown@1.0.0-rc.12)(rollup@4.57.1)(sass@1.97.3)(terser@5.46.0)(typescript@5.9.3)(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2))(optionator@0.9.4)(rolldown@1.0.0-rc.12)(rollup@4.57.1)(sass@1.97.3)(terser@5.46.0)(typescript@5.9.3)(vue-tsc@2.2.12(typescript@5.9.3))(vue@3.5.27(typescript@5.9.3))(yaml@2.8.2)': dependencies: '@nuxt/kit': 3.20.2(magicast@0.5.1) '@rollup/plugin-replace': 6.0.3(rollup@4.57.1) '@vitejs/plugin-vue': 6.0.4(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3)) - '@vitejs/plugin-vue-jsx': 5.1.4(supports-color@10.2.2)(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3)) + '@vitejs/plugin-vue-jsx': 5.1.4(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3)) autoprefixer: 10.4.24(postcss@8.5.8) consola: 3.4.2 cssnano: 7.1.2(postcss@8.5.8) @@ -8198,7 +8197,7 @@ snapshots: magic-string: 0.30.21 mlly: 1.8.0 mocked-exports: 0.1.1 - nuxt: 3.20.2(@parcel/watcher@2.5.6)(@types/node@24.12.2)(@vue/compiler-sfc@3.5.27)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(ioredis@5.9.2(supports-color@10.2.2))(lightningcss@1.32.0)(magicast@0.5.1)(optionator@0.9.4)(rolldown@1.0.0-rc.12)(rollup@4.57.1)(sass@1.97.3)(supports-color@10.2.2)(terser@5.46.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2) + nuxt: 3.20.2(@parcel/watcher@2.5.6)(@types/node@24.12.2)(@vue/compiler-sfc@3.5.27)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.9.2)(lightningcss@1.32.0)(magicast@0.5.1)(optionator@0.9.4)(rolldown@1.0.0-rc.12)(rollup@4.57.1)(sass@1.97.3)(terser@5.46.0)(typescript@5.9.3)(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2) ohash: 2.0.11 pathe: 2.0.3 perfect-debounce: 2.1.0 @@ -8211,7 +8210,7 @@ snapshots: unenv: 2.0.0-rc.24 vite: 7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) vite-node: 5.3.0(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) - vite-plugin-checker: 0.12.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(optionator@0.9.4)(typescript@5.9.3)(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3)) + vite-plugin-checker: 0.12.0(eslint@9.39.2(jiti@2.6.1))(optionator@0.9.4)(typescript@5.9.3)(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3)) vue: 3.5.27(typescript@5.9.3) vue-bundle-renderer: 2.2.0 optionalDependencies: @@ -8674,10 +8673,10 @@ snapshots: '@stripe/stripe-js@7.9.0': {} - '@stylistic/eslint-plugin@2.13.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3)': + '@stylistic/eslint-plugin@2.13.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': dependencies: - '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) - eslint: 9.39.2(jiti@1.21.7)(supports-color@10.2.2) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + eslint: 9.39.2(jiti@1.21.7) eslint-visitor-keys: 4.2.1 espree: 10.4.0 estraverse: 5.3.0 @@ -8686,10 +8685,10 @@ snapshots: - supports-color - typescript - '@stylistic/eslint-plugin@2.13.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3)': + '@stylistic/eslint-plugin@2.13.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) eslint-visitor-keys: 4.2.1 espree: 10.4.0 estraverse: 5.3.0 @@ -8987,15 +8986,15 @@ snapshots: '@types/webxr@0.5.24': {} - '@typescript-eslint/eslint-plugin@8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.54.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) + '@typescript-eslint/parser': 8.54.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.54.0 - '@typescript-eslint/type-utils': 8.54.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) - '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) + '@typescript-eslint/type-utils': 8.54.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.54.0 - eslint: 9.39.2(jiti@1.21.7)(supports-color@10.2.2) + eslint: 9.39.2(jiti@1.21.7) ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.4.0(typescript@5.9.3) @@ -9003,15 +9002,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.54.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) + '@typescript-eslint/parser': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.54.0 - '@typescript-eslint/type-utils': 8.54.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) - '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) + '@typescript-eslint/type-utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.54.0 - eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) + eslint: 9.39.2(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.4.0(typescript@5.9.3) @@ -9019,35 +9018,35 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3)': + '@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 8.54.0 '@typescript-eslint/types': 8.54.0 - '@typescript-eslint/typescript-estree': 8.54.0(supports-color@10.2.2)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.54.0 - debug: 4.4.3(supports-color@10.2.2) - eslint: 9.39.2(jiti@1.21.7)(supports-color@10.2.2) + debug: 4.4.3 + eslint: 9.39.2(jiti@1.21.7) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3)': + '@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 8.54.0 '@typescript-eslint/types': 8.54.0 - '@typescript-eslint/typescript-estree': 8.54.0(supports-color@10.2.2)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.54.0 - debug: 4.4.3(supports-color@10.2.2) - eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) + debug: 4.4.3 + eslint: 9.39.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.54.0(supports-color@10.2.2)(typescript@5.9.3)': + '@typescript-eslint/project-service@8.54.0(typescript@5.9.3)': dependencies: '@typescript-eslint/tsconfig-utils': 8.54.0(typescript@5.9.3) '@typescript-eslint/types': 8.54.0 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -9061,25 +9060,25 @@ snapshots: dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.54.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.54.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 8.54.0 - '@typescript-eslint/typescript-estree': 8.54.0(supports-color@10.2.2)(typescript@5.9.3) - '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) - debug: 4.4.3(supports-color@10.2.2) - eslint: 9.39.2(jiti@1.21.7)(supports-color@10.2.2) + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) + debug: 4.4.3 + eslint: 9.39.2(jiti@1.21.7) ts-api-utils: 2.4.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.54.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 8.54.0 - '@typescript-eslint/typescript-estree': 8.54.0(supports-color@10.2.2)(typescript@5.9.3) - '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) - debug: 4.4.3(supports-color@10.2.2) - eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + debug: 4.4.3 + eslint: 9.39.2(jiti@2.6.1) ts-api-utils: 2.4.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: @@ -9087,13 +9086,13 @@ snapshots: '@typescript-eslint/types@8.54.0': {} - '@typescript-eslint/typescript-estree@8.54.0(supports-color@10.2.2)(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.54.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.54.0(supports-color@10.2.2)(typescript@5.9.3) + '@typescript-eslint/project-service': 8.54.0(typescript@5.9.3) '@typescript-eslint/tsconfig-utils': 8.54.0(typescript@5.9.3) '@typescript-eslint/types': 8.54.0 '@typescript-eslint/visitor-keys': 8.54.0 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3 minimatch: 9.0.5 semver: 7.8.5 tinyglobby: 0.2.15 @@ -9102,24 +9101,24 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3)': + '@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2)) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7)) '@typescript-eslint/scope-manager': 8.54.0 '@typescript-eslint/types': 8.54.0 - '@typescript-eslint/typescript-estree': 8.54.0(supports-color@10.2.2)(typescript@5.9.3) - eslint: 9.39.2(jiti@1.21.7)(supports-color@10.2.2) + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.3) + eslint: 9.39.2(jiti@1.21.7) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3)': + '@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2)) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) '@typescript-eslint/scope-manager': 8.54.0 '@typescript-eslint/types': 8.54.0 - '@typescript-eslint/typescript-estree': 8.54.0(supports-color@10.2.2)(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -9194,9 +9193,9 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true - '@vercel/nft@1.3.0(rollup@4.57.1)(supports-color@10.2.2)': + '@vercel/nft@1.3.0(rollup@4.57.1)': dependencies: - '@mapbox/node-pre-gyp': 2.0.3(supports-color@10.2.2) + '@mapbox/node-pre-gyp': 2.0.3 '@rollup/pluginutils': 5.3.0(rollup@4.57.1) acorn: 8.15.0 acorn-import-attributes: 1.9.5(acorn@8.15.0) @@ -9218,13 +9217,13 @@ snapshots: '@formatjs/intl': 2.10.15(typescript@5.9.3) intl-messageformat: 10.7.18 - '@vitejs/plugin-vue-jsx@5.1.4(supports-color@10.2.2)(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3))': + '@vitejs/plugin-vue-jsx@5.1.4(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3))': dependencies: - '@babel/core': 7.29.0(supports-color@10.2.2) - '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0(supports-color@10.2.2)) - '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0(supports-color@10.2.2))(supports-color@10.2.2) + '@babel/core': 7.29.0 + '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) '@rolldown/pluginutils': 1.0.0-rc.12 - '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.29.0(supports-color@10.2.2))(supports-color@10.2.2) + '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.29.0) vite: 7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) vue: 3.5.27(typescript@5.9.3) transitivePeerDependencies: @@ -9259,13 +9258,11 @@ snapshots: '@volar/source-map@2.4.27': {} - '@volar/typescript@2.4.15(typescript@5.9.3)': + '@volar/typescript@2.4.15': dependencies: '@volar/language-core': 2.4.15 path-browserify: 1.0.1 vscode-uri: 3.1.0 - optionalDependencies: - typescript: 5.9.3 '@vue-macros/common@3.1.2(vue@3.5.27(typescript@5.9.3))': dependencies: @@ -9281,54 +9278,54 @@ snapshots: '@vue/babel-helper-vue-transform-on@2.0.1': {} - '@vue/babel-plugin-jsx@1.5.0(@babel/core@7.29.0(supports-color@10.2.2))(supports-color@10.2.2)': + '@vue/babel-plugin-jsx@1.5.0(@babel/core@7.29.0)': dependencies: - '@babel/helper-module-imports': 7.28.6(supports-color@10.2.2) + '@babel/helper-module-imports': 7.28.6 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0(supports-color@10.2.2)) + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0(supports-color@10.2.2) + '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 '@vue/babel-helper-vue-transform-on': 1.5.0 - '@vue/babel-plugin-resolve-type': 1.5.0(@babel/core@7.29.0(supports-color@10.2.2))(supports-color@10.2.2) + '@vue/babel-plugin-resolve-type': 1.5.0(@babel/core@7.29.0) '@vue/shared': 3.5.27 optionalDependencies: - '@babel/core': 7.29.0(supports-color@10.2.2) + '@babel/core': 7.29.0 transitivePeerDependencies: - supports-color - '@vue/babel-plugin-jsx@2.0.1(@babel/core@7.29.0(supports-color@10.2.2))(supports-color@10.2.2)': + '@vue/babel-plugin-jsx@2.0.1(@babel/core@7.29.0)': dependencies: - '@babel/helper-module-imports': 7.28.6(supports-color@10.2.2) + '@babel/helper-module-imports': 7.28.6 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0(supports-color@10.2.2)) + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0(supports-color@10.2.2) + '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 '@vue/babel-helper-vue-transform-on': 2.0.1 - '@vue/babel-plugin-resolve-type': 2.0.1(@babel/core@7.29.0(supports-color@10.2.2))(supports-color@10.2.2) + '@vue/babel-plugin-resolve-type': 2.0.1(@babel/core@7.29.0) '@vue/shared': 3.5.27 optionalDependencies: - '@babel/core': 7.29.0(supports-color@10.2.2) + '@babel/core': 7.29.0 transitivePeerDependencies: - supports-color - '@vue/babel-plugin-resolve-type@1.5.0(@babel/core@7.29.0(supports-color@10.2.2))(supports-color@10.2.2)': + '@vue/babel-plugin-resolve-type@1.5.0(@babel/core@7.29.0)': dependencies: '@babel/code-frame': 7.29.0 - '@babel/core': 7.29.0(supports-color@10.2.2) - '@babel/helper-module-imports': 7.28.6(supports-color@10.2.2) + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 '@babel/helper-plugin-utils': 7.28.6 '@babel/parser': 7.29.0 '@vue/compiler-sfc': 3.5.27 transitivePeerDependencies: - supports-color - '@vue/babel-plugin-resolve-type@2.0.1(@babel/core@7.29.0(supports-color@10.2.2))(supports-color@10.2.2)': + '@vue/babel-plugin-resolve-type@2.0.1(@babel/core@7.29.0)': dependencies: '@babel/code-frame': 7.29.0 - '@babel/core': 7.29.0(supports-color@10.2.2) - '@babel/helper-module-imports': 7.28.6(supports-color@10.2.2) + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 '@babel/helper-plugin-utils': 7.28.6 '@babel/parser': 7.29.0 '@vue/compiler-sfc': 3.5.27 @@ -9376,14 +9373,14 @@ snapshots: dependencies: '@vue/devtools-kit': 7.7.9 - '@vue/devtools-core@8.0.5(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3))': + '@vue/devtools-core@8.0.5(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3))': dependencies: '@vue/devtools-kit': 8.0.5 '@vue/devtools-shared': 8.0.5 mitt: 3.0.1 nanoid: 5.1.6 pathe: 2.0.3 - vite-hot-client: 2.1.0(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) + vite-hot-client: 2.1.0(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) vue: 3.5.27(typescript@5.9.3) transitivePeerDependencies: - vite @@ -9570,9 +9567,9 @@ snapshots: acorn@8.15.0: {} - agent-base@6.0.2(supports-color@10.2.2): + agent-base@6.0.2: dependencies: - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -9680,11 +9677,11 @@ snapshots: postcss: 8.5.8 postcss-value-parser: 4.2.0 - axios@1.16.1(debug@4.4.3(supports-color@10.2.2))(supports-color@10.2.2): + axios@1.16.1: dependencies: - follow-redirects: 1.16.0(debug@4.4.3(supports-color@10.2.2)) + follow-redirects: 1.16.0 form-data: 4.0.5 - https-proxy-agent: 5.0.1(supports-color@10.2.2) + https-proxy-agent: 5.0.1 proxy-from-env: 2.1.0 transitivePeerDependencies: - debug @@ -10041,11 +10038,9 @@ snapshots: debounce@1.2.1: {} - debug@4.4.3(supports-color@10.2.2): + debug@4.4.3: dependencies: ms: 2.1.3 - optionalDependencies: - supports-color: 10.2.2 decimal.js@10.6.0: {} @@ -10287,21 +10282,21 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-config-flat-gitignore@0.3.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2)): + eslint-config-flat-gitignore@0.3.0(eslint@9.39.2(jiti@1.21.7)): dependencies: - '@eslint/compat': 1.4.1(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2)) - eslint: 9.39.2(jiti@1.21.7)(supports-color@10.2.2) + '@eslint/compat': 1.4.1(eslint@9.39.2(jiti@1.21.7)) + eslint: 9.39.2(jiti@1.21.7) find-up-simple: 1.0.1 - eslint-config-flat-gitignore@0.3.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2)): + eslint-config-flat-gitignore@0.3.0(eslint@9.39.2(jiti@2.6.1)): dependencies: - '@eslint/compat': 1.4.1(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2)) - eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) + '@eslint/compat': 1.4.1(eslint@9.39.2(jiti@2.6.1)) + eslint: 9.39.2(jiti@2.6.1) find-up-simple: 1.0.1 - eslint-config-prettier@10.1.8(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2)): + eslint-config-prettier@10.1.8(eslint@9.39.2(jiti@2.6.1)): dependencies: - eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) + eslint: 9.39.2(jiti@2.6.1) eslint-flat-config-utils@0.4.0: dependencies: @@ -10314,12 +10309,12 @@ snapshots: optionalDependencies: unrs-resolver: 1.11.1 - eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2): + eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.7)): dependencies: '@typescript-eslint/types': 8.54.0 comment-parser: 1.4.5 - debug: 4.4.3(supports-color@10.2.2) - eslint: 9.39.2(jiti@1.21.7)(supports-color@10.2.2) + debug: 4.4.3 + eslint: 9.39.2(jiti@1.21.7) eslint-import-context: 0.1.9(unrs-resolver@1.11.1) is-glob: 4.0.3 minimatch: 10.1.2 @@ -10327,16 +10322,16 @@ snapshots: stable-hash-x: 0.2.0 unrs-resolver: 1.11.1 optionalDependencies: - '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) transitivePeerDependencies: - supports-color - eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2): + eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)): dependencies: '@typescript-eslint/types': 8.54.0 comment-parser: 1.4.5 - debug: 4.4.3(supports-color@10.2.2) - eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) + debug: 4.4.3 + eslint: 9.39.2(jiti@2.6.1) eslint-import-context: 0.1.9(unrs-resolver@1.11.1) is-glob: 4.0.3 minimatch: 10.1.2 @@ -10344,18 +10339,18 @@ snapshots: stable-hash-x: 0.2.0 unrs-resolver: 1.11.1 optionalDependencies: - '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) transitivePeerDependencies: - supports-color - eslint-plugin-jsdoc@50.8.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2): + eslint-plugin-jsdoc@50.8.0(eslint@9.39.2(jiti@1.21.7)): dependencies: '@es-joy/jsdoccomment': 0.50.2 are-docs-informative: 0.0.2 comment-parser: 1.4.1 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3 escape-string-regexp: 4.0.0 - eslint: 9.39.2(jiti@1.21.7)(supports-color@10.2.2) + eslint: 9.39.2(jiti@1.21.7) espree: 10.4.0 esquery: 1.7.0 parse-imports-exports: 0.2.4 @@ -10364,14 +10359,14 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-jsdoc@50.8.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2): + eslint-plugin-jsdoc@50.8.0(eslint@9.39.2(jiti@2.6.1)): dependencies: '@es-joy/jsdoccomment': 0.50.2 are-docs-informative: 0.0.2 comment-parser: 1.4.1 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3 escape-string-regexp: 4.0.0 - eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) + eslint: 9.39.2(jiti@2.6.1) espree: 10.4.0 esquery: 1.7.0 parse-imports-exports: 0.2.4 @@ -10380,61 +10375,61 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-prettier@5.5.5(eslint-config-prettier@10.1.8(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2)))(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(prettier@3.8.1): + eslint-plugin-prettier@5.5.5(eslint-config-prettier@10.1.8(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(prettier@3.8.1): dependencies: - eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) + eslint: 9.39.2(jiti@2.6.1) prettier: 3.8.1 prettier-linter-helpers: 1.0.1 synckit: 0.11.12 optionalDependencies: - eslint-config-prettier: 10.1.8(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2)) + eslint-config-prettier: 10.1.8(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-regexp@2.10.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2)): + eslint-plugin-regexp@2.10.0(eslint@9.39.2(jiti@1.21.7)): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2)) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7)) '@eslint-community/regexpp': 4.12.2 comment-parser: 1.4.5 - eslint: 9.39.2(jiti@1.21.7)(supports-color@10.2.2) + eslint: 9.39.2(jiti@1.21.7) jsdoc-type-pratt-parser: 4.8.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-regexp@2.10.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2)): + eslint-plugin-regexp@2.10.0(eslint@9.39.2(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2)) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 comment-parser: 1.4.5 - eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) + eslint: 9.39.2(jiti@2.6.1) jsdoc-type-pratt-parser: 4.8.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-simple-import-sort@12.1.1(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2)): + eslint-plugin-simple-import-sort@12.1.1(eslint@9.39.2(jiti@2.6.1)): dependencies: - eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) + eslint: 9.39.2(jiti@2.6.1) - eslint-plugin-turbo@2.8.2(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(turbo@2.8.2): + eslint-plugin-turbo@2.8.2(eslint@9.39.2(jiti@1.21.7))(turbo@2.8.2): dependencies: dotenv: 16.0.3 - eslint: 9.39.2(jiti@1.21.7)(supports-color@10.2.2) + eslint: 9.39.2(jiti@1.21.7) turbo: 2.8.2 - eslint-plugin-turbo@2.8.2(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(turbo@2.8.2): + eslint-plugin-turbo@2.8.2(eslint@9.39.2(jiti@2.6.1))(turbo@2.8.2): dependencies: dotenv: 16.0.3 - eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) + eslint: 9.39.2(jiti@2.6.1) turbo: 2.8.2 - eslint-plugin-unicorn@55.0.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2)): + eslint-plugin-unicorn@55.0.0(eslint@9.39.2(jiti@1.21.7)): dependencies: '@babel/helper-validator-identifier': 7.28.5 - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2)) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7)) ci-info: 4.4.0 clean-regexp: 1.0.0 core-js-compat: 3.48.0 - eslint: 9.39.2(jiti@1.21.7)(supports-color@10.2.2) + eslint: 9.39.2(jiti@1.21.7) esquery: 1.7.0 globals: 15.15.0 indent-string: 4.0.0 @@ -10447,14 +10442,14 @@ snapshots: semver: 7.7.4 strip-indent: 3.0.0 - eslint-plugin-unicorn@55.0.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2)): + eslint-plugin-unicorn@55.0.0(eslint@9.39.2(jiti@2.6.1)): dependencies: '@babel/helper-validator-identifier': 7.28.5 - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2)) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) ci-info: 4.4.0 clean-regexp: 1.0.0 core-js-compat: 3.48.0 - eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) + eslint: 9.39.2(jiti@2.6.1) esquery: 1.7.0 globals: 15.15.0 indent-string: 4.0.0 @@ -10467,44 +10462,44 @@ snapshots: semver: 7.7.4 strip-indent: 3.0.0 - eslint-plugin-vue@10.7.0(@stylistic/eslint-plugin@2.13.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3))(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)): + eslint-plugin-vue@10.7.0(@stylistic/eslint-plugin@2.13.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1))): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2)) - eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) + eslint: 9.39.2(jiti@2.6.1) natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 7.1.1 semver: 7.7.3 - vue-eslint-parser: 10.2.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2) + vue-eslint-parser: 10.2.0(eslint@9.39.2(jiti@2.6.1)) xml-name-validator: 4.0.0 optionalDependencies: - '@stylistic/eslint-plugin': 2.13.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) - '@typescript-eslint/parser': 8.54.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) + '@stylistic/eslint-plugin': 2.13.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-vue@9.33.0(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2): + eslint-plugin-vue@9.33.0(eslint@9.39.2(jiti@1.21.7)): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2)) - eslint: 9.39.2(jiti@1.21.7)(supports-color@10.2.2) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7)) + eslint: 9.39.2(jiti@1.21.7) globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.2 semver: 7.7.4 - vue-eslint-parser: 9.4.3(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2) + vue-eslint-parser: 9.4.3(eslint@9.39.2(jiti@1.21.7)) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color - eslint-plugin-vue@9.33.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2): + eslint-plugin-vue@9.33.0(eslint@9.39.2(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2)) - eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) + eslint: 9.39.2(jiti@2.6.1) globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.2 semver: 7.7.4 - vue-eslint-parser: 9.4.3(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2) + vue-eslint-parser: 9.4.3(eslint@9.39.2(jiti@2.6.1)) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color @@ -10523,14 +10518,14 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2): + eslint@9.39.2(jiti@1.21.7): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2)) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7)) '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.21.1(supports-color@10.2.2) + '@eslint/config-array': 0.21.1 '@eslint/config-helpers': 0.4.2 '@eslint/core': 0.17.0 - '@eslint/eslintrc': 3.3.3(supports-color@10.2.2) + '@eslint/eslintrc': 3.3.3 '@eslint/js': 9.39.2 '@eslint/plugin-kit': 0.4.1 '@humanfs/node': 0.16.7 @@ -10540,7 +10535,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3 escape-string-regexp: 4.0.0 eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -10564,14 +10559,14 @@ snapshots: transitivePeerDependencies: - supports-color - eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2): + eslint@9.39.2(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2)) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.21.1(supports-color@10.2.2) + '@eslint/config-array': 0.21.1 '@eslint/config-helpers': 0.4.2 '@eslint/core': 0.17.0 - '@eslint/eslintrc': 3.3.3(supports-color@10.2.2) + '@eslint/eslintrc': 3.3.3 '@eslint/js': 9.39.2 '@eslint/plugin-kit': 0.4.1 '@humanfs/node': 0.16.7 @@ -10581,7 +10576,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3 escape-string-regexp: 4.0.0 eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -10749,9 +10744,7 @@ snapshots: optionalDependencies: '@nuxt/kit': 3.21.0(magicast@0.5.1) - follow-redirects@1.16.0(debug@4.4.3(supports-color@10.2.2)): - optionalDependencies: - debug: 4.4.3(supports-color@10.2.2) + follow-redirects@1.16.0: {} foreground-child@3.3.1: dependencies: @@ -10952,17 +10945,17 @@ snapshots: http-shutdown@1.2.2: {} - https-proxy-agent@5.0.1(supports-color@10.2.2): + https-proxy-agent@5.0.1: dependencies: - agent-base: 6.0.2(supports-color@10.2.2) - debug: 4.4.3(supports-color@10.2.2) + agent-base: 6.0.2 + debug: 4.4.3 transitivePeerDependencies: - supports-color - https-proxy-agent@7.0.6(supports-color@10.2.2): + https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.4 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -11028,11 +11021,11 @@ snapshots: '@formatjs/icu-messageformat-parser': 2.9.4 tslib: 2.8.1 - ioredis@5.9.2(supports-color@10.2.2): + ioredis@5.9.2: dependencies: '@ioredis/commands': 1.5.0 cluster-key-slot: 1.1.2 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3 denque: 2.1.0 lodash.defaults: 4.2.0 lodash.isarguments: 3.1.0 @@ -11167,7 +11160,7 @@ snapshots: dependencies: lie: 3.3.0 pako: 1.0.11 - readable-stream: 2.3.8 + readable-stream: 2.3.8(patch_hash=3045f7adf989b4e668a4a13819b7285b0de186b79bbf22408acaf2a41c6eaa86) setimmediate: 1.0.5 keep-a-changelog@3.0.2: @@ -11196,7 +11189,7 @@ snapshots: lazystream@1.0.1: dependencies: - readable-stream: 2.3.8 + readable-stream: 2.3.8(patch_hash=3045f7adf989b4e668a4a13819b7285b0de186b79bbf22408acaf2a41c6eaa86) levn@0.4.1: dependencies: @@ -11550,7 +11543,7 @@ snapshots: nice-try@1.0.5: {} - nitropack@2.13.1(rolldown@1.0.0-rc.12)(supports-color@10.2.2)(xml2js@0.6.2): + nitropack@2.13.1(rolldown@1.0.0-rc.12)(xml2js@0.6.2): dependencies: '@cloudflare/kv-asset-handler': 0.4.2 '@rollup/plugin-alias': 6.0.0(rollup@4.57.1) @@ -11560,7 +11553,7 @@ snapshots: '@rollup/plugin-node-resolve': 16.0.3(rollup@4.57.1) '@rollup/plugin-replace': 6.0.3(rollup@4.57.1) '@rollup/plugin-terser': 0.4.4(rollup@4.57.1) - '@vercel/nft': 1.3.0(rollup@4.57.1)(supports-color@10.2.2) + '@vercel/nft': 1.3.0(rollup@4.57.1) archiver: 7.0.1 c12: 3.3.3(magicast@0.5.1) chokidar: 5.0.0 @@ -11584,7 +11577,7 @@ snapshots: h3: 1.15.5 hookable: 5.5.3 httpxy: 0.1.7 - ioredis: 5.9.2(supports-color@10.2.2) + ioredis: 5.9.2 jiti: 2.6.1 klona: 2.0.6 knitwork: 1.3.0 @@ -11607,7 +11600,7 @@ snapshots: scule: 1.3.0 semver: 7.8.5 serve-placeholder: 2.0.2 - serve-static: 2.2.1(supports-color@10.2.2) + serve-static: 2.2.1 source-map: 0.7.6 std-env: 3.10.0 ufo: 1.6.3 @@ -11617,7 +11610,7 @@ snapshots: unenv: 2.0.0-rc.24 unimport: 5.6.0 unplugin-utils: 0.3.1 - unstorage: 1.17.4(db0@0.3.4)(ioredis@5.9.2(supports-color@10.2.2)) + unstorage: 1.17.4(db0@0.3.4)(ioredis@5.9.2) untyped: 2.0.0 unwasm: 0.5.3 youch: 4.1.0-beta.13 @@ -11700,16 +11693,16 @@ snapshots: dependencies: boolbase: 1.0.0 - nuxt@3.20.2(@parcel/watcher@2.5.6)(@types/node@24.12.2)(@vue/compiler-sfc@3.5.27)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(ioredis@5.9.2(supports-color@10.2.2))(lightningcss@1.32.0)(magicast@0.5.1)(optionator@0.9.4)(rolldown@1.0.0-rc.12)(rollup@4.57.1)(sass@1.97.3)(supports-color@10.2.2)(terser@5.46.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2): + nuxt@3.20.2(@parcel/watcher@2.5.6)(@types/node@24.12.2)(@vue/compiler-sfc@3.5.27)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.9.2)(lightningcss@1.32.0)(magicast@0.5.1)(optionator@0.9.4)(rolldown@1.0.0-rc.12)(rollup@4.57.1)(sass@1.97.3)(terser@5.46.0)(typescript@5.9.3)(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2): dependencies: '@dxup/nuxt': 0.2.2(magicast@0.5.1) - '@nuxt/cli': 3.32.0(cac@6.7.14)(magicast@0.5.1)(supports-color@10.2.2) - '@nuxt/devtools': 3.1.1(supports-color@10.2.2)(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3)) + '@nuxt/cli': 3.32.0(cac@6.7.14)(magicast@0.5.1) + '@nuxt/devtools': 3.1.1(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3)) '@nuxt/kit': 3.20.2(magicast@0.5.1) - '@nuxt/nitro-server': 3.20.2(db0@0.3.4)(ioredis@5.9.2(supports-color@10.2.2))(magicast@0.5.1)(nuxt@3.20.2(@parcel/watcher@2.5.6)(@types/node@24.12.2)(@vue/compiler-sfc@3.5.27)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(ioredis@5.9.2(supports-color@10.2.2))(lightningcss@1.32.0)(magicast@0.5.1)(optionator@0.9.4)(rolldown@1.0.0-rc.12)(rollup@4.57.1)(sass@1.97.3)(supports-color@10.2.2)(terser@5.46.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2))(rolldown@1.0.0-rc.12)(supports-color@10.2.2)(typescript@5.9.3)(xml2js@0.6.2) + '@nuxt/nitro-server': 3.20.2(db0@0.3.4)(ioredis@5.9.2)(magicast@0.5.1)(nuxt@3.20.2(@parcel/watcher@2.5.6)(@types/node@24.12.2)(@vue/compiler-sfc@3.5.27)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.9.2)(lightningcss@1.32.0)(magicast@0.5.1)(optionator@0.9.4)(rolldown@1.0.0-rc.12)(rollup@4.57.1)(sass@1.97.3)(terser@5.46.0)(typescript@5.9.3)(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2))(rolldown@1.0.0-rc.12)(typescript@5.9.3)(xml2js@0.6.2) '@nuxt/schema': 3.20.2 '@nuxt/telemetry': 2.6.6(magicast@0.5.1) - '@nuxt/vite-builder': 3.20.2(@types/node@24.12.2)(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(lightningcss@1.32.0)(magicast@0.5.1)(nuxt@3.20.2(@parcel/watcher@2.5.6)(@types/node@24.12.2)(@vue/compiler-sfc@3.5.27)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(ioredis@5.9.2(supports-color@10.2.2))(lightningcss@1.32.0)(magicast@0.5.1)(optionator@0.9.4)(rolldown@1.0.0-rc.12)(rollup@4.57.1)(sass@1.97.3)(supports-color@10.2.2)(terser@5.46.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2))(optionator@0.9.4)(rolldown@1.0.0-rc.12)(rollup@4.57.1)(sass@1.97.3)(supports-color@10.2.2)(terser@5.46.0)(typescript@5.9.3)(vue-tsc@2.2.12(typescript@5.9.3))(vue@3.5.27(typescript@5.9.3))(yaml@2.8.2) + '@nuxt/vite-builder': 3.20.2(@types/node@24.12.2)(eslint@9.39.2(jiti@2.6.1))(lightningcss@1.32.0)(magicast@0.5.1)(nuxt@3.20.2(@parcel/watcher@2.5.6)(@types/node@24.12.2)(@vue/compiler-sfc@3.5.27)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.9.2)(lightningcss@1.32.0)(magicast@0.5.1)(optionator@0.9.4)(rolldown@1.0.0-rc.12)(rollup@4.57.1)(sass@1.97.3)(terser@5.46.0)(typescript@5.9.3)(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.2))(optionator@0.9.4)(rolldown@1.0.0-rc.12)(rollup@4.57.1)(sass@1.97.3)(terser@5.46.0)(typescript@5.9.3)(vue-tsc@2.2.12(typescript@5.9.3))(vue@3.5.27(typescript@5.9.3))(yaml@2.8.2) '@unhead/vue': 2.1.2(vue@3.5.27(typescript@5.9.3)) '@vue/shared': 3.5.27 c12: 3.3.3(magicast@0.5.1) @@ -12369,7 +12362,7 @@ snapshots: isarray: 0.0.1 string_decoder: 0.10.31 - readable-stream@2.3.8: + readable-stream@2.3.8(patch_hash=3045f7adf989b4e668a4a13819b7285b0de186b79bbf22408acaf2a41c6eaa86): dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -12549,9 +12542,9 @@ snapshots: semver@7.8.5: {} - send@1.2.1(supports-color@10.2.2): + send@1.2.1: dependencies: - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3 encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -12575,12 +12568,12 @@ snapshots: dependencies: defu: 6.1.4 - serve-static@2.2.1(supports-color@10.2.2): + serve-static@2.2.1: dependencies: encodeurl: 2.0.0 escape-html: 1.0.3 parseurl: 1.3.3 - send: 1.2.1(supports-color@10.2.2) + send: 1.2.1 transitivePeerDependencies: - supports-color @@ -12634,11 +12627,11 @@ snapshots: signal-exit@4.1.0: {} - simple-git@3.30.0(supports-color@10.2.2): + simple-git@3.30.0: dependencies: - '@kwsites/file-exists': 1.1.1(supports-color@10.2.2) + '@kwsites/file-exists': 1.1.1 '@kwsites/promise-deferred': 1.1.1 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -12993,13 +12986,13 @@ snapshots: type-level-regexp@0.1.17: {} - typescript-eslint@8.54.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3): + typescript-eslint@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) - '@typescript-eslint/parser': 8.54.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.54.0(supports-color@10.2.2)(typescript@5.9.3) - '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) + '@typescript-eslint/eslint-plugin': 8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -13120,7 +13113,7 @@ snapshots: '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 - unstorage@1.17.4(db0@0.3.4)(ioredis@5.9.2(supports-color@10.2.2)): + unstorage@1.17.4(db0@0.3.4)(ioredis@5.9.2): dependencies: anymatch: 3.1.3 chokidar: 5.0.0 @@ -13132,7 +13125,7 @@ snapshots: ufo: 1.6.3 optionalDependencies: db0: 0.3.4 - ioredis: 5.9.2(supports-color@10.2.2) + ioredis: 5.9.2 untun@0.1.3: dependencies: @@ -13176,26 +13169,26 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - vite-dev-rpc@1.1.0(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)): - dependencies: - birpc: 2.9.0 - vite: 7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) - vite-hot-client: 2.1.0(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) - vite-dev-rpc@1.1.0(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@1.21.7)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)): dependencies: birpc: 2.9.0 vite: 8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@1.21.7)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) vite-hot-client: 2.1.0(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@1.21.7)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) - vite-hot-client@2.1.0(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)): + vite-dev-rpc@1.1.0(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)): dependencies: - vite: 7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) + birpc: 2.9.0 + vite: 8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) + vite-hot-client: 2.1.0(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) vite-hot-client@2.1.0(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@1.21.7)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)): dependencies: vite: 8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@1.21.7)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) + vite-hot-client@2.1.0(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)): + dependencies: + vite: 8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) + vite-node@5.3.0(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2): dependencies: cac: 6.7.14 @@ -13216,7 +13209,7 @@ snapshots: - tsx - yaml - vite-plugin-checker@0.12.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(optionator@0.9.4)(typescript@5.9.3)(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3)): + vite-plugin-checker@0.12.0(eslint@9.39.2(jiti@2.6.1))(optionator@0.9.4)(typescript@5.9.3)(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.9.3)): dependencies: '@babel/code-frame': 7.29.0 chokidar: 4.0.3 @@ -13228,15 +13221,15 @@ snapshots: vite: 7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) vscode-uri: 3.1.0 optionalDependencies: - eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) + eslint: 9.39.2(jiti@2.6.1) optionator: 0.9.4 typescript: 5.9.3 vue-tsc: 2.2.12(typescript@5.9.3) - vite-plugin-inspect@11.3.3(@nuxt/kit@3.21.0(magicast@0.5.1))(supports-color@10.2.2)(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@1.21.7)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)): + vite-plugin-inspect@11.3.3(@nuxt/kit@3.21.0(magicast@0.5.1))(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@1.21.7)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)): dependencies: ansis: 4.2.0 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3 error-stack-parser-es: 1.0.5 ohash: 2.0.11 open: 10.2.0 @@ -13250,45 +13243,45 @@ snapshots: transitivePeerDependencies: - supports-color - vite-plugin-inspect@11.3.3(@nuxt/kit@4.3.0(magicast@0.5.1))(supports-color@10.2.2)(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)): + vite-plugin-inspect@11.3.3(@nuxt/kit@4.3.0(magicast@0.5.1))(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)): dependencies: ansis: 4.2.0 - debug: 4.4.3(supports-color@10.2.2) + debug: 4.4.3 error-stack-parser-es: 1.0.5 ohash: 2.0.11 open: 10.2.0 perfect-debounce: 2.1.0 sirv: 3.0.2 unplugin-utils: 0.3.1 - vite: 7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) - vite-dev-rpc: 1.1.0(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) + vite: 8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) + vite-dev-rpc: 1.1.0(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) optionalDependencies: '@nuxt/kit': 4.3.0(magicast@0.5.1) transitivePeerDependencies: - supports-color - vite-plugin-vue-devtools@8.2.1(@nuxt/kit@3.21.0(magicast@0.5.1))(supports-color@10.2.2)(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@1.21.7)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3)): + vite-plugin-vue-devtools@8.2.1(@nuxt/kit@3.21.0(magicast@0.5.1))(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@1.21.7)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3)): dependencies: '@vue/devtools-core': 8.2.1(vue@3.5.27(typescript@5.9.3)) '@vue/devtools-kit': 8.2.1 '@vue/devtools-shared': 8.2.1 sirv: 3.0.2 vite: 8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@1.21.7)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) - vite-plugin-inspect: 11.3.3(@nuxt/kit@3.21.0(magicast@0.5.1))(supports-color@10.2.2)(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@1.21.7)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) - vite-plugin-vue-inspector: 6.0.0(supports-color@10.2.2)(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@1.21.7)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) - vue: 3.5.27(typescript@5.9.3) + vite-plugin-inspect: 11.3.3(@nuxt/kit@3.21.0(magicast@0.5.1))(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@1.21.7)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) + vite-plugin-vue-inspector: 6.0.0(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@1.21.7)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)) transitivePeerDependencies: - '@nuxt/kit' - supports-color + - vue - vite-plugin-vue-inspector@6.0.0(supports-color@10.2.2)(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@1.21.7)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)): + vite-plugin-vue-inspector@6.0.0(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@1.21.7)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2)): dependencies: - '@babel/core': 7.29.0(supports-color@10.2.2) - '@babel/plugin-proposal-decorators': 7.29.7(@babel/core@7.29.0(supports-color@10.2.2))(supports-color@10.2.2) - '@babel/plugin-syntax-import-attributes': 7.29.7(@babel/core@7.29.0(supports-color@10.2.2)) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.0(supports-color@10.2.2)) - '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0(supports-color@10.2.2))(supports-color@10.2.2) - '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.29.0(supports-color@10.2.2))(supports-color@10.2.2) + '@babel/core': 7.29.0 + '@babel/plugin-proposal-decorators': 7.29.7(@babel/core@7.29.0) + '@babel/plugin-syntax-import-attributes': 7.29.7(@babel/core@7.29.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.0) + '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) + '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.29.0) '@vue/compiler-dom': 3.5.27 kolorist: 1.8.0 magic-string: 0.30.21 @@ -13296,14 +13289,14 @@ snapshots: transitivePeerDependencies: - supports-color - vite-plugin-vue-tracer@1.2.0(vite@7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3)): + vite-plugin-vue-tracer@1.2.0(vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.27(typescript@5.9.3)): dependencies: estree-walker: 3.0.3 exsolve: 1.0.8 magic-string: 0.30.21 pathe: 2.0.3 source-map-js: 1.2.1 - vite: 7.3.1(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) + vite: 8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2) vue: 3.5.27(typescript@5.9.3) vite-svg-loader@5.1.0(vue@3.5.27(typescript@5.9.3)): @@ -13356,6 +13349,22 @@ snapshots: terser: 5.46.0 yaml: 2.8.2 + vite@8.0.3(@types/node@24.12.2)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.2): + dependencies: + lightningcss: 1.32.0 + picomatch: 4.0.4 + postcss: 8.5.8 + rolldown: 1.0.0-rc.12 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 24.12.2 + esbuild: 0.27.3 + fsevents: 2.3.3 + jiti: 2.6.1 + sass: 1.97.3 + terser: 5.46.0 + yaml: 2.8.2 + vscode-uri@3.1.0: {} vue-bundle-renderer@2.2.0: @@ -13370,10 +13379,10 @@ snapshots: vue-devtools-stub@0.1.0: {} - vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2): + vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1)): dependencies: - debug: 4.4.3(supports-color@10.2.2) - eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) + debug: 4.4.3 + eslint: 9.39.2(jiti@2.6.1) eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -13382,10 +13391,10 @@ snapshots: transitivePeerDependencies: - supports-color - vue-eslint-parser@9.4.3(eslint@9.39.2(jiti@1.21.7)(supports-color@10.2.2))(supports-color@10.2.2): + vue-eslint-parser@9.4.3(eslint@9.39.2(jiti@1.21.7)): dependencies: - debug: 4.4.3(supports-color@10.2.2) - eslint: 9.39.2(jiti@1.21.7)(supports-color@10.2.2) + debug: 4.4.3 + eslint: 9.39.2(jiti@1.21.7) eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 @@ -13395,10 +13404,10 @@ snapshots: transitivePeerDependencies: - supports-color - vue-eslint-parser@9.4.3(eslint@9.39.2(jiti@2.6.1)(supports-color@10.2.2))(supports-color@10.2.2): + vue-eslint-parser@9.4.3(eslint@9.39.2(jiti@2.6.1)): dependencies: - debug: 4.4.3(supports-color@10.2.2) - eslint: 9.39.2(jiti@2.6.1)(supports-color@10.2.2) + debug: 4.4.3 + eslint: 9.39.2(jiti@2.6.1) eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 @@ -13430,7 +13439,7 @@ snapshots: vue-tsc@2.2.12(typescript@5.9.3): dependencies: - '@volar/typescript': 2.4.15(typescript@5.9.3) + '@volar/typescript': 2.4.15 '@vue/language-core': 2.2.12(typescript@5.9.3) typescript: 5.9.3