Skip to content

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

Merged
rsonghuster merged 2 commits into
masterfrom
chore/deps-upgrade-node16-compatible
Aug 23, 2026
Merged

chore(deps): upgrade dependencies within Node 16 compatibility#166
rsonghuster merged 2 commits 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.

@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown

Review Change Stack

Important

Review skipped

Review was skipped due to path filters

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

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 2a9e033e-1987-4fa2-bb80-3c1e57d32e76

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

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).

Signed-off-by: ls147258 <ls147258@alibaba-inc.com>
@rsonghuster
rsonghuster force-pushed the chore/deps-upgrade-node16-compatible branch from 3f5d0ff to 502335a Compare August 22, 2026 13:50
A local npm install rewrote 168 `resolved` entries to an internal
Alibaba mirror, which GitHub runners cannot reach, so every CI job died
during install with ETIMEDOUT. Verified with `npm ci` against
registry.npmjs.org on Node 16.20.2.

Signed-off-by: ls147258 <ls147258@alibaba-inc.com>
@rsonghuster
rsonghuster merged commit ca62960 into master Aug 23, 2026
6 checks passed
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