Skip to content

chore(deps): upgrade dependencies within Node 16 compatibility - #166

Open
rsonghuster wants to merge 1 commit into
masterfrom
chore/deps-upgrade-node16-compatible
Open

chore(deps): upgrade dependencies within Node 16 compatibility#166
rsonghuster wants to merge 1 commit into
masterfrom
chore/deps-upgrade-node16-compatible

Conversation

@rsonghuster

@rsonghuster rsonghuster commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Bump every dependency that has a newer release compatible with Node 16, which is what all CI jobs (ci_node16, ci_with_docker_linux, check-format) and registry-publish run on.

package from to
ajv ^8.18.0 ^8.20.0
ali-oss 6.18.1 6.23.0
fs-extra ^11.3.3 ^11.4.0
lodash ^4.17.23 ^4.18.1
tty-table ^4.2.3 ^5.0.0
depcheck ^1.4.3 ^1.4.7
prettier ^3.8.1 ^3.9.6
ts-jest ^29.4.6 ^29.4.12
typescript ^4.4.2 ^5.9.3

Held back, with the reason each one fails on Node 16

  • @vercel/ncc@0.45npm run build crashes with N.hash is not a function; its bundled webpack calls crypto.hash, added in Node 20.12.
  • typescript@7 — ESM-only, and node_modules/typescript/bin/tsc has no extension, so Node 16 throws ERR_UNKNOWN_FILE_EXTENSION.
  • string-random@1 — throws Cannot get secure random number at runtime; it reads the global crypto, available from Node 19.
  • httpx@3, uuid@14, chalk@6 — ESM-only, and this package is CommonJS bundled by ncc.
  • js-yaml@5 — needs TypeScript >= 5.7 for generic Uint8Array, and load() now returns unknown, which breaks src/subCommands/2to3/index.ts. Worth a separate PR.
  • inquirer@14, jest@30 + @types/jest@30, f2elint@7engines require Node >= 18.
  • @types/node@26 — would expose APIs that do not exist on Node 16.

typescript-json-schema@0.68 also fails with ERR_REQUIRE_ESM from a nested ESM yargs, but 0.67.1 fails the same way on Node 16, so that is pre-existing and CI does not run generate-schema.

Test plan

Everything below was run locally on Node 16.20.2:

  • npm run typecheck — clean
  • npm run build — ncc 0.38.4 bundle produced
  • npm test — 76 suites, 1137 passed, 2 skipped
  • tty-table@5 render output compared character-for-character against 4.2.3 for tableShow() — identical

Summary by CodeRabbit

  • Chores
    • Updated runtime and development packages to newer versions.
    • Improved compatibility with the latest supported tooling and libraries.

Bump ajv, ali-oss, fs-extra, lodash, tty-table, depcheck, prettier,
ts-jest and typescript (4.4 -> 5.9) to their newest versions that still
run on Node 16, which every CI job and the publish pipeline use.

Held back: @vercel/ncc 0.45 (webpack needs crypto.hash, Node >=20.12),
typescript 7 / httpx 3 / uuid 14 / chalk 6 (ESM-only), string-random 1
(needs global crypto, Node >=19), js-yaml 5 (needs TS >=5.7 and returns
unknown from load()), inquirer 14 / jest 30 / f2elint 7 (engines require
Node >=18), @types/node 26 (would expose APIs absent on Node 16).
@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 7a029d5c-a983-4186-bc92-cdf6ce28e91f

📥 Commits

Reviewing files that changed from the base of the PR and between bac46d9 and 3f5d0ff.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (1)
  • package.json

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The change updates version ranges for Alibaba Cloud SDKs, runtime dependencies, and development tools in package.json. No dependencies are added or removed.

Changes

Dependency updates

Layer / File(s) Summary
Package dependency version updates
package.json
Updates Alibaba Cloud SDKs, runtime dependencies, and development tools. The TypeScript version changes from 4.x to 5.x. No packages are added or removed.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Merge Risk: ⚪ Minimal · up to 3f5d0

The PR updates dependencies within the stated Node 16 compatibility target, with typecheck, build, and tests passing; no actionable merge-blocking risk remains beyond normal checks and review.

Suggested reviewers: liuzewen99

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the dependency upgrades and the Node 16 compatibility requirement.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/deps-upgrade-node16-compatible

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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