Skip to content

chore: upgrade tooling to typescript 6#7024

Merged
birkskyum merged 15 commits intomainfrom
chore--typescript-6
Mar 23, 2026
Merged

chore: upgrade tooling to typescript 6#7024
birkskyum merged 15 commits intomainfrom
chore--typescript-6

Conversation

@birkskyum
Copy link
Copy Markdown
Member

@birkskyum birkskyum commented Mar 23, 2026

Fix build for TypeScript 6.0 compatibility. All changes are build-config only, so published .js bundles and .d.ts declarations are identical; thus no changeset needed.

TS 6.0 breaking changes addressed in backwards compatible ways:

  • In TS 6, the rootDir (in tsconfig.json) changed from being inferred by default, to the path . . Therefore, this PR adds an explicit tsconfig.build.json with rootDir: "./src" in each package, referenced via tsconfigPath in vite configs. We need the separate tsconfig.build.json, because the normal tsconfig.json include files we don't want in the build, like test and config files.
  • @types/node is no longer auto-included. I added types: ["node"] and @types/node to some packages that relied on process.env or node: imports
  • CSS side-effect imports now require type declarations (TS2882). To fix this I added vite-env.d.ts to most e2e projects.
  • Updated IntersectionObserver mock in test utils to include new scrollMargin property, due to newer DOM types.
  • Added explicit type annotations for implicit any parameters in router-core, but it's a function that doesn't make it to the type declaration, so a bump isn't needed.
  • baseUrl is deprecated (TS5101). Removed "baseUrl": "." from most e2e/start project tsconfigs. paths resolves relative to tsconfig.json since TS 4.1, so it's a no-op removal.
  • Excluded playwright.config.ts from rspack e2e tsconfig include arrays. It's a Node tool config that shouldn't be type-checked with the browser app source. Previously @types/node was auto-included so process.env resolved, but TS 6 defaults types to [].

examples and most e2e are updated to 6.0. I left a few e2e test suites on typescript 5.9 to have some automated coverage.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 23, 2026

Important

Review skipped

Too many files!

This PR contains 300 files, which is 150 over the limit of 150.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 86192d43-0d40-405c-a0c5-7ddc1f950561

📥 Commits

Reviewing files that changed from the base of the PR and between 8d5ea2d and 531bb18.

