Skip to content

Commit 80df2dc

Browse files
committed
⬆️(front) upgrade Next.js 15 to 16
Signed-off-by: Laurent Paoletti <lp@providenz.fr>
1 parent 6dd41e8 commit 80df2dc

File tree

9 files changed

+454
-1138
lines changed

9 files changed

+454
-1138
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ and this project adheres to
1313
- ✨(back) add projects with custom LLM instructions
1414
- ✨(front) projects management UI
1515

16+
### Changed
17+
18+
- ⬆️(front) upgrade Next.js 15 to 16
19+
1620
## [0.0.14] - 2026-03-11
1721

1822
### Added
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/// <reference types="next" />
22
/// <reference types="next/image-types/global" />
3+
import "./.next/dev/types/routes.d.ts";
34

45
// NOTE: This file should not be edited
56
// see https://nextjs.org/docs/pages/api-reference/config/typescript for more information.

src/frontend/apps/conversations/next.config.js

Lines changed: 9 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
const crypto = require('crypto');
22

3-
const { InjectManifest } = require('workbox-webpack-plugin');
4-
53
const buildId = crypto.randomBytes(256).toString('hex').slice(0, 8);
64

75
/** @type {import('next').NextConfig} */
@@ -12,44 +10,22 @@ const nextConfig = {
1210
unoptimized: true,
1311
},
1412
compiler: {
15-
// Enables the styled-components SWC transform
1613
styledComponents: true,
1714
},
1815
generateBuildId: () => buildId,
1916
env: {
2017
NEXT_PUBLIC_BUILD_ID: buildId,
2118
},
22-
webpack(config, { isServer }) {
23-
// Grab the existing rule that handles SVG imports
24-
const fileLoaderRule = config.module.rules.find((rule) =>
25-
rule.test?.test?.('.svg'),
26-
);
27-
28-
config.module.rules.push(
29-
// Reapply the existing rule, but only for svg imports ending in ?url
30-
{
31-
...fileLoaderRule,
32-
test: /\.svg$/i,
33-
resourceQuery: /url/, // *.svg?url
34-
},
35-
// Convert all other *.svg imports to React components
36-
{
37-
test: /\.svg$/i,
38-
issuer: fileLoaderRule.issuer,
39-
resourceQuery: { not: [...fileLoaderRule.resourceQuery.not, /url/] }, // exclude if *.svg?url
40-
use: ['@svgr/webpack'],
19+
turbopack: {
20+
rules: {
21+
'*.svg': {
22+
loaders: ['@svgr/webpack'],
23+
as: '*.js',
4124
},
42-
);
43-
44-
// Modify the file loader rule to ignore *.svg, since we have it handled now.
45-
fileLoaderRule.exclude = /\.svg$/i;
46-
47-
// Formula rendering in markdown, replace dollar-sign with \(...\) and \[...\]
48-
// https://github.com/remarkjs/remark-math/issues/39#issuecomment-2636184992
49-
config.resolve.alias['micromark-extension-math'] =
50-
'micromark-extension-llm-math';
51-
52-
return config;
25+
},
26+
resolveAlias: {
27+
'micromark-extension-math': 'micromark-extension-llm-math',
28+
},
5329
},
5430
};
5531

src/frontend/apps/conversations/package.json

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,11 @@
3737
"lottie-react": "^2.4.1",
3838
"luxon": "3.6.1",
3939
"micromark-extension-llm-math": "3.1.1-20250610",
40-
"next": "15.3.9",
40+
"next": "16.2.0",
4141
"posthog-js": "1.249.3",
42-
"react": "19.2.1",
42+
"react": "19.2.4",
4343
"react-aria-components": "1.9.0",
44-
"react-dom": "19.2.1",
44+
"react-dom": "19.2.4",
4545
"react-i18next": "15.5.2",
4646
"react-intersection-observer": "9.16.0",
4747
"react-markdown": "10.1.0",
@@ -65,22 +65,23 @@
6565
"@types/lodash": "4.17.17",
6666
"@types/luxon": "3.6.2",
6767
"@types/node": "*",
68-
"@types/react": "*",
69-
"@types/react-dom": "*",
70-
"cross-env": "7.0.3",
68+
"@types/react": "19.2.14",
69+
"@types/react-dom": "19.2.3",
7170
"dotenv": "16.5.0",
71+
"eslint": "^9",
7272
"eslint-config-conversations": "*",
73+
"eslint-config-next": "16.2.0",
7374
"fetch-mock": "9.11.0",
7475
"jest": "29.7.0",
7576
"jest-environment-jsdom": "29.7.0",
76-
"node-fetch": "2.7.0",
7777
"prettier": "3.5.3",
78-
"sass": "^1.97.3",
7978
"stylelint": "16.20.0",
8079
"stylelint-config-standard": "38.0.0",
8180
"stylelint-prettier": "5.0.3",
82-
"typescript": "*",
83-
"webpack": "5.99.9",
84-
"workbox-webpack-plugin": "7.1.0"
81+
"typescript": "*"
82+
},
83+
"resolutions": {
84+
"@types/react": "19.2.14",
85+
"@types/react-dom": "19.2.3"
8586
}
8687
}
Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
{
22
"compilerOptions": {
33
"target": "es5",
4-
"lib": ["dom", "dom.iterable", "esnext"],
4+
"lib": [
5+
"dom",
6+
"dom.iterable",
7+
"esnext"
8+
],
59
"allowJs": true,
610
"skipLibCheck": true,
711
"strict": true,
@@ -11,15 +15,17 @@
1115
"moduleResolution": "bundler",
1216
"resolveJsonModule": true,
1317
"isolatedModules": true,
14-
"jsx": "preserve",
18+
"jsx": "react-jsx",
1519
"incremental": true,
1620
"plugins": [
1721
{
1822
"name": "next"
1923
}
2024
],
2125
"paths": {
22-
"@/*": ["./src/*"]
26+
"@/*": [
27+
"./src/*"
28+
]
2329
}
2430
},
2531
"include": [
@@ -29,5 +35,7 @@
2935
"**/*.tsx",
3036
".next/types/**/*.ts"
3137
],
32-
"exclude": ["node_modules"]
38+
"exclude": [
39+
"node_modules"
40+
]
3341
}

src/frontend/apps/e2e/package.json

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,10 @@
1212
"test:ui::chromium": "yarn test:ui --project=chromium"
1313
},
1414
"devDependencies": {
15-
"@playwright/test": "1.52.0",
15+
"@playwright/test": "1.56.0",
1616
"@types/node": "*",
17-
"@types/pdf-parse": "1.1.5",
1817
"eslint-config-conversations": "*",
1918
"typescript": "*"
2019
},
21-
"dependencies": {
22-
"convert-stream": "1.0.2",
23-
"pdf-parse": "1.1.1"
24-
}
20+
"dependencies": {}
2521
}

src/frontend/apps/e2e/type/convert-stream.d.ts

Lines changed: 0 additions & 5 deletions
This file was deleted.

src/frontend/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,13 @@
2727
},
2828
"resolutions": {
2929
"@types/node": "22.15.29",
30-
"@types/react": "19.1.6",
31-
"@types/react-dom": "19.1.6",
30+
"@types/react": "19.2.14",
31+
"@types/react-dom": "19.2.3",
3232
"@typescript-eslint/eslint-plugin": "8.33.1",
3333
"@typescript-eslint/parser": "8.33.1",
3434
"eslint": "^9.0.0",
35-
"react": "19.2.1",
36-
"react-dom": "19.2.1",
35+
"react": "19.2.4",
36+
"react-dom": "19.2.4",
3737
"typescript": "5.8.3",
3838
"minimatch": ">=10.2.1"
3939
}

0 commit comments

Comments
 (0)