Context
Dependabot repeatedly proposes bumping @babel/core, @babel/preset-react, @babel/preset-typescript from 7.x to 8.x (most recently in #1796). A naive 3-package bump breaks the client webpack build: @babel/preset-typescript@8 stops stripping TS types, so raw TypeScript reaches webpack's parser (37 × "Module parse failed: Unexpected token"). #1822 holds these three at 7.29.7 while taking the rest of the dev-dependency group.
Why it needs a dedicated migration
A coherent Babel 8 install requires migrating the entire Babel graph in one coordinated change, not just the 3 top-level packages:
- Transitive
@babel/preset-env polyfill providers (babel-plugin-polyfill-corejs2/3, @babel/helper-define-polyfill-provider, @babel/preset-modules) currently declare peer @babel/core ^7.4.0 || ^8.0.0-0 <8.0.0 — i.e. they exclude stable Babel 8.
- Jest 30's Babel internals (
babel-jest, babel-preset-current-node-syntax) must publish core-8-compatible peers first.
- Babel 8 raises the Node engine floor to
^22.18.0 || >=24.11.0 — pin .nvmrc/Dockerfile accordingly (currently bare 24).
- Preset config review:
@babel/preset-typescript may need allowDeclareFields: true; @babel/preset-react runtime must be explicit (already set to automatic in client/webpack.config.cjs).
Acceptance
References
🤖 Filed by `/dependabot`
Context
Dependabot repeatedly proposes bumping
@babel/core,@babel/preset-react,@babel/preset-typescriptfrom 7.x to 8.x (most recently in #1796). A naive 3-package bump breaks the client webpack build:@babel/preset-typescript@8stops stripping TS types, so raw TypeScript reaches webpack's parser (37 × "Module parse failed: Unexpected token"). #1822 holds these three at 7.29.7 while taking the rest of the dev-dependency group.Why it needs a dedicated migration
A coherent Babel 8 install requires migrating the entire Babel graph in one coordinated change, not just the 3 top-level packages:
@babel/preset-envpolyfill providers (babel-plugin-polyfill-corejs2/3,@babel/helper-define-polyfill-provider,@babel/preset-modules) currently declare peer@babel/core^7.4.0 || ^8.0.0-0 <8.0.0— i.e. they exclude stable Babel 8.babel-jest,babel-preset-current-node-syntax) must publish core-8-compatible peers first.^22.18.0 || >=24.11.0— pin.nvmrc/Dockerfile accordingly (currently bare24).@babel/preset-typescriptmay needallowDeclareFields: true;@babel/preset-reactruntimemust be explicit (already set toautomaticinclient/webpack.config.cjs).Acceptance
@babel/core@7hoistednpm run build(client) andnpm test(Jest) greennpm installReferences
🤖 Filed by `/dependabot`