Skip to content

Commit e75a05b

Browse files
authored
chore: upgrade next (and other dependencies) (#1339)
* chore: upgrade next * chore: update typescript * chore: upgrade eslint * chore: upgrade sentry * chore: upgrade safe outdated deps * chore: upgrade some more old deps * chore: dedupe * chore: add type filter to kysely * chore: preconstruct fix * chore: format * fix: fix tailwind issue * chore: fix format * fix: install same version of babel/core * fix: use correct import-in-the-middle version * fix: import-in-the-middle * fix: use turbo build by default * fix: don't use turbo for ci buildS * fix: fix test
1 parent 47ac46c commit e75a05b

26 files changed

+8202
-8426
lines changed

config/eslint/package.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,22 @@
2323
"type-check": "tsc --noEmit"
2424
},
2525
"dependencies": {
26-
"@eslint/compat": "^1.2.4",
27-
"@next/eslint-plugin-next": "^15.1.3",
28-
"eslint-plugin-import": "^2.31.0",
26+
"@eslint/compat": "^1.3.2",
27+
"@next/eslint-plugin-next": "^15.5.0",
28+
"eslint-plugin-import": "^2.32.0",
2929
"eslint-plugin-jsx-a11y": "^6.10.2",
30-
"eslint-plugin-react": "^7.37.3",
31-
"eslint-plugin-react-hooks": "^5.1.0",
32-
"typescript-eslint": "^8.19.0"
30+
"eslint-plugin-react": "^7.37.5",
31+
"eslint-plugin-react-hooks": "^5.2.0",
32+
"typescript-eslint": "^8.40.0"
3333
},
3434
"devDependencies": {
3535
"@pubpub/prettier-config": "workspace:*",
3636
"@types/eslint": "^9.6.1",
3737
"@types/eslint-plugin-jsx-a11y": "^6.10.0",
3838
"@types/node": "catalog:",
3939
"eslint": "catalog:",
40-
"eslint-plugin-react-compiler": "19.0.0-beta-63e3235-20250105",
41-
"eslint-config-turbo": "^2.3.3",
40+
"eslint-plugin-react-compiler": "19.1.0-rc.2",
41+
"eslint-config-turbo": "^2.5.6",
4242
"eslint-plugin-validate-jsx-nesting": "^0.1.1",
4343
"prettier": "catalog:",
4444
"tsconfig": "workspace:*",

config/prettier/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@
1313
"type-check": "tsc --noEmit"
1414
},
1515
"dependencies": {
16-
"@ianvs/prettier-plugin-sort-imports": "^4.1.1",
16+
"@ianvs/prettier-plugin-sort-imports": "^4.6.2",
1717
"prettier": "catalog:",
18-
"prettier-plugin-jsdoc": "^1.3.0",
19-
"prettier-plugin-tailwindcss": "^0.6.6"
18+
"prettier-plugin-jsdoc": "^1.3.3",
19+
"prettier-plugin-tailwindcss": "^0.6.14"
2020
},
2121
"devDependencies": {
2222
"tsconfig": "workspace:*",

core/sentry.client.config.ts renamed to core/instrumentation-client.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,5 @@ if (env.NODE_ENV === "production") {
3232
],
3333
});
3434
}
35+
36+
export const onRouterTransitionStart = Sentry.captureRouterTransitionStart;

core/lib/server/cache/README.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -261,17 +261,16 @@ The way to get around this is to either pass the `userId` as a parameter to the
261261

262262
```ts
263263
const getProfile = unstable_cache(async (userId: number) => {
264-
return await db.selectFrom('users').selectAll().where('users.id', '=', userId).execute()
265-
})
264+
return await db.selectFrom("users").selectAll().where("users.id", "=", userId).execute();
265+
});
266266

267267
// or
268268

269269
const getProfile = async (userId: number) => {
270-
return await unstable_cache(async () => {
271-
return await db.selectFrom('users').selectAll().where('users.id', '=', userId).execute()
272-
}, [userId])()
273-
}
274-
270+
return await unstable_cache(async () => {
271+
return await db.selectFrom("users").selectAll().where("users.id", "=", userId).execute();
272+
}, [userId])();
273+
};
275274
```
276275

277276
2. The cache _tag_ is used to invalidate the cache. The tag can be anything you want, but it's usually a string that describes the data that is cached.

