JezK
Edit File: config.js.map
{"version":3,"file":"config.js","names":["crypto","require","detectIndent","invariant","path","micromatch","isCi","isCI","sortObject","object","sortedObject","Object","keys","sort","forEach","item","Config","reporter","constraintResolver","ConstraintResolver","requestManager","RequestManager","_init","key","factory","cached","cache","err","resolve","value","registries","yarn","getOption","length","resolveWithHome","versions","range","reduce","opts","findWorkspaceRoot","cwd","workspaceRootFolder","lockfileFolder","focus","MessageError","lang","readRootManifest","focusedWorkspaceManifest","focusedWorkspaceName","name","linkedModules","fs","readdir","linkFolder","code","dir","linkedPath","join","scopedLinked","push","map","scopedDir","Registry","extraneousRcFiles","extraneousYarnrcFiles","registry","enableDefaultRc","init","registryFolders","indexOf","folder","modulesFolder","networkConcurrency","Number","constants","NETWORK_CONCURRENCY","childConcurrency","process","env","CHILD_CONCURRENCY","networkTimeout","NETWORK_TIMEOUT","httpProxy","httpsProxy","setOptions","userAgent","String","strictSSL","Boolean","ca","Array","prototype","concat","cafile","cert","globalFolder","GLOBAL_MODULE_DIRECTORY","cacheRootFolder","cacheFolder","preferredCacheFolders","PREFERRED_MODULE_CACHE_DIRECTORIES","preferredCacheFolder","getFirstSuitableFolder","W_OK","X_OK","R_OK","cacheFolderQuery","skipped","skippedEntry","warn","_cacheRootFolder","maybeReadManifest","manifest","plugnplayByEnv","plugnplayEnabled","plugnplayPersist","enablePnp","disablePnp","installConfig","pnp","platform","cacheRootFolderDrive","parse","root","toLowerCase","lockfileFolderDrive","plugnplayShebang","plugnplayBlacklist","ignoreScripts","workspacesEnabled","workspacesNohoistEnabled","offlineCacheFolder","pruneOfflineMirror","enableMetaFolder","enableLockfileVersions","linkFileDependencies","packBuiltPackages","autoAddIntegrity","boolifyWithDefault","CACHE_VERSION","tempFolder","mkdirp","production","undefined","NODE_ENV","NPM_CONFIG_PRODUCTION","YARN_PRODUCTION","looseSemver","commandName","preferOffline","LINK_REGISTRY_DIRECTORY","offline","binLinks","updateChecksums","plugnplayUnplugged","plugnplayPurgeUnpluggedPackages","ignorePlatform","disablePrepublish","nonInteractive","stdout","isTTY","captureHar","otp","pkg","slug","replace","hash","remote","version","uid","integrity","generateUniquePackageSlug","getUnpluggedPath","unpluggedPackages","Map","unpluggedPath","exists","unpluggedName","nmListing","target","set","Promise","execFromManifest","filename","packageFilename","mirrorPath","registryMirrorPath","config","basename","dest","METADATA_FILENAME","getCache","readJson","metadata","readManifest","artifacts","priorityRegistry","isRoot","metadataLoc","tryManifest","file","loc","data","_registry","_loc","normalizeManifest","registryNames","initial","previous","current","normalize","findManifest","ws","extractWorkspaces","packages","relativePath","relative","dirname","rootManifest","workspaces","getWorkspaces","patterns","isArray","registryFilenames","registryName","constructor","trailingPattern","ignorePatterns","all","pattern","glob","ignore","ignorePattern","files","Set","hasOwnProperty","call","shouldThrow","wsCopy","warnings","errors","nohoist","msg","ref","_reference","manifests","jsonLoc","indent","readJsonAndFile","info","content","DEPENDENCY_TYPES","field","writeFilePreservingEol","JSON","stringify","DEFAULT_INDENT","SyntaxError","message","NoopReporter"],"sourceRoot":"../src","sources":["config.js"],"sourcesContent":["/* @flow */\n\nimport type {RegistryNames, ConfigRegistries} from './registries/index.js';\nimport type {Reporter} from './reporters/index.js';\nimport type {Manifest, PackageRemote, WorkspacesManifestMap, WorkspacesConfig} from './types.js';\nimport type PackageReference from './package-reference.js';\nimport {execFromManifest} from './util/execute-lifecycle-script.js';\nimport {resolveWithHome} from './util/path.js';\nimport {boolifyWithDefault} from './util/conversion.js';\nimport normalizeManifest from './util/normalize-manifest/index.js';\nimport {MessageError} from './errors.js';\nimport * as fs from './util/fs.js';\nimport * as constants from './constants.js';\nimport ConstraintResolver from './package-constraint-resolver.js';\nimport RequestManager from './util/request-manager.js';\nimport {registries, registryNames} from './registries/index.js';\nimport {NoopReporter} from './reporters/index.js';\nimport map from './util/map.js';\n\nconst crypto = require('crypto');\nconst detectIndent = require('detect-indent');\nconst invariant = require('invariant');\nconst path = require('path');\nconst micromatch = require('micromatch');\nvar isCi = require('ci-info').isCI;\n\nexport type ConfigOptions = {\n cwd?: ?string,\n _cacheRootFolder?: ?string,\n cacheFolder?: ?string,\n tempFolder?: ?string,\n modulesFolder?: ?string,\n globalFolder?: ?string,\n linkFolder?: ?string,\n offline?: boolean,\n preferOffline?: boolean,\n pruneOfflineMirror?: boolean,\n enableMetaFolder?: boolean,\n linkFileDependencies?: boolean,\n captureHar?: boolean,\n ignoreScripts?: boolean,\n ignorePlatform?: boolean,\n ignoreEngines?: boolean,\n cafile?: ?string,\n production?: boolean,\n disablePrepublish?: boolean,\n binLinks?: boolean,\n networkConcurrency?: number,\n childConcurrency?: number,\n networkTimeout?: number,\n nonInteractive?: boolean,\n enablePnp?: boolean,\n disablePnp?: boolean,\n offlineCacheFolder?: string,\n\n enableDefaultRc?: boolean,\n extraneousYarnrcFiles?: Array<string>,\n\n // Loosely compare semver for invalid cases like \"0.01.0\"\n looseSemver?: ?boolean,\n\n httpProxy?: ?string,\n httpsProxy?: ?string,\n\n commandName?: ?string,\n registry?: ?string,\n\n updateChecksums?: boolean,\n\n focus?: boolean,\n\n otp?: string,\n};\n\ntype PackageMetadata = {\n artifacts: Array<string>,\n registry: RegistryNames,\n hash: string,\n remote: ?PackageRemote,\n package: Manifest,\n};\n\nexport type RootManifests = {\n [registryName: RegistryNames]: {\n loc: string,\n indent: ?string,\n object: Object,\n exists: boolean,\n },\n};\n\nfunction sortObject(object: Object): Object {\n const sortedObject = {};\n Object.keys(object).sort().forEach(item => {\n sortedObject[item] = object[item];\n });\n return sortedObject;\n}\n\nexport default class Config {\n constructor(reporter: Reporter) {\n this.constraintResolver = new ConstraintResolver(this, reporter);\n this.requestManager = new RequestManager(reporter);\n this.reporter = reporter;\n this._init({});\n }\n\n //\n enableDefaultRc: boolean;\n extraneousYarnrcFiles: Array<string>;\n\n //\n looseSemver: boolean;\n offline: boolean;\n preferOffline: boolean;\n pruneOfflineMirror: boolean;\n enableMetaFolder: boolean;\n enableLockfileVersions: boolean;\n linkFileDependencies: boolean;\n ignorePlatform: boolean;\n binLinks: boolean;\n updateChecksums: boolean;\n\n // cache packages in offline mirror folder as new .tgz files\n packBuiltPackages: boolean;\n\n //\n linkedModules: Array<string>;\n\n //\n linkFolder: string;\n\n //\n globalFolder: string;\n\n //\n constraintResolver: ConstraintResolver;\n\n networkConcurrency: number;\n\n childConcurrency: number;\n\n //\n networkTimeout: number;\n\n //\n requestManager: RequestManager;\n\n //\n modulesFolder: ?string;\n\n //\n _cacheRootFolder: string;\n\n //\n cacheFolder: string;\n\n //\n tempFolder: string;\n\n //\n reporter: Reporter;\n\n // Whether we should ignore executing lifecycle scripts\n ignoreScripts: boolean;\n\n production: boolean;\n\n disablePrepublish: boolean;\n\n nonInteractive: boolean;\n\n plugnplayPersist: boolean;\n plugnplayEnabled: boolean;\n plugnplayShebang: ?string;\n plugnplayBlacklist: ?string;\n plugnplayUnplugged: Array<string>;\n plugnplayPurgeUnpluggedPackages: boolean;\n\n workspacesEnabled: boolean;\n workspacesNohoistEnabled: boolean;\n\n offlineCacheFolder: ?string;\n\n //\n cwd: string;\n workspaceRootFolder: ?string;\n lockfileFolder: string;\n\n //\n registries: ConfigRegistries;\n registryFolders: Array<string>;\n\n //\n cache: {\n [key: string]: ?Promise<any>,\n };\n\n //\n commandName: string;\n\n focus: boolean;\n focusedWorkspaceName: string;\n\n autoAddIntegrity: boolean;\n\n otp: ?string;\n\n /**\n * Execute a promise produced by factory if it doesn't exist in our cache with\n * the associated key.\n */\n\n getCache<T>(key: string, factory: () => Promise<T>): Promise<T> {\n const cached = this.cache[key];\n if (cached) {\n return cached;\n }\n\n return (this.cache[key] = factory().catch((err: mixed) => {\n this.cache[key] = null;\n throw err;\n }));\n }\n\n /**\n * Get a config option from our yarn config.\n */\n\n getOption(key: string, resolve: boolean = false): mixed {\n const value = this.registries.yarn.getOption(key);\n\n if (resolve && typeof value === 'string' && value.length) {\n return resolveWithHome(value);\n }\n\n return value;\n }\n\n /**\n * Reduce a list of versions to a single one based on an input range.\n */\n\n resolveConstraints(versions: Array<string>, range: string): Promise<?string> {\n return this.constraintResolver.reduce(versions, range);\n }\n\n /**\n * Initialise config. Fetch registry options, find package roots.\n */\n\n async init(opts: ConfigOptions = {}): Promise<void> {\n this._init(opts);\n\n this.workspaceRootFolder = await this.findWorkspaceRoot(this.cwd);\n this.lockfileFolder = this.workspaceRootFolder || this.cwd;\n\n // using focus in a workspace root is not allowed\n if (this.focus && (!this.workspaceRootFolder || this.cwd === this.workspaceRootFolder)) {\n throw new MessageError(this.reporter.lang('workspacesFocusRootCheck'));\n }\n\n if (this.focus) {\n const focusedWorkspaceManifest = await this.readRootManifest();\n this.focusedWorkspaceName = focusedWorkspaceManifest.name;\n }\n\n this.linkedModules = [];\n\n let linkedModules;\n try {\n linkedModules = await fs.readdir(this.linkFolder);\n } catch (err) {\n if (err.code === 'ENOENT') {\n linkedModules = [];\n } else {\n throw err;\n }\n }\n\n for (const dir of linkedModules) {\n const linkedPath = path.join(this.linkFolder, dir);\n\n if (dir[0] === '@') {\n // it's a scope, not a package\n const scopedLinked = await fs.readdir(linkedPath);\n this.linkedModules.push(...scopedLinked.map(scopedDir => path.join(dir, scopedDir)));\n } else {\n this.linkedModules.push(dir);\n }\n }\n\n for (const key of Object.keys(registries)) {\n const Registry = registries[key];\n\n const extraneousRcFiles = Registry === registries.yarn ? this.extraneousYarnrcFiles : [];\n\n // instantiate registry\n const registry = new Registry(\n this.cwd,\n this.registries,\n this.requestManager,\n this.reporter,\n this.enableDefaultRc,\n extraneousRcFiles,\n );\n await registry.init({\n registry: opts.registry,\n });\n\n this.registries[key] = registry;\n if (this.registryFolders.indexOf(registry.folder) === -1) {\n this.registryFolders.push(registry.folder);\n }\n }\n\n if (this.modulesFolder) {\n this.registryFolders = [this.modulesFolder];\n }\n\n this.networkConcurrency =\n opts.networkConcurrency || Number(this.getOption('network-concurrency')) || constants.NETWORK_CONCURRENCY;\n\n this.childConcurrency =\n opts.childConcurrency ||\n Number(this.getOption('child-concurrency')) ||\n Number(process.env.CHILD_CONCURRENCY) ||\n constants.CHILD_CONCURRENCY;\n\n this.networkTimeout = opts.networkTimeout || Number(this.getOption('network-timeout')) || constants.NETWORK_TIMEOUT;\n\n const httpProxy = opts.httpProxy || this.getOption('proxy');\n const httpsProxy = opts.httpsProxy || this.getOption('https-proxy');\n this.requestManager.setOptions({\n userAgent: String(this.getOption('user-agent')),\n httpProxy: httpProxy === false ? false : String(httpProxy || ''),\n httpsProxy: httpsProxy === false ? false : String(httpsProxy || ''),\n strictSSL: Boolean(this.getOption('strict-ssl')),\n ca: Array.prototype.concat(opts.ca || this.getOption('ca') || []).map(String),\n cafile: String(opts.cafile || this.getOption('cafile', true) || ''),\n cert: String(opts.cert || this.getOption('cert') || ''),\n key: String(opts.key || this.getOption('key') || ''),\n networkConcurrency: this.networkConcurrency,\n networkTimeout: this.networkTimeout,\n });\n\n this.globalFolder = opts.globalFolder || String(this.getOption('global-folder', true));\n if (this.globalFolder === 'undefined') {\n this.globalFolder = constants.GLOBAL_MODULE_DIRECTORY;\n }\n\n let cacheRootFolder = opts.cacheFolder || this.getOption('cache-folder', true);\n\n if (!cacheRootFolder) {\n let preferredCacheFolders = constants.PREFERRED_MODULE_CACHE_DIRECTORIES;\n const preferredCacheFolder = opts.preferredCacheFolder || this.getOption('preferred-cache-folder', true);\n\n if (preferredCacheFolder) {\n preferredCacheFolders = [String(preferredCacheFolder)].concat(preferredCacheFolders);\n }\n\n const cacheFolderQuery = await fs.getFirstSuitableFolder(\n preferredCacheFolders,\n fs.constants.W_OK | fs.constants.X_OK | fs.constants.R_OK, // eslint-disable-line no-bitwise\n );\n for (const skippedEntry of cacheFolderQuery.skipped) {\n this.reporter.warn(this.reporter.lang('cacheFolderSkipped', skippedEntry.folder));\n }\n\n cacheRootFolder = cacheFolderQuery.folder;\n if (cacheRootFolder && cacheFolderQuery.skipped.length > 0) {\n this.reporter.warn(this.reporter.lang('cacheFolderSelected', cacheRootFolder));\n }\n }\n\n if (!cacheRootFolder) {\n throw new MessageError(this.reporter.lang('cacheFolderMissing'));\n } else {\n this._cacheRootFolder = String(cacheRootFolder);\n }\n\n const manifest = await this.maybeReadManifest(this.lockfileFolder);\n\n const plugnplayByEnv = this.getOption('plugnplay-override');\n if (plugnplayByEnv != null) {\n this.plugnplayEnabled = plugnplayByEnv !== 'false' && plugnplayByEnv !== '0';\n this.plugnplayPersist = false;\n } else if (opts.enablePnp || opts.disablePnp) {\n this.plugnplayEnabled = !!opts.enablePnp;\n this.plugnplayPersist = true;\n } else if (manifest && manifest.installConfig && manifest.installConfig.pnp) {\n this.plugnplayEnabled = !!manifest.installConfig.pnp;\n this.plugnplayPersist = false;\n } else {\n this.plugnplayEnabled = false;\n this.plugnplayPersist = false;\n }\n\n if (process.platform === 'win32') {\n const cacheRootFolderDrive = path.parse(this._cacheRootFolder).root.toLowerCase();\n const lockfileFolderDrive = path.parse(this.lockfileFolder).root.toLowerCase();\n\n if (cacheRootFolderDrive !== lockfileFolderDrive) {\n if (this.plugnplayEnabled) {\n this.reporter.warn(this.reporter.lang('plugnplayWindowsSupport'));\n }\n this.plugnplayEnabled = false;\n this.plugnplayPersist = false;\n }\n }\n\n this.plugnplayShebang = String(this.getOption('plugnplay-shebang') || '') || '/usr/bin/env node';\n this.plugnplayBlacklist = String(this.getOption('plugnplay-blacklist') || '') || null;\n\n this.ignoreScripts = opts.ignoreScripts || Boolean(this.getOption('ignore-scripts', false));\n\n this.workspacesEnabled = this.getOption('workspaces-experimental') !== false;\n this.workspacesNohoistEnabled = this.getOption('workspaces-nohoist-experimental') !== false;\n\n this.offlineCacheFolder = String(this.getOption('offline-cache-folder') || '') || null;\n\n this.pruneOfflineMirror = Boolean(this.getOption('yarn-offline-mirror-pruning'));\n this.enableMetaFolder = Boolean(this.getOption('enable-meta-folder'));\n this.enableLockfileVersions = Boolean(this.getOption('yarn-enable-lockfile-versions'));\n this.linkFileDependencies = Boolean(this.getOption('yarn-link-file-dependencies'));\n this.packBuiltPackages = Boolean(this.getOption('experimental-pack-script-packages-in-mirror'));\n\n this.autoAddIntegrity = !boolifyWithDefault(String(this.getOption('unsafe-disable-integrity-migration')), true);\n\n //init & create cacheFolder, tempFolder\n this.cacheFolder = path.join(this._cacheRootFolder, 'v' + String(constants.CACHE_VERSION));\n this.tempFolder = opts.tempFolder || path.join(this.cacheFolder, '.tmp');\n await fs.mkdirp(this.cacheFolder);\n await fs.mkdirp(this.tempFolder);\n\n if (opts.production !== undefined) {\n this.production = Boolean(opts.production);\n } else {\n this.production =\n Boolean(this.getOption('production')) ||\n (process.env.NODE_ENV === 'production' &&\n process.env.NPM_CONFIG_PRODUCTION !== 'false' &&\n process.env.YARN_PRODUCTION !== 'false');\n }\n\n if (this.workspaceRootFolder && !this.workspacesEnabled) {\n throw new MessageError(this.reporter.lang('workspacesDisabled'));\n }\n }\n\n _init(opts: ConfigOptions) {\n this.registryFolders = [];\n this.linkedModules = [];\n\n this.registries = map();\n this.cache = map();\n\n // Ensure the cwd is always an absolute path.\n this.cwd = path.resolve(opts.cwd || this.cwd || process.cwd());\n\n this.looseSemver = opts.looseSemver == undefined ? true : opts.looseSemver;\n\n this.commandName = opts.commandName || '';\n\n this.enableDefaultRc = opts.enableDefaultRc !== false;\n this.extraneousYarnrcFiles = opts.extraneousYarnrcFiles || [];\n\n this.preferOffline = !!opts.preferOffline;\n this.modulesFolder = opts.modulesFolder;\n this.linkFolder = opts.linkFolder || constants.LINK_REGISTRY_DIRECTORY;\n this.offline = !!opts.offline;\n this.binLinks = !!opts.binLinks;\n this.updateChecksums = !!opts.updateChecksums;\n this.plugnplayUnplugged = [];\n this.plugnplayPurgeUnpluggedPackages = false;\n\n this.ignorePlatform = !!opts.ignorePlatform;\n this.ignoreScripts = !!opts.ignoreScripts;\n\n this.disablePrepublish = !!opts.disablePrepublish;\n\n // $FlowFixMe$\n this.nonInteractive = !!opts.nonInteractive || isCi || !process.stdout.isTTY;\n\n this.requestManager.setOptions({\n offline: !!opts.offline && !opts.preferOffline,\n captureHar: !!opts.captureHar,\n });\n\n this.focus = !!opts.focus;\n this.focusedWorkspaceName = '';\n\n this.otp = opts.otp || '';\n }\n\n /**\n * Generate a name suitable as unique filesystem identifier for the specified package.\n */\n\n generateUniquePackageSlug(pkg: PackageReference): string {\n let slug = pkg.name;\n\n slug = slug.replace(/[^@a-z0-9]+/g, '-');\n slug = slug.replace(/^-+|-+$/g, '');\n\n if (pkg.registry) {\n slug = `${pkg.registry}-${slug}`;\n } else {\n slug = `unknown-${slug}`;\n }\n\n const {hash} = pkg.remote;\n\n if (pkg.version) {\n slug += `-${pkg.version}`;\n }\n\n if (pkg.uid && pkg.version !== pkg.uid) {\n slug += `-${pkg.uid}`;\n } else if (hash) {\n slug += `-${hash}`;\n }\n\n if (pkg.remote.integrity) {\n slug += `-integrity`;\n }\n\n return slug;\n }\n\n /**\n * Generate an absolute module path.\n */\n\n generateModuleCachePath(pkg: ?PackageReference): string {\n invariant(this.cacheFolder, 'No package root');\n invariant(pkg, 'Undefined package');\n\n const slug = this.generateUniquePackageSlug(pkg);\n return path.join(this.cacheFolder, slug, 'node_modules', pkg.name);\n }\n\n /**\n */\n\n getUnpluggedPath(): string {\n return path.join(this.lockfileFolder, '.pnp', 'unplugged');\n }\n\n /**\n */\n\n generatePackageUnpluggedPath(pkg: PackageReference): string {\n const slug = this.generateUniquePackageSlug(pkg);\n return path.join(this.getUnpluggedPath(), slug, 'node_modules', pkg.name);\n }\n\n /**\n */\n\n async listUnpluggedPackageFolders(): Promise<Map<string, string>> {\n const unpluggedPackages = new Map();\n const unpluggedPath = this.getUnpluggedPath();\n\n if (!await fs.exists(unpluggedPath)) {\n return unpluggedPackages;\n }\n\n for (const unpluggedName of await fs.readdir(unpluggedPath)) {\n const nmListing = await fs.readdir(path.join(unpluggedPath, unpluggedName, 'node_modules'));\n invariant(nmListing.length === 1, 'A single folder should be in the unplugged directory');\n\n const target = path.join(unpluggedPath, unpluggedName, `node_modules`, nmListing[0]);\n unpluggedPackages.set(unpluggedName, target);\n }\n\n return unpluggedPackages;\n }\n\n /**\n * Execute lifecycle scripts in the specified directory. Ignoring when the --ignore-scripts flag has been\n * passed.\n */\n\n executeLifecycleScript(commandName: string, cwd?: string): Promise<void> {\n if (this.ignoreScripts) {\n return Promise.resolve();\n } else {\n return execFromManifest(this, commandName, cwd || this.cwd);\n }\n }\n\n /**\n * Generate an absolute temporary filename location based on the input filename.\n */\n\n getTemp(filename: string): string {\n invariant(this.tempFolder, 'No temp folder');\n return path.join(this.tempFolder, filename);\n }\n\n /**\n * Remote packages may be cached in a file system to be available for offline installation.\n * Second time the same package needs to be installed it will be loaded from there.\n * Given a package's filename, return a path in the offline mirror location.\n */\n\n getOfflineMirrorPath(packageFilename: ?string): ?string {\n let mirrorPath;\n\n for (const key of ['npm', 'yarn']) {\n const registry = this.registries[key];\n\n if (registry == null) {\n continue;\n }\n\n const registryMirrorPath = registry.config['yarn-offline-mirror'];\n\n if (registryMirrorPath === false) {\n return null;\n }\n\n if (registryMirrorPath == null) {\n continue;\n }\n\n mirrorPath = registryMirrorPath;\n }\n\n if (mirrorPath == null) {\n return null;\n }\n\n if (packageFilename == null) {\n return mirrorPath;\n }\n\n return path.join(mirrorPath, path.basename(packageFilename));\n }\n\n /**\n * Checker whether the folder input is a valid module folder. We output a yarn metadata\n * file when we've successfully setup a folder so use this as a marker.\n */\n\n async isValidModuleDest(dest: string): Promise<boolean> {\n if (!await fs.exists(dest)) {\n return false;\n }\n\n if (!await fs.exists(path.join(dest, constants.METADATA_FILENAME))) {\n return false;\n }\n\n return true;\n }\n\n /**\n * Read package metadata and normalized package info.\n */\n\n readPackageMetadata(dir: string): Promise<PackageMetadata> {\n return this.getCache(`metadata-${dir}`, async (): Promise<PackageMetadata> => {\n const metadata = await this.readJson(path.join(dir, constants.METADATA_FILENAME));\n const pkg = await this.readManifest(dir, metadata.registry);\n\n return {\n package: pkg,\n artifacts: metadata.artifacts || [],\n hash: metadata.hash,\n remote: metadata.remote,\n registry: metadata.registry,\n };\n });\n }\n\n /**\n * Read normalized package info according yarn-metadata.json\n * throw an error if package.json was not found\n */\n\n readManifest(dir: string, priorityRegistry?: RegistryNames, isRoot?: boolean = false): Promise<Manifest> {\n return this.getCache(`manifest-${dir}`, async (): Promise<Manifest> => {\n const manifest = await this.maybeReadManifest(dir, priorityRegistry, isRoot);\n\n if (manifest) {\n return manifest;\n } else {\n throw new MessageError(this.reporter.lang('couldntFindPackagejson', dir), 'ENOENT');\n }\n });\n }\n\n /**\n * try get the manifest file by looking\n * 1. manifest file in cache\n * 2. manifest file in registry\n */\n async maybeReadManifest(dir: string, priorityRegistry?: RegistryNames, isRoot?: boolean = false): Promise<?Manifest> {\n const metadataLoc = path.join(dir, constants.METADATA_FILENAME);\n\n if (await fs.exists(metadataLoc)) {\n const metadata = await this.readJson(metadataLoc);\n\n if (!priorityRegistry) {\n priorityRegistry = metadata.priorityRegistry;\n }\n\n if (typeof metadata.manifest !== 'undefined') {\n return metadata.manifest;\n }\n }\n\n if (priorityRegistry) {\n const file = await this.tryManifest(dir, priorityRegistry, isRoot);\n if (file) {\n return file;\n }\n }\n\n for (const registry of Object.keys(registries)) {\n if (priorityRegistry === registry) {\n continue;\n }\n\n const file = await this.tryManifest(dir, registry, isRoot);\n if (file) {\n return file;\n }\n }\n\n return null;\n }\n\n /**\n * Read the root manifest.\n */\n\n readRootManifest(): Promise<Manifest> {\n return this.readManifest(this.cwd, 'npm', true);\n }\n\n /**\n * Try and find package info with the input directory and registry.\n */\n\n async tryManifest(dir: string, registry: RegistryNames, isRoot: boolean): Promise<?Manifest> {\n const {filename} = registries[registry];\n const loc = path.join(dir, filename);\n if (await fs.exists(loc)) {\n const data = await this.readJson(loc);\n data._registry = registry;\n data._loc = loc;\n return normalizeManifest(data, dir, this, isRoot);\n } else {\n return null;\n }\n }\n\n async findManifest(dir: string, isRoot: boolean): Promise<?Manifest> {\n for (const registry of registryNames) {\n const manifest = await this.tryManifest(dir, registry, isRoot);\n\n if (manifest) {\n return manifest;\n }\n }\n\n return null;\n }\n\n async findWorkspaceRoot(initial: string): Promise<?string> {\n let previous = null;\n let current = path.normalize(initial);\n if (!await fs.exists(current)) {\n throw new MessageError(this.reporter.lang('folderMissing', current));\n }\n\n do {\n const manifest = await this.findManifest(current, true);\n const ws = extractWorkspaces(manifest);\n if (ws && ws.packages) {\n const relativePath = path.relative(current, initial);\n if (relativePath === '' || micromatch([relativePath], ws.packages).length > 0) {\n return current;\n } else {\n return null;\n }\n }\n\n previous = current;\n current = path.dirname(current);\n } while (current !== previous);\n\n return null;\n }\n\n async resolveWorkspaces(root: string, rootManifest: Manifest): Promise<WorkspacesManifestMap> {\n const workspaces = {};\n if (!this.workspacesEnabled) {\n return workspaces;\n }\n\n const ws = this.getWorkspaces(rootManifest, true);\n const patterns = ws && ws.packages ? ws.packages : [];\n\n if (!Array.isArray(patterns)) {\n throw new MessageError(this.reporter.lang('workspacesSettingMustBeArray'));\n }\n\n const registryFilenames = registryNames\n .map(registryName => this.registries[registryName].constructor.filename)\n .join('|');\n const trailingPattern = `/+(${registryFilenames})`;\n // anything under folder (node_modules) should be ignored, thus use the '**' instead of shallow match \"*\"\n const ignorePatterns = this.registryFolders.map(folder => `/${folder}/**/+(${registryFilenames})`);\n\n const files = await Promise.all(\n patterns.map(pattern =>\n fs.glob(pattern.replace(/\\/?$/, trailingPattern), {\n cwd: root,\n ignore: ignorePatterns.map(ignorePattern => pattern.replace(/\\/?$/, ignorePattern)),\n }),\n ),\n );\n\n for (const file of new Set([].concat(...files))) {\n const loc = path.join(root, path.dirname(file));\n const manifest = await this.findManifest(loc, false);\n\n if (!manifest) {\n continue;\n }\n\n if (!manifest.name) {\n this.reporter.warn(this.reporter.lang('workspaceNameMandatory', loc));\n continue;\n }\n if (!manifest.version) {\n this.reporter.warn(this.reporter.lang('workspaceVersionMandatory', loc));\n continue;\n }\n\n if (Object.prototype.hasOwnProperty.call(workspaces, manifest.name)) {\n throw new MessageError(this.reporter.lang('workspaceNameDuplicate', manifest.name));\n }\n\n workspaces[manifest.name] = {loc, manifest};\n }\n\n return workspaces;\n }\n\n // workspaces functions\n getWorkspaces(manifest: ?Manifest, shouldThrow: boolean = false): ?WorkspacesConfig {\n if (!manifest || !this.workspacesEnabled) {\n return undefined;\n }\n\n const ws = extractWorkspaces(manifest);\n\n if (!ws) {\n return ws;\n }\n\n // validate eligibility\n let wsCopy = {...ws};\n const warnings: Array<string> = [];\n const errors: Array<string> = [];\n\n // packages\n if (wsCopy.packages && wsCopy.packages.length > 0 && !manifest.private) {\n errors.push(this.reporter.lang('workspacesRequirePrivateProjects'));\n wsCopy = undefined;\n }\n // nohoist\n if (wsCopy && wsCopy.nohoist && wsCopy.nohoist.length > 0) {\n if (!this.workspacesNohoistEnabled) {\n warnings.push(this.reporter.lang('workspacesNohoistDisabled', manifest.name));\n wsCopy.nohoist = undefined;\n } else if (!manifest.private) {\n errors.push(this.reporter.lang('workspacesNohoistRequirePrivatePackages', manifest.name));\n wsCopy.nohoist = undefined;\n }\n }\n\n if (errors.length > 0 && shouldThrow) {\n throw new MessageError(errors.join('\\n'));\n }\n\n const msg = errors.concat(warnings).join('\\n');\n if (msg.length > 0) {\n this.reporter.warn(msg);\n }\n\n return wsCopy;\n }\n\n /**\n * Description\n */\n\n getFolder(pkg: Manifest): string {\n let registryName = pkg._registry;\n if (!registryName) {\n const ref = pkg._reference;\n invariant(ref, 'expected reference');\n registryName = ref.registry;\n }\n return this.registries[registryName].folder;\n }\n\n /**\n * Get root manifests.\n */\n\n async getRootManifests(): Promise<RootManifests> {\n const manifests: RootManifests = {};\n for (const registryName of registryNames) {\n const registry = registries[registryName];\n const jsonLoc = path.join(this.cwd, registry.filename);\n\n let object = {};\n let exists = false;\n let indent;\n if (await fs.exists(jsonLoc)) {\n exists = true;\n\n const info = await this.readJson(jsonLoc, fs.readJsonAndFile);\n object = info.object;\n indent = detectIndent(info.content).indent || undefined;\n }\n manifests[registryName] = {loc: jsonLoc, object, exists, indent};\n }\n return manifests;\n }\n\n /**\n * Save root manifests.\n */\n\n async saveRootManifests(manifests: RootManifests): Promise<void> {\n for (const registryName of registryNames) {\n const {loc, object, exists, indent} = manifests[registryName];\n if (!exists && !Object.keys(object).length) {\n continue;\n }\n\n for (const field of constants.DEPENDENCY_TYPES) {\n if (object[field]) {\n object[field] = sortObject(object[field]);\n }\n }\n\n await fs.writeFilePreservingEol(loc, JSON.stringify(object, null, indent || constants.DEFAULT_INDENT) + '\\n');\n }\n }\n\n /**\n * Call the passed factory (defaults to fs.readJson) and rethrow a pretty error message if it was the result\n * of a syntax error.\n */\n\n readJson(loc: string, factory: (filename: string) => Promise<Object> = fs.readJson): Promise<Object> {\n try {\n return factory(loc);\n } catch (err) {\n if (err instanceof SyntaxError) {\n throw new MessageError(this.reporter.lang('jsonError', loc, err.message));\n } else {\n throw err;\n }\n }\n }\n\n static async create(opts: ConfigOptions = {}, reporter: Reporter = new NoopReporter()): Promise<Config> {\n const config = new Config(reporter);\n await config.init(opts);\n return config;\n }\n}\n\nexport function extractWorkspaces(manifest: ?Manifest): ?WorkspacesConfig {\n if (!manifest || !manifest.workspaces) {\n return undefined;\n }\n\n if (Array.isArray(manifest.workspaces)) {\n return {packages: manifest.workspaces};\n }\n\n if (\n (manifest.workspaces.packages && Array.isArray(manifest.workspaces.packages)) ||\n (manifest.workspaces.nohoist && Array.isArray(manifest.workspaces.nohoist))\n ) {\n return manifest.workspaces;\n }\n\n return undefined;\n}\n"],"mappings":"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"}