Skip to content

Commit 18e8e8a

Browse files
authored
[#10] Updated client and server dependencies, upgrade Node and Postgres versions
* Updated most server dependencies * Replace lodash with es-toolkit * Ran npm audit fix * Update Node to 24, Postgres to 18, bump version to 7.0.0 * First pass, Prisma 7 upgrade * Fix prisma studio, create-admin script * Add tsc watch in dev mode for Prisma client changes * Switch to new prisma-fixtures * Update prisma-fixtures * Updated dependencies * Revert ejs version to match version used by email-templates @ladjs/consolidate * npm audit fix * Updated nodemailer, updated Github CI actions * Fix ci syntax * More CI fixes * Updated client dependencies * Re-add all dependencies * Switch Vite port to 3333 * Fix login state * Updated prisma-fixtures package
1 parent c2e728f commit 18e8e8a

File tree

29 files changed

+9986
-10913
lines changed

29 files changed

+9986
-10913
lines changed

.github/workflows/ci.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@ jobs:
1111
test:
1212
name: Test
1313
runs-on: ubuntu-latest
14-
container: node:22.19.0-bookworm
14+
container: node:24.14.1-trixie
1515
services:
1616
db:
17-
image: postgres:17.6
17+
image: postgres:18.3
18+
env:
19+
POSTGRES_PASSWORD: postgres
1820
minio:
1921
image: minio/minio:RELEASE.2025-09-07T16-13-09Z
2022
steps:
@@ -28,7 +30,9 @@ jobs:
2830
- name: Install Dependencies
2931
run: npm ci
3032
- name: Generate Prisma client
31-
run: cd server && npx prisma generate
33+
run: npm run prisma:generate -w server
34+
env:
35+
DATABASE_URL: postgresql://postgres:postgres@db:5432/app
3236
- name: Run ESLint
3337
run: npm run lint
3438
- name: Run Tests

Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM node:22.19.0-bookworm
1+
FROM node:24.14.1-trixie
22

33
# Support for multi-architecture builds
44
ARG TARGETARCH
@@ -11,9 +11,9 @@ RUN apt update -y && \
1111
apt install -y curl ca-certificates && \
1212
install -d /usr/share/postgresql-common/pgdg && \
1313
curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc && \
14-
sh -c 'echo "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt bookworm-pgdg main" > /etc/apt/sources.list.d/pgdg.list' && \
14+
sh -c 'echo "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt trixie-pgdg main" > /etc/apt/sources.list.d/pgdg.list' && \
1515
apt update -y && \
16-
apt install -y postgresql-client-17 && \
16+
apt install -y postgresql-client-18 && \
1717
apt clean
1818

1919
# update path to include any installed node module executables

Procfile.dev

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
server: npm run dev -w server -- --port 3000
2-
client: npm run dev -w client -- --host --port 5000
3-
prisma: npm run prisma:studio -w server
2+
tsc: npm run tsc:watch -w server
3+
client: npm run dev -w client -- --host --port 3333
4+
prisma: npm run prisma:studio -w server -- --browser none --port 5555

client/package.json

Lines changed: 19 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "full-stack-starter-client",
33
"private": true,
4-
"version": "6.0.0",
4+
"version": "7.0.0",
55
"type": "module",
66
"scripts": {
77
"dev": "vite",
@@ -13,110 +13,33 @@
1313
"test": ""
1414
},
1515
"dependencies": {
16-
"@mantine/core": "^8.3.1",
17-
"@mantine/form": "^8.3.1",
18-
"@mantine/hooks": "^8.3.1",
19-
"@mantine/modals": "^8.3.1",
20-
"@tanstack/react-query": "^5.89.0",
21-
"@unhead/react": "^2.0.17",
22-
"axios": "^1.12.2",
16+
"@mantine/core": "^8.3.18",
17+
"@mantine/form": "^8.3.18",
18+
"@mantine/hooks": "^8.3.18",
19+
"@mantine/modals": "^8.3.18",
20+
"@tanstack/react-query": "^5.95.2",
21+
"@unhead/react": "^2.1.12",
22+
"axios": "^1.14.0",
2323
"classnames": "^2.5.1",
2424
"http-status-codes": "^2.3.0",
2525
"inflection": "^3.0.2",
2626
"luxon": "^3.7.2",
27-
"react": "^19.1.1",
28-
"react-dom": "^19.1.1",
27+
"react": "^19.2.4",
28+
"react-dom": "^19.2.4",
2929
"react-dropzone-esm": "^15.2.0",
30-
"react-router": "^7.9.1",
30+
"react-router": "^7.13.2",
3131
"uuid": "^13.0.0"
3232
},
3333
"devDependencies": {
34-
"@types/react": "^19.1.13",
35-
"@types/react-dom": "^19.1.9",
36-
"@vitejs/plugin-react-swc": "^4.1.0",
37-
"eslint": "^9.36.0",
38-
"globals": "^16.4.0",
39-
"neostandard": "^0.12.2",
40-
"postcss": "^8.5.6",
34+
"@types/react": "^19.2.14",
35+
"@types/react-dom": "^19.2.3",
36+
"@vitejs/plugin-react": "^6.0.1",
37+
"eslint": "^9.39.4",
38+
"globals": "^17.4.0",
39+
"neostandard": "^0.13.0",
40+
"postcss": "^8.5.8",
4141
"postcss-preset-mantine": "^1.18.0",
4242
"postcss-simple-vars": "^7.0.1",
43-
"vite": "^7.1.6"
44-
},
45-
"optionalDependencies": {
46-
"@esbuild/aix-ppc64": "0.25.8",
47-
"@esbuild/android-arm": "0.25.8",
48-
"@esbuild/android-arm64": "0.25.8",
49-
"@esbuild/android-x64": "0.25.8",
50-
"@esbuild/darwin-arm64": "0.25.8",
51-
"@esbuild/darwin-x64": "0.25.8",
52-
"@esbuild/freebsd-arm64": "0.25.8",
53-
"@esbuild/freebsd-x64": "0.25.8",
54-
"@esbuild/linux-arm": "0.25.8",
55-
"@esbuild/linux-arm64": "0.25.8",
56-
"@esbuild/linux-ia32": "0.25.8",
57-
"@esbuild/linux-loong64": "0.25.8",
58-
"@esbuild/linux-mips64el": "0.25.8",
59-
"@esbuild/linux-ppc64": "0.25.8",
60-
"@esbuild/linux-riscv64": "0.25.8",
61-
"@esbuild/linux-s390x": "0.25.8",
62-
"@esbuild/linux-x64": "0.25.8",
63-
"@esbuild/netbsd-arm64": "0.25.8",
64-
"@esbuild/netbsd-x64": "0.25.8",
65-
"@esbuild/openbsd-arm64": "0.25.8",
66-
"@esbuild/openbsd-x64": "0.25.8",
67-
"@esbuild/openharmony-arm64": "0.25.8",
68-
"@esbuild/sunos-x64": "0.25.8",
69-
"@esbuild/win32-arm64": "0.25.8",
70-
"@esbuild/win32-ia32": "0.25.8",
71-
"@esbuild/win32-x64": "0.25.8",
72-
"@rollup/rollup-android-arm-eabi": "4.45.1",
73-
"@rollup/rollup-android-arm64": "4.45.1",
74-
"@rollup/rollup-darwin-arm64": "4.45.1",
75-
"@rollup/rollup-darwin-x64": "4.45.1",
76-
"@rollup/rollup-freebsd-arm64": "4.45.1",
77-
"@rollup/rollup-freebsd-x64": "4.45.1",
78-
"@rollup/rollup-linux-arm-gnueabihf": "4.45.1",
79-
"@rollup/rollup-linux-arm-musleabihf": "4.45.1",
80-
"@rollup/rollup-linux-arm64-gnu": "4.45.1",
81-
"@rollup/rollup-linux-arm64-musl": "4.45.1",
82-
"@rollup/rollup-linux-loongarch64-gnu": "4.45.1",
83-
"@rollup/rollup-linux-powerpc64le-gnu": "4.45.1",
84-
"@rollup/rollup-linux-riscv64-gnu": "4.45.1",
85-
"@rollup/rollup-linux-riscv64-musl": "4.45.1",
86-
"@rollup/rollup-linux-s390x-gnu": "4.45.1",
87-
"@rollup/rollup-linux-x64-gnu": "4.45.1",
88-
"@rollup/rollup-linux-x64-musl": "4.45.1",
89-
"@rollup/rollup-win32-arm64-msvc": "4.45.1",
90-
"@rollup/rollup-win32-ia32-msvc": "4.45.1",
91-
"@rollup/rollup-win32-x64-msvc": "4.45.1",
92-
"@swc/core-darwin-arm64": "1.13.5",
93-
"@swc/core-darwin-x64": "1.13.5",
94-
"@swc/core-linux-arm-gnueabihf": "1.13.5",
95-
"@swc/core-linux-arm64-gnu": "1.13.5",
96-
"@swc/core-linux-arm64-musl": "1.13.5",
97-
"@swc/core-linux-x64-gnu": "1.13.5",
98-
"@swc/core-linux-x64-musl": "1.13.5",
99-
"@swc/core-win32-arm64-msvc": "1.13.5",
100-
"@swc/core-win32-ia32-msvc": "1.13.5",
101-
"@swc/core-win32-x64-msvc": "1.13.5",
102-
"@unrs/resolver-binding-android-arm-eabi": "1.11.1",
103-
"@unrs/resolver-binding-android-arm64": "1.11.1",
104-
"@unrs/resolver-binding-darwin-arm64": "1.11.1",
105-
"@unrs/resolver-binding-darwin-x64": "1.11.1",
106-
"@unrs/resolver-binding-freebsd-x64": "1.11.1",
107-
"@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1",
108-
"@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1",
109-
"@unrs/resolver-binding-linux-arm64-gnu": "1.11.1",
110-
"@unrs/resolver-binding-linux-arm64-musl": "1.11.1",
111-
"@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1",
112-
"@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1",
113-
"@unrs/resolver-binding-linux-riscv64-musl": "1.11.1",
114-
"@unrs/resolver-binding-linux-s390x-gnu": "1.11.1",
115-
"@unrs/resolver-binding-linux-x64-gnu": "1.11.1",
116-
"@unrs/resolver-binding-linux-x64-musl": "1.11.1",
117-
"@unrs/resolver-binding-wasm32-wasi": "1.11.1",
118-
"@unrs/resolver-binding-win32-arm64-msvc": "1.11.1",
119-
"@unrs/resolver-binding-win32-ia32-msvc": "1.11.1",
120-
"@unrs/resolver-binding-win32-x64-msvc": "1.11.1"
43+
"vite": "^8.0.3"
12144
}
12245
}

