Files
compiler-explorer/tsconfig.base.json
Matt Godbolt 861bbde8ca Update major dependencies (TypeScript 6, zod 4, webpack-cli 7, commander 15, …) (#8761)
Bumps the remaining major-version dependencies. **golden-layout is
deliberately excluded** (we depend on its internals too heavily for the
1.x → 2.x jump).

Each bump is its own commit, verified independently (ts-check, lint,
unit tests, and where relevant the webpack build + cypress).

## Included
- **TypeScript 6.0** — pin `ignoreDeprecations: "6.0"`
(downlevelIteration + the frontend's `es5` target are
deprecated-but-functional until TS7), pin the frontend to
`module=commonjs`/`moduleResolution=node` (TS6's new esnext/bundler
defaults break deep monaco esm imports), and declare `*.css`/`*.scss`
side-effect modules (`noUncheckedSideEffectImports` now defaults true).
- **marked 18** — no code changes; only use is the Claude-explain view.
- **Build chain**: webpack-cli 7 (renamed `--node-env` →
`--config-node-env` in the `webpack` script), webpack-dev-middleware 8,
sass-loader 17.
- **zod 4** — only used by the MCP tool schemas via stable primitives;
MCP SDK already supports `^3.25 || ^4.0`.
- **lint-staged 17** — dev tooling; pre-commit pipeline exercised.
- **commander 15** — both CLI entrypoints use options only; v15's
stricter excess-args default only tightens rejection of stray
positionals. Requires Node ≥22.12.
- **enhanced-ms 5**, **which 7** — small utilities, APIs unchanged.

## Node floor bump — split into its own PR
The first commit (`Bump Node floor to v22`: `engines >=22` + `find-node`
`NODE_MIN_VERSION=22`) is **isolated and intended to be cherry-picked
into a separate PR**. It aligns the declared floor with production (Node
22.13.1) and is a prerequisite for commander 15 (needs ≥22.12).

## Follow-ups (not in this PR)
- The `es5 → es2015` frontend migration, required before TS7 (currently
bridged by `ignoreDeprecations`).

## Testing
- Local: ts-check, lint, full unit suite, production webpack build, and
cypress (81 specs) all pass.
- Pre-existing: 13 `dontMaskFilenames` filter snapshots fail **locally
only** (a local /tmp path leaks into output where the snapshot expects a
clean `example.cpp`); they fail identically on `main` and pass in CI.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 18:50:47 -05:00

25 lines
729 B
JSON

{
"compilerOptions": {
/* Code generation */
"sourceMap": true,
"downlevelIteration": true,
"importHelpers": true,
/* TS6 deprecates downlevelIteration and the frontend's es5 target; both still
function until TS7. Silence the deprecation errors until the es5->es2015
migration is tackled separately. */
"ignoreDeprecations": "6.0",
/* Module resolution */
"esModuleInterop": true,
/* Other options */
"forceConsistentCasingInFileNames": true,
"skipLibCheck": true,
"strict": true,
"noImplicitAny": false,
"noImplicitOverride": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
"noUnusedLocals": true,
"noImplicitThis": true
}
}