📒 Files selected for processing (300)
  • benchmarks/bundle-size/package.json
  • benchmarks/client-nav/package.json
  • benchmarks/ssr/package.json
  • e2e/react-router/basic-file-based-code-splitting/src/vite-env.d.ts
  • e2e/react-router/basic-file-based/src/vite-env.d.ts
  • e2e/react-router/basic-react-query-file-based/src/vite-env.d.ts
  • e2e/react-router/basic-react-query/src/vite-env.d.ts
  • e2e/react-router/basic-scroll-restoration/package.json
  • e2e/react-router/basic-scroll-restoration/src/vite-env.d.ts
  • e2e/react-router/basic-virtual-file-based/src/vite-env.d.ts
  • e2e/react-router/basic-virtual-named-export-config-file-based/src/vite-env.d.ts
  • e2e/react-router/basic/src/vite-env.d.ts
  • e2e/react-router/generator-cli-only/src/vite-env.d.ts
  • e2e/react-router/i18n-paraglide/package.json
  • e2e/react-router/i18n-paraglide/src/vite-env.d.ts
  • e2e/react-router/js-only-file-based/src/vite-env.d.ts
  • e2e/react-router/rspack-basic-file-based/package.json
  • e2e/react-router/rspack-basic-file-based/src/vite-env.d.ts
  • e2e/react-router/rspack-basic-file-based/tsconfig.json
  • e2e/react-router/rspack-basic-virtual-named-export-config-file-based/package.json
  • e2e/react-router/rspack-basic-virtual-named-export-config-file-based/src/vite-env.d.ts
  • e2e/react-router/rspack-basic-virtual-named-export-config-file-based/tsconfig.json
  • e2e/react-router/scroll-restoration-sandbox-vite/src/vite-env.d.ts
  • e2e/react-router/sentry-integration/src/vite-env.d.ts
  • e2e/react-router/view-transitions/package.json
  • e2e/react-router/view-transitions/src/vite-env.d.ts
  • e2e/react-start/basic-auth/package.json
  • e2e/react-start/basic-auth/tsconfig.json
  • e2e/react-start/basic-cloudflare/package.json
  • e2e/react-start/basic-cloudflare/tsconfig.json
  • e2e/react-start/basic-react-query/package.json
  • e2e/react-start/basic-react-query/tsconfig.json
  • e2e/react-start/basic-rsc/package.json
  • e2e/react-start/basic-rsc/tsconfig.json
  • e2e/react-start/basic-tsr-config/package.json
  • e2e/react-start/basic-tsr-config/tsconfig.json
  • e2e/react-start/basic/package.json
  • e2e/react-start/basic/tests/search-params.spec.ts
  • e2e/react-start/basic/tsconfig.json
  • e2e/react-start/clerk-basic/package.json
  • e2e/react-start/clerk-basic/tsconfig.json
  • e2e/react-start/csp/package.json
  • e2e/react-start/csp/src/vite-env.d.ts
  • e2e/react-start/csp/tsconfig.json
  • e2e/react-start/css-modules/package.json
  • e2e/react-start/css-modules/tsconfig.json
  • e2e/react-start/custom-basepath/package.json
  • e2e/react-start/custom-basepath/tsconfig.json
  • e2e/react-start/dev-ssr-styles/package.json
  • e2e/react-start/dev-ssr-styles/src/vite-env.d.ts
  • e2e/react-start/dev-ssr-styles/tsconfig.json
  • e2e/react-start/flamegraph-bench/package.json
  • e2e/react-start/hmr/package.json
  • e2e/react-start/hmr/tsconfig.json
  • e2e/react-start/i18n-paraglide/package.json
  • e2e/react-start/i18n-paraglide/src/vite-env.d.ts
  • e2e/react-start/i18n-paraglide/tsconfig.json
  • e2e/react-start/import-protection-custom-config/package.json
  • e2e/react-start/import-protection-custom-config/tsconfig.json
  • e2e/react-start/import-protection/package.json
  • e2e/react-start/import-protection/tsconfig.json
  • e2e/react-start/query-integration/package.json
  • e2e/react-start/query-integration/tsconfig.json
  • e2e/react-start/scroll-restoration/package.json
  • e2e/react-start/scroll-restoration/tsconfig.json
  • e2e/react-start/selective-ssr/package.json
  • e2e/react-start/selective-ssr/tsconfig.json
  • e2e/react-start/serialization-adapters/package.json
  • e2e/react-start/serialization-adapters/tsconfig.json
  • e2e/react-start/server-functions-global-middleware/package.json
  • e2e/react-start/server-functions-global-middleware/tsconfig.json
  • e2e/react-start/server-functions/package.json
  • e2e/react-start/server-functions/tsconfig.json
  • e2e/react-start/server-routes-global-middleware/package.json
  • e2e/react-start/server-routes-global-middleware/tsconfig.json
  • e2e/react-start/server-routes/package.json
  • e2e/react-start/server-routes/tsconfig.json
  • e2e/react-start/spa-mode/package.json
  • e2e/react-start/spa-mode/tsconfig.json
  • e2e/react-start/split-base-and-basepath/package.json
  • e2e/react-start/split-base-and-basepath/tsconfig.json
  • e2e/react-start/static-server-functions/package.json
  • e2e/react-start/static-server-functions/tsconfig.json
  • e2e/react-start/streaming-ssr/package.json
  • e2e/react-start/streaming-ssr/tsconfig.json
  • e2e/react-start/transform-asset-urls/package.json
  • e2e/react-start/transform-asset-urls/tsconfig.json
  • e2e/react-start/virtual-routes/package.json
  • e2e/react-start/virtual-routes/tsconfig.json
  • e2e/react-start/website/package.json
  • e2e/react-start/website/tsconfig.json
  • e2e/solid-router/basic-file-based-code-splitting/src/vite-env.d.ts
  • e2e/solid-router/basic-file-based/src/vite-env.d.ts
  • e2e/solid-router/basic-scroll-restoration/package.json
  • e2e/solid-router/basic-scroll-restoration/src/vite-env.d.ts
  • e2e/solid-router/basic-solid-query-file-based/src/vite-env.d.ts
  • e2e/solid-router/basic-solid-query/src/vite-env.d.ts
  • e2e/solid-router/basic-virtual-file-based/src/vite-env.d.ts
  • e2e/solid-router/basic-virtual-named-export-config-file-based/src/vite-env.d.ts
  • e2e/solid-router/basic/src/vite-env.d.ts
  • e2e/solid-router/generator-cli-only/src/vite-env.d.ts
  • e2e/solid-router/js-only-file-based/src/vite-env.d.ts
  • e2e/solid-router/rspack-basic-file-based/package.json
  • e2e/solid-router/rspack-basic-file-based/src/vite-env.d.ts
  • e2e/solid-router/rspack-basic-file-based/tsconfig.json
  • e2e/solid-router/rspack-basic-virtual-named-export-config-file-based/package.json
  • e2e/solid-router/rspack-basic-virtual-named-export-config-file-based/src/vite-env.d.ts
  • e2e/solid-router/rspack-basic-virtual-named-export-config-file-based/tsconfig.json
  • e2e/solid-router/scroll-restoration-sandbox-vite/src/vite-env.d.ts
  • e2e/solid-router/sentry-integration/src/vite-env.d.ts
  • e2e/solid-router/view-transitions/package.json
  • e2e/solid-router/view-transitions/src/vite-env.d.ts
  • e2e/solid-start/basic-auth/package.json
  • e2e/solid-start/basic-auth/tsconfig.json
  • e2e/solid-start/basic-cloudflare/package.json
  • e2e/solid-start/basic-cloudflare/tsconfig.json
  • e2e/solid-start/basic-solid-query/package.json
  • e2e/solid-start/basic-solid-query/tsconfig.json
  • e2e/solid-start/basic-tsr-config/package.json
  • e2e/solid-start/basic-tsr-config/tsconfig.json
  • e2e/solid-start/basic/package.json
  • e2e/solid-start/basic/tests/search-params.spec.ts
  • e2e/solid-start/basic/tsconfig.json
  • e2e/solid-start/csp/package.json
  • e2e/solid-start/csp/src/vite-env.d.ts
  • e2e/solid-start/csp/tsconfig.json
  • e2e/solid-start/css-modules/package.json
  • e2e/solid-start/css-modules/tsconfig.json
  • e2e/solid-start/custom-basepath/package.json
  • e2e/solid-start/custom-basepath/src/vite-env.d.ts
  • e2e/solid-start/custom-basepath/tsconfig.json
  • e2e/solid-start/query-integration/package.json
  • e2e/solid-start/query-integration/tsconfig.json
  • e2e/solid-start/scroll-restoration/package.json
  • e2e/solid-start/scroll-restoration/src/routes/(tests)/with-loader.tsx
  • e2e/solid-start/scroll-restoration/src/vite-env.d.ts
  • e2e/solid-start/scroll-restoration/tsconfig.json
  • e2e/solid-start/selective-ssr/package.json
  • e2e/solid-start/selective-ssr/tsconfig.json
  • e2e/solid-start/serialization-adapters/package.json
  • e2e/solid-start/serialization-adapters/tsconfig.json
  • e2e/solid-start/server-functions/package.json
  • e2e/solid-start/server-functions/src/vite-env.d.ts
  • e2e/solid-start/server-functions/tsconfig.json
  • e2e/solid-start/server-routes/package.json
  • e2e/solid-start/server-routes/src/vite-env.d.ts
  • e2e/solid-start/server-routes/tsconfig.json
  • e2e/solid-start/spa-mode/package.json
  • e2e/solid-start/spa-mode/tsconfig.json
  • e2e/solid-start/virtual-routes/package.json
  • e2e/solid-start/virtual-routes/tsconfig.json
  • e2e/solid-start/website/package.json
  • e2e/solid-start/website/tsconfig.json
  • e2e/vue-router/basic-esbuild-file-based/package.json
  • e2e/vue-router/basic-esbuild-file-based/src/vite-env.d.ts
  • e2e/vue-router/basic-file-based-jsx/src/vite-env.d.ts
  • e2e/vue-router/basic-file-based-sfc/src/vite-env.d.ts
  • e2e/vue-router/basic-scroll-restoration/package.json
  • e2e/vue-router/basic-scroll-restoration/src/vite-env.d.ts
  • e2e/vue-router/basic-virtual-file-based/src/vite-env.d.ts
  • e2e/vue-router/basic-virtual-named-export-config-file-based/src/vite-env.d.ts
  • e2e/vue-router/basic-vue-query-file-based/src/vite-env.d.ts
  • e2e/vue-router/basic-vue-query/src/vite-env.d.ts
  • e2e/vue-router/basic/src/vite-env.d.ts
  • e2e/vue-router/generator-cli-only/src/vite-env.d.ts
  • e2e/vue-router/js-only-file-based/src/vite-env.d.ts
  • e2e/vue-router/rspack-basic-file-based/package.json
  • e2e/vue-router/rspack-basic-file-based/src/vite-env.d.ts
  • e2e/vue-router/rspack-basic-file-based/tsconfig.json
  • e2e/vue-router/rspack-basic-virtual-named-export-config-file-based/package.json
  • e2e/vue-router/rspack-basic-virtual-named-export-config-file-based/src/vite-env.d.ts
  • e2e/vue-router/rspack-basic-virtual-named-export-config-file-based/tsconfig.json
  • e2e/vue-router/scroll-restoration-sandbox-vite/src/vite-env.d.ts
  • e2e/vue-router/sentry-integration/src/vite-env.d.ts
  • e2e/vue-router/view-transitions/src/vite-env.d.ts
  • e2e/vue-start/basic-auth/package.json
  • e2e/vue-start/basic-auth/tsconfig.json
  • e2e/vue-start/basic-cloudflare/package.json
  • e2e/vue-start/basic-cloudflare/tsconfig.json
  • e2e/vue-start/basic-tsr-config/package.json
  • e2e/vue-start/basic-tsr-config/tsconfig.json
  • e2e/vue-start/basic-vue-query/package.json
  • e2e/vue-start/basic-vue-query/tsconfig.json
  • e2e/vue-start/basic/package.json
  • e2e/vue-start/basic/tests/search-params.spec.ts
  • e2e/vue-start/basic/tsconfig.json
  • e2e/vue-start/css-modules/package.json
  • e2e/vue-start/css-modules/tsconfig.json
  • e2e/vue-start/custom-basepath/package.json
  • e2e/vue-start/custom-basepath/src/vite-env.d.ts
  • e2e/vue-start/custom-basepath/tsconfig.json
  • e2e/vue-start/query-integration/package.json
  • e2e/vue-start/query-integration/tsconfig.json
  • e2e/vue-start/scroll-restoration/package.json
  • e2e/vue-start/scroll-restoration/src/routes/(tests)/with-loader.tsx
  • e2e/vue-start/scroll-restoration/src/vite-env.d.ts
  • e2e/vue-start/scroll-restoration/tsconfig.json
  • e2e/vue-start/selective-ssr/package.json
  • e2e/vue-start/selective-ssr/tsconfig.json
  • e2e/vue-start/serialization-adapters/package.json
  • e2e/vue-start/serialization-adapters/tsconfig.json
  • e2e/vue-start/server-functions/package.json
  • e2e/vue-start/server-functions/src/vite-env.d.ts
  • e2e/vue-start/server-functions/tsconfig.json
  • e2e/vue-start/server-routes/package.json
  • e2e/vue-start/server-routes/src/vite-env.d.ts
  • e2e/vue-start/server-routes/tsconfig.json
  • e2e/vue-start/spa-mode/package.json
  • e2e/vue-start/spa-mode/tsconfig.json
  • e2e/vue-start/virtual-routes/package.json
  • e2e/vue-start/virtual-routes/tsconfig.json
  • e2e/vue-start/website/package.json
  • e2e/vue-start/website/tsconfig.json
  • examples/react/authenticated-routes-firebase/package.json
  • examples/react/authenticated-routes/package.json
  • examples/react/authenticated-routes/src/vite-env.d.ts
  • examples/react/basic-default-search-params/package.json
  • examples/react/basic-default-search-params/src/vite-env.d.ts
  • examples/react/basic-devtools-panel/package.json
  • examples/react/basic-devtools-panel/src/vite-env.d.ts
  • examples/react/basic-file-based/package.json
  • examples/react/basic-file-based/src/vite-env.d.ts
  • examples/react/basic-non-nested-devtools/package.json
  • examples/react/basic-non-nested-devtools/src/vite-env.d.ts
  • examples/react/basic-react-query-file-based/package.json
  • examples/react/basic-react-query-file-based/src/vite-env.d.ts
  • examples/react/basic-react-query/package.json
  • examples/react/basic-react-query/src/vite-env.d.ts
  • examples/react/basic-ssr-file-based/package.json
  • examples/react/basic-ssr-streaming-file-based/package.json
  • examples/react/basic-virtual-file-based/package.json
  • examples/react/basic-virtual-file-based/src/vite-env.d.ts
  • examples/react/basic-virtual-inside-file-based/package.json
  • examples/react/basic-virtual-inside-file-based/src/vite-env.d.ts
  • examples/react/basic/package.json
  • examples/react/basic/src/vite-env.d.ts
  • examples/react/deferred-data/package.json
  • examples/react/deferred-data/src/vite-env.d.ts
  • examples/react/i18n-paraglide/package.json
  • examples/react/i18n-paraglide/src/vite-env.d.ts
  • examples/react/i18n-paraglide/tsconfig.json
  • examples/react/kitchen-sink-file-based/package.json
  • examples/react/kitchen-sink-file-based/src/vite-env.d.ts
  • examples/react/kitchen-sink-react-query-file-based/package.json
  • examples/react/kitchen-sink-react-query-file-based/src/vite-env.d.ts
  • examples/react/kitchen-sink-react-query/package.json
  • examples/react/kitchen-sink-react-query/src/vite-env.d.ts
  • examples/react/kitchen-sink/package.json
  • examples/react/kitchen-sink/src/vite-env.d.ts
  • examples/react/large-file-based/package.json
  • examples/react/large-file-based/src/vite-env.d.ts
  • examples/react/location-masking/package.json
  • examples/react/location-masking/src/vite-env.d.ts
  • examples/react/navigation-blocking/package.json
  • examples/react/navigation-blocking/src/vite-env.d.ts
  • examples/react/quickstart-file-based/package.json
  • examples/react/quickstart-file-based/src/vite-env.d.ts
  • examples/react/quickstart-rspack-file-based/package.json
  • examples/react/quickstart-rspack-file-based/src/vite-env.d.ts
  • examples/react/quickstart-webpack-file-based/package.json
  • examples/react/quickstart/package.json
  • examples/react/quickstart/src/vite-env.d.ts
  • examples/react/router-monorepo-react-query/package.json
  • examples/react/router-monorepo-react-query/packages/app/package.json
  • examples/react/router-monorepo-react-query/packages/app/src/vite-env.d.ts
  • examples/react/router-monorepo-react-query/packages/post-feature/package.json
  • examples/react/router-monorepo-react-query/packages/post-query/package.json
  • examples/react/router-monorepo-react-query/packages/router/package.json
  • examples/react/router-monorepo-react-query/packages/router/tsconfig.json
  • examples/react/router-monorepo-simple-lazy/package.json
  • examples/react/router-monorepo-simple-lazy/packages/app/package.json
  • examples/react/router-monorepo-simple-lazy/packages/app/src/vite-env.d.ts
  • examples/react/router-monorepo-simple-lazy/packages/post-feature/package.json
  • examples/react/router-monorepo-simple-lazy/packages/router/package.json
  • examples/react/router-monorepo-simple-lazy/packages/router/tsconfig.json
  • examples/react/router-monorepo-simple/package.json
  • examples/react/router-monorepo-simple/packages/app/package.json
  • examples/react/router-monorepo-simple/packages/app/src/vite-env.d.ts
  • examples/react/router-monorepo-simple/packages/post-feature/package.json
  • examples/react/router-monorepo-simple/packages/router/package.json
  • examples/react/router-monorepo-simple/packages/router/tsconfig.json
  • examples/react/scroll-restoration/package.json
  • examples/react/scroll-restoration/src/vite-env.d.ts
  • examples/react/search-validator-adapters/package.json
  • examples/react/search-validator-adapters/src/vite-env.d.ts
  • examples/react/start-bare/package.json
  • examples/react/start-bare/tsconfig.json
  • examples/react/start-basic-auth/package.json
  • examples/react/start-basic-auth/tsconfig.json
  • examples/react/start-basic-authjs/package.json
  • examples/react/start-basic-authjs/tsconfig.json
  • examples/react/start-basic-cloudflare/package.json
  • examples/react/start-basic-cloudflare/src/routes/users.$userId.tsx
  • examples/react/start-basic-cloudflare/tsconfig.json
  • examples/react/start-basic-react-query/package.json
  • examples/react/start-basic-react-query/tsconfig.json
  • examples/react/start-basic-rsc/package.json
  • examples/react/start-basic-rsc/tsconfig.json
  • examples/react/start-basic-static/package.json
  • examples/react/start-basic-static/tsconfig.json

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore--typescript-6

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment