Problem
The lint toolchain in package.json devDependencies is far behind and partially end-of-life:
eslint is pinned ^8.33.0, resolving to 8.57.1 in package-lock.json. Latest is 10.8.0 (2 majors behind). Running npm ci in this repo prints: npm warn deprecated eslint@8.57.1: This version is no longer supported. Please see (eslint.org/redacted) for other options.
@typescript-eslint/eslint-plugin and @typescript-eslint/parser are both pinned ^5.51.0, resolving to 5.62.0. Latest for both is 8.66.0 (3 majors behind).
These two are coupled: @typescript-eslint v6+ requires ESLint ^7.0.0 || ^8.0.0 as a peer at minimum, and current @typescript-eslint majors track current ESLint majors, so they need to move together rather than independently.
Note: ESLint 9 removed support for the legacy .eslintrc.* format (this repo currently uses .eslintrc.cjs) in favor of flat config (eslint.config.js) — landing this bump requires migrating the config file, and checking whether eslint-config-airbnb-base (used here) needs a compatibility shim (e.g. @eslint/eslintrc's FlatCompat) under flat config.
Acceptance criteria
Scope
Bump only eslint, @typescript-eslint/eslint-plugin, and @typescript-eslint/parser (and the config migration strictly required to keep them working, e.g. converting .eslintrc.cjs to flat config). Do not touch prettier (separate, independent devDependency) or change lint rules/behavior beyond what the major bumps require.
Generated by GitHub Maintenance Audit · sonnet50 · 56.4 AIC · ⌖ 5.29 AIC · ⊞ 7.3K · ◷
Problem
The lint toolchain in
package.jsondevDependencies is far behind and partially end-of-life:eslintis pinned^8.33.0, resolving to 8.57.1 inpackage-lock.json. Latest is 10.8.0 (2 majors behind). Runningnpm ciin this repo prints:npm warn deprecated eslint@8.57.1: This version is no longer supported. Please see (eslint.org/redacted) for other options.@typescript-eslint/eslint-pluginand@typescript-eslint/parserare both pinned^5.51.0, resolving to 5.62.0. Latest for both is 8.66.0 (3 majors behind).These two are coupled:
@typescript-eslintv6+ requires ESLint ^7.0.0 || ^8.0.0 as a peer at minimum, and current@typescript-eslintmajors track current ESLint majors, so they need to move together rather than independently.Note: ESLint 9 removed support for the legacy
.eslintrc.*format (this repo currently uses.eslintrc.cjs) in favor of flat config (eslint.config.js) — landing this bump requires migrating the config file, and checking whethereslint-config-airbnb-base(used here) needs a compatibility shim (e.g.@eslint/eslintrc'sFlatCompat) under flat config.Acceptance criteria
eslintis bumped off the unsupported 8.x line (9.x or 10.x).@typescript-eslint/eslint-pluginand@typescript-eslint/parserare bumped to a major compatible with the new ESLint version (8.x).npm run lintruns clean (or with the same pre-existing findings, not new ones) againstsrc/.package-lock.jsonis regenerated to match.Scope
Bump only
eslint,@typescript-eslint/eslint-plugin, and@typescript-eslint/parser(and the config migration strictly required to keep them working, e.g. converting.eslintrc.cjsto flat config). Do not touchprettier(separate, independent devDependency) or change lint rules/behavior beyond what the major bumps require.