From 1b3d8b22f4b5dbe8be58e2c7a927cd9b3d8c5e5f Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Wed, 4 Feb 2026 19:32:19 +0100 Subject: [PATCH 01/38] feat: replatform electron for testing-view and fix app mode bug --- backend/package.json | 1 + electron-app/BUILD.md | 71 ++ electron-app/build.mjs | 503 ++++++------ electron-app/package.json | 23 +- electron-app/src/menu/menu.js | 14 +- electron-app/src/windows/mainWindow.js | 8 +- frontend/frontend-kit/core/src/websocket.ts | 31 +- .../ui/src/hooks/webSocket/index.ts | 1 + .../hooks/webSocket/useErrorSubscription.ts | 12 + frontend/testing-view/.env.production | 1 + frontend/testing-view/src/App.tsx | 28 +- .../components/settings/SettingsDialog.tsx | 11 +- .../testing-view/src/hooks/useAppConfigs.ts | 2 +- frontend/testing-view/src/hooks/useAppMode.ts | 19 +- .../testing-view/src/hooks/useErrorHandler.ts | 16 +- frontend/testing-view/src/main.tsx | 6 +- .../testing-view/src/store/slices/appSlice.ts | 7 + frontend/testing-view/src/store/store.ts | 2 +- frontend/testing-view/vite.config.ts | 1 + pnpm-lock.yaml | 714 ++++++++++++++++-- 20 files changed, 1100 insertions(+), 371 deletions(-) create mode 100644 electron-app/BUILD.md create mode 100644 frontend/frontend-kit/ui/src/hooks/webSocket/useErrorSubscription.ts create mode 100644 frontend/testing-view/.env.production diff --git a/backend/package.json b/backend/package.json index e433c7772..942b86567 100644 --- a/backend/package.json +++ b/backend/package.json @@ -8,6 +8,7 @@ "dev": "go run ./cmd --config ./cmd/dev-config.toml", "dev:main": "go run ./cmd --config ./cmd/config.toml", "build": "go build -o bin/backend ./cmd", + "build:ci": "go build", "test": "go test ./..." } } diff --git a/electron-app/BUILD.md b/electron-app/BUILD.md new file mode 100644 index 000000000..855ba3ff2 --- /dev/null +++ b/electron-app/BUILD.md @@ -0,0 +1,71 @@ +# Hyperloop Control Station Build System + +The project uses a unified, modular build script (`electron-app/build.mjs`) to handle building the backend (Go), packet sender (Rust), and frontends (React/Vite) for the Electron application. + +## Prerequisites + +- **Node.js** & **pnpm** +- **Go** (1.21+) +- **Rust/Cargo** (for Packet Sender) + +## Basic Usage + +Run the build script from the `electron-app` directory (or via npm scripts). + +```sh +# Build EVERYTHING (Backend, Packet Sender, Frontends) +pnpm build + +# OR +node build.mjs +``` + +## Configuration + +The build configuration is defined in `electron-app/build.mjs` within the `CONFIG` object. + +## Build Specific Components + +You can build individual components by passing their flag. + +```sh +# Build only the Backend +node build.mjs --backend + +# Build only the Testing View +node build.mjs --testing-view + +# Build only the Packet Sender +node build.mjs --packet-sender +``` + +## Platform Targeting + +By default, the script builds for all defined platforms (Windows, Linux, macOS). You can limit this using flags. + +```sh +# Build backend for Windows only +node build.mjs --backend --win + +# Build everything for Linux +node build.mjs --linux +``` + +## Advanced: Overwriting Commands + +The build script allows you to override configuration properties on the fly. This is useful for CI pipelines where you might want to use different build commands or flags. + +**Syntax**: `--[target].[property]="value"` + +### Examples + +```sh +# Use a custom build command for the backend: +node build.mjs --backend --backend.commands="pnpm run build:prod --" + +# Change the output directory +node build.mjs --backend --backend.output="./dist/bin" + +# Pass arguments to the underlying tools (passes -v) +node build.mjs --backend -- -v +``` diff --git a/electron-app/build.mjs b/electron-app/build.mjs index 17fa0dfe2..b29273485 100644 --- a/electron-app/build.mjs +++ b/electron-app/build.mjs @@ -1,285 +1,274 @@ #!/usr/bin/env node /** * @file build.mjs - * @description Build script for the Hyperloop Control Station Electron application. - * Handles building backend binaries, frontend applications, and managing build artifacts. + * @description Modular build script for Hyperloop Control Station */ import { execSync } from "child_process"; -import { mkdirSync, rmSync, cpSync } from "fs"; -import { join, dirname } from "path"; +import { copyFileSync, cpSync, existsSync, mkdirSync, rmSync } from "fs"; +import { dirname, join } from "path"; import { fileURLToPath } from "url"; import { logger } from "./src/utils/logger.js"; -import { colors } from "./src/utils/colors.js"; -// Get current directory path +// --- Configuration --- + const __dirname = dirname(fileURLToPath(import.meta.url)); -// Get project root directory (parent of electron-app) -const root = dirname(__dirname); +const ROOT = dirname(__dirname); -/** - * Executes a shell command synchronously with error handling. - * @param {string} cmd - The command to execute. - * @param {string} [cwd=root] - Working directory for the command. - * @param {Object} [env={}] - Additional environment variables to set. - * @returns {boolean} True if command succeeded, false otherwise. - * @example - * const success = run("npm install", "/path/to/project"); - * run("go build", backendDir, { GOOS: "windows", GOARCH: "amd64" }); - */ -const run = (cmd, cwd = root, env = {}) => { +const CONFIG = { + backend: { + type: "go", + path: join(ROOT, "backend"), // Root of backend (where package.json is) + output: join(__dirname, "binaries"), + commands: ["pnpm run build:ci"], + platforms: [ + { + id: "win64", + goos: "windows", + goarch: "amd64", + ext: ".exe", + tags: ["win", "windows"], + }, + { + id: "linux64", + goos: "linux", + goarch: "amd64", + ext: "", + tags: ["linux"], + }, + { + id: "mac64", + goos: "darwin", + goarch: "amd64", + ext: "", + tags: ["mac", "macos"], + }, + { + id: "macArm", + goos: "darwin", + goarch: "arm64", + ext: "", + tags: ["mac", "macos"], + }, + ], + }, + "packet-sender": { + type: "rust", + path: join(ROOT, "packet-sender"), + output: join(__dirname, "binaries"), + commands: ["pnpm install --frozen-lockfile", "pnpm run build"], + binaryPath: "target/release/packet-sender", + platforms: [ + { id: "win64", ext: ".exe", tags: ["win", "windows"] }, + { id: "linux64", ext: "", tags: ["linux"] }, + { id: "mac64", ext: "", tags: ["mac", "macos"] }, + ], + }, + "testing-view": { + type: "frontend", + path: join(ROOT, "frontend/testing-view"), + dest: join(__dirname, "renderer/testing-view"), + commands: ["pnpm install --frozen-lockfile", "pnpm run build"], + }, + "competition-view": { + type: "frontend", + path: join(ROOT, "frontend/competition-view"), + dest: join(__dirname, "renderer/competition-view"), + commands: ["pnpm install --frozen-lockfile", "pnpm run build"], + optional: true, + }, +}; + +// --- Helpers --- + +const run = (cmd, cwd, env = {}) => { try { - // Execute command with inherited stdio (shows output) - execSync(cmd, { - cwd, - stdio: "inherit", - shell: true, - // Merge process environment with provided env vars - env: { ...process.env, ...env }, - }); + const finalEnv = { ...process.env, ...env }; + execSync(cmd, { cwd, stdio: "inherit", shell: true, env: finalEnv }); return true; } catch (e) { - // Log warning if command fails (may need cross-compile tools) - logger.warning( - `${cmd.split(" ")[0]} failed (may need cross-compile tools)` - ); + logger.error(`Command failed: ${cmd}`); return false; } }; -// Parse command line arguments -const args = process.argv.slice(2); +const buildBackend = (config, requestedPlatforms, extraArgs = "") => { + logger.info("Building Backend (Go)..."); + mkdirSync(config.output, { recursive: true }); -// Show help message if requested -if (args.includes("--help") || args.includes("-h")) { - logger.info(` -${colors.bright}${colors.cyan}Hyperloop Control Station Build Script${colors.reset} - -${colors.bright}Usage:${colors.reset} - node build.mjs [options] - -${colors.bright}Options:${colors.reset} - ${colors.green}--platform${colors.reset} P Specify backend platform (windows, linux, mac, all) - ${colors.green}--backend${colors.reset} Build only backends - ${colors.green}--frontend${colors.reset} Build only frontends - ${colors.green}--common-front${colors.reset} Build common-front library - ${colors.green}--control-station${colors.reset} Build control-station frontend - ${colors.green}--ethernet-view${colors.reset} Build ethernet-view frontend - ${colors.green}--help, -h${colors.reset} Show this help message - -${colors.bright}Examples:${colors.reset} - node build.mjs ${colors.dim}# Build everything (all platforms)${colors.reset} - node build.mjs --platform windows ${colors.dim}# Build everything for Windows${colors.reset} - node build.mjs --backend ${colors.dim}# Build only backends (all platforms)${colors.reset} - node build.mjs --ethernet-view ${colors.dim}# Build only ethernet-view${colors.reset} - ${colors.brightYellow}For npm shortcuts, see package.json scripts section${colors.reset} -`); - process.exit(0); -} + const targets = config.platforms.filter((p) => { + if ( + !requestedPlatforms || + requestedPlatforms.length === 0 || + requestedPlatforms.includes("all") + ) + return true; + return p.tags.some((tag) => requestedPlatforms.includes(tag)); + }); -/** - * Gets the value of a command line argument flag. - * @param {string} flag - The flag to look for (e.g., "--platform"). - * @returns {string | null} The value after the flag, or null if not found. - * @example - * const platform = getArgValue("--platform"); - * // Returns "windows" if command was: node build.mjs --platform windows - */ -const getArgValue = (flag) => { - // Find index of the flag - const idx = args.findIndex((a) => a === flag); - // Return next argument if flag exists and has a value - return idx !== -1 && args[idx + 1] ? args[idx + 1] : null; -}; + if (targets.length === 0) { + logger.error( + `No matching platforms found for: ${requestedPlatforms.join(", ")}` + ); + return false; + } + + let success = true; + for (const p of targets) { + const filename = `backend-${p.goos}-${p.goarch}${p.ext}`; + logger.step(`Building ${p.goos}/${p.goarch}...`); + + for (const cmd of config.commands) { + // cmd is like "pnpm run build:ci --" + // We append the output flag and target directory + const buildCmd = `${cmd} -o "${join(config.output, filename)}" ${extraArgs} ./cmd`; -// Get platform argument value -const platformArg = getArgValue("--platform"); - -// Check if only --platform is specified (treat as build all for that platform) -const onlyPlatformSpecified = - platformArg && args.length === 2 && args[0] === "--platform"; - -// Determine what to build based on arguments -// Build everything if no args or only platform specified -const buildAll = args.length === 0 || onlyPlatformSpecified; -// Build only backend if --backend flag is present -const backendOnly = args.includes("--backend"); -// Build only frontend if --frontend flag is present -const frontendOnly = args.includes("--frontend"); -// Build common-front if explicitly requested, or if building frontend/all -const buildCommonFront = - args.includes("--common-front") || frontendOnly || (!backendOnly && buildAll); -// Build control-station if explicitly requested, or if building frontend/all -const buildControlStation = - args.includes("--control-station") || - frontendOnly || - (!backendOnly && buildAll); -// Build ethernet-view if explicitly requested, or if building frontend/all -const buildEthernetView = - args.includes("--ethernet-view") || - frontendOnly || - (!backendOnly && buildAll); -// Build backend if explicitly requested, or if building all, or if nothing else is being built -const buildBackend = - backendOnly || - (!frontendOnly && buildAll) || - (!buildCommonFront && !buildControlStation && !buildEthernetView); - -logger.header("🚀 Building Hyperloop Control Station"); - -// Setup: create necessary directories -mkdirSync(join(__dirname, "binaries"), { recursive: true }); -mkdirSync(join(__dirname, "renderer"), { recursive: true }); - -// Backend build section -if (buildBackend) { - logger.info("📦 Building backend..."); - // Path to backend source directory - const backendDir = join(root, "backend/cmd"); - // Path to binaries output directory - const binDir = join(__dirname, "binaries"); - - // Define all supported platforms for cross-compilation - const allPlatforms = [ - { - goos: "windows", - goarch: "amd64", - out: "backend-windows-amd64.exe", - name: "windows-amd64", - alias: "windows", - }, - { - goos: "linux", - goarch: "amd64", - out: "backend-linux-amd64", - name: "linux-amd64", - alias: "linux", - }, - { - goos: "darwin", - goarch: "amd64", - out: "backend-darwin-amd64", - name: "darwin-amd64", - alias: "mac", - }, - { - goos: "darwin", - goarch: "arm64", - out: "backend-darwin-arm64", - name: "darwin-arm64", - alias: "mac", - }, - ]; - - let platforms; - - // Filter platforms based on --platform argument - if (platformArg) { - if (platformArg === "all") { - // Build all platforms - platforms = allPlatforms; - } else { - // Filter to specific platform alias - platforms = allPlatforms.filter((p) => p.alias === platformArg); - // Error if platform not found - if (platforms.length === 0) { - logger.error(`Unknown platform: ${platformArg}`); - logger.error(`Available: windows, linux, mac, all`); - process.exit(1); + const result = run(buildCmd, config.path, { + GOOS: p.goos, + GOARCH: p.goarch, + CGO_ENABLED: "1", + }); + + if (!result) { + logger.warning(`Failed to build ${filename}`); + success = false; + break; } } + } + return success; +}; + +const buildRust = (name, config, requestedPlatforms, extraArgs = "") => { + logger.info(`Building ${name} (Rust)...`); + mkdirSync(config.output, { recursive: true }); + + for (const cmd of config.commands) { + // Only append extra args to build commands + const finalCmd = cmd.includes("build") ? `${cmd} ${extraArgs}` : cmd; + if (!run(finalCmd, config.path)) return false; + } + + const isWin = + process.platform === "win32" || + (requestedPlatforms && requestedPlatforms.includes("win")); + const ext = isWin ? ".exe" : ""; + + // Check for source binary + const sourceBin = join(config.path, config.binaryPath + ext); + const destName = `packet-sender${ext}`; + const destPath = join(config.output, destName); + + logger.step(`Copying binary to ${destPath}...`); + + if (existsSync(sourceBin)) { + copyFileSync(sourceBin, destPath); + return true; } else { - // Build all platforms if no platform specified - platforms = allPlatforms; + logger.error(`Rust binary not found at ${sourceBin}`); + return false; } +}; - // Build backend for each selected platform - for (const p of platforms) { - logger.step(`Building ${colors.magenta}${p.name}${colors.reset}...`); - // Run go build with platform-specific environment variables - run(`go build -o "${join(binDir, p.out)}" .`, backendDir, { - GOOS: p.goos, - GOARCH: p.goarch, - CGO_ENABLED: "1", - }); +const buildFrontend = (name, config, extraArgs = "") => { + if (config.optional && !existsSync(join(config.path, "package.json"))) { + logger.warning(`Skipping ${name} (not initialized)`); + return true; } -} - -// Frontend - Common library build -if (buildCommonFront) { - console.log(); - logger.info("📦 Building common-front..."); - logger.step(`Building ${colors.magenta}common-front${colors.reset}...`); - // Install dependencies - run("npm ci", join(root, "common-front")); - // Build the library - run("npm run build", join(root, "common-front")); -} - -// Frontend - Control Station build -if (buildControlStation) { - console.log(); - logger.info("📦 Building control-station..."); - logger.step(`Building ${colors.magenta}control-station${colors.reset}...`); - // Install dependencies - run("npm ci", join(root, "control-station")); - // Build the application - run("npm run build", join(root, "control-station")); - - logger.step("Copying static files..."); - // Remove existing renderer directory - rmSync(join(__dirname, "renderer/control-station"), { - recursive: true, - force: true, - }); - // Copy built static files to renderer directory - cpSync( - join(root, "control-station/static"), - join(__dirname, "renderer/control-station"), - { recursive: true } - ); -} - -// Frontend - Ethernet View build -if (buildEthernetView) { - console.log(); - logger.info("📦 Building ethernet-view..."); - logger.step(`Building ${colors.magenta}ethernet-view${colors.reset}...`); - // Install dependencies - run("npm ci", join(root, "ethernet-view")); - // Build the application - run("npm run build", join(root, "ethernet-view")); - - logger.step("Copying static files..."); - // Remove existing renderer directory - rmSync(join(__dirname, "renderer/ethernet-view"), { - recursive: true, - force: true, - }); - // Copy built static files to renderer directory - cpSync( - join(root, "ethernet-view/static"), - join(__dirname, "renderer/ethernet-view"), - { recursive: true } - ); -} - -// Install Electron dependencies if any frontend was built -if (buildControlStation || buildEthernetView) { - console.log(); - logger.info("📦 Installing Electron dependencies..."); - // Install Electron app dependencies - run("npm ci", __dirname); -} - -console.log(); -logger.success("✅ Build complete!"); -console.log(); -// Show helpful next steps -console.log( - `${colors.dim}To run in development: ${colors.reset}${colors.cyan}npm start${colors.reset}` -); -console.log( - `${colors.dim}To build installers: ${colors.reset}${colors.cyan}npm run dist${colors.reset}` + + logger.info(`Building ${name}...`); + + for (const cmd of config.commands) { + const finalCmd = cmd.includes("build") ? `${cmd} ${extraArgs}` : cmd; + if (!run(finalCmd, config.path)) return false; + } + + logger.step(`Copying to renderer/${name}...`); + if (existsSync(config.dest)) + rmSync(config.dest, { recursive: true, force: true }); + + const distPath = join(config.path, "dist"); + if (existsSync(distPath)) { + cpSync(distPath, config.dest, { recursive: true }); + return true; + } else { + logger.error(`Build output not found at ${distPath}`); + return false; + } +}; + +// --- Argument Parsing --- + +const args = process.argv.slice(2); +const doubleDashIndex = args.indexOf("--"); +const scriptArgs = + doubleDashIndex !== -1 ? args.slice(0, doubleDashIndex) : args; +const extraArgs = + doubleDashIndex !== -1 ? args.slice(doubleDashIndex + 1).join(" ") : ""; + +const requestedPlatforms = []; +if (scriptArgs.includes("--win") || scriptArgs.includes("--windows")) + requestedPlatforms.push("win"); +if (scriptArgs.includes("--linux")) requestedPlatforms.push("linux"); +if (scriptArgs.includes("--mac") || scriptArgs.includes("--macos")) + requestedPlatforms.push("mac"); +if (scriptArgs.includes("--all")) requestedPlatforms.push("all"); + +// Handle Overrides: --target.prop=value +scriptArgs.forEach((arg) => { + if (arg.startsWith("--") && arg.includes(".") && arg.includes("=")) { + const [key, value] = arg.slice(2).split("="); + const [target, prop] = key.split("."); + if (CONFIG[target] && prop) { + const finalValue = prop === "commands" ? value.split(",") : value; + CONFIG[target][prop] = finalValue; + logger.info(`Override: ${target}.${prop} = ${finalValue}`); + } + } +}); + +const specificTargets = Object.keys(CONFIG).filter((key) => + scriptArgs.includes(`--${key}`) ); -console.log(); +const targetsToBuild = + specificTargets.length > 0 ? specificTargets : Object.keys(CONFIG); + +// --- Main Execution --- + +logger.header("Hyperloop Control Station Build"); + +(async () => { + let frontendBuilt = false; + let allSuccess = true; + + for (const key of targetsToBuild) { + const config = CONFIG[key]; + let success = true; + + if (config.type === "go") { + success = buildBackend(config, requestedPlatforms, extraArgs); + } else if (config.type === "rust") { + success = buildRust(key, config, requestedPlatforms, extraArgs); + } else if (config.type === "frontend") { + success = buildFrontend(key, config, extraArgs); + if (success && !config.optional) frontendBuilt = true; + } + + if (!success) { + allSuccess = false; + if (process.env.CI) process.exit(1); + } + } + + if (frontendBuilt && !process.env.CI) { + logger.info("Finalizing Electron..."); + run("pnpm install --frozen-lockfile", __dirname); + } + + if (allSuccess) { + logger.success("Build complete!"); + } else { + logger.error("Build failed."); + process.exit(1); + } +})(); diff --git a/electron-app/package.json b/electron-app/package.json index b34bb56ad..7df04c577 100644 --- a/electron-app/package.json +++ b/electron-app/package.json @@ -22,18 +22,15 @@ "dist:linux": "electron-builder --linux", "test": "vitest run", "build": "node build.mjs", - "build:win": "node build.mjs --platform windows", - "build:linux": "node build.mjs --platform linux", - "build:mac": "node build.mjs --platform mac", - "build:all": "node build.mjs --platform all", + "build:win": "node build.mjs --win", + "build:linux": "node build.mjs --linux", + "build:mac": "node build.mjs --mac", + "build:all": "node build.mjs", "build:backend": "node build.mjs --backend", - "build:backend:win": "node build.mjs --backend --platform windows", - "build:backend:linux": "node build.mjs --backend --platform linux", - "build:backend:mac": "node build.mjs --backend --platform mac", - "build:frontend": "node build.mjs --frontend", - "build:common": "node build.mjs --common-front", - "build:control-station": "node build.mjs --control-station", - "build:ethernet-view": "node build.mjs --ethernet-view", + "build:backend:win": "node build.mjs --backend --win", + "build:backend:linux": "node build.mjs --backend --linux", + "build:backend:mac": "node build.mjs --backend --mac", + "build:testing-view": "node build.mjs --testing-view", "asar:win": "asar list dist/win-unpacked/resources/app.asar | findstr /V node_modules", "asar:mac": "asar list dist/mac-unpacked/resources/app.asar | findstr /V node_modules", "asar:linux": "asar list dist/linux-unpacked/resources/app.asar | findstr /V node_modules" @@ -45,8 +42,8 @@ "devDependencies": { "@vitest/coverage-v8": "^4.0.14", "asar": "^3.2.0", - "electron": "^28.0.0", - "electron-builder": "^24.9.1", + "electron": "34.0.2", + "electron-builder": "^26.7.0", "vitest": "^4.0.14" }, "build": { diff --git a/electron-app/src/menu/menu.js b/electron-app/src/menu/menu.js index 6cd06f19d..99d1096f1 100644 --- a/electron-app/src/menu/menu.js +++ b/electron-app/src/menu/menu.js @@ -4,13 +4,13 @@ * Defines menu structure with File, View, Tools, and Help sections with keyboard shortcuts and actions. */ -import { Menu, dialog, app } from "electron"; -import { getBinaryPath } from "../utils/paths.js"; +import { Menu, app, dialog } from "electron"; +import fs from "fs"; import { - startPacketSender, getPacketSenderProcess, + startPacketSender, } from "../processes/packetSender.js"; -import fs from "fs"; +import { getBinaryPath } from "../utils/paths.js"; import { loadView } from "../windows/mainWindow.js"; /** @@ -46,16 +46,14 @@ function createMenu(mainWindow) { label: "Control Station", accelerator: "CmdOrCtrl+1", click: () => { - loadView("control-station"); - loadView("control-station"); + loadView("competition-view"); }, }, { label: "Ethernet View", accelerator: "CmdOrCtrl+2", click: () => { - loadView("ethernet-view"); - loadView("ethernet-view"); + loadView("testing-view"); }, }, { type: "separator" }, diff --git a/electron-app/src/windows/mainWindow.js b/electron-app/src/windows/mainWindow.js index 885d142b4..0799139cf 100644 --- a/electron-app/src/windows/mainWindow.js +++ b/electron-app/src/windows/mainWindow.js @@ -5,8 +5,8 @@ */ import { BrowserWindow, app, dialog } from "electron"; -import path from "path"; import fs from "fs"; +import path from "path"; import { createMenu } from "../menu/menu.js"; import { getAppPath } from "../utils/paths.js"; @@ -16,7 +16,7 @@ const appPath = getAppPath(); // Store the main window instance let mainWindow = null; // Track the currently loaded view -let currentView = "ethernet-view"; +let currentView = "testing-view"; /** * Creates and initializes the main application window. @@ -44,7 +44,7 @@ function createWindow() { }); // Load ethernet view by default - loadView("ethernet-view"); + loadView(currentView); // Create application menu createMenu(mainWindow); @@ -117,4 +117,4 @@ function getMainWindow() { return mainWindow; } -export { createWindow, loadView, getCurrentView, getMainWindow }; +export { createWindow, getCurrentView, getMainWindow, loadView }; diff --git a/frontend/frontend-kit/core/src/websocket.ts b/frontend/frontend-kit/core/src/websocket.ts index 2d4005654..649818f1f 100644 --- a/frontend/frontend-kit/core/src/websocket.ts +++ b/frontend/frontend-kit/core/src/websocket.ts @@ -2,13 +2,16 @@ import { asyncScheduler, BehaviorSubject, bufferTime, + catchError, concatMap, + EMPTY, filter, from, map, Observable, ReplaySubject, shareReplay, + Subject, switchMap, throttleTime, } from "rxjs"; @@ -33,11 +36,26 @@ class SocketService { "connected" | "disconnected" | "connecting" >("disconnected"); + /** + * Subject that holds the error of the WebSocket connection. + * + * The idea is to emit only one error event for each error.\ + * Without this subject error gets duplicated because of shareReplay operator. + */ + public error$ = new Subject(); + /** * Observable that emits the messages from the WebSocket server. */ public messages$: Observable = this.socketSource$.pipe( - switchMap((socket) => socket), + switchMap((socket) => + socket.pipe( + catchError((err) => { + this.error$.next(err); + return EMPTY; + }), + ), + ), shareReplay(1), ); @@ -70,6 +88,8 @@ class SocketService { this.ws.subscribe({ error: (err) => { logger.core.error("WebSocket Error:", err); + this.error$.next(err); + this.status$.next("disconnected"); this.cleanup(); }, @@ -144,6 +164,15 @@ class SocketService { } this.ws.next({ topic, payload }); } + + /** + * Subscribes to the error subject. + * @param callback - the callback to call when an error occurs. + * @returns a subscription to the error subject. + */ + onError(callback: (err: Error) => void) { + return this.error$.subscribe(callback); + } } export const socketService = new SocketService(); diff --git a/frontend/frontend-kit/ui/src/hooks/webSocket/index.ts b/frontend/frontend-kit/ui/src/hooks/webSocket/index.ts index 94526929c..8b8f71bcf 100644 --- a/frontend/frontend-kit/ui/src/hooks/webSocket/index.ts +++ b/frontend/frontend-kit/ui/src/hooks/webSocket/index.ts @@ -1,3 +1,4 @@ export * from "./fetchConfig"; +export * from "./useErrorSubscription"; export * from "./useTopic"; export * from "./useWebSocket"; diff --git a/frontend/frontend-kit/ui/src/hooks/webSocket/useErrorSubscription.ts b/frontend/frontend-kit/ui/src/hooks/webSocket/useErrorSubscription.ts new file mode 100644 index 000000000..6b1eb734f --- /dev/null +++ b/frontend/frontend-kit/ui/src/hooks/webSocket/useErrorSubscription.ts @@ -0,0 +1,12 @@ +import { socketService } from "@workspace/core"; +import { useEffect } from "react"; + +const useErrorSubscription = (callback: (err: Error) => void) => { + useEffect(() => { + const sub = socketService.onError((err) => callback(err)); + + return () => sub.unsubscribe(); + }, [callback]); +}; + +export default useErrorSubscription; diff --git a/frontend/testing-view/.env.production b/frontend/testing-view/.env.production new file mode 100644 index 000000000..ae71e9e8b --- /dev/null +++ b/frontend/testing-view/.env.production @@ -0,0 +1 @@ +VITE_BACKEND_URL=http://127.0.0.1:4000/backend \ No newline at end of file diff --git a/frontend/testing-view/src/App.tsx b/frontend/testing-view/src/App.tsx index d5db347a5..9fe0777ca 100644 --- a/frontend/testing-view/src/App.tsx +++ b/frontend/testing-view/src/App.tsx @@ -12,8 +12,6 @@ import { AppLayout } from "./layout/AppLayout"; import { Logs } from "./pages/Logs"; import { Testing } from "./pages/Testing"; import { useStore } from "./store/store"; -import type { Connection } from "./types/common/connection"; -import type { MessagePacket } from "./types/data/message"; import type { TelemetryData } from "./types/telemetry/telemetry"; function App() { @@ -24,7 +22,7 @@ function App() { const { packets, commands, isLoading } = useAppConfigs(isConnected); // Determine app mode - useAppMode(packets, commands, isLoading, isConnected); + useAppMode(packets, commands, isLoading); // Transform boards and store in the global store useTransformedBoards(packets, commands); @@ -45,23 +43,23 @@ function App() { ); // Callback executed when connection updates are received - const updateConnections = useStore((s) => s.updateConnections); + // const updateConnections = useStore((s) => s.updateConnections); // Subscribe to connection updates - useTopic>("connection/update", (data) => { - updateConnections(data); - }); + // useTopic>("connection/update", (data) => { + // updateConnections(data); + // }); // Callback executed when messages are received - const addMessage = useStore((s) => s.addMessage); + // const addMessage = useStore((s) => s.addMessage); - useTopic("message/update", (data) => { - console.log("Message received:", data); - addMessage({ - ...data, - id: crypto.randomUUID(), - }); - }); + // useTopic("message/update", (data) => { + // console.log("Message received:", data); + // addMessage({ + // ...data, + // id: crypto.randomUUID(), + // }); + // }); return ( diff --git a/frontend/testing-view/src/components/settings/SettingsDialog.tsx b/frontend/testing-view/src/components/settings/SettingsDialog.tsx index f9fe6d647..895b9053b 100644 --- a/frontend/testing-view/src/components/settings/SettingsDialog.tsx +++ b/frontend/testing-view/src/components/settings/SettingsDialog.tsx @@ -1,3 +1,4 @@ +import { socketService } from "@workspace/core"; import { Badge, Button } from "@workspace/ui"; import { Dialog, @@ -18,6 +19,7 @@ import { SettingsForm } from "./SettingsForm"; export const SettingsDialog = () => { const isSettingsOpen = useStore((s) => s.isSettingsOpen); const setSettingsOpen = useStore((s) => s.setSettingsOpen); + const setRestarting = useStore((s) => s.setRestarting); const [localConfig, setLocalConfig] = useState(null); const [isSynced, setIsSynced] = useState(false); @@ -55,7 +57,14 @@ export const SettingsDialog = () => { } else { console.log("Electron API not available. Using default config."); } - setSettingsOpen(false); + + setRestarting(true); + + setTimeout(() => { + socketService.connect(); + setSettingsOpen(false); + setRestarting(false); + }, 500); }; return ( diff --git a/frontend/testing-view/src/hooks/useAppConfigs.ts b/frontend/testing-view/src/hooks/useAppConfigs.ts index 24ceb704b..4a8d29d98 100644 --- a/frontend/testing-view/src/hooks/useAppConfigs.ts +++ b/frontend/testing-view/src/hooks/useAppConfigs.ts @@ -17,7 +17,7 @@ const useAppConfigs = (isConnected: boolean) => { } = useFetchConfig(backendUrl, "orderStructures"); useEffect(() => { - if (isConnected && packets !== null && commands !== null) { + if (isConnected) { refetchPackets(); refetchCommands(); } diff --git a/frontend/testing-view/src/hooks/useAppMode.ts b/frontend/testing-view/src/hooks/useAppMode.ts index 13eb13307..e390a0cc4 100644 --- a/frontend/testing-view/src/hooks/useAppMode.ts +++ b/frontend/testing-view/src/hooks/useAppMode.ts @@ -7,11 +7,12 @@ export function useAppMode( packets: PacketsData | null, commands: OrdersData | null, isLoading: boolean, - backendConnected: boolean, ) { const setAppMode = useStore((s) => s.setAppMode); const appMode = useStore((s) => s.appMode); const modeOverride = useStore((s) => s.modeOverride); + const isRestarting = useStore((s) => s.isRestarting); + const error = useStore((s) => s.error); const determineAppMode = useCallback(() => { // If there's an override, use it @@ -22,8 +23,9 @@ export function useAppMode( const isForceDev = import.meta.env.VITE_FORCE_DEV === "true"; const isDev = import.meta.env.DEV || isForceDev; + const hasData = !!(packets?.boards && commands?.boards); - const hasError = !hasData || !backendConnected; + const hasError = !hasData || error; // Debug logs // logger.testingView.log("[DEBUG] isDev", isDev); @@ -32,11 +34,20 @@ export function useAppMode( // logger.testingView.log("[DEBUG] backendConnected", backendConnected); // logger.testingView.log("[DEBUG] hasError", hasError); - if (isLoading) return "loading"; + if (isLoading || isRestarting) return "loading"; + + if (!packets || !commands) { + // If we have an explicit error, show it. + if (hasError) return "error"; + + // Otherwise, we are just waiting for data. + return "loading"; + } + if (!hasError) return "active"; if (isDev) return "mock"; return "error"; - }, [isLoading, packets, commands, backendConnected, modeOverride]); + }, [isLoading, packets, commands, isRestarting, modeOverride]); // Determine and set app mode useEffect(() => { diff --git a/frontend/testing-view/src/hooks/useErrorHandler.ts b/frontend/testing-view/src/hooks/useErrorHandler.ts index 60f14b26c..fcba6be94 100644 --- a/frontend/testing-view/src/hooks/useErrorHandler.ts +++ b/frontend/testing-view/src/hooks/useErrorHandler.ts @@ -1,4 +1,5 @@ import { logger } from "@workspace/core"; +import useErrorSubscription from "@workspace/ui/hooks/webSocket/useErrorSubscription"; import { useEffect } from "react"; import { useStore } from "../store/store"; @@ -10,14 +11,23 @@ import { useStore } from "../store/store"; */ export function useErrorHandler() { const setError = useStore((s) => s.setError); - const setAppMode = useStore((s) => s.setAppMode); + + useErrorSubscription((err) => { + const isRestarting = useStore.getState().isRestarting; + + if (err instanceof CloseEvent && err.code == 1006 && isRestarting) { + logger.testingView.warn("Restarting app..."); + return; + } + + setError(err); + }); useEffect(() => { // Global error handler const handleError = (event: ErrorEvent) => { logger.testingView.error("Uncaught error:", event.error); setError(event.error); - setAppMode("error"); }; // Unhandled promise rejection handler @@ -42,7 +52,7 @@ export function useErrorHandler() { handleUnhandledRejection, ); }; - }, [setError, setAppMode]); + }, [setError]); /** * This functions prints the error and the error info in console using logger diff --git a/frontend/testing-view/src/main.tsx b/frontend/testing-view/src/main.tsx index 1aa646249..6ffe1cf7c 100644 --- a/frontend/testing-view/src/main.tsx +++ b/frontend/testing-view/src/main.tsx @@ -1,13 +1,13 @@ import { StrictMode } from "react"; import { createRoot } from "react-dom/client"; -import { BrowserRouter } from "react-router"; +import { HashRouter } from "react-router"; import App from "./App.tsx"; import "./index.css"; createRoot(document.getElementById("root")!).render( - + - + , ); diff --git a/frontend/testing-view/src/store/slices/appSlice.ts b/frontend/testing-view/src/store/slices/appSlice.ts index 662de7340..7afc5a42f 100644 --- a/frontend/testing-view/src/store/slices/appSlice.ts +++ b/frontend/testing-view/src/store/slices/appSlice.ts @@ -13,6 +13,9 @@ export interface AppSlice { error: Error | null; setError: (error: Error | null) => void; + isRestarting: boolean; + setRestarting: (isRestarting: boolean) => void; + // Mode override (only used in dev mode) modeOverride: AppMode | null; setModeOverride: (mode: AppMode | null) => void; @@ -53,6 +56,10 @@ export const createAppSlice: StateCreator = (set) => ({ error: null, setError: (error) => set({ error }), + // Happens when we restart the backend on config change + isRestarting: false, + setRestarting: (isRestarting) => set({ isRestarting }), + // Mode override (only used in dev mode) modeOverride: null, setModeOverride: (mode) => set({ modeOverride: mode }), diff --git a/frontend/testing-view/src/store/store.ts b/frontend/testing-view/src/store/store.ts index 9ed8695ee..26c3602f8 100644 --- a/frontend/testing-view/src/store/store.ts +++ b/frontend/testing-view/src/store/store.ts @@ -73,7 +73,7 @@ export const useStore = create()( // Workspace UI state activeTab: state.activeTab, - tabFilters: state.workspaceFilters, + workspaceFilters: state.workspaceFilters, }), }, ), diff --git a/frontend/testing-view/vite.config.ts b/frontend/testing-view/vite.config.ts index 4093b0cc7..41187a938 100644 --- a/frontend/testing-view/vite.config.ts +++ b/frontend/testing-view/vite.config.ts @@ -5,6 +5,7 @@ import { defineConfig } from "vite"; // https://vite.dev/config/ export default defineConfig({ plugins: [react(), tailwindcss()], + base: "./", server: { port: 9000, host: true, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a08e9d060..fc8c7a4a8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -40,19 +40,19 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^4.0.14 - version: 4.0.16(vitest@4.0.16(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)) + version: 4.0.16(vitest@4.0.16(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2)) asar: specifier: ^3.2.0 version: 3.2.0 electron: - specifier: ^28.0.0 - version: 28.3.3 + specifier: 34.0.2 + version: 34.0.2 electron-builder: - specifier: ^24.9.1 - version: 24.13.3(electron-builder-squirrel-windows@24.13.3) + specifier: ^26.7.0 + version: 26.7.0(electron-builder-squirrel-windows@24.13.3) vitest: specifier: ^4.0.14 - version: 4.0.16(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2) + version: 4.0.16(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2) frontend/frontend-kit/core: dependencies: @@ -233,7 +233,7 @@ importers: version: 1.2.4(@types/react@19.2.7)(react@19.2.3) '@tailwindcss/vite': specifier: ^4.1.17 - version: 4.1.18(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)) + version: 4.1.18(vite@7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2)) '@tanstack/react-virtual': specifier: ^3.13.14 version: 3.13.14(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -242,7 +242,7 @@ importers: version: 4.17.23 '@vitejs/plugin-react-swc': specifier: ^4.2.2 - version: 4.2.2(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)) + version: 4.2.2(vite@7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2)) '@workspace/core': specifier: workspace:* version: link:../frontend-kit/core @@ -269,7 +269,7 @@ importers: version: 1.6.32 vitest: specifier: ^4.0.16 - version: 4.0.16(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2) + version: 4.0.16(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2) zustand: specifier: ^5.0.11 version: 5.0.11(@types/react@19.2.7)(immer@11.1.0)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3)) @@ -297,7 +297,7 @@ importers: version: 5.9.3 vite: specifier: ^7.2.4 - version: 7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2) + version: 7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2) packet-sender: {} @@ -370,23 +370,49 @@ packages: engines: {node: '>=10.12.0'} hasBin: true + '@electron/fuses@1.8.0': + resolution: {integrity: sha512-zx0EIq78WlY/lBb1uXlziZmDZI4ubcCXIMJ4uGjXzZW0nS19TjSPeXPAjzzTmKQlJUZm0SbmZhPKP7tuQ1SsEw==} + hasBin: true + '@electron/get@2.0.3': resolution: {integrity: sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==} engines: {node: '>=12'} + '@electron/get@3.1.0': + resolution: {integrity: sha512-F+nKc0xW+kVbBRhFzaMgPy3KwmuNTYX1fx6+FxxoSnNgwYX6LD7AKBTWkU0MQ6IBoe7dz069CNkR673sPAgkCQ==} + engines: {node: '>=14'} + '@electron/notarize@2.2.1': resolution: {integrity: sha512-aL+bFMIkpR0cmmj5Zgy0LMKEpgy43/hw5zadEArgmAMWWlKc5buwFvFT9G/o/YJkvXAJm5q3iuTuLaiaXW39sg==} engines: {node: '>= 10.0.0'} + '@electron/notarize@2.5.0': + resolution: {integrity: sha512-jNT8nwH1f9X5GEITXaQ8IF/KdskvIkOFfB2CvwumsveVidzpSc+mvhhTMdAGSYF3O+Nq49lJ7y+ssODRXu06+A==} + engines: {node: '>= 10.0.0'} + '@electron/osx-sign@1.0.5': resolution: {integrity: sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==} engines: {node: '>=12.0.0'} hasBin: true + '@electron/osx-sign@1.3.3': + resolution: {integrity: sha512-KZ8mhXvWv2rIEgMbWZ4y33bDHyUKMXnx4M0sTyPNK/vcB81ImdeY9Ggdqy0SWbMDgmbqyQ+phgejh6V3R2QuSg==} + engines: {node: '>=12.0.0'} + hasBin: true + + '@electron/rebuild@4.0.3': + resolution: {integrity: sha512-u9vpTHRMkOYCs/1FLiSVAFZ7FbjsXK+bQuzviJZa+lG7BHZl1nz52/IcGvwa3sk80/fc3llutBkbCq10Vh8WQA==} + engines: {node: '>=22.12.0'} + hasBin: true + '@electron/universal@1.5.1': resolution: {integrity: sha512-kbgXxyEauPJiQQUNG2VgUeyfQNFk6hBF11ISN2PNI6agUgPl55pv4eQmaqHzTAzchBvqZ2tQuRVaPStGf0mxGw==} engines: {node: '>=8.6'} + '@electron/universal@2.0.3': + resolution: {integrity: sha512-Wn9sPYIVFRFl5HmwMJkARCCf7rqK/EurkfQ/rJZ14mHP3iYTjZSIOSVonEAnhWeAXwtw7zOekGRlc6yTtZ0t+g==} + engines: {node: '>=16.4'} + '@esbuild/aix-ppc64@0.27.2': resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==} engines: {node: '>=18'} @@ -615,10 +641,22 @@ packages: '@iarna/toml@2.2.5': resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} + '@isaacs/balanced-match@4.0.1': + resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} + engines: {node: 20 || >=22} + + '@isaacs/brace-expansion@5.0.1': + resolution: {integrity: sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==} + engines: {node: 20 || >=22} + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} + '@isaacs/fs-minipass@4.0.1': + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} + '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} @@ -642,6 +680,10 @@ packages: resolution: {integrity: sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==} engines: {node: '>= 10'} + '@malept/cross-spawn-promise@2.0.0': + resolution: {integrity: sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==} + engines: {node: '>= 12.13.0'} + '@malept/flatpak-bundler@0.4.0': resolution: {integrity: sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==} engines: {node: '>= 10.0.0'} @@ -658,6 +700,14 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@npmcli/agent@3.0.0': + resolution: {integrity: sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==} + engines: {node: ^18.17.0 || >=20.5.0} + + '@npmcli/fs@4.0.0': + resolution: {integrity: sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==} + engines: {node: ^18.17.0 || >=20.5.0} + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -1463,12 +1513,12 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node@18.19.130': - resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==} - '@types/node@20.19.27': resolution: {integrity: sha512-N2clP5pJhB2YnZJ3PIHFk5RkygRX5WO/5f0WC08tp0wd+sv0rsJk3MqWn3CbNmT2J505a5336jaQj4ph1AdMug==} + '@types/node@24.10.10': + resolution: {integrity: sha512-+0/4J266CBGPUq/ELg7QUHhN25WYjE0wYTPSQJn1xeu8DOlIOPxXxrNGiLmfAWl7HMMgWFWXpt9IDjMWrF5Iow==} + '@types/plist@3.0.5': resolution: {integrity: sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==} @@ -1602,6 +1652,10 @@ packages: resolution: {integrity: sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==} engines: {node: '>=10.0.0'} + abbrev@3.0.1: + resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} + engines: {node: ^18.17.0 || >=20.5.0} + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -1674,6 +1728,9 @@ packages: app-builder-bin@4.0.0: resolution: {integrity: sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==} + app-builder-bin@5.0.0-alpha.12: + resolution: {integrity: sha512-j87o0j6LqPL3QRr8yid6c+Tt5gC7xNfYo6uQIQkorAC6MpeayVMZrEDzKmJJ/Hlv7EnOQpaRm53k6ktDYZyB6w==} + app-builder-lib@24.13.3: resolution: {integrity: sha512-FAzX6IBit2POXYGnTCT8YHFO/lr5AapAII6zzhQO3Rw4cEDOgK+t1xhLc5tNcKlicTHlo9zxIwnYCX9X2DLkig==} engines: {node: '>=14.0.0'} @@ -1681,6 +1738,13 @@ packages: dmg-builder: 24.13.3 electron-builder-squirrel-windows: 24.13.3 + app-builder-lib@26.7.0: + resolution: {integrity: sha512-/UgCD8VrO79Wv8aBNpjMfsS1pIUfIPURoRn0Ik6tMe5avdZF+vQgl/juJgipcMmH3YS0BD573lCdCHyoi84USg==} + engines: {node: '>=14.0.0'} + peerDependencies: + dmg-builder: 26.7.0 + electron-builder-squirrel-windows: 26.7.0 + archiver-utils@2.1.0: resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} engines: {node: '>= 6'} @@ -1836,12 +1900,23 @@ packages: resolution: {integrity: sha512-upp+biKpN/XZMLim7aguUyW8s0FUpDvOtK6sbanMFDAMBzpHDqdhgVYm6zc9HJ6nWo7u2Lxk60i2M6Jd3aiNrA==} engines: {node: '>=12.0.0'} + builder-util-runtime@9.5.1: + resolution: {integrity: sha512-qt41tMfgHTllhResqM5DcnHyDIWNgzHvuY2jDcYP9iaGpkWxTUzV6GQjDeLnlR1/DtdlcsWQbA7sByMpmJFTLQ==} + engines: {node: '>=12.0.0'} + builder-util@24.13.1: resolution: {integrity: sha512-NhbCSIntruNDTOVI9fdXz0dihaqX2YuE1D6zZMrwiErzH4ELZHE6mdiB40wEgZNprDia+FghRFgKoAqMZRRjSA==} + builder-util@26.4.1: + resolution: {integrity: sha512-FlgH43XZ50w3UtS1RVGDWOz8v9qMXPC7upMtKMtBEnYdt1OVoS61NYhKm/4x+cIaWqJTXua0+VVPI+fSPGXNIw==} + builtins@5.1.0: resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} + cacache@19.0.1: + resolution: {integrity: sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ==} + engines: {node: ^18.17.0 || >=20.5.0} + cacheable-lookup@5.0.4: resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} engines: {node: '>=10.6.0'} @@ -1895,6 +1970,10 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} + chromium-pickle-js@0.2.0: resolution: {integrity: sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==} @@ -1902,6 +1981,14 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} + ci-info@4.3.1: + resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==} + engines: {node: '>=8'} + + ci-info@4.4.0: + resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} + engines: {node: '>=8'} + class-variance-authority@0.7.1: resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} @@ -2105,12 +2192,15 @@ packages: dir-compare@3.3.0: resolution: {integrity: sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==} + dir-compare@4.2.0: + resolution: {integrity: sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ==} + dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} - dmg-builder@24.13.3: - resolution: {integrity: sha512-rcJUkMfnJpfCboZoOOPf4L29TRtEieHNOeAbYPWPxlaBw/Z1RKrRA86dOI9rwaI4tQSc/RD82zTNHprfUHXsoQ==} + dmg-builder@26.7.0: + resolution: {integrity: sha512-uOOBA3f+kW3o4KpSoMQ6SNpdXU7WtxlJRb9vCZgOvqhTz4b3GjcoWKstdisizNZLsylhTMv8TLHFPFW0Uxsj/g==} dmg-license@1.0.11: resolution: {integrity: sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==} @@ -2129,6 +2219,10 @@ packages: resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} engines: {node: '>=10'} + dotenv-expand@11.0.7: + resolution: {integrity: sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==} + engines: {node: '>=12'} + dotenv-expand@5.1.0: resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==} @@ -2136,6 +2230,10 @@ packages: resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} engines: {node: '>=12'} + dotenv@16.6.1: + resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} + engines: {node: '>=12'} + dotenv@9.0.2: resolution: {integrity: sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==} engines: {node: '>=10'} @@ -2155,19 +2253,22 @@ packages: electron-builder-squirrel-windows@24.13.3: resolution: {integrity: sha512-oHkV0iogWfyK+ah9ZIvMDpei1m9ZRpdXcvde1wTpra2U8AFDNNpqJdnin5z+PM1GbQ5BoaKCWas2HSjtR0HwMg==} - electron-builder@24.13.3: - resolution: {integrity: sha512-yZSgVHft5dNVlo31qmJAe4BVKQfFdwpRw7sFp1iQglDRCDD6r22zfRJuZlhtB5gp9FHUxCMEoWGq10SkCnMAIg==} + electron-builder@26.7.0: + resolution: {integrity: sha512-LoXbCvSFxLesPneQ/fM7FB4OheIDA2tjqCdUkKlObV5ZKGhYgi5VHPHO/6UUOUodAlg7SrkPx7BZJPby+Vrtbg==} engines: {node: '>=14.0.0'} hasBin: true electron-publish@24.13.1: resolution: {integrity: sha512-2ZgdEqJ8e9D17Hwp5LEq5mLQPjqU3lv/IALvgp+4W8VeNhryfGhYEQC/PgDPMrnWUp+l60Ou5SJLsu+k4mhQ8A==} + electron-publish@26.6.0: + resolution: {integrity: sha512-LsyHMMqbvJ2vsOvuWJ19OezgF2ANdCiHpIucDHNiLhuI+/F3eW98ouzWSRmXXi82ZOPZXC07jnIravY4YYwCLQ==} + electron-store@8.2.0: resolution: {integrity: sha512-ukLL5Bevdil6oieAOXz3CMy+OgaItMiVBg701MNlG6W5RaC0AHN7rvlqTCmeb6O7jP0Qa1KKYTE0xV0xbhF4Hw==} - electron@28.3.3: - resolution: {integrity: sha512-ObKMLSPNhomtCOBAxFS8P2DW/4umkh72ouZUlUKzXGtYuPzgr1SYhskhFWgzAsPtUzhL2CzyV2sfbHcEW4CXqw==} + electron@34.0.2: + resolution: {integrity: sha512-u3F+DSUlg9NaGS+9qnYmSRN8VjAnc3LJDDk1ye1uISJnh4gjG76y3681qLowsPMx4obvCP2eBINnmbLo0yT5WA==} engines: {node: '>= 12.20.55'} hasBin: true @@ -2177,6 +2278,9 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + end-of-stream@1.4.5: resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} @@ -2342,6 +2446,9 @@ packages: resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} engines: {node: '>=12.0.0'} + exponential-backoff@3.1.3: + resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} + external-editor@3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} @@ -2439,6 +2546,10 @@ packages: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} + fs-extra@11.3.3: + resolution: {integrity: sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==} + engines: {node: '>=14.14'} + fs-extra@8.1.0: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} @@ -2451,6 +2562,10 @@ packages: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} engines: {node: '>= 8'} + fs-minipass@3.0.3: + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -2850,6 +2965,10 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + istanbul-lib-coverage@3.2.2: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} @@ -3097,6 +3216,10 @@ packages: make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + make-fetch-happen@14.0.3: + resolution: {integrity: sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==} + engines: {node: ^18.17.0 || >=20.5.0} + matcher@3.0.0: resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} engines: {node: '>=10'} @@ -3145,6 +3268,10 @@ packages: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} + minimatch@10.1.2: + resolution: {integrity: sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==} + engines: {node: 20 || >=22} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -3163,6 +3290,26 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minipass-collect@2.0.1: + resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass-fetch@4.0.1: + resolution: {integrity: sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ==} + engines: {node: ^18.17.0 || >=20.5.0} + + minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} + + minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} + + minipass-sized@1.0.3: + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + engines: {node: '>=8'} + minipass@3.3.6: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} @@ -3179,6 +3326,10 @@ packages: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} + minizlib@3.1.0: + resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} + engines: {node: '>= 18'} + mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -3202,6 +3353,10 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + negotiator@1.0.0: + resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} + engines: {node: '>= 0.6'} + neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} @@ -3218,13 +3373,30 @@ packages: no-case@2.3.2: resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==} + node-abi@4.26.0: + resolution: {integrity: sha512-8QwIZqikRvDIkXS2S93LjzhsSPJuIbfaMETWH+Bx8oOT9Sa9UsUtBFQlc3gBNd1+QINjaTloitXr1W3dQLi9Iw==} + engines: {node: '>=22.12.0'} + node-addon-api@1.7.2: resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==} + node-api-version@0.2.1: + resolution: {integrity: sha512-2xP/IGGMmmSQpI1+O/k72jF/ykvZ89JeuKX3TLJAYPDVLUalrshrLHkeVcCCZqG/eEa635cr8IBYzgnDvM2O8Q==} + + node-gyp@11.5.0: + resolution: {integrity: sha512-ra7Kvlhxn5V9Slyus0ygMa2h+UqExPqUIkfk7Pc8QTLT956JLSy51uWFwHtIYy0vI8cB4BDhc/S03+880My/LQ==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true + node-plop@0.26.3: resolution: {integrity: sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==} engines: {node: '>=8.9.4'} + nopt@8.1.0: + resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -3319,6 +3491,10 @@ packages: resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} engines: {node: '>=8'} + p-map@7.0.4: + resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} + engines: {node: '>=18'} + p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -3377,6 +3553,10 @@ packages: pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + pe-library@0.4.1: + resolution: {integrity: sha512-eRWB5LBz7PpDu4PUlwT0PhnQfTQJlDDdPa35urV4Osrm0t0AqQFGn+UIkU3klZvwJ8KPO3VbBFsXquA6p6kqZw==} + engines: {node: '>=12', npm: '>=6'} + pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} @@ -3480,6 +3660,10 @@ packages: engines: {node: '>=14'} hasBin: true + proc-log@5.0.0: + resolution: {integrity: sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==} + engines: {node: ^18.17.0 || >=20.5.0} + process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -3494,6 +3678,9 @@ packages: prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + proper-lockfile@4.1.2: + resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} + proxy-agent@6.5.0: resolution: {integrity: sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==} engines: {node: '>= 14'} @@ -3577,6 +3764,10 @@ packages: resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} engines: {node: '>=0.10.0'} + read-binary-file-arch@1.0.6: + resolution: {integrity: sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==} + hasBin: true + read-config-file@6.3.2: resolution: {integrity: sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q==} engines: {node: '>=12.0.0'} @@ -3614,6 +3805,10 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + resedit@1.7.2: + resolution: {integrity: sha512-vHjcY2MlAITJhC0eRD/Vv8Vlgmu9Sd3LX9zZvtGzU5ZImdTN3+d6e/4mnTyV8vEbyf1sgNIrWxhWlrys52OkEA==} + engines: {node: '>=12', npm: '>=6'} + resolve-alpn@1.2.1: resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} @@ -3706,6 +3901,10 @@ packages: semver-compare@1.0.0: resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -3817,6 +4016,10 @@ packages: sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + ssri@12.0.0: + resolution: {integrity: sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==} + engines: {node: ^18.17.0 || >=20.5.0} + stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -3922,12 +4125,19 @@ packages: engines: {node: '>=10'} deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + tar@7.5.7: + resolution: {integrity: sha512-fov56fJiRuThVFXD6o6/Q354S7pnWMJIVlDBYijsTNx6jKSE4pvrDTs6lUnmGvNyfJwFQQwWy3owKz1ucIhveQ==} + engines: {node: '>=18'} + temp-file@3.4.0: resolution: {integrity: sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==} through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + tiny-async-pool@1.3.0: + resolution: {integrity: sha512-01EAw5EDrcVrdgyCLgoSPvqznC0sVxDSVeiOz09FUpjh71G79VCqneOr+xvt7T1r76CF6ZZfPjHorN2+d+3mqA==} + tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} @@ -4125,12 +4335,20 @@ packages: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + + unique-filename@4.0.0: + resolution: {integrity: sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ==} + engines: {node: ^18.17.0 || >=20.5.0} + + unique-slug@5.0.0: + resolution: {integrity: sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg==} + engines: {node: ^18.17.0 || >=20.5.0} + universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} @@ -4294,6 +4512,11 @@ packages: engines: {node: '>= 8'} hasBin: true + which@5.0.0: + resolution: {integrity: sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true + why-is-node-running@2.3.0: resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} engines: {node: '>=8'} @@ -4328,6 +4551,10 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -4437,6 +4664,12 @@ snapshots: glob: 7.2.3 minimatch: 3.1.2 + '@electron/fuses@1.8.0': + dependencies: + chalk: 4.1.2 + fs-extra: 9.1.0 + minimist: 1.2.8 + '@electron/get@2.0.3': dependencies: debug: 4.4.3 @@ -4451,6 +4684,20 @@ snapshots: transitivePeerDependencies: - supports-color + '@electron/get@3.1.0': + dependencies: + debug: 4.4.3 + env-paths: 2.2.1 + fs-extra: 8.1.0 + got: 11.8.6 + progress: 2.0.3 + semver: 6.3.1 + sumchecker: 3.0.1 + optionalDependencies: + global-agent: 3.0.0 + transitivePeerDependencies: + - supports-color + '@electron/notarize@2.2.1': dependencies: debug: 4.4.3 @@ -4459,6 +4706,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@electron/notarize@2.5.0': + dependencies: + debug: 4.4.3 + fs-extra: 9.1.0 + promise-retry: 2.0.1 + transitivePeerDependencies: + - supports-color + '@electron/osx-sign@1.0.5': dependencies: compare-version: 0.1.2 @@ -4470,6 +4725,35 @@ snapshots: transitivePeerDependencies: - supports-color + '@electron/osx-sign@1.3.3': + dependencies: + compare-version: 0.1.2 + debug: 4.4.3 + fs-extra: 10.1.0 + isbinaryfile: 4.0.10 + minimist: 1.2.8 + plist: 3.1.0 + transitivePeerDependencies: + - supports-color + + '@electron/rebuild@4.0.3': + dependencies: + '@malept/cross-spawn-promise': 2.0.0 + debug: 4.4.3 + detect-libc: 2.1.2 + got: 11.8.6 + graceful-fs: 4.2.11 + node-abi: 4.26.0 + node-api-version: 0.2.1 + node-gyp: 11.5.0 + ora: 5.4.1 + read-binary-file-arch: 1.0.6 + semver: 7.7.3 + tar: 7.5.7 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + '@electron/universal@1.5.1': dependencies: '@electron/asar': 3.4.1 @@ -4482,6 +4766,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@electron/universal@2.0.3': + dependencies: + '@electron/asar': 3.4.1 + '@malept/cross-spawn-promise': 2.0.0 + debug: 4.4.3 + dir-compare: 4.2.0 + fs-extra: 11.3.3 + minimatch: 9.0.5 + plist: 3.1.0 + transitivePeerDependencies: + - supports-color + '@esbuild/aix-ppc64@0.27.2': optional: true @@ -4636,6 +4932,12 @@ snapshots: '@iarna/toml@2.2.5': {} + '@isaacs/balanced-match@4.0.1': {} + + '@isaacs/brace-expansion@5.0.1': + dependencies: + '@isaacs/balanced-match': 4.0.1 + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -4645,6 +4947,10 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 + '@isaacs/fs-minipass@4.0.1': + dependencies: + minipass: 7.1.2 + '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -4673,6 +4979,10 @@ snapshots: dependencies: cross-spawn: 7.0.6 + '@malept/cross-spawn-promise@2.0.0': + dependencies: + cross-spawn: 7.0.6 + '@malept/flatpak-bundler@0.4.0': dependencies: debug: 4.4.3 @@ -4694,6 +5004,20 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 + '@npmcli/agent@3.0.0': + dependencies: + agent-base: 7.1.4 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + lru-cache: 10.4.3 + socks-proxy-agent: 8.0.5 + transitivePeerDependencies: + - supports-color + + '@npmcli/fs@4.0.0': + dependencies: + semver: 7.7.3 + '@pkgjs/parseargs@0.11.0': optional: true @@ -5327,12 +5651,12 @@ snapshots: postcss: 8.5.6 tailwindcss: 4.1.18 - '@tailwindcss/vite@4.1.18(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2))': + '@tailwindcss/vite@4.1.18(vite@7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2))': dependencies: '@tailwindcss/node': 4.1.18 '@tailwindcss/oxide': 4.1.18 tailwindcss: 4.1.18 - vite: 7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2) + vite: 7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2) '@tanstack/react-virtual@3.13.14(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: @@ -5438,14 +5762,15 @@ snapshots: '@types/ms@2.1.0': {} - '@types/node@18.19.130': - dependencies: - undici-types: 5.26.5 - '@types/node@20.19.27': dependencies: undici-types: 6.21.0 + '@types/node@24.10.10': + dependencies: + undici-types: 7.16.0 + optional: true + '@types/plist@3.0.5': dependencies: '@types/node': 20.19.27 @@ -5569,15 +5894,15 @@ snapshots: '@typescript-eslint/types': 8.50.0 eslint-visitor-keys: 4.2.1 - '@vitejs/plugin-react-swc@4.2.2(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2))': + '@vitejs/plugin-react-swc@4.2.2(vite@7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.47 '@swc/core': 1.15.7 - vite: 7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2) + vite: 7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2) transitivePeerDependencies: - '@swc/helpers' - '@vitest/coverage-v8@4.0.16(vitest@4.0.16(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2))': + '@vitest/coverage-v8@4.0.16(vitest@4.0.16(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2))': dependencies: '@bcoe/v8-coverage': 1.0.2 '@vitest/utils': 4.0.16 @@ -5590,7 +5915,7 @@ snapshots: obug: 2.1.1 std-env: 3.10.0 tinyrainbow: 3.0.3 - vitest: 4.0.16(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2) + vitest: 4.0.16(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2) transitivePeerDependencies: - supports-color @@ -5603,13 +5928,13 @@ snapshots: chai: 6.2.1 tinyrainbow: 3.0.3 - '@vitest/mocker@4.0.16(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2))': + '@vitest/mocker@4.0.16(vite@7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2))': dependencies: '@vitest/spy': 4.0.16 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2) + vite: 7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2) '@vitest/pretty-format@4.0.16': dependencies: @@ -5635,6 +5960,8 @@ snapshots: '@xmldom/xmldom@0.8.11': {} + abbrev@3.0.1: {} + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: acorn: 8.15.0 @@ -5700,7 +6027,9 @@ snapshots: app-builder-bin@4.0.0: {} - app-builder-lib@24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3): + app-builder-bin@5.0.0-alpha.12: {} + + app-builder-lib@24.13.3(dmg-builder@26.7.0)(electron-builder-squirrel-windows@24.13.3): dependencies: '@develar/schema-utils': 2.6.5 '@electron/notarize': 2.2.1 @@ -5714,9 +6043,9 @@ snapshots: builder-util-runtime: 9.2.4 chromium-pickle-js: 0.2.0 debug: 4.4.3 - dmg-builder: 24.13.3(electron-builder-squirrel-windows@24.13.3) + dmg-builder: 26.7.0(electron-builder-squirrel-windows@24.13.3) ejs: 3.1.10 - electron-builder-squirrel-windows: 24.13.3(dmg-builder@24.13.3) + electron-builder-squirrel-windows: 24.13.3(dmg-builder@26.7.0) electron-publish: 24.13.1 form-data: 4.0.5 fs-extra: 10.1.0 @@ -5734,6 +6063,49 @@ snapshots: transitivePeerDependencies: - supports-color + app-builder-lib@26.7.0(dmg-builder@26.7.0)(electron-builder-squirrel-windows@24.13.3): + dependencies: + '@develar/schema-utils': 2.6.5 + '@electron/asar': 3.4.1 + '@electron/fuses': 1.8.0 + '@electron/get': 3.1.0 + '@electron/notarize': 2.5.0 + '@electron/osx-sign': 1.3.3 + '@electron/rebuild': 4.0.3 + '@electron/universal': 2.0.3 + '@malept/flatpak-bundler': 0.4.0 + '@types/fs-extra': 9.0.13 + async-exit-hook: 2.0.1 + builder-util: 26.4.1 + builder-util-runtime: 9.5.1 + chromium-pickle-js: 0.2.0 + ci-info: 4.3.1 + debug: 4.4.3 + dmg-builder: 26.7.0(electron-builder-squirrel-windows@24.13.3) + dotenv: 16.6.1 + dotenv-expand: 11.0.7 + ejs: 3.1.10 + electron-builder-squirrel-windows: 24.13.3(dmg-builder@26.7.0) + electron-publish: 26.6.0 + fs-extra: 10.1.0 + hosted-git-info: 4.1.0 + isbinaryfile: 5.0.7 + jiti: 2.6.1 + js-yaml: 4.1.1 + json5: 2.2.3 + lazy-val: 1.0.5 + minimatch: 10.1.2 + plist: 3.1.0 + proper-lockfile: 4.1.2 + resedit: 1.7.2 + semver: 7.7.3 + tar: 7.5.7 + temp-file: 3.4.0 + tiny-async-pool: 1.3.0 + which: 5.0.0 + transitivePeerDependencies: + - supports-color + archiver-utils@2.1.0: dependencies: glob: 7.2.3 @@ -5932,6 +6304,13 @@ snapshots: transitivePeerDependencies: - supports-color + builder-util-runtime@9.5.1: + dependencies: + debug: 4.4.3 + sax: 1.4.3 + transitivePeerDependencies: + - supports-color + builder-util@24.13.1: dependencies: 7zip-bin: 5.2.0 @@ -5953,10 +6332,46 @@ snapshots: transitivePeerDependencies: - supports-color + builder-util@26.4.1: + dependencies: + 7zip-bin: 5.2.0 + '@types/debug': 4.1.12 + app-builder-bin: 5.0.0-alpha.12 + builder-util-runtime: 9.5.1 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.3 + fs-extra: 10.1.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + js-yaml: 4.1.1 + sanitize-filename: 1.6.3 + source-map-support: 0.5.21 + stat-mode: 1.0.0 + temp-file: 3.4.0 + tiny-async-pool: 1.3.0 + transitivePeerDependencies: + - supports-color + builtins@5.1.0: dependencies: semver: 7.7.3 + cacache@19.0.1: + dependencies: + '@npmcli/fs': 4.0.0 + fs-minipass: 3.0.3 + glob: 10.5.0 + lru-cache: 10.4.3 + minipass: 7.1.2 + minipass-collect: 2.0.1 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + p-map: 7.0.4 + ssri: 12.0.0 + tar: 7.5.7 + unique-filename: 4.0.0 + cacheable-lookup@5.0.4: {} cacheable-request@7.0.4: @@ -6036,10 +6451,16 @@ snapshots: chownr@2.0.0: {} + chownr@3.0.0: {} + chromium-pickle-js@0.2.0: {} ci-info@3.9.0: {} + ci-info@4.3.1: {} + + ci-info@4.4.0: {} + class-variance-authority@0.7.1: dependencies: clsx: 2.1.1 @@ -6246,15 +6667,19 @@ snapshots: buffer-equal: 1.0.1 minimatch: 3.1.2 + dir-compare@4.2.0: + dependencies: + minimatch: 3.1.2 + p-limit: 3.1.0 + dir-glob@3.0.1: dependencies: path-type: 4.0.0 - dmg-builder@24.13.3(electron-builder-squirrel-windows@24.13.3): + dmg-builder@26.7.0(electron-builder-squirrel-windows@24.13.3): dependencies: - app-builder-lib: 24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3) - builder-util: 24.13.1 - builder-util-runtime: 9.2.4 + app-builder-lib: 26.7.0(dmg-builder@26.7.0)(electron-builder-squirrel-windows@24.13.3) + builder-util: 26.4.1 fs-extra: 10.1.0 iconv-lite: 0.6.3 js-yaml: 4.1.1 @@ -6288,10 +6713,16 @@ snapshots: dependencies: is-obj: 2.0.0 + dotenv-expand@11.0.7: + dependencies: + dotenv: 16.6.1 + dotenv-expand@5.1.0: {} dotenv@16.0.3: {} + dotenv@16.6.1: {} + dotenv@9.0.2: {} dunder-proto@1.0.1: @@ -6306,9 +6737,9 @@ snapshots: dependencies: jake: 10.9.4 - electron-builder-squirrel-windows@24.13.3(dmg-builder@24.13.3): + electron-builder-squirrel-windows@24.13.3(dmg-builder@26.7.0): dependencies: - app-builder-lib: 24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3) + app-builder-lib: 24.13.3(dmg-builder@26.7.0)(electron-builder-squirrel-windows@24.13.3) archiver: 5.3.2 builder-util: 24.13.1 fs-extra: 10.1.0 @@ -6316,17 +6747,16 @@ snapshots: - dmg-builder - supports-color - electron-builder@24.13.3(electron-builder-squirrel-windows@24.13.3): + electron-builder@26.7.0(electron-builder-squirrel-windows@24.13.3): dependencies: - app-builder-lib: 24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3) - builder-util: 24.13.1 - builder-util-runtime: 9.2.4 + app-builder-lib: 26.7.0(dmg-builder@26.7.0)(electron-builder-squirrel-windows@24.13.3) + builder-util: 26.4.1 + builder-util-runtime: 9.5.1 chalk: 4.1.2 - dmg-builder: 24.13.3(electron-builder-squirrel-windows@24.13.3) + ci-info: 4.4.0 + dmg-builder: 26.7.0(electron-builder-squirrel-windows@24.13.3) fs-extra: 10.1.0 - is-ci: 3.0.1 lazy-val: 1.0.5 - read-config-file: 6.3.2 simple-update-notifier: 2.0.0 yargs: 17.7.2 transitivePeerDependencies: @@ -6345,15 +6775,28 @@ snapshots: transitivePeerDependencies: - supports-color + electron-publish@26.6.0: + dependencies: + '@types/fs-extra': 9.0.13 + builder-util: 26.4.1 + builder-util-runtime: 9.5.1 + chalk: 4.1.2 + form-data: 4.0.5 + fs-extra: 10.1.0 + lazy-val: 1.0.5 + mime: 2.6.0 + transitivePeerDependencies: + - supports-color + electron-store@8.2.0: dependencies: conf: 10.2.0 type-fest: 2.19.0 - electron@28.3.3: + electron@34.0.2: dependencies: '@electron/get': 2.0.3 - '@types/node': 18.19.130 + '@types/node': 20.19.27 extract-zip: 2.0.1 transitivePeerDependencies: - supports-color @@ -6362,6 +6805,11 @@ snapshots: emoji-regex@9.2.2: {} + encoding@0.1.13: + dependencies: + iconv-lite: 0.6.3 + optional: true + end-of-stream@1.4.5: dependencies: once: 1.4.0 @@ -6654,6 +7102,8 @@ snapshots: expect-type@1.3.0: {} + exponential-backoff@3.1.3: {} + external-editor@3.1.0: dependencies: chardet: 0.7.0 @@ -6766,6 +7216,12 @@ snapshots: jsonfile: 6.2.0 universalify: 2.0.1 + fs-extra@11.3.3: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.2.0 + universalify: 2.0.1 + fs-extra@8.1.0: dependencies: graceful-fs: 4.2.11 @@ -6783,6 +7239,10 @@ snapshots: dependencies: minipass: 3.3.6 + fs-minipass@3.0.3: + dependencies: + minipass: 7.1.2 + fs.realpath@1.0.0: {} fsevents@2.3.3: @@ -7233,6 +7693,8 @@ snapshots: isexe@2.0.0: {} + isexe@3.1.1: {} + istanbul-lib-coverage@3.2.2: {} istanbul-lib-report@3.0.1: @@ -7459,6 +7921,22 @@ snapshots: make-error@1.3.6: {} + make-fetch-happen@14.0.3: + dependencies: + '@npmcli/agent': 3.0.0 + cacache: 19.0.1 + http-cache-semantics: 4.2.0 + minipass: 7.1.2 + minipass-fetch: 4.0.1 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 1.0.0 + proc-log: 5.0.0 + promise-retry: 2.0.1 + ssri: 12.0.0 + transitivePeerDependencies: + - supports-color + matcher@3.0.0: dependencies: escape-string-regexp: 4.0.0 @@ -7491,6 +7969,10 @@ snapshots: mimic-response@3.1.0: {} + minimatch@10.1.2: + dependencies: + '@isaacs/brace-expansion': 5.0.1 + minimatch@3.1.2: dependencies: brace-expansion: 1.1.12 @@ -7509,6 +7991,30 @@ snapshots: minimist@1.2.8: {} + minipass-collect@2.0.1: + dependencies: + minipass: 7.1.2 + + minipass-fetch@4.0.1: + dependencies: + minipass: 7.1.2 + minipass-sized: 1.0.3 + minizlib: 3.1.0 + optionalDependencies: + encoding: 0.1.13 + + minipass-flush@1.0.5: + dependencies: + minipass: 3.3.6 + + minipass-pipeline@1.2.4: + dependencies: + minipass: 3.3.6 + + minipass-sized@1.0.3: + dependencies: + minipass: 3.3.6 + minipass@3.3.6: dependencies: yallist: 4.0.0 @@ -7522,6 +8028,10 @@ snapshots: minipass: 3.3.6 yallist: 4.0.0 + minizlib@3.1.0: + dependencies: + minipass: 7.1.2 + mkdirp@0.5.6: dependencies: minimist: 1.2.8 @@ -7536,6 +8046,8 @@ snapshots: natural-compare@1.4.0: {} + negotiator@1.0.0: {} + neo-async@2.6.2: {} netmask@2.0.2: {} @@ -7549,9 +8061,32 @@ snapshots: dependencies: lower-case: 1.1.4 + node-abi@4.26.0: + dependencies: + semver: 7.7.3 + node-addon-api@1.7.2: optional: true + node-api-version@0.2.1: + dependencies: + semver: 7.7.3 + + node-gyp@11.5.0: + dependencies: + env-paths: 2.2.1 + exponential-backoff: 3.1.3 + graceful-fs: 4.2.11 + make-fetch-happen: 14.0.3 + nopt: 8.1.0 + proc-log: 5.0.0 + semver: 7.7.3 + tar: 7.5.7 + tinyglobby: 0.2.15 + which: 5.0.0 + transitivePeerDependencies: + - supports-color + node-plop@0.26.3: dependencies: '@babel/runtime-corejs3': 7.28.4 @@ -7566,6 +8101,10 @@ snapshots: mkdirp: 0.5.6 resolve: 1.22.11 + nopt@8.1.0: + dependencies: + abbrev: 3.0.1 + normalize-path@3.0.0: {} normalize-url@6.1.0: {} @@ -7682,6 +8221,8 @@ snapshots: dependencies: aggregate-error: 3.1.0 + p-map@7.0.4: {} + p-try@2.2.0: {} pac-proxy-agent@7.2.0: @@ -7740,6 +8281,8 @@ snapshots: pathe@2.0.3: {} + pe-library@0.4.1: {} + pend@1.2.0: {} picocolors@1.0.1: {} @@ -7776,6 +8319,8 @@ snapshots: prettier@3.7.4: {} + proc-log@5.0.0: {} + process-nextick-args@2.0.1: {} progress@2.0.3: {} @@ -7791,6 +8336,12 @@ snapshots: object-assign: 4.1.1 react-is: 16.13.1 + proper-lockfile@4.1.2: + dependencies: + graceful-fs: 4.2.11 + retry: 0.12.0 + signal-exit: 3.0.7 + proxy-agent@6.5.0: dependencies: agent-base: 7.1.4 @@ -7873,6 +8424,12 @@ snapshots: react@19.2.3: {} + read-binary-file-arch@1.0.6: + dependencies: + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + read-config-file@6.3.2: dependencies: config-file-ts: 0.2.6 @@ -7935,6 +8492,10 @@ snapshots: require-from-string@2.0.2: {} + resedit@1.7.2: + dependencies: + pe-library: 0.4.1 + resolve-alpn@1.2.1: {} resolve-from@4.0.0: {} @@ -8056,6 +8617,8 @@ snapshots: semver-compare@1.0.0: optional: true + semver@5.7.2: {} + semver@6.3.1: {} semver@7.6.2: {} @@ -8180,6 +8743,10 @@ snapshots: sprintf-js@1.1.3: optional: true + ssri@12.0.0: + dependencies: + minipass: 7.1.2 + stackback@0.0.2: {} stat-mode@1.0.0: {} @@ -8313,6 +8880,14 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 + tar@7.5.7: + dependencies: + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.2 + minizlib: 3.1.0 + yallist: 5.0.0 + temp-file@3.4.0: dependencies: async-exit-hook: 2.0.1 @@ -8320,6 +8895,10 @@ snapshots: through@2.3.8: {} + tiny-async-pool@1.3.0: + dependencies: + semver: 5.7.2 + tinybench@2.9.0: {} tinycolor2@1.6.0: {} @@ -8514,10 +9093,19 @@ snapshots: has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 - undici-types@5.26.5: {} - undici-types@6.21.0: {} + undici-types@7.16.0: + optional: true + + unique-filename@4.0.0: + dependencies: + unique-slug: 5.0.0 + + unique-slug@5.0.0: + dependencies: + imurmurhash: 0.1.4 + universalify@0.1.2: {} universalify@2.0.1: {} @@ -8576,7 +9164,7 @@ snapshots: extsprintf: 1.4.1 optional: true - vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2): + vite@7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2): dependencies: esbuild: 0.27.2 fdir: 6.5.0(picomatch@4.0.3) @@ -8585,15 +9173,15 @@ snapshots: rollup: 4.54.0 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 20.19.27 + '@types/node': 24.10.10 fsevents: 2.3.3 jiti: 2.6.1 lightningcss: 1.30.2 - vitest@4.0.16(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2): + vitest@4.0.16(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2): dependencies: '@vitest/expect': 4.0.16 - '@vitest/mocker': 4.0.16(vite@7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2)) + '@vitest/mocker': 4.0.16(vite@7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2)) '@vitest/pretty-format': 4.0.16 '@vitest/runner': 4.0.16 '@vitest/snapshot': 4.0.16 @@ -8610,10 +9198,10 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vite: 7.3.0(@types/node@20.19.27)(jiti@2.6.1)(lightningcss@1.30.2) + vite: 7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 20.19.27 + '@types/node': 24.10.10 transitivePeerDependencies: - jiti - less @@ -8676,6 +9264,10 @@ snapshots: dependencies: isexe: 2.0.0 + which@5.0.0: + dependencies: + isexe: 3.1.1 + why-is-node-running@2.3.0: dependencies: siginfo: 2.0.0 @@ -8705,6 +9297,8 @@ snapshots: yallist@4.0.0: {} + yallist@5.0.0: {} + yargs-parser@21.1.1: {} yargs@17.7.2: From 2e1cf896d144b70db018ceeeba33b2d19de06bcb Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Wed, 4 Feb 2026 19:42:54 +0100 Subject: [PATCH 02/38] feat: make packet-sender work with electron --- electron-app/src/menu/menu.js | 3 ++- electron-app/src/processes/packetSender.js | 8 ++++---- electron-app/src/utils/paths.js | 9 ++++++++- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/electron-app/src/menu/menu.js b/electron-app/src/menu/menu.js index 99d1096f1..91cbeb868 100644 --- a/electron-app/src/menu/menu.js +++ b/electron-app/src/menu/menu.js @@ -9,6 +9,7 @@ import fs from "fs"; import { getPacketSenderProcess, startPacketSender, + stopPacketSender, } from "../processes/packetSender.js"; import { getBinaryPath } from "../utils/paths.js"; import { loadView } from "../windows/mainWindow.js"; @@ -82,7 +83,7 @@ function createMenu(mainWindow) { } const packetSenderProcess = getPacketSenderProcess(); if (!packetSenderProcess || packetSenderProcess.killed) { - startPacketSender(["--help"]); + startPacketSender(["random"]); } }, }, diff --git a/electron-app/src/processes/packetSender.js b/electron-app/src/processes/packetSender.js index 67a506cfd..e6efc5cf9 100644 --- a/electron-app/src/processes/packetSender.js +++ b/electron-app/src/processes/packetSender.js @@ -5,9 +5,9 @@ */ import { spawn } from "child_process"; -import { getBinaryPath } from "../utils/paths.js"; import fs from "fs"; import { logger } from "../utils/logger.js"; +import { getBinaryPath } from "../utils/paths.js"; // Store the packet sender process instance let packetSenderProcess = null; @@ -90,7 +90,7 @@ function restartPacketSender() { // Wait before starting new process to ensure cleanup setTimeout(() => { // Start with help arguments - startPacketSender(["--help"]); + startPacketSender(["random"]); }, 500); } } @@ -110,8 +110,8 @@ function getPacketSenderProcess() { } export { + getPacketSenderProcess, + restartPacketSender, startPacketSender, stopPacketSender, - restartPacketSender, - getPacketSenderProcess, }; diff --git a/electron-app/src/utils/paths.js b/electron-app/src/utils/paths.js index d3178d7e2..f7bf70033 100644 --- a/electron-app/src/utils/paths.js +++ b/electron-app/src/utils/paths.js @@ -41,6 +41,13 @@ function getBinaryPath(name) { const arch = process.arch; const ext = platform === "win32" ? ".exe" : ""; + if (name === "packet-sender") { + if (!app.isPackaged) { + return path.join(getAppPath(), "binaries", `${name}${ext}`); + } + return path.join(process.resourcesPath, "binaries", `${name}${ext}`); + } + const goosMap = { win32: "windows", darwin: "darwin", @@ -108,4 +115,4 @@ function getTemplatePath() { return path.join(process.resourcesPath, "config.toml"); } -export { getAppPath, getBinaryPath, getUserConfigPath, getTemplatePath }; +export { getAppPath, getBinaryPath, getTemplatePath, getUserConfigPath }; From b2f10ebc92ed9dd46bd30e0def25fcff2a802a39 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Wed, 4 Feb 2026 19:47:30 +0100 Subject: [PATCH 03/38] feat: change some names --- electron-app/src/menu/menu.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/electron-app/src/menu/menu.js b/electron-app/src/menu/menu.js index 91cbeb868..24c3dafa2 100644 --- a/electron-app/src/menu/menu.js +++ b/electron-app/src/menu/menu.js @@ -44,14 +44,14 @@ function createMenu(mainWindow) { label: "View", submenu: [ { - label: "Control Station", + label: "Competition View", accelerator: "CmdOrCtrl+1", click: () => { loadView("competition-view"); }, }, { - label: "Ethernet View", + label: "Testing View", accelerator: "CmdOrCtrl+2", click: () => { loadView("testing-view"); From 2684034e4deb56b1a915aea9f8d55a6722eec3f6 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Thu, 5 Feb 2026 08:52:27 +0100 Subject: [PATCH 04/38] feat: small fixes --- electron-app/build.mjs | 14 +++++++--- electron-app/src/menu/menu.js | 3 +-- frontend/testing-view/src/App.tsx | 26 ++++++++++--------- .../src/components/leftSidebar/Logo.tsx | 2 +- 4 files changed, 26 insertions(+), 19 deletions(-) diff --git a/electron-app/build.mjs b/electron-app/build.mjs index b29273485..f83964a19 100644 --- a/electron-app/build.mjs +++ b/electron-app/build.mjs @@ -56,7 +56,7 @@ const CONFIG = { type: "rust", path: join(ROOT, "packet-sender"), output: join(__dirname, "binaries"), - commands: ["pnpm install --frozen-lockfile", "pnpm run build"], + commands: ["pnpm run build"], binaryPath: "target/release/packet-sender", platforms: [ { id: "win64", ext: ".exe", tags: ["win", "windows"] }, @@ -68,13 +68,19 @@ const CONFIG = { type: "frontend", path: join(ROOT, "frontend/testing-view"), dest: join(__dirname, "renderer/testing-view"), - commands: ["pnpm install --frozen-lockfile", "pnpm run build"], + commands: [ + "pnpm --filter testing-view install --frozen-lockfile", + "pnpm run build", + ], }, "competition-view": { type: "frontend", path: join(ROOT, "frontend/competition-view"), dest: join(__dirname, "renderer/competition-view"), - commands: ["pnpm install --frozen-lockfile", "pnpm run build"], + commands: [ + "pnpm --filter competition-view install --frozen-lockfile", + "pnpm run build", + ], optional: true, }, }; @@ -262,7 +268,7 @@ logger.header("Hyperloop Control Station Build"); if (frontendBuilt && !process.env.CI) { logger.info("Finalizing Electron..."); - run("pnpm install --frozen-lockfile", __dirname); + run("pnpm --filter electron-app install --frozen-lockfile", __dirname); } if (allSuccess) { diff --git a/electron-app/src/menu/menu.js b/electron-app/src/menu/menu.js index 24c3dafa2..c0436ab79 100644 --- a/electron-app/src/menu/menu.js +++ b/electron-app/src/menu/menu.js @@ -109,8 +109,7 @@ function createMenu(mainWindow) { type: "info", title: "About", message: "Hyperloop UPV Control Station", - detail: - "Version 1.0.0\n\nControl and monitoring software for Hyperloop pod.", + detail: `Version ${app.getVersion()}\n\nControl and monitoring software for Hyperloop pod.`, }); }, }, diff --git a/frontend/testing-view/src/App.tsx b/frontend/testing-view/src/App.tsx index 9fe0777ca..506f86ed4 100644 --- a/frontend/testing-view/src/App.tsx +++ b/frontend/testing-view/src/App.tsx @@ -12,6 +12,8 @@ import { AppLayout } from "./layout/AppLayout"; import { Logs } from "./pages/Logs"; import { Testing } from "./pages/Testing"; import { useStore } from "./store/store"; +import type { Connection } from "./types/common/connection"; +import type { MessagePacket } from "./types/data/message"; import type { TelemetryData } from "./types/telemetry/telemetry"; function App() { @@ -43,23 +45,23 @@ function App() { ); // Callback executed when connection updates are received - // const updateConnections = useStore((s) => s.updateConnections); + const updateConnections = useStore((s) => s.updateConnections); // Subscribe to connection updates - // useTopic>("connection/update", (data) => { - // updateConnections(data); - // }); + useTopic>("connection/update", (data) => { + updateConnections(data); + }); // Callback executed when messages are received - // const addMessage = useStore((s) => s.addMessage); + const addMessage = useStore((s) => s.addMessage); - // useTopic("message/update", (data) => { - // console.log("Message received:", data); - // addMessage({ - // ...data, - // id: crypto.randomUUID(), - // }); - // }); + useTopic("message/update", (data) => { + console.log("Message received:", data); + addMessage({ + ...data, + id: crypto.randomUUID(), + }); + }); return ( diff --git a/frontend/testing-view/src/components/leftSidebar/Logo.tsx b/frontend/testing-view/src/components/leftSidebar/Logo.tsx index 48f42f3f2..91228bd2c 100644 --- a/frontend/testing-view/src/components/leftSidebar/Logo.tsx +++ b/frontend/testing-view/src/components/leftSidebar/Logo.tsx @@ -10,7 +10,7 @@ const Logo = () => { tooltip="Hyperloop UPV H11" className="text-base font-bold" > - Logo + Logo Hyperloop UPV H11 From 3c833a8fc61786486cae1d003a763a7917576917 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Thu, 5 Feb 2026 11:04:37 +0100 Subject: [PATCH 05/38] chore: move shell.nix to software root --- shell.nix | 200 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 200 insertions(+) create mode 100644 shell.nix diff --git a/shell.nix b/shell.nix new file mode 100644 index 000000000..a84c7c6da --- /dev/null +++ b/shell.nix @@ -0,0 +1,200 @@ +{ pkgs ? import {} }: + +let + # Pin nixpkgs for reproducibility + pinnedPkgs = import (builtins.fetchTarball { + url = "https://github.com/NixOS/nixpkgs/archive/nixos-23.11.tar.gz"; + sha256 = "1ndiv385w1qyb3b18vw13991fzb9wg4cl21wglk89grsfsnra41k"; + }) {}; + + # Use pinned packages by default + finalPkgs = if pkgs == import {} then pinnedPkgs else pkgs; + +in finalPkgs.mkShell { + name = "hyperloop-h10-dev"; + + buildInputs = with finalPkgs; [ + # Go development + go + gotools + gopls + delve + + # Node.js development + nodejs_20 + nodePackages.npm + nodePackages.typescript + nodePackages.typescript-language-server + + # Python for testing + python3 + + # System dependencies + libpcap + pkg-config + + # Build tools + gnumake + gcc + + # Development utilities + git + ripgrep + jq + curl + wget + tmux + + # Optional productivity tools (can be removed for minimal setup) + watchman + ]; + + shellHook = '' + # Hyperloop H10 Development Environment + + # Set up environment variables + export GOPATH="$HOME/go" + export PATH="$GOPATH/bin:$PATH" + export NODE_ENV="development" + export CGO_ENABLED=1 + + # Create command functions for running services in tmux + ethernet-view() { + # Check if backend is built + if [ ! -f "backend/cmd/backend" ]; then + echo "Building backend first..." + make backend + fi + + # Kill existing session if it exists + tmux kill-session -t ethernet-view 2>/dev/null || true + + # Create new session + tmux new-session -d -s ethernet-view -n main + + # Start backend in first pane + tmux send-keys -t ethernet-view:main "cd backend/cmd && ./backend" C-m + + # Split horizontally and start ethernet-view + tmux split-window -t ethernet-view:main -h -p 50 + tmux send-keys -t ethernet-view:main.1 "cd ethernet-view && npm run dev" C-m + + # Add status pane at bottom + tmux split-window -t ethernet-view:main.0 -v -p 20 + tmux send-keys -t ethernet-view:main.2 "echo 'Logs/Status - Press Enter for shell'; read; bash" C-m + + # Configure pane titles + tmux select-pane -t ethernet-view:main.0 -T "Backend" + tmux select-pane -t ethernet-view:main.1 -T "Ethernet View (http://localhost:5174)" + tmux select-pane -t ethernet-view:main.2 -T "Logs/Shell" + tmux set-option -t ethernet-view pane-border-status top + + echo "Starting ethernet-view session..." + echo "Backend running on configured port" + echo "Ethernet View: http://localhost:5174" + + # Attach to session + tmux attach-session -t ethernet-view + } + + control-station() { + # Check if backend is built + if [ ! -f "backend/cmd/backend" ]; then + echo "Building backend first..." + make backend + fi + + # Kill existing session if it exists + tmux kill-session -t control-station 2>/dev/null || true + + # Create new session + tmux new-session -d -s control-station -n main + + # Start backend in first pane + tmux send-keys -t control-station:main "cd backend/cmd && ./backend" C-m + + # Split horizontally and start control-station + tmux split-window -t control-station:main -h -p 50 + tmux send-keys -t control-station:main.1 "cd control-station && npm run dev" C-m + + # Add status pane at bottom + tmux split-window -t control-station:main.0 -v -p 20 + tmux send-keys -t control-station:main.2 "echo 'Logs/Status - Press Enter for shell'; read; bash" C-m + + # Configure pane titles + tmux select-pane -t control-station:main.0 -T "Backend" + tmux select-pane -t control-station:main.1 -T "Control Station (http://localhost:5173)" + tmux select-pane -t control-station:main.2 -T "Logs/Shell" + tmux set-option -t control-station pane-border-status top + + echo "Starting control-station session..." + echo "Backend running on configured port" + echo "Control Station: http://localhost:5173" + + # Attach to session + tmux attach-session -t control-station + } + + # Export functions so they're available in the shell + export -f ethernet-view + export -f control-station + + # Ensure clean terminal state + clear + + # Check if dependencies need installation + check_dependencies() { + local install_needed=false + + if [ ! -d "common-front/node_modules" ]; then + echo "⚠️ Missing common-front dependencies" + install_needed=true + fi + + if [ ! -d "control-station/node_modules" ]; then + echo "⚠️ Missing control-station dependencies" + install_needed=true + fi + + if [ ! -d "ethernet-view/node_modules" ]; then + echo "⚠️ Missing ethernet-view dependencies" + install_needed=true + fi + + if [ "$install_needed" = true ]; then + echo "" + echo "Run 'make install' to install all dependencies" + fi + } + + # Display environment info + echo "Hyperloop H10 Development Environment" + echo "=====================================" + echo "" + echo "Environment:" + echo " Go version: $(go version | cut -d' ' -f3)" + echo " Node version: $(node --version)" + echo " NPM version: $(npm --version)" + echo "" + echo "Quick Start:" + echo " make install - Install all dependencies" + echo " make all - Build all components" + echo " ethernet-view - Run backend + Ethernet view in tmux" + echo " control-station - Run backend + Control station in tmux" + echo "" + echo "Individual Commands:" + echo " make backend - Build backend" + echo " make common-front - Build common frontend library" + echo " make control-station - Build control station" + echo " make ethernet-view - Build ethernet view" + echo "" + + check_dependencies + ''; + + # Prevent impurities + pure = true; + + # Additional environment variables for pure builds + NIX_ENFORCE_PURITY = 1; +} \ No newline at end of file From 6db4cb4784f21a2ca59d5d7cb158fe41f88b4120 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Thu, 5 Feb 2026 11:05:50 +0100 Subject: [PATCH 06/38] chore(deps): update dependencies and related components --- electron-app/package.json | 8 +- frontend/frontend-kit/core/package.json | 2 +- .../frontend-kit/esling-config/package.json | 24 +- frontend/frontend-kit/ui/package.json | 30 +- .../ui/src/components/shadcn/resizable.tsx | 43 +- frontend/testing-view/package.json | 24 +- .../rightSidebar/RightSidebarContent.tsx | 23 +- .../rightSidebar/sections/TabsSection.tsx | 10 +- frontend/testing-view/src/pages/Testing.tsx | 17 +- pnpm-lock.yaml | 2481 +++++++++-------- 10 files changed, 1432 insertions(+), 1230 deletions(-) diff --git a/electron-app/package.json b/electron-app/package.json index 7df04c577..71ea9391a 100644 --- a/electron-app/package.json +++ b/electron-app/package.json @@ -37,14 +37,14 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "electron-store": "^8.1.0" + "electron-store": "^11.0.2" }, "devDependencies": { - "@vitest/coverage-v8": "^4.0.14", + "@vitest/coverage-v8": "^4.0.18", "asar": "^3.2.0", - "electron": "34.0.2", + "electron": "^40.1.0", "electron-builder": "^26.7.0", - "vitest": "^4.0.14" + "vitest": "^4.0.18" }, "build": { "appId": "com.hyperloop.controlstation", diff --git a/frontend/frontend-kit/core/package.json b/frontend/frontend-kit/core/package.json index 38738ae85..bb358f5a3 100644 --- a/frontend/frontend-kit/core/package.json +++ b/frontend/frontend-kit/core/package.json @@ -14,7 +14,7 @@ "packageManager": "pnpm@10.24.0", "devDependencies": { "@workspace/eslint-config": "workspace:*", - "eslint": "^9.39.1" + "eslint": "^9.39.2" }, "exports": { ".": "./src/index.ts" diff --git a/frontend/frontend-kit/esling-config/package.json b/frontend/frontend-kit/esling-config/package.json index 8216a4d86..dfb4d11d7 100644 --- a/frontend/frontend-kit/esling-config/package.json +++ b/frontend/frontend-kit/esling-config/package.json @@ -12,18 +12,18 @@ "./vite": "./vite.js" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^8.24.1", - "@typescript-eslint/parser": "^8.24.1", - "eslint": "^9.20.1", - "@eslint/js": "^9.20.1", - "eslint-config-prettier": "^9.1.0", + "@eslint/js": "^9.39.2", + "@typescript-eslint/eslint-plugin": "^8.54.0", + "@typescript-eslint/parser": "^8.54.0", + "eslint": "^9.39.2", + "eslint-config-prettier": "^10.1.8", "eslint-plugin-only-warn": "^1.1.0", - "eslint-plugin-react": "^7.37.4", - "eslint-plugin-react-hooks": "^5.1.0", - "eslint-plugin-react-refresh": "^0.4.19", - "eslint-plugin-turbo": "^2.4.2", - "globals": "^15.15.0", - "typescript": "^5.7.3", - "typescript-eslint": "^8.24.1" + "eslint-plugin-react": "^7.37.5", + "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-react-refresh": "^0.5.0", + "eslint-plugin-turbo": "^2.8.3", + "globals": "^17.3.0", + "typescript": "^5.9.3", + "typescript-eslint": "^8.54.0" } } diff --git a/frontend/frontend-kit/ui/package.json b/frontend/frontend-kit/ui/package.json index 4fccb11f9..9c26d70ce 100644 --- a/frontend/frontend-kit/ui/package.json +++ b/frontend/frontend-kit/ui/package.json @@ -22,28 +22,28 @@ "@workspace/core": "workspace:*", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", - "lucide-react": "^0.475.0", - "next-themes": "^0.4.4", - "react": "^19.2.3", - "react-dom": "^19.2.3", - "react-resizable-panels": "^3.0.6", + "lucide-react": "^0.563.0", + "next-themes": "^0.4.6", + "react": "^19.2.4", + "react-dom": "^19.2.4", + "react-resizable-panels": "^4.6.0", "rxjs": "^7.8.2", - "tailwind-merge": "^3.0.1", - "tw-animate-css": "^1.2.4", - "zod": "^3.24.2", + "tailwind-merge": "^3.4.0", + "tw-animate-css": "^1.4.0", + "zod": "^4.3.6", "zustand": "^5.0.11" }, "devDependencies": { - "@tailwindcss/postcss": "^4.0.8", - "@turbo/gen": "^2.4.2", - "@types/node": "^20", - "@types/react": "^19.2.7", + "@tailwindcss/postcss": "^4.1.18", + "@turbo/gen": "^2.8.3", + "@types/node": "^25.2.0", + "@types/react": "^19.2.11", "@types/react-dom": "^19.2.3", "@workspace/eslint-config": "workspace:*", "@workspace/typescript-config": "workspace:*", - "eslint": "^9.39.1", - "tailwindcss": "^4.0.8", - "typescript": "^5.7.3" + "eslint": "^9.39.2", + "tailwindcss": "^4.1.18", + "typescript": "^5.9.3" }, "exports": { ".": "./src/index.ts", diff --git a/frontend/frontend-kit/ui/src/components/shadcn/resizable.tsx b/frontend/frontend-kit/ui/src/components/shadcn/resizable.tsx index bcdac0037..bbaca1e2b 100644 --- a/frontend/frontend-kit/ui/src/components/shadcn/resizable.tsx +++ b/frontend/frontend-kit/ui/src/components/shadcn/resizable.tsx @@ -1,56 +1,53 @@ -"use client"; +"use client" -import * as React from "react"; -import { GripVerticalIcon } from "lucide-react"; -import * as ResizablePrimitive from "react-resizable-panels"; +import { GripVerticalIcon } from "lucide-react" +import * as ResizablePrimitive from "react-resizable-panels" -import { cn } from "@workspace/ui/lib/utils"; +import { cn } from "@workspace/ui/lib/utils" function ResizablePanelGroup({ className, ...props -}: React.ComponentProps) { +}: ResizablePrimitive.GroupProps) { return ( - - ); + ) } -function ResizablePanel({ - ...props -}: React.ComponentProps) { - return ; +function ResizablePanel({ ...props }: ResizablePrimitive.PanelProps) { + return } function ResizableHandle({ withHandle, className, ...props -}: React.ComponentProps & { - withHandle?: boolean; +}: ResizablePrimitive.SeparatorProps & { + withHandle?: boolean }) { return ( - div]:rotate-90", - className, + "bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90", + className )} {...props} > {withHandle && ( -
+
)} - - ); + + ) } -export { ResizablePanelGroup, ResizablePanel, ResizableHandle }; +export { ResizableHandle, ResizablePanel, ResizablePanelGroup } diff --git a/frontend/testing-view/package.json b/frontend/testing-view/package.json index 587d09f09..6da712c4d 100644 --- a/frontend/testing-view/package.json +++ b/frontend/testing-view/package.json @@ -18,29 +18,29 @@ "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", "@radix-ui/react-slot": "^1.2.4", - "@tailwindcss/vite": "^4.1.17", - "@tanstack/react-virtual": "^3.13.14", + "@tailwindcss/vite": "^4.1.18", + "@tanstack/react-virtual": "^3.13.18", "@types/lodash": "^4.17.23", - "@vitejs/plugin-react-swc": "^4.2.2", + "@vitejs/plugin-react-swc": "^4.2.3", "@workspace/core": "workspace:*", "@workspace/ui": "workspace:*", - "lodash": "^4.17.21", - "react": "^19.2.3", - "react-dom": "^19.2.3", + "lodash": "^4.17.23", + "react": "^19.2.4", + "react-dom": "^19.2.4", "react-router": "^7.13.0", - "tailwindcss": "^4.1.17", + "tailwindcss": "^4.1.18", "uplot": "^1.6.32", - "vitest": "^4.0.16", + "vitest": "^4.0.18", "zustand": "^5.0.11" }, "devDependencies": { - "@types/react": "^19.2.7", + "@types/react": "^19.2.11", "@types/react-dom": "^19.2.3", "@workspace/eslint-config": "workspace:^", "@workspace/typescript-config": "workspace:*", - "eslint": "^9.25.0", - "globals": "^15.15.0", + "eslint": "^9.39.2", + "globals": "^17.3.0", "typescript": "^5.9.3", - "vite": "^7.2.4" + "vite": "^7.3.1" } } diff --git a/frontend/testing-view/src/features/workspace/components/rightSidebar/RightSidebarContent.tsx b/frontend/testing-view/src/features/workspace/components/rightSidebar/RightSidebarContent.tsx index 647240281..badc737c1 100644 --- a/frontend/testing-view/src/features/workspace/components/rightSidebar/RightSidebarContent.tsx +++ b/frontend/testing-view/src/features/workspace/components/rightSidebar/RightSidebarContent.tsx @@ -25,19 +25,22 @@ export const RightSidebarContent = ({}: RightSidebarContentProps) => { if (bothVisible) { return ( - - - + + + - - {isMessagesVisible && } - + + + {isMessagesVisible && } - - + + - - + + ); } diff --git a/frontend/testing-view/src/features/workspace/components/rightSidebar/sections/TabsSection.tsx b/frontend/testing-view/src/features/workspace/components/rightSidebar/sections/TabsSection.tsx index 63e86e18e..502be99a8 100644 --- a/frontend/testing-view/src/features/workspace/components/rightSidebar/sections/TabsSection.tsx +++ b/frontend/testing-view/src/features/workspace/components/rightSidebar/sections/TabsSection.tsx @@ -37,8 +37,12 @@ const TabsSection = ({ isSplit }: TabsSectionProps) => {
{/* Split view - both tabs side by side */} - - + +
{ - +
{ onDragEnd={handleDragEnd} >
- + { {isSidebarVisible && ( <> - + setIsSidebarVisible(false)} /> diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fc8c7a4a8..ccf681900 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,17 +15,17 @@ importers: specifier: workspace:* version: link:frontend/frontend-kit/typescript-config prettier: - specifier: ^3.7.4 - version: 3.7.4 + specifier: ^3.8.1 + version: 3.8.1 prettier-plugin-tailwindcss: - specifier: ^0.6.14 - version: 0.6.14(prettier@3.7.4) + specifier: ^0.7.2 + version: 0.7.2(prettier@3.8.1) turbo: - specifier: ^2.7.1 - version: 2.7.1 + specifier: ^2.8.3 + version: 2.8.3 typescript: - specifier: 5.7.3 - version: 5.7.3 + specifier: 5.9.3 + version: 5.9.3 backend: {} @@ -35,24 +35,24 @@ importers: specifier: ^2.2.5 version: 2.2.5 electron-store: - specifier: ^8.1.0 - version: 8.2.0 + specifier: ^11.0.2 + version: 11.0.2 devDependencies: '@vitest/coverage-v8': - specifier: ^4.0.14 - version: 4.0.16(vitest@4.0.16(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2)) + specifier: ^4.0.18 + version: 4.0.18(vitest@4.0.18(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)) asar: specifier: ^3.2.0 version: 3.2.0 electron: - specifier: 34.0.2 - version: 34.0.2 + specifier: ^40.1.0 + version: 40.1.0 electron-builder: specifier: ^26.7.0 version: 26.7.0(electron-builder-squirrel-windows@24.13.3) vitest: - specifier: ^4.0.14 - version: 4.0.16(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2) + specifier: ^4.0.18 + version: 4.0.18(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2) frontend/frontend-kit/core: dependencies: @@ -64,50 +64,50 @@ importers: specifier: workspace:* version: link:../esling-config eslint: - specifier: ^9.39.1 + specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) frontend/frontend-kit/esling-config: devDependencies: '@eslint/js': - specifier: ^9.20.1 + specifier: ^9.39.2 version: 9.39.2 '@typescript-eslint/eslint-plugin': - specifier: ^8.24.1 - version: 8.50.0(@typescript-eslint/parser@8.50.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) + specifier: ^8.54.0 + version: 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': - specifier: ^8.24.1 - version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + specifier: ^8.54.0 + version: 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: - specifier: ^9.20.1 + specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) eslint-config-prettier: - specifier: ^9.1.0 - version: 9.1.2(eslint@9.39.2(jiti@2.6.1)) + specifier: ^10.1.8 + version: 10.1.8(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-only-warn: specifier: ^1.1.0 version: 1.1.0 eslint-plugin-react: - specifier: ^7.37.4 + specifier: ^7.37.5 version: 7.37.5(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-react-hooks: - specifier: ^5.1.0 - version: 5.2.0(eslint@9.39.2(jiti@2.6.1)) + specifier: ^7.0.1 + version: 7.0.1(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-react-refresh: - specifier: ^0.4.19 - version: 0.4.26(eslint@9.39.2(jiti@2.6.1)) + specifier: ^0.5.0 + version: 0.5.0(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-turbo: - specifier: ^2.4.2 - version: 2.7.1(eslint@9.39.2(jiti@2.6.1))(turbo@2.8.2) + specifier: ^2.8.3 + version: 2.8.3(eslint@9.39.2(jiti@2.6.1))(turbo@2.8.3) globals: - specifier: ^15.15.0 - version: 15.15.0 + specifier: ^17.3.0 + version: 17.3.0 typescript: - specifier: ^5.7.3 + specifier: ^5.9.3 version: 5.9.3 typescript-eslint: - specifier: ^8.24.1 - version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + specifier: ^8.54.0 + version: 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) frontend/frontend-kit/typescript-config: {} @@ -115,37 +115,37 @@ importers: dependencies: '@radix-ui/react-checkbox': specifier: ^1.3.3 - version: 1.3.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.3.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-collapsible': specifier: ^1.1.12 - version: 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-dialog': specifier: ^1.1.15 - version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-dropdown-menu': specifier: ^2.1.16 - version: 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-label': specifier: ^2.1.8 - version: 2.1.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 2.1.8(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-popover': specifier: ^1.1.15 - version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-select': specifier: ^2.2.6 - version: 2.2.6(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 2.2.6(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-separator': specifier: ^1.1.8 - version: 1.1.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.1.8(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-slot': specifier: ^1.2.4 - version: 1.2.4(@types/react@19.2.7)(react@19.2.3) + version: 1.2.4(@types/react@19.2.11)(react@19.2.4) '@radix-ui/react-tabs': specifier: ^1.1.13 - version: 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-tooltip': specifier: ^1.2.8 - version: 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@workspace/core': specifier: workspace:* version: link:../core @@ -156,51 +156,51 @@ importers: specifier: ^2.1.1 version: 2.1.1 lucide-react: - specifier: ^0.475.0 - version: 0.475.0(react@19.2.3) + specifier: ^0.563.0 + version: 0.563.0(react@19.2.4) next-themes: - specifier: ^0.4.4 - version: 0.4.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: ^0.4.6 + version: 0.4.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4) react: - specifier: ^19.2.3 - version: 19.2.3 + specifier: ^19.2.4 + version: 19.2.4 react-dom: - specifier: ^19.2.3 - version: 19.2.3(react@19.2.3) + specifier: ^19.2.4 + version: 19.2.4(react@19.2.4) react-resizable-panels: - specifier: ^3.0.6 - version: 3.0.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: ^4.6.0 + version: 4.6.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) rxjs: specifier: ^7.8.2 version: 7.8.2 tailwind-merge: - specifier: ^3.0.1 + specifier: ^3.4.0 version: 3.4.0 tw-animate-css: - specifier: ^1.2.4 + specifier: ^1.4.0 version: 1.4.0 zod: - specifier: ^3.24.2 - version: 3.25.76 + specifier: ^4.3.6 + version: 4.3.6 zustand: specifier: ^5.0.11 - version: 5.0.11(@types/react@19.2.7)(immer@11.1.0)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3)) + version: 5.0.11(@types/react@19.2.11)(immer@11.1.0)(react@19.2.4)(use-sync-external-store@1.6.0(react@19.2.4)) devDependencies: '@tailwindcss/postcss': - specifier: ^4.0.8 + specifier: ^4.1.18 version: 4.1.18 '@turbo/gen': - specifier: ^2.4.2 - version: 2.7.1(@swc/core@1.15.7)(@types/node@20.19.27)(typescript@5.9.3) + specifier: ^2.8.3 + version: 2.8.3(@swc/core@1.15.11)(@types/node@25.2.0)(typescript@5.9.3) '@types/node': - specifier: ^20 - version: 20.19.27 + specifier: ^25.2.0 + version: 25.2.0 '@types/react': - specifier: ^19.2.7 - version: 19.2.7 + specifier: ^19.2.11 + version: 19.2.11 '@types/react-dom': specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.7) + version: 19.2.3(@types/react@19.2.11) '@workspace/eslint-config': specifier: workspace:* version: link:../esling-config @@ -208,41 +208,41 @@ importers: specifier: workspace:* version: link:../typescript-config eslint: - specifier: ^9.39.1 + specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) tailwindcss: - specifier: ^4.0.8 + specifier: ^4.1.18 version: 4.1.18 typescript: - specifier: ^5.7.3 + specifier: ^5.9.3 version: 5.9.3 frontend/testing-view: dependencies: '@dnd-kit/core': specifier: ^6.3.1 - version: 6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@dnd-kit/sortable': specifier: ^10.0.0 - version: 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3) + version: 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) '@dnd-kit/utilities': specifier: ^3.2.2 - version: 3.2.2(react@19.2.3) + version: 3.2.2(react@19.2.4) '@radix-ui/react-slot': specifier: ^1.2.4 - version: 1.2.4(@types/react@19.2.7)(react@19.2.3) + version: 1.2.4(@types/react@19.2.11)(react@19.2.4) '@tailwindcss/vite': - specifier: ^4.1.17 - version: 4.1.18(vite@7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2)) + specifier: ^4.1.18 + version: 4.1.18(vite@7.3.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)) '@tanstack/react-virtual': - specifier: ^3.13.14 - version: 3.13.14(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: ^3.13.18 + version: 3.13.18(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@types/lodash': specifier: ^4.17.23 version: 4.17.23 '@vitejs/plugin-react-swc': - specifier: ^4.2.2 - version: 4.2.2(vite@7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2)) + specifier: ^4.2.3 + version: 4.2.3(vite@7.3.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)) '@workspace/core': specifier: workspace:* version: link:../frontend-kit/core @@ -250,36 +250,36 @@ importers: specifier: workspace:* version: link:../frontend-kit/ui lodash: - specifier: ^4.17.21 - version: 4.17.21 + specifier: ^4.17.23 + version: 4.17.23 react: - specifier: ^19.2.3 - version: 19.2.3 + specifier: ^19.2.4 + version: 19.2.4 react-dom: - specifier: ^19.2.3 - version: 19.2.3(react@19.2.3) + specifier: ^19.2.4 + version: 19.2.4(react@19.2.4) react-router: specifier: ^7.13.0 - version: 7.13.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 7.13.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) tailwindcss: - specifier: ^4.1.17 + specifier: ^4.1.18 version: 4.1.18 uplot: specifier: ^1.6.32 version: 1.6.32 vitest: - specifier: ^4.0.16 - version: 4.0.16(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2) + specifier: ^4.0.18 + version: 4.0.18(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2) zustand: specifier: ^5.0.11 - version: 5.0.11(@types/react@19.2.7)(immer@11.1.0)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3)) + version: 5.0.11(@types/react@19.2.11)(immer@11.1.0)(react@19.2.4)(use-sync-external-store@1.6.0(react@19.2.4)) devDependencies: '@types/react': - specifier: ^19.2.7 - version: 19.2.7 + specifier: ^19.2.11 + version: 19.2.11 '@types/react-dom': specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.7) + version: 19.2.3(@types/react@19.2.11) '@workspace/eslint-config': specifier: workspace:^ version: link:../frontend-kit/esling-config @@ -287,17 +287,17 @@ importers: specifier: workspace:* version: link:../frontend-kit/typescript-config eslint: - specifier: ^9.25.0 + specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) globals: - specifier: ^15.15.0 - version: 15.15.0 + specifier: ^17.3.0 + version: 17.3.0 typescript: specifier: ^5.9.3 version: 5.9.3 vite: - specifier: ^7.2.4 - version: 7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2) + specifier: ^7.3.1 + version: 7.3.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2) packet-sender: {} @@ -310,6 +310,40 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} + '@babel/code-frame@7.29.0': + resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.29.0': + resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.29.0': + resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.29.1': + resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.28.6': + resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.28.6': + resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.28.6': + resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-string-parser@7.27.1': resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} @@ -318,17 +352,33 @@ packages: resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} - '@babel/parser@7.28.5': - resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.28.6': + resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.29.0': + resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/runtime-corejs3@7.28.4': - resolution: {integrity: sha512-h7iEYiW4HebClDEhtvFObtPmIvrd1SSfpI9EhOeKk4CtIK/ngBWFpuhCzhdmRKtg71ylcue+9I6dv54XYO1epQ==} + '@babel/runtime-corejs3@7.29.0': + resolution: {integrity: sha512-TgUkdp71C9pIbBcHudc+gXZnihEDOjUAmXO1VO4HHGES7QLZcShR0stfKIxLSNIYx2fqhmJChOjm/wkF8wv4gA==} engines: {node: '>=6.9.0'} - '@babel/types@7.28.5': - resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} + '@babel/template@7.28.6': + resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.29.0': + resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@1.0.2': @@ -569,8 +619,8 @@ packages: cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.9.0': - resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} + '@eslint-community/eslint-utils@4.9.1': + resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -607,14 +657,14 @@ packages: resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@floating-ui/core@1.7.3': - resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} + '@floating-ui/core@1.7.4': + resolution: {integrity: sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==} - '@floating-ui/dom@1.7.4': - resolution: {integrity: sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==} + '@floating-ui/dom@1.7.5': + resolution: {integrity: sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==} - '@floating-ui/react-dom@2.1.6': - resolution: {integrity: sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==} + '@floating-ui/react-dom@2.1.7': + resolution: {integrity: sha512-0tLRojf/1Go2JgEVm+3Frg9A3IW8bJgKgdO0BN5RkF//ufuz2joZM63Npau2ff3J6lUVYgDSNzNkR+aH3IVfjg==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' @@ -641,6 +691,15 @@ packages: '@iarna/toml@2.2.5': resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} + '@inquirer/external-editor@1.0.3': + resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@isaacs/balanced-match@4.0.1': resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} engines: {node: 20 || >=22} @@ -1142,116 +1201,131 @@ packages: '@radix-ui/rect@1.1.1': resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} - '@rolldown/pluginutils@1.0.0-beta.47': - resolution: {integrity: sha512-8QagwMH3kNCuzD8EWL8R2YPW5e4OrHNSAHRFDdmFqEwEaD/KcNKjVoumo+gP2vW5eKB2UPbM6vTYiGZX0ixLnw==} + '@rolldown/pluginutils@1.0.0-rc.2': + resolution: {integrity: sha512-izyXV/v+cHiRfozX62W9htOAvwMo4/bXKDrQ+vom1L1qRuexPock/7VZDAhnpHCLNejd3NJ6hiab+tO0D44Rgw==} - '@rollup/rollup-android-arm-eabi@4.54.0': - resolution: {integrity: sha512-OywsdRHrFvCdvsewAInDKCNyR3laPA2mc9bRYJ6LBp5IyvF3fvXbbNR0bSzHlZVFtn6E0xw2oZlyjg4rKCVcng==} + '@rollup/rollup-android-arm-eabi@4.57.1': + resolution: {integrity: sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.54.0': - resolution: {integrity: sha512-Skx39Uv+u7H224Af+bDgNinitlmHyQX1K/atIA32JP3JQw6hVODX5tkbi2zof/E69M1qH2UoN3Xdxgs90mmNYw==} + '@rollup/rollup-android-arm64@4.57.1': + resolution: {integrity: sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.54.0': - resolution: {integrity: sha512-k43D4qta/+6Fq+nCDhhv9yP2HdeKeP56QrUUTW7E6PhZP1US6NDqpJj4MY0jBHlJivVJD5P8NxrjuobZBJTCRw==} + '@rollup/rollup-darwin-arm64@4.57.1': + resolution: {integrity: sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.54.0': - resolution: {integrity: sha512-cOo7biqwkpawslEfox5Vs8/qj83M/aZCSSNIWpVzfU2CYHa2G3P1UN5WF01RdTHSgCkri7XOlTdtk17BezlV3A==} + '@rollup/rollup-darwin-x64@4.57.1': + resolution: {integrity: sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.54.0': - resolution: {integrity: sha512-miSvuFkmvFbgJ1BevMa4CPCFt5MPGw094knM64W9I0giUIMMmRYcGW/JWZDriaw/k1kOBtsWh1z6nIFV1vPNtA==} + '@rollup/rollup-freebsd-arm64@4.57.1': + resolution: {integrity: sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.54.0': - resolution: {integrity: sha512-KGXIs55+b/ZfZsq9aR026tmr/+7tq6VG6MsnrvF4H8VhwflTIuYh+LFUlIsRdQSgrgmtM3fVATzEAj4hBQlaqQ==} + '@rollup/rollup-freebsd-x64@4.57.1': + resolution: {integrity: sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.54.0': - resolution: {integrity: sha512-EHMUcDwhtdRGlXZsGSIuXSYwD5kOT9NVnx9sqzYiwAc91wfYOE1g1djOEDseZJKKqtHAHGwnGPQu3kytmfaXLQ==} + '@rollup/rollup-linux-arm-gnueabihf@4.57.1': + resolution: {integrity: sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.54.0': - resolution: {integrity: sha512-+pBrqEjaakN2ySv5RVrj/qLytYhPKEUwk+e3SFU5jTLHIcAtqh2rLrd/OkbNuHJpsBgxsD8ccJt5ga/SeG0JmA==} + '@rollup/rollup-linux-arm-musleabihf@4.57.1': + resolution: {integrity: sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.54.0': - resolution: {integrity: sha512-NSqc7rE9wuUaRBsBp5ckQ5CVz5aIRKCwsoa6WMF7G01sX3/qHUw/z4pv+D+ahL1EIKy6Enpcnz1RY8pf7bjwng==} + '@rollup/rollup-linux-arm64-gnu@4.57.1': + resolution: {integrity: sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.54.0': - resolution: {integrity: sha512-gr5vDbg3Bakga5kbdpqx81m2n9IX8M6gIMlQQIXiLTNeQW6CucvuInJ91EuCJ/JYvc+rcLLsDFcfAD1K7fMofg==} + '@rollup/rollup-linux-arm64-musl@4.57.1': + resolution: {integrity: sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loong64-gnu@4.54.0': - resolution: {integrity: sha512-gsrtB1NA3ZYj2vq0Rzkylo9ylCtW/PhpLEivlgWe0bpgtX5+9j9EZa0wtZiCjgu6zmSeZWyI/e2YRX1URozpIw==} + '@rollup/rollup-linux-loong64-gnu@4.57.1': + resolution: {integrity: sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-loong64-musl@4.57.1': + resolution: {integrity: sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-ppc64-gnu@4.54.0': - resolution: {integrity: sha512-y3qNOfTBStmFNq+t4s7Tmc9hW2ENtPg8FeUD/VShI7rKxNW7O4fFeaYbMsd3tpFlIg1Q8IapFgy7Q9i2BqeBvA==} + '@rollup/rollup-linux-ppc64-gnu@4.57.1': + resolution: {integrity: sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.54.0': - resolution: {integrity: sha512-89sepv7h2lIVPsFma8iwmccN7Yjjtgz0Rj/Ou6fEqg3HDhpCa+Et+YSufy27i6b0Wav69Qv4WBNl3Rs6pwhebQ==} + '@rollup/rollup-linux-ppc64-musl@4.57.1': + resolution: {integrity: sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.57.1': + resolution: {integrity: sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.54.0': - resolution: {integrity: sha512-ZcU77ieh0M2Q8Ur7D5X7KvK+UxbXeDHwiOt/CPSBTI1fBmeDMivW0dPkdqkT4rOgDjrDDBUed9x4EgraIKoR2A==} + '@rollup/rollup-linux-riscv64-musl@4.57.1': + resolution: {integrity: sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.54.0': - resolution: {integrity: sha512-2AdWy5RdDF5+4YfG/YesGDDtbyJlC9LHmL6rZw6FurBJ5n4vFGupsOBGfwMRjBYH7qRQowT8D/U4LoSvVwOhSQ==} + '@rollup/rollup-linux-s390x-gnu@4.57.1': + resolution: {integrity: sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.54.0': - resolution: {integrity: sha512-WGt5J8Ij/rvyqpFexxk3ffKqqbLf9AqrTBbWDk7ApGUzaIs6V+s2s84kAxklFwmMF/vBNGrVdYgbblCOFFezMQ==} + '@rollup/rollup-linux-x64-gnu@4.57.1': + resolution: {integrity: sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.54.0': - resolution: {integrity: sha512-JzQmb38ATzHjxlPHuTH6tE7ojnMKM2kYNzt44LO/jJi8BpceEC8QuXYA908n8r3CNuG/B3BV8VR3Hi1rYtmPiw==} + '@rollup/rollup-linux-x64-musl@4.57.1': + resolution: {integrity: sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==} cpu: [x64] os: [linux] - '@rollup/rollup-openharmony-arm64@4.54.0': - resolution: {integrity: sha512-huT3fd0iC7jigGh7n3q/+lfPcXxBi+om/Rs3yiFxjvSxbSB6aohDFXbWvlspaqjeOh+hx7DDHS+5Es5qRkWkZg==} + '@rollup/rollup-openbsd-x64@4.57.1': + resolution: {integrity: sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.57.1': + resolution: {integrity: sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.54.0': - resolution: {integrity: sha512-c2V0W1bsKIKfbLMBu/WGBz6Yci8nJ/ZJdheE0EwB73N3MvHYKiKGs3mVilX4Gs70eGeDaMqEob25Tw2Gb9Nqyw==} + '@rollup/rollup-win32-arm64-msvc@4.57.1': + resolution: {integrity: sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.54.0': - resolution: {integrity: sha512-woEHgqQqDCkAzrDhvDipnSirm5vxUXtSKDYTVpZG3nUdW/VVB5VdCYA2iReSj/u3yCZzXID4kuKG7OynPnB3WQ==} + '@rollup/rollup-win32-ia32-msvc@4.57.1': + resolution: {integrity: sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.54.0': - resolution: {integrity: sha512-dzAc53LOuFvHwbCEOS0rPbXp6SIhAf2txMP5p6mGyOXXw5mWY8NGGbPMPrs4P1WItkfApDathBj/NzMLUZ9rtQ==} + '@rollup/rollup-win32-x64-gnu@4.57.1': + resolution: {integrity: sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.54.0': - resolution: {integrity: sha512-hYT5d3YNdSh3mbCU1gwQyPgQd3T2ne0A3KG8KSBdav5TiBg6eInVmV+TeR5uHufiIgSFg0XsOWGW5/RhNcSvPg==} + '@rollup/rollup-win32-x64-msvc@4.57.1': + resolution: {integrity: sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==} cpu: [x64] os: [win32] @@ -1262,68 +1336,68 @@ packages: '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} - '@swc/core-darwin-arm64@1.15.7': - resolution: {integrity: sha512-+hNVUfezUid7LeSHqnhoC6Gh3BROABxjlDNInuZ/fie1RUxaEX4qzDwdTgozJELgHhvYxyPIg1ro8ibnKtgO4g==} + '@swc/core-darwin-arm64@1.15.11': + resolution: {integrity: sha512-QoIupRWVH8AF1TgxYyeA5nS18dtqMuxNwchjBIwJo3RdwLEFiJq6onOx9JAxHtuPwUkIVuU2Xbp+jCJ7Vzmgtg==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.15.7': - resolution: {integrity: sha512-ZAFuvtSYZTuXPcrhanaD5eyp27H8LlDzx2NAeVyH0FchYcuXf0h5/k3GL9ZU6Jw9eQ63R1E8KBgpXEJlgRwZUQ==} + '@swc/core-darwin-x64@1.15.11': + resolution: {integrity: sha512-S52Gu1QtPSfBYDiejlcfp9GlN+NjTZBRRNsz8PNwBgSE626/FUf2PcllVUix7jqkoMC+t0rS8t+2/aSWlMuQtA==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.15.7': - resolution: {integrity: sha512-K3HTYocpqnOw8KcD8SBFxiDHjIma7G/X+bLdfWqf+qzETNBrzOub/IEkq9UaeupaJiZJkPptr/2EhEXXWryS/A==} + '@swc/core-linux-arm-gnueabihf@1.15.11': + resolution: {integrity: sha512-lXJs8oXo6Z4yCpimpQ8vPeCjkgoHu5NoMvmJZ8qxDyU99KVdg6KwU9H79vzrmB+HfH+dCZ7JGMqMF//f8Cfvdg==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.15.7': - resolution: {integrity: sha512-HCnVIlsLnCtQ3uXcXgWrvQ6SAraskLA9QJo9ykTnqTH6TvUYqEta+TdTdGjzngD6TOE7XjlAiUs/RBtU8Z0t+Q==} + '@swc/core-linux-arm64-gnu@1.15.11': + resolution: {integrity: sha512-chRsz1K52/vj8Mfq/QOugVphlKPWlMh10V99qfH41hbGvwAU6xSPd681upO4bKiOr9+mRIZZW+EfJqY42ZzRyA==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.15.7': - resolution: {integrity: sha512-/OOp9UZBg4v2q9+x/U21Jtld0Wb8ghzBScwhscI7YvoSh4E8RALaJ1msV8V8AKkBkZH7FUAFB7Vbv0oVzZsezA==} + '@swc/core-linux-arm64-musl@1.15.11': + resolution: {integrity: sha512-PYftgsTaGnfDK4m6/dty9ryK1FbLk+LosDJ/RJR2nkXGc8rd+WenXIlvHjWULiBVnS1RsjHHOXmTS4nDhe0v0w==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.15.7': - resolution: {integrity: sha512-VBbs4gtD4XQxrHuQ2/2+TDZpPQQgrOHYRnS6SyJW+dw0Nj/OomRqH+n5Z4e/TgKRRbieufipeIGvADYC/90PYQ==} + '@swc/core-linux-x64-gnu@1.15.11': + resolution: {integrity: sha512-DKtnJKIHiZdARyTKiX7zdRjiDS1KihkQWatQiCHMv+zc2sfwb4Glrodx2VLOX4rsa92NLR0Sw8WLcPEMFY1szQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.15.7': - resolution: {integrity: sha512-kVuy2unodso6p0rMauS2zby8/bhzoGRYxBDyD6i2tls/fEYAE74oP0VPFzxIyHaIjK1SN6u5TgvV9MpyJ5xVug==} + '@swc/core-linux-x64-musl@1.15.11': + resolution: {integrity: sha512-mUjjntHj4+8WBaiDe5UwRNHuEzLjIWBTSGTw0JT9+C9/Yyuh4KQqlcEQ3ro6GkHmBGXBFpGIj/o5VMyRWfVfWw==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.15.7': - resolution: {integrity: sha512-uddYoo5Xmo1XKLhAnh4NBIyy5d0xk33x1sX3nIJboFySLNz878ksCFCZ3IBqrt1Za0gaoIWoOSSSk0eNhAc/sw==} + '@swc/core-win32-arm64-msvc@1.15.11': + resolution: {integrity: sha512-ZkNNG5zL49YpaFzfl6fskNOSxtcZ5uOYmWBkY4wVAvgbSAQzLRVBp+xArGWh2oXlY/WgL99zQSGTv7RI5E6nzA==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.15.7': - resolution: {integrity: sha512-rqq8JjNMLx3QNlh0aPTtN/4+BGLEHC94rj9mkH1stoNRf3ra6IksNHMHy+V1HUqElEgcZyx+0yeXx3eLOTcoFw==} + '@swc/core-win32-ia32-msvc@1.15.11': + resolution: {integrity: sha512-6XnzORkZCQzvTQ6cPrU7iaT9+i145oLwnin8JrfsLG41wl26+5cNQ2XV3zcbrnFEV6esjOceom9YO1w9mGJByw==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.15.7': - resolution: {integrity: sha512-4BK06EGdPnuplgcNhmSbOIiLdRgHYX3v1nl4HXo5uo4GZMfllXaCyBUes+0ePRfwbn9OFgVhCWPcYYjMT6hycQ==} + '@swc/core-win32-x64-msvc@1.15.11': + resolution: {integrity: sha512-IQ2n6af7XKLL6P1gIeZACskSxK8jWtoKpJWLZmdXTDj1MGzktUy4i+FvpdtxFmJWNavRWH1VmTr6kAubRDHeKw==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.15.7': - resolution: {integrity: sha512-kTGB8XI7P+pTKW83tnUEDVP4zduF951u3UAOn5eTi0vyW6MvL56A3+ggMdfuVFtDI0/DsbSzf5z34HVBbuScWw==} + '@swc/core@1.15.11': + resolution: {integrity: sha512-iLmLTodbYxU39HhMPaMUooPwO/zqJWvsqkrXv1ZI38rMb048p6N7qtAtTp37sw9NzSrvH6oli8EdDygo09IZ/w==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '>=0.5.17' @@ -1434,14 +1508,14 @@ packages: peerDependencies: vite: ^5.2.0 || ^6 || ^7 - '@tanstack/react-virtual@3.13.14': - resolution: {integrity: sha512-WG0d7mBD54eA7dgA3+sO5csS0B49QKqM6Gy5Rf31+Oq/LTKROQSao9m2N/vz1IqVragOKU5t5k1LAcqh/DfTxw==} + '@tanstack/react-virtual@3.13.18': + resolution: {integrity: sha512-dZkhyfahpvlaV0rIKnvQiVoWPyURppl6w4m9IwMDpuIjcJ1sD9YGWrt0wISvgU7ewACXx2Ct46WPgI6qAD4v6A==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tanstack/virtual-core@3.13.14': - resolution: {integrity: sha512-b5Uvd8J2dc7ICeX9SRb/wkCxWk7pUwN214eEPAQsqrsktSKTCmyLxOQWSMgogBByXclZeAdgZ3k4o0fIYUIBqQ==} + '@tanstack/virtual-core@3.13.18': + resolution: {integrity: sha512-Mx86Hqu1k39icq2Zusq+Ey2J6dDWTjDvEv43PJtRCoEYTLyfaPnxIQ6iy7YAOK0NV/qOEmZQ/uCufrppZxTgcg==} '@tootallnate/once@2.0.0': resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} @@ -1462,12 +1536,12 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - '@turbo/gen@2.7.1': - resolution: {integrity: sha512-aG+9goyHq7En96pEeCx88Ougc9wesWscZxTGyWVinDazqE8qfka2+cntZKokd9TOPfhN5ImDckP8ITmoG0eGUg==} + '@turbo/gen@2.8.3': + resolution: {integrity: sha512-UQP6zMJPfnJKKFO7skLcTJWBFHG+XdMnXszliFXg/TEhd53CuVYmIXCN23n7UoMnxRBSsq0LB4sUM9JgsPewSQ==} hasBin: true - '@turbo/workspaces@2.7.1': - resolution: {integrity: sha512-cSdUacc2OWCkgbqZOkLKc2ZqbTEcP2LLoVNL/fOw2lefm1VkSL4sirdoKZNDEdn/2LqLcseyZkg0pfazBZhvBg==} + '@turbo/workspaces@2.8.3': + resolution: {integrity: sha512-p31wsDQ2DSd+TCld9xIqTG4pNA+we6/+AAZ9iCtpITRfUz3/iO8wzcz0fPfya3ostEj2B4UksLAXF570VAeO5w==} hasBin: true '@types/cacheable-request@6.0.3': @@ -1491,8 +1565,8 @@ packages: '@types/glob@7.2.0': resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} - '@types/http-cache-semantics@4.0.4': - resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + '@types/http-cache-semantics@4.2.0': + resolution: {integrity: sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q==} '@types/inquirer@6.5.0': resolution: {integrity: sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==} @@ -1513,12 +1587,12 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node@20.19.27': - resolution: {integrity: sha512-N2clP5pJhB2YnZJ3PIHFk5RkygRX5WO/5f0WC08tp0wd+sv0rsJk3MqWn3CbNmT2J505a5336jaQj4ph1AdMug==} - '@types/node@24.10.10': resolution: {integrity: sha512-+0/4J266CBGPUq/ELg7QUHhN25WYjE0wYTPSQJn1xeu8DOlIOPxXxrNGiLmfAWl7HMMgWFWXpt9IDjMWrF5Iow==} + '@types/node@25.2.0': + resolution: {integrity: sha512-DZ8VwRFUNzuqJ5khrvwMXHmvPe+zGayJhr2CDNiKB1WBE1ST8Djl00D0IC4vvNmHMdj6DlbYRIaFE7WHjlDl5w==} + '@types/plist@3.0.5': resolution: {integrity: sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==} @@ -1527,8 +1601,8 @@ packages: peerDependencies: '@types/react': ^19.2.0 - '@types/react@19.2.7': - resolution: {integrity: sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==} + '@types/react@19.2.11': + resolution: {integrity: sha512-tORuanb01iEzWvMGVGv2ZDhYZVeRMrw453DCSAIn/5yvcSVnMoUMTyf33nQJLahYEnv9xqrTNbgz4qY5EfSh0g==} '@types/responselike@1.0.3': resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} @@ -1545,85 +1619,85 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.50.0': - resolution: {integrity: sha512-O7QnmOXYKVtPrfYzMolrCTfkezCJS9+ljLdKW/+DCvRsc3UAz+sbH6Xcsv7p30+0OwUbeWfUDAQE0vpabZ3QLg==} + '@typescript-eslint/eslint-plugin@8.54.0': + resolution: {integrity: sha512-hAAP5io/7csFStuOmR782YmTthKBJ9ND3WVL60hcOjvtGFb+HJxH4O5huAcmcZ9v9G8P+JETiZ/G1B8MALnWZQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.50.0 + '@typescript-eslint/parser': ^8.54.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.50.0': - resolution: {integrity: sha512-6/cmF2piao+f6wSxUsJLZjck7OQsYyRtcOZS02k7XINSNlz93v6emM8WutDQSXnroG2xwYlEVHJI+cPA7CPM3Q==} + '@typescript-eslint/parser@8.54.0': + resolution: {integrity: sha512-BtE0k6cjwjLZoZixN0t5AKP0kSzlGu7FctRXYuPAm//aaiZhmfq1JwdYpYr1brzEspYyFeF+8XF5j2VK6oalrA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.50.0': - resolution: {integrity: sha512-Cg/nQcL1BcoTijEWyx4mkVC56r8dj44bFDvBdygifuS20f3OZCHmFbjF34DPSi07kwlFvqfv/xOLnJ5DquxSGQ==} + '@typescript-eslint/project-service@8.54.0': + resolution: {integrity: sha512-YPf+rvJ1s7MyiWM4uTRhE4DvBXrEV+d8oC3P9Y2eT7S+HBS0clybdMIPnhiATi9vZOYDc7OQ1L/i6ga6NFYK/g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.50.0': - resolution: {integrity: sha512-xCwfuCZjhIqy7+HKxBLrDVT5q/iq7XBVBXLn57RTIIpelLtEIZHXAF/Upa3+gaCpeV1NNS5Z9A+ID6jn50VD4A==} + '@typescript-eslint/scope-manager@8.54.0': + resolution: {integrity: sha512-27rYVQku26j/PbHYcVfRPonmOlVI6gihHtXFbTdB5sb6qA0wdAQAbyXFVarQ5t4HRojIz64IV90YtsjQSSGlQg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.50.0': - resolution: {integrity: sha512-vxd3G/ybKTSlm31MOA96gqvrRGv9RJ7LGtZCn2Vrc5htA0zCDvcMqUkifcjrWNNKXHUU3WCkYOzzVSFBd0wa2w==} + '@typescript-eslint/tsconfig-utils@8.54.0': + resolution: {integrity: sha512-dRgOyT2hPk/JwxNMZDsIXDgyl9axdJI3ogZ2XWhBPsnZUv+hPesa5iuhdYt2gzwA9t8RE5ytOJ6xB0moV0Ujvw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.50.0': - resolution: {integrity: sha512-7OciHT2lKCewR0mFoBrvZJ4AXTMe/sYOe87289WAViOocEmDjjv8MvIOT2XESuKj9jp8u3SZYUSh89QA4S1kQw==} + '@typescript-eslint/type-utils@8.54.0': + resolution: {integrity: sha512-hiLguxJWHjjwL6xMBwD903ciAwd7DmK30Y9Axs/etOkftC3ZNN9K44IuRD/EB08amu+Zw6W37x9RecLkOo3pMA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.50.0': - resolution: {integrity: sha512-iX1mgmGrXdANhhITbpp2QQM2fGehBse9LbTf0sidWK6yg/NE+uhV5dfU1g6EYPlcReYmkE9QLPq/2irKAmtS9w==} + '@typescript-eslint/types@8.54.0': + resolution: {integrity: sha512-PDUI9R1BVjqu7AUDsRBbKMtwmjWcn4J3le+5LpcFgWULN3LvHC5rkc9gCVxbrsrGmO1jfPybN5s6h4Jy+OnkAA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.50.0': - resolution: {integrity: sha512-W7SVAGBR/IX7zm1t70Yujpbk+zdPq/u4soeFSknWFdXIFuWsBGBOUu/Tn/I6KHSKvSh91OiMuaSnYp3mtPt5IQ==} + '@typescript-eslint/typescript-estree@8.54.0': + resolution: {integrity: sha512-BUwcskRaPvTk6fzVWgDPdUndLjB87KYDrN5EYGetnktoeAvPtO4ONHlAZDnj5VFnUANg0Sjm7j4usBlnoVMHwA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.50.0': - resolution: {integrity: sha512-87KgUXET09CRjGCi2Ejxy3PULXna63/bMYv72tCAlDJC3Yqwln0HiFJ3VJMst2+mEtNtZu5oFvX4qJGjKsnAgg==} + '@typescript-eslint/utils@8.54.0': + resolution: {integrity: sha512-9Cnda8GS57AQakvRyG0PTejJNlA2xhvyNtEVIMlDWOOeEyBkYWhGPnfrIAnqxLMTSTo6q8g12XVjjev5l1NvMA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.50.0': - resolution: {integrity: sha512-Xzmnb58+Db78gT/CCj/PVCvK+zxbnsw6F+O1oheYszJbBSdEjVhQi3C/Xttzxgi/GLmpvOggRs1RFpiJ8+c34Q==} + '@typescript-eslint/visitor-keys@8.54.0': + resolution: {integrity: sha512-VFlhGSl4opC0bprJiItPQ1RfUhGDIBokcPwaFH4yiBCaNPeld/9VeXbiPO1cLyorQi1G1vL+ecBk1x8o1axORA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@vitejs/plugin-react-swc@4.2.2': - resolution: {integrity: sha512-x+rE6tsxq/gxrEJN3Nv3dIV60lFflPj94c90b+NNo6n1QV1QQUTLoL0MpaOVasUZ0zqVBn7ead1B5ecx1JAGfA==} + '@vitejs/plugin-react-swc@4.2.3': + resolution: {integrity: sha512-QIluDil2prhY1gdA3GGwxZzTAmLdi8cQ2CcuMW4PB/Wu4e/1pzqrwhYWVd09LInCRlDUidQjd0B70QWbjWtLxA==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: vite: ^4 || ^5 || ^6 || ^7 - '@vitest/coverage-v8@4.0.16': - resolution: {integrity: sha512-2rNdjEIsPRzsdu6/9Eq0AYAzYdpP6Bx9cje9tL3FE5XzXRQF1fNU9pe/1yE8fCrS0HD+fBtt6gLPh6LI57tX7A==} + '@vitest/coverage-v8@4.0.18': + resolution: {integrity: sha512-7i+N2i0+ME+2JFZhfuz7Tg/FqKtilHjGyGvoHYQ6iLV0zahbsJ9sljC9OcFcPDbhYKCet+sG8SsVqlyGvPflZg==} peerDependencies: - '@vitest/browser': 4.0.16 - vitest: 4.0.16 + '@vitest/browser': 4.0.18 + vitest: 4.0.18 peerDependenciesMeta: '@vitest/browser': optional: true - '@vitest/expect@4.0.16': - resolution: {integrity: sha512-eshqULT2It7McaJkQGLkPjPjNph+uevROGuIMJdG3V+0BSR2w9u6J9Lwu+E8cK5TETlfou8GRijhafIMhXsimA==} + '@vitest/expect@4.0.18': + resolution: {integrity: sha512-8sCWUyckXXYvx4opfzVY03EOiYVxyNrHS5QxX3DAIi5dpJAAkyJezHCP77VMX4HKA2LDT/Jpfo8i2r5BE3GnQQ==} - '@vitest/mocker@4.0.16': - resolution: {integrity: sha512-yb6k4AZxJTB+q9ycAvsoxGn+j/po0UaPgajllBgt1PzoMAAmJGYFdDk0uCcRcxb3BrME34I6u8gHZTQlkqSZpg==} + '@vitest/mocker@4.0.18': + resolution: {integrity: sha512-HhVd0MDnzzsgevnOWCBj5Otnzobjy5wLBe4EdeeFGv8luMsGcYqDuFRMcttKWZA5vVO8RFjexVovXvAM4JoJDQ==} peerDependencies: msw: ^2.4.9 vite: ^6.0.0 || ^7.0.0-0 @@ -1633,20 +1707,20 @@ packages: vite: optional: true - '@vitest/pretty-format@4.0.16': - resolution: {integrity: sha512-eNCYNsSty9xJKi/UdVD8Ou16alu7AYiS2fCPRs0b1OdhJiV89buAXQLpTbe+X8V9L6qrs9CqyvU7OaAopJYPsA==} + '@vitest/pretty-format@4.0.18': + resolution: {integrity: sha512-P24GK3GulZWC5tz87ux0m8OADrQIUVDPIjjj65vBXYG17ZeU3qD7r+MNZ1RNv4l8CGU2vtTRqixrOi9fYk/yKw==} - '@vitest/runner@4.0.16': - resolution: {integrity: sha512-VWEDm5Wv9xEo80ctjORcTQRJ539EGPB3Pb9ApvVRAY1U/WkHXmmYISqU5E79uCwcW7xYUV38gwZD+RV755fu3Q==} + '@vitest/runner@4.0.18': + resolution: {integrity: sha512-rpk9y12PGa22Jg6g5M3UVVnTS7+zycIGk9ZNGN+m6tZHKQb7jrP7/77WfZy13Y/EUDd52NDsLRQhYKtv7XfPQw==} - '@vitest/snapshot@4.0.16': - resolution: {integrity: sha512-sf6NcrYhYBsSYefxnry+DR8n3UV4xWZwWxYbCJUt2YdvtqzSPR7VfGrY0zsv090DAbjFZsi7ZaMi1KnSRyK1XA==} + '@vitest/snapshot@4.0.18': + resolution: {integrity: sha512-PCiV0rcl7jKQjbgYqjtakly6T1uwv/5BQ9SwBLekVg/EaYeQFPiXcgrC2Y7vDMA8dM1SUEAEV82kgSQIlXNMvA==} - '@vitest/spy@4.0.16': - resolution: {integrity: sha512-4jIOWjKP0ZUaEmJm00E0cOBLU+5WE0BpeNr3XN6TEF05ltro6NJqHWxXD0kA8/Zc8Nh23AT8WQxwNG+WeROupw==} + '@vitest/spy@4.0.18': + resolution: {integrity: sha512-cbQt3PTSD7P2OARdVW3qWER5EGq7PHlvE+QfzSC0lbwO+xnt7+XH06ZzFjFRgzUX//JmpxrCu92VdwvEPlWSNw==} - '@vitest/utils@4.0.16': - resolution: {integrity: sha512-h8z9yYhV3e1LEfaQ3zdypIrnAg/9hguReGZoS7Gl0aBG5xgA410zBqECqmaF/+RkTggRsfnzc1XaAHA6bmUufA==} + '@vitest/utils@4.0.18': + resolution: {integrity: sha512-msMRKLMVLWygpK3u2Hybgi4MNjcYJvwTb0Ru09+fOyCXIgT5raYP041DRRdiJiI3k/2U6SEbAETB3YtBrUkCFA==} '@xmldom/xmldom@0.8.11': resolution: {integrity: sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==} @@ -1682,8 +1756,8 @@ packages: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} - ajv-formats@2.1.1: - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + ajv-formats@3.0.1: + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} peerDependencies: ajv: ^8.0.0 peerDependenciesMeta: @@ -1817,8 +1891,8 @@ packages: resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} engines: {node: '>=4'} - ast-v8-to-istanbul@0.3.9: - resolution: {integrity: sha512-dSC6tJeOJxbZrPzPbv5mMd6CMiQ1ugaVXXPRad2fXUSsy1kstFn9XQWemV9VW7Y7kpxgQ/4WMoZfwdH8XSU48w==} + ast-v8-to-istanbul@0.3.11: + resolution: {integrity: sha512-Qya9fkoofMjCBNVdWINMjB5KZvkYfaO9/anwkWnjxibpWUxo5iHl2sOdP7/uAqaRuUYuoo8rDwnbaaKVFxoUvw==} astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} @@ -1842,9 +1916,8 @@ packages: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} engines: {node: '>= 4.0.0'} - atomically@1.7.0: - resolution: {integrity: sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==} - engines: {node: '>=10.12.0'} + atomically@2.1.0: + resolution: {integrity: sha512-+gDffFXRW6sl/HCwbta7zK4uNqbPjv4YJEAdz7Vu+FLQHe77eZ4bvbJGi4hE0QPeJlMYMA3piXEr1UL3dAwx7Q==} available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} @@ -1856,8 +1929,12 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - basic-ftp@5.0.5: - resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} + baseline-browser-mapping@2.9.19: + resolution: {integrity: sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==} + hasBin: true + + basic-ftp@5.1.0: + resolution: {integrity: sha512-RkaJzeJKDbaDWTIPiJwubyljaEPwpVWkm9Rt5h9Nd6h7tEXTJ3VB4qxdZBioV7JO5yLUaOKwz7vDOzlncUsegw==} engines: {node: '>=10.0.0'} bl@4.1.0: @@ -1883,6 +1960,11 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} @@ -1944,8 +2026,11 @@ packages: camel-case@3.0.0: resolution: {integrity: sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==} - chai@6.2.1: - resolution: {integrity: sha512-p4Z49OGG5W/WBCPSS/dH3jQ73kD6tiMmUM+bckNK6Jr5JHMG3k9bg/BvKR8lKmtVBKmOiuVaV2ws8s9oSbwysg==} + caniuse-lite@1.0.30001768: + resolution: {integrity: sha512-qY3aDRZC5nWPgHUgIB84WL+nySuo19wk0VJpp/XI9T34lrvkyhRvNVOFJOp2kxClQhiFBu+TaUSudf6oa3vkSA==} + + chai@6.2.2: + resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} engines: {node: '>=18'} chalk@2.4.2: @@ -1966,6 +2051,9 @@ packages: chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + chardet@2.1.1: + resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} + chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} @@ -2063,9 +2151,9 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - conf@10.2.0: - resolution: {integrity: sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==} - engines: {node: '>=12'} + conf@15.1.0: + resolution: {integrity: sha512-Uy5YN9KEu0WWDaZAVJ5FAmZoaJt9rdK6kH+utItPyGsCqCgaTKkrmZx3zoE0/3q6S3bcp3Ihkk+ZqPxWxFK5og==} + engines: {node: '>=20'} config-file-ts@0.2.6: resolution: {integrity: sha512-6boGVaglwblBgJqGyxm4+xCmEGcWgnWHSWHY5jad58awQhB6gftq0G8HbzU39YqCIYHMLAiL1yjwiZ36m/CL8w==} @@ -2073,12 +2161,15 @@ packages: constant-case@2.0.0: resolution: {integrity: sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==} + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + cookie@1.1.1: resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} engines: {node: '>=18'} - core-js-pure@3.47.0: - resolution: {integrity: sha512-BcxeDbzUrRnXGYIVAGFtcGQVNpFcUhVjr6W7F8XktvQW2iJP9e66GP6xdKotCRFlrxBvNIBrhwKteRXqMV86Nw==} + core-js-pure@3.48.0: + resolution: {integrity: sha512-1slJgk89tWC51HQ1AEqG+s2VuwpTRr8ocu4n20QUcH1v9lAN0RXen0Q0AABa/DK1I7RrNWLucplOHMx8hfTGTw==} core-util-is@1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} @@ -2124,9 +2215,9 @@ packages: resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} engines: {node: '>= 0.4'} - debounce-fn@4.0.0: - resolution: {integrity: sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==} - engines: {node: '>=10'} + debounce-fn@6.0.0: + resolution: {integrity: sha512-rBMW+F2TXryBwB54Q0d8drNEI+TfoS9JpNTAoVpukbWEhjXQq4rySFYLaqXMFXwdv61Zb2OHtj5bviSoimqxRQ==} + engines: {node: '>=18'} debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} @@ -2185,8 +2276,8 @@ packages: detect-node@2.1.0: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} - diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + diff@4.0.4: + resolution: {integrity: sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==} engines: {node: '>=0.3.1'} dir-compare@3.3.0: @@ -2215,9 +2306,9 @@ packages: dot-case@2.1.1: resolution: {integrity: sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==} - dot-prop@6.0.1: - resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} - engines: {node: '>=10'} + dot-prop@10.1.0: + resolution: {integrity: sha512-MVUtAugQMOff5RnBy2d9N31iG0lNwg1qAoAOn7pOK5wf94WIaE3My2p3uwTQuvS2AcqchkcR3bHByjaM0mmi7Q==} + engines: {node: '>=20'} dotenv-expand@11.0.7: resolution: {integrity: sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==} @@ -2264,11 +2355,15 @@ packages: electron-publish@26.6.0: resolution: {integrity: sha512-LsyHMMqbvJ2vsOvuWJ19OezgF2ANdCiHpIucDHNiLhuI+/F3eW98ouzWSRmXXi82ZOPZXC07jnIravY4YYwCLQ==} - electron-store@8.2.0: - resolution: {integrity: sha512-ukLL5Bevdil6oieAOXz3CMy+OgaItMiVBg701MNlG6W5RaC0AHN7rvlqTCmeb6O7jP0Qa1KKYTE0xV0xbhF4Hw==} + electron-store@11.0.2: + resolution: {integrity: sha512-4VkNRdN+BImL2KcCi41WvAYbh6zLX5AUTi4so68yPqiItjbgTjqpEnGAqasgnG+lB6GuAyUltKwVopp6Uv+gwQ==} + engines: {node: '>=20'} - electron@34.0.2: - resolution: {integrity: sha512-u3F+DSUlg9NaGS+9qnYmSRN8VjAnc3LJDDk1ye1uISJnh4gjG76y3681qLowsPMx4obvCP2eBINnmbLo0yT5WA==} + electron-to-chromium@1.5.286: + resolution: {integrity: sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==} + + electron@40.1.0: + resolution: {integrity: sha512-2j/kvw7uF0H1PnzYBzw2k2Q6q16J8ToKrtQzZfsAoXbbMY0l5gQi2DLOauIZLzwp4O01n8Wt/74JhSRwG0yj9A==} engines: {node: '>= 12.20.55'} hasBin: true @@ -2284,14 +2379,18 @@ packages: end-of-stream@1.4.5: resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} - enhanced-resolve@5.18.4: - resolution: {integrity: sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==} + enhanced-resolve@5.19.0: + resolution: {integrity: sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==} engines: {node: '>=10.13.0'} env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} + env-paths@3.0.0: + resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} @@ -2355,8 +2454,8 @@ packages: engines: {node: '>=6.0'} hasBin: true - eslint-config-prettier@9.1.2: - resolution: {integrity: sha512-iI1f+D2ViGn+uvv5HuHVUamg8ll4tN+JRHGc6IJi4TP9Kl976C57fzPXgseXNs8v0iA8aSJpHsTWjDb9QJamGQ==} + eslint-config-prettier@10.1.8: + resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} hasBin: true peerDependencies: eslint: '>=7.0.0' @@ -2365,16 +2464,16 @@ packages: resolution: {integrity: sha512-2tktqUAT+Q3hCAU0iSf4xAN1k9zOpjK5WO8104mB0rT/dGhOa09582HN5HlbxNbPRZ0THV7nLGvzugcNOSjzfA==} engines: {node: '>=6'} - eslint-plugin-react-hooks@5.2.0: - resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} - engines: {node: '>=10'} + eslint-plugin-react-hooks@7.0.1: + resolution: {integrity: sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==} + engines: {node: '>=18'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - eslint-plugin-react-refresh@0.4.26: - resolution: {integrity: sha512-1RETEylht2O6FM/MvgnyvT+8K21wLqDNg4qD51Zj3guhjt433XbnnkVttHMyaVyAFD03QSV4LPS5iE3VQmO7XQ==} + eslint-plugin-react-refresh@0.5.0: + resolution: {integrity: sha512-ZYvmh7VfVgqR/7wR71I3Zl6hK/C5CcxdWYKZSpHawS5JCNgE4efhQWg/+/WPpgGAp9Ngp/rRZYyaIwmPQBq/lA==} peerDependencies: - eslint: '>=8.40' + eslint: '>=9' eslint-plugin-react@7.37.5: resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} @@ -2382,8 +2481,8 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-plugin-turbo@2.7.1: - resolution: {integrity: sha512-ZC7dTOdw6tGuvx1CeC1WQ0pMkgT/Jmj69QW93d63nysiLbbKRLiDKKA9s/TvwJHq8Uvbou2+hnU8if1L0jHsVQ==} + eslint-plugin-turbo@2.8.3: + resolution: {integrity: sha512-9ACQrrjzOfrbBGG1CqzyC67NtOSRcA+vyc9cjbyLyIoVtcK27czO7/WM+R5K3Opz0fb4Uezo6X+csMfL//RfJQ==} peerDependencies: eslint: '>6.6.0' turbo: '>2.0.0' @@ -2419,8 +2518,8 @@ packages: engines: {node: '>=4'} hasBin: true - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} engines: {node: '>=0.10'} esrecurse@4.3.0: @@ -2482,8 +2581,8 @@ packages: fast-uri@3.1.0: resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} - fastq@1.19.1: - resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} @@ -2512,10 +2611,6 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - find-up@3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} - engines: {node: '>=6'} - find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -2588,6 +2683,10 @@ packages: resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} engines: {node: '>= 0.4'} + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} @@ -2645,8 +2744,8 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@15.15.0: - resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} + globals@17.3.0: + resolution: {integrity: sha512-yMqGUQVVCkD4tqjOJf3TnrvaaHDMYp4VlUSObbkIiuCPe/ofdMBFIAcBbCSRFWOnos6qRiTVStDwqPLUclaxIw==} engines: {node: '>=18'} globalthis@1.0.4: @@ -2711,6 +2810,12 @@ packages: header-case@1.0.1: resolution: {integrity: sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==} + hermes-estree@0.25.1: + resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} + + hermes-parser@0.25.1: + resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} + hosted-git-info@4.1.0: resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} engines: {node: '>=10'} @@ -2758,6 +2863,10 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} + iconv-lite@0.7.2: + resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} + engines: {node: '>=0.10.0'} + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -2798,8 +2907,8 @@ packages: resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} engines: {node: '>=8.0.0'} - inquirer@8.2.4: - resolution: {integrity: sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==} + inquirer@8.2.7: + resolution: {integrity: sha512-UjOaSel/iddGZJ5xP/Eixh6dY1XghiBw4XK13rCCIJcJfyhhoul/7KhLLUGtebEj6GDYM6Vnx/mVsjx2L/mFIA==} engines: {node: '>=12.0.0'} internal-slot@1.1.0: @@ -2889,10 +2998,6 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - is-path-cwd@2.2.0: resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} engines: {node: '>=6'} @@ -2977,10 +3082,6 @@ packages: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} - istanbul-lib-source-maps@5.0.6: - resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} - engines: {node: '>=10'} - istanbul-reports@3.2.0: resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} engines: {node: '>=8'} @@ -3001,20 +3102,21 @@ packages: resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} hasBin: true + js-tokens@10.0.0: + resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-tokens@9.0.1: - resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - js-yaml@4.1.1: resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -3024,8 +3126,8 @@ packages: json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - json-schema-typed@7.0.3: - resolution: {integrity: sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==} + json-schema-typed@8.0.2: + resolution: {integrity: sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==} json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} @@ -3132,10 +3234,6 @@ packages: resolution: {integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==} engines: {node: '>= 12.0.0'} - locate-path@3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} - engines: {node: '>=6'} - locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -3162,8 +3260,8 @@ packages: lodash.union@4.6.0: resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + lodash@4.17.23: + resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} log-symbols@3.0.0: resolution: {integrity: sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==} @@ -3190,6 +3288,9 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} @@ -3198,16 +3299,16 @@ packages: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} - lucide-react@0.475.0: - resolution: {integrity: sha512-NJzvVu1HwFVeZ+Gwq2q00KygM1aBhy/ZrhY9FsAgJtpB+E4R7uxRk9M2iKvHa6/vNxZydIB59htha4c2vvwvVg==} + lucide-react@0.563.0: + resolution: {integrity: sha512-8dXPB2GI4dI8jV4MgUDGBeLdGk8ekfqVZ0BdLcrRzocGgG75ltNEmWS+gE7uokKF/0oSUuczNDT+g9hFJ23FkA==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} - magicast@0.5.1: - resolution: {integrity: sha512-xrHS24IxaLrvuo613F719wvOIv9xPHFWQHuvGUBmPnCA/3MQxKI3b+r7n1jAoDHmsbC5bRhTZYR77invLAxVnw==} + magicast@0.5.2: + resolution: {integrity: sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==} make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} @@ -3256,9 +3357,9 @@ packages: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - mimic-fn@3.1.0: - resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} - engines: {node: '>=8'} + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} mimic-response@1.0.1: resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} @@ -3392,6 +3493,9 @@ packages: resolution: {integrity: sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==} engines: {node: '>=8.9.4'} + node-releases@2.0.27: + resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} + nopt@8.1.0: resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} engines: {node: ^18.17.0 || >=20.5.0} @@ -3471,18 +3575,10 @@ packages: resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} engines: {node: '>=8'} - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} - p-locate@3.0.0: - resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} - engines: {node: '>=6'} - p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} @@ -3495,10 +3591,6 @@ packages: resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} engines: {node: '>=18'} - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - pac-proxy-agent@7.2.0: resolution: {integrity: sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==} engines: {node: '>= 14'} @@ -3523,10 +3615,6 @@ packages: path-case@2.1.1: resolution: {integrity: sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==} - path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -3574,10 +3662,6 @@ packages: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} - pkg-up@3.1.0: - resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} - engines: {node: '>=8'} - plist@3.1.0: resolution: {integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==} engines: {node: '>=10.4.0'} @@ -3594,9 +3678,9 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-plugin-tailwindcss@0.6.14: - resolution: {integrity: sha512-pi2e/+ZygeIqntN+vC573BcW5Cve8zUB0SSAGxqpB4f96boZF4M3phPVoOFCeypwkpRYdi7+jQ5YJJUwrkGUAg==} - engines: {node: '>=14.21.3'} + prettier-plugin-tailwindcss@0.7.2: + resolution: {integrity: sha512-LkphyK3Fw+q2HdMOoiEHWf93fNtYJwfamoKPl7UwtjFQdei/iIBoX11G6j706FzN3ymX9mPVi97qIY8328vdnA==} + engines: {node: '>=20.19'} peerDependencies: '@ianvs/prettier-plugin-sort-imports': '*' '@prettier/plugin-hermes': '*' @@ -3608,14 +3692,12 @@ packages: prettier: ^3.0 prettier-plugin-astro: '*' prettier-plugin-css-order: '*' - prettier-plugin-import-sort: '*' prettier-plugin-jsdoc: '*' prettier-plugin-marko: '*' prettier-plugin-multiline-arrays: '*' prettier-plugin-organize-attributes: '*' prettier-plugin-organize-imports: '*' prettier-plugin-sort-imports: '*' - prettier-plugin-style-order: '*' prettier-plugin-svelte: '*' peerDependenciesMeta: '@ianvs/prettier-plugin-sort-imports': @@ -3636,8 +3718,6 @@ packages: optional: true prettier-plugin-css-order: optional: true - prettier-plugin-import-sort: - optional: true prettier-plugin-jsdoc: optional: true prettier-plugin-marko: @@ -3650,13 +3730,11 @@ packages: optional: true prettier-plugin-sort-imports: optional: true - prettier-plugin-style-order: - optional: true prettier-plugin-svelte: optional: true - prettier@3.7.4: - resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==} + prettier@3.8.1: + resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==} engines: {node: '>=14'} hasBin: true @@ -3706,10 +3784,10 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true - react-dom@19.2.3: - resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==} + react-dom@19.2.4: + resolution: {integrity: sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==} peerDependencies: - react: ^19.2.3 + react: ^19.2.4 react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} @@ -3734,11 +3812,11 @@ packages: '@types/react': optional: true - react-resizable-panels@3.0.6: - resolution: {integrity: sha512-b3qKHQ3MLqOgSS+FRYKapNkJZf5EQzuf6+RLiq1/IlTHw99YrZ2NJZLk4hQIzTnnIkRg2LUqyVinu6YWWpUYew==} + react-resizable-panels@4.6.0: + resolution: {integrity: sha512-I0GUBybvHQ9xde06MH1pmhnnoZfj3lytVhA8r9Pu6r6zunoUfVRy3tU1XT9lE83yUfjlCIMaXKxPrQMmjANIkA==} peerDependencies: - react: ^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc - react-dom: ^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 react-router@7.13.0: resolution: {integrity: sha512-PZgus8ETambRT17BUm/LL8lX3Of+oiLaPuVTRH3l1eLvSPpKO3AvhAEb5N7ihAFZQrYDqkvvWfFh9p0z9VsjLw==} @@ -3760,8 +3838,8 @@ packages: '@types/react': optional: true - react@19.2.3: - resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} + react@19.2.4: + resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==} engines: {node: '>=0.10.0'} read-binary-file-arch@1.0.6: @@ -3849,8 +3927,8 @@ packages: resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} engines: {node: '>=8.0'} - rollup@4.54.0: - resolution: {integrity: sha512-3nk8Y3a9Ea8szgKhinMlGMhGMw89mqule3KWczxhIzqudyHdCIOHw8WJlj/r329fACjKLEh13ZSk7oE22kyeIw==} + rollup@4.57.1: + resolution: {integrity: sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -3892,8 +3970,9 @@ packages: sanitize-filename@1.6.3: resolution: {integrity: sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==} - sax@1.4.3: - resolution: {integrity: sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==} + sax@1.4.4: + resolution: {integrity: sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==} + engines: {node: '>=11.0.0'} scheduler@0.27.0: resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} @@ -4087,6 +4166,12 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + stubborn-fs@2.0.0: + resolution: {integrity: sha512-Y0AvSwDw8y+nlSNFXMm2g6L51rBGdAQT20J3YSOqxC53Lo3bjWRtr2BKcfYoAf352WYpsZSTURrA0tqhfgudPA==} + + stubborn-utils@1.0.2: + resolution: {integrity: sha512-zOh9jPYI+xrNOyisSelgym4tolKTJCQd5GBhK0+0xJvcYDcwlOoxF/rnFKQ2KRZknXSG9jWAp66fwP6AxN9STg==} + sumchecker@3.0.1: resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} engines: {node: '>= 8.0'} @@ -4106,6 +4191,10 @@ packages: swap-case@1.1.2: resolution: {integrity: sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==} + tagged-tag@1.0.0: + resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} + engines: {node: '>=20'} + tailwind-merge@3.4.0: resolution: {integrity: sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g==} @@ -4180,8 +4269,8 @@ packages: truncate-utf8-bytes@1.0.2: resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==} - ts-api-utils@2.1.0: - resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + ts-api-utils@2.4.0: + resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' @@ -4206,72 +4295,38 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - turbo-darwin-64@2.7.1: - resolution: {integrity: sha512-EaA7UfYujbY9/Ku0WqPpvfctxm91h9LF7zo8vjielz+omfAPB54Si+ADmUoBczBDC6RoLgbURC3GmUW2alnjJg==} + turbo-darwin-64@2.8.3: + resolution: {integrity: sha512-4kXRLfcygLOeNcP6JquqRLmGB/ATjjfehiojL2dJkL7GFm3SPSXbq7oNj8UbD8XriYQ5hPaSuz59iF1ijPHkTw==} cpu: [x64] os: [darwin] - turbo-darwin-64@2.8.2: - resolution: {integrity: sha512-sumREbxABHxrWIwlK67sZEaDRE7+BFSU8gZj8OK+X7dLpgW1vTjsHzTECB5m2qzWlXHRdueAk8sKv7wyHqv9jw==} - cpu: [x64] - os: [darwin] - - turbo-darwin-arm64@2.7.1: - resolution: {integrity: sha512-/pWGSygtBugd7sKQOeMm+jKY3qN1vyB0RiHBM6bN/6qUOo2VHo8IQwBTIaSgINN4Ue6fzEU+WfePNvonSU9yXw==} + turbo-darwin-arm64@2.8.3: + resolution: {integrity: sha512-xF7uCeC0UY0Hrv/tqax0BMbFlVP1J/aRyeGQPZT4NjvIPj8gSPDgFhfkfz06DhUwDg5NgMo04uiSkAWE8WB/QQ==} cpu: [arm64] os: [darwin] - turbo-darwin-arm64@2.8.2: - resolution: {integrity: sha512-J3zoDkf+k9yozdJmdNUOc9YfIoFs01Zm+GgNyfY8pU6siMWlPlgdt+3ezbIMeOns6CAQUzUcqo9awowykAS9Vw==} - cpu: [arm64] - os: [darwin] - - turbo-linux-64@2.7.1: - resolution: {integrity: sha512-Y5H11mdhASw/dJuRFyGtTCDFX5/MPT73EKsVEiHbw5MkFc77lx3nMc5L/Q7bKEhef/vYJAsAb61QuHsB6qdP8Q==} + turbo-linux-64@2.8.3: + resolution: {integrity: sha512-vxMDXwaOjweW/4etY7BxrXCSkvtwh0PbwVafyfT1Ww659SedUxd5rM3V2ZCmbwG8NiCfY7d6VtxyHx3Wh1GoZA==} cpu: [x64] os: [linux] - turbo-linux-64@2.8.2: - resolution: {integrity: sha512-iVYUM+tyNAPd34HhMSjYWi7OSXnxnDhPjFKVvzSb7cZmQS6GlDSr7MALc5Wt/zn6/7jm1FuS7c5Wffg9WD2e1Q==} - cpu: [x64] - os: [linux] - - turbo-linux-arm64@2.7.1: - resolution: {integrity: sha512-L/r77jD7cqIEXoyu2LGBUrTY5GJSi/XcGLsQ2nZ/fefk6x3MpljTvwsXUVG1BUkiBPc4zaKRj6yGyWMo5MbLxQ==} - cpu: [arm64] - os: [linux] - - turbo-linux-arm64@2.8.2: - resolution: {integrity: sha512-v7FJAHUhY2nSEE87mr5ZBO51GmsFKp0EmK2P6rO+vGimCPmnGlLNj1at/eVcnp/cHRDnJj8J+b3QHWdUzTPTkg==} + turbo-linux-arm64@2.8.3: + resolution: {integrity: sha512-mQX7uYBZFkuPLLlKaNe9IjR1JIef4YvY8f21xFocvttXvdPebnq3PK1Zjzl9A1zun2BEuWNUwQIL8lgvN9Pm3Q==} cpu: [arm64] os: [linux] - turbo-windows-64@2.7.1: - resolution: {integrity: sha512-rkeuviXZ/1F7lCare7TNKvYtT/SH9dZR55FAMrxrFRh88b+ZKwlXEBfq5/1OctEzRUo/VLIm+s5LJMOEy+QshA==} - cpu: [x64] - os: [win32] - - turbo-windows-64@2.8.2: - resolution: {integrity: sha512-d1X+U5JLhyAse0VXM0rpmu6iLbBTAvjwc7MX0PBkEaTz2aZQqOHBpQkkrxia7bZzRNbfXHbGSqY/vbE3GSFWzw==} + turbo-windows-64@2.8.3: + resolution: {integrity: sha512-YLGEfppGxZj3VWcNOVa08h6ISsVKiG85aCAWosOKNUjb6yErWEuydv6/qImRJUI+tDLvDvW7BxopAkujRnWCrw==} cpu: [x64] os: [win32] - turbo-windows-arm64@2.7.1: - resolution: {integrity: sha512-1rZk9htm3+iP/rWCf/h4/DFQey9sMs2TJPC4T5QQfwqAdMWsphgrxBuFqHdxczlbBCgbWNhVw0CH2bTxe1/GFg==} + turbo-windows-arm64@2.8.3: + resolution: {integrity: sha512-afTUGKBRmOJU1smQSBnFGcbq0iabAPwh1uXu2BVk7BREg30/1gMnJh9DFEQTah+UD3n3ru8V55J83RQNFfqoyw==} cpu: [arm64] os: [win32] - turbo-windows-arm64@2.8.2: - resolution: {integrity: sha512-fMln07/l/5kscs79V0kTwdf17gkZW+E2iyqnzz691gLM7Jf6la0afd3IMsNtLzUh+dxKIFCswNiFVmHe8g+2jA==} - cpu: [arm64] - os: [win32] - - turbo@2.7.1: - resolution: {integrity: sha512-zAj9jGc7VDvuAo/5Jbos4QTtWz9uUpkMhMKGyTjDJkx//hdL2bM31qQoJSAbU+7JyK5vb0LPzpwf6DUt3zayqg==} - hasBin: true - - turbo@2.8.2: - resolution: {integrity: sha512-biW/S5hENCcJ5vxxJszCozEKcXtwGK29vxXzNbdfY/0q7QpYTCoyKdj0e8k/ADA6qkqaKDJwgrrHbC8Vy6wszg==} + turbo@2.8.3: + resolution: {integrity: sha512-8Osxz5Tu/Dw2kb31EAY+nhq/YZ3wzmQSmYa1nIArqxgCAldxv9TPlrAiaBUDVnKA4aiPn0OFBD1ACcpc5VFOAQ==} hasBin: true tw-animate-css@1.4.0: @@ -4289,9 +4344,9 @@ packages: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} + type-fest@5.4.3: + resolution: {integrity: sha512-AXSAQJu79WGc79/3e9/CR77I/KQgeY1AhNvcShIH4PTcGYyC4xv6H4R4AUOwkPS5799KlVDAu8zExeCrkGquiA==} + engines: {node: '>=20'} typed-array-buffer@1.0.3: resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} @@ -4309,18 +4364,13 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript-eslint@8.50.0: - resolution: {integrity: sha512-Q1/6yNUmCpH94fbgMUMg2/BSAr/6U7GBk61kZTv1/asghQOWOjTlp9K8mixS5NcJmm2creY+UFfGeW/+OcA64A==} + typescript-eslint@8.54.0: + resolution: {integrity: sha512-CKsJ+g53QpsNPqbzUsfKVgd3Lny4yKZ1pP4qN3jdMOg/sisIDLGyDMezycquXLE5JsEU0wp3dGNdzig0/fmSVQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - typescript@5.7.3: - resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} - engines: {node: '>=14.17'} - hasBin: true - typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} @@ -4331,13 +4381,14 @@ packages: engines: {node: '>=0.8.0'} hasBin: true + uint8array-extras@1.5.0: + resolution: {integrity: sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==} + engines: {node: '>=18'} + unbox-primitive@1.1.0: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - undici-types@7.16.0: resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} @@ -4357,6 +4408,12 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + update-check@1.5.4: resolution: {integrity: sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==} @@ -4414,8 +4471,8 @@ packages: resolution: {integrity: sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==} engines: {node: '>=0.6.0'} - vite@7.3.0: - resolution: {integrity: sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==} + vite@7.3.1: + resolution: {integrity: sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -4454,18 +4511,18 @@ packages: yaml: optional: true - vitest@4.0.16: - resolution: {integrity: sha512-E4t7DJ9pESL6E3I8nFjPa4xGUd3PmiWDLsDztS2qXSJWfHtbQnwAWylaBvSNY48I3vr8PTqIZlyK8TE3V3CA4Q==} + vitest@4.0.18: + resolution: {integrity: sha512-hOQuK7h0FGKgBAas7v0mSAsnvrIgAvWmRFjmzpJ7SwFHH3g1k2u37JtYwOwmEKhK6ZO3v9ggDBBm0La1LCK4uQ==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.0.16 - '@vitest/browser-preview': 4.0.16 - '@vitest/browser-webdriverio': 4.0.16 - '@vitest/ui': 4.0.16 + '@vitest/browser-playwright': 4.0.18 + '@vitest/browser-preview': 4.0.18 + '@vitest/browser-webdriverio': 4.0.18 + '@vitest/ui': 4.0.18 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -4491,6 +4548,9 @@ packages: wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + when-exit@2.1.5: + resolution: {integrity: sha512-VGkKJ564kzt6Ms1dbgPP/yuIoQCrsFAnRbptpC5wOEsDaNsbCB2bnfnaA8i/vRs5tjUSEOtIuvl9/MyVsvQZCg==} + which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} engines: {node: '>= 0.4'} @@ -4503,8 +4563,8 @@ packages: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} engines: {node: '>= 0.4'} - which-typed-array@1.1.19: - resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} + which-typed-array@1.1.20: + resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} engines: {node: '>= 0.4'} which@2.0.2: @@ -4529,6 +4589,10 @@ packages: wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -4548,6 +4612,9 @@ packages: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} @@ -4578,8 +4645,14 @@ packages: resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} engines: {node: '>= 10'} - zod@3.25.76: - resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + zod-validation-error@4.0.2: + resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + zod: ^3.25.0 || ^4.0.0 + + zod@4.3.6: + resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} zustand@5.0.11: resolution: {integrity: sha512-fdZY+dk7zn/vbWNCYmzZULHRrss0jx5pPFiOuMZ/5HJN6Yv3u+1Wswy/4MpZEkEGhtNH+pwxZB8OKgUBPzYAGg==} @@ -4605,19 +4678,106 @@ snapshots: '@alloc/quick-lru@5.2.0': {} + '@babel/code-frame@7.29.0': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.29.0': {} + + '@babel/core@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-compilation-targets': 7.28.6 + '@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 + '@babel/types': 7.29.0 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.29.1': + dependencies: + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/helper-compilation-targets@7.28.6': + dependencies: + '@babel/compat-data': 7.29.0 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.28.1 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-globals@7.28.0': {} + + '@babel/helper-module-imports@7.28.6': + dependencies: + '@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)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + '@babel/helper-string-parser@7.27.1': {} '@babel/helper-validator-identifier@7.28.5': {} - '@babel/parser@7.28.5': + '@babel/helper-validator-option@7.27.1': {} + + '@babel/helpers@7.28.6': dependencies: - '@babel/types': 7.28.5 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 - '@babel/runtime-corejs3@7.28.4': + '@babel/parser@7.29.0': dependencies: - core-js-pure: 3.47.0 + '@babel/types': 7.29.0 - '@babel/types@7.28.5': + '@babel/runtime-corejs3@7.29.0': + dependencies: + core-js-pure: 3.48.0 + + '@babel/template@7.28.6': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + + '@babel/traverse@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.29.0': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 @@ -4633,29 +4793,29 @@ snapshots: ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) - '@dnd-kit/accessibility@3.1.1(react@19.2.3)': + '@dnd-kit/accessibility@3.1.1(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 tslib: 2.8.1 - '@dnd-kit/core@6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@dnd-kit/core@6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@dnd-kit/accessibility': 3.1.1(react@19.2.3) - '@dnd-kit/utilities': 3.2.2(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@dnd-kit/accessibility': 3.1.1(react@19.2.4) + '@dnd-kit/utilities': 3.2.2(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) tslib: 2.8.1 - '@dnd-kit/sortable@10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)': + '@dnd-kit/sortable@10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)': dependencies: - '@dnd-kit/core': 6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@dnd-kit/utilities': 3.2.2(react@19.2.3) - react: 19.2.3 + '@dnd-kit/core': 6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@dnd-kit/utilities': 3.2.2(react@19.2.4) + react: 19.2.4 tslib: 2.8.1 - '@dnd-kit/utilities@3.2.2(react@19.2.3)': + '@dnd-kit/utilities@3.2.2(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 tslib: 2.8.1 '@electron/asar@3.4.1': @@ -4856,7 +5016,7 @@ snapshots: '@esbuild/win32-x64@0.27.2': optional: true - '@eslint-community/eslint-utils@4.9.0(eslint@9.39.2(jiti@2.6.1))': + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2(jiti@2.6.1))': dependencies: eslint: 9.39.2(jiti@2.6.1) eslint-visitor-keys: 3.4.3 @@ -4902,20 +5062,20 @@ snapshots: '@eslint/core': 0.17.0 levn: 0.4.1 - '@floating-ui/core@1.7.3': + '@floating-ui/core@1.7.4': dependencies: '@floating-ui/utils': 0.2.10 - '@floating-ui/dom@1.7.4': + '@floating-ui/dom@1.7.5': dependencies: - '@floating-ui/core': 1.7.3 + '@floating-ui/core': 1.7.4 '@floating-ui/utils': 0.2.10 - '@floating-ui/react-dom@2.1.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@floating-ui/react-dom@2.1.7(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@floating-ui/dom': 1.7.4 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@floating-ui/dom': 1.7.5 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) '@floating-ui/utils@0.2.10': {} @@ -4932,6 +5092,13 @@ snapshots: '@iarna/toml@2.2.5': {} + '@inquirer/external-editor@1.0.3(@types/node@25.2.0)': + dependencies: + chardet: 2.1.1 + iconv-lite: 0.7.2 + optionalDependencies: + '@types/node': 25.2.0 + '@isaacs/balanced-match@4.0.1': {} '@isaacs/brace-expansion@5.0.1': @@ -4987,7 +5154,7 @@ snapshots: dependencies: debug: 4.4.3 fs-extra: 9.1.0 - lodash: 4.17.21 + lodash: 4.17.23 tmp-promise: 3.0.3 transitivePeerDependencies: - supports-color @@ -5002,7 +5169,7 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.1 + fastq: 1.20.1 '@npmcli/agent@3.0.0': dependencies: @@ -5025,552 +5192,561 @@ snapshots: '@radix-ui/primitive@1.1.3': {} - '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.7 - '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@types/react': 19.2.11 + '@types/react-dom': 19.2.3(@types/react@19.2.11) - '@radix-ui/react-checkbox@1.3.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-checkbox@1.3.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.7)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.11)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.7 - '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@types/react': 19.2.11 + '@types/react-dom': 19.2.3(@types/react@19.2.11) - '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.11)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.7 - '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@types/react': 19.2.11 + '@types/react-dom': 19.2.3(@types/react@19.2.11) - '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.7)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.11)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.7 - '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@types/react': 19.2.11 + '@types/react-dom': 19.2.3(@types/react@19.2.11) - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.7)(react@19.2.3)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.11)(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.11 - '@radix-ui/react-context@1.1.2(@types/react@19.2.7)(react@19.2.3)': + '@radix-ui/react-context@1.1.2(@types/react@19.2.11)(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.11 - '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.11)(react@19.2.4) aria-hidden: 1.2.6 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - react-remove-scroll: 2.7.2(@types/react@19.2.7)(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-remove-scroll: 2.7.2(@types/react@19.2.11)(react@19.2.4) optionalDependencies: - '@types/react': 19.2.7 - '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@types/react': 19.2.11 + '@types/react-dom': 19.2.3(@types/react@19.2.11) - '@radix-ui/react-direction@1.1.1(@types/react@19.2.7)(react@19.2.3)': + '@radix-ui/react-direction@1.1.1(@types/react@19.2.11)(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.11 - '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.7)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.11)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.7 - '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@types/react': 19.2.11 + '@types/react-dom': 19.2.3(@types/react@19.2.11) - '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.11)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.7 - '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@types/react': 19.2.11 + '@types/react-dom': 19.2.3(@types/react@19.2.11) - '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.7)(react@19.2.3)': + '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.11)(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.11 - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.11)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.7 - '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@types/react': 19.2.11 + '@types/react-dom': 19.2.3(@types/react@19.2.11) - '@radix-ui/react-id@1.1.1(@types/react@19.2.7)(react@19.2.3)': + '@radix-ui/react-id@1.1.1(@types/react@19.2.11)(react@19.2.4)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3) - react: 19.2.3 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.11)(react@19.2.4) + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.11 - '@radix-ui/react-label@2.1.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-label@2.1.8(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.7 - '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@types/react': 19.2.11 + '@types/react-dom': 19.2.3(@types/react@19.2.11) - '@radix-ui/react-menu@2.1.16(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-menu@2.1.16(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.11)(react@19.2.4) aria-hidden: 1.2.6 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - react-remove-scroll: 2.7.2(@types/react@19.2.7)(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-remove-scroll: 2.7.2(@types/react@19.2.11)(react@19.2.4) optionalDependencies: - '@types/react': 19.2.7 - '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@types/react': 19.2.11 + '@types/react-dom': 19.2.3(@types/react@19.2.11) - '@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.11)(react@19.2.4) aria-hidden: 1.2.6 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - react-remove-scroll: 2.7.2(@types/react@19.2.7)(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-remove-scroll: 2.7.2(@types/react@19.2.11)(react@19.2.4) optionalDependencies: - '@types/react': 19.2.7 - '@types/react-dom': 19.2.3(@types/react@19.2.7) - - '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': - dependencies: - '@floating-ui/react-dom': 2.1.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@types/react': 19.2.11 + '@types/react-dom': 19.2.3(@types/react@19.2.11) + + '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@floating-ui/react-dom': 2.1.7(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.11)(react@19.2.4) '@radix-ui/rect': 1.1.1 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.7 - '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@types/react': 19.2.11 + '@types/react-dom': 19.2.3(@types/react@19.2.11) - '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.11)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.7 - '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@types/react': 19.2.11 + '@types/react-dom': 19.2.3(@types/react@19.2.11) - '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.11)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.7 - '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@types/react': 19.2.11 + '@types/react-dom': 19.2.3(@types/react@19.2.11) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.7)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.11)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.7 - '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@types/react': 19.2.11 + '@types/react-dom': 19.2.3(@types/react@19.2.11) - '@radix-ui/react-primitive@2.1.4(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-primitive@2.1.4(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-slot': 1.2.4(@types/react@19.2.7)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-slot': 1.2.4(@types/react@19.2.11)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.7 - '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@types/react': 19.2.11 + '@types/react-dom': 19.2.3(@types/react@19.2.11) - '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.11)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.7 - '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@types/react': 19.2.11 + '@types/react-dom': 19.2.3(@types/react@19.2.11) - '@radix-ui/react-select@2.2.6(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-select@2.2.6(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) aria-hidden: 1.2.6 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - react-remove-scroll: 2.7.2(@types/react@19.2.7)(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-remove-scroll: 2.7.2(@types/react@19.2.11)(react@19.2.4) optionalDependencies: - '@types/react': 19.2.7 - '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@types/react': 19.2.11 + '@types/react-dom': 19.2.3(@types/react@19.2.11) - '@radix-ui/react-separator@1.1.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-separator@1.1.8(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.7 - '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@types/react': 19.2.11 + '@types/react-dom': 19.2.3(@types/react@19.2.11) - '@radix-ui/react-slot@1.2.3(@types/react@19.2.7)(react@19.2.3)': + '@radix-ui/react-slot@1.2.3(@types/react@19.2.11)(react@19.2.4)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) - react: 19.2.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.11)(react@19.2.4) + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.11 - '@radix-ui/react-slot@1.2.4(@types/react@19.2.7)(react@19.2.3)': + '@radix-ui/react-slot@1.2.4(@types/react@19.2.11)(react@19.2.4)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) - react: 19.2.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.11)(react@19.2.4) + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.11 - '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.11)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.7 - '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@types/react': 19.2.11 + '@types/react-dom': 19.2.3(@types/react@19.2.11) - '@radix-ui/react-tooltip@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-tooltip@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.7 - '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@types/react': 19.2.11 + '@types/react-dom': 19.2.3(@types/react@19.2.11) - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.7)(react@19.2.3)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.11)(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.11 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.7)(react@19.2.3)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.11)(react@19.2.4)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.7)(react@19.2.3) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3) - react: 19.2.3 + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.11)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.11)(react@19.2.4) + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.11 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.7)(react@19.2.3)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.11)(react@19.2.4)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3) - react: 19.2.3 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.11)(react@19.2.4) + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.11 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.7)(react@19.2.3)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.11)(react@19.2.4)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.3) - react: 19.2.3 + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.11)(react@19.2.4) + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.11 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.7)(react@19.2.3)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.11)(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.11 - '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.7)(react@19.2.3)': + '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.11)(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.11 - '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.7)(react@19.2.3)': + '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.11)(react@19.2.4)': dependencies: '@radix-ui/rect': 1.1.1 - react: 19.2.3 + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.11 - '@radix-ui/react-use-size@1.1.1(@types/react@19.2.7)(react@19.2.3)': + '@radix-ui/react-use-size@1.1.1(@types/react@19.2.11)(react@19.2.4)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3) - react: 19.2.3 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.11)(react@19.2.4) + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.11 - '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.7 - '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@types/react': 19.2.11 + '@types/react-dom': 19.2.3(@types/react@19.2.11) '@radix-ui/rect@1.1.1': {} - '@rolldown/pluginutils@1.0.0-beta.47': {} + '@rolldown/pluginutils@1.0.0-rc.2': {} - '@rollup/rollup-android-arm-eabi@4.54.0': + '@rollup/rollup-android-arm-eabi@4.57.1': optional: true - '@rollup/rollup-android-arm64@4.54.0': + '@rollup/rollup-android-arm64@4.57.1': optional: true - '@rollup/rollup-darwin-arm64@4.54.0': + '@rollup/rollup-darwin-arm64@4.57.1': optional: true - '@rollup/rollup-darwin-x64@4.54.0': + '@rollup/rollup-darwin-x64@4.57.1': optional: true - '@rollup/rollup-freebsd-arm64@4.54.0': + '@rollup/rollup-freebsd-arm64@4.57.1': optional: true - '@rollup/rollup-freebsd-x64@4.54.0': + '@rollup/rollup-freebsd-x64@4.57.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.54.0': + '@rollup/rollup-linux-arm-gnueabihf@4.57.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.54.0': + '@rollup/rollup-linux-arm-musleabihf@4.57.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.54.0': + '@rollup/rollup-linux-arm64-gnu@4.57.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.54.0': + '@rollup/rollup-linux-arm64-musl@4.57.1': optional: true - '@rollup/rollup-linux-loong64-gnu@4.54.0': + '@rollup/rollup-linux-loong64-gnu@4.57.1': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.54.0': + '@rollup/rollup-linux-loong64-musl@4.57.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.54.0': + '@rollup/rollup-linux-ppc64-gnu@4.57.1': optional: true - '@rollup/rollup-linux-riscv64-musl@4.54.0': + '@rollup/rollup-linux-ppc64-musl@4.57.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.54.0': + '@rollup/rollup-linux-riscv64-gnu@4.57.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.54.0': + '@rollup/rollup-linux-riscv64-musl@4.57.1': optional: true - '@rollup/rollup-linux-x64-musl@4.54.0': + '@rollup/rollup-linux-s390x-gnu@4.57.1': optional: true - '@rollup/rollup-openharmony-arm64@4.54.0': + '@rollup/rollup-linux-x64-gnu@4.57.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.54.0': + '@rollup/rollup-linux-x64-musl@4.57.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.54.0': + '@rollup/rollup-openbsd-x64@4.57.1': optional: true - '@rollup/rollup-win32-x64-gnu@4.54.0': + '@rollup/rollup-openharmony-arm64@4.57.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.54.0': + '@rollup/rollup-win32-arm64-msvc@4.57.1': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.57.1': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.57.1': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.57.1': optional: true '@sindresorhus/is@4.6.0': {} '@standard-schema/spec@1.1.0': {} - '@swc/core-darwin-arm64@1.15.7': + '@swc/core-darwin-arm64@1.15.11': optional: true - '@swc/core-darwin-x64@1.15.7': + '@swc/core-darwin-x64@1.15.11': optional: true - '@swc/core-linux-arm-gnueabihf@1.15.7': + '@swc/core-linux-arm-gnueabihf@1.15.11': optional: true - '@swc/core-linux-arm64-gnu@1.15.7': + '@swc/core-linux-arm64-gnu@1.15.11': optional: true - '@swc/core-linux-arm64-musl@1.15.7': + '@swc/core-linux-arm64-musl@1.15.11': optional: true - '@swc/core-linux-x64-gnu@1.15.7': + '@swc/core-linux-x64-gnu@1.15.11': optional: true - '@swc/core-linux-x64-musl@1.15.7': + '@swc/core-linux-x64-musl@1.15.11': optional: true - '@swc/core-win32-arm64-msvc@1.15.7': + '@swc/core-win32-arm64-msvc@1.15.11': optional: true - '@swc/core-win32-ia32-msvc@1.15.7': + '@swc/core-win32-ia32-msvc@1.15.11': optional: true - '@swc/core-win32-x64-msvc@1.15.7': + '@swc/core-win32-x64-msvc@1.15.11': optional: true - '@swc/core@1.15.7': + '@swc/core@1.15.11': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.25 optionalDependencies: - '@swc/core-darwin-arm64': 1.15.7 - '@swc/core-darwin-x64': 1.15.7 - '@swc/core-linux-arm-gnueabihf': 1.15.7 - '@swc/core-linux-arm64-gnu': 1.15.7 - '@swc/core-linux-arm64-musl': 1.15.7 - '@swc/core-linux-x64-gnu': 1.15.7 - '@swc/core-linux-x64-musl': 1.15.7 - '@swc/core-win32-arm64-msvc': 1.15.7 - '@swc/core-win32-ia32-msvc': 1.15.7 - '@swc/core-win32-x64-msvc': 1.15.7 + '@swc/core-darwin-arm64': 1.15.11 + '@swc/core-darwin-x64': 1.15.11 + '@swc/core-linux-arm-gnueabihf': 1.15.11 + '@swc/core-linux-arm64-gnu': 1.15.11 + '@swc/core-linux-arm64-musl': 1.15.11 + '@swc/core-linux-x64-gnu': 1.15.11 + '@swc/core-linux-x64-musl': 1.15.11 + '@swc/core-win32-arm64-msvc': 1.15.11 + '@swc/core-win32-ia32-msvc': 1.15.11 + '@swc/core-win32-x64-msvc': 1.15.11 '@swc/counter@0.1.3': {} @@ -5585,7 +5761,7 @@ snapshots: '@tailwindcss/node@4.1.18': dependencies: '@jridgewell/remapping': 2.3.5 - enhanced-resolve: 5.18.4 + enhanced-resolve: 5.19.0 jiti: 2.6.1 lightningcss: 1.30.2 magic-string: 0.30.21 @@ -5651,20 +5827,20 @@ snapshots: postcss: 8.5.6 tailwindcss: 4.1.18 - '@tailwindcss/vite@4.1.18(vite@7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2))': + '@tailwindcss/vite@4.1.18(vite@7.3.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))': dependencies: '@tailwindcss/node': 4.1.18 '@tailwindcss/oxide': 4.1.18 tailwindcss: 4.1.18 - vite: 7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2) + vite: 7.3.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2) - '@tanstack/react-virtual@3.13.14(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@tanstack/react-virtual@3.13.18(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@tanstack/virtual-core': 3.13.14 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@tanstack/virtual-core': 3.13.18 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) - '@tanstack/virtual-core@3.13.14': {} + '@tanstack/virtual-core@3.13.18': {} '@tootallnate/once@2.0.0': {} @@ -5678,17 +5854,17 @@ snapshots: '@tsconfig/node16@1.0.4': {} - '@turbo/gen@2.7.1(@swc/core@1.15.7)(@types/node@20.19.27)(typescript@5.9.3)': + '@turbo/gen@2.8.3(@swc/core@1.15.11)(@types/node@25.2.0)(typescript@5.9.3)': dependencies: - '@turbo/workspaces': 2.7.1 + '@turbo/workspaces': 2.8.3(@types/node@25.2.0) commander: 10.0.0 fs-extra: 10.1.0 - inquirer: 8.2.4 + inquirer: 8.2.7(@types/node@25.2.0) minimatch: 9.0.0 node-plop: 0.26.3 picocolors: 1.0.1 proxy-agent: 6.5.0 - ts-node: 10.9.2(@swc/core@1.15.7)(@types/node@20.19.27)(typescript@5.9.3) + ts-node: 10.9.2(@swc/core@1.15.11)(@types/node@25.2.0)(typescript@5.9.3) update-check: 1.5.4 validate-npm-package-name: 5.0.0 transitivePeerDependencies: @@ -5698,25 +5874,27 @@ snapshots: - supports-color - typescript - '@turbo/workspaces@2.7.1': + '@turbo/workspaces@2.8.3(@types/node@25.2.0)': dependencies: commander: 10.0.0 execa: 5.1.1 fast-glob: 3.2.12 fs-extra: 10.1.0 gradient-string: 2.0.1 - inquirer: 8.2.4 - js-yaml: 4.1.0 + inquirer: 8.2.7(@types/node@25.2.0) + js-yaml: 4.1.1 ora: 4.1.1 picocolors: 1.0.1 semver: 7.6.2 update-check: 1.5.4 + transitivePeerDependencies: + - '@types/node' '@types/cacheable-request@6.0.3': dependencies: - '@types/http-cache-semantics': 4.0.4 + '@types/http-cache-semantics': 4.2.0 '@types/keyv': 3.1.4 - '@types/node': 20.19.27 + '@types/node': 24.10.10 '@types/responselike': 1.0.3 '@types/chai@5.2.3': @@ -5734,14 +5912,14 @@ snapshots: '@types/fs-extra@9.0.13': dependencies: - '@types/node': 20.19.27 + '@types/node': 25.2.0 '@types/glob@7.2.0': dependencies: '@types/minimatch': 6.0.0 - '@types/node': 20.19.27 + '@types/node': 25.2.0 - '@types/http-cache-semantics@4.0.4': {} + '@types/http-cache-semantics@4.2.0': {} '@types/inquirer@6.5.0': dependencies: @@ -5752,7 +5930,7 @@ snapshots: '@types/keyv@3.1.4': dependencies: - '@types/node': 20.19.27 + '@types/node': 24.10.10 '@types/lodash@4.17.23': {} @@ -5762,36 +5940,35 @@ snapshots: '@types/ms@2.1.0': {} - '@types/node@20.19.27': + '@types/node@24.10.10': dependencies: - undici-types: 6.21.0 + undici-types: 7.16.0 - '@types/node@24.10.10': + '@types/node@25.2.0': dependencies: undici-types: 7.16.0 - optional: true '@types/plist@3.0.5': dependencies: - '@types/node': 20.19.27 + '@types/node': 25.2.0 xmlbuilder: 15.1.1 optional: true - '@types/react-dom@19.2.3(@types/react@19.2.7)': + '@types/react-dom@19.2.3(@types/react@19.2.11)': dependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.11 - '@types/react@19.2.7': + '@types/react@19.2.11': dependencies: csstype: 3.2.3 '@types/responselike@1.0.3': dependencies: - '@types/node': 20.19.27 + '@types/node': 24.10.10 '@types/through@0.0.33': dependencies: - '@types/node': 20.19.27 + '@types/node': 25.2.0 '@types/tinycolor2@1.4.6': {} @@ -5800,162 +5977,159 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 20.19.27 + '@types/node': 24.10.10 optional: true - '@typescript-eslint/eslint-plugin@8.50.0(@typescript-eslint/parser@8.50.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/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.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.50.0 - '@typescript-eslint/type-utils': 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.50.0 + '@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))(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) ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.9.3) + ts-api-utils: 2.4.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.50.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)': dependencies: - '@typescript-eslint/scope-manager': 8.50.0 - '@typescript-eslint/types': 8.50.0 - '@typescript-eslint/typescript-estree': 8.50.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.50.0 + '@typescript-eslint/scope-manager': 8.54.0 + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.54.0 debug: 4.4.3 eslint: 9.39.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.50.0(typescript@5.9.3)': + '@typescript-eslint/project-service@8.54.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.50.0(typescript@5.9.3) - '@typescript-eslint/types': 8.50.0 + '@typescript-eslint/tsconfig-utils': 8.54.0(typescript@5.9.3) + '@typescript-eslint/types': 8.54.0 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.50.0': + '@typescript-eslint/scope-manager@8.54.0': dependencies: - '@typescript-eslint/types': 8.50.0 - '@typescript-eslint/visitor-keys': 8.50.0 + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/visitor-keys': 8.54.0 - '@typescript-eslint/tsconfig-utils@8.50.0(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.54.0(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.50.0(eslint@9.39.2(jiti@2.6.1))(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.50.0 - '@typescript-eslint/typescript-estree': 8.50.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.54.0 + '@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.1.0(typescript@5.9.3) + ts-api-utils: 2.4.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.50.0': {} + '@typescript-eslint/types@8.54.0': {} - '@typescript-eslint/typescript-estree@8.50.0(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.54.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.50.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.50.0(typescript@5.9.3) - '@typescript-eslint/types': 8.50.0 - '@typescript-eslint/visitor-keys': 8.50.0 + '@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 minimatch: 9.0.5 semver: 7.7.3 tinyglobby: 0.2.15 - ts-api-utils: 2.1.0(typescript@5.9.3) + ts-api-utils: 2.4.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.50.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)': dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.50.0 - '@typescript-eslint/types': 8.50.0 - '@typescript-eslint/typescript-estree': 8.50.0(typescript@5.9.3) + '@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(typescript@5.9.3) eslint: 9.39.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.50.0': + '@typescript-eslint/visitor-keys@8.54.0': dependencies: - '@typescript-eslint/types': 8.50.0 + '@typescript-eslint/types': 8.54.0 eslint-visitor-keys: 4.2.1 - '@vitejs/plugin-react-swc@4.2.2(vite@7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2))': + '@vitejs/plugin-react-swc@4.2.3(vite@7.3.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))': dependencies: - '@rolldown/pluginutils': 1.0.0-beta.47 - '@swc/core': 1.15.7 - vite: 7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2) + '@rolldown/pluginutils': 1.0.0-rc.2 + '@swc/core': 1.15.11 + vite: 7.3.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2) transitivePeerDependencies: - '@swc/helpers' - '@vitest/coverage-v8@4.0.16(vitest@4.0.16(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2))': + '@vitest/coverage-v8@4.0.18(vitest@4.0.18(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))': dependencies: '@bcoe/v8-coverage': 1.0.2 - '@vitest/utils': 4.0.16 - ast-v8-to-istanbul: 0.3.9 + '@vitest/utils': 4.0.18 + ast-v8-to-istanbul: 0.3.11 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.2.0 - magicast: 0.5.1 + magicast: 0.5.2 obug: 2.1.1 std-env: 3.10.0 tinyrainbow: 3.0.3 - vitest: 4.0.16(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2) - transitivePeerDependencies: - - supports-color + vitest: 4.0.18(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2) - '@vitest/expect@4.0.16': + '@vitest/expect@4.0.18': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@vitest/spy': 4.0.16 - '@vitest/utils': 4.0.16 - chai: 6.2.1 + '@vitest/spy': 4.0.18 + '@vitest/utils': 4.0.18 + chai: 6.2.2 tinyrainbow: 3.0.3 - '@vitest/mocker@4.0.16(vite@7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2))': + '@vitest/mocker@4.0.18(vite@7.3.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))': dependencies: - '@vitest/spy': 4.0.16 + '@vitest/spy': 4.0.18 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2) + vite: 7.3.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2) - '@vitest/pretty-format@4.0.16': + '@vitest/pretty-format@4.0.18': dependencies: tinyrainbow: 3.0.3 - '@vitest/runner@4.0.16': + '@vitest/runner@4.0.18': dependencies: - '@vitest/utils': 4.0.16 + '@vitest/utils': 4.0.18 pathe: 2.0.3 - '@vitest/snapshot@4.0.16': + '@vitest/snapshot@4.0.18': dependencies: - '@vitest/pretty-format': 4.0.16 + '@vitest/pretty-format': 4.0.18 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.0.16': {} + '@vitest/spy@4.0.18': {} - '@vitest/utils@4.0.16': + '@vitest/utils@4.0.18': dependencies: - '@vitest/pretty-format': 4.0.16 + '@vitest/pretty-format': 4.0.18 tinyrainbow: 3.0.3 '@xmldom/xmldom@0.8.11': {} @@ -5985,7 +6159,7 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 - ajv-formats@2.1.1(ajv@8.17.1): + ajv-formats@3.0.1(ajv@8.17.1): optionalDependencies: ajv: 8.17.1 @@ -6227,11 +6401,11 @@ snapshots: dependencies: tslib: 2.8.1 - ast-v8-to-istanbul@0.3.9: + ast-v8-to-istanbul@0.3.11: dependencies: '@jridgewell/trace-mapping': 0.3.31 estree-walker: 3.0.3 - js-tokens: 9.0.1 + js-tokens: 10.0.0 astral-regex@2.0.0: optional: true @@ -6246,7 +6420,10 @@ snapshots: at-least-node@1.0.0: {} - atomically@1.7.0: {} + atomically@2.1.0: + dependencies: + stubborn-fs: 2.0.0 + when-exit: 2.1.5 available-typed-arrays@1.0.7: dependencies: @@ -6256,7 +6433,9 @@ snapshots: base64-js@1.5.1: {} - basic-ftp@5.0.5: {} + baseline-browser-mapping@2.9.19: {} + + basic-ftp@5.1.0: {} bl@4.1.0: dependencies: @@ -6286,6 +6465,14 @@ snapshots: dependencies: fill-range: 7.1.1 + browserslist@4.28.1: + dependencies: + baseline-browser-mapping: 2.9.19 + caniuse-lite: 1.0.30001768 + electron-to-chromium: 1.5.286 + node-releases: 2.0.27 + update-browserslist-db: 1.2.3(browserslist@4.28.1) + buffer-crc32@0.2.13: {} buffer-equal@1.0.1: {} @@ -6300,14 +6487,14 @@ snapshots: builder-util-runtime@9.2.4: dependencies: debug: 4.4.3 - sax: 1.4.3 + sax: 1.4.4 transitivePeerDependencies: - supports-color builder-util-runtime@9.5.1: dependencies: debug: 4.4.3 - sax: 1.4.3 + sax: 1.4.4 transitivePeerDependencies: - supports-color @@ -6408,7 +6595,9 @@ snapshots: no-case: 2.3.2 upper-case: 1.1.3 - chai@6.2.1: {} + caniuse-lite@1.0.30001768: {} + + chai@6.2.2: {} chalk@2.4.2: dependencies: @@ -6449,6 +6638,8 @@ snapshots: chardet@0.7.0: {} + chardet@2.1.1: {} + chownr@2.0.0: {} chownr@3.0.0: {} @@ -6526,18 +6717,17 @@ snapshots: concat-map@0.0.1: {} - conf@10.2.0: + conf@15.1.0: dependencies: ajv: 8.17.1 - ajv-formats: 2.1.1(ajv@8.17.1) - atomically: 1.7.0 - debounce-fn: 4.0.0 - dot-prop: 6.0.1 - env-paths: 2.2.1 - json-schema-typed: 7.0.3 - onetime: 5.1.2 - pkg-up: 3.1.0 + ajv-formats: 3.0.1(ajv@8.17.1) + atomically: 2.1.0 + debounce-fn: 6.0.0 + dot-prop: 10.1.0 + env-paths: 3.0.0 + json-schema-typed: 8.0.2 semver: 7.7.3 + uint8array-extras: 1.5.0 config-file-ts@0.2.6: dependencies: @@ -6549,9 +6739,11 @@ snapshots: snake-case: 2.1.0 upper-case: 1.1.3 + convert-source-map@2.0.0: {} + cookie@1.1.1: {} - core-js-pure@3.47.0: {} + core-js-pure@3.48.0: {} core-util-is@1.0.2: optional: true @@ -6600,9 +6792,9 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.2 - debounce-fn@4.0.0: + debounce-fn@6.0.0: dependencies: - mimic-fn: 3.1.0 + mimic-function: 5.0.1 debug@4.4.3: dependencies: @@ -6660,7 +6852,7 @@ snapshots: detect-node@2.1.0: optional: true - diff@4.0.2: {} + diff@4.0.4: {} dir-compare@3.3.0: dependencies: @@ -6709,9 +6901,9 @@ snapshots: dependencies: no-case: 2.3.2 - dot-prop@6.0.1: + dot-prop@10.1.0: dependencies: - is-obj: 2.0.0 + type-fest: 5.4.3 dotenv-expand@11.0.7: dependencies: @@ -6788,15 +6980,17 @@ snapshots: transitivePeerDependencies: - supports-color - electron-store@8.2.0: + electron-store@11.0.2: dependencies: - conf: 10.2.0 - type-fest: 2.19.0 + conf: 15.1.0 + type-fest: 5.4.3 - electron@34.0.2: + electron-to-chromium@1.5.286: {} + + electron@40.1.0: dependencies: '@electron/get': 2.0.3 - '@types/node': 20.19.27 + '@types/node': 24.10.10 extract-zip: 2.0.1 transitivePeerDependencies: - supports-color @@ -6814,13 +7008,15 @@ snapshots: dependencies: once: 1.4.0 - enhanced-resolve@5.18.4: + enhanced-resolve@5.19.0: dependencies: graceful-fs: 4.2.11 tapable: 2.3.0 env-paths@2.2.1: {} + env-paths@3.0.0: {} + err-code@2.0.3: {} es-abstract@1.24.1: @@ -6878,7 +7074,7 @@ snapshots: typed-array-byte-offset: 1.0.4 typed-array-length: 1.0.7 unbox-primitive: 1.1.0 - which-typed-array: 1.1.19 + which-typed-array: 1.1.20 es-define-property@1.0.1: {} @@ -6972,17 +7168,24 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-prettier@9.1.2(eslint@9.39.2(jiti@2.6.1)): + eslint-config-prettier@10.1.8(eslint@9.39.2(jiti@2.6.1)): dependencies: eslint: 9.39.2(jiti@2.6.1) eslint-plugin-only-warn@1.1.0: {} - eslint-plugin-react-hooks@5.2.0(eslint@9.39.2(jiti@2.6.1)): + eslint-plugin-react-hooks@7.0.1(eslint@9.39.2(jiti@2.6.1)): dependencies: + '@babel/core': 7.29.0 + '@babel/parser': 7.29.0 eslint: 9.39.2(jiti@2.6.1) + hermes-parser: 0.25.1 + zod: 4.3.6 + zod-validation-error: 4.0.2(zod@4.3.6) + transitivePeerDependencies: + - supports-color - eslint-plugin-react-refresh@0.4.26(eslint@9.39.2(jiti@2.6.1)): + eslint-plugin-react-refresh@0.5.0(eslint@9.39.2(jiti@2.6.1)): dependencies: eslint: 9.39.2(jiti@2.6.1) @@ -7008,11 +7211,11 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-turbo@2.7.1(eslint@9.39.2(jiti@2.6.1))(turbo@2.8.2): + eslint-plugin-turbo@2.8.3(eslint@9.39.2(jiti@2.6.1))(turbo@2.8.3): dependencies: dotenv: 16.0.3 eslint: 9.39.2(jiti@2.6.1) - turbo: 2.8.2 + turbo: 2.8.3 eslint-scope@8.4.0: dependencies: @@ -7025,7 +7228,7 @@ snapshots: eslint@9.39.2(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) + '@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 '@eslint/config-helpers': 0.4.2 @@ -7045,7 +7248,7 @@ snapshots: eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 espree: 10.4.0 - esquery: 1.6.0 + esquery: 1.7.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 8.0.0 @@ -7072,7 +7275,7 @@ snapshots: esprima@4.0.1: {} - esquery@1.6.0: + esquery@1.7.0: dependencies: estraverse: 5.3.0 @@ -7147,7 +7350,7 @@ snapshots: fast-uri@3.1.0: {} - fastq@1.19.1: + fastq@1.20.1: dependencies: reusify: 1.1.0 @@ -7175,10 +7378,6 @@ snapshots: dependencies: to-regex-range: 5.0.1 - find-up@3.0.0: - dependencies: - locate-path: 3.0.0 - find-up@5.0.0: dependencies: locate-path: 6.0.0 @@ -7263,6 +7462,8 @@ snapshots: generator-function@2.0.1: {} + gensync@1.0.0-beta.2: {} + get-caller-file@2.0.5: {} get-intrinsic@1.3.0: @@ -7299,7 +7500,7 @@ snapshots: get-uri@6.0.5: dependencies: - basic-ftp: 5.0.5 + basic-ftp: 5.1.0 data-uri-to-buffer: 6.0.2 debug: 4.4.3 transitivePeerDependencies: @@ -7343,7 +7544,7 @@ snapshots: globals@14.0.0: {} - globals@15.15.0: {} + globals@17.3.0: {} globalthis@1.0.4: dependencies: @@ -7422,6 +7623,12 @@ snapshots: no-case: 2.3.2 upper-case: 1.1.3 + hermes-estree@0.25.1: {} + + hermes-parser@0.25.1: + dependencies: + hermes-estree: 0.25.1 + hosted-git-info@4.1.0: dependencies: lru-cache: 6.0.0 @@ -7480,6 +7687,10 @@ snapshots: dependencies: safer-buffer: 2.1.2 + iconv-lite@0.7.2: + dependencies: + safer-buffer: 2.1.2 + ieee754@1.2.1: {} ignore@5.3.2: {} @@ -7515,7 +7726,7 @@ snapshots: cli-width: 3.0.0 external-editor: 3.1.0 figures: 3.2.0 - lodash: 4.17.21 + lodash: 4.17.23 mute-stream: 0.0.8 run-async: 2.4.1 rxjs: 6.6.7 @@ -7523,15 +7734,15 @@ snapshots: strip-ansi: 6.0.1 through: 2.3.8 - inquirer@8.2.4: + inquirer@8.2.7(@types/node@25.2.0): dependencies: + '@inquirer/external-editor': 1.0.3(@types/node@25.2.0) ansi-escapes: 4.3.2 chalk: 4.1.2 cli-cursor: 3.1.0 cli-width: 3.0.0 - external-editor: 3.1.0 figures: 3.2.0 - lodash: 4.17.21 + lodash: 4.17.23 mute-stream: 0.0.8 ora: 5.4.1 run-async: 2.4.1 @@ -7539,7 +7750,9 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 through: 2.3.8 - wrap-ansi: 7.0.0 + wrap-ansi: 6.2.0 + transitivePeerDependencies: + - '@types/node' internal-slot@1.1.0: dependencies: @@ -7630,8 +7843,6 @@ snapshots: is-number@7.0.0: {} - is-obj@2.0.0: {} - is-path-cwd@2.2.0: {} is-path-inside@3.0.3: {} @@ -7664,7 +7875,7 @@ snapshots: is-typed-array@1.1.15: dependencies: - which-typed-array: 1.1.19 + which-typed-array: 1.1.20 is-unicode-supported@0.1.0: {} @@ -7703,14 +7914,6 @@ snapshots: make-dir: 4.0.0 supports-color: 7.2.0 - istanbul-lib-source-maps@5.0.6: - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - debug: 4.4.3 - istanbul-lib-coverage: 3.2.2 - transitivePeerDependencies: - - supports-color - istanbul-reports@3.2.0: dependencies: html-escaper: 2.0.2 @@ -7739,25 +7942,23 @@ snapshots: jiti@2.6.1: {} - js-tokens@4.0.0: {} - - js-tokens@9.0.1: {} + js-tokens@10.0.0: {} - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 + js-tokens@4.0.0: {} js-yaml@4.1.1: dependencies: argparse: 2.0.1 + jsesc@3.1.0: {} + json-buffer@3.0.1: {} json-schema-traverse@0.4.1: {} json-schema-traverse@1.0.0: {} - json-schema-typed@7.0.3: {} + json-schema-typed@8.0.2: {} json-stable-stringify-without-jsonify@1.0.1: {} @@ -7847,11 +8048,6 @@ snapshots: lightningcss-win32-arm64-msvc: 1.30.2 lightningcss-win32-x64-msvc: 1.30.2 - locate-path@3.0.0: - dependencies: - p-locate: 3.0.0 - path-exists: 3.0.0 - locate-path@6.0.0: dependencies: p-locate: 5.0.0 @@ -7870,7 +8066,7 @@ snapshots: lodash.union@4.6.0: {} - lodash@4.17.21: {} + lodash@4.17.23: {} log-symbols@3.0.0: dependencies: @@ -7895,24 +8091,28 @@ snapshots: lru-cache@10.4.3: {} + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + lru-cache@6.0.0: dependencies: yallist: 4.0.0 lru-cache@7.18.3: {} - lucide-react@0.475.0(react@19.2.3): + lucide-react@0.563.0(react@19.2.4): dependencies: - react: 19.2.3 + react: 19.2.4 magic-string@0.30.21: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - magicast@0.5.1: + magicast@0.5.2: dependencies: - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 source-map-js: 1.2.1 make-dir@4.0.0: @@ -7963,7 +8163,7 @@ snapshots: mimic-fn@2.1.0: {} - mimic-fn@3.1.0: {} + mimic-function@5.0.1: {} mimic-response@1.0.1: {} @@ -8052,10 +8252,10 @@ snapshots: netmask@2.0.2: {} - next-themes@0.4.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + next-themes@0.4.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) no-case@2.3.2: dependencies: @@ -8089,7 +8289,7 @@ snapshots: node-plop@0.26.3: dependencies: - '@babel/runtime-corejs3': 7.28.4 + '@babel/runtime-corejs3': 7.29.0 '@types/inquirer': 6.5.0 change-case: 3.1.0 del: 5.1.0 @@ -8101,6 +8301,8 @@ snapshots: mkdirp: 0.5.6 resolve: 1.22.11 + node-releases@2.0.27: {} + nopt@8.1.0: dependencies: abbrev: 3.0.1 @@ -8201,18 +8403,10 @@ snapshots: p-cancelable@2.1.1: {} - p-limit@2.3.0: - dependencies: - p-try: 2.2.0 - p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 - p-locate@3.0.0: - dependencies: - p-limit: 2.3.0 - p-locate@5.0.0: dependencies: p-limit: 3.1.0 @@ -8223,8 +8417,6 @@ snapshots: p-map@7.0.4: {} - p-try@2.2.0: {} - pac-proxy-agent@7.2.0: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 @@ -8262,8 +8454,6 @@ snapshots: dependencies: no-case: 2.3.2 - path-exists@3.0.0: {} - path-exists@4.0.0: {} path-is-absolute@1.0.1: {} @@ -8293,10 +8483,6 @@ snapshots: picomatch@4.0.3: {} - pkg-up@3.1.0: - dependencies: - find-up: 3.0.0 - plist@3.1.0: dependencies: '@xmldom/xmldom': 0.8.11 @@ -8313,11 +8499,11 @@ snapshots: prelude-ls@1.2.1: {} - prettier-plugin-tailwindcss@0.6.14(prettier@3.7.4): + prettier-plugin-tailwindcss@0.7.2(prettier@3.8.1): dependencies: - prettier: 3.7.4 + prettier: 3.8.1 - prettier@3.7.4: {} + prettier@3.8.1: {} proc-log@5.0.0: {} @@ -8375,54 +8561,54 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-dom@19.2.3(react@19.2.3): + react-dom@19.2.4(react@19.2.4): dependencies: - react: 19.2.3 + react: 19.2.4 scheduler: 0.27.0 react-is@16.13.1: {} - react-remove-scroll-bar@2.3.8(@types/react@19.2.7)(react@19.2.3): + react-remove-scroll-bar@2.3.8(@types/react@19.2.11)(react@19.2.4): dependencies: - react: 19.2.3 - react-style-singleton: 2.2.3(@types/react@19.2.7)(react@19.2.3) + react: 19.2.4 + react-style-singleton: 2.2.3(@types/react@19.2.11)(react@19.2.4) tslib: 2.8.1 optionalDependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.11 - react-remove-scroll@2.7.2(@types/react@19.2.7)(react@19.2.3): + react-remove-scroll@2.7.2(@types/react@19.2.11)(react@19.2.4): dependencies: - react: 19.2.3 - react-remove-scroll-bar: 2.3.8(@types/react@19.2.7)(react@19.2.3) - react-style-singleton: 2.2.3(@types/react@19.2.7)(react@19.2.3) + react: 19.2.4 + react-remove-scroll-bar: 2.3.8(@types/react@19.2.11)(react@19.2.4) + react-style-singleton: 2.2.3(@types/react@19.2.11)(react@19.2.4) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.2.7)(react@19.2.3) - use-sidecar: 1.1.3(@types/react@19.2.7)(react@19.2.3) + use-callback-ref: 1.3.3(@types/react@19.2.11)(react@19.2.4) + use-sidecar: 1.1.3(@types/react@19.2.11)(react@19.2.4) optionalDependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.11 - react-resizable-panels@3.0.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + react-resizable-panels@4.6.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) - react-router@7.13.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + react-router@7.13.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: cookie: 1.1.1 - react: 19.2.3 + react: 19.2.4 set-cookie-parser: 2.7.2 optionalDependencies: - react-dom: 19.2.3(react@19.2.3) + react-dom: 19.2.4(react@19.2.4) - react-style-singleton@2.2.3(@types/react@19.2.7)(react@19.2.3): + react-style-singleton@2.2.3(@types/react@19.2.11)(react@19.2.4): dependencies: get-nonce: 1.0.1 - react: 19.2.3 + react: 19.2.4 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.11 - react@19.2.3: {} + react@19.2.4: {} read-binary-file-arch@1.0.6: dependencies: @@ -8539,32 +8725,35 @@ snapshots: sprintf-js: 1.1.3 optional: true - rollup@4.54.0: + rollup@4.57.1: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.54.0 - '@rollup/rollup-android-arm64': 4.54.0 - '@rollup/rollup-darwin-arm64': 4.54.0 - '@rollup/rollup-darwin-x64': 4.54.0 - '@rollup/rollup-freebsd-arm64': 4.54.0 - '@rollup/rollup-freebsd-x64': 4.54.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.54.0 - '@rollup/rollup-linux-arm-musleabihf': 4.54.0 - '@rollup/rollup-linux-arm64-gnu': 4.54.0 - '@rollup/rollup-linux-arm64-musl': 4.54.0 - '@rollup/rollup-linux-loong64-gnu': 4.54.0 - '@rollup/rollup-linux-ppc64-gnu': 4.54.0 - '@rollup/rollup-linux-riscv64-gnu': 4.54.0 - '@rollup/rollup-linux-riscv64-musl': 4.54.0 - '@rollup/rollup-linux-s390x-gnu': 4.54.0 - '@rollup/rollup-linux-x64-gnu': 4.54.0 - '@rollup/rollup-linux-x64-musl': 4.54.0 - '@rollup/rollup-openharmony-arm64': 4.54.0 - '@rollup/rollup-win32-arm64-msvc': 4.54.0 - '@rollup/rollup-win32-ia32-msvc': 4.54.0 - '@rollup/rollup-win32-x64-gnu': 4.54.0 - '@rollup/rollup-win32-x64-msvc': 4.54.0 + '@rollup/rollup-android-arm-eabi': 4.57.1 + '@rollup/rollup-android-arm64': 4.57.1 + '@rollup/rollup-darwin-arm64': 4.57.1 + '@rollup/rollup-darwin-x64': 4.57.1 + '@rollup/rollup-freebsd-arm64': 4.57.1 + '@rollup/rollup-freebsd-x64': 4.57.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.57.1 + '@rollup/rollup-linux-arm-musleabihf': 4.57.1 + '@rollup/rollup-linux-arm64-gnu': 4.57.1 + '@rollup/rollup-linux-arm64-musl': 4.57.1 + '@rollup/rollup-linux-loong64-gnu': 4.57.1 + '@rollup/rollup-linux-loong64-musl': 4.57.1 + '@rollup/rollup-linux-ppc64-gnu': 4.57.1 + '@rollup/rollup-linux-ppc64-musl': 4.57.1 + '@rollup/rollup-linux-riscv64-gnu': 4.57.1 + '@rollup/rollup-linux-riscv64-musl': 4.57.1 + '@rollup/rollup-linux-s390x-gnu': 4.57.1 + '@rollup/rollup-linux-x64-gnu': 4.57.1 + '@rollup/rollup-linux-x64-musl': 4.57.1 + '@rollup/rollup-openbsd-x64': 4.57.1 + '@rollup/rollup-openharmony-arm64': 4.57.1 + '@rollup/rollup-win32-arm64-msvc': 4.57.1 + '@rollup/rollup-win32-ia32-msvc': 4.57.1 + '@rollup/rollup-win32-x64-gnu': 4.57.1 + '@rollup/rollup-win32-x64-msvc': 4.57.1 fsevents: 2.3.3 run-async@2.4.1: {} @@ -8610,7 +8799,7 @@ snapshots: dependencies: truncate-utf8-bytes: 1.0.2 - sax@1.4.3: {} + sax@1.4.4: {} scheduler@0.27.0: {} @@ -8836,6 +9025,12 @@ snapshots: strip-json-comments@3.1.1: {} + stubborn-fs@2.0.0: + dependencies: + stubborn-utils: 1.0.2 + + stubborn-utils@1.0.2: {} + sumchecker@3.0.1: dependencies: debug: 4.4.3 @@ -8857,6 +9052,8 @@ snapshots: lower-case: 1.1.4 upper-case: 1.1.3 + tagged-tag@1.0.0: {} + tailwind-merge@3.4.0: {} tailwindcss@4.1.18: {} @@ -8940,87 +9137,60 @@ snapshots: dependencies: utf8-byte-length: 1.0.5 - ts-api-utils@2.1.0(typescript@5.9.3): + ts-api-utils@2.4.0(typescript@5.9.3): dependencies: typescript: 5.9.3 - ts-node@10.9.2(@swc/core@1.15.7)(@types/node@20.19.27)(typescript@5.9.3): + ts-node@10.9.2(@swc/core@1.15.11)(@types/node@25.2.0)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.12 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.19.27 + '@types/node': 25.2.0 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 - diff: 4.0.2 + diff: 4.0.4 make-error: 1.3.6 typescript: 5.9.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.15.7 + '@swc/core': 1.15.11 tslib@1.14.1: {} tslib@2.8.1: {} - turbo-darwin-64@2.7.1: - optional: true - - turbo-darwin-64@2.8.2: + turbo-darwin-64@2.8.3: optional: true - turbo-darwin-arm64@2.7.1: + turbo-darwin-arm64@2.8.3: optional: true - turbo-darwin-arm64@2.8.2: + turbo-linux-64@2.8.3: optional: true - turbo-linux-64@2.7.1: + turbo-linux-arm64@2.8.3: optional: true - turbo-linux-64@2.8.2: + turbo-windows-64@2.8.3: optional: true - turbo-linux-arm64@2.7.1: + turbo-windows-arm64@2.8.3: optional: true - turbo-linux-arm64@2.8.2: - optional: true - - turbo-windows-64@2.7.1: - optional: true - - turbo-windows-64@2.8.2: - optional: true - - turbo-windows-arm64@2.7.1: - optional: true - - turbo-windows-arm64@2.8.2: - optional: true - - turbo@2.7.1: + turbo@2.8.3: optionalDependencies: - turbo-darwin-64: 2.7.1 - turbo-darwin-arm64: 2.7.1 - turbo-linux-64: 2.7.1 - turbo-linux-arm64: 2.7.1 - turbo-windows-64: 2.7.1 - turbo-windows-arm64: 2.7.1 - - turbo@2.8.2: - optionalDependencies: - turbo-darwin-64: 2.8.2 - turbo-darwin-arm64: 2.8.2 - turbo-linux-64: 2.8.2 - turbo-linux-arm64: 2.8.2 - turbo-windows-64: 2.8.2 - turbo-windows-arm64: 2.8.2 + turbo-darwin-64: 2.8.3 + turbo-darwin-arm64: 2.8.3 + turbo-linux-64: 2.8.3 + turbo-linux-arm64: 2.8.3 + turbo-windows-64: 2.8.3 + turbo-windows-arm64: 2.8.3 tw-animate-css@1.4.0: {} @@ -9033,7 +9203,9 @@ snapshots: type-fest@0.21.3: {} - type-fest@2.19.0: {} + type-fest@5.4.3: + dependencies: + tagged-tag: 1.0.0 typed-array-buffer@1.0.3: dependencies: @@ -9068,24 +9240,24 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.50.0(eslint@9.39.2(jiti@2.6.1))(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.50.0(@typescript-eslint/parser@8.50.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.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.50.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.50.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) + '@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 - typescript@5.7.3: {} - typescript@5.9.3: {} uglify-js@3.19.3: optional: true + uint8array-extras@1.5.0: {} + unbox-primitive@1.1.0: dependencies: call-bound: 1.0.4 @@ -9093,10 +9265,7 @@ snapshots: has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 - undici-types@6.21.0: {} - - undici-types@7.16.0: - optional: true + undici-types@7.16.0: {} unique-filename@4.0.0: dependencies: @@ -9110,6 +9279,12 @@ snapshots: universalify@2.0.1: {} + update-browserslist-db@1.2.3(browserslist@4.28.1): + dependencies: + browserslist: 4.28.1 + escalade: 3.2.0 + picocolors: 1.1.1 + update-check@1.5.4: dependencies: registry-auth-token: 3.3.2 @@ -9127,24 +9302,24 @@ snapshots: dependencies: punycode: 2.3.1 - use-callback-ref@1.3.3(@types/react@19.2.7)(react@19.2.3): + use-callback-ref@1.3.3(@types/react@19.2.11)(react@19.2.4): dependencies: - react: 19.2.3 + react: 19.2.4 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.11 - use-sidecar@1.1.3(@types/react@19.2.7)(react@19.2.3): + use-sidecar@1.1.3(@types/react@19.2.11)(react@19.2.4): dependencies: detect-node-es: 1.1.0 - react: 19.2.3 + react: 19.2.4 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.11 - use-sync-external-store@1.6.0(react@19.2.3): + use-sync-external-store@1.6.0(react@19.2.4): dependencies: - react: 19.2.3 + react: 19.2.4 optional: true utf8-byte-length@1.0.5: {} @@ -9164,29 +9339,29 @@ snapshots: extsprintf: 1.4.1 optional: true - vite@7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2): + vite@7.3.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2): dependencies: esbuild: 0.27.2 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 - rollup: 4.54.0 + rollup: 4.57.1 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.10.10 + '@types/node': 25.2.0 fsevents: 2.3.3 jiti: 2.6.1 lightningcss: 1.30.2 - vitest@4.0.16(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2): + vitest@4.0.18(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2): dependencies: - '@vitest/expect': 4.0.16 - '@vitest/mocker': 4.0.16(vite@7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2)) - '@vitest/pretty-format': 4.0.16 - '@vitest/runner': 4.0.16 - '@vitest/snapshot': 4.0.16 - '@vitest/spy': 4.0.16 - '@vitest/utils': 4.0.16 + '@vitest/expect': 4.0.18 + '@vitest/mocker': 4.0.18(vite@7.3.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)) + '@vitest/pretty-format': 4.0.18 + '@vitest/runner': 4.0.18 + '@vitest/snapshot': 4.0.18 + '@vitest/spy': 4.0.18 + '@vitest/utils': 4.0.18 es-module-lexer: 1.7.0 expect-type: 1.3.0 magic-string: 0.30.21 @@ -9198,10 +9373,10 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vite: 7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2) + vite: 7.3.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 24.10.10 + '@types/node': 25.2.0 transitivePeerDependencies: - jiti - less @@ -9219,6 +9394,8 @@ snapshots: dependencies: defaults: 1.0.4 + when-exit@2.1.5: {} + which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 @@ -9241,7 +9418,7 @@ snapshots: isarray: 2.0.5 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.19 + which-typed-array: 1.1.20 which-collection@1.0.2: dependencies: @@ -9250,7 +9427,7 @@ snapshots: is-weakmap: 2.0.2 is-weakset: 2.0.4 - which-typed-array@1.1.19: + which-typed-array@1.1.20: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 @@ -9277,6 +9454,12 @@ snapshots: wordwrap@1.0.0: {} + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -9295,6 +9478,8 @@ snapshots: y18n@5.0.8: {} + yallist@3.1.1: {} + yallist@4.0.0: {} yallist@5.0.0: {} @@ -9326,11 +9511,15 @@ snapshots: compress-commons: 4.1.2 readable-stream: 3.6.2 - zod@3.25.76: {} + zod-validation-error@4.0.2(zod@4.3.6): + dependencies: + zod: 4.3.6 + + zod@4.3.6: {} - zustand@5.0.11(@types/react@19.2.7)(immer@11.1.0)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3)): + zustand@5.0.11(@types/react@19.2.11)(immer@11.1.0)(react@19.2.4)(use-sync-external-store@1.6.0(react@19.2.4)): optionalDependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.11 immer: 11.1.0 - react: 19.2.3 - use-sync-external-store: 1.6.0(react@19.2.3) + react: 19.2.4 + use-sync-external-store: 1.6.0(react@19.2.4) From a9696aa3f711bd4035e892c0b09730ebde492786 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Thu, 5 Feb 2026 11:05:59 +0100 Subject: [PATCH 07/38] chore: move shell.nix --- frontend/testing-view/shell.nix | 200 -------------------------------- 1 file changed, 200 deletions(-) delete mode 100644 frontend/testing-view/shell.nix diff --git a/frontend/testing-view/shell.nix b/frontend/testing-view/shell.nix deleted file mode 100644 index a84c7c6da..000000000 --- a/frontend/testing-view/shell.nix +++ /dev/null @@ -1,200 +0,0 @@ -{ pkgs ? import {} }: - -let - # Pin nixpkgs for reproducibility - pinnedPkgs = import (builtins.fetchTarball { - url = "https://github.com/NixOS/nixpkgs/archive/nixos-23.11.tar.gz"; - sha256 = "1ndiv385w1qyb3b18vw13991fzb9wg4cl21wglk89grsfsnra41k"; - }) {}; - - # Use pinned packages by default - finalPkgs = if pkgs == import {} then pinnedPkgs else pkgs; - -in finalPkgs.mkShell { - name = "hyperloop-h10-dev"; - - buildInputs = with finalPkgs; [ - # Go development - go - gotools - gopls - delve - - # Node.js development - nodejs_20 - nodePackages.npm - nodePackages.typescript - nodePackages.typescript-language-server - - # Python for testing - python3 - - # System dependencies - libpcap - pkg-config - - # Build tools - gnumake - gcc - - # Development utilities - git - ripgrep - jq - curl - wget - tmux - - # Optional productivity tools (can be removed for minimal setup) - watchman - ]; - - shellHook = '' - # Hyperloop H10 Development Environment - - # Set up environment variables - export GOPATH="$HOME/go" - export PATH="$GOPATH/bin:$PATH" - export NODE_ENV="development" - export CGO_ENABLED=1 - - # Create command functions for running services in tmux - ethernet-view() { - # Check if backend is built - if [ ! -f "backend/cmd/backend" ]; then - echo "Building backend first..." - make backend - fi - - # Kill existing session if it exists - tmux kill-session -t ethernet-view 2>/dev/null || true - - # Create new session - tmux new-session -d -s ethernet-view -n main - - # Start backend in first pane - tmux send-keys -t ethernet-view:main "cd backend/cmd && ./backend" C-m - - # Split horizontally and start ethernet-view - tmux split-window -t ethernet-view:main -h -p 50 - tmux send-keys -t ethernet-view:main.1 "cd ethernet-view && npm run dev" C-m - - # Add status pane at bottom - tmux split-window -t ethernet-view:main.0 -v -p 20 - tmux send-keys -t ethernet-view:main.2 "echo 'Logs/Status - Press Enter for shell'; read; bash" C-m - - # Configure pane titles - tmux select-pane -t ethernet-view:main.0 -T "Backend" - tmux select-pane -t ethernet-view:main.1 -T "Ethernet View (http://localhost:5174)" - tmux select-pane -t ethernet-view:main.2 -T "Logs/Shell" - tmux set-option -t ethernet-view pane-border-status top - - echo "Starting ethernet-view session..." - echo "Backend running on configured port" - echo "Ethernet View: http://localhost:5174" - - # Attach to session - tmux attach-session -t ethernet-view - } - - control-station() { - # Check if backend is built - if [ ! -f "backend/cmd/backend" ]; then - echo "Building backend first..." - make backend - fi - - # Kill existing session if it exists - tmux kill-session -t control-station 2>/dev/null || true - - # Create new session - tmux new-session -d -s control-station -n main - - # Start backend in first pane - tmux send-keys -t control-station:main "cd backend/cmd && ./backend" C-m - - # Split horizontally and start control-station - tmux split-window -t control-station:main -h -p 50 - tmux send-keys -t control-station:main.1 "cd control-station && npm run dev" C-m - - # Add status pane at bottom - tmux split-window -t control-station:main.0 -v -p 20 - tmux send-keys -t control-station:main.2 "echo 'Logs/Status - Press Enter for shell'; read; bash" C-m - - # Configure pane titles - tmux select-pane -t control-station:main.0 -T "Backend" - tmux select-pane -t control-station:main.1 -T "Control Station (http://localhost:5173)" - tmux select-pane -t control-station:main.2 -T "Logs/Shell" - tmux set-option -t control-station pane-border-status top - - echo "Starting control-station session..." - echo "Backend running on configured port" - echo "Control Station: http://localhost:5173" - - # Attach to session - tmux attach-session -t control-station - } - - # Export functions so they're available in the shell - export -f ethernet-view - export -f control-station - - # Ensure clean terminal state - clear - - # Check if dependencies need installation - check_dependencies() { - local install_needed=false - - if [ ! -d "common-front/node_modules" ]; then - echo "⚠️ Missing common-front dependencies" - install_needed=true - fi - - if [ ! -d "control-station/node_modules" ]; then - echo "⚠️ Missing control-station dependencies" - install_needed=true - fi - - if [ ! -d "ethernet-view/node_modules" ]; then - echo "⚠️ Missing ethernet-view dependencies" - install_needed=true - fi - - if [ "$install_needed" = true ]; then - echo "" - echo "Run 'make install' to install all dependencies" - fi - } - - # Display environment info - echo "Hyperloop H10 Development Environment" - echo "=====================================" - echo "" - echo "Environment:" - echo " Go version: $(go version | cut -d' ' -f3)" - echo " Node version: $(node --version)" - echo " NPM version: $(npm --version)" - echo "" - echo "Quick Start:" - echo " make install - Install all dependencies" - echo " make all - Build all components" - echo " ethernet-view - Run backend + Ethernet view in tmux" - echo " control-station - Run backend + Control station in tmux" - echo "" - echo "Individual Commands:" - echo " make backend - Build backend" - echo " make common-front - Build common frontend library" - echo " make control-station - Build control station" - echo " make ethernet-view - Build ethernet view" - echo "" - - check_dependencies - ''; - - # Prevent impurities - pure = true; - - # Additional environment variables for pure builds - NIX_ENFORCE_PURITY = 1; -} \ No newline at end of file From 1d0ee21c4adb381d15e19a6ce36f2c436d7b54d0 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Thu, 5 Feb 2026 11:06:10 +0100 Subject: [PATCH 08/38] feat: remove Footer --- .../testing-view/src/components/Footer.tsx | 18 ------------------ frontend/testing-view/src/layout/AppLayout.tsx | 2 -- 2 files changed, 20 deletions(-) delete mode 100644 frontend/testing-view/src/components/Footer.tsx diff --git a/frontend/testing-view/src/components/Footer.tsx b/frontend/testing-view/src/components/Footer.tsx deleted file mode 100644 index 6846cdb93..000000000 --- a/frontend/testing-view/src/components/Footer.tsx +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Renders a footer with the app name, current year and the copyright notice - */ -export const Footer = () => { - const currentYear = new Date().getFullYear(); - const dateRange = - currentYear <= 2025 ? `${currentYear}` : `2025-${currentYear}`; - - return ( -
- - Control Station - Testing View © {dateRange} Hyperloop UPV - -
- ); -}; - -export default Footer; diff --git a/frontend/testing-view/src/layout/AppLayout.tsx b/frontend/testing-view/src/layout/AppLayout.tsx index faf746950..d6a772cb1 100644 --- a/frontend/testing-view/src/layout/AppLayout.tsx +++ b/frontend/testing-view/src/layout/AppLayout.tsx @@ -1,6 +1,5 @@ import { SidebarInset, SidebarProvider } from "@workspace/ui/components"; import React, { useEffect } from "react"; -import Footer from "../components/Footer"; import Header from "../components/header/Header"; import AppSidebar from "../components/leftSidebar/AppSidebar"; import { SettingsDialog } from "../components/settings/SettingsDialog"; @@ -40,7 +39,6 @@ export const AppLayout = ({ children, backendConnected }: AppLayoutProps) => {
{children}
-
From 1c3d98be173a25e78665d6ff58619bcf8fdf5c40 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Thu, 5 Feb 2026 11:14:42 +0100 Subject: [PATCH 09/38] chore(dependabot): change dependabots configuration --- .github/dependabot.yml | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 90edafe64..3b32b8db0 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -3,10 +3,19 @@ updates: - package-ecosystem: "npm" directory: "/" schedule: - interval: "daily" - target-branch: "develop" + interval: "weekly" + target-branch: "develop" + # Ignore all patch updates (e.g. 1.0.1 -> 1.0.2) + ignore: + - dependency-name: "*" + update-types: ["version-update:semver-patch"] + - package-ecosystem: "npm" directory: "/" schedule: - interval: "daily" - target-branch: "main" \ No newline at end of file + interval: "weekly" + target-branch: "main" + # Ignore all patch updates (e.g. 1.0.1 -> 1.0.2) + ignore: + - dependency-name: "*" + update-types: ["version-update:semver-patch"] From f3d79316cad31b7dfa61fcc5751240c4c3f26809 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Thu, 5 Feb 2026 11:15:03 +0100 Subject: [PATCH 10/38] chore(monorepo): add some useful scripts --- package.json | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index dab8718ac..942aad474 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,9 @@ "dev": "turbo dev", "dev:main": "turbo dev:main", "build": "turbo build", + "build:win": "pnpm --filter electron-app build:win", + "build:linux": "pnpm --filter electron-app build:linux", + "build:mac": "pnpm --filter electron-app build:mac", "lint": "turbo lint", "preview": "turbo preview", "test": "turbo test", @@ -13,10 +16,10 @@ "devDependencies": { "@workspace/eslint-config": "workspace:*", "@workspace/typescript-config": "workspace:*", - "prettier": "^3.7.4", - "prettier-plugin-tailwindcss": "^0.6.14", - "turbo": "^2.7.1", - "typescript": "5.7.3" + "prettier": "^3.8.1", + "prettier-plugin-tailwindcss": "^0.7.2", + "turbo": "^2.8.3", + "typescript": "5.9.3" }, "packageManager": "pnpm@10.26.0", "engines": { From 9485f9f3d15cd3644dadf3cc313d4ba7cd9cae10 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Thu, 5 Feb 2026 11:44:50 +0100 Subject: [PATCH 11/38] feat: add config.ts to store some hardcoded values --- frontend/testing-view/config.ts | 22 +++++++++++++++++++ .../charts/components/ChartSettings.tsx | 3 ++- .../charts/components/ChartSurface.tsx | 16 +++++++++----- .../src/features/charts/store/chartsSlice.ts | 7 +++++- frontend/testing-view/src/hooks/useLogger.ts | 3 ++- .../src/store/slices/messagesSlice.ts | 8 ++++--- 6 files changed, 47 insertions(+), 12 deletions(-) create mode 100644 frontend/testing-view/config.ts diff --git a/frontend/testing-view/config.ts b/frontend/testing-view/config.ts new file mode 100644 index 000000000..fc24940a6 --- /dev/null +++ b/frontend/testing-view/config.ts @@ -0,0 +1,22 @@ +export const config = { + /** Default buffer size for a new chart. */ + DEFAULT_CHART_HISTORY_LIMIT: 100, + + /** Fallback history limit for a chart. Used when the history limit is not set. */ + FALLBACK_CHART_HISTORY_LIMIT: 100, + + /** Default height of chart. */ + DEFAULT_CHART_HEIGHT: 250, + + /** Width of lines in chart between points. */ + CHART_LINE_WIDTH: 2, + + /** Size of points in chart (not hovered state). */ + CHART_POINT_SIZE: 2, + + /** Maximum number of messages section to store. */ + MAX_MESSAGES_COUNT: 200, + + /** Timeout for logger response or time to invalidate logger status after start button click. */ + LOGGER_RESPONSE_TIMEOUT: 2000, +} as const; diff --git a/frontend/testing-view/src/features/charts/components/ChartSettings.tsx b/frontend/testing-view/src/features/charts/components/ChartSettings.tsx index acec665b3..20913c495 100644 --- a/frontend/testing-view/src/features/charts/components/ChartSettings.tsx +++ b/frontend/testing-view/src/features/charts/components/ChartSettings.tsx @@ -6,6 +6,7 @@ import { PopoverTrigger, } from "@workspace/ui"; import { Settings2 } from "@workspace/ui/icons"; +import { config } from "../../../../config"; import { useStore } from "../../../store/store"; interface ChartSettingsProps { @@ -17,7 +18,7 @@ export const ChartSettings = ({ chartId }: ChartSettingsProps) => { const historyLimit = useStore( (s) => s.charts[activeWorkspace?.id ?? ""]?.find((c) => c.id === chartId) - ?.historyLimit ?? 200, + ?.historyLimit ?? config.FALLBACK_CHART_HISTORY_LIMIT, ); const setHistoryLimit = useStore((s) => s.setChartHistoryLimit); diff --git a/frontend/testing-view/src/features/charts/components/ChartSurface.tsx b/frontend/testing-view/src/features/charts/components/ChartSurface.tsx index f251bbd73..868c5fbff 100644 --- a/frontend/testing-view/src/features/charts/components/ChartSurface.tsx +++ b/frontend/testing-view/src/features/charts/components/ChartSurface.tsx @@ -4,6 +4,7 @@ import { cn } from "@workspace/ui/lib"; import { memo, useEffect, useRef, useState } from "react"; import uPlot from "uplot"; import { useShallow } from "zustand/shallow"; +import { config } from "../../../../config"; import { useStore } from "../../../store/store"; import { COLORS } from "../constants/chartsColors"; import type { WorkspaceChartSeries } from "../types/charts"; @@ -31,7 +32,7 @@ export const ChartSurface = memo( const historyLimit = useStore( (s) => s.charts[activeWorkspace?.id ?? ""]?.find((c) => c.id === chartId) - ?.historyLimit ?? 200, + ?.historyLimit ?? config.FALLBACK_CHART_HISTORY_LIMIT, ); const packets = useStore( @@ -96,7 +97,7 @@ export const ChartSurface = memo( const opts: uPlot.Options = { width: containerRef.current.clientWidth - 32, - height: 250, + height: config.DEFAULT_CHART_HEIGHT, legend: { show: false, }, @@ -118,10 +119,10 @@ export const ChartSurface = memo( ...series.map((p, i) => ({ label: p.variable, stroke: COLORS[i % COLORS.length], - width: 2, + width: config.CHART_LINE_WIDTH, points: { show: true, - size: 2, + size: config.CHART_POINT_SIZE, fill: COLORS[i % COLORS.length], width: 0, }, @@ -228,7 +229,7 @@ export const ChartSurface = memo( uplotRef.current.setSize({ width: width, - height: 250, + height: config.DEFAULT_CHART_HEIGHT, }); } } @@ -256,7 +257,10 @@ export const ChartSurface = memo( return (
-
+
{/* Integrated Status Bar - Pinned Top Right */}
{/* Mode Indicator & Label */} diff --git a/frontend/testing-view/src/features/charts/store/chartsSlice.ts b/frontend/testing-view/src/features/charts/store/chartsSlice.ts index aa1314c61..b74827008 100644 --- a/frontend/testing-view/src/features/charts/store/chartsSlice.ts +++ b/frontend/testing-view/src/features/charts/store/chartsSlice.ts @@ -1,4 +1,5 @@ import type { StateCreator } from "zustand"; +import { config } from "../../../../config"; import { EMPTY_ARRAY } from "../../../constants/emptyArray"; import type { Store } from "../../../store/store"; import type { @@ -67,7 +68,11 @@ export const createChartsSlice: StateCreator = ( ...state.charts, [workspaceId]: [ ...(state.charts[workspaceId] || []), - { id: newChartId, series: [], historyLimit: 200 }, + { + id: newChartId, + series: [], + historyLimit: config.DEFAULT_CHART_HISTORY_LIMIT, + }, ], }, })); diff --git a/frontend/testing-view/src/hooks/useLogger.ts b/frontend/testing-view/src/hooks/useLogger.ts index 24bd69c4a..afa900c2d 100644 --- a/frontend/testing-view/src/hooks/useLogger.ts +++ b/frontend/testing-view/src/hooks/useLogger.ts @@ -1,6 +1,7 @@ import { socketService } from "@workspace/core"; import { useTopic } from "@workspace/ui/hooks"; import { useRef, useState } from "react"; +import { config } from "../../config"; import type { LoggerStatus } from "../types/common/logger"; export function useLogger() { @@ -17,7 +18,7 @@ export function useLogger() { timeoutRef.current = setTimeout(() => { setStatus("error"); timeoutRef.current = null; - }, 2000); + }, config.LOGGER_RESPONSE_TIMEOUT); }; useTopic("logger/response", (isLogging) => { diff --git a/frontend/testing-view/src/store/slices/messagesSlice.ts b/frontend/testing-view/src/store/slices/messagesSlice.ts index e2ff88792..0a9b2d898 100644 --- a/frontend/testing-view/src/store/slices/messagesSlice.ts +++ b/frontend/testing-view/src/store/slices/messagesSlice.ts @@ -1,4 +1,5 @@ import type { StateCreator } from "zustand"; +import { config } from "../../../config"; import type { Message } from "../../types/data/message"; import type { Store } from "../store"; @@ -8,15 +9,16 @@ export interface MessagesSlice { clearMessages: () => void; } -const MAX_MESSAGES = 200; - export const createMessagesSlice: StateCreator = ( set, ) => ({ messages: [], addMessage: (message) => set((state) => ({ - messages: [message, ...state.messages].slice(0, MAX_MESSAGES), + messages: [message, ...state.messages].slice( + 0, + config.MAX_MESSAGES_COUNT, + ), })), clearMessages: () => set({ messages: [] }), }); From 855a4d1f99c537ef3ef2ec54fd88545a73966871 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Thu, 5 Feb 2026 11:59:54 +0100 Subject: [PATCH 12/38] feat: add filtered variables count badge --- .../src/features/workspace/components/LoggerControl.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/frontend/testing-view/src/features/workspace/components/LoggerControl.tsx b/frontend/testing-view/src/features/workspace/components/LoggerControl.tsx index c4ac6d891..f12f0ce94 100644 --- a/frontend/testing-view/src/features/workspace/components/LoggerControl.tsx +++ b/frontend/testing-view/src/features/workspace/components/LoggerControl.tsx @@ -15,6 +15,7 @@ interface LoggerControlProps { export const LoggerControl = ({ disabled }: LoggerControlProps) => { const { status, startLogging, stopLogging } = useLogger(); const openFilterDialog = useStore((s) => s.openFilterDialog); + const filteredCount = useStore((state) => state.getFilteredCount("logs")); useConfirmClose(status === "recording"); @@ -64,7 +65,7 @@ export const LoggerControl = ({ disabled }: LoggerControlProps) => { >
- + Logger @@ -91,12 +92,15 @@ export const LoggerControl = ({ disabled }: LoggerControlProps) => {
From b394cf89adb73660cd83999a7e003bf80db8d26b Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Thu, 5 Feb 2026 12:00:05 +0100 Subject: [PATCH 13/38] docs: some comments --- frontend/testing-view/src/constants/defaultConfig.ts | 2 ++ frontend/testing-view/src/constants/emptyArray.ts | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/frontend/testing-view/src/constants/defaultConfig.ts b/frontend/testing-view/src/constants/defaultConfig.ts index 50813bb64..b8ab862a4 100644 --- a/frontend/testing-view/src/constants/defaultConfig.ts +++ b/frontend/testing-view/src/constants/defaultConfig.ts @@ -1,5 +1,7 @@ import type { ConfigData } from "../types/common/config"; +/** Default configuration for the application. + * Used when the configuration is not found or when opened without electron API. */ export const DEFAULT_CONFIG: ConfigData = { vehicle: { boards: [ diff --git a/frontend/testing-view/src/constants/emptyArray.ts b/frontend/testing-view/src/constants/emptyArray.ts index d562f71b3..ae5a4164b 100644 --- a/frontend/testing-view/src/constants/emptyArray.ts +++ b/frontend/testing-view/src/constants/emptyArray.ts @@ -1,2 +1,2 @@ -// Empty array reference +/** Empty array reference. */ export const EMPTY_ARRAY: unknown[] = []; From 2fdf970fe7a3775092e4fd6e629ea1229d7ac82e Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Thu, 5 Feb 2026 12:00:36 +0100 Subject: [PATCH 14/38] style: change font size --- .../src/features/workspace/components/LoggerControl.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/testing-view/src/features/workspace/components/LoggerControl.tsx b/frontend/testing-view/src/features/workspace/components/LoggerControl.tsx index f12f0ce94..147c08ef1 100644 --- a/frontend/testing-view/src/features/workspace/components/LoggerControl.tsx +++ b/frontend/testing-view/src/features/workspace/components/LoggerControl.tsx @@ -98,7 +98,7 @@ export const LoggerControl = ({ disabled }: LoggerControlProps) => { disabled={disabled || status === "loading" || status === "recording"} > - + {filteredCount} From 49b66bff2b050cbdd7dfc0ef1ff6516c9e102acc Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Thu, 5 Feb 2026 13:04:28 +0100 Subject: [PATCH 15/38] docs: add more comments to constants folder --- .../testing-view/src/constants/acronyms.ts | 8 +++++--- frontend/testing-view/src/constants/boards.ts | 19 +++++++++---------- .../src/constants/defaultConfig.ts | 2 +- .../src/constants/loggerControlConfig.tsx | 1 + .../src/constants/messageKindColors.ts | 11 ++++++----- frontend/testing-view/src/constants/pages.ts | 2 ++ .../src/constants/settingsSchema.ts | 13 +++---------- .../src/constants/variablesBadgeClasses.ts | 7 ++++--- .../components/FilterCategoryItem.tsx | 6 +++++- frontend/testing-view/src/lib/utils.ts | 4 ++-- .../testing-view/src/types/common/settings.ts | 7 ++++--- 11 files changed, 42 insertions(+), 38 deletions(-) diff --git a/frontend/testing-view/src/constants/acronyms.ts b/frontend/testing-view/src/constants/acronyms.ts index c69c72bbb..52552c31a 100644 --- a/frontend/testing-view/src/constants/acronyms.ts +++ b/frontend/testing-view/src/constants/acronyms.ts @@ -1,5 +1,7 @@ -// Special cases for acronyms that should stay uppercase for format name function -export const acronyms = [ +/** + * Special cases for acronyms that should stay uppercase for format name function + */ +export const ACRONYMS = [ "SOC", "SOH", "CAN", @@ -20,4 +22,4 @@ export const acronyms = [ "BMS", "LDU", "SVPWM", -]; +] as const; diff --git a/frontend/testing-view/src/constants/boards.ts b/frontend/testing-view/src/constants/boards.ts index 0f49db77b..68a8a4127 100644 --- a/frontend/testing-view/src/constants/boards.ts +++ b/frontend/testing-view/src/constants/boards.ts @@ -1,11 +1,10 @@ -import type { BoardName } from "../types/data/board"; - -export const BOARD_NAMES: BoardName[] = [ - "BCU", - "PCU", - "LCU", - "HVSCU", - "BMSL", - "VCU", - "HVSCU-Cabinet", +/** List of names of available boards. */ +export const BOARD_NAMES: readonly string[] = [ + "BCU", // Battery Control Unit + "PCU", // Propulsion Control Unit + "LCU", // Levitation Control Unit + "HVSCU", // High Voltage System Control Unit + "BMSL", // Battery Management System Level + "VCU", // Vehicle Control Unit + "HVSCU-Cabinet", // High Voltage System Control Unit Cabinet ]; diff --git a/frontend/testing-view/src/constants/defaultConfig.ts b/frontend/testing-view/src/constants/defaultConfig.ts index b8ab862a4..a7e0bb6b0 100644 --- a/frontend/testing-view/src/constants/defaultConfig.ts +++ b/frontend/testing-view/src/constants/defaultConfig.ts @@ -1,6 +1,6 @@ import type { ConfigData } from "../types/common/config"; -/** Default configuration for the application. +/** Default configuration for the backend in settings form. * Used when the configuration is not found or when opened without electron API. */ export const DEFAULT_CONFIG: ConfigData = { vehicle: { diff --git a/frontend/testing-view/src/constants/loggerControlConfig.tsx b/frontend/testing-view/src/constants/loggerControlConfig.tsx index baeafcea6..03127b9e4 100644 --- a/frontend/testing-view/src/constants/loggerControlConfig.tsx +++ b/frontend/testing-view/src/constants/loggerControlConfig.tsx @@ -8,6 +8,7 @@ interface LoggerControlOption { className: string; } +/** Appearance configuration for the logger control state. */ export const LOGGER_CONTROL_CONFIG: Record = { standby: { diff --git a/frontend/testing-view/src/constants/messageKindColors.ts b/frontend/testing-view/src/constants/messageKindColors.ts index 74909decd..d7d6e6123 100644 --- a/frontend/testing-view/src/constants/messageKindColors.ts +++ b/frontend/testing-view/src/constants/messageKindColors.ts @@ -1,8 +1,9 @@ import type { Message } from "../types/data/message"; +/** Colors for the message kind badges in the messages section. */ export const MESSAGE_KIND_COLORS: Record = { - info: "border-blue-500 hover:bg-blue-500/5", - warning: "border-yellow-500 hover:bg-yellow-500/5", - fault: "border-red-500 hover:bg-red-500/5", - ok: "border-green-500 hover:bg-green-500/5", - }; \ No newline at end of file + info: "border-blue-500 hover:bg-blue-500/5", + warning: "border-yellow-500 hover:bg-yellow-500/5", + fault: "border-red-500 hover:bg-red-500/5", + ok: "border-green-500 hover:bg-green-500/5", +}; diff --git a/frontend/testing-view/src/constants/pages.ts b/frontend/testing-view/src/constants/pages.ts index 0d3aaf96b..82867a064 100644 --- a/frontend/testing-view/src/constants/pages.ts +++ b/frontend/testing-view/src/constants/pages.ts @@ -1,10 +1,12 @@ import { FlaskConical, ScrollText } from "@workspace/ui/icons"; +/** Pages of the application showed in the left sidebar. */ export const PAGES = { "/": { title: "Testing", icon: FlaskConical }, "/logs": { title: "Logs", icon: ScrollText }, }; +/** Pages of the application showed in the left sidebar. The same thing as `PAGES` but in the array format. */ export const PAGES_ARRAY = Object.entries(PAGES).map( ([url, { title, icon }]) => ({ title, icon, url }), ); diff --git a/frontend/testing-view/src/constants/settingsSchema.ts b/frontend/testing-view/src/constants/settingsSchema.ts index ef4a366d6..eecc75f85 100644 --- a/frontend/testing-view/src/constants/settingsSchema.ts +++ b/frontend/testing-view/src/constants/settingsSchema.ts @@ -1,5 +1,7 @@ import type { SettingsSection } from "../types/common/settings"; +import { BOARD_NAMES } from "./boards"; +/** Settings form is generated from this schema. */ export const SETTINGS_SCHEMA: SettingsSection[] = [ { title: "Vehicle Configuration", @@ -8,16 +10,7 @@ export const SETTINGS_SCHEMA: SettingsSection[] = [ label: "Boards", path: "vehicle.boards", type: "multi-checkbox", - options: [ - "BCU", - "BMSL", - "HVSCU", - "HVSCU-Cabinet", - "LCU", - "PCU", - "VCU", - "BLCU", - ], + options: BOARD_NAMES as string[], }, ], }, diff --git a/frontend/testing-view/src/constants/variablesBadgeClasses.ts b/frontend/testing-view/src/constants/variablesBadgeClasses.ts index 6c4706a8c..4c1e7484f 100644 --- a/frontend/testing-view/src/constants/variablesBadgeClasses.ts +++ b/frontend/testing-view/src/constants/variablesBadgeClasses.ts @@ -1,4 +1,7 @@ -const variablesBadgeClasses = { +/** + * Classes for the badge showed at the left side of the variable item in the telemetry tab. + */ +export const variablesBadgeClasses = { float: "bg-sky-500/20 text-sky-400 border-sky-500/40 dark:bg-sky-500/15 dark:text-sky-300", integer: @@ -11,5 +14,3 @@ const variablesBadgeClasses = { unknown: "bg-slate-500/20 text-slate-400 border-slate-500/40 dark:bg-slate-500/15 dark:text-slate-300", }; - -export { variablesBadgeClasses }; diff --git a/frontend/testing-view/src/features/filtering/components/FilterCategoryItem.tsx b/frontend/testing-view/src/features/filtering/components/FilterCategoryItem.tsx index 51478c254..747f80aff 100644 --- a/frontend/testing-view/src/features/filtering/components/FilterCategoryItem.tsx +++ b/frontend/testing-view/src/features/filtering/components/FilterCategoryItem.tsx @@ -11,7 +11,11 @@ import { useStore } from "../../../store/store"; import type { BoardName } from "../../../types/data/board"; import { FilterItem } from "./FilterItem"; -export const FilterCategoryItem = ({ category }: { category: BoardName }) => { +interface FilterCategoryItemProps { + category: BoardName; +} + +export const FilterCategoryItem = ({ category }: FilterCategoryItemProps) => { const [isExpanded, setIsExpanded] = useState(false); const { scope } = useStore((s) => s.filterDialog); if (!scope) return null; diff --git a/frontend/testing-view/src/lib/utils.ts b/frontend/testing-view/src/lib/utils.ts index 629263f43..fe0306338 100644 --- a/frontend/testing-view/src/lib/utils.ts +++ b/frontend/testing-view/src/lib/utils.ts @@ -1,4 +1,4 @@ -import { acronyms } from "../constants/acronyms"; +import { ACRONYMS } from "../constants/acronyms"; import { BOARD_NAMES } from "../constants/boards"; import { variablesBadgeClasses } from "../constants/variablesBadgeClasses"; import type { @@ -95,7 +95,7 @@ export const formatName = (name: string): string => { .map((word) => { const upperWord = word.toUpperCase(); // Check if word is an acronym - if (acronyms.includes(upperWord)) { + if (ACRONYMS.includes(upperWord as (typeof ACRONYMS)[number])) { return upperWord; } diff --git a/frontend/testing-view/src/types/common/settings.ts b/frontend/testing-view/src/types/common/settings.ts index bbe3e20df..aa9489ed8 100644 --- a/frontend/testing-view/src/types/common/settings.ts +++ b/frontend/testing-view/src/types/common/settings.ts @@ -28,16 +28,17 @@ export interface FieldProps { * One item of the settings schema from config.toml. */ export interface SettingField { - /** Label of the field */ + /** Label of the field. The text showed above the field itself. */ label: string; - /** Type of the field */ + /** Type of the field. It affects what kind of component is showed in the interface.\ + * **E.g.** checkboxes or multiple choice section. */ type: FieldType; /** Options of the field */ options?: string[]; - /** Placeholder of the field */ + /** Placeholder of the field. The text showed inside the field when it is empty. */ placeholder?: string; /** Path to the field in the config.toml configuration.\ From 48972ea34e191c4881f8c8dfd5cea08071564e09 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Thu, 5 Feb 2026 13:22:05 +0100 Subject: [PATCH 16/38] refact: change some interfaces to types and fix any types --- .../components/settings/SettingsDialog.tsx | 3 ++- .../src/components/settings/SettingsForm.tsx | 9 +++------ .../charts/components/SortableChart.tsx | 9 ++++++++- .../charts/components/TelemetryChart.tsx | 6 ++++-- .../testing-view/src/types/common/config.ts | 4 ++-- .../src/types/common/connection.ts | 4 ++-- .../testing-view/src/types/common/item.ts | 8 ++++---- .../testing-view/src/types/common/settings.ts | 8 ++++---- frontend/testing-view/src/types/data/board.ts | 20 +++++++++---------- .../src/types/data/commandCatalogItem.ts | 20 +++++++++---------- .../testing-view/src/types/data/message.ts | 12 +++++------ .../src/types/data/telemetryCatalogItem.ts | 8 ++++---- .../src/types/data/transformedBoards.ts | 4 ++-- 13 files changed, 61 insertions(+), 54 deletions(-) diff --git a/frontend/testing-view/src/components/settings/SettingsDialog.tsx b/frontend/testing-view/src/components/settings/SettingsDialog.tsx index 895b9053b..a9742f27f 100644 --- a/frontend/testing-view/src/components/settings/SettingsDialog.tsx +++ b/frontend/testing-view/src/components/settings/SettingsDialog.tsx @@ -14,13 +14,14 @@ import { } from "../../../../frontend-kit/ui/src/icons/notifications"; import { DEFAULT_CONFIG } from "../../constants/defaultConfig"; import { useStore } from "../../store/store"; +import type { ConfigData } from "../../types/common/config"; import { SettingsForm } from "./SettingsForm"; export const SettingsDialog = () => { const isSettingsOpen = useStore((s) => s.isSettingsOpen); const setSettingsOpen = useStore((s) => s.setSettingsOpen); const setRestarting = useStore((s) => s.setRestarting); - const [localConfig, setLocalConfig] = useState(null); + const [localConfig, setLocalConfig] = useState(null); const [isSynced, setIsSynced] = useState(false); const loadConfig = async () => { diff --git a/frontend/testing-view/src/components/settings/SettingsForm.tsx b/frontend/testing-view/src/components/settings/SettingsForm.tsx index bca848233..96357b57e 100644 --- a/frontend/testing-view/src/components/settings/SettingsForm.tsx +++ b/frontend/testing-view/src/components/settings/SettingsForm.tsx @@ -1,5 +1,6 @@ import { get, set } from "lodash"; import { SETTINGS_SCHEMA } from "../../constants/settingsSchema"; +import type { ConfigData } from "../../types/common/config"; import type { SettingField } from "../../types/common/settings"; import { BooleanField } from "./BooleanField"; import { MultiCheckboxField } from "./MultiCheckboxField"; @@ -7,13 +8,9 @@ import { PathField } from "./PathField"; import { SelectField } from "./SelectField"; import { TextField } from "./TextField"; -interface SettingsConfig { - [key: string]: SettingField; -} - interface SettingsFormProps { - config: SettingsConfig; - onChange: (newConfig: SettingsConfig) => void; + config: ConfigData; + onChange: (newConfig: ConfigData) => void; } export const SettingsForm = ({ config, onChange }: SettingsFormProps) => { diff --git a/frontend/testing-view/src/features/charts/components/SortableChart.tsx b/frontend/testing-view/src/features/charts/components/SortableChart.tsx index f19a20629..76efbfc37 100644 --- a/frontend/testing-view/src/features/charts/components/SortableChart.tsx +++ b/frontend/testing-view/src/features/charts/components/SortableChart.tsx @@ -1,7 +1,14 @@ import { useSortable } from "@dnd-kit/sortable"; import { CSS } from "@dnd-kit/utilities"; +import type { WorkspaceChartSeries } from "../types/charts"; import { TelemetryChart } from "./TelemetryChart"; -export function SortableChart({ id, series }: { id: string; series: any[] }) { + +interface SortableChartProps { + id: string; + series: WorkspaceChartSeries[]; +} + +export function SortableChart({ id, series }: SortableChartProps) { const { setNodeRef, attributes, diff --git a/frontend/testing-view/src/features/charts/components/TelemetryChart.tsx b/frontend/testing-view/src/features/charts/components/TelemetryChart.tsx index 3e84b721c..2dd8fa14d 100644 --- a/frontend/testing-view/src/features/charts/components/TelemetryChart.tsx +++ b/frontend/testing-view/src/features/charts/components/TelemetryChart.tsx @@ -1,3 +1,5 @@ +import type { DraggableAttributes } from "@dnd-kit/core"; +import type { SyntheticListenerMap } from "@dnd-kit/core/dist/hooks/utilities"; import { GripVertical, Trash2 } from "@workspace/ui/icons"; import { cn } from "@workspace/ui/lib/utils"; import { useState } from "react"; @@ -12,8 +14,8 @@ interface TelemetryChartProps { series: WorkspaceChartSeries[]; isDragging: boolean; isOver?: boolean; - dragAttributes?: any; - dragListeners?: any; + dragAttributes?: DraggableAttributes; + dragListeners?: SyntheticListenerMap; } /** diff --git a/frontend/testing-view/src/types/common/config.ts b/frontend/testing-view/src/types/common/config.ts index 0f2a862fa..762205aab 100644 --- a/frontend/testing-view/src/types/common/config.ts +++ b/frontend/testing-view/src/types/common/config.ts @@ -6,8 +6,8 @@ export type ConfigField = string | string[] | number | boolean; /** * Configuration type used in app slice to store values from the form. */ -export interface ConfigData { +export type ConfigData = { [section: string]: { [field: string]: ConfigField; }; -} +}; diff --git a/frontend/testing-view/src/types/common/connection.ts b/frontend/testing-view/src/types/common/connection.ts index 56a4c4445..9795d945a 100644 --- a/frontend/testing-view/src/types/common/connection.ts +++ b/frontend/testing-view/src/types/common/connection.ts @@ -1,10 +1,10 @@ /** * One connection to the vehicle. */ -export interface Connection { +export type Connection = { /** Name of the connection */ name: string; /** Whether the connection is established */ isConnected: boolean; -} +}; diff --git a/frontend/testing-view/src/types/common/item.ts b/frontend/testing-view/src/types/common/item.ts index fd320b5ef..3acf4445d 100644 --- a/frontend/testing-view/src/types/common/item.ts +++ b/frontend/testing-view/src/types/common/item.ts @@ -1,18 +1,18 @@ /** * Raw item from the catalog (commands or telemetry) as it arrives from the backend. */ -export interface Item { +export type Item = { /** Unique (If firmware fixes it) ID of the item from ADJ */ id: number; /** Name of the item from ADJ */ name: string; -} +}; /** * Item from the catalog (commands or telemetry) with my label. */ -export interface CatalogItem extends Item { +export type CatalogItem = Item & { /** Label of the item generated from the name on frontend startup */ label: string; -} +}; diff --git a/frontend/testing-view/src/types/common/settings.ts b/frontend/testing-view/src/types/common/settings.ts index aa9489ed8..10a744b44 100644 --- a/frontend/testing-view/src/types/common/settings.ts +++ b/frontend/testing-view/src/types/common/settings.ts @@ -27,7 +27,7 @@ export interface FieldProps { /** * One item of the settings schema from config.toml. */ -export interface SettingField { +export type SettingField = { /** Label of the field. The text showed above the field itself. */ label: string; @@ -45,15 +45,15 @@ export interface SettingField { * **Note:** it should match config.toml section and variable name.\ * **E.g.** `vehicle.boards` or `adj.branch`. */ path: string; -} +}; /** * One section of the settings from config.toml. */ -export interface SettingsSection { +export type SettingsSection = { /** Title of the section */ title: string; /** Fields of the section */ fields: SettingField[]; -} +}; diff --git a/frontend/testing-view/src/types/data/board.ts b/frontend/testing-view/src/types/data/board.ts index 4c92463ad..421eabc3a 100644 --- a/frontend/testing-view/src/types/data/board.ts +++ b/frontend/testing-view/src/types/data/board.ts @@ -10,36 +10,36 @@ export type BoardName = string; /** * Common properties of boards. */ -export interface BoardData { +export type BoardData = { name: BoardName; -} +}; /** * Basically ADJ telemetry packets definition from the backend. */ -export interface BoardPacketsData extends BoardData { +export type BoardPacketsData = BoardData & { /** List of telemetry packets (also referred as packets in some places) */ packets: TelemetryCatalogItem[]; -} +}; /** * Basically ADJ commands definition from the backend. */ -export interface BoardOrdersData extends BoardData { +export type BoardOrdersData = BoardData & { /** List of commands (also referred as orders in some places) */ orders: CommandCatalogItem[]; -} +}; /** * Final type of the result of the packets fetching. */ -export interface PacketsData { +export type PacketsData = { boards: BoardPacketsData[]; -} +}; /** * Final type of the result of the commands fetching. */ -export interface OrdersData { +export type OrdersData = { boards: BoardOrdersData[]; -} +}; diff --git a/frontend/testing-view/src/types/data/commandCatalogItem.ts b/frontend/testing-view/src/types/data/commandCatalogItem.ts index 923b2fae4..71d9aa193 100644 --- a/frontend/testing-view/src/types/data/commandCatalogItem.ts +++ b/frontend/testing-view/src/types/data/commandCatalogItem.ts @@ -3,42 +3,42 @@ import type { CatalogItem, Item } from "../common/item"; /** * Params of a command. */ -export interface CommandParameter { +export type CommandParameter = { kind: string; id: string; name: string; type: string; -} +}; /** * Numeric parameter has safe and warning ranges. */ -export interface NumericCommandParameter extends CommandParameter { +export type NumericCommandParameter = CommandParameter & { safeRange: (number | null)[]; warningRange: (number | null)[]; -} +}; /** * Enum parameter has options. */ -export interface EnumCommandParameter extends CommandParameter { +export type EnumCommandParameter = CommandParameter & { options: string[]; -} +}; /** * Map of parameter id to parameter type of a command.\ * Each parameter can be either numeric or enum. */ -export interface CommandParameters { +export type CommandParameters = { [key: string]: NumericCommandParameter | EnumCommandParameter; -} +}; /** * Definition of a command packet as it arrives from the backend. */ -export interface RawOrder extends Item { +export type RawOrder = Item & { fields: CommandParameters; -} +}; /** * Definition of a command catalog item as it arrives from the backend and my label. diff --git a/frontend/testing-view/src/types/data/message.ts b/frontend/testing-view/src/types/data/message.ts index 7d8c2998a..45cbe70e7 100644 --- a/frontend/testing-view/src/types/data/message.ts +++ b/frontend/testing-view/src/types/data/message.ts @@ -6,7 +6,7 @@ import type { BoardName } from "./board"; * Because seconds basically don't tell us anything in the context of high-frequency systems * and counter only means uniqueness considering the same packet type */ -export interface MessageTimestamp { +export type MessageTimestamp = { /** Counter which is incremented by 1 every time packet of one type is generated,\ * but it can be the same between different packet types */ @@ -17,7 +17,7 @@ export interface MessageTimestamp { day: number; month: number; year: number; -} +}; /** * Possible payloads for a `ok`, `warning` and `fault` messages. @@ -39,7 +39,7 @@ export type DetailedPayload = /** * Definition of a MessagePacket as it arrives from the backend. */ -export interface MessagePacket { +export type MessagePacket = { /** Message type */ kind: "info" | "warning" | "fault" | "ok"; /** For `info` messages, the payload is a string. @@ -49,12 +49,12 @@ export interface MessagePacket { board: BoardName; name: string; timestamp: MessageTimestamp; -} +}; /** * Message definition on frontend. */ -export interface Message extends MessagePacket { +export type Message = MessagePacket & { /** Unique message id generated on frontend for React keys */ id: string; -} +}; diff --git a/frontend/testing-view/src/types/data/telemetryCatalogItem.ts b/frontend/testing-view/src/types/data/telemetryCatalogItem.ts index a51593d90..25e98ec11 100644 --- a/frontend/testing-view/src/types/data/telemetryCatalogItem.ts +++ b/frontend/testing-view/src/types/data/telemetryCatalogItem.ts @@ -3,12 +3,12 @@ import type { CatalogItem, Item } from "../common/item"; /** * Variable definition. Sometimes also called Measurement. This is the same thing. */ -export interface Variable { +export type Variable = { id: string; name: string; type: string; units?: string; -} +}; export interface NumericVariable extends Variable { safeRange: (number | null)[]; @@ -29,14 +29,14 @@ export type TelemetryVariable = /** * Definition of a telemetry packet as it arrives from the backend. */ -export interface RawPacket extends Item { +export type RawPacket = Item & { count: number; cycleTime: number; type: string; measurements: TelemetryVariable[]; /** Currently unused (always equals to "000000" placeholder on the backend) */ hexValue: string; -} +}; /** * Definition of a telemetry catalog item as it arrives from the backend and my label. diff --git a/frontend/testing-view/src/types/data/transformedBoards.ts b/frontend/testing-view/src/types/data/transformedBoards.ts index 38e9658ea..bfd76b025 100644 --- a/frontend/testing-view/src/types/data/transformedBoards.ts +++ b/frontend/testing-view/src/types/data/transformedBoards.ts @@ -6,7 +6,7 @@ import type { TelemetryCatalogItem } from "./telemetryCatalogItem"; * Final result of the useBoardData hook and boards transformation.\ * This is the format I actually use */ -export interface TransformedBoards { +export type TransformedBoards = { /** Map of board name to list of telemetry catalog items */ telemetryCatalog: Record; @@ -15,4 +15,4 @@ export interface TransformedBoards { /** Set of all available boards (not used for now) */ boards: Set; -} +}; From 5a0c4763d637ea33fd5044ec03b2ab6750bba1c1 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Thu, 5 Feb 2026 13:53:16 +0100 Subject: [PATCH 17/38] fix: charts created with "add chart" button had fixed size --- .../src/features/charts/components/ChartSurface.tsx | 8 -------- 1 file changed, 8 deletions(-) diff --git a/frontend/testing-view/src/features/charts/components/ChartSurface.tsx b/frontend/testing-view/src/features/charts/components/ChartSurface.tsx index 868c5fbff..969a13298 100644 --- a/frontend/testing-view/src/features/charts/components/ChartSurface.tsx +++ b/frontend/testing-view/src/features/charts/components/ChartSurface.tsx @@ -242,14 +242,6 @@ export const ChartSurface = memo( }; }, []); - if (series.length === 0) { - return ( -
- Add a variable here to start visualizing data -
- ); - } - const latestCount = historyRef.current[historyRef.current.length - 1]?.count ?? 0; const currentMax = uplotRef.current?.scales.x.max ?? 0; From 70cbcf8c3b2b8236dce7124d84821f5569bd7a73 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Thu, 5 Feb 2026 16:36:06 +0100 Subject: [PATCH 18/38] style: change default layout --- .../workspace/components/rightSidebar/RightSidebarContent.tsx | 2 +- .../src/features/workspace/store/rightSidebarSlice.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/testing-view/src/features/workspace/components/rightSidebar/RightSidebarContent.tsx b/frontend/testing-view/src/features/workspace/components/rightSidebar/RightSidebarContent.tsx index badc737c1..d8b62dbc4 100644 --- a/frontend/testing-view/src/features/workspace/components/rightSidebar/RightSidebarContent.tsx +++ b/frontend/testing-view/src/features/workspace/components/rightSidebar/RightSidebarContent.tsx @@ -27,7 +27,7 @@ export const RightSidebarContent = ({}: RightSidebarContentProps) => { return ( diff --git a/frontend/testing-view/src/features/workspace/store/rightSidebarSlice.ts b/frontend/testing-view/src/features/workspace/store/rightSidebarSlice.ts index 29be2806e..c9ce7a61e 100644 --- a/frontend/testing-view/src/features/workspace/store/rightSidebarSlice.ts +++ b/frontend/testing-view/src/features/workspace/store/rightSidebarSlice.ts @@ -32,8 +32,8 @@ export const createRightSidebarSlice: StateCreator< toggleMessages: () => set({ isMessagesVisible: !get().isMessagesVisible }), // Layout settings - isHorizontal: true, - isSplit: false, + isHorizontal: false, + isSplit: true, toggleLayout: () => set({ isHorizontal: !get().isHorizontal }), toggleSplit: () => set({ isSplit: !get().isSplit }), From 91eec34652389a7f7c2c141241f226e3caff0273 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Thu, 5 Feb 2026 16:43:29 +0100 Subject: [PATCH 19/38] style: fix paddings in the right sidebar --- .../components/rightSidebar/sections/TabsSection.tsx | 8 ++++---- .../workspace/components/rightSidebar/tabs/Tab.tsx | 2 +- .../workspace/components/rightSidebar/tabs/TabHeader.tsx | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/frontend/testing-view/src/features/workspace/components/rightSidebar/sections/TabsSection.tsx b/frontend/testing-view/src/features/workspace/components/rightSidebar/sections/TabsSection.tsx index 502be99a8..f402076b6 100644 --- a/frontend/testing-view/src/features/workspace/components/rightSidebar/sections/TabsSection.tsx +++ b/frontend/testing-view/src/features/workspace/components/rightSidebar/sections/TabsSection.tsx @@ -43,7 +43,7 @@ const TabsSection = ({ isSplit }: TabsSectionProps) => { defaultLayout={{ telemetry: 50, commands: 50 }} > -
+
{ -
+
{ { { const filteredCount = useStore((state) => state.getFilteredCount(scope)); return ( -
+

{title} From f5c2c6d81afb9d7f73d64f32c9128584977cea41 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Wed, 11 Feb 2026 15:46:40 +0100 Subject: [PATCH 20/38] feat: make build work with new electron --- .github/workflows/build.yaml | 557 +++++++++-------------------------- electron-app/package.json | 3 +- 2 files changed, 134 insertions(+), 426 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 2594970f7..3387dd908 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -10,238 +10,76 @@ on: workflow_dispatch: inputs: rebuild-backend: - description: Build backend binaries + description: Force rebuild backend type: boolean - default: true - rebuild-control-station: - description: Build control station frontend + default: false + rebuild-testing-view: + description: Force rebuild testing-view type: boolean - default: true - rebuild-ethernet-view: - description: Build ethernet view frontend + default: false + rebuild-competition-view: + description: Force rebuild competition-view type: boolean - default: true - workflow_call: - inputs: - build-backend: - description: Build backend binaries - type: boolean - default: true - required: false - build-control-station: - description: Build control station frontend - type: boolean - default: true - required: false - build-ethernet-view: - description: Build ethernet view frontend - type: boolean - default: true - required: false + default: false + # workflow_call: + # inputs: + # build-backend: + # description: Build backend binaries + # type: boolean + # default: false + # required: false + # build-testing-view: + # description: Build testing-view + # type: boolean + # default: false + # required: false + # build-competition-view: + # description: Build competition-view + # type: boolean + # default: false + # required: false jobs: - # Detect what changed + # ------------------------------------------------------------------ + # 1. DETECT CHANGES + # Checks which parts of the codebase changed to avoid unnecessary builds + # ------------------------------------------------------------------ detect-changes: name: Detect Changes runs-on: ubuntu-latest - # We can't use this condition here because it would skip the whole job without setting the outputs - # if: github.event_name == 'push' || github.event_name == 'pull_request' - # Insted, we skip steps inside the job outputs: - backend_needs_rebuild: ${{ steps.changes.outputs.backend_any_changed == 'true' || github.event.inputs.rebuild-backend == 'true' }} - control-station_needs_rebuild: ${{ steps.changes.outputs.control-station_any_changed == 'true' || github.event.inputs.rebuild-control-station == 'true' }} - ethernet-view_needs_rebuild: ${{ steps.changes.outputs.ethernet-view_any_changed == 'true' || github.event.inputs.rebuild-ethernet-view == 'true' }} - common-front_needs_rebuild: ${{ steps.changes.outputs.common-front_any_changed == 'true' || github.event.inputs.rebuild-common-front == 'true' }} + backend: ${{ steps.filter.outputs.backend == 'true' || github.event.inputs.rebuild-backend == 'true' || inputs.build-backend == true }} + testing-view: ${{ steps.filter.outputs.testing-view == 'true' || github.event.inputs.rebuild-testing-view == 'true' || inputs.build-testing-view == true }} + competition-view: ${{ steps.filter.outputs.competition-view == 'true' || github.event.inputs.rebuild-competition-view == 'true' || inputs.build-competition-view == true }} steps: - # Only run on push or pull request events - # Skip on workflow_call or workflow_dispatch - - name: Checkout repository - if: github.event_name == 'push' || github.event_name == 'pull_request' - uses: actions/checkout@v4 - with: - fetch-depth: 0 + - uses: actions/checkout@v4 - # Only run on push or pull request events - # Skip on workflow_call or workflow_dispatch - - name: Detect changed files - if: github.event_name == 'push' || github.event_name == 'pull_request' - id: changes - uses: tj-actions/changed-files@v41 + - uses: dorny/paths-filter@v3 + id: filter with: - files_yaml: | + filters: | backend: - 'backend/**/*' - control-station: - - 'control-station/**/*' - ethernet-view: - - 'ethernet-view/**/*' - common-front: - - 'common-front/**/*' - - # We want to set outputs even if the job should be skipped - - name: Set outputs - id: set-outputs - run: | - if [ "${{ github.event_name }}" = "push" ] || [ "${{ github.event_name }}" = "pull_request" ]; then - echo "backend_needs_rebuild=${{ steps.changes.outputs.backend_any_changed == 'true' && 'true' || 'false' }}" >> $GITHUB_OUTPUT - echo "control-station_needs_rebuild=${{ steps.changes.outputs.control-station_any_changed == 'true' || steps.changes.outputs.common-front_any_changed == 'true' && 'true' || 'false' }}" >> $GITHUB_OUTPUT - echo "ethernet-view_needs_rebuild=${{ steps.changes.outputs.ethernet-view_any_changed == 'true' || steps.changes.outputs.common-front_any_changed == 'true' && 'true' || 'false' }}" >> $GITHUB_OUTPUT - echo "common-front_needs_rebuild=${{ steps.changes.outputs.common-front_any_changed == 'true' && 'true' || 'false' }}" >> $GITHUB_OUTPUT - else - # On workflow_call/dispatch, default to false (no changes detected) - echo "backend_needs_rebuild=false" >> $GITHUB_OUTPUT - echo "control-station_needs_rebuild=false" >> $GITHUB_OUTPUT - echo "ethernet-view_needs_rebuild=false" >> $GITHUB_OUTPUT - echo "common-front_needs_rebuild=false" >> $GITHUB_OUTPUT - fi - - - name: Debug changed files - if: github.event_name == 'push' || github.event_name == 'pull_request' - run: | - echo "Changed backend: ${{ steps.changes.outputs.backend_any_changed }}" - echo "Changed control-station: ${{ steps.changes.outputs.control-station_any_changed }}" - echo "Changed ethernet-view: ${{ steps.changes.outputs.ethernet-view_any_changed }}" - echo "Changed common-front: ${{ steps.changes.outputs.common-front_any_changed }}" - - # Download backend from previous build if no changes - download-backend: - name: Download Backend - ${{ matrix.platform }} - needs: detect-changes - # It is important to use != 'true' and not == 'false' because if they are no inputs (executed on push or pull request events), - # values for inputs will be undefined which gives false for any condition - # The same thing applies for detect changes outputs, because we skip this job on dispatch and call events - # Thus, it's outputs are undefined - if: | - needs.detect-changes.outputs.backend_needs_rebuild != 'true' && - inputs.build-backend != 'true' - runs-on: ubuntu-latest - # Continue on error is necessary because download-backend job can fail if backend artifact is not found - # and in this case it is not necessarily has to fail the build - continue-on-error: true - outputs: - downloaded: ${{ steps.download.outcome == 'success' }} - strategy: - fail-fast: false - matrix: - platform: [linux, windows, macos-intel, macos-arm64] - - steps: - - name: Download backend from latest build - id: download - uses: dawidd6/action-download-artifact@v3 - with: - workflow: build.yaml - branch: production - workflow_conclusion: "completed" - name: backend-${{ matrix.platform }} - path: backend-artifacts - if_no_artifact_found: fail - - - name: Re-upload backend artifact - if: steps.download.outcome == 'success' - uses: actions/upload-artifact@v4 - with: - name: backend-${{ matrix.platform }} - path: backend-artifacts/* - retention-days: 30 - - - name: Write matrix output - if: always() - uses: cloudposse/github-action-matrix-outputs-write@v1 - with: - matrix-step-name: download-backend - matrix-key: ${{ matrix.platform }} - outputs: | - downloaded: ${{ steps.download.outcome == 'success' }} - - # Aggregate download results - aggregate-downloads: - name: Aggregate Download Results - # Always run to ensure outputs are always available - if: always() - needs: [detect-changes, download-backend] - runs-on: ubuntu-latest - steps: - - name: Set defaults if backend changed - id: set-defaults - run: | - # If backend changed or build-backend is explicitly requested, set defaults and skip aggregation - if [ "${{ needs.detect-changes.outputs.backend_needs_rebuild }}" = "true" ] || [ "${{ inputs.build-backend }}" = "true" ]; then - echo "any_needs_rebuild=false" >> $GITHUB_OUTPUT - echo 'result={"downloaded":{"linux":false,"windows":false,"macos-intel":false,"macos-arm64":false}}' >> $GITHUB_OUTPUT - echo "Backend changed or build requested, using defaults" - fi - shell: bash - - - uses: cloudposse/github-action-matrix-outputs-read@v1 - id: read - if: needs.detect-changes.outputs.backend_needs_rebuild != 'true' && inputs.build-backend != 'true' - with: - matrix-step-name: download-backend - - - name: Check if any platform needs rebuild - if: needs.detect-changes.outputs.backend_needs_rebuild != 'true' && inputs.build-backend != 'true' - id: check-rebuild - run: | - # Parse the result JSON to check if any download failed - RESULT='${{ steps.read.outputs.result }}' - echo "Parsing result: $RESULT" - - # Check if any platform has downloaded=false - # The result format is: {downloaded:{linux:true,windows:false,...}} - if echo "$RESULT" | grep -q '"downloaded".*"linux":false' || \ - echo "$RESULT" | grep -q '"downloaded".*"windows":false' || \ - echo "$RESULT" | grep -q '"downloaded".*"macos-intel":false' || \ - echo "$RESULT" | grep -q '"downloaded".*"macos-arm64":false'; then - echo "any_needs_rebuild=true" >> $GITHUB_OUTPUT - echo "At least one platform download failed, rebuild needed" - else - echo "any_needs_rebuild=false" >> $GITHUB_OUTPUT - echo "All platform downloads succeeded, no rebuild needed" - fi - shell: bash - - - name: Debug aggregate-downloads outputs - if: always() - run: | - echo "=== aggregate-downloads Debug ===" - echo "inputs.build-backend: ${{ inputs.build-backend }}" - echo "" - echo "=== detect-changes outputs ===" - echo "needs.detect-changes.outputs.backend_needs_rebuild: ${{ needs.detect-changes.outputs.backend_needs_rebuild }}" - echo "needs.detect-changes.outcome: ${{ needs.detect-changes.outcome }}" - echo "" - echo "=== aggregate-downloads Debug ===" - echo "steps.read.outputs.result: ${{ steps.read.outputs.result }}" - echo "steps.read.outcome: ${{ steps.read.outcome }}" - echo "" - echo "=== All read outputs ===" - echo "${{ toJSON(steps.read.outputs) }}" - echo "" - echo "=== download-backend outcomes ===" - echo "needs.download-backend.outcome: ${{ needs.download-backend.outcome }}" - outputs: - outcome: ${{ steps.read.outcome != '' && steps.read.outcome || 'skipped' }} - any_needs_rebuild: ${{ steps.check-rebuild.outputs.any_needs_rebuild != '' && steps.check-rebuild.outputs.any_needs_rebuild || steps.set-defaults.outputs.any_needs_rebuild || 'false' }} - result: ${{ steps.read.outputs.result != '' && steps.read.outputs.result || steps.set-defaults.outputs.result || '{"downloaded":{"linux":false,"windows":false,"macos-intel":false,"macos-arm64":false}}' }} - - # Build Go backends on native platforms - # only if backend changed or download-backend failed + - 'go.work' + - 'go.work.sum' + testing-view: + - 'frontend/testing-view/**/*' + - 'frontend/frontend-kit/**/*' # Shared lib dependency + - 'pnpm-lock.yaml' + - 'pnpm-workspace.yaml' + competition-view: + - 'frontend/competition-view/**/*' + - 'frontend/frontend-kit/**/*' # Shared lib dependency + - 'pnpm-lock.yaml' + - 'pnpm-workspace.yaml' + + # ------------------------------------------------------------------ + # 2. BUILD BACKEND (MATRIX) + # Builds Go binaries for Linux, Windows, and macOS (Intel & Arm) + # ------------------------------------------------------------------ build-backend: - name: Build Backend - ${{ matrix.platform }} - needs: [detect-changes, download-backend, aggregate-downloads] - # Always is needed to execute this job even if backend download failed - # By default it would be skipped because dependent job failed - # Build if explicitly requested for this platform - # Also build if backend changed or download-backend failed - if: | - always() && - ( - inputs.build-backend == true || - needs.detect-changes.outputs.backend_needs_rebuild == 'true' || - needs.aggregate-downloads.outputs.outcome == 'success' && - needs.aggregate-downloads.outputs.any_needs_rebuild == 'true' - ) + name: Backend - ${{ matrix.platform }} + needs: detect-changes runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -249,253 +87,122 @@ jobs: include: - os: ubuntu-latest platform: linux - binary_name: backend-linux-amd64 - + binary: backend-linux-amd64 + goarch: amd64 - os: windows-latest platform: windows - binary_name: backend-windows-amd64.exe - + binary: backend-windows-amd64.exe + goarch: amd64 - os: macos-latest platform: macos-intel - binary_name: backend-darwin-amd64 + binary: backend-darwin-amd64 goarch: amd64 - - os: macos-latest platform: macos-arm64 - binary_name: backend-darwin-arm64 + binary: backend-darwin-arm64 goarch: arm64 - steps: - - name: Debug - run: | - echo "=== aggregate-downloads Debug ===" - echo "needs.aggregate-downloads.outputs.result: ${{ needs.aggregate-downloads.outputs.result }}" - echo "needs.aggregate-downloads.outputs.result.downloaded: ${{ fromJSON(needs.aggregate-downloads.outputs.result).downloaded }}" - echo "needs.aggregate-downloads.outputs.result.downloaded.platform: ${{ fromJSON(needs.aggregate-downloads.outputs.result).downloaded[matrix.platform] }}" - - - name: Check if artifact exists for this platform - id: check-artifact - shell: bash - run: | - ARTIFACT_EXISTS="${{ fromJSON(needs.aggregate-downloads.outputs.result).downloaded[matrix.platform] }}" - BUILD_EXPLICITLY="${{ inputs.build-backend == true }}" - CHANGES_DETECTED="${{ needs.detect-changes.outputs.backend_needs_rebuild == 'true' }}" - - if [ "$ARTIFACT_EXISTS" != "true" ] || [ "$BUILD_EXPLICITLY" = "true" ] || [ "$CHANGES_DETECTED" = "true" ]; then - echo "needs_build=true" >> $GITHUB_OUTPUT - echo "Building for ${{ matrix.platform }}" - else - echo "needs_build=false" >> $GITHUB_OUTPUT - echo "Artifact exists for ${{ matrix.platform }}, skipping build" - fi - - - name: Exit if no build needed - if: steps.check-artifact.outputs.needs_build != 'true' - shell: bash - run: | - echo "Skipping build - artifact already exists" + # OPTIMIZATION: Try to download existing artifact first + # Only runs if NO changes were detected and NO rebuild was forced + - name: Try Download Cache + if: needs.detect-changes.outputs.backend != 'true' + id: download + uses: dawidd6/action-download-artifact@v3 + continue-on-error: true + with: + workflow: build.yaml + branch: production + workflow_conclusion: success + name: backend-${{ matrix.platform }} + path: backend/cmd - - name: Checkout repository - if: steps.check-artifact.outputs.needs_build == 'true' - uses: actions/checkout@v4 + # BUILD: Only runs if download failed OR changes detected + - uses: actions/checkout@v4 + if: steps.download.outcome != 'success' - - name: Setup Go - if: steps.check-artifact.outputs.needs_build == 'true' - uses: actions/setup-go@v4 + - uses: actions/setup-go@v5 + if: steps.download.outcome != 'success' with: - go-version: "1.21" + go-version: "1.23" - - name: Install Linux dependencies - if: runner.os == 'Linux' && steps.check-artifact.outputs.needs_build == 'true' + - name: Install Linux Deps + if: runner.os == 'Linux' && steps.download.outcome != 'success' run: sudo apt-get update && sudo apt-get install -y libpcap-dev gcc - - name: Install macOS dependencies - if: runner.os == 'macOS' && steps.check-artifact.outputs.needs_build == 'true' + - name: Install macOS Deps + if: runner.os == 'macOS' && steps.download.outcome != 'success' run: brew install libpcap - - name: Build backend (Linux) - if: runner.os == 'Linux' && steps.check-artifact.outputs.needs_build == 'true' - working-directory: backend/cmd - run: | - CGO_ENABLED=1 go build -o ${{ matrix.binary_name }} . - - - name: Build backend (Windows) - if: runner.os == 'Windows' && steps.check-artifact.outputs.needs_build == 'true' - working-directory: backend/cmd - run: | - $env:CGO_ENABLED="1" - go build -o ${{ matrix.binary_name }} . - shell: pwsh - - - name: Build backend (macOS) - if: runner.os == 'macOS' && steps.check-artifact.outputs.needs_build == 'true' + - name: Build Binary + if: steps.download.outcome != 'success' working-directory: backend/cmd + shell: bash run: | - CGO_ENABLED=1 GOARCH=${{ matrix.goarch }} go build -o ${{ matrix.binary_name }} . + go build -o ${{ matrix.binary }} . + env: + CGO_ENABLED: 1 + GOARCH: ${{ matrix.goarch }} - - name: Upload backend binary - if: steps.check-artifact.outputs.needs_build == 'true' - uses: actions/upload-artifact@v4 + # UPLOAD: Always runs to ensure artifact availability for release + - uses: actions/upload-artifact@v4 with: name: backend-${{ matrix.platform }} - path: backend/cmd/${{ matrix.binary_name }} + path: backend/cmd/${{ matrix.binary }} retention-days: 30 - # Download control-station from previous build if no changes - download-control-station: - name: Download Control Station + # ------------------------------------------------------------------ + # 3. BUILD FRONTEND (MATRIX) + # Builds Testing View and Competition View using pnpm & turbo + # ------------------------------------------------------------------ + build-frontend: + name: Build ${{ matrix.view }} needs: detect-changes - # The condition checks if control station changed or common front changed - # It is important to use != 'true' and not == 'false' because if they are no inputs (executed on push or pull request events), - # values for inputs will be undefined which gives false for any condition - # The same thing applies for detect changes outputs, because we skip this job on dispatch and call events - # Thus, it's outputs are undefined - if: | - needs.detect-changes.outputs.control-station_needs_rebuild != 'true' && - needs.detect-changes.outputs.common-front_needs_rebuild != 'true' && - inputs.build-control-station != 'true' runs-on: ubuntu-latest - # Continue on error is necessary because download-control-station job can fail if control station artifact is not found - # and it is not necessary to fail the build in this case - continue-on-error: true - outputs: - downloaded: ${{ steps.download.outcome == 'success' }} + strategy: + fail-fast: false + matrix: + view: [testing-view, competition-view] steps: - - name: Download control-station from latest build + # OPTIMIZATION: Try to download existing artifact first + # Only runs if NO changes were detected and NO rebuild was forced + - name: Try Download Cache + if: needs.detect-changes.outputs[matrix.view] != 'true' id: download uses: dawidd6/action-download-artifact@v3 + continue-on-error: true with: workflow: build.yaml branch: production - workflow_conclusion: "completed" - name: control-station - path: control-station-artifacts - if_no_artifact_found: fail + workflow_conclusion: success + name: ${{ matrix.view }} + path: frontend/${{ matrix.view }}/dist - - name: Re-upload control-station artifact - if: steps.download.outcome == 'success' - uses: actions/upload-artifact@v4 - with: - name: control-station - path: control-station-artifacts/** - retention-days: 30 + # BUILD: Only runs if download failed OR changes detected + - uses: actions/checkout@v4 + if: steps.download.outcome != 'success' - # Build control-station (if control-station or common-front changed) - build-control-station: - name: Build Control Station - needs: [detect-changes, download-control-station] - # Always is needed to execute this job even if control station download failed - # By default it would be skipped because dependent job failed - # The condition checks if control station changed or common front changed or download control station failed - if: always() && - (needs.detect-changes.outputs.control-station_needs_rebuild == 'true' || - needs.detect-changes.outputs.common-front_needs_rebuild == 'true' || - needs.download-control-station.outputs.downloaded != 'true' || - inputs.build-control-station == 'true') - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: "20" - - - name: Build common-front - working-directory: common-front - run: | - npm ci - npm run build - - - name: Build control-station - working-directory: control-station - run: | - npm ci - npm run build - - - name: Upload control-station artifact - uses: actions/upload-artifact@v4 - with: - name: control-station - path: control-station/static/** - retention-days: 30 - - # Download ethernet-view from previous build if no changes - download-ethernet-view: - name: Download Ethernet View - needs: detect-changes - # It is important to use != 'true' and not == 'false' because if they are no inputs (executed on push or pull request events), - # values for inputs will be undefined which gives false for any condition - # The same thing applies for detect changes outputs, because we skip this job on dispatch and call events - # Thus, it's outputs are undefined - if: | - needs.detect-changes.outputs.ethernet-view_needs_rebuild != 'true' && - needs.detect-changes.outputs.common-front_needs_rebuild != 'true' && - inputs.build-ethernet-view != 'true' - runs-on: ubuntu-latest - # Continue on error is necessary because download-ethernet-view job can fail if ethernet view artifact is not found - # and it is not necessary to fail the build in this case - continue-on-error: true - outputs: - downloaded: ${{ steps.download.outcome == 'success' }} - steps: - - name: Download ethernet-view from latest build - id: download - uses: dawidd6/action-download-artifact@v3 + - uses: pnpm/action-setup@v4 + if: steps.download.outcome != 'success' with: - workflow: build.yaml - branch: production - workflow_conclusion: "completed" - name: ethernet-view - path: ethernet-view-artifacts - if_no_artifact_found: fail + version: 10 - - name: Re-upload ethernet-view artifact - if: steps.download.outcome == 'success' - uses: actions/upload-artifact@v4 + - uses: actions/setup-node@v4 + if: steps.download.outcome != 'success' with: - name: ethernet-view - path: ethernet-view-artifacts/** - retention-days: 30 + node-version: 20 + cache: "pnpm" - # Build ethernet-view (if ethernet-view or common-front changed) - build-ethernet-view: - name: Build Ethernet View - needs: [detect-changes, download-ethernet-view] - # Always is needed to execute this job even if ethernet view download failed - # By default it would be skipped because dependent job failed - # The condition checks if ethernet view changed or common front changed or download ethernet view failed - if: always() && - (needs.detect-changes.outputs.ethernet-view_needs_rebuild == 'true' || - needs.detect-changes.outputs.common-front_needs_rebuild == 'true' || - needs.download-ethernet-view.outputs.downloaded != 'true' || - inputs.build-ethernet-view == 'true') - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: "20" + - name: Install Dependencies + if: steps.download.outcome != 'success' + run: pnpm install --frozen-lockfile - - name: Build common-front - working-directory: common-front - run: | - npm ci - npm run build - - - name: Build ethernet-view - working-directory: ethernet-view - run: | - npm ci - npm run build + - name: Build with Turbo + if: steps.download.outcome != 'success' + run: pnpm turbo build --filter=${{ matrix.view }} - - name: Upload ethernet-view artifact - uses: actions/upload-artifact@v4 + # UPLOAD: Always runs to ensure artifact availability for release + - uses: actions/upload-artifact@v4 with: - name: ethernet-view - path: ethernet-view/static/** + name: ${{ matrix.view }} + path: frontend/${{ matrix.view }}/dist/** retention-days: 30 diff --git a/electron-app/package.json b/electron-app/package.json index 71ea9391a..bb7dd70f2 100644 --- a/electron-app/package.json +++ b/electron-app/package.json @@ -30,7 +30,8 @@ "build:backend:win": "node build.mjs --backend --win", "build:backend:linux": "node build.mjs --backend --linux", "build:backend:mac": "node build.mjs --backend --mac", - "build:testing-view": "node build.mjs --testing-view", + "build:testing": "node build.mjs --testing-view", + "build:competition": "node build.mjs --competition-view", "asar:win": "asar list dist/win-unpacked/resources/app.asar | findstr /V node_modules", "asar:mac": "asar list dist/mac-unpacked/resources/app.asar | findstr /V node_modules", "asar:linux": "asar list dist/linux-unpacked/resources/app.asar | findstr /V node_modules" From c91a3d7adad755277f8452d1f7582897cad8d689 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Wed, 11 Feb 2026 15:47:18 +0100 Subject: [PATCH 21/38] test --- electron-app/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/electron-app/package.json b/electron-app/package.json index bb7dd70f2..3e0c6ec78 100644 --- a/electron-app/package.json +++ b/electron-app/package.json @@ -31,6 +31,7 @@ "build:backend:linux": "node build.mjs --backend --linux", "build:backend:mac": "node build.mjs --backend --mac", "build:testing": "node build.mjs --testing-view", + "build:competition": "node build.mjs --competition-view", "asar:win": "asar list dist/win-unpacked/resources/app.asar | findstr /V node_modules", "asar:mac": "asar list dist/mac-unpacked/resources/app.asar | findstr /V node_modules", From 697343139de33e355c14dcae2368a8f68ddd9d4f Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Wed, 11 Feb 2026 15:49:39 +0100 Subject: [PATCH 22/38] fix: pnpm version --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 3387dd908..2490d8083 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -184,7 +184,7 @@ jobs: - uses: pnpm/action-setup@v4 if: steps.download.outcome != 'success' with: - version: 10 + version: 10.26.0 - uses: actions/setup-node@v4 if: steps.download.outcome != 'success' From 72c9f491ce83a70802eaf9badce803511f363df9 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Wed, 11 Feb 2026 15:51:50 +0100 Subject: [PATCH 23/38] feat: disable competition-view --- .github/workflows/build.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 2490d8083..37d11b4c4 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -161,7 +161,9 @@ jobs: strategy: fail-fast: false matrix: - view: [testing-view, competition-view] + view: [testing-view, + # competition-view] # TODO: Uncomment when competition view is ready + ] steps: # OPTIMIZATION: Try to download existing artifact first # Only runs if NO changes were detected and NO rebuild was forced From ee9886ace8f68127a062659ed02314f3949802c2 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Wed, 11 Feb 2026 15:56:55 +0100 Subject: [PATCH 24/38] test --- .github/workflows/build.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 37d11b4c4..2564f79db 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -57,6 +57,7 @@ jobs: - uses: dorny/paths-filter@v3 id: filter with: + ref: "production" filters: | backend: - 'backend/**/*' From fe4e60381edc403c2f4fc923475109ee70119695 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Wed, 11 Feb 2026 16:00:28 +0100 Subject: [PATCH 25/38] Update package.json --- electron-app/package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/electron-app/package.json b/electron-app/package.json index 3e0c6ec78..bb7dd70f2 100644 --- a/electron-app/package.json +++ b/electron-app/package.json @@ -31,7 +31,6 @@ "build:backend:linux": "node build.mjs --backend --linux", "build:backend:mac": "node build.mjs --backend --mac", "build:testing": "node build.mjs --testing-view", - "build:competition": "node build.mjs --competition-view", "asar:win": "asar list dist/win-unpacked/resources/app.asar | findstr /V node_modules", "asar:mac": "asar list dist/mac-unpacked/resources/app.asar | findstr /V node_modules", From 7569b0366de8a67a94bd0f9e1f36295b790c0615 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Wed, 11 Feb 2026 16:08:59 +0100 Subject: [PATCH 26/38] feat: fix release.yaml action --- .github/workflows/release.yaml | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 09ced9df5..bdcfd770a 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -123,23 +123,24 @@ jobs: path: electron-app/binaries # Download frontend builds from latest build - - name: Download control-station + # TODO: Uncomment when competition view is ready + # - name: Download competition-view + # uses: dawidd6/action-download-artifact@v3 + # with: + # workflow: build.yaml + # branch: production + # workflow_conclusion: success + # name: competition-view + # path: electron-app/renderer/competition-view + + - name: Download testing-view uses: dawidd6/action-download-artifact@v3 with: workflow: build.yaml branch: production workflow_conclusion: success - name: control-station - path: electron-app/renderer/control-station - - - name: Download ethernet-view - uses: dawidd6/action-download-artifact@v3 - with: - workflow: build.yaml - branch: production - workflow_conclusion: success - name: ethernet-view - path: electron-app/renderer/ethernet-view + name: testing-view + path: electron-app/renderer/testing-view - name: Set executable permissions (Unix) if: runner.os != 'Windows' From 54742c97dc9e3d68f50ac3ed3c810401a01a557b Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Wed, 11 Feb 2026 16:15:18 +0100 Subject: [PATCH 27/38] feat: replace npm with pnpm --- .github/workflows/release.yaml | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index bdcfd770a..79a8b4cab 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -67,17 +67,22 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + with: + version: 10.26.0 + - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: "20" + cache: "pnpm" # Update package.json with release version - name: Update version in package.json working-directory: electron-app shell: bash run: | - npm version ${{ needs.determine-version.outputs.version }} --no-git-tag-version + pnpm version ${{ needs.determine-version.outputs.version }} --no-git-tag-version echo "Updated version to:" cat package.json | grep version @@ -122,17 +127,6 @@ jobs: name: backend-macos-arm64 path: electron-app/binaries - # Download frontend builds from latest build - # TODO: Uncomment when competition view is ready - # - name: Download competition-view - # uses: dawidd6/action-download-artifact@v3 - # with: - # workflow: build.yaml - # branch: production - # workflow_conclusion: success - # name: competition-view - # path: electron-app/renderer/competition-view - - name: Download testing-view uses: dawidd6/action-download-artifact@v3 with: @@ -142,17 +136,26 @@ jobs: name: testing-view path: electron-app/renderer/testing-view + # - name: Download competition-view + # uses: dawidd6/action-download-artifact@v3 + # with: + # workflow: build.yaml + # branch: production + # workflow_conclusion: success + # name: competition-view + # path: electron-app/renderer/competition-view + - name: Set executable permissions (Unix) if: runner.os != 'Windows' run: chmod +x electron-app/binaries/* - name: Install Electron dependencies working-directory: electron-app - run: npm ci + run: pnpm install - name: Build Electron distribution working-directory: electron-app - run: npm run dist + run: pnpm run dist env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} CSC_IDENTITY_AUTO_DISCOVERY: false @@ -215,4 +218,4 @@ jobs: generate_release_notes: true files: dist/**/* env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file From 771ceee275eb7ca812fdbc84dbe4d7968c798482 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Wed, 11 Feb 2026 17:08:42 +0100 Subject: [PATCH 28/38] feat: remove useConfirmClose --- .../workspace/components/LoggerControl.tsx | 9 +++----- .../testing-view/src/hooks/useConfirmClose.ts | 21 ------------------- 2 files changed, 3 insertions(+), 27 deletions(-) delete mode 100644 frontend/testing-view/src/hooks/useConfirmClose.ts diff --git a/frontend/testing-view/src/features/workspace/components/LoggerControl.tsx b/frontend/testing-view/src/features/workspace/components/LoggerControl.tsx index 147c08ef1..4b8e99820 100644 --- a/frontend/testing-view/src/features/workspace/components/LoggerControl.tsx +++ b/frontend/testing-view/src/features/workspace/components/LoggerControl.tsx @@ -2,7 +2,6 @@ import { Button, Separator } from "@workspace/ui"; import { Settings2 } from "@workspace/ui/icons"; import { cn } from "@workspace/ui/lib"; import { LOGGER_CONTROL_CONFIG } from "../../../constants/loggerControlConfig"; -import useConfirmClose from "../../../hooks/useConfirmClose"; import { useLogger } from "../../../hooks/useLogger"; import { useStore } from "../../../store/store"; import type { BoardName } from "../../../types/data/board"; @@ -17,8 +16,6 @@ export const LoggerControl = ({ disabled }: LoggerControlProps) => { const openFilterDialog = useStore((s) => s.openFilterDialog); const filteredCount = useStore((state) => state.getFilteredCount("logs")); - useConfirmClose(status === "recording"); - const handleToggle = () => { if (status === "loading") return; @@ -65,10 +62,10 @@ export const LoggerControl = ({ disabled }: LoggerControlProps) => { >

- + Logger - + {config.text}
@@ -98,7 +95,7 @@ export const LoggerControl = ({ disabled }: LoggerControlProps) => { disabled={disabled || status === "loading" || status === "recording"} > - + {filteredCount} diff --git a/frontend/testing-view/src/hooks/useConfirmClose.ts b/frontend/testing-view/src/hooks/useConfirmClose.ts deleted file mode 100644 index 01bf190d4..000000000 --- a/frontend/testing-view/src/hooks/useConfirmClose.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { useEffect } from "react"; - -const useConfirmClose = (shouldLock: boolean) => { - useEffect(() => { - const handleBeforeUnload = (event: BeforeUnloadEvent) => { - if (shouldLock) { - event.preventDefault(); - event.returnValue = "true"; - return "true"; - } - }; - - window.addEventListener("beforeunload", handleBeforeUnload); - - return () => { - window.removeEventListener("beforeunload", handleBeforeUnload); - }; - }, [shouldLock]); -}; - -export default useConfirmClose; From 63cb5aab9d07f1520013c4a9a85a41037d08e3a8 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Thu, 12 Feb 2026 10:00:40 +0100 Subject: [PATCH 29/38] feat: increase restart timeout --- frontend/testing-view/config.ts | 3 +++ .../testing-view/src/components/settings/SettingsDialog.tsx | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/frontend/testing-view/config.ts b/frontend/testing-view/config.ts index fc24940a6..6fca0d4f9 100644 --- a/frontend/testing-view/config.ts +++ b/frontend/testing-view/config.ts @@ -19,4 +19,7 @@ export const config = { /** Timeout for logger response or time to invalidate logger status after start button click. */ LOGGER_RESPONSE_TIMEOUT: 2000, + + /** Timeout applied after settings save to give enough time for backend to restart. */ + SETTINGS_RESPONSE_TIMEOUT: 1000, } as const; diff --git a/frontend/testing-view/src/components/settings/SettingsDialog.tsx b/frontend/testing-view/src/components/settings/SettingsDialog.tsx index a9742f27f..f62b29d31 100644 --- a/frontend/testing-view/src/components/settings/SettingsDialog.tsx +++ b/frontend/testing-view/src/components/settings/SettingsDialog.tsx @@ -12,6 +12,7 @@ import { AlertTriangle, CheckCircle2, } from "../../../../frontend-kit/ui/src/icons/notifications"; +import { config } from "../../../config"; import { DEFAULT_CONFIG } from "../../constants/defaultConfig"; import { useStore } from "../../store/store"; import type { ConfigData } from "../../types/common/config"; @@ -65,12 +66,12 @@ export const SettingsDialog = () => { socketService.connect(); setSettingsOpen(false); setRestarting(false); - }, 500); + }, config.SETTINGS_RESPONSE_TIMEOUT); }; return ( - +
System Configuration From 4536823b344ace9757ea7ecbb036f0c169d58129 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Thu, 12 Feb 2026 11:29:11 +0100 Subject: [PATCH 30/38] feat: add auto updater and include .yml files into the release --- .github/workflows/release.yaml | 3 ++- electron-app/dev-app-update.yml | 3 +++ electron-app/main.js | 18 +++++++++++++---- electron-app/package.json | 11 ++++++++--- pnpm-lock.yaml | 35 +++++++++++++++++++++++++++++++++ 5 files changed, 62 insertions(+), 8 deletions(-) create mode 100644 electron-app/dev-app-update.yml diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 79a8b4cab..64b49a58a 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -182,6 +182,7 @@ jobs: electron-app/dist/*.deb electron-app/dist/*.dmg electron-app/dist/*.zip + electron-app/dist/*.yml !electron-app/dist/*-unpacked !electron-app/dist/mac !electron-app/dist/win-unpacked @@ -218,4 +219,4 @@ jobs: generate_release_notes: true files: dist/**/* env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/electron-app/dev-app-update.yml b/electron-app/dev-app-update.yml new file mode 100644 index 000000000..3c89cbb3d --- /dev/null +++ b/electron-app/dev-app-update.yml @@ -0,0 +1,3 @@ +provider: github +owner: Hyperloop-UPV +repo: software diff --git a/electron-app/main.js b/electron-app/main.js index 7c5138023..be1d1be42 100644 --- a/electron-app/main.js +++ b/electron-app/main.js @@ -4,13 +4,16 @@ * Handles application lifecycle, initialization, and cleanup of processes and windows. */ -import { app, dialog, BrowserWindow } from "electron"; -import { createWindow } from "./src/windows/mainWindow.js"; -import { startBackend, stopBackend } from "./src/processes/backend.js"; -import { setupIpcHandlers } from "./src/ipc/handlers.js"; +import { app, BrowserWindow, dialog } from "electron"; +import pkg from "electron-updater"; import { getConfigManager } from "./src/config/configInstance.js"; +import { setupIpcHandlers } from "./src/ipc/handlers.js"; +import { startBackend, stopBackend } from "./src/processes/backend.js"; import { stopPacketSender } from "./src/processes/packetSender.js"; import { logger } from "./src/utils/logger.js"; +import { createWindow } from "./src/windows/mainWindow.js"; + +const { autoUpdater } = pkg; // Setup IPC handlers for renderer process communication setupIpcHandlers(); @@ -29,6 +32,13 @@ app.whenReady().then(async () => { // Create main application window createWindow(); + // Check for updates + // if (app.isPackaged) { + autoUpdater.logger = logger.electron; + autoUpdater.forceDevUpdateConfig = true; + autoUpdater.checkForUpdatesAndNotify(); + // } + // Handle macOS app activation (reopen window when dock icon clicked) app.on("activate", () => { // Only create window if no windows exist diff --git a/electron-app/package.json b/electron-app/package.json index bb7dd70f2..889b80a8a 100644 --- a/electron-app/package.json +++ b/electron-app/package.json @@ -11,7 +11,7 @@ "license": "MIT", "repository": { "type": "git", - "url": "https://github.com/HyperloopUPV-H8/software.git" + "url": "https://github.com/Hyperloop-UPV/software.git" }, "scripts": { "start": "electron .", @@ -38,7 +38,8 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "electron-store": "^11.0.2" + "electron-store": "^11.0.2", + "electron-updater": "^6.7.3" }, "devDependencies": { "@vitest/coverage-v8": "^4.0.18", @@ -49,7 +50,11 @@ }, "build": { "appId": "com.hyperloop.controlstation", - "publish": null, + "publish": { + "provider": "github", + "owner": "Hyperloop-UPV", + "repo": "software" + }, "productName": "Hyperloop-Control-Station", "directories": { "output": "dist" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ccf681900..42f09f1ba 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -37,6 +37,9 @@ importers: electron-store: specifier: ^11.0.2 version: 11.0.2 + electron-updater: + specifier: ^6.7.3 + version: 6.7.3 devDependencies: '@vitest/coverage-v8': specifier: ^4.0.18 @@ -2362,6 +2365,9 @@ packages: electron-to-chromium@1.5.286: resolution: {integrity: sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==} + electron-updater@6.7.3: + resolution: {integrity: sha512-EgkT8Z9noqXKbwc3u5FkJA+r48jwZ5DTUiOkJMOTEEH//n5Am6wfQGz7nvSFEA2oIAMv9jRzn5JKTyWeSKOPgg==} + electron@40.1.0: resolution: {integrity: sha512-2j/kvw7uF0H1PnzYBzw2k2Q6q16J8ToKrtQzZfsAoXbbMY0l5gQi2DLOauIZLzwp4O01n8Wt/74JhSRwG0yj9A==} engines: {node: '>= 12.20.55'} @@ -3244,6 +3250,9 @@ packages: lodash.difference@4.5.0: resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} + lodash.escaperegexp@4.1.2: + resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} + lodash.flatten@4.4.0: resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} @@ -3251,6 +3260,10 @@ packages: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} deprecated: This package is deprecated. Use the optional chaining (?.) operator instead. + lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. + lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} @@ -4227,6 +4240,9 @@ packages: tiny-async-pool@1.3.0: resolution: {integrity: sha512-01EAw5EDrcVrdgyCLgoSPvqznC0sVxDSVeiOz09FUpjh71G79VCqneOr+xvt7T1r76CF6ZZfPjHorN2+d+3mqA==} + tiny-typed-emitter@2.1.0: + resolution: {integrity: sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==} + tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} @@ -6987,6 +7003,19 @@ snapshots: electron-to-chromium@1.5.286: {} + electron-updater@6.7.3: + dependencies: + builder-util-runtime: 9.5.1 + fs-extra: 10.1.0 + js-yaml: 4.1.1 + lazy-val: 1.0.5 + lodash.escaperegexp: 4.1.2 + lodash.isequal: 4.5.0 + semver: 7.7.3 + tiny-typed-emitter: 2.1.0 + transitivePeerDependencies: + - supports-color + electron@40.1.0: dependencies: '@electron/get': 2.0.3 @@ -8056,10 +8085,14 @@ snapshots: lodash.difference@4.5.0: {} + lodash.escaperegexp@4.1.2: {} + lodash.flatten@4.4.0: {} lodash.get@4.4.2: {} + lodash.isequal@4.5.0: {} + lodash.isplainobject@4.0.6: {} lodash.merge@4.6.2: {} @@ -9096,6 +9129,8 @@ snapshots: dependencies: semver: 5.7.2 + tiny-typed-emitter@2.1.0: {} + tinybench@2.9.0: {} tinycolor2@1.6.0: {} From 37c9490c9fc31b729ebb522c9343514b84a473e9 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Thu, 12 Feb 2026 11:49:41 +0100 Subject: [PATCH 31/38] feat: add artifact names for windows --- electron-app/dev-app-update.yml | 4 ++-- electron-app/main.js | 8 +++++++- electron-app/package.json | 14 ++++++++++---- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/electron-app/dev-app-update.yml b/electron-app/dev-app-update.yml index 3c89cbb3d..618923a36 100644 --- a/electron-app/dev-app-update.yml +++ b/electron-app/dev-app-update.yml @@ -1,3 +1,3 @@ provider: github -owner: Hyperloop-UPV -repo: software +owner: maximka76667 +repo: hyperloop-control-station diff --git a/electron-app/main.js b/electron-app/main.js index be1d1be42..db58ee111 100644 --- a/electron-app/main.js +++ b/electron-app/main.js @@ -34,7 +34,13 @@ app.whenReady().then(async () => { // Check for updates // if (app.isPackaged) { - autoUpdater.logger = logger.electron; + autoUpdater.logger = { + info: (message) => logger.electron.info(message), + error: (message) => logger.electron.error(message), + warn: (message) => logger.electron.warning(message), + debug: (message) => logger.electron.debug(message), + }; + autoUpdater.forceDevUpdateConfig = true; autoUpdater.checkForUpdatesAndNotify(); // } diff --git a/electron-app/package.json b/electron-app/package.json index 889b80a8a..de91073f9 100644 --- a/electron-app/package.json +++ b/electron-app/package.json @@ -11,7 +11,7 @@ "license": "MIT", "repository": { "type": "git", - "url": "https://github.com/Hyperloop-UPV/software.git" + "url": "https://github.com/maximka76667/hyperloop-control-station.git" }, "scripts": { "start": "electron .", @@ -52,8 +52,8 @@ "appId": "com.hyperloop.controlstation", "publish": { "provider": "github", - "owner": "Hyperloop-UPV", - "repo": "software" + "owner": "maximka76667", + "repo": "hyperloop-control-station" }, "productName": "Hyperloop-Control-Station", "directories": { @@ -85,7 +85,13 @@ "nsis", "portable" ], - "icon": "icon.ico" + "icon": "icon.ico", + "nsis": { + "artifactName": "${productName}-Setup-${version}.${ext}" + }, + "portable": { + "artifactName": "${productName}-Portable-${version}.${ext}" + } }, "mac": { "target": [ From 6f3734669d8e0604aeed8413857eda2f30aae27d Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Thu, 12 Feb 2026 11:53:35 +0100 Subject: [PATCH 32/38] fix --- electron-app/package.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/electron-app/package.json b/electron-app/package.json index de91073f9..73e0c9a96 100644 --- a/electron-app/package.json +++ b/electron-app/package.json @@ -85,13 +85,13 @@ "nsis", "portable" ], - "icon": "icon.ico", - "nsis": { - "artifactName": "${productName}-Setup-${version}.${ext}" - }, - "portable": { - "artifactName": "${productName}-Portable-${version}.${ext}" - } + "icon": "icon.ico" + }, + "nsis": { + "artifactName": "${productName}-Setup-${version}.${ext}" + }, + "portable": { + "artifactName": "${productName}-Portable-${version}.${ext}" }, "mac": { "target": [ From 846ae9c4cf1720415db0196b4fd2e91799134df9 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Thu, 12 Feb 2026 12:12:53 +0100 Subject: [PATCH 33/38] feat: add blockmaps to release, add app-update files and update restart window --- .github/workflows/release.yaml | 1 + electron-app/app-update.yml | 4 ++++ electron-app/dev-app-update.yml | 1 + electron-app/main.js | 14 ++++++++++++++ 4 files changed, 20 insertions(+) create mode 100644 electron-app/app-update.yml diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 64b49a58a..021f2a4b3 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -183,6 +183,7 @@ jobs: electron-app/dist/*.dmg electron-app/dist/*.zip electron-app/dist/*.yml + electron-app/dist/*.blockmap !electron-app/dist/*-unpacked !electron-app/dist/mac !electron-app/dist/win-unpacked diff --git a/electron-app/app-update.yml b/electron-app/app-update.yml new file mode 100644 index 000000000..9af4f723a --- /dev/null +++ b/electron-app/app-update.yml @@ -0,0 +1,4 @@ +owner: maximka76667 +repo: hyperloop-control-station +provider: github +updaterCacheDirName: hyperloop-control-station/updater diff --git a/electron-app/dev-app-update.yml b/electron-app/dev-app-update.yml index 618923a36..4487df4e1 100644 --- a/electron-app/dev-app-update.yml +++ b/electron-app/dev-app-update.yml @@ -1,3 +1,4 @@ provider: github owner: maximka76667 repo: hyperloop-control-station +updaterCacheDirName: hyperloop-control-station/updater diff --git a/electron-app/main.js b/electron-app/main.js index db58ee111..899f1dcd0 100644 --- a/electron-app/main.js +++ b/electron-app/main.js @@ -43,6 +43,20 @@ app.whenReady().then(async () => { autoUpdater.forceDevUpdateConfig = true; autoUpdater.checkForUpdatesAndNotify(); + autoUpdater.on("update-downloaded", (info) => { + dialog + .showMessageBox({ + type: "info", + title: "Update Ready", + message: `Version ${info.version} has been downloaded. Restart now to install?`, + buttons: ["Restart", "Later"], + }) + .then((result) => { + if (result.response === 0) { + autoUpdater.quitAndInstall(); + } + }); + }); // } // Handle macOS app activation (reopen window when dock icon clicked) From 57413cf803919ab3773e2c626231aa87c8233dd6 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Thu, 12 Feb 2026 14:23:18 +0100 Subject: [PATCH 34/38] feat: install picocolors, improve logging and change meta data to match hyperloop-upv repo --- electron-app/app-update.yml | 4 +- electron-app/dev-app-update.yml | 4 +- electron-app/main.js | 18 ++-- electron-app/package.json | 9 +- electron-app/src/config/configInstance.js | 8 +- electron-app/src/utils/logger.js | 103 ++++------------------ pnpm-lock.yaml | 3 + 7 files changed, 44 insertions(+), 105 deletions(-) diff --git a/electron-app/app-update.yml b/electron-app/app-update.yml index 9af4f723a..27ef92e02 100644 --- a/electron-app/app-update.yml +++ b/electron-app/app-update.yml @@ -1,4 +1,4 @@ -owner: maximka76667 -repo: hyperloop-control-station provider: github +owner: Hyperloop-UPV +repo: software updaterCacheDirName: hyperloop-control-station/updater diff --git a/electron-app/dev-app-update.yml b/electron-app/dev-app-update.yml index 4487df4e1..27ef92e02 100644 --- a/electron-app/dev-app-update.yml +++ b/electron-app/dev-app-update.yml @@ -1,4 +1,4 @@ provider: github -owner: maximka76667 -repo: hyperloop-control-station +owner: Hyperloop-UPV +repo: software updaterCacheDirName: hyperloop-control-station/updater diff --git a/electron-app/main.js b/electron-app/main.js index 899f1dcd0..8fd2f5842 100644 --- a/electron-app/main.js +++ b/electron-app/main.js @@ -21,10 +21,10 @@ setupIpcHandlers(); // App lifecycle: wait for Electron to be ready app.whenReady().then(async () => { // Initialize ConfigManager and ensure config exists BEFORE starting backend - logger.electron.info("Initializing configuration..."); + logger.electron.step("Initializing configuration..."); // Get ConfigManager instance (creates config from template if needed) await getConfigManager(); - logger.electron.info("Configuration ready"); + logger.electron.step("Configuration ready"); // Start backend process startBackend(); @@ -32,8 +32,11 @@ app.whenReady().then(async () => { // Create main application window createWindow(); - // Check for updates - // if (app.isPackaged) { + // Updater setup + if (!app.isPackaged) { + autoUpdater.forceDevUpdateConfig = true; + } + autoUpdater.logger = { info: (message) => logger.electron.info(message), error: (message) => logger.electron.error(message), @@ -41,8 +44,10 @@ app.whenReady().then(async () => { debug: (message) => logger.electron.debug(message), }; - autoUpdater.forceDevUpdateConfig = true; - autoUpdater.checkForUpdatesAndNotify(); + // Check for updates + autoUpdater.checkForUpdates(); + + // Handle update downloaded event autoUpdater.on("update-downloaded", (info) => { dialog .showMessageBox({ @@ -57,7 +62,6 @@ app.whenReady().then(async () => { } }); }); - // } // Handle macOS app activation (reopen window when dock icon clicked) app.on("activate", () => { diff --git a/electron-app/package.json b/electron-app/package.json index 73e0c9a96..888ca3e67 100644 --- a/electron-app/package.json +++ b/electron-app/package.json @@ -11,7 +11,7 @@ "license": "MIT", "repository": { "type": "git", - "url": "https://github.com/maximka76667/hyperloop-control-station.git" + "url": "https://github.com/Hyperloop-UPV/software.git" }, "scripts": { "start": "electron .", @@ -39,7 +39,8 @@ "dependencies": { "@iarna/toml": "^2.2.5", "electron-store": "^11.0.2", - "electron-updater": "^6.7.3" + "electron-updater": "^6.7.3", + "picocolors": "^1.1.1" }, "devDependencies": { "@vitest/coverage-v8": "^4.0.18", @@ -52,8 +53,8 @@ "appId": "com.hyperloop.controlstation", "publish": { "provider": "github", - "owner": "maximka76667", - "repo": "hyperloop-control-station" + "owner": "Hyperloop-UPV", + "repo": "software" }, "productName": "Hyperloop-Control-Station", "directories": { diff --git a/electron-app/src/config/configInstance.js b/electron-app/src/config/configInstance.js index 842327343..ae8068252 100644 --- a/electron-app/src/config/configInstance.js +++ b/electron-app/src/config/configInstance.js @@ -4,8 +4,8 @@ * Provides async wrappers for ConfigManager operations with lazy initialization. */ -import { getUserConfigPath, getTemplatePath } from "../utils/paths.js"; import { logger } from "../utils/logger.js"; +import { getTemplatePath, getUserConfigPath } from "../utils/paths.js"; // Store the singleton ConfigManager instance let configManager = null; @@ -30,8 +30,8 @@ async function getConfigManager() { // Create new ConfigManager instance configManager = new ConfigManager(userConfigPath, templatePath); logger.config.info("ConfigManager initialized"); - logger.config.info("User config:", userConfigPath); - logger.config.info("Template:", templatePath); + logger.config.path("User config", userConfigPath); + logger.config.path("Template path", templatePath); } // Return the singleton instance @@ -132,4 +132,4 @@ async function importConfig() { } } -export { getConfigManager, readConfig, writeConfig, importConfig }; +export { getConfigManager, importConfig, readConfig, writeConfig }; diff --git a/electron-app/src/utils/logger.js b/electron-app/src/utils/logger.js index e837402b8..4fab38227 100644 --- a/electron-app/src/utils/logger.js +++ b/electron-app/src/utils/logger.js @@ -5,7 +5,7 @@ * All logging methods write directly to the console with ANSI color formatting. */ -import { colors } from "./colors.js"; +import pc from "picocolors"; /** * @typedef {Object} LoggerMethods @@ -21,118 +21,51 @@ import { colors } from "./colors.js"; /** * Creates a set of logger methods with an optional prefix and color. - * @param {string} [prefix=""] - Optional prefix text to display before log messages. - * @param {keyof typeof colors} [prefixColor=""] - Optional color name from the colors object for the prefix. - * @returns {LoggerMethods} Logger methods object. - * @example - * const myLogger = createLoggerMethods("MyApp", "cyan"); - * myLogger.info("Application started"); - * myLogger.error("Something went wrong"); + * @param {string} [prefix=""] - Optional prefix text. + * @param {string} [prefixColor=""] - Color name from picocolors (e.g., "cyan", "magenta"). */ function createLoggerMethods(prefix = "", prefixColor = "") { - const prefixText = prefix - ? `${colors[prefixColor] || ""}[${prefix}]${colors.reset} ` - : ""; + // Get the color function from picocolors, or fallback to a plain string + const colorFn = pc[prefixColor] || ((s) => s); + const prefixText = prefix ? `${colorFn(`[${prefix}]`)} ` : ""; return { - /** - * Logs an info-level message to the console. - * @param {string} msg - The message to log. - * @param {...any} args - Additional arguments for console.log. - */ info: (msg, ...args) => { - console.log( - `${prefixText}${colors.blue}[INFO]${colors.reset} ${msg}`, - ...args - ); + console.log(`${prefixText}${pc.blue("[INFO]")} ${msg}`, ...args); }, - /** - * Logs a success-level message to the console. - * @param {string} msg - The message to log. - * @param {...any} args - Additional arguments for console.log. - */ success: (msg, ...args) => { - console.log( - `${prefixText}${colors.brightGreen}[OK]${colors.reset} ${msg}`, - ...args - ); + console.log(`${prefixText}${pc.green("[OK]")} ${msg}`, ...args); }, - /** - * Logs a warning-level message to the console. - * @param {string} msg - The message to log. - * @param {...any} args - Additional arguments for console.log. - */ warning: (msg, ...args) => { - console.log( - `${prefixText}${colors.yellow}[WARN]${colors.reset} ${msg}`, - ...args - ); + console.log(`${prefixText}${pc.yellow("[WARN]")} ${msg}`, ...args); }, - /** - * Logs an error-level message to the console. - * @param {string} msg - The message to log. - * @param {...any} args - Additional arguments for console.error. - */ error: (msg, ...args) => { - console.error( - `${prefixText}${colors.brightRed}[ERROR]${colors.reset} ${msg}`, - ...args - ); + console.error(`${prefixText}${pc.red("[ERROR]")} ${msg}`, ...args); }, - /** - * Logs a debug-level message to the console. - * @param {string} msg - The message to log. - * @param {...any} args - Additional arguments for console.log. - */ debug: (msg, ...args) => { - console.log( - `${prefixText}${colors.gray}[DEBUG]${colors.reset} ${msg}`, - ...args - ); + console.log(`${prefixText}${pc.gray("[DEBUG]")} ${msg}`, ...args); }, - /** - * Prints a header message with bright cyan formatting. - * @param {string} msg - The header message. - */ header: (msg) => { - console.log( - `\n${prefixText}${colors.bright}${colors.cyan}${msg}${colors.reset}\n` - ); + console.log(`\n${prefixText}${pc.bold(pc.cyan(msg))}\n`); }, - /** - * Prints a step message with dim formatting. - * @param {string} msg - The step message. - * @param {...any} args - Additional arguments for console.log. - */ step: (msg, ...args) => { - console.log( - `${prefixText}${colors.dim} > ${msg}${colors.reset}`, - ...args - ); + console.log(`${prefixText}${pc.dim(` > ${msg}`)}`, ...args); }, - /** - * Prints a labeled path with dim label and cyan path. - * @param {string} label - Label for the path (e.g., "Config"). - * @param {string} path - The path value. - */ path: (label, path) => { - console.log( - `${prefixText} ${colors.dim}${label}:${colors.reset} ${colors.cyan}${path}${colors.reset}` - ); + console.log(`${prefixText} ${pc.dim(`${label}:`)} ${pc.cyan(path)}`); }, }; } /** * @typedef {LoggerMethods & { - * colors: typeof colors, * electron: LoggerMethods, * backend: LoggerMethods, * config: LoggerMethods, @@ -154,8 +87,6 @@ function createLoggerMethods(prefix = "", prefixColor = "") { * logger.log("green", "Success message"); */ export const logger = { - colors, - // Default logger methods (no prefix) ...createLoggerMethods(), @@ -171,16 +102,16 @@ export const logger = { * @param {string} msg - Message to log. */ process: (name, msg) => { - console.log(`${colors.magenta}[${name}]${colors.reset} ${msg}`); + console.log(`${pc.magenta}[${name}]${pc.reset} ${msg}`); }, /** * Logs a message in a specified color. - * @param {keyof typeof colors} color - Color key from the colors object. + * @param {keyof typeof pc} color - Color key from the pc object. * @param {string} msg - Message to log. * @param {...any} args - Additional arguments for console.log. */ log: (color, msg, ...args) => { - console.log(`${colors[color] || ""}${msg}${colors.reset}`, ...args); + console.log(`${pc[color] || ""}${msg}${pc.reset}`, ...args); }, }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 42f09f1ba..9698bd788 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -40,6 +40,9 @@ importers: electron-updater: specifier: ^6.7.3 version: 6.7.3 + picocolors: + specifier: ^1.1.1 + version: 1.1.1 devDependencies: '@vitest/coverage-v8': specifier: ^4.0.18 From f7cd2d037281804fad37bb1762085f34f49a732c Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Thu, 12 Feb 2026 14:50:12 +0100 Subject: [PATCH 35/38] feat: remove colors file and improve logging --- electron-app/main.js | 13 ++- electron-app/src/processes/backend.js | 142 ++++++++++++++------------ electron-app/src/utils/colors.js | 52 ---------- 3 files changed, 87 insertions(+), 120 deletions(-) delete mode 100644 electron-app/src/utils/colors.js diff --git a/electron-app/main.js b/electron-app/main.js index 8fd2f5842..2ccc19c9f 100644 --- a/electron-app/main.js +++ b/electron-app/main.js @@ -21,16 +21,23 @@ setupIpcHandlers(); // App lifecycle: wait for Electron to be ready app.whenReady().then(async () => { // Initialize ConfigManager and ensure config exists BEFORE starting backend - logger.electron.step("Initializing configuration..."); + logger.electron.header("Initializing configuration..."); // Get ConfigManager instance (creates config from template if needed) await getConfigManager(); - logger.electron.step("Configuration ready"); + logger.electron.header("Configuration ready"); // Start backend process - startBackend(); + try { + await startBackend(); + logger.electron.header("Backend process spawned"); + } catch (error) { + // Start backend already shows these errors + return; + } // Create main application window createWindow(); + logger.electron.header("Main application window created"); // Updater setup if (!app.isPackaged) { diff --git a/electron-app/src/processes/backend.js b/electron-app/src/processes/backend.js index ccdc7b1ba..1e215619d 100644 --- a/electron-app/src/processes/backend.js +++ b/electron-app/src/processes/backend.js @@ -5,16 +5,15 @@ */ import { spawn } from "child_process"; -import { dialog } from "electron"; +import { app, dialog } from "electron"; +import fs from "fs"; +import path from "path"; +import { logger } from "../utils/logger.js"; import { getAppPath, getBinaryPath, getUserConfigPath, } from "../utils/paths.js"; -import fs from "fs"; -import { app } from "electron"; -import path from "path"; -import { logger } from "../utils/logger.js"; // Get the application root path const appPath = getAppPath(); @@ -32,69 +31,82 @@ let lastBackendError = null; * startBackend(); */ function startBackend() { - // Get paths for binary and config - const backendBin = getBinaryPath("backend"); - const configPath = getUserConfigPath(); - - // Check if binary exists before attempting to start - if (!fs.existsSync(backendBin)) { - logger.backend.error(`Backend binary not found: ${backendBin}`); - dialog.showErrorBox("Error", `Backend binary not found at: ${backendBin}`); - return; - } - - logger.backend.info(`Starting backend: ${backendBin}, config: ${configPath}`); - - // Set working directory to backend/cmd in development, or resources in production - const workingDir = !app.isPackaged - ? path.join(appPath, "..", "backend", "cmd") - : path.dirname(configPath); - - // Spawn the backend process with config argument - backendProcess = spawn(backendBin, ["--config", configPath], { - cwd: workingDir, - }); - - // Log stdout output from backend - backendProcess.stdout.on("data", (data) => { - logger.backend.info(`${data.toString().trim()}`); - }); - - // Capture stderr output (where Go errors/panics are written) - backendProcess.stderr.on("data", (data) => { - const errorMsg = data.toString().trim(); - logger.backend.error(errorMsg); - // Store the last error message - lastBackendError = errorMsg; - }); + return new Promise((resolve, reject) => { + // Get paths for binary and config + const backendBin = getBinaryPath("backend"); + const configPath = getUserConfigPath(); + + // Check if binary exists before attempting to start + if (!fs.existsSync(backendBin)) { + logger.backend.error(`Backend binary not found: ${backendBin}`); + dialog.showErrorBox( + "Error", + `Backend binary not found at: ${backendBin}` + ); + return reject(new Error(`Backend binary not found: ${backendBin}`)); + } - // Handle spawn errors - backendProcess.on("error", (error) => { - logger.backend.error(`Failed to start backend: ${error.message}`); - dialog.showErrorBox( - "Backend Error", - `Failed to start backend: ${error.message}` + logger.backend.info( + `Starting backend: ${backendBin}, config: ${configPath}` ); - }); - // Handle process exit - backendProcess.on("close", (code) => { - logger.backend.info(`Backend process exited with code ${code}`); - // Show error dialog if process crashed (non-zero exit code) - if (code !== 0 && code !== null) { - // Build error message with actual error details - let errorMessage = `Backend exited with code ${code}`; - - if (lastBackendError) { - errorMessage += `\n\n${lastBackendError}`; - } else { - errorMessage += "\n\n(No error output captured)"; + // Set working directory to backend/cmd in development, or resources in production + const workingDir = !app.isPackaged + ? path.join(appPath, "..", "backend", "cmd") + : path.dirname(configPath); + + // Spawn the backend process with config argument + backendProcess = spawn(backendBin, ["--config", configPath], { + cwd: workingDir, + }); + + // Log stdout output from backend + backendProcess.stdout.on("data", (data) => { + logger.backend.info(`${data.toString().trim()}`); + }); + + // Capture stderr output (where Go errors/panics are written) + backendProcess.stderr.on("data", (data) => { + const errorMsg = data.toString().trim(); + logger.backend.error(errorMsg); + // Store the last error message + lastBackendError = errorMsg; + }); + + // Handle spawn errors + backendProcess.on("error", (error) => { + logger.backend.error(`Failed to start backend: ${error.message}`); + dialog.showErrorBox( + "Backend Error", + `Failed to start backend: ${error.message}` + ); + return reject(new Error(`Failed to start backend: ${error.message}`)); + }); + + // If the backend didn't fail in this period of time, resolve the promise + setTimeout(() => { + resolve(backendProcess); + }, 1000); + + // Handle process exit + backendProcess.on("close", (code) => { + logger.backend.info(`Backend process exited with code ${code}`); + // Show error dialog if process crashed (non-zero exit code) + if (code !== 0 && code !== null) { + // Build error message with actual error details + let errorMessage = `Backend exited with code ${code}`; + + if (lastBackendError) { + errorMessage += `\n\n${lastBackendError}`; + } else { + errorMessage += "\n\n(No error output captured)"; + } + + dialog.showErrorBox("Backend Crashed", errorMessage); + // Clear error message after showing + lastBackendError = null; } - - dialog.showErrorBox("Backend Crashed", errorMessage); - // Clear error message after showing - lastBackendError = null; - } + }); }); } @@ -128,4 +140,4 @@ function restartBackend() { startBackend(); } -export { startBackend, stopBackend, restartBackend }; +export { restartBackend, startBackend, stopBackend }; diff --git a/electron-app/src/utils/colors.js b/electron-app/src/utils/colors.js deleted file mode 100644 index fd982d517..000000000 --- a/electron-app/src/utils/colors.js +++ /dev/null @@ -1,52 +0,0 @@ -/** - * @module utils - * @description ANSI color codes for terminal output formatting. - * Provides color constants for styling console messages with reset, brightness, and color options. - */ - -/** - * Object containing ANSI escape codes for terminal text coloring and formatting. - * @type {Object} - * @property {string} reset - ANSI reset code to clear all formatting. - * @property {string} bright - ANSI code for bright/bold text. - * @property {string} dim - ANSI code for dim text. - * @property {string} red - ANSI code for red text. - * @property {string} green - ANSI code for green text. - * @property {string} yellow - ANSI code for yellow text. - * @property {string} blue - ANSI code for blue text. - * @property {string} magenta - ANSI code for magenta text. - * @property {string} cyan - ANSI code for cyan text. - * @property {string} white - ANSI code for white text. - * @property {string} gray - ANSI code for gray text. - * @property {string} brightRed - ANSI code for bright red text. - * @property {string} brightGreen - ANSI code for bright green text. - * @property {string} brightYellow - ANSI code for bright yellow text. - * @property {string} brightBlue - ANSI code for bright blue text. - * @property {string} brightMagenta - ANSI code for bright magenta text. - * @property {string} brightCyan - ANSI code for bright cyan text. - * @example - * import { colors } from './colors.js'; - * console.log(`${colors.green}Success!${colors.reset}`); - * console.log(`${colors.brightRed}Error!${colors.reset}`); - */ -export const colors = { - reset: "\x1b[0m", - bright: "\x1b[1m", - dim: "\x1b[2m", - - red: "\x1b[31m", - green: "\x1b[32m", - yellow: "\x1b[33m", - blue: "\x1b[34m", - magenta: "\x1b[35m", - cyan: "\x1b[36m", - white: "\x1b[37m", - gray: "\x1b[90m", - - brightRed: "\x1b[91m", - brightGreen: "\x1b[92m", - brightYellow: "\x1b[93m", - brightBlue: "\x1b[94m", - brightMagenta: "\x1b[95m", - brightCyan: "\x1b[96m", -}; From 0de06b918fac176523cdb29f0f90256c9d74571b Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Thu, 12 Feb 2026 15:09:29 +0100 Subject: [PATCH 36/38] feat: add icons --- electron-app/icon.png | Bin 0 -> 55108 bytes electron-app/icons/1024x1024.png | Bin 0 -> 174863 bytes electron-app/icons/128x128.png | Bin 0 -> 9066 bytes electron-app/icons/16x16.png | Bin 0 -> 607 bytes electron-app/icons/24x24.png | Bin 0 -> 1007 bytes electron-app/icons/256x256.png | Bin 0 -> 23547 bytes electron-app/icons/32x32.png | Bin 0 -> 1473 bytes electron-app/icons/48x48.png | Bin 0 -> 2503 bytes electron-app/icons/512x512.png | Bin 0 -> 63906 bytes electron-app/icons/64x64.png | Bin 0 -> 3644 bytes electron-app/icons/icon.icns | Bin 0 -> 367452 bytes electron-app/icons/icon.ico | Bin 0 -> 361102 bytes electron-app/package.json | 7 ++++--- 13 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 electron-app/icon.png create mode 100644 electron-app/icons/1024x1024.png create mode 100644 electron-app/icons/128x128.png create mode 100644 electron-app/icons/16x16.png create mode 100644 electron-app/icons/24x24.png create mode 100644 electron-app/icons/256x256.png create mode 100644 electron-app/icons/32x32.png create mode 100644 electron-app/icons/48x48.png create mode 100644 electron-app/icons/512x512.png create mode 100644 electron-app/icons/64x64.png create mode 100644 electron-app/icons/icon.icns create mode 100644 electron-app/icons/icon.ico diff --git a/electron-app/icon.png b/electron-app/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3555d0ad77d8614d256f07b26804324d6c8c6d77 GIT binary patch literal 55108 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%0A3}vd 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 Rc!%aMxRxQT?4M^5{|68UuI~T< literal 0 HcmV?d00001 diff --git a/electron-app/icons/16x16.png b/electron-app/icons/16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..ccd0fdfb2a784a962aec7c483b4893f706486de0 GIT binary patch literal 607 zcmV-l0-*hgP)Z`ZZ`X_sv3#l-kLA^pk!kUP*`XLX&y(7qU{g z6Hm&G+`7;AKN2H(#$d?g7%{TdAtka*`t=dr9$DmzJHn+!xo(f;2jm&E(=?`8+o0Q{ zl+&7{euUq5_~{p+euUZ+QhzAjT$bDFkYyaJvA94CoO+72hh&kNDMFywWu;Aj!0sN? zHSVv9Qev-9b%Gcinmb0LP6+mmSA>p3zI$y-xsV?ImV9-W zdW{#Jci@}r*S+?}>pon1-(0il&<9^LOwyxG0=dDEt%Au3e|P@eId{JO&Oh`AY!~$Q z*mx{lJS!SWiS@^?djV!X`e4xL?6Vt})!sg#Z6MiyGsCRyEJFhC&q tOTETaqMUPbmd3OLxdZbJ<{SR2KLD?)!R_scjxPWJ002ovPDHLkV1m%CC-ndT literal 0 HcmV?d00001 diff --git a/electron-app/icons/24x24.png b/electron-app/icons/24x24.png new file mode 100644 index 0000000000000000000000000000000000000000..b4c0a5c1fa1bc99a82b338e81132b3e4be5496d1 GIT binary patch literal 1007 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 literal 0 HcmV?d00001 diff --git a/electron-app/icons/32x32.png b/electron-app/icons/32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..58c8034d950726720887c47f2f7cc157febd46e9 GIT binary patch literal 1473 zcmV;y1wQ(TP)P(?i<=t&X+T5WM= zj!sFvpw%HyIW;3rO$*=rGP`b&=sR|b6K4rQPYBcsYB_^-l7ztlHeJW)5FwCfWGTZ9 zvXnHTUXTQqTU3#HLAzvlfHb935~KLiK^B`bU7eD{CkTOn5U3S|KrJUC>yQMpl(HhC zmNVQSqR1H@pw;1ni{iy41`1*nc5I@GY~CO)EOGQCtqw=tlIfaxpO6qrLZDt_q`_UE zW5WnBGCj+YlYFqq(h5b+@E}72Y@J~92CEKF@!Ba?+6*_SA~EvL`@(&n7muFQ701s)=53X z4f0e^RY`Ph7-9P+VkAc9=JoyKl~+9d!ykBl-#!mN_Nc0=toP>em zPX`WYx7&IamdJBjZI{_Pp{G+y^u&V04H^jVvQib?x50TVK6aGd@0Uy`4KJ^=;jz@HEJ`A>gl)#UXYKSP#TwYO9X||YOq}gKE4c2;Q?_SUB-K+1} zUp(gzFTbp7e0Ku!V-t3NCIU^qwZSv zJ^xF4o_f-4x87#Y6HmCNJY#y6Gw)JW;=;1Nuw|pndJ$#mT6RuO`u*=-^0BP6h>@z& zbM9R|^@5wXORN; z$^L)x<{7H!W2+*so#fzALSUs$tzfu8jKTx=v28+Mrt34~i$%F?P8ALO`^ttT;DI zjEJsq-7sIch3hxCn#@`uaO)0k-p1@ai_28es^Hq94`nH%LyQi(mdw>82@_*XjQM{{ be9Ha>)nXcVy^V(L00000NkvXXu0mjfbY0nc literal 0 HcmV?d00001 diff --git a/electron-app/icons/48x48.png b/electron-app/icons/48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..0aecdf06e0521ad539b99874b90a9f92b02a923b GIT binary patch literal 2503 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 TJpr2k1AmP4P4%jDonrqFhsZq) literal 0 HcmV?d00001 diff --git a/electron-app/icons/64x64.png b/electron-app/icons/64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..37afc188c8735c5e3dedcb5643178a75f5f5d22d GIT binary patch literal 3644 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�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�>;8qQ7OrQgPHis@$)Y) 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ɣm~b1FGinx0tTL+2Q+AHAAvYP|1+vZ%J5yl3J`DrZ5OO@(sNn8 z;WEaXU5fg-hv#WB1mu{O$jIU?N=bor(qw-8BL@Rln1Lz*ey<(Sy4asPTtG&u|LK59uI#|%iBBST3fLa`ZoIE9CR@HM9-{-oTMX6T{*ac|c z2fzJsAPg;UGV1#|77jrKF>q{-iμQ2o@bnz`9I$uIJ+kB%HCQIC)Np-U((Fu>vx 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 J39L&3{||i4{Xzf$ literal 0 HcmV?d00001 diff --git a/electron-app/package.json b/electron-app/package.json index 888ca3e67..6d9fd7a2c 100644 --- a/electron-app/package.json +++ b/electron-app/package.json @@ -21,6 +21,7 @@ "dist:mac": "electron-builder --mac", "dist:linux": "electron-builder --linux", "test": "vitest run", + "build-icons": "electron-icon-builder --input=./icon.png --output=./ --flatten", "build": "node build.mjs", "build:win": "node build.mjs --win", "build:linux": "node build.mjs --linux", @@ -86,7 +87,7 @@ "nsis", "portable" ], - "icon": "icon.ico" + "icon": "icons/icon.ico" }, "nsis": { "artifactName": "${productName}-Setup-${version}.${ext}" @@ -99,7 +100,7 @@ "dmg", "zip" ], - "icon": "icon.icns", + "icon": "icons/icon.icns", "category": "public.app-category.utilities", "artifactName": "${productName}-${version}-macos-${arch}.${ext}" }, @@ -108,7 +109,7 @@ "AppImage", "deb" ], - "icon": "icon.png", + "icon": "icons/512x512.png", "category": "Utility", "artifactName": "${productName}-${version}-linux-${arch}.${ext}" } From d88b437232eececb0d8146bf4d519b58355946a0 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Fri, 13 Feb 2026 19:53:17 +0100 Subject: [PATCH 37/38] fix: background throttling and first packet rerender --- .github/workflows/build.yaml | 557 +++++------------- .github/workflows/release.yaml | 25 +- electron-app/package.json | 4 +- electron-app/src/ipc/handlers.js | 10 +- electron-app/src/windows/mainWindow.js | 2 + .../charts/components/ChartSurface.tsx | 13 +- 6 files changed, 163 insertions(+), 448 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 2594970f7..3387dd908 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -10,238 +10,76 @@ on: workflow_dispatch: inputs: rebuild-backend: - description: Build backend binaries + description: Force rebuild backend type: boolean - default: true - rebuild-control-station: - description: Build control station frontend + default: false + rebuild-testing-view: + description: Force rebuild testing-view type: boolean - default: true - rebuild-ethernet-view: - description: Build ethernet view frontend + default: false + rebuild-competition-view: + description: Force rebuild competition-view type: boolean - default: true - workflow_call: - inputs: - build-backend: - description: Build backend binaries - type: boolean - default: true - required: false - build-control-station: - description: Build control station frontend - type: boolean - default: true - required: false - build-ethernet-view: - description: Build ethernet view frontend - type: boolean - default: true - required: false + default: false + # workflow_call: + # inputs: + # build-backend: + # description: Build backend binaries + # type: boolean + # default: false + # required: false + # build-testing-view: + # description: Build testing-view + # type: boolean + # default: false + # required: false + # build-competition-view: + # description: Build competition-view + # type: boolean + # default: false + # required: false jobs: - # Detect what changed + # ------------------------------------------------------------------ + # 1. DETECT CHANGES + # Checks which parts of the codebase changed to avoid unnecessary builds + # ------------------------------------------------------------------ detect-changes: name: Detect Changes runs-on: ubuntu-latest - # We can't use this condition here because it would skip the whole job without setting the outputs - # if: github.event_name == 'push' || github.event_name == 'pull_request' - # Insted, we skip steps inside the job outputs: - backend_needs_rebuild: ${{ steps.changes.outputs.backend_any_changed == 'true' || github.event.inputs.rebuild-backend == 'true' }} - control-station_needs_rebuild: ${{ steps.changes.outputs.control-station_any_changed == 'true' || github.event.inputs.rebuild-control-station == 'true' }} - ethernet-view_needs_rebuild: ${{ steps.changes.outputs.ethernet-view_any_changed == 'true' || github.event.inputs.rebuild-ethernet-view == 'true' }} - common-front_needs_rebuild: ${{ steps.changes.outputs.common-front_any_changed == 'true' || github.event.inputs.rebuild-common-front == 'true' }} + backend: ${{ steps.filter.outputs.backend == 'true' || github.event.inputs.rebuild-backend == 'true' || inputs.build-backend == true }} + testing-view: ${{ steps.filter.outputs.testing-view == 'true' || github.event.inputs.rebuild-testing-view == 'true' || inputs.build-testing-view == true }} + competition-view: ${{ steps.filter.outputs.competition-view == 'true' || github.event.inputs.rebuild-competition-view == 'true' || inputs.build-competition-view == true }} steps: - # Only run on push or pull request events - # Skip on workflow_call or workflow_dispatch - - name: Checkout repository - if: github.event_name == 'push' || github.event_name == 'pull_request' - uses: actions/checkout@v4 - with: - fetch-depth: 0 + - uses: actions/checkout@v4 - # Only run on push or pull request events - # Skip on workflow_call or workflow_dispatch - - name: Detect changed files - if: github.event_name == 'push' || github.event_name == 'pull_request' - id: changes - uses: tj-actions/changed-files@v41 + - uses: dorny/paths-filter@v3 + id: filter with: - files_yaml: | + filters: | backend: - 'backend/**/*' - control-station: - - 'control-station/**/*' - ethernet-view: - - 'ethernet-view/**/*' - common-front: - - 'common-front/**/*' - - # We want to set outputs even if the job should be skipped - - name: Set outputs - id: set-outputs - run: | - if [ "${{ github.event_name }}" = "push" ] || [ "${{ github.event_name }}" = "pull_request" ]; then - echo "backend_needs_rebuild=${{ steps.changes.outputs.backend_any_changed == 'true' && 'true' || 'false' }}" >> $GITHUB_OUTPUT - echo "control-station_needs_rebuild=${{ steps.changes.outputs.control-station_any_changed == 'true' || steps.changes.outputs.common-front_any_changed == 'true' && 'true' || 'false' }}" >> $GITHUB_OUTPUT - echo "ethernet-view_needs_rebuild=${{ steps.changes.outputs.ethernet-view_any_changed == 'true' || steps.changes.outputs.common-front_any_changed == 'true' && 'true' || 'false' }}" >> $GITHUB_OUTPUT - echo "common-front_needs_rebuild=${{ steps.changes.outputs.common-front_any_changed == 'true' && 'true' || 'false' }}" >> $GITHUB_OUTPUT - else - # On workflow_call/dispatch, default to false (no changes detected) - echo "backend_needs_rebuild=false" >> $GITHUB_OUTPUT - echo "control-station_needs_rebuild=false" >> $GITHUB_OUTPUT - echo "ethernet-view_needs_rebuild=false" >> $GITHUB_OUTPUT - echo "common-front_needs_rebuild=false" >> $GITHUB_OUTPUT - fi - - - name: Debug changed files - if: github.event_name == 'push' || github.event_name == 'pull_request' - run: | - echo "Changed backend: ${{ steps.changes.outputs.backend_any_changed }}" - echo "Changed control-station: ${{ steps.changes.outputs.control-station_any_changed }}" - echo "Changed ethernet-view: ${{ steps.changes.outputs.ethernet-view_any_changed }}" - echo "Changed common-front: ${{ steps.changes.outputs.common-front_any_changed }}" - - # Download backend from previous build if no changes - download-backend: - name: Download Backend - ${{ matrix.platform }} - needs: detect-changes - # It is important to use != 'true' and not == 'false' because if they are no inputs (executed on push or pull request events), - # values for inputs will be undefined which gives false for any condition - # The same thing applies for detect changes outputs, because we skip this job on dispatch and call events - # Thus, it's outputs are undefined - if: | - needs.detect-changes.outputs.backend_needs_rebuild != 'true' && - inputs.build-backend != 'true' - runs-on: ubuntu-latest - # Continue on error is necessary because download-backend job can fail if backend artifact is not found - # and in this case it is not necessarily has to fail the build - continue-on-error: true - outputs: - downloaded: ${{ steps.download.outcome == 'success' }} - strategy: - fail-fast: false - matrix: - platform: [linux, windows, macos-intel, macos-arm64] - - steps: - - name: Download backend from latest build - id: download - uses: dawidd6/action-download-artifact@v3 - with: - workflow: build.yaml - branch: production - workflow_conclusion: "completed" - name: backend-${{ matrix.platform }} - path: backend-artifacts - if_no_artifact_found: fail - - - name: Re-upload backend artifact - if: steps.download.outcome == 'success' - uses: actions/upload-artifact@v4 - with: - name: backend-${{ matrix.platform }} - path: backend-artifacts/* - retention-days: 30 - - - name: Write matrix output - if: always() - uses: cloudposse/github-action-matrix-outputs-write@v1 - with: - matrix-step-name: download-backend - matrix-key: ${{ matrix.platform }} - outputs: | - downloaded: ${{ steps.download.outcome == 'success' }} - - # Aggregate download results - aggregate-downloads: - name: Aggregate Download Results - # Always run to ensure outputs are always available - if: always() - needs: [detect-changes, download-backend] - runs-on: ubuntu-latest - steps: - - name: Set defaults if backend changed - id: set-defaults - run: | - # If backend changed or build-backend is explicitly requested, set defaults and skip aggregation - if [ "${{ needs.detect-changes.outputs.backend_needs_rebuild }}" = "true" ] || [ "${{ inputs.build-backend }}" = "true" ]; then - echo "any_needs_rebuild=false" >> $GITHUB_OUTPUT - echo 'result={"downloaded":{"linux":false,"windows":false,"macos-intel":false,"macos-arm64":false}}' >> $GITHUB_OUTPUT - echo "Backend changed or build requested, using defaults" - fi - shell: bash - - - uses: cloudposse/github-action-matrix-outputs-read@v1 - id: read - if: needs.detect-changes.outputs.backend_needs_rebuild != 'true' && inputs.build-backend != 'true' - with: - matrix-step-name: download-backend - - - name: Check if any platform needs rebuild - if: needs.detect-changes.outputs.backend_needs_rebuild != 'true' && inputs.build-backend != 'true' - id: check-rebuild - run: | - # Parse the result JSON to check if any download failed - RESULT='${{ steps.read.outputs.result }}' - echo "Parsing result: $RESULT" - - # Check if any platform has downloaded=false - # The result format is: {downloaded:{linux:true,windows:false,...}} - if echo "$RESULT" | grep -q '"downloaded".*"linux":false' || \ - echo "$RESULT" | grep -q '"downloaded".*"windows":false' || \ - echo "$RESULT" | grep -q '"downloaded".*"macos-intel":false' || \ - echo "$RESULT" | grep -q '"downloaded".*"macos-arm64":false'; then - echo "any_needs_rebuild=true" >> $GITHUB_OUTPUT - echo "At least one platform download failed, rebuild needed" - else - echo "any_needs_rebuild=false" >> $GITHUB_OUTPUT - echo "All platform downloads succeeded, no rebuild needed" - fi - shell: bash - - - name: Debug aggregate-downloads outputs - if: always() - run: | - echo "=== aggregate-downloads Debug ===" - echo "inputs.build-backend: ${{ inputs.build-backend }}" - echo "" - echo "=== detect-changes outputs ===" - echo "needs.detect-changes.outputs.backend_needs_rebuild: ${{ needs.detect-changes.outputs.backend_needs_rebuild }}" - echo "needs.detect-changes.outcome: ${{ needs.detect-changes.outcome }}" - echo "" - echo "=== aggregate-downloads Debug ===" - echo "steps.read.outputs.result: ${{ steps.read.outputs.result }}" - echo "steps.read.outcome: ${{ steps.read.outcome }}" - echo "" - echo "=== All read outputs ===" - echo "${{ toJSON(steps.read.outputs) }}" - echo "" - echo "=== download-backend outcomes ===" - echo "needs.download-backend.outcome: ${{ needs.download-backend.outcome }}" - outputs: - outcome: ${{ steps.read.outcome != '' && steps.read.outcome || 'skipped' }} - any_needs_rebuild: ${{ steps.check-rebuild.outputs.any_needs_rebuild != '' && steps.check-rebuild.outputs.any_needs_rebuild || steps.set-defaults.outputs.any_needs_rebuild || 'false' }} - result: ${{ steps.read.outputs.result != '' && steps.read.outputs.result || steps.set-defaults.outputs.result || '{"downloaded":{"linux":false,"windows":false,"macos-intel":false,"macos-arm64":false}}' }} - - # Build Go backends on native platforms - # only if backend changed or download-backend failed + - 'go.work' + - 'go.work.sum' + testing-view: + - 'frontend/testing-view/**/*' + - 'frontend/frontend-kit/**/*' # Shared lib dependency + - 'pnpm-lock.yaml' + - 'pnpm-workspace.yaml' + competition-view: + - 'frontend/competition-view/**/*' + - 'frontend/frontend-kit/**/*' # Shared lib dependency + - 'pnpm-lock.yaml' + - 'pnpm-workspace.yaml' + + # ------------------------------------------------------------------ + # 2. BUILD BACKEND (MATRIX) + # Builds Go binaries for Linux, Windows, and macOS (Intel & Arm) + # ------------------------------------------------------------------ build-backend: - name: Build Backend - ${{ matrix.platform }} - needs: [detect-changes, download-backend, aggregate-downloads] - # Always is needed to execute this job even if backend download failed - # By default it would be skipped because dependent job failed - # Build if explicitly requested for this platform - # Also build if backend changed or download-backend failed - if: | - always() && - ( - inputs.build-backend == true || - needs.detect-changes.outputs.backend_needs_rebuild == 'true' || - needs.aggregate-downloads.outputs.outcome == 'success' && - needs.aggregate-downloads.outputs.any_needs_rebuild == 'true' - ) + name: Backend - ${{ matrix.platform }} + needs: detect-changes runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -249,253 +87,122 @@ jobs: include: - os: ubuntu-latest platform: linux - binary_name: backend-linux-amd64 - + binary: backend-linux-amd64 + goarch: amd64 - os: windows-latest platform: windows - binary_name: backend-windows-amd64.exe - + binary: backend-windows-amd64.exe + goarch: amd64 - os: macos-latest platform: macos-intel - binary_name: backend-darwin-amd64 + binary: backend-darwin-amd64 goarch: amd64 - - os: macos-latest platform: macos-arm64 - binary_name: backend-darwin-arm64 + binary: backend-darwin-arm64 goarch: arm64 - steps: - - name: Debug - run: | - echo "=== aggregate-downloads Debug ===" - echo "needs.aggregate-downloads.outputs.result: ${{ needs.aggregate-downloads.outputs.result }}" - echo "needs.aggregate-downloads.outputs.result.downloaded: ${{ fromJSON(needs.aggregate-downloads.outputs.result).downloaded }}" - echo "needs.aggregate-downloads.outputs.result.downloaded.platform: ${{ fromJSON(needs.aggregate-downloads.outputs.result).downloaded[matrix.platform] }}" - - - name: Check if artifact exists for this platform - id: check-artifact - shell: bash - run: | - ARTIFACT_EXISTS="${{ fromJSON(needs.aggregate-downloads.outputs.result).downloaded[matrix.platform] }}" - BUILD_EXPLICITLY="${{ inputs.build-backend == true }}" - CHANGES_DETECTED="${{ needs.detect-changes.outputs.backend_needs_rebuild == 'true' }}" - - if [ "$ARTIFACT_EXISTS" != "true" ] || [ "$BUILD_EXPLICITLY" = "true" ] || [ "$CHANGES_DETECTED" = "true" ]; then - echo "needs_build=true" >> $GITHUB_OUTPUT - echo "Building for ${{ matrix.platform }}" - else - echo "needs_build=false" >> $GITHUB_OUTPUT - echo "Artifact exists for ${{ matrix.platform }}, skipping build" - fi - - - name: Exit if no build needed - if: steps.check-artifact.outputs.needs_build != 'true' - shell: bash - run: | - echo "Skipping build - artifact already exists" + # OPTIMIZATION: Try to download existing artifact first + # Only runs if NO changes were detected and NO rebuild was forced + - name: Try Download Cache + if: needs.detect-changes.outputs.backend != 'true' + id: download + uses: dawidd6/action-download-artifact@v3 + continue-on-error: true + with: + workflow: build.yaml + branch: production + workflow_conclusion: success + name: backend-${{ matrix.platform }} + path: backend/cmd - - name: Checkout repository - if: steps.check-artifact.outputs.needs_build == 'true' - uses: actions/checkout@v4 + # BUILD: Only runs if download failed OR changes detected + - uses: actions/checkout@v4 + if: steps.download.outcome != 'success' - - name: Setup Go - if: steps.check-artifact.outputs.needs_build == 'true' - uses: actions/setup-go@v4 + - uses: actions/setup-go@v5 + if: steps.download.outcome != 'success' with: - go-version: "1.21" + go-version: "1.23" - - name: Install Linux dependencies - if: runner.os == 'Linux' && steps.check-artifact.outputs.needs_build == 'true' + - name: Install Linux Deps + if: runner.os == 'Linux' && steps.download.outcome != 'success' run: sudo apt-get update && sudo apt-get install -y libpcap-dev gcc - - name: Install macOS dependencies - if: runner.os == 'macOS' && steps.check-artifact.outputs.needs_build == 'true' + - name: Install macOS Deps + if: runner.os == 'macOS' && steps.download.outcome != 'success' run: brew install libpcap - - name: Build backend (Linux) - if: runner.os == 'Linux' && steps.check-artifact.outputs.needs_build == 'true' - working-directory: backend/cmd - run: | - CGO_ENABLED=1 go build -o ${{ matrix.binary_name }} . - - - name: Build backend (Windows) - if: runner.os == 'Windows' && steps.check-artifact.outputs.needs_build == 'true' - working-directory: backend/cmd - run: | - $env:CGO_ENABLED="1" - go build -o ${{ matrix.binary_name }} . - shell: pwsh - - - name: Build backend (macOS) - if: runner.os == 'macOS' && steps.check-artifact.outputs.needs_build == 'true' + - name: Build Binary + if: steps.download.outcome != 'success' working-directory: backend/cmd + shell: bash run: | - CGO_ENABLED=1 GOARCH=${{ matrix.goarch }} go build -o ${{ matrix.binary_name }} . + go build -o ${{ matrix.binary }} . + env: + CGO_ENABLED: 1 + GOARCH: ${{ matrix.goarch }} - - name: Upload backend binary - if: steps.check-artifact.outputs.needs_build == 'true' - uses: actions/upload-artifact@v4 + # UPLOAD: Always runs to ensure artifact availability for release + - uses: actions/upload-artifact@v4 with: name: backend-${{ matrix.platform }} - path: backend/cmd/${{ matrix.binary_name }} + path: backend/cmd/${{ matrix.binary }} retention-days: 30 - # Download control-station from previous build if no changes - download-control-station: - name: Download Control Station + # ------------------------------------------------------------------ + # 3. BUILD FRONTEND (MATRIX) + # Builds Testing View and Competition View using pnpm & turbo + # ------------------------------------------------------------------ + build-frontend: + name: Build ${{ matrix.view }} needs: detect-changes - # The condition checks if control station changed or common front changed - # It is important to use != 'true' and not == 'false' because if they are no inputs (executed on push or pull request events), - # values for inputs will be undefined which gives false for any condition - # The same thing applies for detect changes outputs, because we skip this job on dispatch and call events - # Thus, it's outputs are undefined - if: | - needs.detect-changes.outputs.control-station_needs_rebuild != 'true' && - needs.detect-changes.outputs.common-front_needs_rebuild != 'true' && - inputs.build-control-station != 'true' runs-on: ubuntu-latest - # Continue on error is necessary because download-control-station job can fail if control station artifact is not found - # and it is not necessary to fail the build in this case - continue-on-error: true - outputs: - downloaded: ${{ steps.download.outcome == 'success' }} + strategy: + fail-fast: false + matrix: + view: [testing-view, competition-view] steps: - - name: Download control-station from latest build + # OPTIMIZATION: Try to download existing artifact first + # Only runs if NO changes were detected and NO rebuild was forced + - name: Try Download Cache + if: needs.detect-changes.outputs[matrix.view] != 'true' id: download uses: dawidd6/action-download-artifact@v3 + continue-on-error: true with: workflow: build.yaml branch: production - workflow_conclusion: "completed" - name: control-station - path: control-station-artifacts - if_no_artifact_found: fail + workflow_conclusion: success + name: ${{ matrix.view }} + path: frontend/${{ matrix.view }}/dist - - name: Re-upload control-station artifact - if: steps.download.outcome == 'success' - uses: actions/upload-artifact@v4 - with: - name: control-station - path: control-station-artifacts/** - retention-days: 30 + # BUILD: Only runs if download failed OR changes detected + - uses: actions/checkout@v4 + if: steps.download.outcome != 'success' - # Build control-station (if control-station or common-front changed) - build-control-station: - name: Build Control Station - needs: [detect-changes, download-control-station] - # Always is needed to execute this job even if control station download failed - # By default it would be skipped because dependent job failed - # The condition checks if control station changed or common front changed or download control station failed - if: always() && - (needs.detect-changes.outputs.control-station_needs_rebuild == 'true' || - needs.detect-changes.outputs.common-front_needs_rebuild == 'true' || - needs.download-control-station.outputs.downloaded != 'true' || - inputs.build-control-station == 'true') - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: "20" - - - name: Build common-front - working-directory: common-front - run: | - npm ci - npm run build - - - name: Build control-station - working-directory: control-station - run: | - npm ci - npm run build - - - name: Upload control-station artifact - uses: actions/upload-artifact@v4 - with: - name: control-station - path: control-station/static/** - retention-days: 30 - - # Download ethernet-view from previous build if no changes - download-ethernet-view: - name: Download Ethernet View - needs: detect-changes - # It is important to use != 'true' and not == 'false' because if they are no inputs (executed on push or pull request events), - # values for inputs will be undefined which gives false for any condition - # The same thing applies for detect changes outputs, because we skip this job on dispatch and call events - # Thus, it's outputs are undefined - if: | - needs.detect-changes.outputs.ethernet-view_needs_rebuild != 'true' && - needs.detect-changes.outputs.common-front_needs_rebuild != 'true' && - inputs.build-ethernet-view != 'true' - runs-on: ubuntu-latest - # Continue on error is necessary because download-ethernet-view job can fail if ethernet view artifact is not found - # and it is not necessary to fail the build in this case - continue-on-error: true - outputs: - downloaded: ${{ steps.download.outcome == 'success' }} - steps: - - name: Download ethernet-view from latest build - id: download - uses: dawidd6/action-download-artifact@v3 + - uses: pnpm/action-setup@v4 + if: steps.download.outcome != 'success' with: - workflow: build.yaml - branch: production - workflow_conclusion: "completed" - name: ethernet-view - path: ethernet-view-artifacts - if_no_artifact_found: fail + version: 10 - - name: Re-upload ethernet-view artifact - if: steps.download.outcome == 'success' - uses: actions/upload-artifact@v4 + - uses: actions/setup-node@v4 + if: steps.download.outcome != 'success' with: - name: ethernet-view - path: ethernet-view-artifacts/** - retention-days: 30 + node-version: 20 + cache: "pnpm" - # Build ethernet-view (if ethernet-view or common-front changed) - build-ethernet-view: - name: Build Ethernet View - needs: [detect-changes, download-ethernet-view] - # Always is needed to execute this job even if ethernet view download failed - # By default it would be skipped because dependent job failed - # The condition checks if ethernet view changed or common front changed or download ethernet view failed - if: always() && - (needs.detect-changes.outputs.ethernet-view_needs_rebuild == 'true' || - needs.detect-changes.outputs.common-front_needs_rebuild == 'true' || - needs.download-ethernet-view.outputs.downloaded != 'true' || - inputs.build-ethernet-view == 'true') - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: "20" + - name: Install Dependencies + if: steps.download.outcome != 'success' + run: pnpm install --frozen-lockfile - - name: Build common-front - working-directory: common-front - run: | - npm ci - npm run build - - - name: Build ethernet-view - working-directory: ethernet-view - run: | - npm ci - npm run build + - name: Build with Turbo + if: steps.download.outcome != 'success' + run: pnpm turbo build --filter=${{ matrix.view }} - - name: Upload ethernet-view artifact - uses: actions/upload-artifact@v4 + # UPLOAD: Always runs to ensure artifact availability for release + - uses: actions/upload-artifact@v4 with: - name: ethernet-view - path: ethernet-view/static/** + name: ${{ matrix.view }} + path: frontend/${{ matrix.view }}/dist/** retention-days: 30 diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 09ced9df5..bdcfd770a 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -123,23 +123,24 @@ jobs: path: electron-app/binaries # Download frontend builds from latest build - - name: Download control-station + # TODO: Uncomment when competition view is ready + # - name: Download competition-view + # uses: dawidd6/action-download-artifact@v3 + # with: + # workflow: build.yaml + # branch: production + # workflow_conclusion: success + # name: competition-view + # path: electron-app/renderer/competition-view + + - name: Download testing-view uses: dawidd6/action-download-artifact@v3 with: workflow: build.yaml branch: production workflow_conclusion: success - name: control-station - path: electron-app/renderer/control-station - - - name: Download ethernet-view - uses: dawidd6/action-download-artifact@v3 - with: - workflow: build.yaml - branch: production - workflow_conclusion: success - name: ethernet-view - path: electron-app/renderer/ethernet-view + name: testing-view + path: electron-app/renderer/testing-view - name: Set executable permissions (Unix) if: runner.os != 'Windows' diff --git a/electron-app/package.json b/electron-app/package.json index 71ea9391a..d827c9ded 100644 --- a/electron-app/package.json +++ b/electron-app/package.json @@ -25,12 +25,12 @@ "build:win": "node build.mjs --win", "build:linux": "node build.mjs --linux", "build:mac": "node build.mjs --mac", - "build:all": "node build.mjs", "build:backend": "node build.mjs --backend", "build:backend:win": "node build.mjs --backend --win", "build:backend:linux": "node build.mjs --backend --linux", "build:backend:mac": "node build.mjs --backend --mac", - "build:testing-view": "node build.mjs --testing-view", + "build:testing": "node build.mjs --testing-view", + "build:competition": "node build.mjs --competition-view", "asar:win": "asar list dist/win-unpacked/resources/app.asar | findstr /V node_modules", "asar:mac": "asar list dist/mac-unpacked/resources/app.asar | findstr /V node_modules", "asar:linux": "asar list dist/linux-unpacked/resources/app.asar | findstr /V node_modules" diff --git a/electron-app/src/ipc/handlers.js b/electron-app/src/ipc/handlers.js index 414f1e410..2aefe2bf4 100644 --- a/electron-app/src/ipc/handlers.js +++ b/electron-app/src/ipc/handlers.js @@ -7,19 +7,19 @@ * - Folder selection dialogs */ -import { ipcMain, dialog } from "electron"; +import { dialog, ipcMain } from "electron"; import { + importConfig, readConfig, writeConfig, - importConfig, } from "../config/configInstance.js"; +import { restartBackend } from "../processes/backend.js"; +import { logger } from "../utils/logger.js"; import { - loadView, getCurrentView, getMainWindow, + loadView, } from "../windows/mainWindow.js"; -import { restartBackend } from "../processes/backend.js"; -import { logger } from "../utils/logger.js"; /** * Initializes all IPC handlers for communication between main and renderer processes. diff --git a/electron-app/src/windows/mainWindow.js b/electron-app/src/windows/mainWindow.js index 0799139cf..259f8dc79 100644 --- a/electron-app/src/windows/mainWindow.js +++ b/electron-app/src/windows/mainWindow.js @@ -38,6 +38,8 @@ function createWindow() { contextIsolation: true, // Disable node integration for security nodeIntegration: false, + // Disable background throttling to prevent data loss when window is minimized + backgroundThrottling: false, }, title: "Hyperloop Control Station", backgroundColor: "#1a1a1a", diff --git a/frontend/testing-view/src/features/charts/components/ChartSurface.tsx b/frontend/testing-view/src/features/charts/components/ChartSurface.tsx index 969a13298..048d08f15 100644 --- a/frontend/testing-view/src/features/charts/components/ChartSurface.tsx +++ b/frontend/testing-view/src/features/charts/components/ChartSurface.tsx @@ -1,3 +1,4 @@ +import type { TelemetryPacket } from "@workspace/core"; import { Button } from "@workspace/ui"; import { ChevronLeft, ChevronRight, X } from "@workspace/ui/icons"; import { cn } from "@workspace/ui/lib"; @@ -168,11 +169,16 @@ export const ChartSurface = memo( // Update Chart Data (Runs only when 'data' actually changes) useEffect(() => { - const primaryPacket = packets[0]; - if (!primaryPacket || !uplotRef.current) return; + const activePackets = packets.filter( + (p): p is TelemetryPacket => p !== undefined, + ); + + if (activePackets.length === 0 || !uplotRef.current) return; + + const latestCount = Math.max(...activePackets.map((p) => p.count)); const snapshot = { - count: primaryPacket.count, + count: latestCount, values: series.map((p, i) => { const pkt = packets[i]; const m = pkt?.measurementUpdates?.[p.variable]; @@ -206,7 +212,6 @@ export const ChartSurface = memo( const range = currentXMax - currentXMin; const shift = range * 0.2; - // If the view was already at the "Present" before this update... if (currentXMax >= prevLatestCount) { const currentXMin = u.scales.x.min!; const range = currentXMax - currentXMin; From 2d069ada993c33c45e09918d4c411d3a4f641dd4 Mon Sep 17 00:00:00 2001 From: Maxim <74974283+maximka76667@users.noreply.github.com> Date: Mon, 16 Feb 2026 13:10:16 +0100 Subject: [PATCH 38/38] feat: change right sidebar layout and add a little bit of autoresizing --- .../rightSidebar/RightSidebarContent.tsx | 100 +++++++----- .../rightSidebar/RightSidebarHeader.tsx | 152 ++++++------------ .../rightSidebar/RightSidebarToggle.tsx | 46 ++++++ .../rightSidebar/sections/CommandsSection.tsx | 15 ++ .../rightSidebar/sections/TabsSection.tsx | 121 -------------- .../sections/TelemetrySection.tsx | 16 ++ .../workspace/store/rightSidebarSlice.ts | 20 ++- frontend/testing-view/src/pages/Testing.tsx | 25 ++- 8 files changed, 215 insertions(+), 280 deletions(-) create mode 100644 frontend/testing-view/src/features/workspace/components/rightSidebar/RightSidebarToggle.tsx create mode 100644 frontend/testing-view/src/features/workspace/components/rightSidebar/sections/CommandsSection.tsx delete mode 100644 frontend/testing-view/src/features/workspace/components/rightSidebar/sections/TabsSection.tsx create mode 100644 frontend/testing-view/src/features/workspace/components/rightSidebar/sections/TelemetrySection.tsx diff --git a/frontend/testing-view/src/features/workspace/components/rightSidebar/RightSidebarContent.tsx b/frontend/testing-view/src/features/workspace/components/rightSidebar/RightSidebarContent.tsx index d8b62dbc4..ff41e515e 100644 --- a/frontend/testing-view/src/features/workspace/components/rightSidebar/RightSidebarContent.tsx +++ b/frontend/testing-view/src/features/workspace/components/rightSidebar/RightSidebarContent.tsx @@ -3,61 +3,83 @@ import { ResizablePanel, ResizablePanelGroup, } from "@workspace/ui"; -import { Activity } from "react"; import { useStore } from "../../../../store/store"; +import { CommandsSection } from "./sections/CommandsSection"; import MessagesSection from "./sections/MessagesSection"; import { NoneSelectedSection } from "./sections/NoneSelectedSection"; -import TabsSection from "./sections/TabsSection"; +import { TelemetrySection } from "./sections/TelemetrySection"; interface RightSidebarContentProps {} export const RightSidebarContent = ({}: RightSidebarContentProps) => { - const isTabsVisible = useStore((s) => s.isTabsVisible); + const isTelemetryVisible = useStore((s) => s.isTelemetryVisible); + const isCommandsVisible = useStore((s) => s.isCommandsVisible); const isMessagesVisible = useStore((s) => s.isMessagesVisible); const isHorizontal = useStore((s) => s.isHorizontal); - const isSplit = useStore((s) => s.isSplit); - const bothVisible = useStore((s) => s.getBothVisible()); const noneVisible = useStore((s) => s.getNoneVisible()); + const showCommandsMessages = isCommandsVisible || isMessagesVisible; + if (noneVisible) { return ; } - if (bothVisible) { - return ( - - - - - - - {isMessagesVisible && } + return ( + + {/* 1. Permanent Telemetry Column (Full Height) */} + {isTelemetryVisible && ( + <> + +

+ + {showCommandsMessages && } + + )} - - - - - - - ); - } + {/* 2. Right Column (Commands & Messages) */} + {showCommandsMessages && ( + + { + + {isCommandsVisible && ( + +
+ +
+
+ )} - return ( - <> - -
- -
-
- - -
- -
-
- + {isCommandsVisible && isMessagesVisible && ( + + )} + + {isMessagesVisible && ( + + + + )} +
+ } +
+ )} + ); }; diff --git a/frontend/testing-view/src/features/workspace/components/rightSidebar/RightSidebarHeader.tsx b/frontend/testing-view/src/features/workspace/components/rightSidebar/RightSidebarHeader.tsx index a4bf54257..737f6ec91 100644 --- a/frontend/testing-view/src/features/workspace/components/rightSidebar/RightSidebarHeader.tsx +++ b/frontend/testing-view/src/features/workspace/components/rightSidebar/RightSidebarHeader.tsx @@ -1,135 +1,73 @@ +import { Button } from "@workspace/ui"; import { - Button, - Tooltip, - TooltipContent, - TooltipProvider, - TooltipTrigger, -} from "@workspace/ui"; -import { - Columns, - List, + Activity, MessageSquare, PanelBottom, PanelRight, + Terminal, X, } from "@workspace/ui/icons"; import { useStore } from "../../../../store/store"; +import { RightSidebarToggle } from "./RightSidebarToggle"; interface RightSidebarHeaderProps { onClose: () => void; } export const RightSidebarHeader = ({ onClose }: RightSidebarHeaderProps) => { - const isTabsVisible = useStore((s) => s.isTabsVisible); + const isTelemetryVisible = useStore((s) => s.isTelemetryVisible); + const isCommandsVisible = useStore((s) => s.isCommandsVisible); const isMessagesVisible = useStore((s) => s.isMessagesVisible); const isHorizontal = useStore((s) => s.isHorizontal); - const isSplit = useStore((s) => s.isSplit); - const bothVisible = useStore((s) => s.getBothVisible()); - const toggleTabs = useStore((s) => s.toggleTabs); + const toggleTelemetry = useStore((s) => s.toggleTelemetry); + const toggleCommands = useStore((s) => s.toggleCommands); const toggleMessages = useStore((s) => s.toggleMessages); const toggleLayout = useStore((s) => s.toggleLayout); - const toggleSplit = useStore((s) => s.toggleSplit); return (
- - - - - - -

- {isTabsVisible - ? "Hide Commands / Packets" - : "Show Commands / Packets"} -

-
-
+ {/* Telemetry Toggle */} + } + label={isTelemetryVisible ? "Hide Telemetry" : "Show Telemetry"} + /> + + {/* Commands Toggle */} + } + label={isCommandsVisible ? "Hide Commands" : "Show Commands"} + /> - - - - - -

{isMessagesVisible ? "Hide Messages" : "Show Messages"}

-
-
-
+ {/* Messages Toggle */} + } + label={isMessagesVisible ? "Hide Messages" : "Show Messages"} + />
- - - - - - -

{isSplit ? "Merge tabs" : "Split tabs into columns"}

-
-
- - - - - - -

- {isHorizontal - ? "Move messages to the bottom" - : "Move messages to the right"} -

-
-
-
+ + ) : ( + + ) + } + label={ + isHorizontal ? "Move messages to bottom" : "Move messages to right" + } + disabled={!isCommandsVisible || !isMessagesVisible} + /> + + +

{label}

+
+ + +); diff --git a/frontend/testing-view/src/features/workspace/components/rightSidebar/sections/CommandsSection.tsx b/frontend/testing-view/src/features/workspace/components/rightSidebar/sections/CommandsSection.tsx new file mode 100644 index 000000000..60b1a0876 --- /dev/null +++ b/frontend/testing-view/src/features/workspace/components/rightSidebar/sections/CommandsSection.tsx @@ -0,0 +1,15 @@ +import { BOARD_NAMES } from "../../../../../constants/boards"; +import type { CommandCatalogItem } from "../../../../../types/data/commandCatalogItem"; +import { CommandItem } from "../tabs/commands/CommandItem"; +import { Tab } from "../tabs/Tab"; + +export const CommandsSection = () => ( + ( + + )} + /> +); diff --git a/frontend/testing-view/src/features/workspace/components/rightSidebar/sections/TabsSection.tsx b/frontend/testing-view/src/features/workspace/components/rightSidebar/sections/TabsSection.tsx deleted file mode 100644 index f402076b6..000000000 --- a/frontend/testing-view/src/features/workspace/components/rightSidebar/sections/TabsSection.tsx +++ /dev/null @@ -1,121 +0,0 @@ -import { - ResizableHandle, - ResizablePanel, - ResizablePanelGroup, - Tabs, - TabsContent, - TabsList, - TabsTrigger, -} from "@workspace/ui"; -import { BOARD_NAMES } from "../../../../../constants/boards"; -import { useStore } from "../../../../../store/store"; -import type { CommandCatalogItem } from "../../../../../types/data/commandCatalogItem"; -import type { TelemetryCatalogItem } from "../../../../../types/data/telemetryCatalogItem"; -import type { SidebarTab } from "../../../types/sidebar"; -import { CommandItem } from "../tabs/commands/CommandItem"; -import { Tab } from "../tabs/Tab"; -import { TelemetryItem } from "../tabs/telemetry/TelemetryItem"; - -interface TabsSectionProps { - isSplit: boolean; -} - -const TabsSection = ({ isSplit }: TabsSectionProps) => { - const activeTab = useStore((s) => s.getActiveTab()); - const setActiveTab = useStore((s) => s.setActiveTab); - - if (isSplit) { - return ( -
- {/* Header */} -
-
- - Packets & Commands - -
-
- - {/* Split view - both tabs side by side */} - - -
- ( - - )} - virtualized - /> -
-
- - - - -
- ( - - )} - /> -
-
-
-
- ); - } - - return ( - setActiveTab(value as SidebarTab)} - className="flex h-full flex-1 flex-col overflow-y-auto" - > - - Telemetry - Commands - - - - ( - - )} - virtualized - /> - - - - ( - - )} - /> - - - ); -}; - -export default TabsSection; diff --git a/frontend/testing-view/src/features/workspace/components/rightSidebar/sections/TelemetrySection.tsx b/frontend/testing-view/src/features/workspace/components/rightSidebar/sections/TelemetrySection.tsx new file mode 100644 index 000000000..4798da54d --- /dev/null +++ b/frontend/testing-view/src/features/workspace/components/rightSidebar/sections/TelemetrySection.tsx @@ -0,0 +1,16 @@ +import { BOARD_NAMES } from "../../../../../constants/boards"; +import type { TelemetryCatalogItem } from "../../../../../types/data/telemetryCatalogItem"; +import { Tab } from "../tabs/Tab"; +import { TelemetryItem } from "../tabs/telemetry/TelemetryItem"; + +export const TelemetrySection = () => ( + ( + + )} + virtualized + /> +); diff --git a/frontend/testing-view/src/features/workspace/store/rightSidebarSlice.ts b/frontend/testing-view/src/features/workspace/store/rightSidebarSlice.ts index c9ce7a61e..4a8a13144 100644 --- a/frontend/testing-view/src/features/workspace/store/rightSidebarSlice.ts +++ b/frontend/testing-view/src/features/workspace/store/rightSidebarSlice.ts @@ -3,19 +3,18 @@ import type { Store } from "../../../store/store"; export interface RightSidebarSlice { // Section visibility - isTabsVisible: boolean; isMessagesVisible: boolean; - toggleTabs: () => void; + isTelemetryVisible: boolean; + isCommandsVisible: boolean; + toggleTelemetry: () => void; + toggleCommands: () => void; toggleMessages: () => void; // Layout settings isHorizontal: boolean; - isSplit: boolean; toggleLayout: () => void; - toggleSplit: () => void; // Computed values - getBothVisible: () => boolean; getNoneVisible: () => boolean; } @@ -26,18 +25,17 @@ export const createRightSidebarSlice: StateCreator< RightSidebarSlice > = (set, get) => ({ // Section visibility - isTabsVisible: true, + isTelemetryVisible: true, + isCommandsVisible: true, isMessagesVisible: true, - toggleTabs: () => set({ isTabsVisible: !get().isTabsVisible }), + toggleTelemetry: () => set({ isTelemetryVisible: !get().isTelemetryVisible }), + toggleCommands: () => set({ isCommandsVisible: !get().isCommandsVisible }), toggleMessages: () => set({ isMessagesVisible: !get().isMessagesVisible }), // Layout settings isHorizontal: false, - isSplit: true, toggleLayout: () => set({ isHorizontal: !get().isHorizontal }), - toggleSplit: () => set({ isSplit: !get().isSplit }), // Computed values - getBothVisible: () => get().isTabsVisible && get().isMessagesVisible, - getNoneVisible: () => !get().isTabsVisible && !get().isMessagesVisible, + getNoneVisible: () => !get().isTelemetryVisible && !get().isMessagesVisible, }); diff --git a/frontend/testing-view/src/pages/Testing.tsx b/frontend/testing-view/src/pages/Testing.tsx index 5d705bdfd..a39a6f72e 100644 --- a/frontend/testing-view/src/pages/Testing.tsx +++ b/frontend/testing-view/src/pages/Testing.tsx @@ -21,6 +21,13 @@ export const Testing = () => { const setIsSidebarVisible = useStore((s) => s.setTestingSidebarVisible); const charts = useStore((s) => s.getActiveWorkspaceCharts()); + const isCommandsVisible = useStore((s) => s.isCommandsVisible); + const isMessagesVisible = useStore((s) => s.isMessagesVisible); + const isHorizontal = useStore((s) => s.isHorizontal); + const isTelemetryVisible = useStore((s) => s.isTelemetryVisible); + + const showCommandsMessages = isCommandsVisible || isMessagesVisible; + useGlobalKeyBindings(); const { @@ -64,7 +71,15 @@ export const Testing = () => { > {

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