Skip to content

[Snyk] Security upgrade eslint from 7.31.0 to 9.1.0#74

Open
shelomo wants to merge 1 commit intomasterfrom
snyk-fix-245d85147aa65e90e7c9dddf0532a70e
Open

[Snyk] Security upgrade eslint from 7.31.0 to 9.1.0#74
shelomo wants to merge 1 commit intomasterfrom
snyk-fix-245d85147aa65e90e7c9dddf0532a70e

Conversation

@shelomo
Copy link
Collaborator

@shelomo shelomo commented Feb 27, 2026

snyk-top-banner

Snyk has created this PR to fix 1 vulnerabilities in the yarn dependencies of this project.

Snyk changed the following file(s):

  • package.json
  • yarn.lock

Note for zero-installs users

If you are using the Yarn feature zero-installs that was introduced in Yarn V2, note that this PR does not update the .yarn/cache/ directory meaning this code cannot be pulled and immediately developed on as one would expect for a zero-install project - you will need to run yarn to update the contents of the ./yarn/cache directory.
If you are not using zero-install you can ignore this as your flow should likely be unchanged.

Vulnerabilities that will be fixed with an upgrade:

Issue Score
high severity Inefficient Algorithmic Complexity
SNYK-JS-MINIMATCH-15353389
  170  

Breaking Change Risk

Merge Risk: High

Notice: This assessment is enhanced by AI.


Important

  • Check the changes in this PR to ensure they won't cause issues with your project.
  • Max score is 1000. Note that the real score may have changed since the PR was raised.
  • This PR was automatically created by Snyk using the credentials of a real user.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

For more information:
🧐 View latest project report
📜 Customise PR templates
🛠 Adjust project settings
📚 Read about Snyk's upgrade logic


Learn how to fix vulnerabilities with free interactive lessons:

🦉 Learn about vulnerability in an interactive lesson of Snyk Learn.

Copilot AI review requested due to automatic review settings February 27, 2026 00:34
@shelomo
Copy link
Collaborator Author

shelomo commented Feb 27, 2026

Merge Risk: High

This is a major version upgrade from ESLint v7 to v9, which includes two sets of significant breaking changes. Manual intervention is required to migrate configuration files and address rule changes.

Key Breaking Changes in v9.0:

  • New Config Format: ESLint v9 introduces a new "flat" configuration file (eslint.config.js) and deprecates the traditional .eslintrc.* format. All configurations must be migrated to this new format. While a compatibility flag exists (ESLINT_USE_FLAT_CONFIG=false), the old format is considered deprecated.
  • Node.js Version: Support for Node.js versions below 18.18.0 and version 19 has been dropped.
  • Rule and Formatter Removals: The require-jsdoc and valid-jsdoc rules have been removed and must be replaced by the eslint-plugin-jsdoc plugin. Several core formatters have also been removed.
  • Plugin Compatibility: All ESLint plugins must be verified for compatibility with v9 and the new flat config system.

Key Breaking Changes in v8.0:

  • Node.js Version: Support for Node.js versions 10, 13, and 15 was dropped.
  • API Changes: The CLIEngine class was removed in favor of the ESLint class, affecting any custom scripts that integrate with ESLint.
  • Rule Updates: The eslint:recommended ruleset was updated, which may introduce new warnings.

Recommendation: This upgrade requires a significant migration effort. Developers must rewrite their ESLint configuration to the new flat format, update their Node.js version if necessary, and verify that all plugins and custom integrations are compatible with ESLint v9. It is highly recommended to follow the official migration guides.

Source: ESLint v9 Migration Guide, ESLint v8 Migration Guide

Notice 🤖: This content was augmented using artificial intelligence. AI-generated content may contain errors and should be reviewed for accuracy before use.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR upgrades ESLint from 7.31.0 to 9.39.3 (not 9.1.0 as stated) to address a high-severity security vulnerability (Inefficient Algorithmic Complexity in minimatch, SNYK-JS-MINIMATCH-15353389). However, this upgrade introduces a critical breaking change that will prevent the project's linting from functioning.

Changes:

  • Upgrades eslint from ^7.31.0 to ^9.1.0 in package.json (resolves to 9.39.3 in yarn.lock)
  • Updates yarn.lock with ESLint 9.x dependency tree, including new packages for flat config system support

Reviewed changes

Copilot reviewed 1 out of 2 changed files in this pull request and generated 1 comment.

File Description
package.json Updates ESLint version constraint from ^7.31.0 to ^9.1.0
yarn.lock Reflects complete dependency tree changes for ESLint 9.39.3 upgrade, including new ESLint 9-specific packages

Critical Issue: ESLint 9.x requires @typescript-eslint packages version 8.x or higher. This project currently uses @typescript-eslint/eslint-plugin and @typescript-eslint/parser version 4.28.4, which are incompatible with ESLint 9.x. The linting functionality will fail when this PR is merged without also upgrading the TypeScript ESLint packages.

Additional Issue: There's a discrepancy between the PR description (which mentions version 9.1.0) and the actual installed version (9.39.3 per yarn.lock). While the newer version is generally better, this should be clarified.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 44 to 45
"@typescript-eslint/eslint-plugin": "^4.28.4",
"@typescript-eslint/parser": "^4.28.4",
Copy link

Copilot AI Feb 27, 2026

Choose a reason for hiding this comment

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

This upgrade introduces a critical compatibility issue. ESLint 9.x requires @typescript-eslint packages version 8.x or higher, but this project is using @typescript-eslint/eslint-plugin and @typescript-eslint/parser version 4.28.4.

The TypeScript ESLint v4.x packages are not compatible with ESLint 9.x and will cause the linter to fail. You need to upgrade both @typescript-eslint/eslint-plugin and @typescript-eslint/parser to at least version 8.0.0 along with this ESLint upgrade.

Suggested change
"@typescript-eslint/eslint-plugin": "^4.28.4",
"@typescript-eslint/parser": "^4.28.4",
"@typescript-eslint/eslint-plugin": "^8.0.0",
"@typescript-eslint/parser": "^8.0.0",

Copilot uses AI. Check for mistakes.
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.

3 participants