Skip to content

Commit 8703518

Browse files
helliott20claude
andauthored
chore: update all dependencies to latest versions (#21)
Major updates: - TypeScript 5.9 → 6.0 (server: migrate to nodenext modules, client: remove deprecated baseUrl) - React 18 → 19 with matching @types - Vite 7 → 8 with @vitejs/plugin-react 6 - Tailwind CSS 3 → 4 (migrate to @tailwindcss/postcss, inline @apply refs, remove <alpha-value>) - ESLint 9 → 10 - lucide-react 0.x → 1.x (replace removed Github brand icon with inline SVG) - Node.js minimum bumped to 22 (Dockerfile updated) Minor/patch updates: - axios, fast-xml-parser, @typescript-eslint/*, @tanstack/react-query, @tanstack/react-virtual, postcss, eslint-plugin-react-hooks, eslint-plugin-react-refresh All 73 tests pass. Zero npm audit vulnerabilities. https://claude.ai/code/session_01WR2oTQoEfRCcGv9FtFvaiK Co-authored-by: Claude <noreply@anthropic.com>
1 parent a7159e8 commit 8703518

13 files changed

Lines changed: 118 additions & 99 deletions

File tree

Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# ============================================
44

55
# Stage 1: Build the client application
6-
FROM node:20-alpine AS client-builder
6+
FROM node:22-alpine AS client-builder
77

88
WORKDIR /app/client
99

@@ -21,7 +21,7 @@ RUN npm run build
2121

2222
# ============================================
2323
# Stage 2: Build the server application
24-
FROM node:20-alpine AS server-builder
24+
FROM node:22-alpine AS server-builder
2525

2626
WORKDIR /app/server
2727

@@ -45,7 +45,7 @@ RUN npm prune --omit=dev
4545

4646
# ============================================
4747
# Stage 3: Production image
48-
FROM node:20-alpine AS production
48+
FROM node:22-alpine AS production
4949

5050
# Build argument for version (passed from CI/CD)
5151
ARG APP_VERSION=1.0.0

client/package.json

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,37 +12,38 @@
1212
"test:watch": "vitest"
1313
},
1414
"dependencies": {
15-
"@tanstack/react-query": "^5.99.0",
16-
"@tanstack/react-virtual": "^3.13.23",
17-
"axios": "^1.15.0",
15+
"@tanstack/react-query": "^5.99.2",
16+
"@tanstack/react-virtual": "^3.13.24",
17+
"axios": "^1.15.1",
1818
"clsx": "^2.1.1",
1919
"concurrently": "^9.2.1",
2020
"date-fns": "^4.1.0",
2121
"framer-motion": "^12.38.0",
22-
"lucide-react": "^0.562.0",
23-
"react": "^18.3.1",
24-
"react-dom": "^18.3.1",
22+
"lucide-react": "^1.8.0",
23+
"react": "^19.2.5",
24+
"react-dom": "^19.2.5",
2525
"react-router-dom": "^7.14.1",
2626
"react-theme-switch-animation": "^1.0.0",
2727
"tailwind-merge": "^3.5.0"
2828
},
2929
"devDependencies": {
30+
"@tailwindcss/postcss": "^4.2.3",
3031
"@testing-library/jest-dom": "^6.9.1",
3132
"@testing-library/react": "^16.3.2",
32-
"@types/react": "^18.3.18",
33-
"@types/react-dom": "^18.3.5",
34-
"@typescript-eslint/eslint-plugin": "^8.58.2",
35-
"@typescript-eslint/parser": "^8.58.2",
36-
"@vitejs/plugin-react": "^5.1.2",
33+
"@types/react": "^19.2.14",
34+
"@types/react-dom": "^19.2.3",
35+
"@typescript-eslint/eslint-plugin": "^8.59.0",
36+
"@typescript-eslint/parser": "^8.59.0",
37+
"@vitejs/plugin-react": "^6.0.1",
3738
"autoprefixer": "^10.5.0",
38-
"eslint": "^9.39.2",
39-
"eslint-plugin-react-hooks": "^7.0.1",
40-
"eslint-plugin-react-refresh": "^0.4.26",
39+
"eslint": "^10.2.1",
40+
"eslint-plugin-react-hooks": "^7.1.1",
41+
"eslint-plugin-react-refresh": "^0.5.2",
4142
"jsdom": "^29.0.2",
42-
"postcss": "^8.5.9",
43-
"tailwindcss": "^3.4.19",
44-
"typescript": "^5.9.3",
45-
"vite": "^7.3.1",
43+
"postcss": "^8.5.10",
44+
"tailwindcss": "^4.2.2",
45+
"typescript": "^6.0.3",
46+
"vite": "^8.0.9",
4647
"vitest": "^4.1.4"
4748
}
4849
}

client/postcss.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
export default {
22
plugins: {
3-
tailwindcss: {},
3+
'@tailwindcss/postcss': {},
44
autoprefixer: {},
55
},
66
}

client/src/components/Layout/Sidebar.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,19 @@ import {
1313
HardDrive,
1414
Sparkles,
1515
X,
16-
Github,
1716
MessageCircle,
1817
Container,
1918
Sun,
2019
Moon,
2120
} from 'lucide-react';
21+
22+
function GithubIcon({ className }: { className?: string }) {
23+
return (
24+
<svg className={className} viewBox="0 0 24 24" fill="currentColor">
25+
<path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0 0 24 12c0-6.63-5.37-12-12-12z" />
26+
</svg>
27+
);
28+
}
2229
import { cn, formatBytes } from '@/lib/utils';
2330
import { useUnraidStats, useDeletionQueue, useVersion } from '@/hooks/useApi';
2431
import { useTheme } from '@/contexts/ThemeContext';
@@ -233,7 +240,7 @@ const Sidebar = forwardRef<HTMLDivElement, SidebarProps>(function Sidebar({ onCl
233240
className="p-2.5 rounded-lg text-surface-500 hover:text-accent-text-hover hover:bg-surface-800/60 transition-all"
234241
title="GitHub"
235242
>
236-
<Github className="w-4 h-4" />
243+
<GithubIcon className="w-4 h-4" />
237244
</a>
238245
<a
239246
href="https://forums.unraid.net/topic/196929-support-prunerr-media-library-cleanup-tool/"

0 commit comments

Comments
 (0)