JezK
Edit File: add.js.map
{"version":3,"file":"add.js","names":["SILENCE_DEPENDENCY_TYPE_WARNINGS","Add","args","flags","config","reporter","lockfile","workspaceRootIsCwd","cwd","lockfileFolder","_flags","flagToOrigin","dev","optional","peer","filter","Boolean","shift","requests","requestsWithArgs","slice","pattern","push","registry","pkg","tilde","configPrefix","String","getOption","exact","normalizePattern","hasVersion","range","version","getExoticResolver","semver","satisfies","valid","prefix","patterns","preparedPatterns","resolver","dedupePatterns","getResolvedPattern","invariant","getPatternVersion","newPattern","name","addedPatterns","replacePattern","cwdManifest","cwdIsRoot","manifest","cwdPackage","getStrictResolvedPattern","e","warn","lang","newPatterns","_iterateAddedPackages","dependencyType","pkgName","filtered","p","length","toString","_reference","ref","workspaceLayout","lockfileCache","cache","integrityChecker","check","match","fs","exists","path","join","constants","LOCKFILE_FILENAME","haveLockfile","integrityFileMissing","scripts","setForce","isWorkspaceRoot","workspaceRootFolder","ignoreWorkspaceRootCheck","MessageError","Install","prototype","init","call","maybeOutputSaveTree","manifests","applyChanges","fetchRequestFromCwd","object","indexOf","commandName","opts","reqDepth","merged","buildTree","linker","trees","count","success","resolverPatterns","Set","add","directRequireDependencies","has","info","tree","f","patternOrigins","Object","keys","rootPatternsToOrigin","depType","reduce","acc","prev","target","hasWrapper","commander","setFlags","description","usage","option","run","Lockfile","fromDirectory","wrapLifecycle","install"],"sourceRoot":"../../../src","sources":["cli/commands/add.js"],"sourcesContent":["/* @flow */\n\nimport type {RegistryNames} from '../../registries/index.js';\nimport type {Reporter} from '../../reporters/index.js';\nimport type {InstallCwdRequest} from './install.js';\nimport type {DependencyRequestPatterns, Manifest} from '../../types.js';\nimport type Config, {RootManifests} from '../../config.js';\nimport type {ListOptions} from './list.js';\nimport Lockfile from '../../lockfile';\nimport {normalizePattern} from '../../util/normalize-pattern.js';\nimport WorkspaceLayout from '../../workspace-layout.js';\nimport {getExoticResolver} from '../../resolvers/index.js';\nimport {buildTree} from './list.js';\nimport {wrapLifecycle, Install} from './install.js';\nimport {MessageError} from '../../errors.js';\nimport * as constants from '../../constants.js';\nimport * as fs from '../../util/fs.js';\n\nimport invariant from 'invariant';\nimport path from 'path';\nimport semver from 'semver';\n\nconst SILENCE_DEPENDENCY_TYPE_WARNINGS = ['upgrade', 'upgrade-interactive'];\n\nexport class Add extends Install {\n constructor(args: Array<string>, flags: Object, config: Config, reporter: Reporter, lockfile: Lockfile) {\n const workspaceRootIsCwd = config.cwd === config.lockfileFolder;\n const _flags = flags ? {...flags, workspaceRootIsCwd} : {workspaceRootIsCwd};\n super(_flags, config, reporter, lockfile);\n this.args = args;\n // only one flag is supported, so we can figure out which one was passed to `yarn add`\n this.flagToOrigin = [\n flags.dev && 'devDependencies',\n flags.optional && 'optionalDependencies',\n flags.peer && 'peerDependencies',\n 'dependencies',\n ]\n .filter(Boolean)\n .shift();\n }\n\n args: Array<string>;\n flagToOrigin: string;\n addedPatterns: Array<string>;\n\n /**\n * TODO\n */\n\n prepareRequests(requests: DependencyRequestPatterns): DependencyRequestPatterns {\n const requestsWithArgs = requests.slice();\n\n for (const pattern of this.args) {\n requestsWithArgs.push({\n pattern,\n registry: 'npm',\n optional: false,\n });\n }\n return requestsWithArgs;\n }\n\n /**\n * returns version for a pattern based on Manifest\n */\n getPatternVersion(pattern: string, pkg: Manifest): string {\n const tilde = this.flags.tilde;\n const configPrefix = String(this.config.getOption('save-prefix'));\n const exact = this.flags.exact || Boolean(this.config.getOption('save-exact')) || configPrefix === '';\n const {hasVersion, range} = normalizePattern(pattern);\n let version;\n\n if (getExoticResolver(pattern)) {\n // wasn't a name/range tuple so this is just a raw exotic pattern\n version = pattern;\n } else if (hasVersion && range && (semver.satisfies(pkg.version, range) || getExoticResolver(range))) {\n // if the user specified a range then use it verbatim\n version = range;\n }\n\n if (!version || semver.valid(version)) {\n let prefix = configPrefix || '^';\n\n if (tilde) {\n prefix = '~';\n } else if (version || exact) {\n prefix = '';\n }\n version = `${prefix}${pkg.version}`;\n }\n\n return version;\n }\n\n preparePatterns(patterns: Array<string>): Array<string> {\n const preparedPatterns = patterns.slice();\n for (const pattern of this.resolver.dedupePatterns(this.args)) {\n const pkg = this.resolver.getResolvedPattern(pattern);\n invariant(pkg, `missing package ${pattern}`);\n const version = this.getPatternVersion(pattern, pkg);\n const newPattern = `${pkg.name}@${version}`;\n preparedPatterns.push(newPattern);\n this.addedPatterns.push(newPattern);\n if (newPattern === pattern) {\n continue;\n }\n this.resolver.replacePattern(pattern, newPattern);\n }\n return preparedPatterns;\n }\n\n preparePatternsForLinking(patterns: Array<string>, cwdManifest: Manifest, cwdIsRoot: boolean): Array<string> {\n // remove the newly added patterns if cwd != root and update the in-memory package dependency instead\n if (cwdIsRoot) {\n return patterns;\n }\n\n let manifest;\n const cwdPackage = `${cwdManifest.name}@${cwdManifest.version}`;\n try {\n manifest = this.resolver.getStrictResolvedPattern(cwdPackage);\n } catch (e) {\n this.reporter.warn(this.reporter.lang('unknownPackage', cwdPackage));\n return patterns;\n }\n\n let newPatterns = patterns;\n this._iterateAddedPackages((pattern, registry, dependencyType, pkgName, version) => {\n // remove added package from patterns list\n const filtered = newPatterns.filter(p => p !== pattern);\n invariant(\n newPatterns.length - filtered.length > 0,\n `expect added pattern '${pattern}' in the list: ${patterns.toString()}`,\n );\n newPatterns = filtered;\n\n // add new package into in-memory manifest so they can be linked properly\n manifest[dependencyType] = manifest[dependencyType] || {};\n if (manifest[dependencyType][pkgName] === version) {\n // package already existed\n return;\n }\n\n // update dependencies in the manifest\n invariant(manifest._reference, 'manifest._reference should not be null');\n const ref: Object = manifest._reference;\n\n ref['dependencies'] = ref['dependencies'] || [];\n ref['dependencies'].push(pattern);\n });\n\n return newPatterns;\n }\n\n async bailout(patterns: Array<string>, workspaceLayout: ?WorkspaceLayout): Promise<boolean> {\n const lockfileCache = this.lockfile.cache;\n if (!lockfileCache) {\n return false;\n }\n const match = await this.integrityChecker.check(patterns, lockfileCache, this.flags, workspaceLayout);\n const haveLockfile = await fs.exists(path.join(this.config.lockfileFolder, constants.LOCKFILE_FILENAME));\n if (match.integrityFileMissing && haveLockfile) {\n // Integrity file missing, force script installations\n this.scripts.setForce(true);\n }\n return false;\n }\n\n /**\n * Description\n */\n\n async init(): Promise<Array<string>> {\n const isWorkspaceRoot = this.config.workspaceRootFolder && this.config.cwd === this.config.workspaceRootFolder;\n\n // running \"yarn add something\" in a workspace root is often a mistake\n if (isWorkspaceRoot && !this.flags.ignoreWorkspaceRootCheck) {\n throw new MessageError(this.reporter.lang('workspacesAddRootCheck'));\n }\n\n this.addedPatterns = [];\n const patterns = await Install.prototype.init.call(this);\n await this.maybeOutputSaveTree(patterns);\n return patterns;\n }\n\n async applyChanges(manifests: RootManifests): Promise<boolean> {\n await Install.prototype.applyChanges.call(this, manifests);\n\n // fill rootPatternsToOrigin without `excludePatterns`\n await Install.prototype.fetchRequestFromCwd.call(this);\n\n this._iterateAddedPackages((pattern, registry, dependencyType, pkgName, version) => {\n // add it to manifest\n const {object} = manifests[registry];\n\n object[dependencyType] = object[dependencyType] || {};\n object[dependencyType][pkgName] = version;\n if (\n SILENCE_DEPENDENCY_TYPE_WARNINGS.indexOf(this.config.commandName) === -1 &&\n dependencyType !== this.flagToOrigin\n ) {\n this.reporter.warn(this.reporter.lang('moduleAlreadyInManifest', pkgName, dependencyType, this.flagToOrigin));\n }\n });\n\n return true;\n }\n\n /**\n * Description\n */\n\n fetchRequestFromCwd(): Promise<InstallCwdRequest> {\n return Install.prototype.fetchRequestFromCwd.call(this, this.args);\n }\n\n /**\n * Output a tree of any newly added dependencies.\n */\n\n async maybeOutputSaveTree(patterns: Array<string>): Promise<void> {\n // don't limit the shown tree depth\n const opts: ListOptions = {\n reqDepth: 0,\n };\n\n // restore the original patterns\n const merged = [...patterns, ...this.addedPatterns];\n\n const {trees, count} = await buildTree(this.resolver, this.linker, merged, opts, true, true);\n\n if (count === 1) {\n this.reporter.success(this.reporter.lang('savedNewDependency'));\n } else {\n this.reporter.success(this.reporter.lang('savedNewDependencies', count));\n }\n\n if (!count) {\n return;\n }\n\n const resolverPatterns = new Set();\n for (const pattern of patterns) {\n const {version, name} = this.resolver.getResolvedPattern(pattern) || {};\n resolverPatterns.add(`${name}@${version}`);\n }\n const directRequireDependencies = trees.filter(({name}) => resolverPatterns.has(name));\n\n this.reporter.info(this.reporter.lang('directDependencies'));\n this.reporter.tree('newDirectDependencies', directRequireDependencies);\n this.reporter.info(this.reporter.lang('allDependencies'));\n this.reporter.tree('newAllDependencies', trees);\n }\n\n /**\n * Save added packages to manifest if any of the --save flags were used.\n */\n\n async savePackages(): Promise<void> {}\n\n _iterateAddedPackages(\n f: (pattern: string, registry: RegistryNames, dependencyType: string, pkgName: string, version: string) => void,\n ) {\n const patternOrigins = Object.keys(this.rootPatternsToOrigin);\n\n // add new patterns to their appropriate registry manifest\n for (const pattern of this.addedPatterns) {\n const pkg = this.resolver.getResolvedPattern(pattern);\n invariant(pkg, `missing package ${pattern}`);\n const version = this.getPatternVersion(pattern, pkg);\n const ref = pkg._reference;\n invariant(ref, 'expected package reference');\n // lookup the package to determine dependency type; used during `yarn upgrade`\n const depType = patternOrigins.reduce((acc, prev) => {\n if (prev.indexOf(`${pkg.name}@`) === 0) {\n return this.rootPatternsToOrigin[prev];\n }\n return acc;\n }, null);\n\n // depType is calculated when `yarn upgrade` command is used\n const target = depType || this.flagToOrigin;\n\n f(pattern, ref.registry, target, pkg.name, version);\n }\n }\n}\n\nexport function hasWrapper(commander: Object): boolean {\n return true;\n}\n\nexport function setFlags(commander: Object) {\n commander.description('Installs a package and any packages that it depends on.');\n commander.usage('add [packages ...] [flags]');\n commander.option('-W, --ignore-workspace-root-check', 'required to run yarn add inside a workspace root');\n commander.option('-D, --dev', 'save package to your `devDependencies`');\n commander.option('-P, --peer', 'save package to your `peerDependencies`');\n commander.option('-O, --optional', 'save package to your `optionalDependencies`');\n commander.option('-E, --exact', 'install exact version');\n commander.option('-T, --tilde', 'install most recent release with the same minor version');\n commander.option('-A, --audit', 'Run vulnerability audit on installed packages');\n}\n\nexport async function run(config: Config, reporter: Reporter, commander: Object, flags: Object, args: Array<string>): Promise<void> {\n if (args.length < 1) {\n throw new MessageError(reporter.lang('missingAddDependencies'));\n }\n\n const lockfile = await Lockfile.fromDirectory(config.lockfileFolder, reporter);\n\n await wrapLifecycle(config, flags, async () => {\n const install = new Add(args, flags, config, reporter, lockfile);\n await install.init();\n });\n}\n"],"mappings":"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"}