core/next.config.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ const nextConfig: NextConfig = {
4343
},
4444
],
4545
},
46+
turbopack: {
47+
root: new URL("./..", import.meta.url).pathname,
48+
},
4649
serverExternalPackages: [
4750
"@aws-sdk",
4851
// without this here, next will sort of implode and no longer compile and serve pages properly

core/package.json

Lines changed: 66 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"clear-cache": "echo 'FLUSHALL' | nc $(dotenv -e .env.local -e .env.development -p VALKEY_HOST) 6379",
2323
"dev": "NODE_OPTIONS=\"--max-old-space-size=16384\" next dev -p 3000 --turbo | pino-pretty",
2424
"build": "SKIP_VALIDATION=true NODE_OPTIONS=\"--max-old-space-size=8192\" next build",
25+
"build:turbo": "SKIP_VALIDATION=true NODE_OPTIONS=\"--max-old-space-size=8192\" next build --turbo",
2526
"invite-users": "dotenv -e .env.local -e .env.development tsx scripts/invite.ts",
2627
"load-test": "dotenv -e .env.local -e .env.development artillery run load-test.yaml",
2728
"lint": "eslint",
@@ -56,91 +57,90 @@
5657
"seed": "tsx --import #register-loader prisma/seed.ts"
5758
},
5859
"dependencies": {
59-
"@aws-sdk/client-s3": "^3.817.0",
60-
"@aws-sdk/lib-storage": "^3.817.0",
61-
"@aws-sdk/s3-request-presigner": "^3.817.0",
62-
"@dagrejs/dagre": "^1.0.4",
63-
"@dnd-kit/core": "^6.1.0",
60+
"@aws-sdk/client-s3": "^3.864.0",
61+
"@aws-sdk/lib-storage": "^3.864.0",
62+
"@aws-sdk/s3-request-presigner": "^3.864.0",
63+
"@dagrejs/dagre": "^1.1.5",
64+
"@dnd-kit/core": "^6.3.1",
6465
"@dnd-kit/modifiers": "^7.0.0",
6566
"@dnd-kit/sortable": "^8.0.0",
6667
"@dnd-kit/utilities": "^3.2.2",
67-
"@faker-js/faker": "^9.0.0",
68-
"@fortedigital/nextjs-cache-handler": "^1.2.0",
68+
"@faker-js/faker": "^9.9.0",
69+
"@fortedigital/nextjs-cache-handler": "1.2.0",
6970
"@googleapis/drive": "^8.16.0",
7071
"@handlewithcare/react-prosemirror": "catalog:",
7172
"@honeycombio/opentelemetry-node": "catalog:",
7273
"@hookform/resolvers": "catalog:",
7374
"@icons-pack/react-simple-icons": "^10.2.0",
7475
"@neshca/cache-handler": "^1.9.0",
75-
"@nimpl/getters": "^2.0.0",
76+
"@nimpl/getters": "^2.2.0",
7677
"@node-rs/argon2": "^1.8.3",
7778
"@opentelemetry/auto-instrumentations-node": "catalog:",
7879
"@prisma/client": "5.19.1",
79-
"@react-email/render": "^1.0.1",
80+
"@react-email/render": "^1.2.0",
8081
"@sentry/nextjs": "catalog:",
8182
"@sinclair/typebox": "catalog:",
8283
"@t3-oss/env-nextjs": "^0.11.1",
83-
"@tanstack/react-query": "5",
84-
"@tanstack/react-table": "^8.13.2",
84+
"@tanstack/react-query": "^5.85.5",
85+
"@tanstack/react-table": "^8.21.3",
8586
"@ts-rest/core": "catalog:",
8687
"@ts-rest/next": "catalog:",
8788
"@ts-rest/open-api": "catalog:",
8889
"@ts-rest/react-query": "catalog:",
8990
"@ts-rest/serverless": "catalog:",
9091
"@types/hast": "^3.0.4",
91-
"ajv": "^8.12.0",
92+
"ajv": "^8.17.1",
9293
"ajv-formats": "^2.1.1",
9394
"clsx": "catalog:",
9495
"context-editor": "workspace:*",
9596
"contracts": "workspace:*",
9697
"date-fns": "catalog:",
9798
"db": "workspace:*",
98-
"debounce": "^2.0.0",
99+
"debounce": "^2.2.0",
99100
"diacritics": "^1.3.0",
100101
"emails": "workspace:*",
101-
"eta": "^3.1.1",
102+
"eta": "^3.5.0",
102103
"google-auth-library": "^9.15.1",
103-
"graphile-worker": "^0.16.5",
104-
"hast": "^1.0.0",
105-
"hastscript": "^9.0.0",
106-
"import-in-the-middle": "^1.13.1",
107-
"ioredis": "^5.6.1",
108-
"jsonpath-plus": "^10.2.0",
109-
"jsonwebtoken": "^9.0.0",
104+
"graphile-worker": "^0.16.6",
105+
"hastscript": "^9.0.1",
106+
"import-in-the-middle": "1.14.2",
107+
"ioredis": "^5.7.0",
108+
"jsonpath-plus": "^10.3.0",
109+
"jsonwebtoken": "^9.0.2",
110110
"katex": "catalog:",
111-
"kysely": "^0.27.5",
111+
"kysely": "^0.27.6",
112112
"lodash.isequalwith": "^4.4.0",
113113
"lodash.partition": "^4.6.0",
114114
"logger": "workspace:*",
115115
"lucia": "^3.2.2",
116116
"lucide-react": "^0.469.0",
117-
"micromark-extension-directive": "^3.0.0",
117+
"micromark-extension-directive": "^3.0.2",
118118
"mudder": "^2.1.1",
119119
"next": "catalog:",
120120
"next-connect": "^1.0.0",
121-
"nodemailer": "^6.9.5",
121+
"nodemailer": "^6.10.1",
122122
"nuqs": "catalog:",
123-
"openapi3-ts": "^4.1.2",
123+
"openapi3-ts": "^4.5.0",
124124
"oslo": "^1.2.1",
125125
"parse-english": "^7.0.0",
126-
"pg": "^8.11.3",
127-
"prosemirror-markdown": "^1.12.0",
126+
"pg": "^8.16.3",
127+
"prosemirror-markdown": "^1.13.2",
128128
"prosemirror-model": "catalog:",
129129
"qs": "^6.14.0",
130130
"react": "catalog:react19",
131131
"react-dom": "catalog:react19",
132132
"react-hook-form": "catalog:",
133-
"react-markdown": "^9.0.1",
134-
"reactflow": "^11.10.4",
133+
"react-markdown": "^9.1.0",
134+
"reactflow": "^11.11.4",
135135
"rehype": "^13.0.2",
136-
"rehype-format": "^5.0.0",
136+
"rehype-format": "^5.0.1",
137137
"rehype-parse": "^9.0.1",
138-
"rehype-remark": "^10.0.0",
138+
"rehype-remark": "^10.0.1",
139139
"rehype-retext": "^5.0.1",
140-
"rehype-stringify": "^10.0.0",
141-
"remark-directive": "^3.0.0",
140+
"rehype-stringify": "^10.0.1",
141+
"remark-directive": "^3.0.1",
142142
"remark-parse": "^11.0.0",
143-
"remark-rehype": "^11.1.0",
143+
"remark-rehype": "^11.1.2",
144144
"remark-stringify": "^11.0.0",
145145
"remove": "^0.1.5",
146146
"require-in-the-middle": "^7.5.2",
@@ -149,75 +149,75 @@
149149
"server-only": "^0.0.1",
150150
"tailwind-merge": "catalog:",
151151
"ui": "workspace:*",
152-
"unified": "^11.0.4",
152+
"unified": "^11.0.5",
153153
"unist-util-filter": "^5.0.1",
154154
"unist-util-visit": "^5.0.0",
155-
"use-debounce": "^10.0.0",
155+
"use-debounce": "^10.0.5",
156156
"use-next-sse": "^0.2.3",
157157
"utils": "workspace:*",
158-
"uuid": "^9.0.0",
158+
"uuid": "^9.0.1",
159159
"zod": "catalog:"
160160
},
161161
"devDependencies": {
162-
"@chromatic-com/storybook": "^4.0.0",
163-
"@hookform/devtools": "^4.3.1",
162+
"@chromatic-com/storybook": "^4.1.1",
163+
"@hookform/devtools": "^4.4.0",
164164
"@playwright/test": "catalog:",
165165
"@preconstruct/next": "^4.0.0",
166-
"@prisma/generator-helper": "^5.14.0",
167-
"@prisma/internals": "^5.14.0",
166+
"@prisma/generator-helper": "^5.22.0",
167+
"@prisma/internals": "^5.22.0",
168168
"@pubpub/eslint-config": "workspace:*",
169169
"@pubpub/prettier-config": "workspace:*",
170-
"@storybook/addon-docs": "^9.0.8",
171-
"@storybook/addon-onboarding": "^9.0.8",
170+
"@storybook/addon-docs": "^9.1.2",
171+
"@storybook/addon-onboarding": "^9.1.2",
172172
"@storybook/addon-vitest": "9.0.8",
173-
"@storybook/nextjs-vite": "^9.0.8",
174-
"@tailwindcss/forms": "^0.5.6",
175-
"@tanstack/react-query-devtools": "^5.61.3",
176-
"@testing-library/jest-dom": "^6.6.3",
177-
"@testing-library/react": "^16.0.1",
178-
"@testing-library/user-event": "^14.5.2",
179-
"@types/diacritics": "^1.3.1",
173+
"@storybook/nextjs-vite": "^9.1.2",
174+
"@tailwindcss/forms": "^0.5.10",
175+
"@tanstack/react-query-devtools": "^5.85.5",
176+
"@testing-library/jest-dom": "^6.7.0",
177+
"@testing-library/react": "^16.3.0",
178+
"@testing-library/user-event": "^14.6.1",
179+
"@types/diacritics": "^1.3.3",
180180
"@types/jsdom": "^21.1.7",
181-
"@types/jsonwebtoken": "^9.0.2",
181+
"@types/jsonwebtoken": "^9.0.10",
182182
"@types/lodash.isequalwith": "^4.4.9",
183183
"@types/lodash.partition": "^4.6.9",
184184
"@types/mdast": "^4.0.4",
185185
"@types/mudder": "^2.1.3",
186186
"@types/node": "catalog:",
187-
"@types/nodemailer": "^6.4.9",
188-
"@types/pg": "^8.11.6",
187+
"@types/nodemailer": "^6.4.18",
188+
"@types/pg": "^8.15.5",
189189
"@types/pluralize": "^0.0.33",
190-
"@types/qs": "^6.9.18",
190+
"@types/qs": "^6.14.0",
191191
"@types/react": "catalog:react19",
192192
"@types/react-dom": "catalog:react19",
193-
"@types/unist": "^3.0.2",
194-
"@types/uuid": "^9.0.2",
195-
"@vitejs/plugin-react": "^4.2.1",
193+
"@types/unist": "^3.0.3",
194+
"@types/uuid": "^9.0.8",
195+
"@vitejs/plugin-react": "^4.7.0",
196196
"@vitest/browser": "3.0.5",
197197
"@vitest/coverage-v8": "3.0.5",
198-
"@vitest/utils": "^3.1.2",
198+
"@vitest/utils": "^3.2.4",
199199
"autoprefixer": "catalog:",
200-
"csv-parse": "^5.5.2",
201-
"dotenv": "^16.4.5",
202-
"dotenv-cli": "^7.2.1",
200+
"csv-parse": "^5.6.0",
201+
"dotenv": "^16.6.1",
202+
"dotenv-cli": "^7.4.4",
203203
"jsdom": "^25.0.1",
204-
"kanel": "^3.8.2",
204+
"kanel": "^3.14.4",
205205
"kanel-kysely": "^0.4.0",
206206
"pluralize": "^8.0.0",
207207
"postcss": "catalog:",
208-
"prisma": "^5.2.0",
208+
"prisma": "^5.22.0",
209209
"prisma-dbml-generator": "^0.12.0",
210210
"react": "catalog:react19",
211211
"react-dom": "catalog:react19",
212-
"storybook": "^9.0.8",
212+
"storybook": "^9.1.2",
213213
"styled-jsx": "^5.1.7",
214214
"tailwindcss": "catalog:",
215-
"ts-node": "^10.9.1",
215+
"ts-node": "^10.9.2",
216216
"tsconfig": "workspace:*",
217217
"tsx": "catalog:",
218218
"typescript": "catalog:",
219219
"vite": "catalog:",
220-
"vite-tsconfig-paths": "^5.0.1",
220+
"vite-tsconfig-paths": "^5.1.4",
221221
"vitest": "catalog:",
222222
"yargs": "^17.7.2"
223223
},

