chore(dependencies): Update all dependencies#56
chore(dependencies): Update all dependencies#56jamesvillarrubia wants to merge 1 commit intomainfrom
Conversation
📝 WalkthroughWalkthroughPackage.json dependency updates including major version bumps for Babel tooling, FeathersJS packages ( Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Fix all issues with AI agents
In `@package.json`:
- Line 24: The engines field in package.json currently allows Node >=14.0.0 but
ESLint 9.x and Mocha 11.x require Node >=18.18.0; update the "engines" entry in
package.json to require at least Node 18.18.0 (e.g., set "node": ">=18.18.0") so
the project enforces the correct runtime for dependencies and prevents
install/runtime failures for users on Node 14–17.
- Line 24: package.json currently pins "eslint": "^9.39.2" which conflicts with
semistandard 17.0.0 (requires ESLint ^8.20.0); fix by either 1) replacing
semistandard with neostandard and switching any semistandard config to
neostandard (update package.json dependencies devDependencies to include
"neostandard" and remove "semistandard", update any ESLint config to extend
"neostandard" and add the desired semi option), or 2) downgrade the "eslint"
entry to a compatible 8.x range (e.g. "^8.20.0") in package.json so semistandard
can use ESLint 8; after changing package.json, run the package manager to
regenerate the lockfile and run lint to verify no config changes are required.
- Line 29: The package.json currently lists "mocha" "^11.7.5" and other deps
that require a newer Node runtime but the "engines": { "node": ">=14.0.0" }
entry is stale; update the package.json "engines" -> "node" field to at least
">=20.0.0" (to satisfy release-it 19) or to the minimum supported by your infra
(>=18.18.0 if you choose to avoid release-it 19), and ensure CI configs
(build/test workflows) reflect the same Node version; after updating, run the
test suite to verify test discovery still works with Mocha 11's updated glob
(v10) and adjust test globs or file patterns if any tests are not being
discovered.
| "@release-it/conventional-changelog": "^10.0.4", | ||
| "conventional-changelog-angular": "^8.1.0", | ||
| "cors": "^2.8.6", | ||
| "eslint": "^9.39.2", |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
cat -n package.jsonRepository: jamesvillarrubia/feathers-rpc
Length of output: 2930
🌐 Web query:
ESLint 9 minimum Node.js version requirements
💡 Result:
ESLint v9.0.0+ requires Node.js >= 18.18.0 (and it supports these Node lines: 18.18.0+, 20.9.0+, or 21+). In other words, Node.js < 18.18.0 and Node 19.x are not supported. [1][2]
Sources:
[1] ESLint “Migrate to v9.x” guide (Node support policy for v9) (eslint.org)
[2] ESLint v9.0.0 release post (Node versions dropped) (eslint.org)
Citations:
- 1: https://eslint.org/docs/latest/use/migrate-to-9.0.0?utm_source=openai
- 2: https://eslint.org/blog/2024/04/eslint-v9.0.0-released/?utm_source=openai
🌐 Web query:
Mocha 11 minimum Node.js version requirements
💡 Result:
Mocha v11.0.0 requires Node.js:
^18.18.0or^20.9.0or>=21.1.0(i.e., Node 21.1.0+)
So the minimum Node.js version that can run Mocha 11 is Node 18.18.0. [1]
This was a breaking change from earlier Mocha versions, raising the minimum from Node 14.x to Node 18.18.0. [2]
Sources: [1] [2]
Update the engines field to reflect the Node.js 18.18.0+ requirement of updated dependencies.
ESLint 9.x and Mocha 11.x both require Node.js 18.18.0 or higher. The current engines field specifies >=14.0.0, which is incompatible with these dependencies. Users on Node 14–17 will encounter installation or runtime failures.
Update the engines field:
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18.18.0"
},🤖 Prompt for AI Agents
In `@package.json` at line 24, The engines field in package.json currently allows
Node >=14.0.0 but ESLint 9.x and Mocha 11.x require Node >=18.18.0; update the
"engines" entry in package.json to require at least Node 18.18.0 (e.g., set
"node": ">=18.18.0") so the project enforces the correct runtime for
dependencies and prevents install/runtime failures for users on Node 14–17.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Description: Check for ESLint configuration format
echo "=== Checking for ESLint config files ==="
# Look for legacy config files
fd -H '\.eslintrc' 2>/dev/null && echo "Found legacy .eslintrc config" || echo "No legacy .eslintrc files found"
# Look for flat config
fd -H 'eslint\.config' 2>/dev/null && echo "Found flat config" || echo "No flat config files found"
# Check if using semistandard (which wraps ESLint)
echo -e "\n=== Semistandard config in package.json ==="
cat package.json | jq '.semistandard' 2>/dev/null || echo "No semistandard config found"
# Also check for any eslint-related config
echo -e "\n=== Checking eslint config in package.json ==="
cat package.json | jq '.eslintConfig' 2>/dev/null || echo "No eslintConfig found in package.json"Repository: jamesvillarrubia/feathers-rpc
Length of output: 372
🏁 Script executed:
#!/bin/bash
# Check what eslint config files exist
echo "=== All eslint config files ==="
fd -H 'eslint|\.eslintrc' 2>/dev/null
echo -e "\n=== Content of .eslintrc.json ==="
cat .eslintrc.json
echo -e "\n=== Check for eslint.config.js ==="
if [ -f eslint.config.js ]; then
echo "eslint.config.js exists"
head -20 eslint.config.js
else
echo "eslint.config.js does not exist"
fi
echo -e "\n=== Checking semistandard compatibility with ESLint 9 ==="
cat package.json | jq '.devDependencies | keys[] | select(. | contains("eslint") or contains("semistandard"))'Repository: jamesvillarrubia/feathers-rpc
Length of output: 754
🏁 Script executed:
#!/bin/bash
# Check semistandard version and ESLint compatibility
echo "=== Checking semistandard version ==="
cat package.json | jq '.devDependencies.semistandard'
echo -e "\n=== Checking if there are any setup/config docs ==="
find . -maxdepth 2 -type f \( -name "README*" -o -name "SETUP*" -o -name ".github" \) 2>/dev/null | head -10Repository: jamesvillarrubia/feathers-rpc
Length of output: 185
🌐 Web query:
semistandard 17.0.0 ESLint 9 compatibility
💡 Result:
semistandard@17.0.0 is not ESLint 9–compatible: it hard-depends on eslint: ^8.20.0 (so installing it pulls in ESLint 8, not 9). [1]
More broadly, the underlying eslint-config-standard ecosystem still tracks ESLint 9 support/flat-config work as open issues (so ESLint 9 support isn’t “done” there yet). [2]
What to do
- If you want to keep
semistandard@17.0.0: stay on ESLint 8 (or letsemistandardmanage the ESLint version it installs). [1] - If you must be on ESLint 9 (released April 2024): use an ESLint-9-first alternative like
neostandard(it’s explicitly “Built for ESLint 9” and includes asemioption intended to replacesemistandard). [3][4]
Sources: [1] https://app.unpkg.com/semistandard@17.0.0/files/package.json, [2] https://github.com/standard/eslint-config-standard/issues, [3] https://classic.yarnpkg.com/en/package/neostandard, [4] https://www.drupal.org/project/drupal/issues/3440225
Incompatible ESLint/semistandard versions—semistandard 17.0.0 requires ESLint 8.
semistandard 17.0.0 hard-depends on eslint: ^8.20.0, so specifying eslint: ^9.39.2 creates a version conflict. The package manager will install ESLint 8 (via semistandard's dependency), not ESLint 9.
To use ESLint 9, migrate to neostandard (which is built for ESLint 9 and includes a semi option as a semistandard replacement). Alternatively, downgrade ESLint to the 8.x series.
🤖 Prompt for AI Agents
In `@package.json` at line 24, package.json currently pins "eslint": "^9.39.2"
which conflicts with semistandard 17.0.0 (requires ESLint ^8.20.0); fix by
either 1) replacing semistandard with neostandard and switching any semistandard
config to neostandard (update package.json dependencies devDependencies to
include "neostandard" and remove "semistandard", update any ESLint config to
extend "neostandard" and add the desired semi option), or 2) downgrade the
"eslint" entry to a compatible 8.x range (e.g. "^8.20.0") in package.json so
semistandard can use ESLint 8; after changing package.json, run the package
manager to regenerate the lockfile and run lint to verify no config changes are
required.
| "release-it": "^17.6.0", | ||
| "f5": "npm:@feathersjs/feathers@^5.0.39", | ||
| "f5_exp": "npm:@feathersjs/express@^5.0.39", | ||
| "mocha": "^11.7.5", |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
# Check package.json for full context
cat package.json | head -40Repository: jamesvillarrubia/feathers-rpc
Length of output: 1210
🏁 Script executed:
# Run the provided verification script to check for existing configurations
#!/bin/bash
# Description: Check for existing mocha and release-it configuration that may need updates
# Check mocha config files
echo "=== Mocha configuration files ==="
fd -e json -e js -e cjs -e mjs -e yaml -e yml '\.?mocharc|mocha\.config' 2>/dev/null || echo "No dedicated mocha config found"
# Check package.json for mocha config
echo -e "\n=== Mocha config in package.json ==="
cat package.json | jq '.mocha // "No mocha config in package.json"'
# Check release-it config
echo -e "\n=== release-it configuration ==="
fd -e js -e json -e yaml -e yml 'release-it' 2>/dev/null | head -5
cat .release-it.js 2>/dev/null || echo "No .release-it.js found"Repository: jamesvillarrubia/feathers-rpc
Length of output: 2312
🌐 Web query:
Mocha v10 to v11 breaking changes migration guide
💡 Result:
Mocha v10 → v11: breaking changes & migration checklist
What’s breaking in v11
-
Node.js minimum version bumped
- Mocha 11 raises the minimum supported Node.js from 14.0.0 to 18.18.0. [1]
- The v11.0.0 release notes list this as the breaking change (“adapt new engine range”). [2]
-
globdependency updated (can affect which test files are discovered)- Mocha 11 updates its runtime
globdependency (v11.0.1 specifically bumps glob 8 → 10). [3] - Mocha maintainers call this out as one of the only user-facing changes in Mocha 11. [1]
- Mocha 11 updates its runtime
Migration steps (practical)
-
Upgrade Node everywhere you run tests
- Local dev:
node -vshould be >= 18.18.0. - CI: update your Node matrix/images to Node 18.18+ (or newer).
- If you must stay on Node 14/16, you must stay on mocha@10. [1][2]
- Local dev:
-
Reinstall deps / refresh lockfiles
- After bumping
mochato^11, run a clean install (so the newglobversion is actually picked up). [3]
- After bumping
-
Sanity-check test discovery
- If you rely on complex globbing (custom
specpatterns,--extension,--recursive, config file patterns, etc.), do a quick verification that Mocha is finding the same files after theglobupdate. [1][3]
- If you rely on complex globbing (custom
Notes
- Maintainers explicitly stated Mocha 11 contains no new fixes/features vs v10 beyond the Node engine bump and
globupdate. [1]
Sources: [1] [2] [3]
🌐 Web query:
release-it v17 to v19 breaking changes migration guide
💡 Result:
release-it v17 → v19: breaking changes & migration steps
What actually breaks (v17 → v18 → v19)
- v18 (released 2025-01-06): dropped Node.js 18 support → you must run Node.js 20+. [1]
- v19 (released 2025-04-18): no breaking changes (besides dependency updates). [1]
So, the only breaking change from v17 to v19 is the Node.js runtime requirement moving from Node 18 (v17) to Node 20+ (v18/v19). [1][2]
Migration checklist
- Upgrade your runtime to Node.js 20+
- Local dev: update
.nvmrc, CI images, Docker base image, etc.
- Local dev: update
- Bump release-it
npm i -D release-it@^19(or^18if you prefer)
- If you reference the JSON schema URL, update it (optional but recommended)
- Example schema shown for v19:
https://unpkg.com/release-it@19/schema/release-it.json[2]
- Example schema shown for v19:
- Verify plugin compatibility
- Some plugins may also raise their Node requirement to 20 when adding support for release-it 17–19 (example:
@release-it-plugins/lerna-changelogv8 requires Node 20). [3]
- Some plugins may also raise their Node requirement to 20 when adding support for release-it 17–19 (example:
Sources: [1] [2] [3]
Update Node.js engine requirement to match Mocha 11 and release-it 19 dependencies.
Mocha 11 and release-it 19 introduce breaking changes that conflict with the declared Node.js engine requirement. Mocha 11 requires Node.js 18.18.0+ (up from 14.0.0), and release-it 19 requires Node.js 20+, but package.json declares "engines": { "node": ">=14.0.0" }. Additionally, Mocha 11 updated its glob dependency (v8 → v10), which may affect test file discovery—verify that the test suite still discovers all files correctly after the upgrade.
🤖 Prompt for AI Agents
In `@package.json` at line 29, The package.json currently lists "mocha" "^11.7.5"
and other deps that require a newer Node runtime but the "engines": { "node":
">=14.0.0" } entry is stale; update the package.json "engines" -> "node" field
to at least ">=20.0.0" (to satisfy release-it 19) or to the minimum supported by
your infra (>=18.18.0 if you choose to avoid release-it 19), and ensure CI
configs (build/test workflows) reflect the same Node version; after updating,
run the test suite to verify test discovery still works with Mocha 11's updated
glob (v10) and adjust test globs or file patterns if any tests are not being
discovered.
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.