@eslint/js breaking changes
Every breaking API change we have recorded in @eslint/js on npm: 39 breaking changes in 7 versions. Below are its newest 6 versions, removals and renames first, each with its source.
Newest change July 26, 2024

On this page
10.0.0
- Removed
Support for eslintrc configuration was removed. Projects must use flat config. github.com - Removed
Inactive v10 and unstable flags were removed, so configs that set them must be updated. github.com - Removed
Deprecated rule context methods were removed. Rules that call them must be updated. github.com - Removed
Older jiti versions are no longer supported for loading configs. github.com - Removed
The package now requires Node.js ^20.19.0, ^22.13.0 or 24 and later. Upgrade Node.js before installing. github.com - Removed
Deprecated SourceCode methods were removed. Code that calls them must switch to their replacements. github.com - Removed
LintMessage.nodeType
The deprecated nodeType property on LintMessage was removed. github.com - Removed
TestCaseError.type
The deprecated type property on TestCaseError was removed. github.com - Behavior changed
The Program node range now covers the whole source text, which can change tooling that relies on its range. github.com - Behavior changed
JSX references are now tracked, so rules may report variables used only in JSX differently. github.com
And 3 more in this version.
10.0.0-rc.0
- Removed
ParserOptions.ecmaVersion
The ecmaVersion property is removed from the ParserOptions type. TypeScript code that references it will no longer compile. github.com - Removed
ParserOptions.sourceType
The sourceType property is removed from the ParserOptions type. TypeScript code that references it will no longer compile. github.com - Removed
raw
The raw parser option is removed from the JS language. Configs that set it will no longer have effect. github.com - Removed
TDZ
The TDZ scope type is removed. Code that uses it in types will no longer compile. github.com - Behavior changed
RuleTester estimates where a failing test case is located in a new way. Check tests that depend on the reported failure location. github.com
10.0.0-alpha.1
- Removed
Deprecated SourceCode methods were removed, so code calling them must use the replacements. github.com
10.0.0-alpha.0
- Removed
Versions of jiti older than 2.2.0 are no longer supported for loading configs. github.com - Removed
Support for eslintrc-style configuration was removed. Configs must use flat config. github.com - Removed
The v10_* and inactive unstable_* flags were removed, so configs or code setting them must drop them. github.com - Removed
Deprecated rule context methods were removed. Rule code that calls them must switch to the replacements in the migration guide. github.com - Removed
LintMessage.nodeType
The deprecated nodeType property on LintMessage was removed and code reading it will break. github.com - Removed
TestCaseError.type
The deprecated type property on TestCaseError was removed and code reading it will break. github.com - Behavior changed
ESLint now requires Node.js ^20.19.0, ^22.13.0 or >=24, so older Node.js versions can no longer run it. github.com - Behavior changed
Globals are now registered via ScopeManager#addGlobals(), which can change how globals resolve in rules. github.com - Behavior changed
The Program node range now covers the whole source text, which can change results of rules that read its range. github.com - Behavior changed
eslint-env comments now produce errors instead of being accepted, so they must be removed from source files. github.com
And 5 more in this version.
10.0.0-rc.2
- Removed
FlatESLint
The FlatESLint export is removed because it was a fake export. Code that imports it will no longer work. github.com - Removed
LegacyESLint
The LegacyESLint export is removed because it was a fake export. Code that imports it will no longer work. github.com
10.0.0-rc.1
- Behavior changed
no-shadow
The no-shadow rule now treats function and class expression names differently, so it may report different results on existing code. github.com
Check your code
These are the changes. To see which of them reach your code, scan a public repository, or have your coding agent call check_code with your manifest or lockfile over MCP. The API reads every change in every version, not only the newest. On Team and up, a fix pull request opens for the changes that reach a connected repository. Nothing merges or deploys.

Put your code on continuous management.
Scan a public repository now, or give your agent one line.
See how out of date your code is.
Tell your agent what changed since it was trained.
claude mcp add --transport http since https://api.since.dev/mcp