Skip to content

build: replace eslint-plugin-node with eslint-plugin-n (gh54 part II)#10952

Draft
Planeshifter wants to merge 1 commit intophilipp/gh54-modernize-custom-rule-apisfrom
philipp/gh54-eslint-plugin-n
Draft

build: replace eslint-plugin-node with eslint-plugin-n (gh54 part II)#10952
Planeshifter wants to merge 1 commit intophilipp/gh54-modernize-custom-rule-apisfrom
philipp/gh54-eslint-plugin-n

Conversation

@Planeshifter
Copy link
Member

Progresses stdlib-js/metr-issue-tracker#54.

Description

What is the purpose of this pull request?

This pull request:

  • Replaces the unmaintained eslint-plugin-node (v11) with its actively maintained fork eslint-plugin-n (v17) (PR 3 of the migration plan).
  • Renames plugin registration from node to n in etc/eslint/plugins/index.js.
  • Renames all rule references from node/* to n/* in etc/eslint/rules/nodejs.js.
  • Updates ~530 eslint-disable comments across the codebase from node/ to n/.
  • Drops the tryExtensions option from n/file-extension-in-import (no longer supported by eslint-plugin-n).
  • Adds ignores for features newly detected by eslint-plugin-n: bigint and hashbang in n/no-unsupported-features/es-syntax, http2 and process.release in n/no-unsupported-features/node-builtins.
  • Updates JSDoc @name tags and documentation URLs to point to the eslint-community/eslint-plugin-n repository.
  • Moves nested log/logError functions to outer scope in remark-run-javascript-examples and fixes pre-existing lint violations in touched files.

Related Issues

Does this pull request have any related issues?

This pull request has the following related issues:

Questions

Any questions for reviewers of this pull request?

No.

Other

Any other information relevant to this pull request? This may include screenshots, references, and/or implementation notes.

Stacked on #10950. eslint-plugin-n is the community-maintained fork of the unmaintained eslint-plugin-node and is required for ESLint v9 compatibility.

Checklist

Please ensure the following tasks are completed before submitting this pull request.

AI Assistance

When authoring the changes proposed in this PR, did you use any kind of AI assistance?

  • Yes
  • No

If you answered "yes" above, how did you use AI assistance?

  • Code generation (e.g., when writing an implementation or fixing a bug)
  • Test/benchmark generation
  • Documentation (including examples)
  • Research and understanding

Disclosure

If you answered "yes" to using AI assistance, please provide a short disclosure indicating how you used AI assistance. This helps reviewers determine how much scrutiny to apply when reviewing your contribution. Example disclosures: "This PR was written primarily by Claude Code." or "I consulted ChatGPT to understand the codebase, but the proposed changes were fully authored manually by myself.".

This PR was written primarily by Claude Code. The bulk rename was done via scripted sed, with manual review of config changes and rule compatibility.


@stdlib-js/reviewers

@Planeshifter Planeshifter changed the base branch from develop to philipp/gh54-modernize-custom-rule-apis March 15, 2026 06:33
@socket-security
Copy link

socket-security bot commented Mar 15, 2026

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedjstat@​1.9.69910010080100

View full report

@Planeshifter Planeshifter changed the title bench: replace eslint-plugin-node with eslint-plugin-n build: replace eslint-plugin-node with eslint-plugin-n Mar 15, 2026
@Planeshifter Planeshifter force-pushed the philipp/gh54-eslint-plugin-n branch 2 times, most recently from ac2468f to ff1e4ba Compare March 15, 2026 16:25
@socket-security
Copy link

socket-security bot commented Mar 15, 2026

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn Critical
Critical CVE: npm form-data uses unsafe random function in form-data for choosing boundary

CVE: GHSA-fjxv-7rqg-78g4 form-data uses unsafe random function in form-data for choosing boundary (CRITICAL)

Affected versions: < 2.5.4; >= 3.0.0 < 3.0.4; >= 4.0.0 < 4.0.4

Patched version: 2.5.4

From: ?npm/form-data@2.3.3

ℹ Read more on: This package | This alert | What is a critical CVE?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Remove or replace dependencies that include known critical CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/form-data@2.3.3. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Critical
Critical CVE: Prototype Pollution in npm minimist

CVE: GHSA-xvch-5gv4-984h Prototype Pollution in minimist (CRITICAL)

Affected versions: >= 1.0.0 < 1.2.6; < 0.2.4

Patched version: 0.2.4

From: ?npm/factor-bundle@2.5.0npm/minimist@0.0.5

ℹ Read more on: This package | This alert | What is a critical CVE?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Remove or replace dependencies that include known critical CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/minimist@0.0.5. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm entities is 91.0% likely obfuscated

Confidence: 0.91

Location: Package overview

From: ?npm/cheerio@1.2.0npm/entities@4.5.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/entities@4.5.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Protestware or unwanted behavior: npm es5-ext

Note: The script attempts to run a local post-install script, which could potentially contain malicious code. The error handling suggests that it is designed to fail silently, which is a common tactic in malicious scripts.

From: ?npm/common-shakeify@0.6.2npm/es5-ext@0.10.64

ℹ Read more on: This package | This alert | What is protestware?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Consider that consuming this package may come along with functionality unrelated to its primary purpose.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/es5-ext@0.10.64. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

@Planeshifter Planeshifter changed the title build: replace eslint-plugin-node with eslint-plugin-n build: replace eslint-plugin-node with eslint-plugin-n (gh54 part II) Mar 15, 2026
@Planeshifter Planeshifter force-pushed the philipp/gh54-eslint-plugin-n branch from ff1e4ba to 4fbfcbf Compare March 15, 2026 17:01
@Planeshifter Planeshifter force-pushed the philipp/gh54-eslint-plugin-n branch from 4fbfcbf to 7f06a75 Compare March 15, 2026 17:38
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.

1 participant