From 66ece529c0592196d0f0ffd47e9fd25d79793bd0 Mon Sep 17 00:00:00 2001 From: t Date: Sun, 2 Aug 2026 15:00:01 +0800 Subject: [PATCH] =?UTF-8?q?chore(deps):=20React=2018=20=E2=86=92=2019=20(r?= =?UTF-8?q?eact,=20react-dom,=20types)=20+=20JSX=20namespace=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Supersedes #170 and #171, which each bump only half the pair and cannot merge independently — react@19 with react-dom@18 (or vice versa) is a broken tree. React 19's @types/react removes the global `JSX` namespace; it now lives under `React.JSX` and is re-exported as a named type from 'react'. 38 `JSX.Element` references across 25 desktop files were resolving against the old global and fail with TS2503 under the new types. Each file now imports the type explicitly, merged into its existing 'react' import where one exists so no duplicate-import lint warning is introduced (root lint is --max-warnings=0 as of #210). Verified with a forced rebuild (`tsc -b --force`) rather than an incremental one — `tsc -b` reuses .tsbuildinfo and silently skips the desktop project, which masks exactly this class of failure. - tsc -b --force, lint (--max-warnings=0), format:check: clean - 1033 tests across 8 packages: pass - pnpm build: pass - desktop Playwright protocol journey (4 tests): pass Co-Authored-By: Claude Opus 5 --- apps/desktop/package.json | 8 +- apps/desktop/src/App.tsx | 2 +- apps/desktop/src/components/Badge.tsx | 2 +- apps/desktop/src/components/BrandMark.tsx | 2 + apps/desktop/src/components/Dropdown.tsx | 2 +- apps/desktop/src/components/FilePanel.tsx | 1 + .../desktop/src/components/InspectorPanel.tsx | 2 +- apps/desktop/src/components/InspectorRail.tsx | 2 + apps/desktop/src/components/Pill.tsx | 2 +- apps/desktop/src/components/PlusMenu.tsx | 2 +- .../src/components/ProjectPickerOverlay.tsx | 2 +- apps/desktop/src/components/Screen.tsx | 2 +- .../desktop/src/components/SettingsLayout.tsx | 2 +- apps/desktop/src/components/Sidebar.tsx | 2 +- apps/desktop/src/components/ToolCard.tsx | 2 +- apps/desktop/src/components/UpdateBanner.tsx | 2 +- apps/desktop/src/preview-filepanel.tsx | 2 +- apps/desktop/src/screens/About.tsx | 2 +- apps/desktop/src/screens/MCPManager.tsx | 2 +- apps/desktop/src/screens/Onboarding.tsx | 2 +- apps/desktop/src/screens/Permissions.tsx | 2 +- apps/desktop/src/screens/Plugins.tsx | 2 +- apps/desktop/src/screens/Repl.tsx | 2 +- apps/desktop/src/screens/Sessions.tsx | 2 +- apps/desktop/src/screens/Settings.tsx | 2 +- apps/desktop/src/screens/Skills.tsx | 2 +- pnpm-lock.yaml | 75 +++++++------------ 27 files changed, 59 insertions(+), 73 deletions(-) diff --git a/apps/desktop/package.json b/apps/desktop/package.json index e7be91e..69f2e3b 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -31,15 +31,15 @@ "@tauri-apps/plugin-process": "^2.3.1", "@tauri-apps/plugin-shell": "^2.0.0", "@tauri-apps/plugin-updater": "^2.0.0", - "react": "^18.3.0", - "react-dom": "^18.3.0" + "react": "^19.2.8", + "react-dom": "^19.2.8" }, "devDependencies": { "@playwright/test": "^1.62.1", "@tauri-apps/cli": "^2.0.0", "@types/node": "^22.10.0", - "@types/react": "^18.3.0", - "@types/react-dom": "^18.3.0", + "@types/react": "^19.2.17", + "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^4.3.0", "typescript": "^5.7.0", "vite": "^5.4.0", diff --git a/apps/desktop/src/App.tsx b/apps/desktop/src/App.tsx index 8cea3ea..d217e7d 100644 --- a/apps/desktop/src/App.tsx +++ b/apps/desktop/src/App.tsx @@ -2,7 +2,7 @@ // Spec: docs/VISUAL_DESIGN.html // Milestone: 0.1.2 — adds project-folder flow + inspector wiring + session refresh. -import { useCallback, useEffect, useState } from 'react'; +import { useCallback, useEffect, useState, type JSX } from 'react'; import { contextWindowFor } from '@deepcode/core/dist/providers/model-metadata.js'; import { FilePanel } from './components/FilePanel.js'; import { InspectorPanel } from './components/InspectorPanel.js'; diff --git a/apps/desktop/src/components/Badge.tsx b/apps/desktop/src/components/Badge.tsx index 2c984df..693834c 100644 --- a/apps/desktop/src/components/Badge.tsx +++ b/apps/desktop/src/components/Badge.tsx @@ -1,7 +1,7 @@ // Status badge — three flavors per the design spec (#3 / #6). // .badge-ok / .badge-warn / .badge-err / .badge-info live in index.css. -import type { ReactNode } from 'react'; +import type { ReactNode, JSX } from 'react'; export type BadgeKind = 'ok' | 'warn' | 'err' | 'info'; diff --git a/apps/desktop/src/components/BrandMark.tsx b/apps/desktop/src/components/BrandMark.tsx index 87fc611..a6a9595 100644 --- a/apps/desktop/src/components/BrandMark.tsx +++ b/apps/desktop/src/components/BrandMark.tsx @@ -2,6 +2,8 @@ // Wraps the SVG path in the gradient .mark / .mark-lg container so the // shell can drop it in anywhere without per-instance styling. +import type { JSX } from 'react'; + interface BrandMarkProps { /** 'sm' = 26 px (default, sidebar / pill); 'lg' = 64 px (onboarding hero). */ size?: 'sm' | 'lg'; diff --git a/apps/desktop/src/components/Dropdown.tsx b/apps/desktop/src/components/Dropdown.tsx index 0ecc72e..625323c 100644 --- a/apps/desktop/src/components/Dropdown.tsx +++ b/apps/desktop/src/components/Dropdown.tsx @@ -6,7 +6,7 @@ // positioned absolute below the trigger. Good enough for composer // dropdowns that don't need to escape clipping. -import { useEffect, useRef, useState, type ReactNode } from 'react'; +import { useEffect, useRef, useState, type ReactNode, type JSX } from 'react'; export interface DropdownOption { value: T; diff --git a/apps/desktop/src/components/FilePanel.tsx b/apps/desktop/src/components/FilePanel.tsx index a28d067..7fb47a2 100644 --- a/apps/desktop/src/components/FilePanel.tsx +++ b/apps/desktop/src/components/FilePanel.tsx @@ -4,6 +4,7 @@ // fetching (file reads + session snapshots via Tauri). Every interaction is a // callback so the component is unit-testable + previewable without a backend. +import type { JSX } from 'react'; import type { DiffLine, DiffMode, FileTab, FileView } from '../types/file-panel.js'; interface FilePanelProps { diff --git a/apps/desktop/src/components/InspectorPanel.tsx b/apps/desktop/src/components/InspectorPanel.tsx index 90c875c..42cc23f 100644 --- a/apps/desktop/src/components/InspectorPanel.tsx +++ b/apps/desktop/src/components/InspectorPanel.tsx @@ -10,7 +10,7 @@ // component is purely presentational. Sections with no data show an honest // empty state rather than a placeholder — per HANDOFF: no fake sections. -import { useEffect, useRef } from 'react'; +import { useEffect, useRef, type JSX } from 'react'; import { contextWindowFor } from '@deepcode/core/dist/providers/model-metadata.js'; import { projectName } from '../lib/project.js'; import type { InspectorData, InspectorSection } from '../types/inspector.js'; diff --git a/apps/desktop/src/components/InspectorRail.tsx b/apps/desktop/src/components/InspectorRail.tsx index cbf50e9..3fc939a 100644 --- a/apps/desktop/src/components/InspectorRail.tsx +++ b/apps/desktop/src/components/InspectorRail.tsx @@ -7,6 +7,8 @@ // • ⚙ Settings — the Settings shell (a main-area screen, not a right panel) // The active panel's icon is highlighted; clicking it again closes the panel. +import type { JSX } from 'react'; + interface InspectorRailProps { /** Inspector panel is the visible right panel. */ inspectorActive: boolean; diff --git a/apps/desktop/src/components/Pill.tsx b/apps/desktop/src/components/Pill.tsx index b0fd89c..6e24ae6 100644 --- a/apps/desktop/src/components/Pill.tsx +++ b/apps/desktop/src/components/Pill.tsx @@ -1,7 +1,7 @@ // Pill — small rounded chip for the chat header (connected · model · approval). // Optional leading dot for status indication (e.g. live connection). -import type { ReactNode } from 'react'; +import type { ReactNode, JSX } from 'react'; interface PillProps { /** Show a leading mint dot. */ diff --git a/apps/desktop/src/components/PlusMenu.tsx b/apps/desktop/src/components/PlusMenu.tsx index f7bc96f..e243f19 100644 --- a/apps/desktop/src/components/PlusMenu.tsx +++ b/apps/desktop/src/components/PlusMenu.tsx @@ -3,7 +3,7 @@ // Sits absolute-positioned above the composer toolbar (opens upward so // it doesn't get clipped by the chat-stream above the composer). -import { useEffect, useRef, useState } from 'react'; +import { useEffect, useRef, useState, type JSX } from 'react'; export interface PlusMenuItem { icon: string; // emoji or single-char icon diff --git a/apps/desktop/src/components/ProjectPickerOverlay.tsx b/apps/desktop/src/components/ProjectPickerOverlay.tsx index 1b6b8a1..73919e3 100644 --- a/apps/desktop/src/components/ProjectPickerOverlay.tsx +++ b/apps/desktop/src/components/ProjectPickerOverlay.tsx @@ -3,7 +3,7 @@ // path is persisted to settings.json#projectPath and threaded into // every agent.start as `cwd`. -import { useState } from 'react'; +import { useState, type JSX } from 'react'; import { BrandMark } from './BrandMark.js'; import { pickFolder } from '../lib/tauri-api.js'; diff --git a/apps/desktop/src/components/Screen.tsx b/apps/desktop/src/components/Screen.tsx index f794d45..b9cd3d4 100644 --- a/apps/desktop/src/components/Screen.tsx +++ b/apps/desktop/src/components/Screen.tsx @@ -6,7 +6,7 @@ // Matches the design language: chat-main column, padded body, header // pinned at top. No 3-column shell — that's the App-level grid. -import type { ReactNode } from 'react'; +import type { ReactNode, JSX } from 'react'; interface ScreenProps { title: string; diff --git a/apps/desktop/src/components/SettingsLayout.tsx b/apps/desktop/src/components/SettingsLayout.tsx index f82bbe3..296f705 100644 --- a/apps/desktop/src/components/SettingsLayout.tsx +++ b/apps/desktop/src/components/SettingsLayout.tsx @@ -9,7 +9,7 @@ // Only screens that actually exist are listed — no dead links. (The spec's // Models / Hooks / Memory / Statusline items land with their screens later.) -import type { ReactNode } from 'react'; +import type { ReactNode, JSX } from 'react'; import type { ScreenName } from '../types/screens.js'; /** The screens that live inside the Settings shell, in nav order. */ diff --git a/apps/desktop/src/components/Sidebar.tsx b/apps/desktop/src/components/Sidebar.tsx index 6377842..0955756 100644 --- a/apps/desktop/src/components/Sidebar.tsx +++ b/apps/desktop/src/components/Sidebar.tsx @@ -4,7 +4,7 @@ // folder + a small switch-folder button. Below: sessions bucketed by // Today/Yesterday/Earlier per the spec note ①. -import { useCallback, useEffect, useState } from 'react'; +import { useCallback, useEffect, useState, type JSX } from 'react'; import { projectName } from '../lib/project.js'; import { listSessions, diff --git a/apps/desktop/src/components/ToolCard.tsx b/apps/desktop/src/components/ToolCard.tsx index 52286cc..3aa1f2f 100644 --- a/apps/desktop/src/components/ToolCard.tsx +++ b/apps/desktop/src/components/ToolCard.tsx @@ -8,7 +8,7 @@ // │ │ ← tc-body // └──────────────────────────────────────────────┘ -import type { ReactNode } from 'react'; +import type { ReactNode, JSX } from 'react'; import { Badge, type BadgeKind } from './Badge.js'; interface ToolCardProps { diff --git a/apps/desktop/src/components/UpdateBanner.tsx b/apps/desktop/src/components/UpdateBanner.tsx index b29acb5..ef0475e 100644 --- a/apps/desktop/src/components/UpdateBanner.tsx +++ b/apps/desktop/src/components/UpdateBanner.tsx @@ -2,7 +2,7 @@ // downloaded a new release. Clicking Relaunch calls tauri-plugin-process.relaunch(). // Spec: docs/VISUAL_DESIGN.html screen #11 -import { useState } from 'react'; +import { useState, type JSX } from 'react'; import { relaunchNow } from '../lib/updater.js'; import type { UpdateInfo } from '../types/global.js'; diff --git a/apps/desktop/src/preview-filepanel.tsx b/apps/desktop/src/preview-filepanel.tsx index 387cf7a..eecb090 100644 --- a/apps/desktop/src/preview-filepanel.tsx +++ b/apps/desktop/src/preview-filepanel.tsx @@ -5,7 +5,7 @@ // Mounts FilePanel with mock fixtures + a working resize drag so the panel's // appearance can be screenshotted without the Tauri backend. -import { useState } from 'react'; +import { useState, type JSX } from 'react'; import { createRoot } from 'react-dom/client'; import { FilePanel } from './components/FilePanel.js'; import { diff --git a/apps/desktop/src/screens/About.tsx b/apps/desktop/src/screens/About.tsx index da43975..719f6cd 100644 --- a/apps/desktop/src/screens/About.tsx +++ b/apps/desktop/src/screens/About.tsx @@ -1,7 +1,7 @@ // About screen — design-aligned per docs/VISUAL_DESIGN.html. // Brand mark + version + diagnostics + docs links. -import { useEffect, useState } from 'react'; +import { useEffect, useState, type JSX } from 'react'; import type { ConfigDiagnosticsResult } from '@deepcode/protocol'; import { BrandMark } from '../components/BrandMark.js'; import { Card, Row, Screen, SectionTitle } from '../components/Screen.js'; diff --git a/apps/desktop/src/screens/MCPManager.tsx b/apps/desktop/src/screens/MCPManager.tsx index 01386cd..1e9fefd 100644 --- a/apps/desktop/src/screens/MCPManager.tsx +++ b/apps/desktop/src/screens/MCPManager.tsx @@ -1,7 +1,7 @@ // MCP server manager — design-aligned per spec screen #15. // List / show status of MCP servers wired in settings.json#mcpServers. -import { useEffect, useState } from 'react'; +import { useEffect, useState, type JSX } from 'react'; import { Badge, type BadgeKind } from '../components/Badge.js'; import { Card, Screen, SectionTitle } from '../components/Screen.js'; diff --git a/apps/desktop/src/screens/Onboarding.tsx b/apps/desktop/src/screens/Onboarding.tsx index 1ea69f8..6bafb30 100644 --- a/apps/desktop/src/screens/Onboarding.tsx +++ b/apps/desktop/src/screens/Onboarding.tsx @@ -1,7 +1,7 @@ // Onboarding screen — first-run flow capturing the DeepSeek API key. // Design spec: docs/VISUAL_DESIGN.html screen #2 (hero gradient + big mark). -import { useState } from 'react'; +import { useState, type JSX } from 'react'; import { BrandMark } from '../components/BrandMark.js'; import { openUrl } from '../lib/tauri-api.js'; diff --git a/apps/desktop/src/screens/Permissions.tsx b/apps/desktop/src/screens/Permissions.tsx index 9815eaa..41215ab 100644 --- a/apps/desktop/src/screens/Permissions.tsx +++ b/apps/desktop/src/screens/Permissions.tsx @@ -2,7 +2,7 @@ // View + edit settings.permissions rules. Save now actually persists // to ~/.deepcode/settings.json via saveSettingsFile. -import { useEffect, useState } from 'react'; +import { useEffect, useState, type JSX } from 'react'; import { Badge, type BadgeKind } from '../components/Badge.js'; import { Card, Row, Screen, SectionTitle } from '../components/Screen.js'; import { loadSettingsFile, saveSettingsFile } from '../lib/tauri-api.js'; diff --git a/apps/desktop/src/screens/Plugins.tsx b/apps/desktop/src/screens/Plugins.tsx index 2c70a7c..6150e8d 100644 --- a/apps/desktop/src/screens/Plugins.tsx +++ b/apps/desktop/src/screens/Plugins.tsx @@ -3,7 +3,7 @@ // enable/disable, install new ones. Install IPC still stubbed (P3 // will wire installFromSpec). -import { useEffect, useState } from 'react'; +import { useEffect, useState, type JSX } from 'react'; import { Badge, type BadgeKind } from '../components/Badge.js'; import { Card, Screen } from '../components/Screen.js'; import { loadSettingsFile, saveSettingsFile } from '../lib/tauri-api.js'; diff --git a/apps/desktop/src/screens/Repl.tsx b/apps/desktop/src/screens/Repl.tsx index 6015d50..5b52ec9 100644 --- a/apps/desktop/src/screens/Repl.tsx +++ b/apps/desktop/src/screens/Repl.tsx @@ -17,7 +17,7 @@ // CSS class names (which now match the design tokens) and the addition // of richer tool-card rendering. -import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; +import { useCallback, useEffect, useMemo, useRef, useState, type JSX } from 'react'; import { DEFAULT_KEYBINDINGS, VimState, diff --git a/apps/desktop/src/screens/Sessions.tsx b/apps/desktop/src/screens/Sessions.tsx index 2379243..cc49cf2 100644 --- a/apps/desktop/src/screens/Sessions.tsx +++ b/apps/desktop/src/screens/Sessions.tsx @@ -1,7 +1,7 @@ // Sessions list — design-aligned. Browse + filter + resume past // conversations. Per spec screen #5. -import { useEffect, useState } from 'react'; +import { useEffect, useState, type JSX } from 'react'; import { Card, Screen } from '../components/Screen.js'; import { listSessions, type SessionMeta } from '../lib/tauri-api.js'; diff --git a/apps/desktop/src/screens/Settings.tsx b/apps/desktop/src/screens/Settings.tsx index eadb2a9..0bda8be 100644 --- a/apps/desktop/src/screens/Settings.tsx +++ b/apps/desktop/src/screens/Settings.tsx @@ -2,7 +2,7 @@ // Top: JSON view (Monaco-lite). Bottom: flat key/value table. Both // reflect the live settings file. Save button writes back. -import { useEffect, useMemo, useRef, useState } from 'react'; +import { useEffect, useMemo, useRef, useState, type JSX } from 'react'; import { Card, Row, Screen, SectionTitle } from '../components/Screen.js'; import { loadProjectPath } from '../lib/project.js'; import { getSettingsPath, loadSettingsFile, saveSettingsFile } from '../lib/tauri-api.js'; diff --git a/apps/desktop/src/screens/Skills.tsx b/apps/desktop/src/screens/Skills.tsx index 50f623b..6a3d6c4 100644 --- a/apps/desktop/src/screens/Skills.tsx +++ b/apps/desktop/src/screens/Skills.tsx @@ -2,7 +2,7 @@ // List available skills (built-in + user + project + plugin) + show the // SKILL.md body for inspection. Per spec screen #11. -import { useEffect, useState } from 'react'; +import { useEffect, useState, type JSX } from 'react'; import { Badge, type BadgeKind } from '../components/Badge.js'; import { Card, Screen } from '../components/Screen.js'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 85d1b30..087ab10 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -85,11 +85,11 @@ importers: specifier: ^2.0.0 version: 2.10.1 react: - specifier: ^18.3.0 - version: 18.3.1 + specifier: ^19.2.8 + version: 19.2.8 react-dom: - specifier: ^18.3.0 - version: 18.3.1(react@18.3.1) + specifier: ^19.2.8 + version: 19.2.8(react@19.2.8) devDependencies: '@playwright/test': specifier: ^1.62.1 @@ -101,11 +101,11 @@ importers: specifier: ^22.10.0 version: 22.19.19 '@types/react': - specifier: ^18.3.0 - version: 18.3.29 + specifier: ^19.2.17 + version: 19.2.18 '@types/react-dom': - specifier: ^18.3.0 - version: 18.3.7(@types/react@18.3.29) + specifier: ^19.2.3 + version: 19.2.4(@types/react@19.2.18) '@vitejs/plugin-react': specifier: ^4.3.0 version: 4.7.0(vite@5.4.21(@types/node@22.19.19)) @@ -913,16 +913,13 @@ packages: '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - '@types/prop-types@15.7.15': - resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} - - '@types/react-dom@18.3.7': - resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==} + '@types/react-dom@19.2.4': + resolution: {integrity: sha512-Bsc+QHgp+P/F02XDzNCY9jnZNCUuLki36KT7VKrTXXLdHf+vHMNZnW1rVu5DNW/rCK+fya3DATySbLM4yhtKUw==} peerDependencies: - '@types/react': ^18.0.0 + '@types/react': ^19.2.0 - '@types/react@18.3.29': - resolution: {integrity: sha512-ch0qJdr2JY0r04NXSprbK6TXOgnaJ1Tz23fm5W+z0/CBah6BSBc3n96h7K9GOtwh0HrilNWHIBzE1Ko4Dcw/Wg==} + '@types/react@19.2.18': + resolution: {integrity: sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==} '@types/sarif@2.1.7': resolution: {integrity: sha512-kRz0VEkJqWLf1LLVN4pT1cg1Z9wAuvI6L97V3m2f5B76Tg8d413ddvLBPTEHAZJlnn4XSvu0FkZtViCQGVyrXQ==} @@ -1880,10 +1877,6 @@ packages: lodash@4.18.1: resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - loupe@3.2.1: resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} @@ -2197,17 +2190,17 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true - react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + react-dom@19.2.8: + resolution: {integrity: sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==} peerDependencies: - react: ^18.3.1 + react: ^19.2.8 react-refresh@0.17.0: resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} engines: {node: '>=0.10.0'} - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + react@19.2.8: + resolution: {integrity: sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==} engines: {node: '>=0.10.0'} read-pkg@9.0.1: @@ -2256,8 +2249,8 @@ packages: resolution: {integrity: sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==} engines: {node: '>=11.0.0'} - scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + scheduler@0.27.0: + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} secretlint@10.2.2: resolution: {integrity: sha512-xVpkeHV/aoWe4vP4TansF622nBEImzCY73y/0042DuJ29iKIaqgoJ8fGxre3rVSHHbxar4FdJobmTnLp9AU0eg==} @@ -3328,15 +3321,12 @@ snapshots: '@types/normalize-package-data@2.4.4': {} - '@types/prop-types@15.7.15': {} - - '@types/react-dom@18.3.7(@types/react@18.3.29)': + '@types/react-dom@19.2.4(@types/react@19.2.18)': dependencies: - '@types/react': 18.3.29 + '@types/react': 19.2.18 - '@types/react@18.3.29': + '@types/react@19.2.18': dependencies: - '@types/prop-types': 15.7.15 csstype: 3.2.3 '@types/sarif@2.1.7': {} @@ -4408,10 +4398,6 @@ snapshots: lodash@4.18.1: {} - loose-envify@1.4.0: - dependencies: - js-tokens: 4.0.0 - loupe@3.2.1: {} lru-cache@10.4.3: {} @@ -4700,17 +4686,14 @@ snapshots: strip-json-comments: 2.0.1 optional: true - react-dom@18.3.1(react@18.3.1): + react-dom@19.2.8(react@19.2.8): dependencies: - loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.23.2 + react: 19.2.8 + scheduler: 0.27.0 react-refresh@0.17.0: {} - react@18.3.1: - dependencies: - loose-envify: 1.4.0 + react@19.2.8: {} read-pkg@9.0.1: dependencies: @@ -4788,9 +4771,7 @@ snapshots: sax@1.6.1: {} - scheduler@0.23.2: - dependencies: - loose-envify: 1.4.0 + scheduler@0.27.0: {} secretlint@10.2.2: dependencies: