JezK
Edit File: package-request.js.map
{"version":3,"file":"package-request.js","names":["micromatch","require","PackageRequest","req","resolver","parentRequest","parentNames","lockfile","registry","reporter","optional","hint","pattern","config","foundInfo","usedRegistries","add","remoteType","shrunk","getLocked","resolved","resolvedParts","versionUtil","explodeHashedUrl","preferredRemoteType","test","url","name","version","_uid","uid","_remote","type","reference","hash","integrity","packageName","optionalDependencies","dependencies","prebuiltVariants","normalize","range","exoticResolver","getExoticResolver","findExoticVersionInfo","data","Object","assign","Resolver","getRegistryResolver","resolve","MessageError","lang","registryResolvers","indexOf","semver","validRange","fs","exists","path","join","cwd","constants","NODE_PACKAGE_JSON","warn","normalizePattern","hasVersion","normalizeRange","newRange","ExoticResolver","WorkspaceResolver","isWorkspace","workspaceLayout","invariant","focus","includes","virtualManifestName","startsWith","focusedWorkspaceName","localInfo","getManifestByPattern","localManifest","manifest","requestPattern","findVersionOnRegistry","info","solvedRange","getHighestRangeVersionMatch","reportResolvedRangeMatch","ref","_reference","addRequest","addPattern","addOptional","fresh","frozen","findVersionInfo","valid","cleanDependencies","getExactVersionMatch","reportPackageWithExistingVersion","flat","validateVersionInfo","remote","PackageReference","setFresh","promises","deps","depName","depPattern","push","find","production","devDependencies","promise","addDependencies","requests","slice","otherRequest","human","getPackageVersion","REQUIRED_PACKAGE_KEYS","key","undefined","install","filterByPatterns","flags","fetchRequestFromCwd","reqPatterns","depReqPatterns","filter","p","length","filterByNames","map","dep","contains","Promise","all","workspaceName","workspaceLoc","locked","current","latest","wanted","normalized","registries","checkOutdated","upgradeTo","isDepOld","lt","orderByName","depA","depB","localeCompare","sort"],"sourceRoot":"../src","sources":["package-request.js"],"sourcesContent":["/* @flow */\n\nimport type {Dependency, DependencyRequestPattern, Manifest} from './types.js';\nimport type {FetcherNames} from './fetchers/index.js';\nimport type PackageResolver from './package-resolver.js';\nimport type {Reporter} from './reporters/index.js';\nimport type Config from './config.js';\nimport type {Install} from './cli/commands/install';\n\nimport path from 'path';\n\nimport invariant from 'invariant';\nimport semver from 'semver';\n\nimport {cleanDependencies} from './util/normalize-manifest/validate.js';\nimport Lockfile from './lockfile';\nimport PackageReference from './package-reference.js';\nimport {registries as registryResolvers} from './resolvers/index.js';\nimport {MessageError} from './errors.js';\nimport * as constants from './constants.js';\nimport * as versionUtil from './util/version.js';\nimport WorkspaceResolver from './resolvers/contextual/workspace-resolver.js';\nimport {getExoticResolver} from './resolvers/index.js';\nimport * as fs from './util/fs.js';\nimport {normalizePattern} from './util/normalize-pattern.js';\n\ntype ResolverRegistryNames = $Keys<typeof registryResolvers>;\n\nconst micromatch = require('micromatch');\n\nexport default class PackageRequest {\n constructor(req: DependencyRequestPattern, resolver: PackageResolver) {\n this.parentRequest = req.parentRequest;\n this.parentNames = req.parentNames || [];\n this.lockfile = resolver.lockfile;\n this.registry = req.registry;\n this.reporter = resolver.reporter;\n this.resolver = resolver;\n this.optional = req.optional;\n this.hint = req.hint;\n this.pattern = req.pattern;\n this.config = resolver.config;\n this.foundInfo = null;\n }\n\n init() {\n this.resolver.usedRegistries.add(this.registry);\n }\n\n parentRequest: ?PackageRequest;\n parentNames: Array<string>;\n lockfile: Lockfile;\n reporter: Reporter;\n resolver: PackageResolver;\n pattern: string;\n config: Config;\n registry: ResolverRegistryNames;\n optional: boolean;\n hint: ?constants.RequestHint;\n foundInfo: ?Manifest;\n\n getLocked(remoteType: FetcherNames): ?Manifest {\n // always prioritise root lockfile\n const shrunk = this.lockfile.getLocked(this.pattern);\n\n if (shrunk && shrunk.resolved) {\n const resolvedParts = versionUtil.explodeHashedUrl(shrunk.resolved);\n\n // Detect Git protocols (git://HOST/PATH or git+PROTOCOL://HOST/PATH)\n const preferredRemoteType = /^git(\\+[a-z0-9]+)?:\\/\\//.test(resolvedParts.url) ? 'git' : remoteType;\n\n return {\n name: shrunk.name,\n version: shrunk.version,\n _uid: shrunk.uid,\n _remote: {\n resolved: shrunk.resolved,\n type: preferredRemoteType,\n reference: resolvedParts.url,\n hash: resolvedParts.hash,\n integrity: shrunk.integrity,\n registry: shrunk.registry,\n packageName: shrunk.name,\n },\n optionalDependencies: shrunk.optionalDependencies || {},\n dependencies: shrunk.dependencies || {},\n prebuiltVariants: shrunk.prebuiltVariants || {},\n };\n } else {\n return null;\n }\n }\n\n /**\n * If the input pattern matches a registry one then attempt to find it on the registry.\n * Otherwise fork off to an exotic resolver if one matches.\n */\n\n async findVersionOnRegistry(pattern: string): Promise<Manifest> {\n const {range, name} = await this.normalize(pattern);\n\n const exoticResolver = getExoticResolver(range);\n if (exoticResolver) {\n let data = await this.findExoticVersionInfo(exoticResolver, range);\n\n // clone data as we're manipulating it in place and this could be resolved multiple\n // times\n data = Object.assign({}, data);\n\n // this is so the returned package response uses the overridden name. ie. if the\n // package's actual name is `bar`, but it's been specified in the manifest like:\n // \"foo\": \"http://foo.com/bar.tar.gz\"\n // then we use the foo name\n data.name = name;\n return data;\n }\n\n const Resolver = this.getRegistryResolver();\n const resolver = new Resolver(this, name, range);\n try {\n return await resolver.resolve();\n } catch (err) {\n // if it is not an error thrown by yarn and it has a parent request,\n // thow a more readable error\n if (!(err instanceof MessageError) && this.parentRequest && this.parentRequest.pattern) {\n throw new MessageError(\n this.reporter.lang('requiredPackageNotFoundRegistry', pattern, this.parentRequest.pattern, this.registry),\n );\n }\n throw err;\n }\n }\n\n /**\n * Get the registry resolver associated with this package request.\n */\n\n getRegistryResolver(): Function {\n const Resolver = registryResolvers[this.registry];\n if (Resolver) {\n return Resolver;\n } else {\n throw new MessageError(this.reporter.lang('unknownRegistryResolver', this.registry));\n }\n }\n\n async normalizeRange(pattern: string): Promise<string> {\n if (pattern.indexOf(':') > -1 || pattern.indexOf('@') > -1 || getExoticResolver(pattern)) {\n return pattern;\n }\n\n if (!semver.validRange(pattern)) {\n try {\n if (await fs.exists(path.join(this.config.cwd, pattern, constants.NODE_PACKAGE_JSON))) {\n this.reporter.warn(this.reporter.lang('implicitFileDeprecated', pattern));\n return `file:${pattern}`;\n }\n } catch (err) {\n // pass\n }\n }\n\n return pattern;\n }\n\n async normalize(pattern: string): any {\n const {name, range, hasVersion} = normalizePattern(pattern);\n const newRange = await this.normalizeRange(range);\n return {name, range: newRange, hasVersion};\n }\n\n /**\n * Construct an exotic resolver instance with the input `ExoticResolver` and `range`.\n */\n\n findExoticVersionInfo(ExoticResolver: Function, range: string): Promise<Manifest> {\n const resolver = new ExoticResolver(this, range);\n return resolver.resolve();\n }\n\n /**\n * If the current pattern matches an exotic resolver then delegate to it or else try\n * the registry.\n */\n\n async findVersionInfo(): Promise<Manifest> {\n const exoticResolver = getExoticResolver(this.pattern);\n if (exoticResolver) {\n return this.findExoticVersionInfo(exoticResolver, this.pattern);\n } else if (WorkspaceResolver.isWorkspace(this.pattern, this.resolver.workspaceLayout)) {\n invariant(this.resolver.workspaceLayout, 'expected workspaceLayout');\n const resolver = new WorkspaceResolver(this, this.pattern, this.resolver.workspaceLayout);\n let manifest;\n if (\n this.config.focus &&\n !this.pattern.includes(this.resolver.workspaceLayout.virtualManifestName) &&\n !this.pattern.startsWith(this.config.focusedWorkspaceName + '@')\n ) {\n const localInfo = this.resolver.workspaceLayout.getManifestByPattern(this.pattern);\n invariant(localInfo, 'expected local info for ' + this.pattern);\n const localManifest = localInfo.manifest;\n const requestPattern = localManifest.name + '@' + localManifest.version;\n manifest = await this.findVersionOnRegistry(requestPattern);\n }\n return resolver.resolve(manifest);\n } else {\n return this.findVersionOnRegistry(this.pattern);\n }\n }\n\n reportResolvedRangeMatch(info: Manifest, resolved: Manifest) {}\n\n /**\n * Do the final resolve of a package that had a match with an existing version.\n * After all unique versions have been discovered, so the best available version\n * is found.\n */\n resolveToExistingVersion(info: Manifest) {\n // get final resolved version\n const {range, name} = normalizePattern(this.pattern);\n const solvedRange = semver.validRange(range) ? info.version : range;\n const resolved: ?Manifest = this.resolver.getHighestRangeVersionMatch(name, solvedRange, info);\n invariant(resolved, 'should have a resolved reference');\n\n this.reportResolvedRangeMatch(info, resolved);\n const ref = resolved._reference;\n invariant(ref, 'Resolved package info has no package reference');\n ref.addRequest(this);\n ref.addPattern(this.pattern, resolved);\n ref.addOptional(this.optional);\n }\n\n /**\n * TODO description\n */\n async find({fresh, frozen}: {fresh: boolean, frozen?: boolean}): Promise<void> {\n // find version info for this package pattern\n const info: Manifest = await this.findVersionInfo();\n\n if (!semver.valid(info.version)) {\n throw new MessageError(this.reporter.lang('invalidPackageVersion', info.name, info.version));\n }\n\n info.fresh = fresh;\n cleanDependencies(info, false, this.reporter, () => {\n // swallow warnings\n });\n\n // check if while we were resolving this dep we've already resolved one that satisfies\n // the same range\n const {range, name} = normalizePattern(this.pattern);\n const solvedRange = semver.validRange(range) ? info.version : range;\n const resolved: ?Manifest =\n !info.fresh || frozen\n ? this.resolver.getExactVersionMatch(name, solvedRange, info)\n : this.resolver.getHighestRangeVersionMatch(name, solvedRange, info);\n\n if (resolved) {\n this.resolver.reportPackageWithExistingVersion(this, info);\n return;\n }\n\n if (info.flat && !this.resolver.flat) {\n throw new MessageError(this.reporter.lang('flatGlobalError', `${info.name}@${info.version}`));\n }\n\n // validate version info\n PackageRequest.validateVersionInfo(info, this.reporter);\n\n //\n const remote = info._remote;\n invariant(remote, 'Missing remote');\n\n // set package reference\n const ref = new PackageReference(this, info, remote);\n ref.addPattern(this.pattern, info);\n ref.addOptional(this.optional);\n ref.setFresh(fresh);\n info._reference = ref;\n info._remote = remote;\n // start installation of dependencies\n const promises = [];\n const deps = [];\n const parentNames = [...this.parentNames, name];\n // normal deps\n for (const depName in info.dependencies) {\n const depPattern = depName + '@' + info.dependencies[depName];\n deps.push(depPattern);\n promises.push(\n this.resolver.find({\n pattern: depPattern,\n registry: remote.registry,\n // dependencies of optional dependencies should themselves be optional\n optional: this.optional,\n parentRequest: this,\n parentNames,\n }),\n );\n }\n\n // optional deps\n for (const depName in info.optionalDependencies) {\n const depPattern = depName + '@' + info.optionalDependencies[depName];\n deps.push(depPattern);\n promises.push(\n this.resolver.find({\n hint: 'optional',\n pattern: depPattern,\n registry: remote.registry,\n optional: true,\n parentRequest: this,\n parentNames,\n }),\n );\n }\n if (remote.type === 'workspace' && !this.config.production) {\n // workspaces support dev dependencies\n for (const depName in info.devDependencies) {\n const depPattern = depName + '@' + info.devDependencies[depName];\n deps.push(depPattern);\n promises.push(\n this.resolver.find({\n hint: 'dev',\n pattern: depPattern,\n registry: remote.registry,\n optional: false,\n parentRequest: this,\n parentNames,\n }),\n );\n }\n }\n\n for (const promise of promises) {\n await promise;\n }\n\n ref.addDependencies(deps);\n\n // Now that we have all dependencies, it's safe to propagate optional\n for (const otherRequest of ref.requests.slice(1)) {\n ref.addOptional(otherRequest.optional);\n }\n }\n\n /**\n * TODO description\n */\n\n static validateVersionInfo(info: Manifest, reporter: Reporter) {\n // human readable name to use in errors\n const human = `${info.name}@${info.version}`;\n\n info.version = PackageRequest.getPackageVersion(info);\n\n for (const key of constants.REQUIRED_PACKAGE_KEYS) {\n if (!info[key]) {\n throw new MessageError(reporter.lang('missingRequiredPackageKey', human, key));\n }\n }\n }\n\n /**\n * Returns the package version if present, else defaults to the uid\n */\n\n static getPackageVersion(info: Manifest): string {\n // TODO possibly reconsider this behaviour\n return info.version === undefined ? info._uid : info.version;\n }\n\n /**\n * Gets all of the outdated packages and sorts them appropriately\n */\n\n static async getOutdatedPackages(\n lockfile: Lockfile,\n install: Install,\n config: Config,\n reporter: Reporter,\n filterByPatterns: ?Array<string>,\n flags: ?Object,\n ): Promise<Array<Dependency>> {\n const {requests: reqPatterns, workspaceLayout} = await install.fetchRequestFromCwd();\n\n // Filter out workspace patterns if necessary\n let depReqPatterns = workspaceLayout\n ? reqPatterns.filter(p => !workspaceLayout.getManifestByPattern(p.pattern))\n : reqPatterns;\n\n // filter the list down to just the packages requested.\n // prevents us from having to query the metadata for all packages.\n if ((filterByPatterns && filterByPatterns.length) || (flags && flags.pattern)) {\n const filterByNames =\n filterByPatterns && filterByPatterns.length\n ? filterByPatterns.map(pattern => normalizePattern(pattern).name)\n : [];\n depReqPatterns = depReqPatterns.filter(\n dep =>\n filterByNames.indexOf(normalizePattern(dep.pattern).name) >= 0 ||\n (flags && flags.pattern && micromatch.contains(normalizePattern(dep.pattern).name, flags.pattern)),\n );\n }\n\n const deps = await Promise.all(\n depReqPatterns.map(async ({pattern, hint, workspaceName, workspaceLoc}): Promise<Dependency> => {\n const locked = lockfile.getLocked(pattern);\n if (!locked) {\n throw new MessageError(reporter.lang('lockfileOutdated'));\n }\n\n const {name, version: current} = locked;\n let latest = '';\n let wanted = '';\n let url = '';\n\n const normalized = normalizePattern(pattern);\n\n if (getExoticResolver(pattern) || getExoticResolver(normalized.range)) {\n latest = wanted = 'exotic';\n url = normalized.range;\n } else {\n const registry = config.registries[locked.registry];\n\n ({latest, wanted, url} = await registry.checkOutdated(config, name, normalized.range));\n }\n\n return {\n name,\n current,\n wanted,\n latest,\n url,\n hint,\n range: normalized.range,\n upgradeTo: '',\n workspaceName: workspaceName || '',\n workspaceLoc: workspaceLoc || '',\n };\n }),\n );\n\n // Make sure to always output `exotic` versions to be compatible with npm\n const isDepOld = ({current, latest, wanted}) =>\n latest === 'exotic' || (semver.lt(current, wanted) || semver.lt(current, latest));\n const orderByName = (depA, depB) => depA.name.localeCompare(depB.name);\n return deps.filter(isDepOld).sort(orderByName);\n }\n}\n"],"mappings":"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"}