core/playwright/formAccess.spec.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -294,10 +294,7 @@ test.describe("public forms", () => {
294294
}, url!);
295295

296296
await page.goto(decodedUrl);
297-
await page
298-
.getByRole("status")
299-
.getByText("Your email is now verified", { exact: true })
300-
.waitFor();
297+
await page.getByText("Your email is now verified", { exact: true }).waitFor();
301298
await page.waitForURL(fillUrl, { timeout: 5_000 });
302299
});
303300

core/playwright/verifyEmail.spec.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -144,10 +144,7 @@ test.describe("unverified user", () => {
144144

145145
await test.step("second verification should succeed", async () => {
146146
await page.goto(secondVerification!);
147-
await page
148-
.getByRole("status")
149-
.getByText("Your email is now verified", { exact: true })
150-
.waitFor();
147+
await page.getByText("Your email is now verified", { exact: true }).waitFor();
151148
});
152149
});
153150

@@ -187,10 +184,7 @@ test.describe("unverified user", () => {
187184
await test.step("link in email redirects to redirect link", async () => {
188185
await page.goto(url);
189186
await page.waitForURL("/communities**");
190-
await page
191-
.getByRole("status")
192-
.getByText("Your email is now verified", { exact: true })
193-
.waitFor();
187+
await page.getByText("Your email is now verified", { exact: true }).waitFor();
194188
});
195189
});
196190

core/postcss.config.cjs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
module.exports = {
55
plugins: {
6-
"@tailwindcss/postcss": {},
76
tailwindcss: {},
87
autoprefixer: {},
98
},

0 commit comments

Comments
 (0)