JezK
Edit File: policies.js
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.examples = void 0; exports.hasWrapper = hasWrapper; exports.setFlags = exports.run = void 0; function _regenerator() { var data = _interopRequireDefault(require("@babel/runtime/regenerator")); _regenerator = function _regenerator() { return data; }; return data; } function _defineProperty2() { var data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); _defineProperty2 = function _defineProperty2() { return data; }; return data; } function _asyncToGenerator2() { var data = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); _asyncToGenerator2 = function _asyncToGenerator2() { return data; }; return data; } function _yarnVersion() { var data = require("../../util/yarn-version.js"); _yarnVersion = function _yarnVersion() { return data; }; return data; } function child() { var data = _interopRequireWildcard(require("../../util/child.js")); child = function child() { return data; }; return data; } function _buildSubCommands2() { var data = _interopRequireDefault(require("./_build-sub-commands.js")); _buildSubCommands2 = function _buildSubCommands2() { return data; }; return data; } function _rc() { var data = require("../../rc.js"); _rc = function _rc() { return data; }; return data; } function fs() { var data = _interopRequireWildcard(require("../../util/fs.js")); fs = function fs() { return data; }; return data; } function _lockfile() { var data = require("../../lockfile"); _lockfile = function _lockfile() { return data; }; return data; } function _semver() { var data = require("../../util/semver.js"); _semver = function _semver() { return data; }; return data; } function _constants() { var data = require("../../constants"); _constants = function _constants() { return data; }; return data; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2()["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } var V2_NAMES = ['berry', 'stable', 'canary', 'v2', '2']; var isLocalFile = function isLocalFile(version) { return version.match(/^\.{0,2}[\\/]/) || path.isAbsolute(version); }; var isV2Version = function isV2Version(version) { return (0, _semver().satisfiesWithPrereleases)(version, '>=2.0.0'); }; var chalk = require('chalk'); var invariant = require('invariant'); var path = require('path'); var semver = require('semver'); function getBundleAsset(release) { return release.assets.find(function (asset) { return asset.name.match(/^yarn-[0-9]+\.[0-9]+\.[0-9]+\.js$/); }); } function fetchReleases(_x) { return _fetchReleases.apply(this, arguments); } function _fetchReleases() { _fetchReleases = (0, _asyncToGenerator2()["default"])( /*#__PURE__*/_regenerator()["default"].mark(function _callee2(config) { var _ref, _ref$includePrereleas, includePrereleases, token, tokenUrlParameter, request, releases, _args2 = arguments; return _regenerator()["default"].wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: _ref = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : {}, _ref$includePrereleas = _ref.includePrereleases, includePrereleases = _ref$includePrereleas === void 0 ? false : _ref$includePrereleas; token = process.env.GITHUB_TOKEN; tokenUrlParameter = token ? "?access_token=".concat(token) : ''; _context2.next = 5; return config.requestManager.request({ url: "https://api.github.com/repos/yarnpkg/yarn/releases".concat(tokenUrlParameter), json: true }); case 5: request = _context2.sent; releases = request.filter(function (release) { if (release.draft) { return false; } if (release.prerelease && !includePrereleases) { return false; } // $FlowFixMe release.version = semver.coerce(release.tag_name); if (!release.version) { return false; } if (!getBundleAsset(release)) { return false; } return true; }); releases.sort(function (a, b) { // $FlowFixMe return -semver.compare(a.version, b.version); }); return _context2.abrupt("return", releases); case 9: case "end": return _context2.stop(); } }, _callee2); })); return _fetchReleases.apply(this, arguments); } function fetchBundle(config, url) { return config.requestManager.request({ url: url, buffer: true }); } function hasWrapper(flags, args) { return false; } var _buildSubCommands = (0, _buildSubCommands2()["default"])('policies', { setVersion: function setVersion(config, reporter, commander, flags, args) { return (0, _asyncToGenerator2()["default"])( /*#__PURE__*/_regenerator()["default"].mark(function _callee() { var initialRange, range, allowRc, bundleUrl, bundleVersion, isV2, normalizedRange, _bundle, _yarnPath, releases, release, asset, bundle, yarnPath, targetPath, rcPath, _rcPath, rc; return _regenerator()["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: initialRange = args[0] || 'latest'; range = initialRange; allowRc = flags.rc; if (range === 'rc') { reporter.log("".concat(chalk.yellow("Warning:"), " Your current Yarn binary is currently Yarn ").concat(_yarnVersion().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 ").concat(chalk.cyan("yarn set version"), " ").concat(chalk.yellow.underline("canary"), " instead. Sorry for the inconvenience.\n")); range = '*'; allowRc = true; } if (range === 'latest') { reporter.log("".concat(chalk.yellow("Warning:"), " Your current Yarn binary is currently Yarn ").concat(_yarnVersion().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 ").concat(chalk.cyan("yarn set version"), " ").concat(chalk.yellow.underline("stable"), " instead. Sorry for the inconvenience.\n")); range = '*'; } if (range === 'classic') { range = '*'; } isV2 = false; if (!(range === 'nightly' || range === 'nightlies')) { _context.next = 13; break; } reporter.log("".concat(chalk.yellow("Warning:"), " Nightlies only exist for Yarn 1.x; starting from 2.x onwards, you should use 'canary' instead")); bundleUrl = 'https://nightly.yarnpkg.com/latest.js'; bundleVersion = 'nightly'; _context.next = 61; break; case 13: if (!(V2_NAMES.includes(range) || isLocalFile(range) || isV2Version(range))) { _context.next = 42; break; } normalizedRange = range === "canary" ? "canary" : "stable"; if (!process.env.COREPACK_ROOT) { _context.next = 21; break; } _context.next = 18; return child().spawn(_constants().NODE_BIN_PATH, [path.join(process.env.COREPACK_ROOT, 'dist/corepack.js'), "yarn@".concat(normalizedRange), "set", "version", normalizedRange], { stdio: 'inherit', cwd: config.cwd }); case 18: return _context.abrupt("return"); case 21: _context.next = 23; return fetchBundle(config, 'https://github.com/yarnpkg/berry/raw/master/packages/yarnpkg-cli/bin/yarn.js'); case 23: _bundle = _context.sent; _yarnPath = path.resolve(config.lockfileFolder, ".yarn/releases/yarn-stable-temp.cjs"); _context.next = 27; return fs().mkdirp(path.dirname(_yarnPath)); case 27: _context.next = 29; return fs().writeFile(_yarnPath, _bundle); case 29: _context.next = 31; return fs().chmod(_yarnPath, 493); case 31: _context.prev = 31; _context.next = 34; return child().spawn(_constants().NODE_BIN_PATH, [_yarnPath, 'set', 'version', range], { stdio: 'inherit', cwd: config.lockfileFolder, env: _objectSpread(_objectSpread({}, process.env), {}, { YARN_IGNORE_PATH: "1" }) }); case 34: _context.next = 39; break; case 36: _context.prev = 36; _context.t0 = _context["catch"](31); // eslint-disable-next-line no-process-exit process.exit(1); case 39: return _context.abrupt("return"); case 40: _context.next = 61; break; case 42: reporter.log("Resolving ".concat(chalk.yellow(initialRange), " to a url...")); releases = []; _context.prev = 44; _context.next = 47; return fetchReleases(config, { includePrereleases: allowRc }); case 47: releases = _context.sent; _context.next = 54; break; case 50: _context.prev = 50; _context.t1 = _context["catch"](44); reporter.error(_context.t1.message); return _context.abrupt("return"); case 54: release = releases.find(function (release) { // $FlowFixMe return semver.satisfies(release.version, range); }); if (release) { _context.next = 57; break; } throw new Error("Release not found: ".concat(range)); case 57: asset = getBundleAsset(release); invariant(asset, 'The bundle asset should exist'); bundleUrl = asset.browser_download_url; bundleVersion = release.version.version; case 61: reporter.log("Downloading ".concat(chalk.green(bundleUrl), "...")); _context.next = 64; return fetchBundle(config, bundleUrl); case 64: bundle = _context.sent; yarnPath = path.resolve(config.lockfileFolder, ".yarn/releases/yarn-".concat(bundleVersion, ".cjs")); reporter.log("Saving it into ".concat(chalk.magenta(yarnPath), "...")); _context.next = 69; return fs().mkdirp(path.dirname(yarnPath)); case 69: _context.next = 71; return fs().writeFile(yarnPath, bundle); case 71: _context.next = 73; return fs().chmod(yarnPath, 493); case 73: targetPath = path.relative(config.lockfileFolder, yarnPath).replace(/\\/g, '/'); if (!isV2) { _context.next = 81; break; } rcPath = "".concat(config.lockfileFolder, "/.yarnrc.yml"); reporter.log("Updating ".concat(chalk.magenta(rcPath), "...")); _context.next = 79; return fs().writeFilePreservingEol(rcPath, "yarnPath: ".concat(JSON.stringify(targetPath), "\n")); case 79: _context.next = 87; break; case 81: _rcPath = "".concat(config.lockfileFolder, "/.yarnrc"); reporter.log("Updating ".concat(chalk.magenta(_rcPath), "...")); rc = (0, _rc().getRcConfigForFolder)(config.lockfileFolder); rc['yarn-path'] = targetPath; _context.next = 87; return fs().writeFilePreservingEol(_rcPath, "".concat((0, _lockfile().stringify)(rc), "\n")); case 87: reporter.log("Done!"); case 88: case "end": return _context.stop(); } }, _callee, null, [[31, 36], [44, 50]]); }))(); } }), run = _buildSubCommands.run, setFlags = _buildSubCommands.setFlags, examples = _buildSubCommands.examples; exports.examples = examples; exports.setFlags = setFlags; exports.run = run; //# sourceMappingURL=policies.js.map