Skip to content

Major Update to v3.0.0#110

Merged
equiman merged 39 commits into
mainfrom
package-updates
Jun 6, 2026
Merged

Major Update to v3.0.0#110
equiman merged 39 commits into
mainfrom
package-updates

Conversation

@equiman

@equiman equiman commented Apr 26, 2026

Copy link
Copy Markdown
Member

Major Update to v3.0.0

📝 Summary

This PR marks the transition to v3.0.0. The primary focus is upgrading the core CLI engine, modernizing the development environment, and aligning the project with Node.js LTS standards.

⚠️ Breaking Changes

  • Minimum Node.js version: Now requires Node.js >= 20. Support for older versions has been dropped to utilize modern features and maintain compatibility with the latest dependency updates.

🚀 Key Changes

  • Engine & Versioning: * Bumped version to v3.0.0.
    • Updated yargs to v18.0.0.
  • Tooling & Environment:
    • Updated Volta configuration to Node 24.15.0.
    • Updated TypeScript to v6.0.3.
    • Updated ESLint to v10.2.1 with the new flat config system.
  • Dependency Refresh:
    • Updated chalk (v5.6.2), find-up (v8.0.0), open (v11.0.0), and semver (v7.7.4).
    • Integrated security patches identified by Snyk.
  • Documentation: * Updated DEVELOPER.md with the new Node 20+ requirement and a streamlined local testing workflow.
    • Updated CHANGELOG.md with the v3.0.0 milestone.

🛠️ How to Test

  1. Uninstall the current global version: npm uninstall -g swpm
  2. Sync dependencies: npm ci
  3. Build the project: npm run build
  4. Link locally: cd bin && npm link
  5. Verify version: swpm --version (should return 3.0.0)
  6. Run tests: npm run test

📦 Deployment

This version is ready to be published to npm. Due to the breaking change in Node.js requirements, it is recommended to monitor the initial release via the latest tag or a temporary beta tag.

@socket-security

socket-security Bot commented Jun 6, 2026

Copy link
Copy Markdown

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/typescript-eslint@8.60.1npm/@typescript-eslint/eslint-plugin@8.60.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/@typescript-eslint/eslint-plugin@8.60.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 High
Obfuscated code: npm brace-expansion is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.jsonnpm/eslint@10.4.1npm/typescript-eslint@8.60.1npm/brace-expansion@5.0.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/brace-expansion@5.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 es-module-lexer is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.jsonnpm/vitest@4.1.8npm/es-module-lexer@2.0.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/es-module-lexer@2.0.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 es-module-lexer is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.jsonnpm/vitest@4.1.8npm/es-module-lexer@2.0.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/es-module-lexer@2.0.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 powershell-utils is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: package-lock.jsonnpm/open@11.0.0npm/powershell-utils@0.1.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/powershell-utils@0.1.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

ptandler and others added 5 commits June 6, 2026 11:03
* Initial plan

* Fix DEP0190: remove shell:true from spawn/spawnSync, add Windows support via cmd /c

Co-authored-by: ptandler <934595+ptandler@users.noreply.github.com>

* Refactor: extract resolveSpawnArgs helper, remove unnecessary array copy

Co-authored-by: ptandler <934595+ptandler@users.noreply.github.com>

* refactor: use detectOs instead of duplicate isWindows check

Reuse existing detectOs() from open.ts instead of maintaining
separate platform === 'win32' check in cmds.ts.

* test: add node version compatibility test with mise

Add integration test that verifies swpm install works on all active
LTS node versions (18, 20, 22, 24). Versions are fetched dynamically
from nodejs.org API.

Create .tool-versions to pin current node version for the project.

* docs: add testing report for package-updates branch

Document findings from testing the upstream package-updates branch:
- detectOs refactor already included (improved version)
- Build and CLI commands work correctly
- 496/501 tests pass (5 timeout failures are environmental)
- Compatible with all active LTS Node versions (18, 20, 22, 24)
- Significant dependency updates (TypeScript 6, vitest 4, etc.)
- New swpm status command added

* .editorconfig

* fix: increase timeout for node version compatibility tests

Set 120s per-test timeout since npm install under different node
versions can take longer than the default 5s, especially on first
run when mise needs to download and install the node binary.

* cleanup

* fix node-versions.test.ts

* fix node-versions.test.ts

* fix .tool-versions

* rm TESTING_REPORT.md

* sonar fixes in open.ts

* revert package.json & lock

* added @types/node

* revert detectOs

* review comments

* review comments: deleted node-versions.test.ts

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ptandler <934595+ptandler@users.noreply.github.com>
@equiman equiman merged commit ee443bd into main Jun 6, 2026
7 checks passed
@equiman equiman deleted the package-updates branch June 6, 2026 17:30
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.

2 participants