Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions deps/corepack/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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)


Expand Down
136 changes: 74 additions & 62 deletions deps/corepack/dist/lib/corepack.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -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"));
Expand Down Expand Up @@ -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"
Expand Down Expand Up @@ -21792,7 +21792,7 @@ var config_default = {
package: "yarn"
},
transparent: {
default: "4.10.3+sha224.6020b3cdcdfbd7dbc24b7a7b75d58a249ce36068a8bf97d39aa8cc6d",
default: "4.11.0+sha224.209a3e277c6bbc03df6e4206fbfcb0c1621c27ecf0688f79a0c619f0",
commands: [
[
"yarn",
Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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));
Expand Down Expand Up @@ -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;
}
}
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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`;
Expand Down Expand Up @@ -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 })
};
}

Expand Down Expand Up @@ -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`)
Expand Down Expand Up @@ -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`)
Expand Down Expand Up @@ -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 });
Expand Down Expand Up @@ -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);
}
Expand Down
4 changes: 2 additions & 2 deletions deps/corepack/package.json
Original file line number Diff line number Diff line change
@@ -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"
Expand All @@ -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",
Expand Down
Loading