Skip to content

chore: Update dependencies including majors - #19

Merged
Ho-s merged 12 commits into
masterfrom
chore/dependency-updates
Aug 19, 2026
Merged

chore: Update dependencies including majors#19
Ho-s merged 12 commits into
masterfrom
chore/dependency-updates

Conversation

@Ho-s

@Ho-s Ho-s commented Aug 19, 2026

Copy link
Copy Markdown
Owner

Summary

  • Update all outdated dependencies to the latest possible version
  • Remove unused packages and config
  • Upgrade TypeScript to 6.0 and move CI to Node 24

Changes

  • Bump 17 packages within their current major, including Apollo Client 4.2.12, Storybook 10.5.9, Next.js 16.3.1 with eslint-config-next, Cypress 15.21, Prettier 3.9.6, styled-components 6.5.3 and ESLint 9.39.5
  • Bump graphql 17, apollo-upload-client 20, @testing-library/jest-dom 7, start-server-and-test 3, sharp 0.35 and @swc/plugin-styled-components 13
  • Upgrade TypeScript to 6.0 and raise target to ES2017 in tsconfig.json and cypress/tsconfig.json, which TypeScript 6 requires
  • Raise CI to Node 24, which the majors above need through their engines field
  • Pin @types/node back to the Node 24 line, it was ahead of the runtime on 25
  • Read the auth cookie on the server in src/app/page.tsx and pass it to the new src/app/page-ui.tsx, and keep only the query inside try/catch in src/app/landpads/[id]/page.tsx, both required by the new eslint-plugin-react-hooks 7.1 rules
  • Remove .swcrc and @swc/plugin-styled-components, the build never reads them and compiler.styledComponents already does the transform
  • Remove @eslint/js and @eslint/eslintrc, neither is imported
  • Deduplicate @apollo/client and refresh yarn.lock

Not upgraded

  • eslint 10 — eslint-config-next ships eslint-plugin-react 7.37, which peers ^9.7 and calls the removed context.getFilename(), and its parser returns a scope manager without addGlobals
  • typescript 7 — ts-jest peers <7, typescript-eslint peers <6.1.0
  • @types/node 26 — kept on the Node 24 runtime

Ho-s added 12 commits August 19, 2026 14:07
Several dependency majors planned for this branch require Node 22+
in their engines field, and yarn v1 fails installs on engine
mismatch. Align CI with the local runtime (Node 24).
Apollo Client 4.2.12, Storybook 10.5.9, Cypress 15.21, Prettier 3.9.6,
styled-components 6.5.3 and other patch level bumps.

Deduplicate the @apollo/client entry in yarn.lock so that
@types/apollo-upload-client resolves the same instance as the root
dependency, which otherwise produced conflicting ApolloLink types.
eslint-plugin-react-hooks 7.1 adds set-state-in-effect and
error-boundaries, both of which flagged existing code.

Read the auth cookie on the server through cookies() and pass it to a
new client component, which removes the effect that set state right
after mount and the resulting flash of the signed out view. Keep only
the query inside try/catch on the landpad detail page so the returned
JSX is no longer created where the catch cannot protect it.
Next.js 16.3.1 moves its optional sharp dependency to ^0.35.3, so the
direct dependency is aligned with it. eslint-config-next follows the
Next.js version.
TypeScript 6.0 rejects target es5, so the compile target moves to
ES2017, which matches the default Next.js emits for new projects.

TypeScript 7 is not possible yet: ts-jest declares typescript
>=4.3 <7 and the typescript-eslint bundled with eslint-config-next
declares >=4.8.4 <6.1.0.
Both majors only drop Node versions below 22 and keep the APIs this
project uses: the matchers in the test suites and the script wrappers
in package.json behave the same.
Apollo Client 4 and apollo-upload-client 20 both accept graphql
^16 || ^17, and the UploadHttpLink.mjs export path is unchanged in
apollo-upload-client 20.
Builds and styled-components SSR output are unaffected. The Next.js
build never loads .swcrc, so the transform in use comes from the
styledComponents compiler option in next.config.mjs.
The types were on 25 while the local and CI runtimes are Node 24,
which exposes APIs the runtime does not have. Pin them to the Node 24
line instead of following the latest major.
ESLint 10 is not usable yet because eslint-config-next still ships
eslint-plugin-react 7.37, which supports eslint ^9.7 at most and calls
context.getFilename(), and its babel based parser returns a scope
manager without addGlobals. Stay on the 9 line and take the patch.
The Next.js build never reads .swcrc, verified by pointing it at a
plugin that does not exist and still getting a successful build. The
styled-components transform comes from the compiler option in
next.config.mjs, and the server rendered markup is byte identical
without the file.
Neither @eslint/js nor @eslint/eslintrc is imported anywhere;
eslint.config.mjs only composes eslint-config-next and
eslint-plugin-prettier.
@Ho-s
Ho-s merged commit 23541c4 into master Aug 19, 2026
1 check passed
@Ho-s
Ho-s deleted the chore/dependency-updates branch August 19, 2026 06:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant