JezK
Edit File: upgrade-interactive.js
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.hasWrapper = hasWrapper; exports.requireLockfile = void 0; exports.run = run; exports.setFlags = setFlags; 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 _inquirer() { var data = _interopRequireDefault(require("inquirer")); _inquirer = function _inquirer() { return data; }; return data; } function _lockfile() { var data = _interopRequireDefault(require("../../lockfile")); _lockfile = function _lockfile() { return data; }; return data; } function _add() { var data = require("./add.js"); _add = function _add() { return data; }; return data; } function _upgrade() { var data = require("./upgrade.js"); _upgrade = function _upgrade() { return data; }; return data; } function _colorForVersions() { var data = _interopRequireDefault(require("../../util/color-for-versions")); _colorForVersions = function _colorForVersions() { return data; }; return data; } function _colorizeDiff() { var data = _interopRequireDefault(require("../../util/colorize-diff.js")); _colorizeDiff = function _colorizeDiff() { return data; }; return data; } function _install2() { var data = require("./install.js"); _install2 = function _install2() { return data; }; return data; } 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 path = require('path'); var requireLockfile = true; exports.requireLockfile = requireLockfile; function setFlags(commander) { commander.description('Provides an easy way to update outdated packages.'); commander.usage('upgrade-interactive [flags]'); commander.option('-S, --scope <scope>', 'upgrade packages under the specified scope'); commander.option('--latest', 'list the latest version of packages, ignoring version ranges in package.json'); commander.option('-E, --exact', 'install exact version. Only used when --latest is specified.'); commander.option('-T, --tilde', 'install most recent release with the same minor version. Only used when --latest is specified.'); commander.option('-C, --caret', 'install most recent release with the same major version. Only used when --latest is specified.'); } function hasWrapper(commander, args) { return true; } function run(_x, _x2, _x3, _x4, _x5) { return _run.apply(this, arguments); } function _run() { _run = (0, _asyncToGenerator2()["default"])( /*#__PURE__*/_regenerator()["default"].mark(function _callee(config, reporter, commander, flags, args) { var _maxLengthArr; var outdatedFieldName, lockfile, deps, install, usesWorkspaces, maxLengthArr, keysWithDynamicLength, addPadding, headerPadding, colorizeName, getNameFromHint, makeRow, makeHeaderRow, groupedDeps, flatten, choices, red, yellow, green, answers, getPattern, isHint, _i, _arr, hint, _deps, _install, _yield$_install$fetch, packagePatterns, depsByWorkspace, cwd, _i2, _Object$keys, loc, patterns, add; return _regenerator()["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: outdatedFieldName = flags.latest ? 'latest' : 'wanted'; _context.next = 3; return _lockfile()["default"].fromDirectory(config.lockfileFolder); case 3: lockfile = _context.sent; _context.next = 6; return (0, _upgrade().getOutdated)(config, reporter, _objectSpread(_objectSpread({}, flags), {}, { includeWorkspaceDeps: true }), lockfile, args); case 6: deps = _context.sent; if (!(deps.length === 0)) { _context.next = 10; break; } reporter.success(reporter.lang('allDependenciesUpToDate')); return _context.abrupt("return"); case 10: // Fail early with runtime compatibility checks so that it doesn't fail after you've made your selections install = new (_install2().Install)(flags, config, reporter, lockfile); _context.next = 13; return install.checkCompatibility(); case 13: usesWorkspaces = !!config.workspaceRootFolder; maxLengthArr = (_maxLengthArr = { name: 'name'.length, current: 'from'.length, range: 'latest'.length }, (0, _defineProperty2()["default"])(_maxLengthArr, outdatedFieldName, 'to'.length), (0, _defineProperty2()["default"])(_maxLengthArr, "workspaceName", 'workspace'.length), _maxLengthArr); keysWithDynamicLength = ['name', 'current', outdatedFieldName]; if (!flags.latest) { maxLengthArr.range = 'range'.length; keysWithDynamicLength.push('range'); } if (usesWorkspaces) { keysWithDynamicLength.push('workspaceName'); } deps.forEach(function (dep) { return keysWithDynamicLength.forEach(function (key) { maxLengthArr[key] = Math.max(maxLengthArr[key], dep[key].length); }); }); // Depends on maxLengthArr addPadding = function addPadding(dep) { return function (key) { return "".concat(dep[key]).concat(' '.repeat(maxLengthArr[key] - dep[key].length)); }; }; headerPadding = function headerPadding(header, key) { return "".concat(reporter.format.bold.underline(header)).concat(' '.repeat(maxLengthArr[key] - header.length)); }; colorizeName = function colorizeName(from, to) { return reporter.format[(0, _colorForVersions()["default"])(from, to)]; }; getNameFromHint = function getNameFromHint(hint) { return hint ? "".concat(hint, "Dependencies") : 'dependencies'; }; makeRow = function makeRow(dep) { var padding = addPadding(dep); var name = colorizeName(dep.current, dep[outdatedFieldName])(padding('name')); var current = reporter.format.blue(padding('current')); var latest = (0, _colorizeDiff()["default"])(dep.current, padding(outdatedFieldName), reporter); var url = reporter.format.cyan(dep.url); var range = reporter.format.blue(flags.latest ? 'latest' : padding('range')); if (usesWorkspaces) { var workspace = padding('workspaceName'); return "".concat(name, " ").concat(range, " ").concat(current, " \u276F ").concat(latest, " ").concat(workspace, " ").concat(url); } else { return "".concat(name, " ").concat(range, " ").concat(current, " \u276F ").concat(latest, " ").concat(url); } }; makeHeaderRow = function makeHeaderRow() { var name = headerPadding('name', 'name'); var range = headerPadding('range', 'range'); var from = headerPadding('from', 'current'); var to = headerPadding('to', outdatedFieldName); var url = reporter.format.bold.underline('url'); if (usesWorkspaces) { var workspace = headerPadding('workspace', 'workspaceName'); return " ".concat(name, " ").concat(range, " ").concat(from, " ").concat(to, " ").concat(workspace, " ").concat(url); } else { return " ".concat(name, " ").concat(range, " ").concat(from, " ").concat(to, " ").concat(url); } }; groupedDeps = deps.reduce(function (acc, dep) { var hint = dep.hint, name = dep.name, upgradeTo = dep.upgradeTo; var version = dep[outdatedFieldName]; var key = getNameFromHint(hint); var xs = acc[key] || []; acc[key] = xs.concat({ name: makeRow(dep), value: dep, "short": "".concat(name, "@").concat(version), upgradeTo: upgradeTo }); return acc; }, {}); flatten = function flatten(xs) { return xs.reduce(function (ys, y) { return ys.concat(Array.isArray(y) ? flatten(y) : y); }, []); }; choices = flatten(Object.keys(groupedDeps).map(function (key) { return [new (_inquirer()["default"].Separator)(reporter.format.bold.underline.green(key)), new (_inquirer()["default"].Separator)(makeHeaderRow()), groupedDeps[key], new (_inquirer()["default"].Separator)(' ')]; })); _context.prev = 28; red = reporter.format.red('<red>'); yellow = reporter.format.yellow('<yellow>'); green = reporter.format.green('<green>'); reporter.info(reporter.lang('legendColorsForVersionUpdates', red, yellow, green)); _context.next = 35; return reporter.prompt('Choose which packages to update.', choices, { name: 'packages', type: 'checkbox', validate: function validate(answer) { return !!answer.length || 'You must choose at least one package.'; } }); case 35: answers = _context.sent; getPattern = function getPattern(_ref) { var upgradeTo = _ref.upgradeTo; return upgradeTo; }; isHint = function isHint(x) { return function (_ref2) { var hint = _ref2.hint; return hint === x; }; }; _i = 0, _arr = [null, 'dev', 'optional', 'peer']; case 39: if (!(_i < _arr.length)) { _context.next = 73; break; } hint = _arr[_i]; // Reset dependency flags flags.dev = hint === 'dev'; flags.peer = hint === 'peer'; flags.optional = hint === 'optional'; flags.ignoreWorkspaceRootCheck = true; flags.includeWorkspaceDeps = false; flags.workspaceRootIsCwd = false; _deps = answers.filter(isHint(hint)); if (!_deps.length) { _context.next = 70; break; } _install = new (_install2().Install)(flags, config, reporter, lockfile); _context.next = 52; return _install.fetchRequestFromCwd(); case 52: _yield$_install$fetch = _context.sent; packagePatterns = _yield$_install$fetch.requests; depsByWorkspace = _deps.reduce(function (acc, dep) { var workspaceLoc = dep.workspaceLoc; var xs = acc[workspaceLoc] || []; acc[workspaceLoc] = xs.concat(dep); return acc; }, {}); cwd = config.cwd; _i2 = 0, _Object$keys = Object.keys(depsByWorkspace); case 57: if (!(_i2 < _Object$keys.length)) { _context.next = 70; break; } loc = _Object$keys[_i2]; patterns = depsByWorkspace[loc].map(getPattern); (0, _upgrade().cleanLockfile)(lockfile, _deps, packagePatterns, reporter); reporter.info(reporter.lang('updateInstalling', getNameFromHint(hint))); if (loc !== '') { config.cwd = path.resolve(path.dirname(loc)); } add = new (_add().Add)(patterns, flags, config, reporter, lockfile); _context.next = 66; return add.init(); case 66: config.cwd = cwd; case 67: _i2++; _context.next = 57; break; case 70: _i++; _context.next = 39; break; case 73: _context.next = 78; break; case 75: _context.prev = 75; _context.t0 = _context["catch"](28); Promise.reject(_context.t0); case 78: case "end": return _context.stop(); } }, _callee, null, [[28, 75]]); })); return _run.apply(this, arguments); } //# sourceMappingURL=upgrade-interactive.js.map