JezK
Edit File: npm-resolver.js.map
{"version":3,"file":"npm-resolver.js","names":["inquirer","require","tty","path","semver","ssri","NPM_REGISTRY_ID","NpmResolver","desiredVersion","config","offline","resolveRequestOffline","res","escapedName","NpmRegistry","escapeName","name","desiredRange","range","registries","npm","request","body","findVersionInRegistryResponse","getCache","getCachedPackagesDirs","cacheFolder","packageDirs","versions","map","dir","indexOf","readManifest","pkg","readPackageMetadata","metadata","remote","version","Object","assign","_remote","resolveConstraints","keys","satisfied","preferOffline","MessageError","reporter","lang","join","url","getOption","YARN_REGISTRY","replace","NPM_REGISTRY_RE","shrunk","getLocked","packBuiltPackages","prebuiltVariants","prebuiltName","getPlatformSpecificPackageFilename","offlineMirrorPath","getOfflineMirrorPath","filename","fs","exists","reference","hash","integrity","fromHex","toString","autoAddIntegrity","resolveRequest","info","deprecated","dist","parse","shasum","human","parentNames","length","concat","warn","tarball","resolved","cleanRegistry","type","registry","packageName","_uid","latestVersion","latest","undefined","satisfies","nonInteractive","resolver","activity","end","log","process","stdout","WriteStream","pageSize","rows","prompt","message","choices","rsort","response","RegistryResolver"],"sourceRoot":"../../../src","sources":["resolvers/registries/npm-resolver.js"],"sourcesContent":["/* @flow */\n\nimport {getCachedPackagesDirs} from '../../cli/commands/cache.js';\nimport type {Manifest} from '../../types.js';\nimport type Config from '../../config.js';\nimport type PackageRequest from '../../package-request.js';\nimport {MessageError} from '../../errors.js';\nimport RegistryResolver from './registry-resolver.js';\nimport NpmRegistry from '../../registries/npm-registry.js';\nimport map from '../../util/map.js';\nimport * as fs from '../../util/fs.js';\nimport {YARN_REGISTRY, NPM_REGISTRY_RE} from '../../constants.js';\nimport {getPlatformSpecificPackageFilename} from '../../util/package-name-utils.js';\n\nconst inquirer = require('inquirer');\nconst tty = require('tty');\nconst path = require('path');\nconst semver = require('semver');\nconst ssri = require('ssri');\n\nconst NPM_REGISTRY_ID = 'npm';\n\ntype RegistryResponse = {\n name: string,\n versions: {[key: string]: Manifest},\n 'dist-tags': {[key: string]: string},\n};\n\nexport default class NpmResolver extends RegistryResolver {\n static registry = NPM_REGISTRY_ID;\n\n static async findVersionInRegistryResponse(\n config: Config,\n name: string,\n range: string,\n body: RegistryResponse,\n request: ?PackageRequest,\n ): Promise<Manifest> {\n if (body.versions && Object.keys(body.versions).length === 0) {\n throw new MessageError(config.reporter.lang('registryNoVersions', body.name));\n }\n\n if (!body['dist-tags'] || !body.versions) {\n throw new MessageError(config.reporter.lang('malformedRegistryResponse', name));\n }\n\n if (range in body['dist-tags']) {\n range = body['dist-tags'][range];\n }\n\n // If the latest tag in the registry satisfies the requested range, then use that.\n // Otherwise we will fall back to semver maxSatisfying.\n // This mimics logic in NPM. See issue #3560\n const latestVersion = body['dist-tags'] ? body['dist-tags'].latest : undefined;\n if (latestVersion && semver.satisfies(latestVersion, range)) {\n return body.versions[latestVersion];\n }\n\n const satisfied = await config.resolveConstraints(Object.keys(body.versions), range);\n if (satisfied) {\n return body.versions[satisfied];\n } else if (request && !config.nonInteractive) {\n if (request.resolver && request.resolver.activity) {\n request.resolver.activity.end();\n }\n config.reporter.log(config.reporter.lang('couldntFindVersionThatMatchesRange', body.name, range));\n let pageSize;\n if (process.stdout instanceof tty.WriteStream) {\n pageSize = process.stdout.rows - 2;\n }\n const response: {[key: string]: ?string} = await inquirer.prompt([\n {\n name: 'package',\n type: 'list',\n message: config.reporter.lang('chooseVersionFromList', body.name),\n choices: (semver: Object).rsort(Object.keys(body.versions)),\n pageSize,\n },\n ]);\n if (response && response.package) {\n return body.versions[response.package];\n }\n }\n throw new MessageError(config.reporter.lang('couldntFindVersionThatMatchesRange', body.name, range));\n }\n\n async resolveRequest(desiredVersion: ?string): Promise<?Manifest> {\n if (this.config.offline) {\n const res = await this.resolveRequestOffline();\n if (res != null) {\n return res;\n }\n }\n\n const escapedName = NpmRegistry.escapeName(this.name);\n const desiredRange = desiredVersion || this.range;\n const body = await this.config.registries.npm.request(escapedName);\n\n if (body) {\n return NpmResolver.findVersionInRegistryResponse(this.config, escapedName, desiredRange, body, this.request);\n } else {\n return null;\n }\n }\n\n async resolveRequestOffline(): Promise<?Manifest> {\n const packageDirs = await this.config.getCache('cachedPackages', (): Promise<Array<string>> => {\n return getCachedPackagesDirs(this.config, this.config.cacheFolder);\n });\n\n const versions = map();\n\n for (const dir of packageDirs) {\n // check if folder contains the registry prefix\n if (dir.indexOf(`${NPM_REGISTRY_ID}-`) === -1) {\n continue;\n }\n\n // read manifest and validate correct name\n const pkg = await this.config.readManifest(dir, NPM_REGISTRY_ID);\n if (pkg.name !== this.name) {\n continue;\n }\n\n // read package metadata\n const metadata = await this.config.readPackageMetadata(dir);\n if (!metadata.remote) {\n continue; // old yarn metadata\n }\n\n versions[pkg.version] = Object.assign({}, pkg, {\n _remote: metadata.remote,\n });\n }\n\n const satisfied = await this.config.resolveConstraints(Object.keys(versions), this.range);\n if (satisfied) {\n return versions[satisfied];\n } else if (!this.config.preferOffline) {\n throw new MessageError(\n this.reporter.lang('couldntFindPackageInCache', this.name, this.range, Object.keys(versions).join(', ')),\n );\n } else {\n return null;\n }\n }\n\n cleanRegistry(url: string): string {\n if (this.config.getOption('registry') === YARN_REGISTRY) {\n return url.replace(NPM_REGISTRY_RE, YARN_REGISTRY);\n } else {\n return url;\n }\n }\n\n async resolve(): Promise<Manifest> {\n // lockfile\n const shrunk = this.request.getLocked('tarball');\n if (shrunk) {\n if (this.config.packBuiltPackages && shrunk.prebuiltVariants && shrunk._remote) {\n const prebuiltVariants = shrunk.prebuiltVariants;\n const prebuiltName = getPlatformSpecificPackageFilename(shrunk);\n const offlineMirrorPath = this.config.getOfflineMirrorPath();\n if (prebuiltVariants[prebuiltName] && offlineMirrorPath) {\n const filename = path.join(offlineMirrorPath, 'prebuilt', prebuiltName + '.tgz');\n const {_remote} = shrunk;\n if (_remote && (await fs.exists(filename))) {\n _remote.reference = `file:${filename}`;\n _remote.hash = prebuiltVariants[prebuiltName];\n _remote.integrity = ssri.fromHex(_remote.hash, 'sha1').toString();\n }\n }\n }\n }\n if (\n shrunk &&\n shrunk._remote &&\n (shrunk._remote.integrity || this.config.offline || !this.config.autoAddIntegrity)\n ) {\n // if the integrity field does not exist, we're not network-restricted, and the\n // migration hasn't been disabled, it needs to be created\n return shrunk;\n }\n\n const desiredVersion = shrunk && shrunk.version ? shrunk.version : null;\n const info: ?Manifest = await this.resolveRequest(desiredVersion);\n if (info == null) {\n throw new MessageError(this.reporter.lang('packageNotFoundRegistry', this.name, NPM_REGISTRY_ID));\n }\n\n const {deprecated, dist} = info;\n if (shrunk && shrunk._remote) {\n shrunk._remote.integrity =\n dist && dist.integrity\n ? ssri.parse(dist.integrity)\n : ssri.fromHex(dist && dist.shasum ? dist.shasum : '', 'sha1');\n return shrunk;\n }\n\n if (typeof deprecated === 'string') {\n let human = `${info.name}@${info.version}`;\n const parentNames = this.request.parentNames;\n if (parentNames.length) {\n human = parentNames.concat(human).join(' > ');\n }\n this.reporter.warn(`${human}: ${deprecated}`);\n }\n\n if (dist != null && dist.tarball) {\n info._remote = {\n resolved: `${this.cleanRegistry(dist.tarball)}#${dist.shasum}`,\n type: 'tarball',\n reference: this.cleanRegistry(dist.tarball),\n hash: dist.shasum,\n integrity: dist.integrity ? ssri.parse(dist.integrity) : ssri.fromHex(dist.shasum, 'sha1'),\n registry: NPM_REGISTRY_ID,\n packageName: info.name,\n };\n }\n\n info._uid = info.version;\n\n return info;\n }\n}\n"],"mappings":"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"}