client/src/Login.jsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { useEffect } from 'react';
22
import { useNavigate, Link, useLocation, useSearchParams } from 'react-router';
33
import { Alert, Box, Button, Container, Fieldset, Group, Stack, TextInput, Title } from '@mantine/core';
44
import { hasLength, isEmail, useForm } from '@mantine/form';
5-
import { useMutation } from '@tanstack/react-query';
5+
import { useMutation, useQueryClient } from '@tanstack/react-query';
66
import { Head } from '@unhead/react';
77

88
import Api from './Api';
@@ -15,6 +15,7 @@ function Login () {
1515
const location = useLocation();
1616
const [searchParams] = useSearchParams();
1717
const navigate = useNavigate();
18+
const queryClient = useQueryClient();
1819

1920
const from = location.state?.from || searchParams.get('from') || '/';
2021

@@ -38,7 +39,7 @@ function Login () {
3839

3940
const onSubmitMutation = useMutation({
4041
mutationFn: ({ email, password }) => Api.auth.login(email, password),
41-
onSuccess: () => navigate(from, { replace: true }),
42+
onSuccess: (response) => queryClient.setQueryData(['users', 'me'], response.data),
4243
onError: (errors) => form.setErrors(errors),
4344
onSettled: () => window.scrollTo({ top: 0, behavior: 'smooth' }),
4445
});

client/vite.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { defineConfig } from 'vite';
2-
import react from '@vitejs/plugin-react-swc';
2+
import react from '@vitejs/plugin-react';
33

44
// https://vite.dev/config/
55
export default defineConfig({

compose.override.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ services:
1818
- full-stack-starter
1919
ports:
2020
- 3000:3000 # fastify
21-
- 5000:5000 # vite
21+
- 3333:3333 # vite
2222
- 5555:5555 # prisma studio
2323
depends_on:
2424
- db

compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
services:
22
db:
3-
image: postgres:17.6
3+
image: postgres:18.3
44
environment:
55
- POSTGRES_HOST_AUTH_METHOD=trust
66
- PGDATA=/var/lib/postgresql/data/pgdata

0 commit comments

Comments
 (0)