JezK
Edit File: policies.js.map
{"version":3,"file":"policies.js","names":["V2_NAMES","isLocalFile","version","match","path","isAbsolute","isV2Version","satisfiesWithPrereleases","chalk","require","invariant","semver","getBundleAsset","release","assets","find","asset","name","fetchReleases","config","includePrereleases","token","process","env","GITHUB_TOKEN","tokenUrlParameter","requestManager","request","url","json","releases","filter","draft","prerelease","coerce","tag_name","sort","a","b","compare","fetchBundle","buffer","hasWrapper","flags","args","buildSubCommands","setVersion","reporter","commander","initialRange","range","allowRc","rc","log","yellow","cyan","underline","isV2","bundleUrl","bundleVersion","includes","normalizedRange","COREPACK_ROOT","child","spawn","NODE_BIN_PATH","join","stdio","cwd","bundle","yarnPath","resolve","lockfileFolder","fs","mkdirp","dirname","writeFile","chmod","YARN_IGNORE_PATH","exit","error","message","satisfies","Error","browser_download_url","green","magenta","targetPath","relative","replace","rcPath","writeFilePreservingEol","JSON","stringify","getRcConfigForFolder","run","setFlags","examples"],"sourceRoot":"../../../src","sources":["cli/commands/policies.js"],"sourcesContent":["/* @flow */\n/* eslint-disable max-len */\n\nimport type {Reporter} from '../../reporters/index.js';\nimport type Config from '../../config.js';\nimport {version} from '../../util/yarn-version.js';\nimport * as child from '../../util/child.js';\nimport buildSubCommands from './_build-sub-commands.js';\nimport {getRcConfigForFolder} from '../../rc.js';\nimport * as fs from '../../util/fs.js';\nimport {stringify} from '../../lockfile';\nimport {satisfiesWithPrereleases} from '../../util/semver.js';\nimport {NODE_BIN_PATH} from '../../constants';\n\nconst V2_NAMES = ['berry', 'stable', 'canary', 'v2', '2'];\n\nconst isLocalFile = (version: string) => version.match(/^\\.{0,2}[\\\\/]/) || path.isAbsolute(version);\nconst isV2Version = (version: string) => satisfiesWithPrereleases(version, '>=2.0.0');\n\nconst chalk = require('chalk');\nconst invariant = require('invariant');\nconst path = require('path');\nconst semver = require('semver');\n\ntype ReleaseAsset = {|\n id: any,\n\n name: string,\n browser_download_url: string,\n|};\n\ntype Release = {|\n id: any,\n\n draft: boolean,\n prerelease: boolean,\n\n tag_name: string,\n version: {|\n version: string,\n |},\n\n assets: Array<ReleaseAsset>,\n|};\n\nfunction getBundleAsset(release: Release): ?ReleaseAsset {\n return release.assets.find(asset => {\n return asset.name.match(/^yarn-[0-9]+\\.[0-9]+\\.[0-9]+\\.js$/);\n });\n}\n\ntype FetchReleasesOptions = {|\n includePrereleases: boolean,\n|};\n\nasync function fetchReleases(\n config: Config,\n {includePrereleases = false}: FetchReleasesOptions = {},\n): Promise<Array<Release>> {\n const token = process.env.GITHUB_TOKEN;\n const tokenUrlParameter = token ? `?access_token=${token}` : '';\n\n const request: Array<Release> = await config.requestManager.request({\n url: `https://api.github.com/repos/yarnpkg/yarn/releases${tokenUrlParameter}`,\n json: true,\n });\n\n const releases = request.filter(release => {\n if (release.draft) {\n return false;\n }\n\n if (release.prerelease && !includePrereleases) {\n return false;\n }\n\n // $FlowFixMe\n release.version = semver.coerce(release.tag_name);\n\n if (!release.version) {\n return false;\n }\n\n if (!getBundleAsset(release)) {\n return false;\n }\n\n return true;\n });\n\n releases.sort((a, b) => {\n // $FlowFixMe\n return -semver.compare(a.version, b.version);\n });\n\n return releases;\n}\n\nfunction fetchBundle(config: Config, url: string): Promise<Buffer> {\n return config.requestManager.request({\n url,\n buffer: true,\n });\n}\n\nexport function hasWrapper(flags: Object, args: Array<string>): boolean {\n return false;\n}\n\nconst {run, setFlags, examples} = buildSubCommands('policies', {\n async setVersion(config: Config, reporter: Reporter, commander: Object, flags: Object, args: Array<string>): Promise<void> {\n const initialRange = args[0] || 'latest';\n let range = initialRange;\n\n let allowRc = flags.rc;\n\n if (range === 'rc') {\n reporter.log(\n `${chalk.yellow(\n `Warning:`,\n )} Your current Yarn binary is currently Yarn ${version}; to avoid potential breaking changes, 'set version rc' won't receive upgrades past the 1.22.x branch.\\n To upgrade to the latest versions, run ${chalk.cyan(\n `yarn set version`,\n )} ${chalk.yellow.underline(`canary`)} instead. Sorry for the inconvenience.\\n`,\n );\n\n range = '*';\n allowRc = true;\n }\n\n if (range === 'latest') {\n reporter.log(\n `${chalk.yellow(\n `Warning:`,\n )} Your current Yarn binary is currently Yarn ${version}; to avoid potential breaking changes, 'set version latest' won't receive upgrades past the 1.22.x branch.\\n To upgrade to the latest versions, run ${chalk.cyan(\n `yarn set version`,\n )} ${chalk.yellow.underline(`stable`)} instead. Sorry for the inconvenience.\\n`,\n );\n\n range = '*';\n }\n\n if (range === 'classic') {\n range = '*';\n }\n\n let bundleUrl;\n let bundleVersion;\n const isV2 = false;\n\n if (range === 'nightly' || range === 'nightlies') {\n reporter.log(\n `${chalk.yellow(\n `Warning:`,\n )} Nightlies only exist for Yarn 1.x; starting from 2.x onwards, you should use 'canary' instead`,\n );\n\n bundleUrl = 'https://nightly.yarnpkg.com/latest.js';\n bundleVersion = 'nightly';\n } else if (V2_NAMES.includes(range) || isLocalFile(range) || isV2Version(range)) {\n const normalizedRange = range === `canary` ? `canary` : `stable`;\n\n if (process.env.COREPACK_ROOT) {\n await child.spawn(\n NODE_BIN_PATH,\n [\n path.join(process.env.COREPACK_ROOT, 'dist/corepack.js'),\n `yarn@${normalizedRange}`,\n `set`,\n `version`,\n normalizedRange,\n ],\n {\n stdio: 'inherit',\n cwd: config.cwd,\n },\n );\n\n return;\n } else {\n const bundle = await fetchBundle(\n config,\n 'https://github.com/yarnpkg/berry/raw/master/packages/yarnpkg-cli/bin/yarn.js',\n );\n\n const yarnPath = path.resolve(config.lockfileFolder, `.yarn/releases/yarn-stable-temp.cjs`);\n await fs.mkdirp(path.dirname(yarnPath));\n await fs.writeFile(yarnPath, bundle);\n await fs.chmod(yarnPath, 0o755);\n\n try {\n await child.spawn(NODE_BIN_PATH, [yarnPath, 'set', 'version', range], {\n stdio: 'inherit',\n cwd: config.lockfileFolder,\n env: {\n ...process.env,\n YARN_IGNORE_PATH: `1`,\n },\n });\n } catch (err) {\n // eslint-disable-next-line no-process-exit\n process.exit(1);\n }\n\n return;\n }\n } else {\n reporter.log(`Resolving ${chalk.yellow(initialRange)} to a url...`);\n\n let releases = [];\n\n try {\n releases = await fetchReleases(config, {\n includePrereleases: allowRc,\n });\n } catch (e) {\n reporter.error(e.message);\n return;\n }\n\n const release = releases.find(release => {\n // $FlowFixMe\n return semver.satisfies(release.version, range);\n });\n\n if (!release) {\n throw new Error(`Release not found: ${range}`);\n }\n\n const asset = getBundleAsset(release);\n invariant(asset, 'The bundle asset should exist');\n\n bundleUrl = asset.browser_download_url;\n bundleVersion = release.version.version;\n }\n\n reporter.log(`Downloading ${chalk.green(bundleUrl)}...`);\n\n const bundle = await fetchBundle(config, bundleUrl);\n\n const yarnPath = path.resolve(config.lockfileFolder, `.yarn/releases/yarn-${bundleVersion}.cjs`);\n reporter.log(`Saving it into ${chalk.magenta(yarnPath)}...`);\n await fs.mkdirp(path.dirname(yarnPath));\n await fs.writeFile(yarnPath, bundle);\n await fs.chmod(yarnPath, 0o755);\n\n const targetPath = path.relative(config.lockfileFolder, yarnPath).replace(/\\\\/g, '/');\n\n if (isV2) {\n const rcPath = `${config.lockfileFolder}/.yarnrc.yml`;\n reporter.log(`Updating ${chalk.magenta(rcPath)}...`);\n\n await fs.writeFilePreservingEol(rcPath, `yarnPath: ${JSON.stringify(targetPath)}\\n`);\n } else {\n const rcPath = `${config.lockfileFolder}/.yarnrc`;\n reporter.log(`Updating ${chalk.magenta(rcPath)}...`);\n\n const rc = getRcConfigForFolder(config.lockfileFolder);\n rc['yarn-path'] = targetPath;\n\n await fs.writeFilePreservingEol(rcPath, `${stringify(rc)}\\n`);\n }\n\n reporter.log(`Done!`);\n },\n});\n\nexport {run, setFlags, examples};\n"],"mappings":"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"}