JezK
Edit File: package-linker.js.map
{"version":3,"file":"package-linker.js","names":["invariant","require","path","semver","linkBinConcurrency","linkBin","src","dest","process","platform","lockMutex","unlockMutex","fs","mkdirp","dirname","symlink","chmod","PackageLinker","config","resolver","reporter","artifacts","topLevelBinLinking","unplugged","pkg","pkgLoc","targetBinLoc","override","join","realpath","entries","bin","scriptName","scriptCmd","exists","dir","deps","ref","_reference","remote","_remote","dependencies","pattern","dep","getStrictResolvedPattern","locations","length","Object","keys","findNearestInstalledVersionOfPackage","loc","push","bundleDependencies","depName","locs","map","getFolder","readManifest","registry","code","isPlugnplay","linkSelfDependencies","binLoc","name","moduleFolder","realBinLoc","allLocations","Promise","all","realLocations","forEach","indexOf","locationBinLocPairs","distancePairs","curBinLoc","distance","curLoc","notFound","next","filteredDistancePairs","filter","d","minItem","reduce","min","cur","toString","patterns","workspaceLayout","ignoreOptional","hoister","PackageHoister","seed","focus","markShallowWorkspaceEntries","init","linkDuplicates","flatTree","getFlatHoistedTree","sort","dep1","dep2","localeCompare","artifactFiles","copyQueue","Map","hardlinkQueue","hardlinksWork","cwd","hardlinksEnabled","copiedSrcs","symlinkPaths","folder","isShallow","type","reference","set","readPackageMetadata","metadata","file","sep","replace","plugnplayEnabled","_isUnplugged","generatePackageUnpluggedPath","addLocation","integrityArtifacts","version","copiedDest","get","onFresh","setFresh","possibleExtraneous","Set","scopedPaths","findExtraneousFiles","basePath","registryFolders","resolve","readdir","files","filepath","add","subfile","lstat","isDirectory","lockfileFolder","workspaces","workspaceName","linkTargets","linkFolder","linkedModules","entry","entryPath","stat","isSymbolicLink","entryTarget","warn","lang","unlink","scopeName","entry2","entryPath2","stat2","packageName","basename","has","copyBulk","Array","from","values","ignoreBasenames","constants","METADATA_FILENAME","TARBALL_FILENAME","onStart","num","tick","progress","onProgress","hardlinkBulk","verbose","scopedPath","getOption","binLinks","topLevelDependencies","determineTopLevelBinLinkOrder","tickBin","promise","queue","isNohoist","parts","linkBinDependencies","parentBinLoc","getParentBinLoc","modulesFolder","_warnForMissingBundledDependencies","hash","hoistManifest","key","_treeHash","_buildTreeHash","parent","slice","tuple","Error","linksToCreate","isDirectRequire","transientBins","topLevelBins","linkToCreate","getManifests","peerDeps","peerDependencies","peerDepsMeta","peerDependenciesMeta","refTree","requests","req","parentNames","arr1","arr2","getLevelDistance","pkgRef","minDistance","Infinity","every","idx","peerDepName","range","meta","isOptional","optional","peerPkgs","getAllInfoForPackageName","peerError","resolvedLevelDistance","resolvedPeerPkg","peerPkg","peerPkgRef","levelDistance","isFinite","_satisfiesPeerDependency","addDependencies","level","satisfiesWithPrereleases","looseSemver","locsExist","some","e","pkgHuman","ignoreScripts","scripts","preinstall","install","postinstall","patternToUnplug","normalizePattern","hasVersion","satisfiesSemver","satisfies","resolvePeerModules","copyModules","PNP_FILENAME"],"sourceRoot":"../src","sources":["package-linker.js"],"sourcesContent":["/* @flow */\n\nimport type {Manifest} from './types.js';\nimport type PackageReference from './package-reference.js';\nimport type PackageResolver from './package-resolver.js';\nimport type {Reporter} from './reporters/index.js';\nimport type Config from './config.js';\nimport type {HoistManifestTuples, HoistManifestTuple} from './package-hoister.js';\nimport type {CopyQueueItem} from './util/fs.js';\nimport type {InstallArtifacts} from './package-install-scripts.js';\nimport PackageHoister from './package-hoister.js';\nimport * as constants from './constants.js';\nimport * as promise from './util/promise.js';\nimport {normalizePattern} from './util/normalize-pattern.js';\nimport {entries} from './util/misc.js';\nimport * as fs from './util/fs.js';\nimport lockMutex from './util/mutex.js';\nimport {satisfiesWithPrereleases} from './util/semver.js';\nimport WorkspaceLayout from './workspace-layout.js';\n\nconst invariant = require('invariant');\nconst path = require('path');\nconst semver = require('semver');\n// Concurrency for creating bin links disabled because of the issue #1961\nconst linkBinConcurrency = 1;\n\ntype DependencyPairs = Array<{\n dep: Manifest,\n loc: string,\n}>;\n\nexport async function linkBin(src: string, dest: string): Promise<void> {\n if (process.platform === 'win32') {\n const unlockMutex = await lockMutex(src);\n try {\n ;\n } finally {\n unlockMutex();\n }\n } else {\n await fs.mkdirp(path.dirname(dest));\n await fs.symlink(src, dest);\n await fs.chmod(dest, '755');\n }\n}\n\nexport default class PackageLinker {\n constructor(config: Config, resolver: PackageResolver) {\n this.resolver = resolver;\n this.reporter = config.reporter;\n this.config = config;\n this.artifacts = {};\n this.topLevelBinLinking = true;\n this.unplugged = [];\n }\n\n artifacts: InstallArtifacts;\n reporter: Reporter;\n resolver: PackageResolver;\n config: Config;\n topLevelBinLinking: boolean;\n unplugged: Array<string>;\n _treeHash: ?Map<string, HoistManifestTuple>;\n\n setArtifacts(artifacts: InstallArtifacts) {\n this.artifacts = artifacts;\n }\n\n setTopLevelBinLinking(topLevelBinLinking: boolean) {\n this.topLevelBinLinking = topLevelBinLinking;\n }\n\n async linkSelfDependencies(\n pkg: Manifest,\n pkgLoc: string,\n targetBinLoc: string,\n override: boolean = false,\n ): Promise<void> {\n targetBinLoc = path.join(targetBinLoc, '.bin');\n await fs.mkdirp(targetBinLoc);\n targetBinLoc = await fs.realpath(targetBinLoc);\n pkgLoc = await fs.realpath(pkgLoc);\n for (const [scriptName, scriptCmd] of entries(pkg.bin)) {\n const dest = path.join(targetBinLoc, scriptName);\n const src = path.join(pkgLoc, scriptCmd);\n if (!await fs.exists(src)) {\n if (!override) {\n // TODO maybe throw an error\n continue;\n }\n }\n await linkBin(src, dest);\n }\n }\n\n async linkBinDependencies(pkg: Manifest, dir: string): Promise<void> {\n const deps: DependencyPairs = [];\n\n const ref = pkg._reference;\n invariant(ref, 'Package reference is missing');\n\n const remote = pkg._remote;\n invariant(remote, 'Package remote is missing');\n\n // link up `bin scripts` in `dependencies`\n for (const pattern of ref.dependencies) {\n const dep = this.resolver.getStrictResolvedPattern(pattern);\n if (\n // Missing locations means not installed inside node_modules\n dep._reference &&\n dep._reference.locations.length &&\n dep.bin &&\n Object.keys(dep.bin).length\n ) {\n const loc = await this.findNearestInstalledVersionOfPackage(dep, dir);\n deps.push({dep, loc});\n }\n }\n\n // link up the `bin` scripts in bundled dependencies\n if (pkg.bundleDependencies) {\n for (const depName of pkg.bundleDependencies) {\n const locs = ref.locations.map(loc => path.join(loc, this.config.getFolder(pkg), depName));\n try {\n const dep = await this.config.readManifest(locs[0], remote.registry); //all of them should be the same\n\n if (dep.bin && Object.keys(dep.bin).length) {\n deps.push(...locs.map(loc => ({dep, loc})));\n }\n } catch (ex) {\n if (ex.code !== 'ENOENT') {\n throw ex;\n }\n // intentionally ignoring ENOENT error.\n // bundledDependency either does not exist or does not contain a package.json\n }\n }\n }\n\n // no deps to link\n if (!deps.length) {\n return;\n }\n\n // write the executables\n for (const {dep, loc} of deps) {\n if (dep._reference && dep._reference.locations.length) {\n invariant(!dep._reference.isPlugnplay, \"Plug'n'play packages should not be referenced here\");\n await this.linkSelfDependencies(dep, loc, dir);\n }\n }\n }\n\n //find the installation location of ref that would be used in binLoc based on node module resolution\n async findNearestInstalledVersionOfPackage(pkg: Manifest, binLoc: string): Promise<string> {\n const ref = pkg._reference;\n invariant(ref, 'expected pkg reference for ' + pkg.name);\n const moduleFolder = this.config.getFolder(pkg);\n await fs.mkdirp(binLoc);\n const realBinLoc = await fs.realpath(binLoc);\n\n const allLocations = [...ref.locations];\n const realLocations = await Promise.all(ref.locations.map(loc => fs.realpath(loc)));\n realLocations.forEach(loc => allLocations.indexOf(loc) !== -1 || allLocations.push(loc));\n\n const locationBinLocPairs = allLocations.map(loc => [loc, binLoc]);\n if (binLoc !== realBinLoc) {\n locationBinLocPairs.push(...allLocations.map(loc => [loc, realBinLoc]));\n }\n\n const distancePairs = locationBinLocPairs.map(([loc, curBinLoc]) => {\n let distance = 0;\n let curLoc = curBinLoc;\n let notFound = false;\n\n while (path.join(curLoc, ref.name) !== loc && path.join(curLoc, moduleFolder, ref.name) !== loc) {\n const next = path.dirname(curLoc);\n if (curLoc === next) {\n notFound = true;\n break;\n }\n\n distance++;\n curLoc = next;\n }\n return notFound ? null : [loc, distance];\n });\n\n //remove items where path was not found\n const filteredDistancePairs: any = distancePairs.filter(d => d);\n (filteredDistancePairs: Array<[string, number]>);\n\n invariant(filteredDistancePairs.length > 0, `could not find a copy of ${pkg.name} to link in ${binLoc}`);\n\n //get smallest distance from package location\n const minItem = filteredDistancePairs.reduce((min, cur) => {\n return cur[1] < min[1] ? cur : min;\n });\n\n invariant(minItem[1] >= 0, 'could not find a target for bin dir of ' + minItem.toString());\n return minItem[0];\n }\n\n getFlatHoistedTree(\n patterns: Array<string>,\n workspaceLayout?: WorkspaceLayout,\n {ignoreOptional}: {ignoreOptional: ?boolean} = {},\n ): HoistManifestTuples {\n const hoister = new PackageHoister(this.config, this.resolver, {ignoreOptional, workspaceLayout});\n hoister.seed(patterns);\n if (this.config.focus) {\n hoister.markShallowWorkspaceEntries();\n }\n return hoister.init();\n }\n\n async copyModules(\n patterns: Array<string>,\n workspaceLayout?: WorkspaceLayout,\n {linkDuplicates, ignoreOptional}: {linkDuplicates: ?boolean, ignoreOptional: ?boolean} = {},\n ): Promise<void> {\n let flatTree = this.getFlatHoistedTree(patterns, workspaceLayout, {ignoreOptional});\n // sorted tree makes file creation and copying not to interfere with each other\n flatTree = flatTree.sort(function(dep1, dep2): number {\n return dep1[0].localeCompare(dep2[0]);\n });\n\n // list of artifacts in modules to remove from extraneous removal\n const artifactFiles = [];\n\n const copyQueue: Map<string, CopyQueueItem> = new Map();\n const hardlinkQueue: Map<string, CopyQueueItem> = new Map();\n const hardlinksEnabled = linkDuplicates && (await fs.hardlinksWork(this.config.cwd));\n\n const copiedSrcs: Map<string, string> = new Map();\n const symlinkPaths: Map<string, string> = new Map();\n for (const [folder, {pkg, loc, isShallow}] of flatTree) {\n const remote = pkg._remote || {type: ''};\n const ref = pkg._reference;\n let dest = folder;\n invariant(ref, 'expected package reference');\n\n let src = loc;\n let type = '';\n if (remote.type === 'link') {\n // replace package source from incorrect cache location (workspaces and link: are not cached)\n // with a symlink source\n src = remote.reference;\n type = 'symlink';\n } else if (workspaceLayout && remote.type === 'workspace' && !isShallow) {\n src = remote.reference;\n type = 'symlink';\n // to get real path for non hoisted dependencies\n symlinkPaths.set(dest, src);\n } else {\n // backwards compatibility: get build artifacts from metadata\n // does not apply to symlinked dependencies\n const metadata = await this.config.readPackageMetadata(src);\n for (const file of metadata.artifacts) {\n artifactFiles.push(path.join(dest, file));\n }\n }\n\n for (const [symlink, realpath] of symlinkPaths.entries()) {\n if (dest.indexOf(symlink + path.sep) === 0) {\n // after hoisting we end up with this structure\n // root/node_modules/workspace-package(symlink)/node_modules/package-a\n // fs.copy operations can't copy files through a symlink, so all the paths under workspace-package\n // need to be replaced with a real path, except for the symlink root/node_modules/workspace-package\n dest = dest.replace(symlink, realpath);\n }\n }\n\n if (this.config.plugnplayEnabled) {\n ref.isPlugnplay = true;\n if (await this._isUnplugged(pkg, ref)) {\n dest = this.config.generatePackageUnpluggedPath(ref);\n\n // We don't skip the copy if the unplugged package isn't materialized yet\n if (await fs.exists(dest)) {\n ref.addLocation(dest);\n continue;\n }\n } else {\n ref.addLocation(src);\n continue;\n }\n }\n\n ref.addLocation(dest);\n\n const integrityArtifacts = this.artifacts[`${pkg.name}@${pkg.version}`];\n if (integrityArtifacts) {\n for (const file of integrityArtifacts) {\n artifactFiles.push(path.join(dest, file));\n }\n }\n\n const copiedDest = copiedSrcs.get(src);\n if (!copiedDest) {\n // no point to hardlink to a symlink\n if (hardlinksEnabled && type !== 'symlink') {\n copiedSrcs.set(src, dest);\n }\n copyQueue.set(dest, {\n src,\n dest,\n type,\n onFresh() {\n if (ref) {\n ref.setFresh(true);\n }\n },\n });\n } else {\n hardlinkQueue.set(dest, {\n src: copiedDest,\n dest,\n onFresh() {\n if (ref) {\n ref.setFresh(true);\n }\n },\n });\n }\n }\n\n const possibleExtraneous: Set<string> = new Set();\n const scopedPaths: Set<string> = new Set();\n\n const findExtraneousFiles = async basePath => {\n for (const folder of this.config.registryFolders) {\n const loc = path.resolve(basePath, folder);\n\n if (await fs.exists(loc)) {\n const files = await fs.readdir(loc);\n\n for (const file of files) {\n const filepath = path.join(loc, file);\n\n // it's a scope, not a package\n if (file[0] === '@') {\n scopedPaths.add(filepath);\n\n for (const subfile of await fs.readdir(filepath)) {\n possibleExtraneous.add(path.join(filepath, subfile));\n }\n } else if (file[0] === '.' && file !== '.bin') {\n if (!(await fs.lstat(filepath)).isDirectory()) {\n possibleExtraneous.add(filepath);\n }\n } else {\n possibleExtraneous.add(filepath);\n }\n }\n }\n }\n };\n\n await findExtraneousFiles(this.config.lockfileFolder);\n if (workspaceLayout) {\n for (const workspaceName of Object.keys(workspaceLayout.workspaces)) {\n await findExtraneousFiles(workspaceLayout.workspaces[workspaceName].loc);\n }\n }\n\n // If an Extraneous is an entry created via \"yarn link\", we prevent it from being overwritten.\n // Unfortunately, the only way we can know if they have been created this way is to check if they\n // are symlinks - problem is that it then conflicts with the newly introduced \"link:\" protocol,\n // which also creates symlinks :( a somewhat weak fix is to check if the symlink target is registered\n // inside the linkFolder, in which case we assume it has been created via \"yarn link\". Otherwise, we\n // assume it's a link:-managed dependency, and overwrite it as usual.\n const linkTargets = new Map();\n\n let linkedModules;\n try {\n linkedModules = await fs.readdir(this.config.linkFolder);\n } catch (err) {\n if (err.code === 'ENOENT') {\n linkedModules = [];\n } else {\n throw err;\n }\n }\n\n // TODO: Consolidate this logic with `this.config.linkedModules` logic\n for (const entry of linkedModules) {\n const entryPath = path.join(this.config.linkFolder, entry);\n const stat = await fs.lstat(entryPath);\n\n if (stat.isSymbolicLink()) {\n try {\n const entryTarget = await fs.realpath(entryPath);\n linkTargets.set(entry, entryTarget);\n } catch (err) {\n this.reporter.warn(this.reporter.lang('linkTargetMissing', entry));\n await fs.unlink(entryPath);\n }\n } else if (stat.isDirectory() && entry[0] === '@') {\n // if the entry is directory beginning with '@', then we're dealing with a package scope, which\n // means we must iterate inside to retrieve the package names it contains\n const scopeName = entry;\n\n for (const entry2 of await fs.readdir(entryPath)) {\n const entryPath2 = path.join(entryPath, entry2);\n const stat2 = await fs.lstat(entryPath2);\n\n if (stat2.isSymbolicLink()) {\n const packageName = `${scopeName}/${entry2}`;\n try {\n const entryTarget = await fs.realpath(entryPath2);\n linkTargets.set(packageName, entryTarget);\n } catch (err) {\n this.reporter.warn(this.reporter.lang('linkTargetMissing', packageName));\n await fs.unlink(entryPath2);\n }\n }\n }\n }\n }\n\n for (const loc of possibleExtraneous) {\n let packageName = path.basename(loc);\n const scopeName = path.basename(path.dirname(loc));\n\n if (scopeName[0] === `@`) {\n packageName = `${scopeName}/${packageName}`;\n }\n\n if (\n (await fs.lstat(loc)).isSymbolicLink() &&\n linkTargets.has(packageName) &&\n linkTargets.get(packageName) === (await fs.realpath(loc))\n ) {\n possibleExtraneous.delete(loc);\n copyQueue.delete(loc);\n }\n }\n\n //\n let tick;\n await fs.copyBulk(Array.from(copyQueue.values()), this.reporter, {\n possibleExtraneous,\n artifactFiles,\n\n ignoreBasenames: [constants.METADATA_FILENAME, constants.TARBALL_FILENAME, '.bin'],\n\n onStart: (num: number) => {\n tick = this.reporter.progress(num);\n },\n\n onProgress(src: string) {\n if (tick) {\n tick();\n }\n },\n });\n\n await fs.hardlinkBulk(Array.from(hardlinkQueue.values()), this.reporter, {\n possibleExtraneous,\n artifactFiles,\n\n onStart: (num: number) => {\n tick = this.reporter.progress(num);\n },\n\n onProgress(src: string) {\n if (tick) {\n tick();\n }\n },\n });\n\n // remove all extraneous files that weren't in the tree\n for (const loc of possibleExtraneous) {\n this.reporter.verbose(this.reporter.lang('verboseFileRemoveExtraneous', loc));\n await fs.unlink(loc);\n }\n\n // remove any empty scoped directories\n for (const scopedPath of scopedPaths) {\n const files = await fs.readdir(scopedPath);\n if (files.length === 0) {\n await fs.unlink(scopedPath);\n }\n }\n\n // create binary links\n if (this.config.getOption('bin-links') && this.config.binLinks !== false) {\n const topLevelDependencies = this.determineTopLevelBinLinkOrder(flatTree);\n const tickBin = this.reporter.progress(flatTree.length + topLevelDependencies.length);\n\n // create links in transient dependencies\n await promise.queue(\n flatTree,\n async ([dest, {pkg, isNohoist, parts}]) => {\n if (pkg._reference && pkg._reference.locations.length && !pkg._reference.isPlugnplay) {\n const binLoc = path.join(dest, this.config.getFolder(pkg));\n await this.linkBinDependencies(pkg, binLoc);\n if (isNohoist) {\n // if nohoist, we need to override the binLink to point to the local destination\n const parentBinLoc = this.getParentBinLoc(parts, flatTree);\n await this.linkSelfDependencies(pkg, dest, parentBinLoc, true);\n }\n tickBin();\n }\n tickBin();\n },\n linkBinConcurrency,\n );\n\n // create links at top level for all dependencies.\n await promise.queue(\n topLevelDependencies,\n async ([dest, {pkg}]) => {\n if (\n pkg._reference &&\n pkg._reference.locations.length &&\n !pkg._reference.isPlugnplay &&\n pkg.bin &&\n Object.keys(pkg.bin).length\n ) {\n let binLoc;\n if (this.config.modulesFolder) {\n binLoc = path.join(this.config.modulesFolder);\n } else {\n binLoc = path.join(this.config.lockfileFolder, this.config.getFolder(pkg));\n }\n await this.linkSelfDependencies(pkg, dest, binLoc);\n }\n tickBin();\n },\n linkBinConcurrency,\n );\n }\n\n for (const [, {pkg}] of flatTree) {\n await this._warnForMissingBundledDependencies(pkg);\n }\n }\n\n _buildTreeHash(flatTree: HoistManifestTuples): Map<string, HoistManifestTuple> {\n const hash: Map<string, HoistManifestTuple> = new Map();\n for (const [dest, hoistManifest] of flatTree) {\n const key: string = hoistManifest.parts.join('#');\n hash.set(key, [dest, hoistManifest]);\n }\n this._treeHash = hash;\n return hash;\n }\n\n getParentBinLoc(parts: Array<string>, flatTree: HoistManifestTuples): string {\n const hash = this._treeHash || this._buildTreeHash(flatTree);\n const parent = parts.slice(0, -1).join('#');\n const tuple = hash.get(parent);\n if (!tuple) {\n throw new Error(`failed to get parent '${parent}' binLoc`);\n }\n const [dest, hoistManifest] = tuple;\n const parentBinLoc = path.join(dest, this.config.getFolder(hoistManifest.pkg));\n\n return parentBinLoc;\n }\n\n determineTopLevelBinLinkOrder(flatTree: HoistManifestTuples): HoistManifestTuples {\n const linksToCreate = new Map();\n for (const [dest, hoistManifest] of flatTree) {\n const {pkg, isDirectRequire, isNohoist, isShallow} = hoistManifest;\n const {name} = pkg;\n\n // nohoist and shallow packages should not be linked at topLevel bin\n if (!isNohoist && !isShallow && (isDirectRequire || (this.topLevelBinLinking && !linksToCreate.has(name)))) {\n linksToCreate.set(name, [dest, hoistManifest]);\n }\n }\n\n // Sort the array so that direct dependencies will be linked last.\n // Bin links are overwritten if they already exist, so this will cause direct deps to take precedence.\n // If someone finds this to be incorrect later, you could also consider sorting descending by\n // `linkToCreate.level` which is the dependency tree depth. Direct deps will have level 0 and transitive\n // deps will have level > 0.\n const transientBins = [];\n const topLevelBins = [];\n for (const linkToCreate of Array.from(linksToCreate.values())) {\n if (linkToCreate[1].isDirectRequire) {\n topLevelBins.push(linkToCreate);\n } else {\n transientBins.push(linkToCreate);\n }\n }\n return [...transientBins, ...topLevelBins];\n }\n\n resolvePeerModules() {\n for (const pkg of this.resolver.getManifests()) {\n const peerDeps = pkg.peerDependencies;\n const peerDepsMeta = pkg.peerDependenciesMeta;\n\n if (!peerDeps) {\n continue;\n }\n\n const ref = pkg._reference;\n invariant(ref, 'Package reference is missing');\n\n // TODO: We are taking the \"shortest\" ref tree but there may be multiple ref trees with the same length\n const refTree = ref.requests.map(req => req.parentNames).sort((arr1, arr2) => arr1.length - arr2.length)[0];\n\n const getLevelDistance = pkgRef => {\n let minDistance = Infinity;\n for (const req of pkgRef.requests) {\n const distance = refTree.length - req.parentNames.length;\n\n if (distance >= 0 && distance < minDistance && req.parentNames.every((name, idx) => name === refTree[idx])) {\n minDistance = distance;\n }\n }\n\n return minDistance;\n };\n\n for (const peerDepName in peerDeps) {\n const range = peerDeps[peerDepName];\n const meta = peerDepsMeta && peerDepsMeta[peerDepName];\n\n const isOptional = !!(meta && meta.optional);\n\n const peerPkgs = this.resolver.getAllInfoForPackageName(peerDepName);\n\n let peerError = 'unmetPeer';\n let resolvedLevelDistance = Infinity;\n let resolvedPeerPkg;\n for (const peerPkg of peerPkgs) {\n const peerPkgRef = peerPkg._reference;\n if (!(peerPkgRef && peerPkgRef.patterns)) {\n continue;\n }\n const levelDistance = getLevelDistance(peerPkgRef);\n if (isFinite(levelDistance) && levelDistance < resolvedLevelDistance) {\n if (this._satisfiesPeerDependency(range, peerPkgRef.version)) {\n resolvedLevelDistance = levelDistance;\n resolvedPeerPkg = peerPkgRef;\n } else {\n peerError = 'incorrectPeer';\n }\n }\n }\n\n if (resolvedPeerPkg) {\n ref.addDependencies(resolvedPeerPkg.patterns);\n this.reporter.verbose(\n this.reporter.lang(\n 'selectedPeer',\n `${pkg.name}@${pkg.version}`,\n `${peerDepName}@${resolvedPeerPkg.version}`,\n resolvedPeerPkg.level,\n ),\n );\n } else if (!isOptional) {\n this.reporter.warn(\n this.reporter.lang(\n peerError,\n `${refTree.join(' > ')} > ${pkg.name}@${pkg.version}`,\n `${peerDepName}@${range}`,\n ),\n );\n }\n }\n }\n }\n\n _satisfiesPeerDependency(range: string, version: string): boolean {\n return range === '*' || satisfiesWithPrereleases(version, range, this.config.looseSemver);\n }\n\n async _warnForMissingBundledDependencies(pkg: Manifest): Promise<void> {\n const ref = pkg._reference;\n invariant(ref, 'missing package ref ' + pkg.name);\n\n if (pkg.bundleDependencies) {\n for (const depName of pkg.bundleDependencies) {\n const locs = ref.locations.map(loc => path.join(loc, this.config.getFolder(pkg), depName));\n const locsExist = await Promise.all(locs.map(loc => fs.exists(loc)));\n if (locsExist.some(e => !e)) {\n //if any of the locs do not exist\n const pkgHuman = `${pkg.name}@${pkg.version}`;\n this.reporter.warn(this.reporter.lang('missingBundledDependency', pkgHuman, depName));\n }\n }\n }\n }\n\n async _isUnplugged(pkg: Manifest, ref: PackageReference): Promise<boolean> {\n // If an unplugged folder exists for the specified package, we simply use it\n if (await fs.exists(this.config.generatePackageUnpluggedPath(ref))) {\n return true;\n }\n\n // If the package has a postinstall script, we also unplug it (otherwise they would run into the cache)\n if (\n !this.config.ignoreScripts &&\n pkg.scripts &&\n (pkg.scripts.preinstall || pkg.scripts.install || pkg.scripts.postinstall)\n ) {\n return true;\n }\n\n // Check whether the user explicitly requested for the package to be unplugged\n return this.unplugged.some(patternToUnplug => {\n const {name, range, hasVersion} = normalizePattern(patternToUnplug);\n const satisfiesSemver = hasVersion ? semver.satisfies(ref.version, range) : true;\n return name === ref.name && satisfiesSemver;\n });\n }\n\n async init(\n patterns: Array<string>,\n workspaceLayout?: WorkspaceLayout,\n {linkDuplicates, ignoreOptional}: {linkDuplicates: ?boolean, ignoreOptional: ?boolean} = {},\n ): Promise<void> {\n this.resolvePeerModules();\n await this.copyModules(patterns, workspaceLayout, {linkDuplicates, ignoreOptional});\n\n if (!this.config.plugnplayEnabled) {\n await fs.unlink(`${this.config.lockfileFolder}/${constants.PNP_FILENAME}`);\n }\n }\n}\n"],"mappings":"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"}