Skip to content

chore(js): bump deps and drop support for node 16,18#677

Open
rhamzeh wants to merge 2 commits intomainfrom
chore/js-bump-node-deps
Open

chore(js): bump deps and drop support for node 16,18#677
rhamzeh wants to merge 2 commits intomainfrom
chore/js-bump-node-deps

Conversation

@rhamzeh
Copy link
Member

@rhamzeh rhamzeh commented Feb 10, 2026

Description

What problem is being solved?

How is it being solved?

What changes are made to solve it?

References

Review Checklist

  • I have clicked on "allow edits by maintainers".
  • I have added documentation for new/changed functionality in this PR or in a PR to openfga.dev [Provide a link to any relevant PRs in the references section above]
  • The correct base branch is being used, if not main
  • I have added tests to validate that the change in functionality is working as expected

Summary by CodeRabbit

  • Chores

    • Version bumped to 0.9.2
  • Documentation

    • Added supported Node.js versions information
  • Dependencies

    • Updated multiple dependencies including axios, jest, and TypeScript tooling
    • Updated minimum Node.js requirement to >=20.19.0

Copilot AI review requested due to automatic review settings February 10, 2026 18:31
@rhamzeh rhamzeh requested a review from a team as a code owner February 10, 2026 18:31
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 10, 2026

Walkthrough

Three configuration and template files are modified: the package version is bumped to 0.9.2, a Node.js runtime versions section is added to the installation documentation template, and multiple JavaScript package dependencies and the minimum Node.js engine version are updated in the package template.

Changes

