Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): update node.js to v22 #1269

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Oct 29, 2024

This PR contains the following updates:

Package Type Update Change Age Adoption Passing Confidence
node (source) engines major >=18 <21 -> >=18 <23 age adoption passing confidence
@types/node (source) devDependencies major ^20.12.7 -> ^22.0.0 age adoption passing confidence
node stage major 20.17.0-alpine -> 22.12.0-alpine age adoption passing confidence
node (source) major 20.18.0 -> 22.12.0 age adoption passing confidence

Release Notes

nodejs/node (node)

v22.12.0

Compare Source

v22.11.0

Compare Source

v22.10.0: 2024-10-16, Version 22.10.0 (Current), @​aduh95

Compare Source

Notable Changes
New "module-sync" exports condition

This release introduces a "module-sync" exports condition that's enabled when
require(esm) is enabled, so packages can supply a synchronous ES module to the
Node.js module loader, no matter if it's being required or imported. This is
similar to the "module" condition that bundlers have been using to support
require(esm) in Node.js, and allows dual-package authors to opt into ESM-first
only on newer versions of Node.js that supports require(esm) to avoid the
dual-package hazard.

{
  "type": "module",
  "exports": {
    "node": {
      // On new version of Node.js, both require() and import get
      // the ESM version
      "module-sync": "./index.js",
      // On older version of Node.js, where "module-sync" and require(esm) are
      // not supported, use the CJS version to avoid dual-package hazard.
      // When package authors think it's time to drop support for older versions of
      // Node.js, they can remove the exports conditions and just use "main": "index.js".
      "default": "./dist/index.cjs"
    },
    // On any other environment, use the ESM version.
    "default": "./index.js"
  }
}

Or if the package is only meant to be run on Node.js and wants to fallback to
CJS on older versions that don't have require(esm):

{
  "type": "module",
  "exports": {
    // On new version of Node.js, both require() and import get the ESM version
    "module-sync": "./index.js",
    // On older version of Node.js, where "module-sync" and require(esm) are
    // not supported, use the CJS version to avoid dual-package hazard.
    // When package authors think it's time to drop support for older versions of
    // Node.js, they can remove the exports conditions and just use "main": "index.js".
    "default": "./dist/index.cjs"
  }
}

For package authors: this only serves as a feature-detection mechanism for
packages that wish to support both CJS and ESM users during the period when some
active Node.js LTS versions support require(esm) while some older ones don't.
When all active Node.js LTS lines support require(esm), packages can simplify
their distributions by bumping the major version, dropping their CJS exports,
and removing the module-sync exports condition (with only main or default
targetting the ESM exports). If the package needs to support both bundlers and
being run unbundled on Node.js during the transition period, use both
module-sync and module and point them to the same ESM file. If the package
already doesn't want to support older versions of Node.js that doesn't support
require(esm), don't use this export condition.

For bundlers/tools: they should avoid implementing this stop-gap condition.
Most existing bundlers implement the de-facto bundler standard
module
exports condition, and that should be enough to support users who want to bundle
ESM from CJS consumers. Users who want both bundlers and Node.js to recognize
the ESM exports can use both module/module-sync conditions during the
transition period, and can drop module-sync+module when they no longer need
to support older versions of Node.js. If tools do want to support this
condition, it's recommended to make the resolution rules in the graph pointed by
this condition match the Node.js native ESM rules to avoid divergence.

We ended up implementing a condition with a different name instead of reusing
"module", because existing code in the ecosystem using the "module"
condition sometimes also expect the module resolution for these ESM files to
work in CJS style, which is supported by bundlers, but the native Node.js loader
has intentionally made ESM resolution different from CJS resolution (e.g.
forbidding import './noext' or import './directory'), so it would be
breaking to implement a "module" condition without implementing the forbidden
ESM resolution rules. For now, this just implements a new condition as
semver-minor so it can be backported to older LTS.

Contributed by Joyee Cheung in #​54648.

node --run is now stable

This CLI flag runs a specified command from a package.json's "scripts" object.

For the following package.json:

{
  "scripts": {
    "test": "node --test-reporter junit --test ./test"
  }
}

You can run node --run test and that would start the test suite.

Contributed by Yagiz Nizipli in #​53763.

