Skip to content

Fix all npm audit vulnerabilities by upgrading dependencies#80

Merged
lyonsil merged 1 commit intomainfrom
npm-audit-fix-20260306
Mar 6, 2026
Merged

Fix all npm audit vulnerabilities by upgrading dependencies#80
lyonsil merged 1 commit intomainfrom
npm-audit-fix-20260306

Conversation

@lyonsil
Copy link
Copy Markdown
Member

@lyonsil lyonsil commented Mar 6, 2026

@typescript-eslint/* ^6 → ^8

  • Fixes minimatch ReDoS vulnerabilities

copy-webpack-plugin ^12 → ^14

  • Fixes serialize-javascript RCE vulnerability

eslint-config-erb removed

  • Source of the peer dep conflicts; replaced by direct configs

eslint-config-airbnb-base removed

  • Redundant — eslint-config-airbnb already depends on it

eslint-config-airbnb added

  • Previously pulled in by erb

eslint-config-prettier added

  • Previously pulled in by erb

eslint-plugin-prettier added

  • Previously pulled in by erb

@stylistic/eslint-plugin-ts ^2.13.0 added

  • Provides lines-between-class-members rule with exceptAfterOverload support, which was removed from @typescript-eslint v8

ESLint behavioral parity:

  • eslint-config-airbnb-typescript was never active — erb installed it but never extended it. No rules are lost.
  • All 4 rules erb explicitly set are preserved (3 default to off anyway; no-param-reassign explicitly added).
  • lines-between-class-members now uses @stylistic/ts/lines-between-class-members to preserve the original exceptAfterOverload: true option.

tsconfig.lint.json change: allowJs: true only affects the lint-specific tsconfig (not builds), and is the official replacement for the removed createDefaultProgram.

Note: The @typescript-eslint v6 → v8 upgrade may cause some rules to flag new issues in downstream repos due to bug fixes and stricter detection in v8. This is inherent to the major version upgrade required by the security fixes.


This change is Reviewable

Copilot AI review requested due to automatic review settings March 6, 2026 15:40
Copy link
Copy Markdown

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

Updates lint/build toolchain dependencies and ESLint/TypeScript lint configuration to address npm audit security findings (notably minimatch ReDoS and serialize-javascript RCE) while preserving prior lint behavior where possible.

Changes:

  • Upgrades key devDependencies (notably @typescript-eslint/* to v8 and copy-webpack-plugin to v14) and bumps Volta Node version.
  • Replaces eslint-config-erb/eslint-config-airbnb-base with explicit airbnb + prettier + plugin-based configs and adds @stylistic/eslint-plugin-ts for rule parity.
  • Updates tsconfig.lint.json to enable allowJs for lint-only type-aware parsing.

Reviewed changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated no comments.

File Description
tsconfig.lint.json Enables allowJs in the lint-specific TS config to support type-aware linting without createDefaultProgram.
package.json Upgrades/adjusts linting and build dependencies to remediate audit vulnerabilities and resolve peer conflicts.
.eslintrc.cjs Reworks ESLint config to explicitly extend Airbnb/Prettier/plugin presets and swaps lines-between-class-members to @stylistic/ts rule.

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

You can also share your feedback on Copilot code review. Take the survey.

@lyonsil lyonsil force-pushed the npm-audit-fix-20260306 branch from bef38a9 to cfdb400 Compare March 6, 2026 15:51
@typescript-eslint/* ^6 → ^8
- Fixes minimatch ReDoS vulnerabilities

copy-webpack-plugin ^12 → ^14
- Fixes serialize-javascript RCE vulnerability

eslint-config-erb removed
- Source of the peer dep conflicts; replaced by direct configs

eslint-config-airbnb-base removed
- Redundant — eslint-config-airbnb already depends on it

eslint-config-airbnb added
- Previously pulled in by erb

eslint-config-prettier added
- Previously pulled in by erb

eslint-plugin-prettier added
- Previously pulled in by erb

@stylistic/eslint-plugin-ts ^2.13.0 added
- Provides lines-between-class-members rule with exceptAfterOverload
  support, which was removed from @typescript-eslint v8

ESLint behavioral parity:
- All rules erb explicitly set are preserved.
- lines-between-class-members now uses
  @stylistic/ts/lines-between-class-members to preserve the original
  exceptAfterOverload: true option.

tsconfig.lint.json change: allowJs: true only affects the lint-specific
tsconfig (not builds), and is the official replacement for the removed
createDefaultProgram.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@lyonsil lyonsil force-pushed the npm-audit-fix-20260306 branch from cfdb400 to 3e02365 Compare March 6, 2026 15:54
Copy link
Copy Markdown
Member

@tjcouch-sil tjcouch-sil left a comment

Choose a reason for hiding this comment

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

Very nice! Same things apply here as in the other PR.

@tjcouch-sil reviewed 6 files and all commit messages, and made 1 comment.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on irahopkinson).

@lyonsil lyonsil merged commit 11fcb76 into main Mar 6, 2026
5 checks passed
@lyonsil lyonsil deleted the npm-audit-fix-20260306 branch March 6, 2026 17:49
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