Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
ea87eea
module: fix extensionless CJS files in `"type": "module"` packages
mcollina Mar 10, 2026
f2c08c7
src: use validate_ascii_with_errors instead of validate_ascii
ChALkeR Mar 2, 2026
cc46204
doc: include url.resolve() in DEP0169 application deprecation
MikeMcC399 Mar 2, 2026
8048e05
test: fix skipping behavior for `test-runner-run-files-undefined`
aduh95 Mar 2, 2026
f90fa9c
stream: accept ArrayBuffer in CompressionStream and DecompressionStream
suuuuuuminnnnnn Mar 2, 2026
851228c
sqlite: handle stmt invalidation
araujogui Mar 2, 2026
80f78f2
test: update WPT for WebCryptoAPI to 42e47329fd
nodejs-github-bot Mar 3, 2026
d55a441
doc: add title to index
avivkeller Mar 3, 2026
09191ad
deps: update ada to 3.4.3
nodejs-github-bot Mar 3, 2026
975dafb
src: release context frame in AsyncWrap::EmitDestroy
Flarna Mar 3, 2026
1d91a72
doc,module: add missing doc for syncHooks.deregister()
joyeecheung Mar 3, 2026
bab750d
build: do not depend on V8 deps on `--without-bundled-v8` builds
aduh95 Mar 3, 2026
92f3b42
tools: bump eslint to v10, babel to v8.0.0-rc.2
JLHwung Mar 3, 2026
5b266f3
meta: bump step-security/harden-runner from 2.14.2 to 2.15.0
dependabot[bot] Mar 3, 2026
f8793f8
lib: fix source map url parse in dynamic imports
legendecas Mar 3, 2026
772d3d2
tools: bump minimatch from 3.1.3 to 3.1.5 in /tools/clang-format
dependabot[bot] Mar 3, 2026
db150b2
doc: fix markdown for `expectFailure` values
JakobJingleheimer Mar 4, 2026
5632446
stream: fix TransformStream race on cancel with pending write
marcopiraccini Mar 4, 2026
3e8c816
tools: fix example in release proposal linter
richardlau Mar 4, 2026
7d0b758
tools: fix daily wpt workflow nighly release version lookup
panva Mar 4, 2026
dcb1cbb
tools: bump the eslint group across 1 directory with 2 updates
dependabot[bot] Mar 5, 2026
a5b1be2
stream: fix UTF-8 character corruption in fast-utf8-stream
mcollina Mar 5, 2026
5198573
http: fix use-after-free when freeParser is called during llhttp_execute
Flarna Mar 6, 2026
6f975db
crypto: fix importKey required argument count check
panva Mar 4, 2026
e362635
crypto: add missing AES dictionaries
panva Mar 4, 2026
b26d1c7
crypto: make --use-system-ca per-env rather than per-process
Aditi-1400 Mar 6, 2026
710dde5
tools: fix `--node-builtin-modules-path` value in `shell.nix`
aduh95 Mar 6, 2026
eeee7c7
doc: add efekrskl as triager
efekrskl Mar 6, 2026
0257e80
src: make AsyncWrap subclass internal field counts explicit
addaleax Mar 3, 2026
19efe60
src: expose async context frame debugging helper to JS
addaleax Mar 3, 2026
cfc847d
test: update WPT compression to ae05f5cb53
panva Mar 4, 2026
82770cb
test: improve WPT report runner
panva Mar 4, 2026
4bdcaf2
stream: improve Web Compression spec compliance
panva Mar 4, 2026
4d62e95
stream: fix brotli error handling in web compression streams
panva Mar 4, 2026
1a453b5
tools: improve error handling in test426 update script
Trott Mar 7, 2026
27fd219
meta: bump actions/upload-artifact from 6.0.0 to 7.0.0
dependabot[bot] Mar 8, 2026
5439d0e
meta: bump actions/download-artifact from 7.0.0 to 8.0.0
dependabot[bot] Mar 8, 2026
83719ff
doc: correct `util.convertProcessSignalToExitCode` validation behavior
Renegade334 Mar 8, 2026
deead95
url: suppress warnings from url.format/url.resolve inside node_modules
Renegade334 Mar 8, 2026
0278461
stream: optimize webstreams pipeTo
MattiasBuelens Mar 9, 2026
37862a6
deps: V8: cherry-pick aa0b288f87cc
richardlau Mar 9, 2026
699a621
tools: revert timezone update GHA workflow to ubuntu-latest
richardlau Mar 9, 2026
8d63a17
doc: copyedit `addons.md`
aduh95 Mar 9, 2026
2c85057
deps: patch resb crate
richardlau Mar 9, 2026
456abc7
test: update WPT for WebCryptoAPI to c9e955840a
nodejs-github-bot Mar 10, 2026
00319ea
test: update WPT for url to c928b19ab0
nodejs-github-bot Mar 10, 2026
a13ed05
deps: update merve to 1.2.0
nodejs-github-bot Mar 10, 2026
53afb0e
deps: update sqlite to 3.52.0
nodejs-github-bot Mar 10, 2026
3beaf9c
deps: update amaro to 1.1.8
nodejs-github-bot Mar 10, 2026
2ea7a7b
2026-03-11, Version 25.8.1 (Current)
nodejs-github-bot Mar 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/build-tarball.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ jobs:
export COMMIT=$(git rev-parse --short=10 "$GITHUB_SHA")
./configure && make tar -j4 SKIP_XZ=1
- name: Upload tarball artifact
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: tarballs
path: '*.tar.gz'
Expand Down Expand Up @@ -127,7 +127,7 @@ jobs:
- name: Environment Information
run: npx envinfo
- name: Download tarball
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
with:
name: tarballs
path: tarballs
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/daily-wpt-fyi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ jobs:
# install a version and checkout
- name: Get latest nightly
if: matrix.node-version == 'latest-nightly'
run: echo "NIGHTLY=$(curl -s https://nodejs.org/download/nightly/index.json | jq -r '[.[] | select(.files[] | contains("linux-x64"))][0].version')" >> $GITHUB_ENV
run: echo "NIGHTLY=$(curl -s https://nodejs.org/download/nightly/index.json | jq -r '[.[] | select(.files[] | contains("linux-arm64"))][0].version')" >> $GITHUB_ENV
- name: Install Node.js
id: setup-node
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
Expand Down Expand Up @@ -103,7 +103,7 @@ jobs:
run: cp wptreport.json wptreport-${{ steps.setup-node.outputs.node-version }}.json
- name: Upload GitHub Actions artifact
if: ${{ env.WPT_REPORT != '' }}
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
path: out/wpt/wptreport-*.json
name: WPT Report for ${{ steps.setup-node.outputs.node-version }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/doc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
run: npx envinfo
- name: Build
run: NODE=$(command -v node) make doc-only
- uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: docs
path: out/doc
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/scorecard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:

steps:
- name: Harden Runner
uses: step-security/harden-runner@5ef0c079ce82195b2a36a210272d6b661572d83e # v2.14.2
uses: step-security/harden-runner@a90bcbc6539c36a85cdfeb73f7e2f433735f215b # v2.15.0
with:
egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs

Expand Down Expand Up @@ -67,7 +67,7 @@ jobs:
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
# format to the repository Actions tab.
- name: Upload artifact
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: SARIF file
path: results.sarif
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test-shared.yml
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ jobs:

- name: Upload tarball artifact
if: ${{ github.event_name != 'workflow_dispatch' }}
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: tarballs
path: '*.tar.gz'
Expand All @@ -153,7 +153,7 @@ jobs:
name: '${{ matrix.system }}: with shared libraries'
runs-on: ${{ matrix.runner }}
steps:
- uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
- uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
if: ${{ github.event_name != 'workflow_dispatch' }}
with:
name: tarballs
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/timezone-update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ jobs:
pull-requests: write # to create a PR (gr2m/create-or-update-pull-request-action)

if: github.repository == 'nodejs/node'
runs-on: ubuntu-slim
# cannot use ubuntu-slim here because it does not have icupkg
runs-on: ubuntu-latest

steps:
- name: Checkout nodejs/node
Expand Down
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@ release.
</tr>
<tr>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V25.md#25.8.0">25.8.0</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V25.md#25.8.1">25.8.1</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V25.md#25.8.0">25.8.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V25.md#25.7.0">25.7.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V25.md#25.6.1">25.6.1</a><br/>
<a href="doc/changelogs/CHANGELOG_V25.md#25.6.0">25.6.0</a><br/>
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -757,6 +757,8 @@ maintaining the Node.js project.
**Oliver Medhurst** <<honk@goose.icu>> (they/them)
* [daeyeon](https://github.com/daeyeon) -
**Daeyeon Jeong** <<daeyeon.dev@gmail.com>> (he/him)
* [efekrskl](https://github.com/efekrskl) -
**Efe Karasakal** <<hi@efe.dev>> (he/him)
* [gireeshpunathil](https://github.com/gireeshpunathil) -
**Gireesh Punathil** <<gpunathi@in.ibm.com>> (he/him)
* [gurgunday](https://github.com/gurgunday) -
Expand Down
2 changes: 1 addition & 1 deletion common.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@

# Reset this number to 0 on major V8 upgrades.
# Increment by one for each non-official patch applied to deps/v8.
'v8_embedder_string': '-node.20',
'v8_embedder_string': '-node.21',

##### V8 defaults for Node.js #####

Expand Down
8 changes: 7 additions & 1 deletion deps/ada/ada.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* auto-generated on 2026-01-30 13:29:04 -0500. Do not edit! */
/* auto-generated on 2026-02-23 21:29:24 -0500. Do not edit! */
/* begin file src/ada.cpp */
#include "ada.h"
/* begin file src/checkers.cpp */
Expand Down Expand Up @@ -14495,6 +14495,12 @@ bool url_aggregator::set_pathname(const std::string_view input) {
if (get_pathname().starts_with("//") && !has_authority() && !has_dash_dot()) {
buffer.insert(components.pathname_start, "/.");
components.pathname_start += 2;
if (components.search_start != url_components::omitted) {
components.search_start += 2;
}
if (components.hash_start != url_components::omitted) {
components.hash_start += 2;
}
}
ADA_ASSERT_TRUE(validate());
return true;
Expand Down
23 changes: 15 additions & 8 deletions deps/ada/ada.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* auto-generated on 2026-01-30 13:29:04 -0500. Do not edit! */
/* auto-generated on 2026-02-23 21:29:24 -0500. Do not edit! */
/* begin file include/ada.h */
/**
* @file ada.h
Expand Down Expand Up @@ -8091,6 +8091,12 @@ inline void url_aggregator::update_base_pathname(const std::string_view input) {
// output.
buffer.insert(components.pathname_start, "/.");
components.pathname_start += 2;
if (components.search_start != url_components::omitted) {
components.search_start += 2;
}
if (components.hash_start != url_components::omitted) {
components.hash_start += 2;
}
}

uint32_t difference = replace_and_resize(
Expand Down Expand Up @@ -9530,13 +9536,14 @@ url_pattern_component<regex_provider>::create_component_match_result(
auto result =
url_pattern_component_result{.input = std::move(input), .groups = {}};

// Optimization: Let's reserve the size.
result.groups.reserve(exec_result.size());

// We explicitly start iterating from 0 even though the spec
// says we should start from 1. This case is handled by the
// std_regex_provider.
for (size_t index = 0; index < exec_result.size(); index++) {
// std_regex_provider which removes the full match from index 0.
// Use min() to guard against potential mismatches between
// exec_result size and group_name_list size.
const size_t size = std::min(exec_result.size(), group_name_list.size());
result.groups.reserve(size);
for (size_t index = 0; index < size; index++) {
result.groups.emplace(group_name_list[index],
std::move(exec_result[index]));
}
Expand Down Expand Up @@ -11221,14 +11228,14 @@ constructor_string_parser<regex_provider>::parse(std::string_view input) {
#ifndef ADA_ADA_VERSION_H
#define ADA_ADA_VERSION_H

#define ADA_VERSION "3.4.2"
#define ADA_VERSION "3.4.3"

namespace ada {

enum {
ADA_VERSION_MAJOR = 3,
ADA_VERSION_MINOR = 4,
ADA_VERSION_REVISION = 2,
ADA_VERSION_REVISION = 3,
};

} // namespace ada
Expand Down
26 changes: 23 additions & 3 deletions deps/amaro/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,31 @@ node --import="amaro/strip" file.ts
Enabling TypeScript feature transformation:

```bash
node --experimental-transform-types --import="amaro/transform" file.ts
node --enable-source-maps --import="amaro/transform" file.ts
```

> Note that the "amaro/transform" loader should be used with `--experimental-transform-types` flag, or
> at least with `--enable-source-maps` flag, to preserve the original source maps.
> Note that the `amaro/transform` loader should be used with `--enable-source-maps`
> to preserve accurate source-mapped stack traces.
#### Programmatic registration with `module.register()`

If you want TypeScript to "just work" in an existing codebase without passing `--import` every time, create a small bootstrap file and register Amaro once before loading your TS entrypoint.

```mjs
// bootstrap.mjs
import { register } from "node:module";

register("amaro/strip", import.meta.url);
await import("./src/index.ts");
```
Then start your app through the bootstrap file:
```bash
node --watch ./bootstrap.mjs
```
For transform mode, swap `amaro/strip` with `amaro/transform` and run Node with `--enable-source-maps`.
#### Type stripping in dependencies
Expand Down
6 changes: 3 additions & 3 deletions deps/amaro/dist/index.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion deps/amaro/dist/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"강동윤 <kdy1997.dev@gmail.com>"
],
"description": "wasm module for swc",
"version": "1.15.11",
"version": "1.15.18",
"license": "Apache-2.0",
"repository": {
"type": "git",
Expand Down
2 changes: 1 addition & 1 deletion deps/amaro/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "amaro",
"version": "1.1.7",
"version": "1.1.8",
"description": "Node.js TypeScript wrapper",
"license": "MIT",
"type": "commonjs",
Expand Down
2 changes: 0 additions & 2 deletions deps/crates/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions deps/crates/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,7 @@ version = "=0.1.0"
default-features = false
# This is necessary to enable a spec-compliance quirk when upgrading to v0.1.2
# features = ["float64_representable_durations"]

[patch.crates-io]
# Float https://github.com/unicode-org/icu4x/pull/7658 until crate is updated.
resb = { path="patches/resb" }
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -473,7 +473,7 @@ fn read_u16(input: &[u8]) -> Result<(u16, &[u8]), BinaryDeserializerError> {
let bytes = get_subslice(input, ..core::mem::size_of::<u16>())?
.try_into()
.unwrap();
let value = u16::from_le_bytes(bytes);
let value = u16::from_ne_bytes(bytes);

let rest = get_subslice(input, core::mem::size_of::<u16>()..)?;
Ok((value, rest))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,11 @@ const SYSTEM_CHARSET_FAMILY: CharsetFamily = CharsetFamily::Ascii;

/// Deserializes an instance of type `T` from bytes representing a binary ICU
/// resource bundle.
///
/// The input data must be in the platform's native endianness. ICU4C resource
/// bundles such as `zoneinfo64.res` are generated in both little endian and
/// big endian formats; callers must ensure the appropriate format is provided
/// for the target platform.
pub fn from_words<'a, T>(input: &'a [u32]) -> Result<T, BinaryDeserializerError>
where
T: Deserialize<'a>,
Expand Down Expand Up @@ -142,7 +147,7 @@ impl<'de> ResourceTreeDeserializer<'de> {
))
}
};
let descriptor = u32::from_le_bytes(descriptor);
let descriptor = u32::from_ne_bytes(descriptor);

ResDescriptor::try_from(descriptor)
}
Expand Down Expand Up @@ -887,7 +892,7 @@ impl<'de> Resource16BitDeserializer<'de> {
// exactly 2 bytes.
#[expect(clippy::unwrap_used)]
let bytes = <[u8; 2]>::try_from(bytes).unwrap();
u16::from_le_bytes(bytes)
u16::from_ne_bytes(bytes)
});

char::decode_utf16(units)
Expand Down Expand Up @@ -1255,7 +1260,7 @@ fn read_u32(input: &[u8]) -> Result<(u32, &[u8]), BinaryDeserializerError> {
))?
.try_into()
.unwrap();
let value = u32::from_le_bytes(bytes);
let value = u32::from_ne_bytes(bytes);

let rest =
input
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,11 +113,8 @@ impl TryFrom<&[u8]> for BinReprInfo {
let (size, value) = read_u16(value)?;
let (reserved_word, value) = read_u16(value)?;

// While the consumer is responsible for verifying acceptability of most
// contents of the repr info, we explicitly depend on little endian data
// in order to ensure compatibility with `zerovec`.
let (endianness, value) = (Endianness::try_from(value[0])?, &value[1..]);
if endianness != Endianness::Little {
if (endianness == Endianness::Little) != cfg!(target_endian = "little") {
return Err(BinaryDeserializerError::unsupported_format(
"big-endian bundles are not supported",
));
Expand Down
File renamed without changes.
Loading