Other notable changes
  • [f0b441230a] - (SEMVER-MINOR) crypto: add KeyObject.prototype.toCryptoKey (Filip Skokan) #​55262
  • [349d2ed07b] - (SEMVER-MINOR) crypto: add Date fields for validTo and validFrom (Andrew Moon) #​54159
  • [bebc95ed58] - doc: add abmusse to collaborators (Abdirahim Musse) #​55086
  • [914db60159] - (SEMVER-MINOR) http2: expose nghttp2_option_set_stream_reset_rate_limit as an option (Maël Nison) #​54875
  • [f7c3b03759] - (SEMVER-MINOR) lib: propagate aborted state to dependent signals before firing events (jazelly) #​54826
  • [32261fc98a] - (SEMVER-MINOR) module: support loading entrypoint as url (RedYetiDev) #​54933
  • [06957ff355] - (SEMVER-MINOR) module: implement flushCompileCache() (Joyee Cheung) #​54971
  • [2dcf70c347] - (SEMVER-MINOR) module: throw when invalid argument is passed to enableCompileCache() (Joyee Cheung) #​54971
  • [f9b19d7c44] - (SEMVER-MINOR) module: write compile cache to temporary file and then rename it (Joyee Cheung) #​54971
  • [e95163b170] - (SEMVER-MINOR) process: add process.features.require_module (Joyee Cheung) #​55241
  • [4050f68e5d] - (SEMVER-MINOR) process: add process.features.typescript (Aviv Keller) #​54295
  • [86f7cb802d] - (SEMVER-MINOR) test_runner: support custom arguments in run() (Aviv Keller) #​55126
  • [b62f2f8259] - (SEMVER-MINOR) test_runner: add 'test:summary' event (Colin Ihrig) #​54851
  • [d7c708aec5] - (SEMVER-MINOR) test_runner: add support for coverage via run() (Chemi Atlow) #​53937
  • [5fda4a1498] - (SEMVER-MINOR) worker: add markAsUncloneable api (Jason Zhang) #​55234
Commits

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/node-22.x branch from b27c2bd to ecd60e1 Compare October 29, 2024 22:13
Copy link

codecov bot commented Oct 29, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 18.89%. Comparing base (bf96c7d) to head (736a958).

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #1269   +/-   ##
=======================================
  Coverage   18.89%   18.89%           
=======================================
  Files         427      427           
  Lines       66953    66953           
  Branches     1452     1457    +5     
=======================================
+ Hits        12648    12649    +1     
+ Misses      54305    54304    -1     
Flag Coverage Δ
unitTests 18.89% <ø> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link

github-actions bot commented Oct 29, 2024

Playwright test results

failed  16 failed
skipped  34 skipped

Details

stats  50 tests across 11 suites
duration  18 minutes, 22 seconds
commit  736a958

Failed tests

chromium-setup › auth.setup.ts › authenticate as user - ( @primary @slow @read @development @staging @production )
chromium-setup › auth.setup.ts › authenticate as admin - ( @primary @slow @read @development @staging @production )
firefox-setup › auth.setup.ts › authenticate as user - ( @primary @slow @read @development @staging @production )
firefox-setup › auth.setup.ts › authenticate as admin - ( @primary @slow @read @development @staging @production )
chromium-setup › auth.setup.ts › authenticate as user - ( @primary @slow @read @development @staging @production )
chromium-setup › auth.setup.ts › authenticate as admin - ( @primary @slow @read @development @staging @production )
firefox-setup › auth.setup.ts › authenticate as user - ( @primary @slow @read @development @staging @production )
firefox-setup › auth.setup.ts › authenticate as admin - ( @primary @slow @read @development @staging @production )
chromium-setup › auth.setup.ts › authenticate as user - ( @primary @slow @read @development @staging @production )
chromium-setup › auth.setup.ts › authenticate as admin - ( @primary @slow @read @development @staging @production )
firefox-setup › auth.setup.ts › authenticate as user - ( @primary @slow @read @development @staging @production )
firefox-setup › auth.setup.ts › authenticate as admin - ( @primary @slow @read @development @staging @production )
chromium-setup › auth.setup.ts › authenticate as user - ( @primary @slow @read @development @staging @production )
chromium-setup › auth.setup.ts › authenticate as admin - ( @primary @slow @read @development @staging @production )
firefox-setup › auth.setup.ts › authenticate as user - ( @primary @slow @read @development @staging @production )
firefox-setup › auth.setup.ts › authenticate as admin - ( @primary @slow @read @development @staging @production )

Skipped tests