Cohort / File(s) Summary
Version Configuration
config/clients/js/config.overrides.json
Package version incremented from 0.9.0 to 0.9.2.
Documentation Template
config/clients/js/template/README_installation.mustache
New "Supported Node.js Versions" section added with reference to SUPPORTED_RUNTIMES.md documentation.
Package Dependencies
config/clients/js/template/package.mustache
Dependencies updated: axios (^1.12.2 → ^1.13.5), jose (^5.10.0 → 5.10.0), @types/jest (^29.5.14 → 30.0.0), @types/node (^24.2.0 → ^25.2.2), @typescript-eslint/* (^8.39.0 → ^8.55.0), eslint (^8.57.1 → 9.39.2), jest (^29.7.0 → 30.2.0), nock (^14.0.9 → ^14.0.11), ts-jest (^29.4.1 → 29.4.6), typescript (^5.9.2 → ^5.9.3); globals ^17.3.0 added. Repository URL changed from git:// to git+https:// format. Minimum Node.js engine version updated from >=16.15.0 to >=20.19.0.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'chore(js): bump deps and drop support for node 16,18' directly and accurately summarizes the main changes: dependency updates and removal of Node.js 16 and 18 support from the JavaScript client configuration.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/js-bump-node-deps

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 and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@config/clients/js/template/README_installation.mustache`:
- Around line 11-15: The README_installation.mustache references
./SUPPORTED_RUNTIMES.md which doesn't exist; either add a SUPPORTED_RUNTIMES.md
template (containing supported Node.js versions and policy) into the template
set (e.g., create the file under config/clients/js/template/ or the shared
templates folder config/common/files/) and ensure it is included in generated
packages, or remove/replace the link in README_installation.mustache with a
valid existing reference (or inline the supported runtimes text) so the README
no longer points to a missing file.
🧹 Nitpick comments (2)
config/clients/js/template/package.mustache (2)

24-24: jose pinned to exact 5.10.0 — intentional?

Previously ^5.10.0 (with caret), now pinned to exact 5.10.0. This prevents receiving patch-level security fixes automatically. If this is intentional (e.g., to avoid a known regression), a comment explaining the pin would help future maintainers.


28-28: Inconsistent version pinning strategy across dependencies.

Some packages are pinned exact (@types/jest: 30.0.0, eslint: 9.39.2, jest: 30.2.0, ts-jest: 29.4.6) while others use caret ranges. If exact pinning is intentional for these, consider documenting the rationale. Otherwise, consider using consistent caret ranges for devDependencies to receive compatible updates.

Also applies to: 33-33, 35-35, 37-37

Comment on lines +11 to +15
```

#### Supported Node.js Versions

For details on the supported Node.js versions and our support policy, see [SUPPORTED_RUNTIMES.md](./SUPPORTED_RUNTIMES.md).
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Search for SUPPORTED_RUNTIMES template or reference in the JS client config
rg -rn "SUPPORTED_RUNTIMES" config/clients/js/
# Also check if there's a shared template
rg -rn "SUPPORTED_RUNTIMES" config/

Repository: openfga/sdk-generator

Length of output: 356


🏁 Script executed:

#!/bin/bash
# Read the README_installation.mustache file to see the actual content
cat -n config/clients/js/template/README_installation.mustache | head -20

Repository: openfga/sdk-generator

Length of output: 478


🏁 Script executed:

#!/bin/bash
# Search for SUPPORTED_RUNTIMES.md files in the repository
find . -name "*SUPPORTED_RUNTIMES*" -type f
# Also check if there's a template that generates it
find config/ -name "*.mustache" -type f | xargs grep -l "SUPPORTED_RUNTIMES" 2>/dev/null || echo "No other templates reference SUPPORTED_RUNTIMES"

Repository: openfga/sdk-generator

Length of output: 120


🏁 Script executed:

#!/bin/bash
# Check if there's a generator config or manifest that lists files to be generated
find config/clients/js/ -type f | head -30
# Look for any configuration that might generate SUPPORTED_RUNTIMES.md
rg -l "SUPPORTED_RUNTIMES" config/

Repository: openfga/sdk-generator

Length of output: 1403


🏁 Script executed:

#!/bin/bash
# Check the config files to see if SUPPORTED_RUNTIMES.md is listed as a generated file
cat config/clients/js/config.overrides.json | head -100

Repository: openfga/sdk-generator

Length of output: 1141


🏁 Script executed:

#!/bin/bash
# Get the full config.overrides.json file
cat config/clients/js/config.overrides.json | jq '.files | keys' 2>/dev/null || rg "destinationFilename" config/clients/js/config.overrides.json

Repository: openfga/sdk-generator

Length of output: 134


🏁 Script executed:

#!/bin/bash
# Check template-source.json to see how README files are configured
cat config/clients/js/template-source.json

Repository: openfga/sdk-generator

Length of output: 457


🏁 Script executed:

#!/bin/bash
# Search the entire repository for SUPPORTED_RUNTIMES (including documentation and non-config files)
find . -type f \( -name "*.md" -o -name "*.mustache" -o -name "*.json" \) -exec grep -l "SUPPORTED_RUNTIMES" {} \;
# Also check if there are any README template files in parent generator
find . -type f -name "*SUPPORTED*"

Repository: openfga/sdk-generator

Length of output: 179


🏁 Script executed:

#!/bin/bash
# Check if SUPPORTED_RUNTIMES.md exists in the repository root or docs directory
find . -name "SUPPORTED_RUNTIMES.md" -o -name "*SUPPORTED*RUNTIME*"
# Check the root directory for any README or documentation files
ls -la | grep -i readme
# Check if there's a docs directory
find . -maxdepth 3 -type d -name "docs" -o -type d -name "doc"

Repository: openfga/sdk-generator

Length of output: 131


🏁 Script executed:

#!/bin/bash
# Check if there's a generation script or configuration that creates SUPPORTED_RUNTIMES.md
find . -type f \( -name "*.sh" -o -name "Makefile" -o -name "*.yaml" -o -name "*.yml" \) -exec grep -l "SUPPORTED_RUNTIMES" {} \;
# Check the docs directory to see what's there
ls -la docs/ 2>/dev/null || echo "docs directory not accessible"
# Search for any reference to runtime support or similar documentation
rg "Node.js" config/clients/js/ -A 2 -B 2

Repository: openfga/sdk-generator

Length of output: 1272


🏁 Script executed:

#!/bin/bash
# Check if SUPPORTED_RUNTIMES.md should be a static file copied from elsewhere
find . -type f -name "*.md" | xargs grep -l "Node.js" | head -10
# Check the actual JS SDK repository or similar projects to see if they have SUPPORTED_RUNTIMES.md
rg "SUPPORTED_RUNTIMES" . --type md
# Check if there's a template or static file directory
ls -la config/clients/js/ | grep -v template

Repository: openfga/sdk-generator

Length of output: 356


🏁 Script executed:

#!/bin/bash
# Check the .openapi-generator-ignore to see if SUPPORTED_RUNTIMES.md is being ignored
cat config/clients/js/.openapi-generator-ignore
# Look for any static files or additional files that might be copied
find config/clients/js/ -type f ! -path "*/template/*" -name "*.md"

Repository: openfga/sdk-generator

Length of output: 110


🏁 Script executed:

#!/bin/bash
# Check for generation scripts or workflows
find . -type f \( -name "*.sh" -o -name "*.ts" -o -name "*.js" \) -path "*/scripts/*" -o -path "*/.github/workflows/*"
# Look for any mention of file generation or copying
rg "SUPPORTED_RUNTIMES\|copy.*file\|static.*file" . --type json --type yaml --type yml
# Check if there's a static files directory
find config/ -type d -name "static" -o -type d -name "assets"

Repository: openfga/sdk-generator

Length of output: 219


🏁 Script executed:

#!/bin/bash
# Check the common files/assets directory for SUPPORTED_RUNTIMES.md or similar
find config/common/files/ -type f | head -20
ls -la config/common/files/assets/

Repository: openfga/sdk-generator

Length of output: 1038


🏁 Script executed:

#!/bin/bash
# Check if there's a SUPPORTED_RUNTIMES.md template anywhere
find config/ -name "*SUPPORTED_RUNTIMES*"
# Look at the build script to understand how files are generated
cat scripts/build_client.sh | head -50

Repository: openfga/sdk-generator

Length of output: 1927


🏁 Script executed:

#!/bin/bash
# Check if SUPPORTED_RUNTIMES.md is supposed to be a static file in the repository
find . -type f -name "*.md" | xargs grep -l "supported.*runtime\|support.*policy" -i
# Check the OpenAPI Generator default templates to see if they generate such a file
rg "SUPPORTED_RUNTIMES" . --type all

Repository: openfga/sdk-generator

Length of output: 303


Remove or provide the SUPPORTED_RUNTIMES.md file.

The link to ./SUPPORTED_RUNTIMES.md on line 15 references a file that does not exist in the repository and is not generated by the build process. Either create the SUPPORTED_RUNTIMES.md template in config/clients/js/template/ or config/common/files/, or remove this link and replace it with a valid reference.

🤖 Prompt for AI Agents
In `@config/clients/js/template/README_installation.mustache` around lines 11 -
15, The README_installation.mustache references ./SUPPORTED_RUNTIMES.md which
doesn't exist; either add a SUPPORTED_RUNTIMES.md template (containing supported
Node.js versions and policy) into the template set (e.g., create the file under
config/clients/js/template/ or the shared templates folder config/common/files/)
and ensure it is included in generated packages, or remove/replace the link in
README_installation.mustache with a valid existing reference (or inline the
supported runtimes text) so the README no longer points to a missing file.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates the JavaScript SDK generator templates to refresh dependency versions and raise the minimum supported Node.js version for generated packages.

Changes:

  • Bumps runtime/dev dependency versions in the JS package.json template (including Jest/ESLint updates).
  • Updates generated package metadata (repository URL format, Node engine requirement).
  • Extends the generated README installation section with a link to Node.js runtime support info.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.

File Description
config/clients/js/template/package.mustache Updates dependency versions, repository URL scheme, and engines.node minimum.
config/clients/js/template/README_installation.mustache Adds a “Supported Node.js Versions” section linking to runtime support documentation.
config/clients/js/config.overrides.json Bumps the JS SDK package version.

"axios": "^1.12.2",
"jose": "^5.10.0",
"axios": "^1.13.5",
"jose": "5.10.0",
Copy link

Copilot AI Feb 10, 2026

Choose a reason for hiding this comment

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

jose was changed from a semver range to an exact version. Pinning an exact dependency version can prevent consumers from receiving compatible patch/minor updates (including security fixes). Consider reverting to a caret range (or document why this must be pinned).

Suggested change
"jose": "5.10.0",
"jose": "^5.10.0",

Copilot uses AI. Check for mistakes.
"globals": "^17.3.0",
"jest": "30.2.0",
"nock": "^14.0.11",
"ts-jest": "29.4.6",
Copy link

Copilot AI Feb 10, 2026

Choose a reason for hiding this comment

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

jest is bumped to v30 but ts-jest remains on the v29 major line. These typically have peer dependency/compatibility coupling, and this mismatch is likely to break npm test in generated SDKs. Align ts-jest's major version with jest (or keep jest on v29).

Suggested change
"ts-jest": "29.4.6",
"ts-jest": "30.0.0",

Copilot uses AI. Check for mistakes.
Comment on lines 54 to 56
"engines": {
"node": ">=16.15.0"
"node": ">=20.19.0"
},
Copy link

Copilot AI Feb 10, 2026

Choose a reason for hiding this comment

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

The PR title says support is being dropped for Node 16 and 18, but the generated engines.node is set to >=20.19.0, which additionally excludes earlier Node 20.x releases. If the intent is simply “Node 20+”, consider loosening this to >=20 (or update the PR description/title and docs to explain the stricter minimum).

Copilot uses AI. Check for mistakes.
@@ -20,21 +20,22 @@
},
"dependencies": {
"@opentelemetry/api": "^1.9.0",
Copy link
Member

Choose a reason for hiding this comment

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

How come we're still maintaining the package.json file in this repo? Is it just because of the version?

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.

3 participants