@vercel/build-utils
Advanced tools
Comparing version 8.2.1 to 8.2.2
# @vercel/build-utils | ||
## 8.2.2 | ||
### Patch Changes | ||
- Change node 16.x EOL for Vercel ([#11704](https://github.com/vercel/vercel/pull/11704)) | ||
- Improve error message and refactor ([#11706](https://github.com/vercel/vercel/pull/11706)) | ||
- [built-utils] Handle case of not having lockfile when corepack is enabled ([#11697](https://github.com/vercel/vercel/pull/11697)) | ||
## 8.2.1 | ||
@@ -4,0 +14,0 @@ |
@@ -49,3 +49,3 @@ "use strict"; | ||
runtime: "nodejs16.x", | ||
discontinueDate: /* @__PURE__ */ new Date("2025-02-28") | ||
discontinueDate: /* @__PURE__ */ new Date("2025-01-31") | ||
}, | ||
@@ -52,0 +52,0 @@ { |
@@ -255,3 +255,3 @@ "use strict"; | ||
} else { | ||
cliType = "npm"; | ||
cliType = packageJson ? detectPackageManagerNameWithoutLockfile(packageJson) : "npm"; | ||
} | ||
@@ -267,2 +267,28 @@ const packageJsonPath = pkgJsonPath || void 0; | ||
} | ||
function detectPackageManagerNameWithoutLockfile(packageJson) { | ||
const packageJsonPackageManager = packageJson.packageManager; | ||
if (usingCorepack(process.env, packageJsonPackageManager)) { | ||
const corepackPackageManager = validateVersionSpecifier( | ||
packageJsonPackageManager | ||
); | ||
switch (corepackPackageManager?.packageName) { | ||
case "npm": | ||
case "pnpm": | ||
case "yarn": | ||
case "bun": | ||
return corepackPackageManager.packageName; | ||
case void 0: | ||
return "npm"; | ||
default: | ||
throw new Error( | ||
`Unknown package manager "${corepackPackageManager?.packageName}". Change your package.json "packageManager" field to a known package manager: npm, pnpm, yarn, bun.` | ||
); | ||
} | ||
} | ||
return "npm"; | ||
} | ||
function usingCorepack(env, packageJsonPackageManager) { | ||
const corepackFlagged = env.ENABLE_EXPERIMENTAL_COREPACK === "1"; | ||
return corepackFlagged && Boolean(packageJsonPackageManager); | ||
} | ||
async function walkParentDirs({ | ||
@@ -396,4 +422,3 @@ base, | ||
}) { | ||
const corepackFlagged = env.ENABLE_EXPERIMENTAL_COREPACK === "1"; | ||
const corepackEnabled = corepackFlagged && Boolean(packageJsonPackageManager); | ||
const corepackEnabled = usingCorepack(env, packageJsonPackageManager); | ||
const { | ||
@@ -534,2 +559,24 @@ detectedLockfile, | ||
} | ||
function validateVersionSpecifier(version) { | ||
if (!version) { | ||
return void 0; | ||
} | ||
const [before, after, ...extra] = version.split("@"); | ||
if (extra.length) { | ||
return void 0; | ||
} | ||
if (!before) { | ||
return void 0; | ||
} | ||
if (!after) { | ||
return void 0; | ||
} | ||
if (!(0, import_semver.validRange)(after)) { | ||
return void 0; | ||
} | ||
return { | ||
packageName: before, | ||
packageVersionRange: after | ||
}; | ||
} | ||
function getPathForPackageManager({ | ||
@@ -536,0 +583,0 @@ cliType, |
{ | ||
"name": "@vercel/build-utils", | ||
"version": "8.2.1", | ||
"version": "8.2.2", | ||
"license": "Apache-2.0", | ||
@@ -5,0 +5,0 @@ "main": "./dist/index.js", |
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1221335
27593
26