chromium › authentication.test.ts › Authentication › should load unauthorized routes as expected with and without authentication - ( @slow @primary @development @staging @production )
chromium › authentication.test.ts › Authentication › should redirect from login related unauthorized pages with existing session - ( @slow @primary @development @staging @production )
firefox › authentication.test.ts › Authentication › should load unauthorized routes as expected with and without authentication - ( @slow @primary @development @staging @production )
firefox › authentication.test.ts › Authentication › should redirect from login related unauthorized pages with existing session - ( @slow @primary @development @staging @production )
chromium › basic.test.ts › should have valid title & url - ( @fast @primary @read @development @staging @production )
chromium › basic.test.ts › should have valid localizations - ( @fast @primary @read @development @staging @production )
firefox › basic.test.ts › should have valid title & url - ( @fast @primary @read @development @staging @production )
firefox › basic.test.ts › should have valid localizations - ( @fast @primary @read @development @staging @production )
chromium › pages/dashboard.test.ts › DashboardPage › should have data-testids - ( @fast @primary @read @development @staging @production )
firefox › pages/dashboard.test.ts › DashboardPage › should have data-testids - ( @fast @primary @read @development @staging @production )
chromium › pages/login.test.ts › LoginPage › should login - ( @fast @primary @development @staging @production )
chromium › pages/login.test.ts › LoginPage › should show error on login with invalid credentials - ( @slow @primary @development @staging @production )
chromium › pages/login.test.ts › LoginPage › should have data-testids - ( @fast @primary @read @development @staging @production )
firefox › pages/login.test.ts › LoginPage › should login - ( @fast @primary @development @staging @production )
firefox › pages/login.test.ts › LoginPage › should show error on login with invalid credentials - ( @slow @primary @development @staging @production )
firefox › pages/login.test.ts › LoginPage › should have data-testids - ( @fast @primary @read @development @staging @production )
chromium › pages/myOrganization.test.ts › MyOrganization › should have visible data-testids - ( @primary @slow @read @development @staging @production )
firefox › pages/myOrganization.test.ts › MyOrganization › should have visible data-testids - ( @primary @slow @read @development @staging @production )
chromium › pages/myOrganization.test.ts › MyOrganization › Invitation Management: should display all required elements - ( @primary @slow @read @development @staging @production )
chromium › pages/myOrganization.test.ts › MyOrganization › User Management: should display all required elements - ( @primary @slow @read @development @staging @production )
chromium › pages/myOrganization.test.ts › MyOrganization › Organization Profile: should display all required elements - ( @primary @slow @read @development @staging @production )
firefox › pages/myOrganization.test.ts › MyOrganization › Invitation Management: should display all required elements - ( @primary @slow @read @development @staging @production )
firefox › pages/myOrganization.test.ts › MyOrganization › User Management: should display all required elements - ( @primary @slow @read @development @staging @production )
firefox › pages/myOrganization.test.ts › MyOrganization › Organization Profile: should display all required elements - ( @primary @slow @read @development @staging @production )
chromium › pages/otherOrganizations.test.ts › OtherOrganizations › should have visible data-testids - ( @primary @slow @read @development @staging @production )
firefox › pages/otherOrganizations.test.ts › OtherOrganizations › should have visible data-testids - ( @primary @slow @read @development @staging @production )
chromium › pages/phone.test.ts › PhonePage › should have visible data-testids - ( @primary @slow @read @development @staging @production )
firefox › pages/phone.test.ts › PhonePage › should have visible data-testids - ( @primary @slow @read @development @staging @production )
chromium › pages/training.test.ts › Training › should have visible data-testids - ( @primary @slow @read @development @staging @production )
firefox › pages/training.test.ts › Training › should have visible data-testids - ( @primary @slow @read @development @staging @production )
chromium › pages/user-profile.test.ts › UserProfile › should have visible data-testids - ( @primary @slow @read @development @staging @production )
firefox › pages/user-profile.test.ts › UserProfile › should have visible data-testids - ( @primary @slow @read @development @staging @production )
chromium › pages/work.test.ts › WorkPage › should have visible data-testids - ( @primary @slow @read @development @staging @production )
firefox › pages/work.test.ts › WorkPage › should have visible data-testids - ( @primary @slow @read @development @staging @production )

@renovate renovate bot force-pushed the renovate/node-22.x branch 15 times, most recently from 35918f7 to 8da6652 Compare November 5, 2024 05:20
@renovate renovate bot force-pushed the renovate/node-22.x branch 9 times, most recently from 7b2c1cf to f34c566 Compare November 11, 2024 17:51
@renovate renovate bot force-pushed the renovate/node-22.x branch 3 times, most recently from fb7923f to 5ce2a91 Compare November 17, 2024 00:03
@renovate renovate bot force-pushed the renovate/node-22.x branch 7 times, most recently from 4ee0e78 to f832a4c Compare November 23, 2024 07:41
@renovate renovate bot force-pushed the renovate/node-22.x branch 8 times, most recently from 36be99f to 9fbb13b Compare November 29, 2024 21:13
@renovate renovate bot force-pushed the renovate/node-22.x branch 3 times, most recently from 984eb68 to 1f46bd2 Compare December 6, 2024 15:39
@renovate renovate bot force-pushed the renovate/node-22.x branch 2 times, most recently from 90c507a to 80ce2c9 Compare December 13, 2024 15:36
@renovate renovate bot force-pushed the renovate/node-22.x branch from 80ce2c9 to 736a958 Compare December 13, 2024 17:04
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.

0 participants