fix(deps,types): resolve vitest/eslint version drift, fix JSX type error
All checks were successful
build-and-release / build (push) Successful in 2m19s
All checks were successful
build-and-release / build (push) Successful in 2m19s
Steps 7/8 of the live-server runbook (npm run lint / tsc --noEmit)
surfaced two unrelated pre-existing issues:
- node_modules/eslint was 10.1.0 despite package.json declaring
^8.57.1 and package-lock.json correctly recording 8.57.1 - a
legacy .eslintrc.cjs config can't run under ESLint v9+, which
dropped the old config format by default. Root cause: @vitest/browser
and @vitest/coverage-v8 were still pinned to ^3.2.4 while vitest
itself had been bumped to ^4.1.1, an internal peer-dependency
conflict that forced node_modules into an inconsistent state
whenever anyone ran npm install without --legacy-peer-deps. Bumped
both to ^4.1.4 to resolve the conflict at its source, then a clean
npm install correctly restored eslint@8.57.1.
- ExploreServicesPage.tsx's RoleCard.Icon field was typed as
"(props) => unknown", which TypeScript correctly refuses to accept
as a JSX component ('card.Icon' cannot be used as a JSX component).
lucide-solid's actual icon components return solid-js's JSX.Element
(confirmed via node_modules/lucide-solid's own .d.ts) - fixed the
annotation to match reality instead of loosening it.
lint: 0 errors (293 pre-existing warnings elsewhere in src/, untouched
by this session, left as tracked debt per the runbook's own bar).
tsc --noEmit --skipLibCheck: exits 0.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
8801440459
commit
2637c549a9
3 changed files with 270 additions and 308 deletions
570
package-lock.json
generated
570
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
|
@ -37,8 +37,8 @@
|
||||||
"@testing-library/jest-dom": "^6.6.3",
|
"@testing-library/jest-dom": "^6.6.3",
|
||||||
"@typescript-eslint/eslint-plugin": "^7.0.0",
|
"@typescript-eslint/eslint-plugin": "^7.0.0",
|
||||||
"@typescript-eslint/parser": "^7.0.0",
|
"@typescript-eslint/parser": "^7.0.0",
|
||||||
"@vitest/browser": "^3.2.4",
|
"@vitest/browser": "^4.1.4",
|
||||||
"@vitest/coverage-v8": "^3.2.4",
|
"@vitest/coverage-v8": "^4.1.4",
|
||||||
"eslint": "^8.57.1",
|
"eslint": "^8.57.1",
|
||||||
"eslint-plugin-solid": "^0.14.5",
|
"eslint-plugin-solid": "^0.14.5",
|
||||||
"jsdom": "^25.0.1",
|
"jsdom": "^25.0.1",
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { For, Show, createMemo, createSignal, onMount } from "solid-js";
|
import { For, Show, createMemo, createSignal, onMount, type JSX } from "solid-js";
|
||||||
import { ArrowLeft, Camera, Scissors, GraduationCap, Code2, Clapperboard, PenTool, Megaphone, Dumbbell, UtensilsCrossed, Globe, Users, UserCircle, FileText, TrendingUp, Award, BarChart3, ShieldCheck } from "lucide-solid";
|
import { ArrowLeft, Camera, Scissors, GraduationCap, Code2, Clapperboard, PenTool, Megaphone, Dumbbell, UtensilsCrossed, Globe, Users, UserCircle, FileText, TrendingUp, Award, BarChart3, ShieldCheck } from "lucide-solid";
|
||||||
import { BTN_GHOST, CARD } from "~/components/DashboardShell";
|
import { BTN_GHOST, CARD } from "~/components/DashboardShell";
|
||||||
import RoleWizard from "~/components/dashboard/RoleWizard";
|
import RoleWizard from "~/components/dashboard/RoleWizard";
|
||||||
|
|
@ -34,7 +34,7 @@ type RoleCard = {
|
||||||
subtitle: string;
|
subtitle: string;
|
||||||
/** "Register" | "Switch" | "Current Role" | "Under Review" */
|
/** "Register" | "Switch" | "Current Role" | "Under Review" */
|
||||||
action: string;
|
action: string;
|
||||||
Icon: (props: { size: number; color: string; strokeWidth: number }) => unknown;
|
Icon: (props: { size: number; color: string; strokeWidth: number }) => JSX.Element;
|
||||||
status: "Active" | "Pending" | "Registered" | "Available";
|
status: "Active" | "Pending" | "Registered" | "Available";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue