Skip to content

Commit 4045546

Browse files
authored
Merge pull request #454 from openscript-ch/447-upgrade-dependencies
447 upgrade dependencies
2 parents e7e720c + fe69194 commit 4045546

File tree

24 files changed

+5229
-5210
lines changed

24 files changed

+5229
-5210
lines changed

.changeset/stale-geese-show.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
"@quassel/frontend": patch
3+
"@quassel/backend": patch
4+
"@quassel/utils": patch
5+
"@quassel/ui": patch
6+
---
7+
8+
Upgrade dependencies

.devcontainer/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
FROM mcr.microsoft.com/devcontainers/typescript-node:1-22-bookworm
1+
FROM mcr.microsoft.com/devcontainers/typescript-node:2-22-bookworm
22

33
RUN apt update
44
RUN apt install -y postgresql-common
55
RUN YES=yes /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
66
RUN apt install -y postgresql-client-17
7-
RUN su node -c "npm install -g pnpm@10.8.1"
7+
RUN su node -c "npm install -g pnpm@10.14.0"

apps/backend/package.json

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -29,45 +29,45 @@
2929
},
3030
"dependencies": {
3131
"@fastify/secure-session": "^8.2.0",
32-
"@fastify/static": "^8.1.1",
33-
"@mikro-orm/cli": "^6.4.13",
34-
"@mikro-orm/core": "^6.4.13",
35-
"@mikro-orm/migrations": "^6.4.13",
32+
"@fastify/static": "^8.2.0",
33+
"@mikro-orm/cli": "^6.4.16",
34+
"@mikro-orm/core": "^6.4.16",
35+
"@mikro-orm/migrations": "^6.4.16",
3636
"@mikro-orm/nestjs": "^6.1.1",
37-
"@mikro-orm/postgresql": "^6.4.13",
38-
"@mikro-orm/reflection": "^6.4.13",
39-
"@mikro-orm/seeder": "^6.4.13",
40-
"@nestjs/common": "^11.0.20",
37+
"@mikro-orm/postgresql": "^6.4.16",
38+
"@mikro-orm/reflection": "^6.4.16",
39+
"@mikro-orm/seeder": "^6.4.16",
40+
"@nestjs/common": "^11.1.6",
4141
"@nestjs/config": "^4.0.2",
42-
"@nestjs/core": "^11.0.20",
43-
"@nestjs/platform-fastify": "^11.0.20",
44-
"@nestjs/swagger": "^11.1.4",
42+
"@nestjs/core": "^11.1.6",
43+
"@nestjs/platform-fastify": "^11.1.6",
44+
"@nestjs/swagger": "^11.2.0",
4545
"@nestjs/terminus": "^11.0.0",
4646
"@quassel/utils": "workspace:*",
4747
"class-transformer": "^0.5.1",
48-
"class-validator": "^0.14.1",
49-
"csv-stringify": "^6.5.2",
48+
"class-validator": "^0.14.2",
49+
"csv-stringify": "^6.6.0",
5050
"date-fns": "^4.1.0",
51-
"fastify": "5.3.0",
51+
"fastify": "5.5.0",
5252
"hash-wasm": "^4.12.0",
5353
"reflect-metadata": "^0.2.2",
5454
"rxjs": "^7.8.2"
5555
},
5656
"devDependencies": {
57-
"@nestjs/cli": "^11.0.6",
58-
"@nestjs/schematics": "^11.0.5",
59-
"@nestjs/testing": "^11.0.20",
60-
"@types/jest": "^29.5.14",
61-
"@types/node": "^22.14.1",
57+
"@nestjs/cli": "^11.0.10",
58+
"@nestjs/schematics": "^11.0.7",
59+
"@nestjs/testing": "^11.1.6",
60+
"@types/jest": "^30.0.0",
61+
"@types/node": "^24.2.1",
6262
"@types/supertest": "^6.0.3",
63-
"jest": "^29.7.0",
63+
"jest": "^30.0.5",
6464
"source-map-support": "^0.5.21",
65-
"supertest": "^7.1.0",
66-
"ts-jest": "^29.3.2",
65+
"supertest": "^7.1.4",
66+
"ts-jest": "^29.4.1",
6767
"ts-loader": "^9.5.2",
6868
"ts-node": "^10.9.2",
6969
"tsconfig-paths": "^4.2.0",
70-
"typescript": "^5.8.3"
70+
"typescript": "^5.9.2"
7171
},
7272
"jest": {
7373
"moduleFileExtensions": [

apps/backend/src/main.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@ async function bootstrap() {
1919
app.enableShutdownHooks();
2020
app.useGlobalPipes(new ValidationPipe());
2121
app.useGlobalInterceptors(new ClassSerializerInterceptor(app.get(Reflector)));
22-
23-
await app.register(fastifySecureSession, {
22+
// TODO: Remove `as any` when type definitions of "@fastify/secure-session" package are fixed
23+
/* eslint-disable @typescript-eslint/no-explicit-any */
24+
await app.register(fastifySecureSession as any, {
2425
expiry: configService.get("session.expiry"),
2526
cookieName: configService.get("session.cookieName"),
2627
secret: configService.get("session.secret"),

apps/frontend/package.json

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -17,40 +17,40 @@
1717
"generate:icons": "pwa-asset-generator ./public/logo.svg ./public --type png --opaque false --favicon --maskable --manifest ./manifest.json --index ./index.html"
1818
},
1919
"dependencies": {
20-
"@fullcalendar/core": "^6.1.17",
21-
"@fullcalendar/interaction": "^6.1.17",
22-
"@fullcalendar/react": "^6.1.17",
23-
"@fullcalendar/timegrid": "^6.1.17",
24-
"@nanostores/i18n": "^1.0.0",
25-
"@nanostores/persistent": "^1.0.0",
20+
"@fullcalendar/core": "^6.1.19",
21+
"@fullcalendar/interaction": "^6.1.19",
22+
"@fullcalendar/react": "^6.1.19",
23+
"@fullcalendar/timegrid": "^6.1.19",
24+
"@nanostores/i18n": "^1.2.2",
25+
"@nanostores/persistent": "^1.1.0",
2626
"@nanostores/react": "^1.0.0",
2727
"@quassel/ui": "workspace:*",
2828
"@quassel/utils": "workspace:*",
29-
"@tanstack/react-query": "^5.74.4",
30-
"@tanstack/react-router": "^1.116.0",
29+
"@tanstack/react-query": "^5.85.0",
30+
"@tanstack/react-router": "^1.131.8",
3131
"nanostores": "^1.0.1",
32-
"openapi-fetch": "0.13.5",
33-
"openapi-react-query": "0.3.1",
34-
"react": "^19.1.0",
35-
"react-dom": "^19.1.0"
32+
"openapi-fetch": "0.14.0",
33+
"openapi-react-query": "0.5.0",
34+
"react": "^19.1.1",
35+
"react-dom": "^19.1.1"
3636
},
3737
"devDependencies": {
3838
"@anolilab/unplugin-favicons": "^1.0.5",
39-
"@sinclair/typebox": "^0.34.33",
40-
"@tanstack/router-devtools": "^1.116.0",
41-
"@tanstack/router-plugin": "^1.116.1",
42-
"@testing-library/jest-dom": "^6.6.3",
39+
"@sinclair/typebox": "^0.34.38",
40+
"@tanstack/router-devtools": "^1.131.8",
41+
"@tanstack/router-plugin": "^1.131.8",
42+
"@testing-library/jest-dom": "^6.6.4",
4343
"@testing-library/react": "^16.3.0",
44-
"@types/react": "^19.1.2",
45-
"@types/react-dom": "^19.1.2",
46-
"@vitejs/plugin-react": "^4.4.1",
47-
"@vitest/coverage-v8": "3.1.1",
44+
"@types/react": "^19.1.10",
45+
"@types/react-dom": "^19.1.7",
46+
"@vitejs/plugin-react": "^5.0.0",
47+
"@vitest/coverage-v8": "3.2.4",
4848
"favicons": "^7.2.0",
4949
"jsdom": "^26.1.0",
50-
"openapi-typescript": "^7.6.1",
50+
"openapi-typescript": "^7.9.1",
5151
"openapi-typescript-helpers": "^0.0.15",
52-
"typescript": "^5.8.3",
53-
"vite": "^6.3.2",
54-
"vitest": "^3.1.1"
52+
"typescript": "^5.9.2",
53+
"vite": "^7.1.2",
54+
"vitest": "^3.2.4"
5555
}
5656
}

apps/frontend/src/components/questionnaire/PeriodForm.tsx

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import { Button, Flex, InputError, MonthPicker, Stack, TextInput, useForm } from "@quassel/ui";
2-
import { formatDate } from "@quassel/utils";
2+
import { formatDate, getStartOf, isSame } from "@quassel/utils";
33
import { i18n } from "../../stores/i18n";
44
import { useStore } from "@nanostores/react";
55
import { useEffect } from "react";
66
import { params } from "@nanostores/i18n";
77

88
export type PeriodFormValues = {
99
title: string;
10-
range: [Date | null, Date | null];
10+
range: [string | null, string | null];
1111
};
1212

1313
type PeriodFormProps = {
@@ -32,7 +32,7 @@ export function PeriodForm({ onSave, actionLabel, period }: PeriodFormProps) {
3232
},
3333
validate: {
3434
range([start]) {
35-
if (period?.range[0] && +period.range[0] !== +start!) {
35+
if (period?.range[0] && !isSame("day", new Date(period.range[0]), new Date(start!))) {
3636
return t.validationStartDate;
3737
}
3838
},
@@ -41,14 +41,19 @@ export function PeriodForm({ onSave, actionLabel, period }: PeriodFormProps) {
4141
const [newStart, newEnd] = newValues.range ?? [];
4242
const [prevStart, prevEnd] = prevValues.range ?? [];
4343
if ((!prevStart || !prevEnd) && newStart && newEnd) {
44-
f.setFieldValue("title", t.defaultTitle({ start: formatDate(newStart, "M/YY"), end: formatDate(newEnd, "M/YY") }));
44+
f.setFieldValue("title", t.defaultTitle({ start: formatDate(new Date(newStart), "M/YY"), end: formatDate(new Date(newEnd), "M/YY") }));
4545
}
4646
},
4747
});
4848

4949
useEffect(() => {
5050
if (period) {
51-
f.setValues(period);
51+
const [start, end] = period.range;
52+
53+
f.setValues({
54+
...period,
55+
range: [start, end ? getStartOf("day", new Date(end)).toISOString() : null],
56+
});
5257
}
5358
}, [period]);
5459

0 commit comments

Comments
 (0)