From 65e839687bfab070373476b5cbe0c8ef72abb835 Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Tue, 4 Nov 2025 13:42:19 +0000 Subject: [PATCH 01/12] deps: update corepack to 0.34.2 PR-URL: https://github.com/nodejs/node/pull/60550 Reviewed-By: Antoine du Hamel Reviewed-By: Trivikram Kamat --- deps/corepack/CHANGELOG.md | 8 ++ deps/corepack/dist/lib/corepack.cjs | 138 ++++++++++++++-------------- deps/corepack/package.json | 2 +- 3 files changed, 79 insertions(+), 69 deletions(-) diff --git a/deps/corepack/CHANGELOG.md b/deps/corepack/CHANGELOG.md index 61ad4b5379818c..6dfcc2549a5f8a 100644 --- a/deps/corepack/CHANGELOG.md +++ b/deps/corepack/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [0.34.2](https://github.com/nodejs/corepack/compare/v0.34.1...v0.34.2) (2025-10-31) + + +### Bug Fixes + +* bump package manager versions ([#754](https://github.com/nodejs/corepack/issues/754)) ([35e3869](https://github.com/nodejs/corepack/commit/35e3869f3f4d21bbfccdf78ea564ab0723d6f36f)) +* fix potential race condition in `node-tar` ([#757](https://github.com/nodejs/corepack/pull/757)) ([78808a7](78808a72691655fe5140c02ae41d4baef88cd9fa)) + ## [0.34.1](https://github.com/nodejs/corepack/compare/v0.34.0...v0.34.1) (2025-10-17) diff --git a/deps/corepack/dist/lib/corepack.cjs b/deps/corepack/dist/lib/corepack.cjs index 8a5add55f0083c..51a8bc86fe820e 100644 --- a/deps/corepack/dist/lib/corepack.cjs +++ b/deps/corepack/dist/lib/corepack.cjs @@ -13800,10 +13800,10 @@ var init_esm2 = __esm({ } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/options.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/options.js var argmap, isSyncFile, isAsyncFile, isSyncNoFile, isAsyncNoFile, dealiasKey, dealias; var init_options = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/options.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/options.js"() { argmap = /* @__PURE__ */ new Map([ ["C", "cwd"], ["f", "file"], @@ -13853,10 +13853,10 @@ var init_options = __esm({ } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/make-command.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/make-command.js var makeCommand; var init_make_command = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/make-command.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/make-command.js"() { init_options(); makeCommand = (syncFile, asyncFile, syncNoFile, asyncNoFile, validate) => { return Object.assign((opt_ = [], entries, cb) => { @@ -14307,10 +14307,10 @@ var init_esm3 = __esm({ } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/large-numbers.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/large-numbers.js var encode, encodePositive, encodeNegative, parse, twos, pos, onesComp, twosComp; var init_large_numbers = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/large-numbers.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/large-numbers.js"() { encode = (num, buf) => { if (!Number.isSafeInteger(num)) { throw Error("cannot encode number outside of javascript safe integer range"); @@ -14393,10 +14393,10 @@ var init_large_numbers = __esm({ } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/types.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/types.js var isCode, name, code; var init_types = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/types.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/types.js"() { isCode = (c) => name.has(c); name = /* @__PURE__ */ new Map([ ["0", "File"], @@ -14441,10 +14441,10 @@ var init_types = __esm({ } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/header.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/header.js var import_node_path, Header, splitPrefix, decString, decDate, numToDate, decNumber, nanUndef, decSmallNumber, MAXNUM, encNumber, encSmallNumber, octalString, padOctal, encDate, NULLS, encString; var init_header = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/header.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/header.js"() { import_node_path = require("node:path"); init_large_numbers(); init_types(); @@ -14484,12 +14484,12 @@ var init_header = __esm({ if (!buf || !(buf.length >= off + 512)) { throw new Error("need 512 bytes for header"); } - this.path = decString(buf, off, 100); - this.mode = decNumber(buf, off + 100, 8); - this.uid = decNumber(buf, off + 108, 8); - this.gid = decNumber(buf, off + 116, 8); - this.size = decNumber(buf, off + 124, 12); - this.mtime = decDate(buf, off + 136, 12); + this.path = ex?.path ?? decString(buf, off, 100); + this.mode = ex?.mode ?? gex?.mode ?? decNumber(buf, off + 100, 8); + this.uid = ex?.uid ?? gex?.uid ?? decNumber(buf, off + 108, 8); + this.gid = ex?.gid ?? gex?.gid ?? decNumber(buf, off + 116, 8); + this.size = ex?.size ?? gex?.size ?? decNumber(buf, off + 124, 12); + this.mtime = ex?.mtime ?? gex?.mtime ?? decDate(buf, off + 136, 12); this.cksum = decNumber(buf, off + 148, 12); if (gex) this.#slurp(gex, true); @@ -14507,10 +14507,10 @@ var init_header = __esm({ } this.linkpath = decString(buf, off + 157, 100); if (buf.subarray(off + 257, off + 265).toString() === "ustar\x0000") { - this.uname = decString(buf, off + 265, 32); - this.gname = decString(buf, off + 297, 32); - this.devmaj = decNumber(buf, off + 329, 8) ?? 0; - this.devmin = decNumber(buf, off + 337, 8) ?? 0; + this.uname = ex?.uname ?? gex?.uname ?? decString(buf, off + 265, 32); + this.gname = ex?.gname ?? gex?.gname ?? decString(buf, off + 297, 32); + this.devmaj = ex?.devmaj ?? gex?.devmaj ?? decNumber(buf, off + 329, 8) ?? 0; + this.devmin = ex?.devmin ?? gex?.devmin ?? decNumber(buf, off + 337, 8) ?? 0; if (buf[off + 475] !== 0) { const prefix = decString(buf, off + 345, 155); this.path = prefix + "/" + this.path; @@ -14519,8 +14519,8 @@ var init_header = __esm({ if (prefix) { this.path = prefix + "/" + this.path; } - this.atime = decDate(buf, off + 476, 12); - this.ctime = decDate(buf, off + 488, 12); + this.atime = ex?.atime ?? gex?.atime ?? decDate(buf, off + 476, 12); + this.ctime = ex?.ctime ?? gex?.ctime ?? decDate(buf, off + 488, 12); } } let sum = 8 * 32; @@ -14652,10 +14652,10 @@ var init_header = __esm({ } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/pax.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/pax.js var import_node_path2, Pax, merge, parseKV, parseKVLine; var init_pax = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/pax.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/pax.js"() { import_node_path2 = require("node:path"); init_header(); Pax = class _Pax { @@ -14775,19 +14775,19 @@ var init_pax = __esm({ } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/normalize-windows-path.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/normalize-windows-path.js var platform, normalizeWindowsPath; var init_normalize_windows_path = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/normalize-windows-path.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/normalize-windows-path.js"() { platform = process.env.TESTING_TAR_FAKE_PLATFORM || process.platform; normalizeWindowsPath = platform !== "win32" ? (p) => p : (p) => p && p.replace(/\\/g, "/"); } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/read-entry.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/read-entry.js var ReadEntry; var init_read_entry = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/read-entry.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/read-entry.js"() { init_esm(); init_normalize_windows_path(); ReadEntry = class extends Minipass { @@ -14908,10 +14908,10 @@ var init_read_entry = __esm({ } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/warn-method.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/warn-method.js var warnMethod; var init_warn_method = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/warn-method.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/warn-method.js"() { warnMethod = (self2, code2, message, data = {}) => { if (self2.file) { data.file = self2.file; @@ -14936,10 +14936,10 @@ var init_warn_method = __esm({ } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/parse.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/parse.js var import_events3, maxMetaEntrySize, gzipHeader, zstdHeader, ZIP_HEADER_LEN, STATE, WRITEENTRY, READENTRY, NEXTENTRY, PROCESSENTRY, EX, GEX, META, EMITMETA, BUFFER2, QUEUE, ENDED, EMITTEDEND, EMIT, UNZIP, CONSUMECHUNK, CONSUMECHUNKSUB, CONSUMEBODY, CONSUMEMETA, CONSUMEHEADER, CONSUMING, BUFFERCONCAT, MAYBEEND, WRITING, ABORTED2, DONE, SAW_VALID_ENTRY, SAW_NULL_BLOCK, SAW_EOF, CLOSESTREAM, noop2, Parser; var init_parse = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/parse.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/parse.js"() { import_events3 = require("events"); init_esm3(); init_header(); @@ -15435,10 +15435,10 @@ var init_parse = __esm({ } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/strip-trailing-slashes.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/strip-trailing-slashes.js var stripTrailingSlashes; var init_strip_trailing_slashes = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/strip-trailing-slashes.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/strip-trailing-slashes.js"() { stripTrailingSlashes = (str) => { let i = str.length - 1; let slashesStart = -1; @@ -15451,7 +15451,7 @@ var init_strip_trailing_slashes = __esm({ } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/list.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/list.js var list_exports = {}; __export(list_exports, { filesFilter: () => filesFilter, @@ -15459,7 +15459,7 @@ __export(list_exports, { }); var import_node_fs, import_path2, onReadEntryFunction, filesFilter, listFileSync, listFile, list; var init_list = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/list.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/list.js"() { init_esm2(); import_node_fs = __toESM(require("node:fs"), 1); import_path2 = require("path"); @@ -15504,13 +15504,15 @@ var init_list = __esm({ const readSize = opt.maxReadSize || 16 * 1024 * 1024; if (stat.size < readSize) { const buf = Buffer.allocUnsafe(stat.size); - import_node_fs.default.readSync(fd, buf, 0, stat.size, 0); - p.end(buf); + const read = import_node_fs.default.readSync(fd, buf, 0, stat.size, 0); + p.end(read === buf.byteLength ? buf : buf.subarray(0, read)); } else { let pos2 = 0; const buf = Buffer.allocUnsafe(readSize); while (pos2 < stat.size) { const bytesRead = import_node_fs.default.readSync(fd, buf, 0, readSize, pos2); + if (bytesRead === 0) + break; pos2 += bytesRead; p.write(buf.subarray(0, bytesRead)); } @@ -15556,10 +15558,10 @@ var init_list = __esm({ } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/get-write-flag.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/get-write-flag.js var import_fs3, platform2, isWindows, O_CREAT, O_TRUNC, O_WRONLY, UV_FS_O_FILEMAP, fMapEnabled, fMapLimit, fMapFlag, getWriteFlag; var init_get_write_flag = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/get-write-flag.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/get-write-flag.js"() { import_fs3 = __toESM(require("fs"), 1); platform2 = process.env.__FAKE_PLATFORM__ || process.platform; isWindows = platform2 === "win32"; @@ -15655,10 +15657,10 @@ var init_esm4 = __esm({ } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/cwd-error.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/cwd-error.js var CwdError; var init_cwd_error = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/cwd-error.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/cwd-error.js"() { CwdError = class extends Error { path; code; @@ -15675,10 +15677,10 @@ var init_cwd_error = __esm({ } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/symlink-error.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/symlink-error.js var SymlinkError; var init_symlink_error = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/symlink-error.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/symlink-error.js"() { SymlinkError = class extends Error { path; symlink; @@ -15696,10 +15698,10 @@ var init_symlink_error = __esm({ } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/mkdir.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/mkdir.js var import_node_fs3, import_promises, import_node_path4, checkCwd, mkdir, mkdir_, onmkdir, checkCwdSync, mkdirSync2; var init_mkdir = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/mkdir.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/mkdir.js"() { init_esm4(); import_node_fs3 = __toESM(require("node:fs"), 1); import_promises = __toESM(require("node:fs/promises"), 1); @@ -15853,10 +15855,10 @@ var init_mkdir = __esm({ } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/strip-absolute-path.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/strip-absolute-path.js var import_node_path5, isAbsolute, parse3, stripAbsolutePath; var init_strip_absolute_path = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/strip-absolute-path.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/strip-absolute-path.js"() { import_node_path5 = require("node:path"); ({ isAbsolute, parse: parse3 } = import_node_path5.win32); stripAbsolutePath = (path16) => { @@ -15873,10 +15875,10 @@ var init_strip_absolute_path = __esm({ } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/winchars.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/winchars.js var raw, win, toWin, toRaw, encode2, decode; var init_winchars = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/winchars.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/winchars.js"() { raw = ["|", "<", ">", "?", ":"]; win = raw.map((char) => String.fromCharCode(61440 + char.charCodeAt(0))); toWin = new Map(raw.map((char, i) => [char, win[i]])); @@ -15886,10 +15888,10 @@ var init_winchars = __esm({ } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/normalize-unicode.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/normalize-unicode.js var normalizeCache, MAX, cache, normalizeUnicode; var init_normalize_unicode = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/normalize-unicode.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/normalize-unicode.js"() { normalizeCache = /* @__PURE__ */ Object.create(null); MAX = 1e4; cache = /* @__PURE__ */ new Set(); @@ -15915,10 +15917,10 @@ var init_normalize_unicode = __esm({ } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/path-reservations.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/path-reservations.js var import_node_path6, platform3, isWindows2, getDirs, PathReservations; var init_path_reservations = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/path-reservations.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/path-reservations.js"() { import_node_path6 = require("node:path"); init_normalize_unicode(); init_strip_trailing_slashes(); @@ -16055,10 +16057,10 @@ var init_path_reservations = __esm({ } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/unpack.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/unpack.js var import_node_assert, import_node_crypto, import_node_fs4, import_node_path7, ONENTRY, CHECKFS, CHECKFS2, ISREUSABLE, MAKEFS, FILE, DIRECTORY, LINK, SYMLINK, HARDLINK, UNSUPPORTED, CHECKPATH, MKDIR, ONERROR, PENDING, PEND, UNPEND, ENDED2, MAYBECLOSE, SKIP, DOCHOWN, UID, GID, CHECKED_CWD, platform4, isWindows3, DEFAULT_MAX_DEPTH, unlinkFile, unlinkFileSync, uint32, Unpack, callSync, UnpackSync; var init_unpack = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/unpack.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/unpack.js"() { init_esm2(); import_node_assert = __toESM(require("node:assert"), 1); import_node_crypto = require("node:crypto"); @@ -16739,14 +16741,14 @@ var init_unpack = __esm({ } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/extract.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/extract.js var extract_exports = {}; __export(extract_exports, { extract: () => extract }); var import_node_fs5, extractFileSync, extractFile, extract; var init_extract = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/extract.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/extract.js"() { init_esm2(); import_node_fs5 = __toESM(require("node:fs"), 1); init_list(); @@ -18492,10 +18494,10 @@ ${nodePath ? "$env:NODE_PATH=$env_node_path\n" : ""}${prependPath ? "$env:PATH=$ } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/mode-fix.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/mode-fix.js var modeFix; var init_mode_fix = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/mode-fix.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/mode-fix.js"() { modeFix = (mode, isDir, portable) => { mode &= 4095; if (portable) { @@ -18517,10 +18519,10 @@ var init_mode_fix = __esm({ } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/write-entry.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/write-entry.js var import_fs11, import_path9, prefixPath, maxReadSize, PROCESS, FILE2, DIRECTORY2, SYMLINK2, HARDLINK2, HEADER, READ2, LSTAT, ONLSTAT, ONREAD, ONREADLINK, OPENFILE, ONOPENFILE, CLOSE, MODE, AWAITDRAIN, ONDRAIN, PREFIX, WriteEntry, WriteEntrySync, WriteEntryTar, getType; var init_write_entry = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/write-entry.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/write-entry.js"() { import_fs11 = __toESM(require("fs"), 1); init_esm(); import_path9 = __toESM(require("path"), 1); @@ -19486,10 +19488,10 @@ var init_esm5 = __esm({ } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/pack.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/pack.js var import_fs12, import_path10, PackJob, EOF2, ONSTAT, ENDED3, QUEUE2, CURRENT, PROCESS2, PROCESSING, PROCESSJOB, JOBS, JOBDONE, ADDFSENTRY, ADDTARENTRY, STAT, READDIR, ONREADDIR, PIPE, ENTRY, ENTRYOPT, WRITEENTRYCLASS, WRITE, ONDRAIN2, Pack, PackSync; var init_pack = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/pack.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/pack.js"() { import_fs12 = __toESM(require("fs"), 1); init_write_entry(); init_esm(); @@ -19917,14 +19919,14 @@ var init_pack = __esm({ } }); -// .yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/create.js +// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/create.js var create_exports = {}; __export(create_exports, { create: () => create }); var import_node_path8, createFileSync, createFile, addFilesSync, addFilesAsync, createSync, createAsync, create; var init_create = __esm({ - ".yarn/cache/tar-npm-7.5.1-7b414f7fec-0dad0596a6.zip/node_modules/tar/dist/esm/create.js"() { + ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/create.js"() { init_esm2(); import_node_path8 = __toESM(require("node:path"), 1); init_list(); @@ -21675,7 +21677,7 @@ function String2(descriptor, ...args) { } // package.json -var version = "0.34.1"; +var version = "0.34.2"; // sources/Engine.ts var import_fs6 = __toESM(require("fs")); @@ -21726,7 +21728,7 @@ var config_default = { } }, pnpm: { - default: "10.18.3+sha1.0202a20aaa3d7ba8bc29b50d95efe1a34dd95773", + default: "10.20.0+sha1.a9bfe8cf88011d4758e1acbeb0da8883ecbd52ce", fetchLatestFrom: { type: "npm", package: "pnpm" diff --git a/deps/corepack/package.json b/deps/corepack/package.json index 245fc175913e42..647dd5659ce8f5 100644 --- a/deps/corepack/package.json +++ b/deps/corepack/package.json @@ -1,6 +1,6 @@ { "name": "corepack", - "version": "0.34.1", + "version": "0.34.2", "homepage": "https://github.com/nodejs/corepack#readme", "bugs": { "url": "https://github.com/nodejs/corepack/issues" From 2cd265d8b945ee6913f0e80cedb6db085bf009cd Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Mon, 17 Nov 2025 23:27:51 +0000 Subject: [PATCH 02/12] deps: update corepack to 0.34.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/60643 Reviewed-By: Antoine du Hamel Reviewed-By: Ulises Gascón Reviewed-By: Trivikram Kamat --- deps/corepack/CHANGELOG.md | 17 ++++ deps/corepack/dist/lib/corepack.cjs | 136 +++++++++++++++------------- deps/corepack/package.json | 4 +- 3 files changed, 93 insertions(+), 64 deletions(-) diff --git a/deps/corepack/CHANGELOG.md b/deps/corepack/CHANGELOG.md index 6dfcc2549a5f8a..936ae97e2004d8 100644 --- a/deps/corepack/CHANGELOG.md +++ b/deps/corepack/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## [0.34.4](https://github.com/nodejs/corepack/compare/v0.34.3...v0.34.4) (2025-11-14) + + +### Bug Fixes + +* bump pnpm version in `config.json` ([#768](https://github.com/nodejs/corepack/issues/768)) ([99a9a6e](https://github.com/nodejs/corepack/commit/99a9a6eb1b6e918ceb896b3d558bb5ed583bdc70)) +* ignore devEngines version range when CLI provides a version ([#762](https://github.com/nodejs/corepack/issues/762)) ([ac518c4](https://github.com/nodejs/corepack/commit/ac518c4106f8d9ceb4e85e6c3614b1eba5d03fcb)) +* use `lstatSync` in `generatePosixLink` ([#767](https://github.com/nodejs/corepack/issues/767)) ([a02bea0](https://github.com/nodejs/corepack/commit/a02bea078eb584ed7492ec561626987e35386bae)) + +## [0.34.3](https://github.com/nodejs/corepack/compare/v0.34.2...v0.34.3) (2025-11-07) + + +### Bug Fixes + +* update package manager versions ([#765](https://github.com/nodejs/corepack/issues/765)) ([13a2e98](https://github.com/nodejs/corepack/commit/13a2e989ee37694a7ec1b1d60acdaa28f90642d1)) +* Yarn switch install support and tests ([#761](https://github.com/nodejs/corepack/issues/761)) ([d04d483](https://github.com/nodejs/corepack/commit/d04d4839aeecaf4fca989c577f6c000dc90be933)) + ## [0.34.2](https://github.com/nodejs/corepack/compare/v0.34.1...v0.34.2) (2025-10-31) diff --git a/deps/corepack/dist/lib/corepack.cjs b/deps/corepack/dist/lib/corepack.cjs index 51a8bc86fe820e..017d271205bfea 100644 --- a/deps/corepack/dist/lib/corepack.cjs +++ b/deps/corepack/dist/lib/corepack.cjs @@ -21677,7 +21677,7 @@ function String2(descriptor, ...args) { } // package.json -var version = "0.34.2"; +var version = "0.34.4"; // sources/Engine.ts var import_fs6 = __toESM(require("fs")); @@ -21728,7 +21728,7 @@ var config_default = { } }, pnpm: { - default: "10.20.0+sha1.a9bfe8cf88011d4758e1acbeb0da8883ecbd52ce", + default: "10.22.0+sha1.3e9e4d522d30f3cf4cabb7506f5d15b89feffd04", fetchLatestFrom: { type: "npm", package: "pnpm" @@ -21792,7 +21792,7 @@ var config_default = { package: "yarn" }, transparent: { - default: "4.10.3+sha224.6020b3cdcdfbd7dbc24b7a7b75d58a249ce36068a8bf97d39aa8cc6d", + default: "4.11.0+sha224.209a3e277c6bbc03df6e4206fbfcb0c1621c27ecf0688f79a0c619f0", commands: [ [ "yarn", @@ -22099,6 +22099,50 @@ async function getProxyAgent(input) { return new ProxyAgent(proxy); } +// sources/nodeUtils.ts +var import_os2 = __toESM(require("os")); +function isNodeError(err) { + return !!err?.code; +} +function isExistError(err) { + return err.code === `EEXIST` || err.code === `ENOTEMPTY`; +} +function getEndOfLine(content) { + const matches = content.match(/\r?\n/g); + if (matches === null) + return import_os2.default.EOL; + const crlf = matches.filter((nl) => nl === `\r +`).length; + const lf = matches.length - crlf; + return crlf > lf ? `\r +` : ` +`; +} +function normalizeLineEndings(originalContent, newContent) { + return newContent.replace(/\r?\n/g, getEndOfLine(originalContent)); +} +function getIndent(content) { + const indentMatch = content.match(/^[ \t]+/m); + if (indentMatch) { + return indentMatch[0]; + } else { + return ` `; + } +} +function stripBOM(content) { + if (content.charCodeAt(0) === 65279) { + return content.slice(1); + } else { + return content; + } +} +function readPackageJson(content) { + return { + data: JSON.parse(stripBOM(content) || `{}`), + indent: getIndent(content) + }; +} + // sources/corepackUtils.ts var YARN_SWITCH_REGEX = /[/\\]switch[/\\]bin[/\\]/; function isYarnSwitchPath(p) { @@ -22156,7 +22200,7 @@ async function findInstalledVersion(installTarget, descriptor) { try { cacheDirectory = await import_fs4.default.promises.opendir(installFolder); } catch (error) { - if (error.code === `ENOENT`) { + if (isNodeError(error) && error.code === `ENOENT`) { return null; } else { throw error; @@ -22228,9 +22272,13 @@ async function download(installTarget, url, algo, binPath = null) { try { await renameSafe(downloadedBin, outputFile); } catch (err) { - if (err?.code === `ENOENT`) + if (isNodeError(err) && err.code === `ENOENT`) throw new Error(`Cannot locate '${binPath}' in downloaded tarball`, { cause: err }); - throw err; + if (isNodeError(err) && isExistError(err)) { + await import_fs4.default.promises.rm(downloadedBin); + } else { + throw err; + } } const fileStream = import_fs4.default.createReadStream(outputFile); hash = fileStream.pipe((0, import_crypto2.createHash)(algo)); @@ -22258,7 +22306,7 @@ async function installVersion(installTarget, locator, { spec }) { bin: corepackData.bin }; } catch (err) { - if (err?.code !== `ENOENT`) { + if (isNodeError(err) && err.code !== `ENOENT`) { throw err; } } @@ -22336,8 +22384,8 @@ async function installVersion(installTarget, locator, { spec }) { try { await renameSafe(tmpFolder, installFolder); } catch (err) { - if (err.code === `ENOTEMPTY` || // On Windows the error code is EPERM so we check if it is a directory - err.code === `EPERM` && (await import_fs4.default.promises.stat(installFolder)).isDirectory()) { + if (isNodeError(err) && (isExistError(err) || // On Windows the error code is EPERM so we check if it is a directory + err.code === `EPERM` && (await import_fs4.default.promises.stat(installFolder)).isDirectory())) { log(`Another instance of corepack installed ${locator.name}@${locator.reference}`); await import_fs4.default.promises.rm(tmpFolder, { recursive: true, force: true }); } else { @@ -22376,7 +22424,7 @@ async function renameUnderWindows(oldPath, newPath) { await import_fs4.default.promises.rename(oldPath, newPath); break; } catch (err) { - if ((err.code === `ENOENT` || err.code === `EPERM`) && i < retries - 1) { + if (isNodeError(err) && (err.code === `ENOENT` || err.code === `EPERM`) && i < retries - 1) { await (0, import_promises2.setTimeout)(100 * 2 ** i); continue; } else { @@ -22467,44 +22515,6 @@ var import_valid = __toESM(require_valid()); var import_valid2 = __toESM(require_valid2()); var import_util = require("util"); -// sources/nodeUtils.ts -var import_os2 = __toESM(require("os")); -function getEndOfLine(content) { - const matches = content.match(/\r?\n/g); - if (matches === null) - return import_os2.default.EOL; - const crlf = matches.filter((nl) => nl === `\r -`).length; - const lf = matches.length - crlf; - return crlf > lf ? `\r -` : ` -`; -} -function normalizeLineEndings(originalContent, newContent) { - return newContent.replace(/\r?\n/g, getEndOfLine(originalContent)); -} -function getIndent(content) { - const indentMatch = content.match(/^[ \t]+/m); - if (indentMatch) { - return indentMatch[0]; - } else { - return ` `; - } -} -function stripBOM(content) { - if (content.charCodeAt(0) === 65279) { - return content.slice(1); - } else { - return content; - } -} -function readPackageJson(content) { - return { - data: JSON.parse(stripBOM(content) || `{}`), - indent: getIndent(content) - }; -} - // sources/types.ts var SupportedPackageManagers = /* @__PURE__ */ ((SupportedPackageManagers3) => { SupportedPackageManagers3["Npm"] = `npm`; @@ -22691,7 +22701,7 @@ async function loadSpec(initialCwd) { onFail: selection.data.devEngines.packageManager.onFail }, // Lazy-loading it so we do not throw errors on commands that do not need valid spec. - getSpec: () => parseSpec(rawPmSpec, import_path4.default.relative(initialCwd, selection.manifestPath)) + getSpec: ({ enforceExactVersion = true } = {}) => parseSpec(rawPmSpec, import_path4.default.relative(initialCwd, selection.manifestPath), { enforceExactVersion }) }; } @@ -22874,7 +22884,7 @@ var Engine = class { * project using the default package managers, and configure it so that we * don't need to ask again in the future. */ - async findProjectSpec(initialCwd, locator, { transparent = false } = {}) { + async findProjectSpec(initialCwd, locator, { transparent = false, binaryVersion } = {}) { const fallbackDescriptor = { name: locator.name, range: `${locator.reference}` }; if (import_process3.default.env.COREPACK_ENABLE_PROJECT_SPEC === `0`) { if (typeof locator.reference === `function`) @@ -22909,7 +22919,7 @@ var Engine = class { return fallbackDescriptor; } case `Found`: { - const spec = result.getSpec(); + const spec = result.getSpec({ enforceExactVersion: !binaryVersion }); if (spec.name !== locator.name) { if (transparent) { if (typeof locator.reference === `function`) @@ -22948,7 +22958,7 @@ var Engine = class { reference: fallbackReference }; } - const descriptor = await this.findProjectSpec(cwd, fallbackLocator, { transparent: isTransparentCommand }); + const descriptor = await this.findProjectSpec(cwd, fallbackLocator, { transparent: isTransparentCommand, binaryVersion }); if (binaryVersion) descriptor.range = binaryVersion; const resolved = await this.resolveDescriptor(descriptor, { allowTags: true }); @@ -23148,17 +23158,19 @@ var EnableCommand = class extends Command { async generatePosixLink(installDirectory, distFolder, binName) { const file = import_path7.default.join(installDirectory, binName); const symlink = import_path7.default.relative(installDirectory, import_path7.default.join(distFolder, `${binName}.js`)); - if (import_fs9.default.existsSync(file)) { - const currentSymlink = await import_fs9.default.promises.readlink(file); - if (binName.includes(`yarn`) && isYarnSwitchPath(await import_fs9.default.promises.realpath(file))) { - console.warn(`${binName} is already installed in ${file} and points to a Yarn Switch install - skipping`); - return; - } - if (currentSymlink !== symlink) { - await import_fs9.default.promises.unlink(file); - } else { - return; + const stats = import_fs9.default.lstatSync(file, { throwIfNoEntry: false }); + if (stats) { + if (stats.isSymbolicLink()) { + const currentSymlink = await import_fs9.default.promises.readlink(file); + if (binName.includes(`yarn`) && isYarnSwitchPath(await import_fs9.default.promises.realpath(file))) { + console.warn(`${binName} is already installed in ${file} and points to a Yarn Switch install - skipping`); + return; + } + if (currentSymlink === symlink) { + return; + } } + await import_fs9.default.promises.unlink(file); } await import_fs9.default.promises.symlink(symlink, file); } diff --git a/deps/corepack/package.json b/deps/corepack/package.json index 647dd5659ce8f5..72a617d6a75da6 100644 --- a/deps/corepack/package.json +++ b/deps/corepack/package.json @@ -1,6 +1,6 @@ { "name": "corepack", - "version": "0.34.2", + "version": "0.34.4", "homepage": "https://github.com/nodejs/corepack#readme", "bugs": { "url": "https://github.com/nodejs/corepack/issues" @@ -16,7 +16,7 @@ "./package.json": "./package.json" }, "license": "MIT", - "packageManager": "yarn@4.10.3+sha224.6020b3cdcdfbd7dbc24b7a7b75d58a249ce36068a8bf97d39aa8cc6d", + "packageManager": "yarn@4.11.0+sha224.209a3e277c6bbc03df6e4206fbfcb0c1621c27ecf0688f79a0c619f0", "devDependencies": { "@types/debug": "^4.1.5", "@types/node": "^20.4.6", From 622f973d1ceb36b6d1b8cc4c508f8d30e240189c Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Sun, 30 Nov 2025 07:37:59 +0000 Subject: [PATCH 03/12] deps: update corepack to 0.34.5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/60842 Reviewed-By: Antoine du Hamel Reviewed-By: Trivikram Kamat Reviewed-By: Michaël Zasso --- deps/corepack/CHANGELOG.md | 8 ++++++++ deps/corepack/dist/lib/corepack.cjs | 25 +++++++++++++++++++++---- deps/corepack/package.json | 2 +- 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/deps/corepack/CHANGELOG.md b/deps/corepack/CHANGELOG.md index 936ae97e2004d8..63afb3ebaf3272 100644 --- a/deps/corepack/CHANGELOG.md +++ b/deps/corepack/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [0.34.5](https://github.com/nodejs/corepack/compare/v0.34.4...v0.34.5) (2025-11-24) + + +### Bug Fixes + +* **pnpm:** fix bin path for v11 ([#776](https://github.com/nodejs/corepack/issues/776)) ([0c8048a](https://github.com/nodejs/corepack/commit/0c8048adc61651f6eb798448675d3ecc4a7e26a9)) +* update package manager versions ([#773](https://github.com/nodejs/corepack/issues/773)) ([06c286b](https://github.com/nodejs/corepack/commit/06c286b5fc171e43090b5eed5cd501bc9580927f)) + ## [0.34.4](https://github.com/nodejs/corepack/compare/v0.34.3...v0.34.4) (2025-11-14) diff --git a/deps/corepack/dist/lib/corepack.cjs b/deps/corepack/dist/lib/corepack.cjs index 017d271205bfea..51e21814c14b9d 100644 --- a/deps/corepack/dist/lib/corepack.cjs +++ b/deps/corepack/dist/lib/corepack.cjs @@ -21677,7 +21677,7 @@ function String2(descriptor, ...args) { } // package.json -var version = "0.34.4"; +var version = "0.34.5"; // sources/Engine.ts var import_fs6 = __toESM(require("fs")); @@ -21691,7 +21691,7 @@ var import_valid4 = __toESM(require_valid2()); var config_default = { definitions: { npm: { - default: "11.6.2+sha1.2af8ff1f23b279df1e5289db7c70cfedd0fe18c5", + default: "11.6.3+sha1.3f581bca37cbdadf2be04346c0e5b0be96cdd54b", fetchLatestFrom: { type: "npm", package: "npm" @@ -21728,7 +21728,7 @@ var config_default = { } }, pnpm: { - default: "10.22.0+sha1.3e9e4d522d30f3cf4cabb7506f5d15b89feffd04", + default: "10.23.0+sha1.b4a44ab0dc2adf2e36371d11d8eb0dc78ffc976c", fetchLatestFrom: { type: "npm", package: "pnpm" @@ -21766,7 +21766,7 @@ var config_default = { ] } }, - ">=6.0.0": { + "6.x || 7.x || 8.x || 9.x || 10.x": { url: "https://registry.npmjs.org/pnpm/-/pnpm-{}.tgz", bin: { pnpm: "./bin/pnpm.cjs", @@ -21782,6 +21782,23 @@ var config_default = { "install" ] } + }, + ">=11.0.0": { + url: "https://registry.npmjs.org/pnpm/-/pnpm-{}.tgz", + bin: { + pnpm: "./bin/pnpm.mjs", + pnpx: "./bin/pnpx.mjs" + }, + registry: { + type: "npm", + package: "pnpm" + }, + commands: { + use: [ + "pnpm", + "install" + ] + } } } }, diff --git a/deps/corepack/package.json b/deps/corepack/package.json index 72a617d6a75da6..704128ccd43f5f 100644 --- a/deps/corepack/package.json +++ b/deps/corepack/package.json @@ -1,6 +1,6 @@ { "name": "corepack", - "version": "0.34.4", + "version": "0.34.5", "homepage": "https://github.com/nodejs/corepack#readme", "bugs": { "url": "https://github.com/nodejs/corepack/issues" From 8fdde5d110348b8926c14d4b6a443ad98ccb2310 Mon Sep 17 00:00:00 2001 From: Marco Ippolito Date: Tue, 13 Jan 2026 15:54:02 +0100 Subject: [PATCH 04/12] doc: fix v20 changelog after security release MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/61371 Reviewed-By: Rafael Gonzaga Reviewed-By: Richard Lau Reviewed-By: Luigi Pinca Reviewed-By: Ulises Gascón Reviewed-By: Benjamin Gruenbaum --- doc/changelogs/CHANGELOG_V20.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/doc/changelogs/CHANGELOG_V20.md b/doc/changelogs/CHANGELOG_V20.md index 68362d077ba89a..1899bda353a821 100644 --- a/doc/changelogs/CHANGELOG_V20.md +++ b/doc/changelogs/CHANGELOG_V20.md @@ -84,17 +84,11 @@ This is a security release. ### Notable Changes -lib: - * (CVE-2025-55132) disable futimes when permission model is enabled (RafaelGSS) * (CVE-2025-59465) add TLSSocket default error handler (RafaelGSS) - lib,permission: * (CVE-2025-55130) require full read and write to symlink APIs (RafaelGSS) - src: * (CVE-2025-59466) rethrow stack overflow exceptions in async\_hooks (Matteo Collina) - src,lib: * (CVE-2025-55131) refactor unsafe buffer creation to remove zero-fill toggle (Сковорода Никита Андреевич) - tls: * (CVE-2026-21637) route callback exceptions through error handlers (Matteo Collina) ### Commits From 2ea16d3bd688c19606769c59b6f7021c090522c9 Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Wed, 28 Jan 2026 12:52:25 -0500 Subject: [PATCH 05/12] deps: update corepack to 0.34.6 PR-URL: https://github.com/nodejs/node/pull/61510 Reviewed-By: Antoine du Hamel Reviewed-By: Beth Griggs --- deps/corepack/CHANGELOG.md | 8 ++ deps/corepack/README.md | 12 +- deps/corepack/dist/lib/corepack.cjs | 178 ++++++++++++++++------------ deps/corepack/package.json | 4 +- 4 files changed, 118 insertions(+), 84 deletions(-) diff --git a/deps/corepack/CHANGELOG.md b/deps/corepack/CHANGELOG.md index 63afb3ebaf3272..dfc1dddd7b6a32 100644 --- a/deps/corepack/CHANGELOG.md +++ b/deps/corepack/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [0.34.6](https://github.com/nodejs/corepack/compare/v0.34.5...v0.34.6) (2026-01-23) + + +### Bug Fixes + +* **docs:** fix PowerShell functions suggestions ([#784](https://github.com/nodejs/corepack/issues/784)) ([b1544c8](https://github.com/nodejs/corepack/commit/b1544c82a63781bd77d49f7b566fefd0104b7d6d)) +* update package manager versions ([#778](https://github.com/nodejs/corepack/issues/778)) ([efed597](https://github.com/nodejs/corepack/commit/efed59797d30caa362a1fa8475cd7d17dc3b7282)) + ## [0.34.5](https://github.com/nodejs/corepack/compare/v0.34.4...v0.34.5) (2025-11-24) diff --git a/deps/corepack/README.md b/deps/corepack/README.md index 7ddf1de40022cb..1920174797a5dc 100644 --- a/deps/corepack/README.md +++ b/deps/corepack/README.md @@ -219,12 +219,12 @@ On Windows PowerShell, you can add functions using the `$PROFILE` automatic variable: ```powershell -echo "function yarn { corepack yarn `$args }" >> $PROFILE -echo "function yarnpkg { corepack yarnpkg `$args }" >> $PROFILE -echo "function pnpm { corepack pnpm `$args }" >> $PROFILE -echo "function pnpx { corepack pnpx `$args }" >> $PROFILE -echo "function npm { corepack npm `$args }" >> $PROFILE -echo "function npx { corepack npx `$args }" >> $PROFILE +echo 'function yarn { corepack yarn @args }' >> $PROFILE +echo 'function yarnpkg { corepack yarnpkg @args }' >> $PROFILE +echo 'function pnpm { corepack pnpm @args }' >> $PROFILE +echo 'function pnpx { corepack pnpx @args }' >> $PROFILE +echo 'function npm { corepack npm @args }' >> $PROFILE +echo 'function npx { corepack npx @args }' >> $PROFILE ``` ### `corepack disable [... name]` diff --git a/deps/corepack/dist/lib/corepack.cjs b/deps/corepack/dist/lib/corepack.cjs index 51e21814c14b9d..2d570f7b70233c 100644 --- a/deps/corepack/dist/lib/corepack.cjs +++ b/deps/corepack/dist/lib/corepack.cjs @@ -13800,10 +13800,10 @@ var init_esm2 = __esm({ } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/options.js +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/options.js var argmap, isSyncFile, isAsyncFile, isSyncNoFile, isAsyncNoFile, dealiasKey, dealias; var init_options = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/options.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/options.js"() { argmap = /* @__PURE__ */ new Map([ ["C", "cwd"], ["f", "file"], @@ -13853,10 +13853,10 @@ var init_options = __esm({ } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/make-command.js +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/make-command.js var makeCommand; var init_make_command = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/make-command.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/make-command.js"() { init_options(); makeCommand = (syncFile, asyncFile, syncNoFile, asyncNoFile, validate) => { return Object.assign((opt_ = [], entries, cb) => { @@ -14307,10 +14307,10 @@ var init_esm3 = __esm({ } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/large-numbers.js +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/large-numbers.js var encode, encodePositive, encodeNegative, parse, twos, pos, onesComp, twosComp; var init_large_numbers = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/large-numbers.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/large-numbers.js"() { encode = (num, buf) => { if (!Number.isSafeInteger(num)) { throw Error("cannot encode number outside of javascript safe integer range"); @@ -14393,10 +14393,10 @@ var init_large_numbers = __esm({ } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/types.js +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/types.js var isCode, name, code; var init_types = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/types.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/types.js"() { isCode = (c) => name.has(c); name = /* @__PURE__ */ new Map([ ["0", "File"], @@ -14441,10 +14441,10 @@ var init_types = __esm({ } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/header.js +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/header.js var import_node_path, Header, splitPrefix, decString, decDate, numToDate, decNumber, nanUndef, decSmallNumber, MAXNUM, encNumber, encSmallNumber, octalString, padOctal, encDate, NULLS, encString; var init_header = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/header.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/header.js"() { import_node_path = require("node:path"); init_large_numbers(); init_types(); @@ -14652,10 +14652,10 @@ var init_header = __esm({ } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/pax.js +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/pax.js var import_node_path2, Pax, merge, parseKV, parseKVLine; var init_pax = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/pax.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/pax.js"() { import_node_path2 = require("node:path"); init_header(); Pax = class _Pax { @@ -14775,19 +14775,19 @@ var init_pax = __esm({ } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/normalize-windows-path.js +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/normalize-windows-path.js var platform, normalizeWindowsPath; var init_normalize_windows_path = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/normalize-windows-path.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/normalize-windows-path.js"() { platform = process.env.TESTING_TAR_FAKE_PLATFORM || process.platform; normalizeWindowsPath = platform !== "win32" ? (p) => p : (p) => p && p.replace(/\\/g, "/"); } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/read-entry.js +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/read-entry.js var ReadEntry; var init_read_entry = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/read-entry.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/read-entry.js"() { init_esm(); init_normalize_windows_path(); ReadEntry = class extends Minipass { @@ -14908,10 +14908,10 @@ var init_read_entry = __esm({ } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/warn-method.js +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/warn-method.js var warnMethod; var init_warn_method = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/warn-method.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/warn-method.js"() { warnMethod = (self2, code2, message, data = {}) => { if (self2.file) { data.file = self2.file; @@ -14936,10 +14936,10 @@ var init_warn_method = __esm({ } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/parse.js +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/parse.js var import_events3, maxMetaEntrySize, gzipHeader, zstdHeader, ZIP_HEADER_LEN, STATE, WRITEENTRY, READENTRY, NEXTENTRY, PROCESSENTRY, EX, GEX, META, EMITMETA, BUFFER2, QUEUE, ENDED, EMITTEDEND, EMIT, UNZIP, CONSUMECHUNK, CONSUMECHUNKSUB, CONSUMEBODY, CONSUMEMETA, CONSUMEHEADER, CONSUMING, BUFFERCONCAT, MAYBEEND, WRITING, ABORTED2, DONE, SAW_VALID_ENTRY, SAW_NULL_BLOCK, SAW_EOF, CLOSESTREAM, noop2, Parser; var init_parse = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/parse.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/parse.js"() { import_events3 = require("events"); init_esm3(); init_header(); @@ -15435,10 +15435,10 @@ var init_parse = __esm({ } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/strip-trailing-slashes.js +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/strip-trailing-slashes.js var stripTrailingSlashes; var init_strip_trailing_slashes = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/strip-trailing-slashes.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/strip-trailing-slashes.js"() { stripTrailingSlashes = (str) => { let i = str.length - 1; let slashesStart = -1; @@ -15451,7 +15451,7 @@ var init_strip_trailing_slashes = __esm({ } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/list.js +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/list.js var list_exports = {}; __export(list_exports, { filesFilter: () => filesFilter, @@ -15459,7 +15459,7 @@ __export(list_exports, { }); var import_node_fs, import_path2, onReadEntryFunction, filesFilter, listFileSync, listFile, list; var init_list = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/list.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/list.js"() { init_esm2(); import_node_fs = __toESM(require("node:fs"), 1); import_path2 = require("path"); @@ -15558,10 +15558,10 @@ var init_list = __esm({ } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/get-write-flag.js +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/get-write-flag.js var import_fs3, platform2, isWindows, O_CREAT, O_TRUNC, O_WRONLY, UV_FS_O_FILEMAP, fMapEnabled, fMapLimit, fMapFlag, getWriteFlag; var init_get_write_flag = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/get-write-flag.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/get-write-flag.js"() { import_fs3 = __toESM(require("fs"), 1); platform2 = process.env.__FAKE_PLATFORM__ || process.platform; isWindows = platform2 === "win32"; @@ -15657,10 +15657,10 @@ var init_esm4 = __esm({ } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/cwd-error.js +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/cwd-error.js var CwdError; var init_cwd_error = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/cwd-error.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/cwd-error.js"() { CwdError = class extends Error { path; code; @@ -15677,10 +15677,10 @@ var init_cwd_error = __esm({ } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/symlink-error.js +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/symlink-error.js var SymlinkError; var init_symlink_error = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/symlink-error.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/symlink-error.js"() { SymlinkError = class extends Error { path; symlink; @@ -15698,10 +15698,10 @@ var init_symlink_error = __esm({ } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/mkdir.js +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/mkdir.js var import_node_fs3, import_promises, import_node_path4, checkCwd, mkdir, mkdir_, onmkdir, checkCwdSync, mkdirSync2; var init_mkdir = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/mkdir.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/mkdir.js"() { init_esm4(); import_node_fs3 = __toESM(require("node:fs"), 1); import_promises = __toESM(require("node:fs/promises"), 1); @@ -15855,10 +15855,10 @@ var init_mkdir = __esm({ } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/strip-absolute-path.js +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/strip-absolute-path.js var import_node_path5, isAbsolute, parse3, stripAbsolutePath; var init_strip_absolute_path = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/strip-absolute-path.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/strip-absolute-path.js"() { import_node_path5 = require("node:path"); ({ isAbsolute, parse: parse3 } = import_node_path5.win32); stripAbsolutePath = (path16) => { @@ -15875,10 +15875,10 @@ var init_strip_absolute_path = __esm({ } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/winchars.js +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/winchars.js var raw, win, toWin, toRaw, encode2, decode; var init_winchars = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/winchars.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/winchars.js"() { raw = ["|", "<", ">", "?", ":"]; win = raw.map((char) => String.fromCharCode(61440 + char.charCodeAt(0))); toWin = new Map(raw.map((char, i) => [char, win[i]])); @@ -15888,16 +15888,16 @@ var init_winchars = __esm({ } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/normalize-unicode.js +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/normalize-unicode.js var normalizeCache, MAX, cache, normalizeUnicode; var init_normalize_unicode = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/normalize-unicode.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/normalize-unicode.js"() { normalizeCache = /* @__PURE__ */ Object.create(null); MAX = 1e4; cache = /* @__PURE__ */ new Set(); normalizeUnicode = (s) => { if (!cache.has(s)) { - normalizeCache[s] = s.normalize("NFD"); + normalizeCache[s] = s.normalize("NFD").toLocaleLowerCase("en").toLocaleUpperCase("en"); } else { cache.delete(s); } @@ -15917,10 +15917,10 @@ var init_normalize_unicode = __esm({ } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/path-reservations.js +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/path-reservations.js var import_node_path6, platform3, isWindows2, getDirs, PathReservations; var init_path_reservations = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/path-reservations.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/path-reservations.js"() { import_node_path6 = require("node:path"); init_normalize_unicode(); init_strip_trailing_slashes(); @@ -15948,7 +15948,7 @@ var init_path_reservations = __esm({ #running = /* @__PURE__ */ new Set(); reserve(paths, fn2) { paths = isWindows2 ? ["win32 parallelization disabled"] : paths.map((p) => { - return stripTrailingSlashes((0, import_node_path6.join)(normalizeUnicode(p))).toLowerCase(); + return stripTrailingSlashes((0, import_node_path6.join)(normalizeUnicode(p))); }); const dirs = new Set(paths.map((path16) => getDirs(path16)).reduce((a, b) => a.concat(b))); this.#reservations.set(fn2, { dirs, paths }); @@ -16057,10 +16057,10 @@ var init_path_reservations = __esm({ } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/unpack.js -var import_node_assert, import_node_crypto, import_node_fs4, import_node_path7, ONENTRY, CHECKFS, CHECKFS2, ISREUSABLE, MAKEFS, FILE, DIRECTORY, LINK, SYMLINK, HARDLINK, UNSUPPORTED, CHECKPATH, MKDIR, ONERROR, PENDING, PEND, UNPEND, ENDED2, MAYBECLOSE, SKIP, DOCHOWN, UID, GID, CHECKED_CWD, platform4, isWindows3, DEFAULT_MAX_DEPTH, unlinkFile, unlinkFileSync, uint32, Unpack, callSync, UnpackSync; +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/unpack.js +var import_node_assert, import_node_crypto, import_node_fs4, import_node_path7, ONENTRY, CHECKFS, CHECKFS2, ISREUSABLE, MAKEFS, FILE, DIRECTORY, LINK, SYMLINK, HARDLINK, UNSUPPORTED, CHECKPATH, STRIPABSOLUTEPATH, MKDIR, ONERROR, PENDING, PEND, UNPEND, ENDED2, MAYBECLOSE, SKIP, DOCHOWN, UID, GID, CHECKED_CWD, platform4, isWindows3, DEFAULT_MAX_DEPTH, unlinkFile, unlinkFileSync, uint32, Unpack, callSync, UnpackSync; var init_unpack = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/unpack.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/unpack.js"() { init_esm2(); import_node_assert = __toESM(require("node:assert"), 1); import_node_crypto = require("node:crypto"); @@ -16085,6 +16085,7 @@ var init_unpack = __esm({ HARDLINK = Symbol("hardlink"); UNSUPPORTED = Symbol("unsupported"); CHECKPATH = Symbol("checkPath"); + STRIPABSOLUTEPATH = Symbol("stripAbsolutePath"); MKDIR = Symbol("mkdir"); ONERROR = Symbol("onError"); PENDING = Symbol("pending"); @@ -16212,6 +16213,43 @@ var init_unpack = __esm({ this.emit("end"); } } + // return false if we need to skip this file + // return true if the field was successfully sanitized + [STRIPABSOLUTEPATH](entry, field) { + const p = entry[field]; + if (!p || this.preservePaths) + return true; + const parts = p.split("/"); + if (parts.includes("..") || /* c8 ignore next */ + isWindows3 && /^[a-z]:\.\.$/i.test(parts[0] ?? "")) { + if (field === "path") { + this.warn("TAR_ENTRY_ERROR", `${field} contains '..'`, { + entry, + [field]: p + }); + return false; + } else { + const entryDir = import_node_path7.default.posix.dirname(entry.path); + const resolved = import_node_path7.default.posix.normalize(import_node_path7.default.posix.join(entryDir, p)); + if (resolved.startsWith("../") || resolved === "..") { + this.warn("TAR_ENTRY_ERROR", `${field} escapes extraction directory`, { + entry, + [field]: p + }); + return false; + } + } + } + const [root, stripped] = stripAbsolutePath(p); + if (root) { + entry[field] = String(stripped); + this.warn("TAR_ENTRY_INFO", `stripping ${root} from absolute ${field}`, { + entry, + [field]: p + }); + } + return true; + } [CHECKPATH](entry) { const p = normalizeWindowsPath(entry.path); const parts = p.split("/"); @@ -16239,23 +16277,8 @@ var init_unpack = __esm({ }); return false; } - if (!this.preservePaths) { - if (parts.includes("..") || /* c8 ignore next */ - isWindows3 && /^[a-z]:\.\.$/i.test(parts[0] ?? "")) { - this.warn("TAR_ENTRY_ERROR", `path contains '..'`, { - entry, - path: p - }); - return false; - } - const [root, stripped] = stripAbsolutePath(p); - if (root) { - entry.path = String(stripped); - this.warn("TAR_ENTRY_INFO", `stripping ${root} from absolute path`, { - entry, - path: p - }); - } + if (!this[STRIPABSOLUTEPATH](entry, "path") || !this[STRIPABSOLUTEPATH](entry, "linkpath")) { + return false; } if (import_node_path7.default.isAbsolute(entry.path)) { entry.absolute = normalizeWindowsPath(import_node_path7.default.resolve(entry.path)); @@ -16741,14 +16764,14 @@ var init_unpack = __esm({ } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/extract.js +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/extract.js var extract_exports = {}; __export(extract_exports, { extract: () => extract }); var import_node_fs5, extractFileSync, extractFile, extract; var init_extract = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/extract.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/extract.js"() { init_esm2(); import_node_fs5 = __toESM(require("node:fs"), 1); init_list(); @@ -18494,10 +18517,10 @@ ${nodePath ? "$env:NODE_PATH=$env_node_path\n" : ""}${prependPath ? "$env:PATH=$ } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/mode-fix.js +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/mode-fix.js var modeFix; var init_mode_fix = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/mode-fix.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/mode-fix.js"() { modeFix = (mode, isDir, portable) => { mode &= 4095; if (portable) { @@ -18519,10 +18542,10 @@ var init_mode_fix = __esm({ } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/write-entry.js +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/write-entry.js var import_fs11, import_path9, prefixPath, maxReadSize, PROCESS, FILE2, DIRECTORY2, SYMLINK2, HARDLINK2, HEADER, READ2, LSTAT, ONLSTAT, ONREAD, ONREADLINK, OPENFILE, ONOPENFILE, CLOSE, MODE, AWAITDRAIN, ONDRAIN, PREFIX, WriteEntry, WriteEntrySync, WriteEntryTar, getType; var init_write_entry = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/write-entry.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/write-entry.js"() { import_fs11 = __toESM(require("fs"), 1); init_esm(); import_path9 = __toESM(require("path"), 1); @@ -19488,10 +19511,10 @@ var init_esm5 = __esm({ } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/pack.js +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/pack.js var import_fs12, import_path10, PackJob, EOF2, ONSTAT, ENDED3, QUEUE2, CURRENT, PROCESS2, PROCESSING, PROCESSJOB, JOBS, JOBDONE, ADDFSENTRY, ADDTARENTRY, STAT, READDIR, ONREADDIR, PIPE, ENTRY, ENTRYOPT, WRITEENTRYCLASS, WRITE, ONDRAIN2, Pack, PackSync; var init_pack = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/pack.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/pack.js"() { import_fs12 = __toESM(require("fs"), 1); init_write_entry(); init_esm(); @@ -19537,6 +19560,7 @@ var init_pack = __esm({ WRITE = Symbol("write"); ONDRAIN2 = Symbol("ondrain"); Pack = class extends Minipass { + sync = false; opt; cwd; maxReadSize; @@ -19709,6 +19733,8 @@ var init_pack = __esm({ job.stat = stat; if (!this.filter(job.path, stat)) { job.ignore = true; + } else if (stat.isFile() && stat.nlink > 1 && job === this[CURRENT] && !this.linkCache.get(`${stat.dev}:${stat.ino}`) && !this.sync) { + this[PROCESSJOB](job); } this[PROCESS2](); } @@ -19919,14 +19945,14 @@ var init_pack = __esm({ } }); -// .yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/create.js +// .yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/create.js var create_exports = {}; __export(create_exports, { create: () => create }); var import_node_path8, createFileSync, createFile, addFilesSync, addFilesAsync, createSync, createAsync, create; var init_create = __esm({ - ".yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip/node_modules/tar/dist/esm/create.js"() { + ".yarn/cache/tar-npm-7.5.6-955ec951c2-08af380703.zip/node_modules/tar/dist/esm/create.js"() { init_esm2(); import_node_path8 = __toESM(require("node:path"), 1); init_list(); @@ -21677,7 +21703,7 @@ function String2(descriptor, ...args) { } // package.json -var version = "0.34.5"; +var version = "0.34.6"; // sources/Engine.ts var import_fs6 = __toESM(require("fs")); @@ -21691,7 +21717,7 @@ var import_valid4 = __toESM(require_valid2()); var config_default = { definitions: { npm: { - default: "11.6.3+sha1.3f581bca37cbdadf2be04346c0e5b0be96cdd54b", + default: "11.8.0+sha1.d1bc924deb3b4d412055b1755098a70bf8a4713b", fetchLatestFrom: { type: "npm", package: "npm" @@ -21728,7 +21754,7 @@ var config_default = { } }, pnpm: { - default: "10.23.0+sha1.b4a44ab0dc2adf2e36371d11d8eb0dc78ffc976c", + default: "10.28.1+sha1.20817ab95fb7f61154ba5ff3bcb61f27defb6142", fetchLatestFrom: { type: "npm", package: "pnpm" @@ -21809,7 +21835,7 @@ var config_default = { package: "yarn" }, transparent: { - default: "4.11.0+sha224.209a3e277c6bbc03df6e4206fbfcb0c1621c27ecf0688f79a0c619f0", + default: "4.12.0+sha224.877304a94a6946ab1d58a358df5ff8af2f7c9d86ea506f05f5c9df05", commands: [ [ "yarn", diff --git a/deps/corepack/package.json b/deps/corepack/package.json index 704128ccd43f5f..ab39b1d2dd8e20 100644 --- a/deps/corepack/package.json +++ b/deps/corepack/package.json @@ -1,6 +1,6 @@ { "name": "corepack", - "version": "0.34.5", + "version": "0.34.6", "homepage": "https://github.com/nodejs/corepack#readme", "bugs": { "url": "https://github.com/nodejs/corepack/issues" @@ -34,7 +34,7 @@ "proxy-from-env": "^1.1.0", "semver": "^7.6.3", "supports-color": "^10.0.0", - "tar": "^7.4.0", + "tar": "^7.5.4", "tsx": "^4.16.2", "typescript": "^5.7.3", "undici": "^6.21.2", From cc4f7af6f364f6dfcf2b2297558fc9a40c321499 Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Thu, 19 Feb 2026 10:49:43 +0100 Subject: [PATCH 06/12] build: skip sscache action on non-main branches MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit To reduce cache thrashing. PR-URL: https://github.com/nodejs/node/pull/61790 Refs: https://github.com/nodejs/node/issues/61436 Reviewed-By: Marco Ippolito Reviewed-By: Tierney Cyren Reviewed-By: Michaël Zasso Reviewed-By: Luigi Pinca Reviewed-By: Antoine du Hamel --- .github/workflows/build-tarball.yml | 7 ++++--- .github/workflows/coverage-linux-without-intl.yml | 7 ++++--- .github/workflows/coverage-linux.yml | 7 ++++--- .github/workflows/test-linux.yml | 7 ++++--- .github/workflows/test-macos.yml | 7 ++++--- 5 files changed, 20 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build-tarball.yml b/.github/workflows/build-tarball.yml index 27027c49d9f93c..254d11eb17a979 100644 --- a/.github/workflows/build-tarball.yml +++ b/.github/workflows/build-tarball.yml @@ -66,9 +66,9 @@ jobs: needs: build-tarball runs-on: ubuntu-24.04 env: - CC: sccache clang - CXX: sccache clang++ - SCCACHE_GHA_ENABLED: 'true' + CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang + CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++ + SCCACHE_GHA_ENABLED: ${{ github.base_ref == 'main' || github.ref_name == 'main' }} steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: @@ -78,6 +78,7 @@ jobs: with: python-version: ${{ env.PYTHON_VERSION }} - name: Set up sccache + if: github.base_ref == 'main' || github.ref_name == 'main' uses: Mozilla-Actions/sccache-action@7d986dd989559c6ecdb630a3fd2557667be217ad # v0.0.9 with: version: v0.10.0 diff --git a/.github/workflows/coverage-linux-without-intl.yml b/.github/workflows/coverage-linux-without-intl.yml index 4de0a5e4abc2e0..0c638c7f622688 100644 --- a/.github/workflows/coverage-linux-without-intl.yml +++ b/.github/workflows/coverage-linux-without-intl.yml @@ -36,9 +36,9 @@ concurrency: env: PYTHON_VERSION: '3.12' FLAKY_TESTS: keep_retrying - CC: sccache clang - CXX: sccache clang++ - SCCACHE_GHA_ENABLED: 'true' + CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang + CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++ + SCCACHE_GHA_ENABLED: ${{ github.base_ref == 'main' || github.ref_name == 'main' }} permissions: contents: read @@ -57,6 +57,7 @@ jobs: with: python-version: ${{ env.PYTHON_VERSION }} - name: Set up sccache + if: github.base_ref == 'main' || github.ref_name == 'main' uses: Mozilla-Actions/sccache-action@7d986dd989559c6ecdb630a3fd2557667be217ad # v0.0.9 with: version: v0.10.0 diff --git a/.github/workflows/coverage-linux.yml b/.github/workflows/coverage-linux.yml index 0abe2092084156..ff70c99cce2275 100644 --- a/.github/workflows/coverage-linux.yml +++ b/.github/workflows/coverage-linux.yml @@ -36,9 +36,9 @@ concurrency: env: PYTHON_VERSION: '3.12' FLAKY_TESTS: keep_retrying - CC: sccache clang - CXX: sccache clang++ - SCCACHE_GHA_ENABLED: 'true' + CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang + CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++ + SCCACHE_GHA_ENABLED: ${{ github.base_ref == 'main' || github.ref_name == 'main' }} permissions: contents: read @@ -57,6 +57,7 @@ jobs: with: python-version: ${{ env.PYTHON_VERSION }} - name: Set up sccache + if: github.base_ref == 'main' || github.ref_name == 'main' uses: Mozilla-Actions/sccache-action@7d986dd989559c6ecdb630a3fd2557667be217ad # v0.0.9 with: version: v0.10.0 diff --git a/.github/workflows/test-linux.yml b/.github/workflows/test-linux.yml index bd0591bcf1f1c0..182cac35036e43 100644 --- a/.github/workflows/test-linux.yml +++ b/.github/workflows/test-linux.yml @@ -27,9 +27,9 @@ concurrency: env: PYTHON_VERSION: '3.12' FLAKY_TESTS: keep_retrying - CC: sccache clang - CXX: sccache clang++ - SCCACHE_GHA_ENABLED: 'true' + CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang + CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++ + SCCACHE_GHA_ENABLED: ${{ github.base_ref == 'main' || github.ref_name == 'main' }} permissions: contents: read @@ -47,6 +47,7 @@ jobs: with: python-version: ${{ env.PYTHON_VERSION }} - name: Set up sccache + if: github.base_ref == 'main' || github.ref_name == 'main' uses: Mozilla-Actions/sccache-action@7d986dd989559c6ecdb630a3fd2557667be217ad # v0.0.9 with: version: v0.10.0 diff --git a/.github/workflows/test-macos.yml b/.github/workflows/test-macos.yml index 182c6c8d600418..13e1f0d54671fc 100644 --- a/.github/workflows/test-macos.yml +++ b/.github/workflows/test-macos.yml @@ -40,9 +40,9 @@ jobs: if: github.event.pull_request.draft == false runs-on: macos-14 env: - CC: sccache gcc - CXX: sccache g++ - SCCACHE_GHA_ENABLED: 'true' + CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} gcc + CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} g++ + SCCACHE_GHA_ENABLED: ${{ github.base_ref == 'main' || github.ref_name == 'main' }} steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: @@ -52,6 +52,7 @@ jobs: with: python-version: ${{ env.PYTHON_VERSION }} - name: Set up sccache + if: github.base_ref == 'main' || github.ref_name == 'main' uses: Mozilla-Actions/sccache-action@7d986dd989559c6ecdb630a3fd2557667be217ad # v0.0.9 with: version: v0.10.0 From 64beca5e013940f47df51722ae57c549d65c5b02 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Tue, 10 Feb 2026 10:12:09 +0100 Subject: [PATCH 07/12] tools: use ubuntu-slim runner in GHA MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/61734 Reviewed-By: René Reviewed-By: Michaël Zasso Reviewed-By: Colin Ihrig Reviewed-By: Luigi Pinca Reviewed-By: Rafael Gonzaga --- .github/workflows/auto-start-ci.yml | 4 ++-- .github/workflows/build-tarball.yml | 2 +- .github/workflows/create-release-proposal.yml | 2 +- .github/workflows/doc.yml | 2 +- .github/workflows/license-builder.yml | 2 +- .github/workflows/lint-release-proposal.yml | 2 +- .github/workflows/linters.yml | 19 ++++++++++--------- .github/workflows/major-release.yml | 3 ++- .github/workflows/notify-on-review-wanted.yml | 1 + .github/workflows/post-release.yml | 2 +- .github/workflows/scorecard.yml | 1 + .github/workflows/timezone-update.yml | 2 +- .github/workflows/tools.yml | 2 +- .github/workflows/update-openssl.yml | 2 +- .github/workflows/update-v8.yml | 2 +- .github/workflows/update-wpt.yml | 2 +- 16 files changed, 27 insertions(+), 23 deletions(-) diff --git a/.github/workflows/auto-start-ci.yml b/.github/workflows/auto-start-ci.yml index 72d248dea093a3..a1940a0a78f8d0 100644 --- a/.github/workflows/auto-start-ci.yml +++ b/.github/workflows/auto-start-ci.yml @@ -21,7 +21,7 @@ jobs: permissions: pull-requests: read if: github.repository == 'nodejs/node' - runs-on: ubuntu-latest + runs-on: ubuntu-slim outputs: numbers: ${{ steps.get_prs_for_ci.outputs.numbers }} steps: @@ -43,7 +43,7 @@ jobs: pull-requests: write needs: get-prs-for-ci if: needs.get-prs-for-ci.outputs.numbers != '' - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: diff --git a/.github/workflows/build-tarball.yml b/.github/workflows/build-tarball.yml index 254d11eb17a979..1d902f8dfabee4 100644 --- a/.github/workflows/build-tarball.yml +++ b/.github/workflows/build-tarball.yml @@ -37,7 +37,7 @@ permissions: jobs: build-tarball: if: github.event.pull_request.draft == false - runs-on: ubuntu-24.04 + runs-on: ubuntu-slim steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: diff --git a/.github/workflows/create-release-proposal.yml b/.github/workflows/create-release-proposal.yml index b9aa3517f3147b..8c466e0339f99f 100644 --- a/.github/workflows/create-release-proposal.yml +++ b/.github/workflows/create-release-proposal.yml @@ -31,7 +31,7 @@ jobs: RELEASE_BRANCH: v${{ inputs.release-line }}.x RELEASE_DATE: ${{ inputs.release-date }} RELEASE_LINE: ${{ inputs.release-line }} - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml index 3066023aaaa8e2..fff0439dd53149 100644 --- a/.github/workflows/doc.yml +++ b/.github/workflows/doc.yml @@ -22,7 +22,7 @@ permissions: jobs: build-docs: if: github.event.pull_request.draft == false - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: diff --git a/.github/workflows/license-builder.yml b/.github/workflows/license-builder.yml index c62e9b1f08fe54..6ece8739ba9e63 100644 --- a/.github/workflows/license-builder.yml +++ b/.github/workflows/license-builder.yml @@ -15,7 +15,7 @@ jobs: contents: write # for gr2m/create-or-update-pull-request-action to push local changes pull-requests: write # for gr2m/create-or-update-pull-request-action to create a PR if: github.repository == 'nodejs/node' - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: diff --git a/.github/workflows/lint-release-proposal.yml b/.github/workflows/lint-release-proposal.yml index 9d8ba5998a7a5c..9111de77c3e162 100644 --- a/.github/workflows/lint-release-proposal.yml +++ b/.github/workflows/lint-release-proposal.yml @@ -18,7 +18,7 @@ permissions: jobs: lint-release-commit: - runs-on: ubuntu-latest + runs-on: ubuntu-slim permissions: pull-requests: read steps: diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index bd462ae1a84e7d..8f45f64bcbeb14 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -23,7 +23,7 @@ permissions: jobs: lint-addon-docs: if: github.event.pull_request.draft == false - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: @@ -38,7 +38,7 @@ jobs: run: NODE=$(command -v node) make lint-addon-docs lint-cpp: if: github.event.pull_request.draft == false - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: @@ -53,7 +53,7 @@ jobs: run: make lint-cpp format-cpp: if: ${{ github.event.pull_request && github.event.pull_request.draft == false && github.base_ref == github.event.repository.default_branch }} - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: @@ -91,7 +91,7 @@ jobs: fi lint-js-and-md: if: github.event.pull_request.draft == false - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: @@ -116,7 +116,7 @@ jobs: NODE_RELEASED_VERSIONS: ${{ steps.get-released-versions.outputs.NODE_RELEASED_VERSIONS }} lint-py: if: github.event.pull_request.draft == false - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: @@ -133,7 +133,7 @@ jobs: make lint-py lint-yaml: if: github.event.pull_request.draft == false - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: @@ -151,7 +151,7 @@ jobs: lint-sh: if: github.event.pull_request.draft == false - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: @@ -161,6 +161,7 @@ jobs: run: tools/lint-sh.mjs . lint-codeowners: if: github.event.pull_request.draft == false + # cannot use ubuntu-slim here because mszostok/codeowners-validator is dockerized runs-on: ubuntu-latest steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 @@ -171,7 +172,7 @@ jobs: checks: files,duppatterns lint-pr-url: if: ${{ github.event.pull_request }} - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: @@ -180,7 +181,7 @@ jobs: # GH Actions squashes all PR commits, HEAD^ refers to the base branch. - run: git diff HEAD^ HEAD -G"pr-url:" -- "*.md" | ./tools/lint-pr-url.mjs ${{ github.event.pull_request.html_url }} lint-readme: - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: diff --git a/.github/workflows/major-release.yml b/.github/workflows/major-release.yml index a90be1798fac85..b65917f89e74b2 100644 --- a/.github/workflows/major-release.yml +++ b/.github/workflows/major-release.yml @@ -9,7 +9,8 @@ permissions: jobs: create-issue: - runs-on: ubuntu-latest + if: github.repository == 'nodejs/node' + runs-on: ubuntu-slim permissions: issues: write steps: diff --git a/.github/workflows/notify-on-review-wanted.yml b/.github/workflows/notify-on-review-wanted.yml index 96eee3096d8b69..b6c9fe6e7f5d5b 100644 --- a/.github/workflows/notify-on-review-wanted.yml +++ b/.github/workflows/notify-on-review-wanted.yml @@ -12,6 +12,7 @@ jobs: notifyOnReviewWanted: name: Notify on Review Wanted if: github.repository == 'nodejs/node' && github.event.label.name == 'review wanted' + # cannot use ubuntu-slim here because rtCamp/action-slack-notify is dockerized runs-on: ubuntu-latest steps: - name: Determine PR or Issue diff --git a/.github/workflows/post-release.yml b/.github/workflows/post-release.yml index 0f877b3c639bed..87320f3f51da45 100644 --- a/.github/workflows/post-release.yml +++ b/.github/workflows/post-release.yml @@ -16,7 +16,7 @@ permissions: jobs: post-release-actions: if: github.repository == 'nodejs/node' - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - name: Trigger update-links workflow on nodejs/release-cloudflare-worker run: | diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index c3e579d3be0c9d..2466bea1802cf1 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -21,6 +21,7 @@ permissions: read-all jobs: analysis: name: Scorecard analysis + # cannot use ubuntu-slim here because ossf/scorecard-action is dockerized runs-on: ubuntu-latest permissions: # Needed to upload the results to code-scanning dashboard. diff --git a/.github/workflows/timezone-update.yml b/.github/workflows/timezone-update.yml index e951b848ad4155..d9e80500c25794 100644 --- a/.github/workflows/timezone-update.yml +++ b/.github/workflows/timezone-update.yml @@ -16,7 +16,7 @@ jobs: pull-requests: write # to create a PR (gr2m/create-or-update-pull-request-action) if: github.repository == 'nodejs/node' - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - name: Checkout nodejs/node diff --git a/.github/workflows/tools.yml b/.github/workflows/tools.yml index a7a597d040c300..cb6dbb0bcee7d1 100644 --- a/.github/workflows/tools.yml +++ b/.github/workflows/tools.yml @@ -50,7 +50,7 @@ permissions: jobs: tools-deps-update: if: github.repository == 'nodejs/node' || github.event_name == 'workflow_dispatch' - runs-on: ubuntu-latest + runs-on: ubuntu-slim strategy: fail-fast: false # Prevent other jobs from aborting if one fails matrix: diff --git a/.github/workflows/update-openssl.yml b/.github/workflows/update-openssl.yml index 37f25011eaa3f9..bcb2f471d49d8d 100644 --- a/.github/workflows/update-openssl.yml +++ b/.github/workflows/update-openssl.yml @@ -12,7 +12,7 @@ permissions: jobs: openssl-update: if: github.repository == 'nodejs/node' - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: diff --git a/.github/workflows/update-v8.yml b/.github/workflows/update-v8.yml index 3089efd725ce3a..431532aba6fdbe 100644 --- a/.github/workflows/update-v8.yml +++ b/.github/workflows/update-v8.yml @@ -14,7 +14,7 @@ permissions: jobs: v8-update: if: github.repository == 'nodejs/node' - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: diff --git a/.github/workflows/update-wpt.yml b/.github/workflows/update-wpt.yml index 7df33029bcdf65..96a37b58eb671d 100644 --- a/.github/workflows/update-wpt.yml +++ b/.github/workflows/update-wpt.yml @@ -20,7 +20,7 @@ env: jobs: wpt-subsystem-update: if: github.repository == 'nodejs/node' || github.event_name == 'workflow_dispatch' - runs-on: ubuntu-latest + runs-on: ubuntu-slim strategy: fail-fast: false matrix: From f260e401272eccc5fc7f84896778549e38743082 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Thu, 12 Feb 2026 11:59:34 +0100 Subject: [PATCH 08/12] tools: use ubuntu-slim runner in GHA PR-URL: https://github.com/nodejs/node/pull/61759 Reviewed-By: Colin Ihrig Reviewed-By: Luigi Pinca --- .github/workflows/daily-wpt-fyi.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/daily-wpt-fyi.yml b/.github/workflows/daily-wpt-fyi.yml index cf438f775dd449..4c64be02a71d9e 100644 --- a/.github/workflows/daily-wpt-fyi.yml +++ b/.github/workflows/daily-wpt-fyi.yml @@ -21,7 +21,7 @@ permissions: jobs: collect-versions: if: github.repository == 'nodejs/node' || github.event_name == 'workflow_dispatch' - runs-on: ubuntu-latest + runs-on: ubuntu-slim outputs: matrix: ${{ steps.query.outputs.matrix }} steps: From 1abada9c341585f0e51ea7a95847599d60f13dbf Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Sun, 22 Feb 2026 13:04:40 +0100 Subject: [PATCH 09/12] tools: avoid building twice in coverage jobs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/61899 Reviewed-By: Michaël Zasso Reviewed-By: Chengzhong Wu Reviewed-By: Colin Ihrig Reviewed-By: Luigi Pinca --- .github/workflows/coverage-linux-without-intl.yml | 6 +++--- .github/workflows/coverage-linux.yml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/coverage-linux-without-intl.yml b/.github/workflows/coverage-linux-without-intl.yml index 0c638c7f622688..c1de0223c2af88 100644 --- a/.github/workflows/coverage-linux-without-intl.yml +++ b/.github/workflows/coverage-linux-without-intl.yml @@ -65,11 +65,11 @@ jobs: run: npx envinfo - name: Install gcovr run: pip install gcovr==7.2 - - name: Build - run: make build-ci -j4 V=1 CONFIG_FLAGS="--error-on-warn --coverage --without-intl" + - name: Configure + run: ./configure --verbose --error-on-warn --coverage --without-intl # TODO(bcoe): fix the couple tests that fail with the inspector enabled. # The cause is most likely coverage's use of the inspector. - - name: Test + - name: Build and test run: NODE_V8_COVERAGE=coverage/tmp make test-cov -j4 V=1 TEST_CI_ARGS="-p dots --measure-flakiness 9" || exit 0 - name: Report JS run: npx c8 report --check-coverage diff --git a/.github/workflows/coverage-linux.yml b/.github/workflows/coverage-linux.yml index ff70c99cce2275..10f3cff6f5e142 100644 --- a/.github/workflows/coverage-linux.yml +++ b/.github/workflows/coverage-linux.yml @@ -65,11 +65,11 @@ jobs: run: npx envinfo - name: Install gcovr run: pip install gcovr==7.2 - - name: Build - run: make build-ci -j4 V=1 CONFIG_FLAGS="--error-on-warn --coverage" + - name: Configure + run: ./configure --verbose --error-on-warn --coverage # TODO(bcoe): fix the couple tests that fail with the inspector enabled. # The cause is most likely coverage's use of the inspector. - - name: Test + - name: Build and test run: NODE_V8_COVERAGE=coverage/tmp make test-cov -j4 V=1 TEST_CI_ARGS="-p dots --measure-flakiness 9" || exit 0 - name: Report JS run: npx c8 report --check-coverage From 5cb26f8697f4839144c52ffa7376a4d6c4db0029 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Sun, 22 Feb 2026 22:47:41 +0100 Subject: [PATCH 10/12] tools: switch to ARM runners on GHA jobs PR-URL: https://github.com/nodejs/node/pull/61903 Reviewed-By: Colin Ihrig Reviewed-By: Matteo Collina --- .github/workflows/build-tarball.yml | 2 +- .github/workflows/coverage-linux.yml | 2 +- .github/workflows/daily-wpt-fyi.yml | 2 +- .github/workflows/daily.yml | 2 +- .github/workflows/linters.yml | 1 + .github/workflows/notify-on-push.yml | 6 ++++-- .github/workflows/notify-on-review-wanted.yml | 2 +- .github/workflows/scorecard.yml | 2 +- .github/workflows/test-internet.yml | 2 +- 9 files changed, 12 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build-tarball.yml b/.github/workflows/build-tarball.yml index 1d902f8dfabee4..d5e394586de108 100644 --- a/.github/workflows/build-tarball.yml +++ b/.github/workflows/build-tarball.yml @@ -64,7 +64,7 @@ jobs: compression-level: 0 test-tarball-linux: needs: build-tarball - runs-on: ubuntu-24.04 + runs-on: ubuntu-24.04-arm env: CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++ diff --git a/.github/workflows/coverage-linux.yml b/.github/workflows/coverage-linux.yml index 10f3cff6f5e142..0095d82c861751 100644 --- a/.github/workflows/coverage-linux.yml +++ b/.github/workflows/coverage-linux.yml @@ -47,7 +47,7 @@ jobs: coverage-linux: # Disabled because "Report JS" step was crashing. if: false - runs-on: ubuntu-24.04 + runs-on: ubuntu-24.04-arm steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: diff --git a/.github/workflows/daily-wpt-fyi.yml b/.github/workflows/daily-wpt-fyi.yml index 4c64be02a71d9e..78f34e9509fce2 100644 --- a/.github/workflows/daily-wpt-fyi.yml +++ b/.github/workflows/daily-wpt-fyi.yml @@ -36,7 +36,7 @@ jobs: matrix: node-version: ${{ fromJSON(needs.collect-versions.outputs.matrix) }} fail-fast: false - runs-on: ubuntu-latest + runs-on: ubuntu-24.04-arm steps: - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 diff --git a/.github/workflows/daily.yml b/.github/workflows/daily.yml index b7933bf92b58f2..00c35a468f3e86 100644 --- a/.github/workflows/daily.yml +++ b/.github/workflows/daily.yml @@ -13,7 +13,7 @@ permissions: jobs: build-lto: - runs-on: ubuntu-24.04 + runs-on: ubuntu-24.04-arm steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index 8f45f64bcbeb14..756ce71042c13b 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -162,6 +162,7 @@ jobs: lint-codeowners: if: github.event.pull_request.draft == false # cannot use ubuntu-slim here because mszostok/codeowners-validator is dockerized + # cannot use ubuntu-24.04-arm here because the docker image is x86 only runs-on: ubuntu-latest steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 diff --git a/.github/workflows/notify-on-push.yml b/.github/workflows/notify-on-push.yml index a05738f0c5d3f5..2e0878700db541 100644 --- a/.github/workflows/notify-on-push.yml +++ b/.github/workflows/notify-on-push.yml @@ -11,7 +11,8 @@ jobs: notifyOnForcePush: name: Notify on Force Push on `main` if: github.repository == 'nodejs/node' && github.event.forced - runs-on: ubuntu-latest + # cannot use ubuntu-slim here because rtCamp/action-slack-notify is dockerized + runs-on: ubuntu-24.04-arm steps: - name: Slack Notification uses: rtCamp/action-slack-notify@e31e87e03dd19038e411e38ae27cbad084a90661 # 2.3.3 @@ -30,9 +31,10 @@ jobs: notifyOnMissingMetadata: name: Notify on Push on `main` that lacks metadata if: github.repository == 'nodejs/node' - runs-on: ubuntu-latest permissions: pull-requests: write + # cannot use ubuntu-slim here because rtCamp/action-slack-notify is dockerized + runs-on: ubuntu-24.04-arm steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: diff --git a/.github/workflows/notify-on-review-wanted.yml b/.github/workflows/notify-on-review-wanted.yml index b6c9fe6e7f5d5b..1d3124e336b80b 100644 --- a/.github/workflows/notify-on-review-wanted.yml +++ b/.github/workflows/notify-on-review-wanted.yml @@ -13,7 +13,7 @@ jobs: name: Notify on Review Wanted if: github.repository == 'nodejs/node' && github.event.label.name == 'review wanted' # cannot use ubuntu-slim here because rtCamp/action-slack-notify is dockerized - runs-on: ubuntu-latest + runs-on: ubuntu-24.04-arm steps: - name: Determine PR or Issue id: define-message diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 2466bea1802cf1..851d55a1e36d12 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -22,7 +22,7 @@ jobs: analysis: name: Scorecard analysis # cannot use ubuntu-slim here because ossf/scorecard-action is dockerized - runs-on: ubuntu-latest + runs-on: ubuntu-24.04-arm permissions: # Needed to upload the results to code-scanning dashboard. security-events: write diff --git a/.github/workflows/test-internet.yml b/.github/workflows/test-internet.yml index f3b782fc1af4dd..a94737b2330fc2 100644 --- a/.github/workflows/test-internet.yml +++ b/.github/workflows/test-internet.yml @@ -42,7 +42,7 @@ permissions: jobs: test-internet: if: github.repository == 'nodejs/node' || github.event_name != 'schedule' - runs-on: ubuntu-24.04 + runs-on: ubuntu-24.04-arm steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: From 3f37e22c0430bafc022172a2244e1904301932f8 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Sun, 22 Feb 2026 00:38:44 +0100 Subject: [PATCH 11/12] test: mark `test-strace-openat-openssl` as flaky PR-URL: https://github.com/nodejs/node/pull/61921 --- test/parallel/parallel.status | 1 + 1 file changed, 1 insertion(+) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 432173e672fb9e..fa4002e2649bd7 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -46,6 +46,7 @@ test-worker-nearheaplimit-deadlock: PASS, FLAKY [$system==win32 && $arch==arm64] [$system==linux] +test-strace-openat-openssl: PASS, FLAKY # https://github.com/nodejs/node/issues/54803 test-performance-function: PASS, FLAKY # https://github.com/nodejs/node/issues/54346 From 8df6a5ff09eee1dd7079e91b01adbfe8b246fdb9 Mon Sep 17 00:00:00 2001 From: "Node.js GitHub Bot" Date: Sun, 22 Feb 2026 18:02:49 -0500 Subject: [PATCH 12/12] 2026-02-24, Version 20.20.1 'Iron' (LTS) Notable changes: PR-URL: https://github.com/nodejs/node/pull/61946 --- CHANGELOG.md | 3 ++- doc/changelogs/CHANGELOG_V20.md | 21 +++++++++++++++++++++ src/node_version.h | 2 +- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 73afe4d8089419..52becc19495b2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,7 +35,8 @@ release. -20.20.0
+20.20.1
+20.20.0
20.19.6
20.19.5
20.19.4
diff --git a/doc/changelogs/CHANGELOG_V20.md b/doc/changelogs/CHANGELOG_V20.md index 1899bda353a821..8fb1994555cdbd 100644 --- a/doc/changelogs/CHANGELOG_V20.md +++ b/doc/changelogs/CHANGELOG_V20.md @@ -9,6 +9,7 @@ +20.20.1
20.20.0
20.19.6
20.19.5
@@ -76,6 +77,26 @@ * [io.js](CHANGELOG_IOJS.md) * [Archive](CHANGELOG_ARCHIVE.md) + + +## 2026-02-24, Version 20.20.1 'Iron' (LTS), @aduh95 + +### Notable Changes + +### Commits + +* \[[`cc4f7af6f3`](https://github.com/nodejs/node/commit/cc4f7af6f3)] - **build**: skip sscache action on non-main branches (Joyee Cheung) [#61790](https://github.com/nodejs/node/pull/61790) +* \[[`2ea16d3bd6`](https://github.com/nodejs/node/commit/2ea16d3bd6)] - **deps**: update corepack to 0.34.6 (Node.js GitHub Bot) [#61510](https://github.com/nodejs/node/pull/61510) +* \[[`622f973d1c`](https://github.com/nodejs/node/commit/622f973d1c)] - **deps**: update corepack to 0.34.5 (Node.js GitHub Bot) [#60842](https://github.com/nodejs/node/pull/60842) +* \[[`2cd265d8b9`](https://github.com/nodejs/node/commit/2cd265d8b9)] - **deps**: update corepack to 0.34.4 (Node.js GitHub Bot) [#60643](https://github.com/nodejs/node/pull/60643) +* \[[`65e839687b`](https://github.com/nodejs/node/commit/65e839687b)] - **deps**: update corepack to 0.34.2 (Node.js GitHub Bot) [#60550](https://github.com/nodejs/node/pull/60550) +* \[[`8fdde5d110`](https://github.com/nodejs/node/commit/8fdde5d110)] - **doc**: fix v20 changelog after security release (Marco Ippolito) [#61371](https://github.com/nodejs/node/pull/61371) +* \[[`3f37e22c04`](https://github.com/nodejs/node/commit/3f37e22c04)] - **test**: mark `test-strace-openat-openssl` as flaky (Antoine du Hamel) [#61921](https://github.com/nodejs/node/pull/61921) +* \[[`5cb26f8697`](https://github.com/nodejs/node/commit/5cb26f8697)] - **tools**: switch to ARM runners on GHA jobs (Antoine du Hamel) [#61903](https://github.com/nodejs/node/pull/61903) +* \[[`1abada9c34`](https://github.com/nodejs/node/commit/1abada9c34)] - **tools**: avoid building twice in coverage jobs (Antoine du Hamel) [#61899](https://github.com/nodejs/node/pull/61899) +* \[[`f260e40127`](https://github.com/nodejs/node/commit/f260e40127)] - **tools**: use ubuntu-slim runner in GHA (Antoine du Hamel) [#61759](https://github.com/nodejs/node/pull/61759) +* \[[`64beca5e01`](https://github.com/nodejs/node/commit/64beca5e01)] - **tools**: use ubuntu-slim runner in GHA (Antoine du Hamel) [#61734](https://github.com/nodejs/node/pull/61734) + ## 2026-01-13, Version 20.20.0 'Iron' (LTS), @marco-ippolito diff --git a/src/node_version.h b/src/node_version.h index a7e1fce9e86f5f..94dffb752624f0 100644 --- a/src/node_version.h +++ b/src/node_version.h @@ -29,7 +29,7 @@ #define NODE_VERSION_IS_LTS 1 #define NODE_VERSION_LTS_CODENAME "Iron" -#define NODE_VERSION_IS_RELEASE 0 +#define NODE_VERSION_IS_RELEASE 1 #ifndef NODE_STRINGIFY #define NODE_STRINGIFY(n) NODE_STRINGIFY_HELPER(n)