Skip to content

Convert from yarn to npm#723

Open
peachbits wants to merge 3 commits into
masterfrom
convert-to-npm
Open

Convert from yarn to npm#723
peachbits wants to merge 3 commits into
masterfrom
convert-to-npm

Conversation

@peachbits
Copy link
Copy Markdown
Contributor

@peachbits peachbits commented May 21, 2026

CHANGELOG

Does this branch warrant an entry to the CHANGELOG?

  • Yes
  • No

Dependencies

none

Description

none

Note

Low Risk
Changes are limited to package manager, CI scripts, lockfile, and lint config; runtime library code is untouched, though temporarily relaxed ESLint rules reduce guardrails until a follow-up.

Overview
Switches the repo from Yarn to npm for installs, CI, and docs: Travis runs npm run verify, README/CHANGELOG use npm install / npm run *, .yarnrc is removed, and package-lock.json is no longer gitignored (per CHANGELOG: yarn.lock → lockfile, scripts, and Yarn resolutions → npm overrides).

Linting moves to ESLint 9 flat config: .eslintrc.json / .eslintignore are dropped in favor of eslint.config.mjs with eslint-config-standard-kit v1. Several legacy lib/ and flow-typed paths are ignored because the default parser cannot parse them yet, and a large block of style/rules is turned off temporarily so CI passes (follow-up expected).

No application/runtime code changes appear in this diff—only developer workflow, lockfile, dependency overrides, and lint tooling.

Reviewed by Cursor Bugbot for commit 8b03935. Bugbot is set up for automated code reviews on this repo. Configure here.

@socket-security
Copy link
Copy Markdown

socket-security Bot commented May 21, 2026

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

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedwebpack@​5.89.0 ⏵ 5.104.176 -7100 +49399100
Updatedeslint-config-standard-kit@​0.15.1 ⏵ 1.0.077 -110097 +181 +3100
Updated@​babel/​runtime@​7.23.1 ⏵ 7.26.10100 +1100 +27995100
Updatedelliptic@​6.5.4 ⏵ 6.6.199 +1100 +7510080100
Updatedrollup@​2.79.1 ⏵ 2.80.084 -4100 +2210098100
Updatedbase-x@​4.0.0 ⏵ 4.0.1100 +1100 +1691 +184100
Updatedeslint@​7.32.0 ⏵ 9.39.489 -1100100 +195 +45100
Updatedtypescript@​4.4.4 ⏵ 5.8.3100 +110090 -109590 +10
Updatedwebpack-dev-server@​4.15.2 ⏵ 5.2.494 +1100 +410091100
Updatedmocha@​10.1.0 ⏵ 10.6.096 +110095 +198100

View full report

@socket-security
Copy link
Copy Markdown

socket-security Bot commented May 21, 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 High
Obfuscated code: npm @typescript-eslint/eslint-plugin is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.jsonnpm/eslint-config-standard-kit@1.0.0npm/@typescript-eslint/eslint-plugin@8.59.4

ℹ 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/@typescript-eslint/eslint-plugin@8.59.4. 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 es-abstract is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.jsonnpm/npm-run-all@4.1.5npm/eslint-config-standard-kit@1.0.0npm/es-abstract@1.24.2

ℹ 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/es-abstract@1.24.2. 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 eslint-plugin-react is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.jsonnpm/eslint-config-standard-kit@1.0.0npm/eslint-plugin-react@7.37.5

ℹ 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/eslint-plugin-react@7.37.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 rollup is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.jsonnpm/rollup@2.80.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/rollup@2.80.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
Obfuscated code: npm string.prototype.trimend is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.jsonnpm/npm-run-all@4.1.5npm/eslint-config-standard-kit@1.0.0npm/string.prototype.trimend@1.0.9

ℹ 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/string.prototype.trimend@1.0.9. 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 workerpool is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.jsonnpm/mocha@10.6.0npm/workerpool@6.5.1

ℹ 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/workerpool@6.5.1. 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 Medium
Low adoption: npm @humanfs/types

Location: Package overview

From: package-lock.jsonnpm/eslint@9.39.4npm/@humanfs/types@0.15.0

ℹ Read more on: This package | This alert | What are unpopular packages?

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: Unpopular packages may have less maintenance and contain other problems.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@humanfs/types@0.15.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 Medium
Low adoption: npm node-exports-info

Location: Package overview

From: package-lock.jsonnpm/eslint-config-standard-kit@1.0.0npm/node-exports-info@1.6.0

ℹ Read more on: This package | This alert | What are unpopular packages?

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: Unpopular packages may have less maintenance and contain other problems.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/node-exports-info@1.6.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.

View full report

Comment thread README.md
## Contributing

Run `yarn` to download dependencies, and then run `yarn prepare` to build the library.
Run `npm install` to download dependencies, and then run `npm run prepare` to build the library.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔒 Agentic Security Review
Severity: MEDIUM

The migration removes the prior install-time lifecycle-script safeguard (--ignore-scripts true in .yarnrc) but now instructs contributors to run plain npm install.

Impact: A compromised dependency can execute preinstall/install/postinstall scripts automatically in developer or CI environments, increasing supply-chain command-execution and secret-exfiltration risk.

Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit ab5348a. Configure here.

Comment thread eslint.config.mjs
'lib/io/react-native/native-bridge.js',
'lib/node/index.js',
'lib/util/nym.js'
]
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Missing ESLint build ignores

Medium Severity

Removing .eslintignore dropped global excludes for lib/, root types.js / types.mjs / types.js.flow, and android/src/main/assets/, but eslint.config.mjs only ignores a handful of lib/ files. After npm install runs prepare, npm run verify’s eslint . can lint generated build output that was never meant to be checked.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit ab5348a. Configure here.

Comment thread CHANGELOG.md
## Unreleased

- changed: Migrate the package manager from yarn to npm. Replace yarn.lock with package-lock.json, convert package.json scripts and resolutions to overrides, and update documentation references.
- fixed: Apply Socket-recommended patch/minor security upgrades for vulnerable transitive dependencies.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Wrong CHANGELOG prefix security

Low Severity

The Unreleased entry uses the fixed: prefix for Socket-recommended transitive dependency version bumps. Those are dependency maintenance changes, not a correction of incorrect behavior in this library’s own code, so the prefix does not match the repo’s semantic CHANGELOG conventions.

Fix in Cursor Fix in Web

Triggered by learned rule: CHANGELOG entries must use correct semantic prefix

Reviewed by Cursor Bugbot for commit ab5348a. Configure here.

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