Skip to content

chore(deps): update dependency typescript to v7 - #145

Draft
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/typescript-7.x
Draft

chore(deps): update dependency typescript to v7#145
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/typescript-7.x

Conversation

@renovate

@renovate renovate Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
typescript (source) ^6.0.0^7.0.0 age confidence

Release Notes

microsoft/TypeScript (typescript)

v7.0.2

Compare Source


Configuration

📅 Schedule: (in timezone America/New_York)

  • Branch creation
    • "before 9am on Monday"
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@dawsontoth dawsontoth left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocked: TypeScript 7 breaks npm run build

The ESM bundle still builds, but the declaration step crashes:

$ npm run build
ESM ⚡️ Build success in 45ms

node:internal/event_target:1118
TypeError: Cannot read properties of undefined (reading 'useCaseSensitiveFileNames')
    at rollup-plugin-dts@6.1.1_..._typescript@5.7.3/.../rollup-plugin-dts.cjs
    at .../node_modules/tsup/dist/rollup.js:4857:37

tsup 8.5.1 generates --dts output through a bundled rollup-plugin-dts@6.1.1, which drives the TS compiler API directly. TS 7.0 (the native port) reshaped that API surface, so the plugin gets an undefined host back.

Isolated to typescript alone — on this exact branch head (3ba23105), with every other dependency untouched and only typescript reverted:

typescript npm run build
7.0.2 (this PR) TypeError: ... useCaseSensitiveFileNames
6.0.3 (main) DTS ⚡️ Build success in 2300ms

Why CI is green

There is no build job. The checks on this PR are Format, Lint, Test (Node 24), commitlint, renovate/stability-days — nothing runs tsup. Since prepublishOnly is npm run build, this would surface at publish time, breaking a release rather than a PR.

Lint and Format do pass on TS 7 (oxlint/dprint don't use the TS compiler), so those greens aren't evidence either way.

Path forward

Hold until tsup ships a rollup-plugin-dts that supports TS 7 (upstream tracking: rollup-plugin-dts needs a TS 7 compatible release; tsup then needs to pick it up). Nothing to change in this repo. Note the shipped JS output is unaffected — it's only declaration generation — so if the .d.ts files ever became optional this could be revisited, but exports currently ships dist/index.d.ts.

Suggest a Renovate hold on typescript majors for this repo until then, so this doesn't get re-proposed each cycle.

@dawsontoth
dawsontoth marked this pull request as draft August 12, 2026 14:42
@dawsontoth

Copy link
Copy Markdown
Contributor

Tracking update (2026-08-13) — still blocked, but the upstream blocker has narrowed

Re-verified against head 3ba23105 on Node 24.18.0. npm run build still fails identically, so my request for changes stands. One half of the upstream dependency chain has moved, though, and it's worth recording so nobody re-checks it and draws the wrong conclusion.

rollup-plugin-dts shipped TS 7 support — and it does not help

rollup-plugin-dts@6.5.1 now declares:

"peerDependencies": {
  "typescript": "^4.5 || ^5 || ^6 || ^7",
  "@typescript/typescript6": "^6"
}

But tsup vendors its own copy inline rather than resolving it from the tree. The stack trace names the bundled path verbatim:

TypeError: Cannot read properties of undefined (reading 'useCaseSensitiveFileNames')
    at node_modules/.pnpm/rollup-plugin-dts@6.1.1_rollup@4.53.2_typescript@5.7.3/
       node_modules/rollup-plugin-dts/dist/rollup-plugin-dts.cjs
    at .../node_modules/tsup/dist/rollup.js:4857:37

That is rollup-plugin-dts@6.1.1, built against typescript@5.7.3, baked into tsup/dist/rollup.js. There is no rollup-plugin-dts entry in this repo's lockfile at all, so no override, resolution, or bump on our side can reach it. tsup@8.5.1 is still latest.

So the single thing to watch is now a tsup release that refreshes its bundled rollup-plugin-dts to >= 6.5.x. Watching rollup-plugin-dts itself is no longer informative — it's already done.

Confirmed the split is still exactly typescript

ESM bundle DTS
main (typescript 6.0.3) DTS Build success in 1057ms
this PR (typescript 7.0.2) Build success in 33ms TypeError: ... useCaseSensitiveFileNames

npm ci is clean on this branch (the lockfile still carries the react-native subtree, unlike #141).

On generating declarations without tsup

I tried the obvious escape hatch — tsc -p tsconfig.json --declaration --emitDeclarationOnly — and TS 7.0.2 does emit the .d.ts files. It is not a drop-in swap, though: it also reports pre-existing type errors that the current tsup --dts path never surfaces (15 on main under TS 6.0.3, 18 on this branch under TS 7.0.2). So that route means fixing a backlog first, and it's a build-system change well outside a dependency bump. Noting it only as a data point, not a proposal — keeping this in draft until tsup updates remains the right call.

My earlier suggestion still stands: a Renovate hold on typescript majors for this repo would stop this being re-proposed each cycle. 🤖

@renovate
renovate Bot force-pushed the renovate/typescript-7.x branch 2 times, most recently from 71d1783 to d0ea465 Compare August 14, 2026 18:35
@renovate
renovate Bot force-pushed the renovate/typescript-7.x branch from d0ea465 to 2e144ce Compare August 17, 2026 18:53
@dawsontoth

Copy link
Copy Markdown
Contributor

Tracking update (2026-08-18) — still blocked; CI now catches it on its own

Re-verified against head 2e144cea (Renovate rebased onto main bad3549d on 08-17, after my 08-13 note). My request for changes stands. Nothing in the rebase changes the situation, and the failure is still attributable to typescript alone.

The build still fails identically

Node 24.19.0 / npm 11.17.0, clean tree. npm ci exits 0 — this branch's lockfile is fine, no sign of the pruned-subtree problem that has been hitting sibling PRs. Then:

ESM ⚡️ Build success in 31ms

TypeError: Cannot read properties of undefined (reading 'useCaseSensitiveFileNames')
    at node_modules/.pnpm/rollup-plugin-dts@6.1.1_rollup@4.53.2_typescript@5.7.3/.../rollup-plugin-dts.cjs
    at .../node_modules/tsup/dist/rollup.js:4857:37

Same signature as 08-11 and 08-13: the ESM bundle builds, declaration generation dies inside the rollup-plugin-dts@6.1.1 copy that tsup embeds in dist/rollup.js.

Isolation re-run in place at this exact head, changing nothing but the compiler:

typescript npm run build
7.0.2 (this PR) useCaseSensitiveFileNames crash
6.0.3 (npm install --no-save typescript@6.0.3) DTS ⚡️ Build success in 1181ms

🆕 CI is no longer blind to this

My 08-13 note said this class of breakage couldn't be seen by CI and would only surface at publish time via prepublishOnly. That's fixed: fe15625 added a Build job to verify-pr.yaml on 08-17, and it is in this PR's history. The red Build check on this PR is that job, failing on exactly the crash above — so nobody needs to reproduce it by hand to know the state of this branch, and no future dependency bump can break npm run build while showing green. Recording it because my earlier note explicitly told reviewers to check the build manually here.

Upstream watch item: no movement

The blocker is tsup, not rollup-plugin-dts — re-checked both today:

  • tsup is still 8.5.1, and npm reports its last publish as 2025-11-12. Nine months, no release. This is the one to watch.
  • rollup-plugin-dts is still 6.5.1 and already declares typescript: '^4.5 || ^5 || ^6 || ^7'. As noted on 08-13 this changes nothing for us, because there is no rollup-plugin-dts key in our lockfile to override — tsup inlines its own 6.1.1. One detail I hadn't recorded: 6.5.1's TS7 support also carries a new peer, @typescript/typescript6: ^6, so even a future tsup that stopped inlining would need that shim wired in rather than just a version bump. Don't read "rollup-plugin-dts supports TS 7" as this PR being close to unblocked.
  • typescript stable is 7.0.2 (next is 7.1.0-dev), so there's no newer 7.x to retry against either.

Leaving as draft with changes requested. The escape hatch I evaluated on 08-13 — swapping tsup --dts for tsc --emitDeclarationOnly — still means clearing a pre-existing type-error backlog first (15 on main under TS 6.0.3, 18 on this branch), so it isn't a quick unblock.

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