Skip to content

chore(deps): migrate typescript to v6#387

Merged
nullvariant merged 1 commit into
mainfrom
chore/typescript-6-migration
Mar 25, 2026
Merged

chore(deps): migrate typescript to v6#387
nullvariant merged 1 commit into
mainfrom
chore/typescript-6-migration

Conversation

@nullvariant
Copy link
Copy Markdown
Owner

Summary

  • Upgrade TypeScript from ^5.3.0 to ^6.0.0 (resolves to 6.0.2)
  • Add explicit "types": ["node", "mocha"] to tsconfig.json to address TS6's default types: [] breaking change
  • Remove esModuleInterop: true which is now always-on in TS6

Context

Replaces Renovate PR #386, which failed CI because TypeScript 6.0 changed the types compiler option default from auto-discovering all @types/* packages to [] (empty array). This caused console, setTimeout, Buffer, require, describe, it, etc. to become unresolved.

Known Considerations

  • typescript-eslint does not yet officially support TS6 (typescript-eslint/typescript-eslint#12123). However, lint passes without new errors in this project (no JSX, which is where the main AST breaking change exists). A follow-up update to typescript-eslint will be needed once they ship TS6 support.
  • moduleResolution: "Node16" is deprecated in TS6 but still functional. Migration to nodenext can be addressed separately as part of TS7 preparation.

Test plan

  • npx tsc --noEmit passes
  • npm run compile:all passes
  • npm run test:all passes
  • npm run test:coverage — statement coverage 100% maintained
  • npm run lint:all — no new errors (existing warnings only)

## Background
TypeScript 6.0 (released 2026-03-23) changes several compiler defaults.
The main breaking change for this project is `types` defaulting to `[]`,
which prevents `@types/node` and `@types/mocha` from being auto-loaded.
Also, `esModuleInterop` is now always enabled and cannot be set to false.
## Changes
- Update typescript from ^5.3.0 to ^6.0.0 (resolves to 6.0.2)
- Add explicit `"types": ["node", "mocha"]` to tsconfig.json
- Remove `esModuleInterop: true` (always-on in TS6)

🖥️ IDE: [Cursor](https://cursor.sh)
🔌 Extension: [Claude Code](https://claude.ai/download)

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Model-Raw: claude-opus-4-6-20250725[1m]
@nullvariant-mimi
Copy link
Copy Markdown
Contributor

🐰 Mimi's Validation Report ✅

All checks are looking good! Great job! 🎉

⏳ Some checks are still running. I will keep watching!


バリデーターを通してくださいね

This report was carefully prepared by nullvariant-mimi[bot]

@nullvariant-luna
Copy link
Copy Markdown
Contributor

👧 Luna's Exploration Report 📦

No new dependencies added. Just version bumps! Nothing to explore here... 😴


Botに418返そうよ!

This report was curiously compiled by nullvariant-luna[bot]

@github-actions
Copy link
Copy Markdown
Contributor

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Snapshot Warnings

⚠️: No snapshots were found for the head SHA af668d1.
Ensure that dependencies are being submitted on PR branches and consider enabling retry-on-snapshot-warnings. See the documentation for more information and troubleshooting advice.

OpenSSF Scorecard

PackageVersionScoreDetails
npm/typescript ^6.0.0 UnknownUnknown
npm/typescript 6.0.2 🟢 8.2
Details
CheckScoreReason
Code-Review🟢 10all changesets reviewed
Packaging⚠️ -1packaging workflow not detected
Maintained🟢 1030 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10
Dependency-Update-Tool🟢 10update tool detected
License🟢 10license file detected
Security-Policy🟢 10security policy file detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Token-Permissions🟢 9detected GitHub workflow tokens with excessive permissions
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Vulnerabilities🟢 55 existing vulnerabilities detected
Signed-Releases⚠️ 0Project has not signed or included provenance with any releases.
Branch-Protection⚠️ -1internal error: error during GetBranch(release-5.9): error during branchesHandler.query: internal error: githubv4.Query: Resource not accessible by integration
Binary-Artifacts🟢 10no binaries found in the repo
SAST🟢 10SAST tool is run on all commits
Pinned-Dependencies🟢 6dependency not pinned by hash detected -- score normalized to 6
Fuzzing🟢 10project is fuzzed
CI-Tests🟢 1030 out of 30 merged PRs checked by a CI test -- score normalized to 10
Contributors🟢 10project has 35 contributing companies or organizations

Scanned Files

  • extensions/git-id-switcher/package.json
  • package-lock.json

@nullvariant-ciel
Copy link
Copy Markdown
Contributor

nullvariant-ciel Bot commented Mar 25, 2026

🕊️ Ciel's Mediation 🌤️

*~~ floating down from the clouds ~~ The zoo seems a bit noisy today...*

3 zoo members have reviewed this PR.

Zoo Member Status
🐰 Mimi Commented
👧 Luna Commented
🐗 Blaze Commented

⚖️ The zoo has mixed opinions. Some are concerned, some are fine with it. Please review each comment carefully and make the final call.


まあまあ、ほどほどに。

This mediation was peacefully delivered by nullvariant-ciel[bot]

@nullvariant-blaze
Copy link
Copy Markdown
Contributor

🐗 Blaze's Release Review 📦

No version bump. Just dependency changes... boring. Wake me up when it's deploy time! 😤


よっしゃ!デプロイしまくるぞ!

This review was ENTHUSIASTICALLY filed by nullvariant-blaze[bot]

@sonarqubecloud
Copy link
Copy Markdown

@codecov-commenter
Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@nullvariant nullvariant merged commit 64dd044 into main Mar 25, 2026
31 of 32 checks passed
@nullvariant nullvariant deleted the chore/typescript-6-migration branch March 25, 2026 04:44
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.

2 participants