@yarnpkg/pnp
Advanced tools
Comparing version 4.0.0-rc.40 to 4.0.0-rc.41
@@ -5,5 +5,5 @@ let hook; | ||
if (typeof hook === `undefined`) | ||
hook = require('zlib').brotliDecompressSync(Buffer.from('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', 'base64')).toString(); | ||
hook = require('zlib').brotliDecompressSync(Buffer.from('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', 'base64')).toString(); | ||
return hook; | ||
}; |
@@ -72,1 +72,15 @@ import assert from 'assert'; | ||
); | ||
export const ERR_PACKAGE_PATH_NOT_EXPORTED = createErrorType( | ||
'ERR_PACKAGE_PATH_NOT_EXPORTED', | ||
(pkgPath, subpath, base = undefined) => { | ||
if (subpath === '.') | ||
return `No "exports" main defined in ${pkgPath}package.json${ | ||
base ? ` imported from ${base}` : '' | ||
}`; | ||
return `Package subpath '${subpath}' is not defined by "exports" in ${pkgPath}package.json${ | ||
base ? ` imported from ${base}` : '' | ||
}`; | ||
}, | ||
Error | ||
); |
@@ -11,1 +11,11 @@ export type PackageImportsResolveOptions = { | ||
): URL | string; | ||
export type PackageExportsResolveOptions = { | ||
packageJSONUrl: URL; | ||
packageSubpath: string; | ||
exports: string | Record<string, any>; | ||
base: URL | null; | ||
conditions: Set<string>; | ||
}; | ||
export function packageExportsResolve(opts: PackageExportsResolveOptions): URL; |
@@ -30,2 +30,3 @@ /** | ||
ERR_PACKAGE_IMPORT_NOT_DEFINED, | ||
ERR_PACKAGE_PATH_NOT_EXPORTED, | ||
} from './errors.js'; | ||
@@ -165,3 +166,3 @@ import { getPackageScopeConfig } from './package_config.js'; | ||
if (`${keyNum}` !== key) return false; | ||
return keyNum >= 0 && keyNum < 0xFFFF_FFFF; | ||
return keyNum >= 0 && keyNum < 0xffff_ffff; | ||
} | ||
@@ -286,9 +287,151 @@ | ||
function packageImportsResolve({ | ||
name, | ||
function isConditionalExportsMainSugar(exports, packageJSONUrl, base) { | ||
if (typeof exports === 'string' || ArrayIsArray(exports)) return true; | ||
if (typeof exports !== 'object' || exports === null) return false; | ||
const keys = ObjectGetOwnPropertyNames(exports); | ||
let isConditionalSugar = false; | ||
let i = 0; | ||
for (let j = 0; j < keys.length; j++) { | ||
const key = keys[j]; | ||
const curIsConditionalSugar = key === '' || key[0] !== '.'; | ||
if (i++ === 0) { | ||
isConditionalSugar = curIsConditionalSugar; | ||
} else if (isConditionalSugar !== curIsConditionalSugar) { | ||
throw new ERR_INVALID_PACKAGE_CONFIG( | ||
fileURLToPath(packageJSONUrl), | ||
base, | ||
'"exports" cannot contain some keys starting with \'.\' and some not.' + | ||
' The exports object must either be an object of package subpath keys' + | ||
' or an object of main entry condition name keys only.' | ||
); | ||
} | ||
} | ||
return isConditionalSugar; | ||
} | ||
function throwExportsNotFound(subpath, packageJSONUrl, base) { | ||
throw new ERR_PACKAGE_PATH_NOT_EXPORTED( | ||
fileURLToPath(new URL('.', packageJSONUrl)), | ||
subpath, | ||
base && fileURLToPath(base) | ||
); | ||
} | ||
const emittedPackageWarnings = new Set(); | ||
function emitTrailingSlashPatternDeprecation(match, pjsonUrl, base) { | ||
const pjsonPath = fileURLToPath(pjsonUrl); | ||
if (emittedPackageWarnings.has(pjsonPath + '|' + match)) return; | ||
emittedPackageWarnings.add(pjsonPath + '|' + match); | ||
process.emitWarning( | ||
`Use of deprecated trailing slash pattern mapping "${match}" in the ` + | ||
`"exports" field module resolution of the package at ${pjsonPath}${ | ||
base ? ` imported from ${fileURLToPath(base)}` : '' | ||
}. Mapping specifiers ending in "/" is no longer supported.`, | ||
'DeprecationWarning', | ||
'DEP0155' | ||
); | ||
} | ||
function packageExportsResolve({ | ||
packageJSONUrl, | ||
packageSubpath, | ||
exports, | ||
base, | ||
conditions, | ||
readFileSyncFn, | ||
}) { | ||
if (isConditionalExportsMainSugar(exports, packageJSONUrl, base)) | ||
exports = { '.': exports }; | ||
if ( | ||
ObjectPrototypeHasOwnProperty(exports, packageSubpath) && | ||
!StringPrototypeIncludes(packageSubpath, '*') && | ||
!StringPrototypeEndsWith(packageSubpath, '/') | ||
) { | ||
const target = exports[packageSubpath]; | ||
const resolveResult = resolvePackageTarget( | ||
packageJSONUrl, | ||
target, | ||
'', | ||
packageSubpath, | ||
base, | ||
false, | ||
false, | ||
conditions | ||
); | ||
if (resolveResult == null) { | ||
throwExportsNotFound(packageSubpath, packageJSONUrl, base); | ||
} | ||
return resolveResult; | ||
} | ||
let bestMatch = ''; | ||
let bestMatchSubpath; | ||
const keys = ObjectGetOwnPropertyNames(exports); | ||
for (let i = 0; i < keys.length; i++) { | ||
const key = keys[i]; | ||
const patternIndex = StringPrototypeIndexOf(key, '*'); | ||
if ( | ||
patternIndex !== -1 && | ||
StringPrototypeStartsWith( | ||
packageSubpath, | ||
StringPrototypeSlice(key, 0, patternIndex) | ||
) | ||
) { | ||
// When this reaches EOL, this can throw at the top of the whole function: | ||
// | ||
// if (StringPrototypeEndsWith(packageSubpath, '/')) | ||
// throwInvalidSubpath(packageSubpath) | ||
// | ||
// To match "imports" and the spec. | ||
if (StringPrototypeEndsWith(packageSubpath, '/')) | ||
emitTrailingSlashPatternDeprecation( | ||
packageSubpath, | ||
packageJSONUrl, | ||
base | ||
); | ||
const patternTrailer = StringPrototypeSlice(key, patternIndex + 1); | ||
if ( | ||
packageSubpath.length >= key.length && | ||
StringPrototypeEndsWith(packageSubpath, patternTrailer) && | ||
patternKeyCompare(bestMatch, key) === 1 && | ||
StringPrototypeLastIndexOf(key, '*') === patternIndex | ||
) { | ||
bestMatch = key; | ||
bestMatchSubpath = StringPrototypeSlice( | ||
packageSubpath, | ||
patternIndex, | ||
packageSubpath.length - patternTrailer.length | ||
); | ||
} | ||
} | ||
} | ||
if (bestMatch) { | ||
const target = exports[bestMatch]; | ||
const resolveResult = resolvePackageTarget( | ||
packageJSONUrl, | ||
target, | ||
bestMatchSubpath, | ||
bestMatch, | ||
base, | ||
true, | ||
false, | ||
conditions | ||
); | ||
if (resolveResult == null) { | ||
throwExportsNotFound(packageSubpath, packageJSONUrl, base); | ||
} | ||
return resolveResult; | ||
} | ||
throwExportsNotFound(packageSubpath, packageJSONUrl, base); | ||
} | ||
function packageImportsResolve({ name, base, conditions, readFileSyncFn }) { | ||
if ( | ||
name === '#' || | ||
@@ -377,2 +520,2 @@ StringPrototypeStartsWith(name, '#/') || | ||
export { packageImportsResolve }; | ||
export { packageImportsResolve, packageExportsResolve }; |
{ | ||
"name": "@yarnpkg/pnp", | ||
"version": "4.0.0-rc.40", | ||
"version": "4.0.0-rc.41", | ||
"stableVersion": "3.3.0", | ||
@@ -13,3 +13,3 @@ "license": "BSD-2-Clause", | ||
"@types/node": "^18.11.11", | ||
"@yarnpkg/fslib": "^3.0.0-rc.40" | ||
"@yarnpkg/fslib": "^3.0.0-rc.41" | ||
}, | ||
@@ -19,6 +19,5 @@ "devDependencies": { | ||
"@rollup/plugin-node-resolve": "^11.0.1", | ||
"@yarnpkg/libzip": "^3.0.0-rc.40", | ||
"@yarnpkg/libzip": "^3.0.0-rc.41", | ||
"arg": "^5.0.2", | ||
"esbuild": "npm:esbuild-wasm@^0.15.15", | ||
"resolve.exports": "^1.1.0", | ||
"rollup": "^2.59.0", | ||
@@ -25,0 +24,0 @@ "rollup-plugin-esbuild": "^3.0.2", |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
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
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
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
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
583647
8
40
8701
17
Updated@yarnpkg/fslib@^3.0.0-rc.41