JezK
Edit File: version.js
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.hasWrapper = hasWrapper; exports.run = run; exports.setFlags = setFlags; exports.setVersion = setVersion; function _regenerator() { var data = _interopRequireDefault(require("@babel/runtime/regenerator")); _regenerator = function _regenerator() { return data; }; return data; } function _toConsumableArray2() { var data = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); _toConsumableArray2 = function _toConsumableArray2() { return data; }; return data; } function _asyncToGenerator2() { var data = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); _asyncToGenerator2 = function _asyncToGenerator2() { return data; }; return data; } function _index() { var data = require("../../registries/index.js"); _index = function _index() { return data; }; return data; } function _executeLifecycleScript() { var data = require("../../util/execute-lifecycle-script.js"); _executeLifecycleScript = function _executeLifecycleScript() { return data; }; return data; } function _errors() { var data = require("../../errors.js"); _errors = function _errors() { return data; }; return data; } function _gitSpawn() { var data = require("../../util/git/git-spawn.js"); _gitSpawn = function _gitSpawn() { return data; }; return data; } function fs() { var data = _interopRequireWildcard(require("../../util/fs.js")); fs = function fs() { return data; }; return data; } function _map() { var data = _interopRequireDefault(require("../../util/map.js")); _map = function _map() { 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 _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } var invariant = require('invariant'); var semver = require('semver'); var path = require('path'); var NEW_VERSION_FLAG = '--new-version [version]'; function isValidNewVersion(oldVersion, newVersion, looseSemver, identifier) { return !!(semver.valid(newVersion, looseSemver) || semver.inc(oldVersion, newVersion, looseSemver, identifier)); } function setFlags(commander) { commander.description('Update the version of your package via the command line.'); commander.option(NEW_VERSION_FLAG, 'new version'); commander.option('--major', 'auto-increment major version number'); commander.option('--minor', 'auto-increment minor version number'); commander.option('--patch', 'auto-increment patch version number'); commander.option('--premajor', 'auto-increment premajor version number'); commander.option('--preminor', 'auto-increment preminor version number'); commander.option('--prepatch', 'auto-increment prepatch version number'); commander.option('--prerelease', 'auto-increment prerelease version number'); commander.option('--preid [preid]', 'add a custom identifier to the prerelease'); commander.option('--message [message]', 'message'); commander.option('--no-git-tag-version', 'no git tag version'); commander.option('--no-commit-hooks', 'bypass git hooks when committing new version'); } function hasWrapper(commander, args) { return true; } function setVersion(_x, _x2, _x3, _x4, _x5) { return _setVersion.apply(this, arguments); } function _setVersion() { _setVersion = (0, _asyncToGenerator2()["default"])( /*#__PURE__*/_regenerator()["default"].mark(function _callee2(config, reporter, flags, args, required) { var pkg, pkgLoc, scripts, newVersion, identifier, runLifecycle, isCommitHooksDisabled, oldVersion, manifests, _iterator, _step, registryName, manifest; return _regenerator()["default"].wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: isCommitHooksDisabled = function _isCommitHooksDisable() { return flags.commitHooks === false || config.getOption('version-commit-hooks') === false; }; runLifecycle = function _runLifecycle(lifecycle) { if (scripts[lifecycle]) { return (0, _executeLifecycleScript().execCommand)({ stage: lifecycle, config: config, cmd: scripts[lifecycle], cwd: config.cwd, isInteractive: true }); } return Promise.resolve(); }; _context2.next = 4; return config.readRootManifest(); case 4: pkg = _context2.sent; pkgLoc = pkg._loc; scripts = (0, _map()["default"])(); newVersion = flags.newVersion; identifier = undefined; if (flags.preid) { identifier = flags.preid; } invariant(pkgLoc, 'expected package location'); if (!(args.length > 0 && !newVersion)) { _context2.next = 13; break; } throw new (_errors().MessageError)(reporter.lang('invalidVersionArgument', NEW_VERSION_FLAG)); case 13: if (pkg.scripts) { // inherit `scripts` from manifest Object.assign(scripts, pkg.scripts); } // get old version oldVersion = pkg.version; if (oldVersion) { reporter.info("".concat(reporter.lang('currentVersion'), ": ").concat(oldVersion)); } else { oldVersion = '0.0.0'; } // get new version if (!(newVersion && !isValidNewVersion(oldVersion, newVersion, config.looseSemver, identifier))) { _context2.next = 18; break; } throw new (_errors().MessageError)(reporter.lang('invalidVersion')); case 18: // get new version by bumping old version, if requested if (!newVersion) { if (flags.major) { newVersion = semver.inc(oldVersion, 'major'); } else if (flags.minor) { newVersion = semver.inc(oldVersion, 'minor'); } else if (flags.patch) { newVersion = semver.inc(oldVersion, 'patch'); } else if (flags.premajor) { newVersion = semver.inc(oldVersion, 'premajor', identifier); } else if (flags.preminor) { newVersion = semver.inc(oldVersion, 'preminor', identifier); } else if (flags.prepatch) { newVersion = semver.inc(oldVersion, 'prepatch', identifier); } else if (flags.prerelease) { newVersion = semver.inc(oldVersion, 'prerelease', identifier); } } // wasn't passed a version arg so ask interactively case 19: if (newVersion) { _context2.next = 44; break; } if (!(flags.nonInteractive || config.nonInteractive)) { _context2.next = 23; break; } // if no version is specified, use current version in package.json newVersion = oldVersion; return _context2.abrupt("break", 44); case 23: _context2.prev = 23; _context2.next = 26; return reporter.question(reporter.lang('newVersion')); case 26: newVersion = _context2.sent; if (!newVersion) { newVersion = oldVersion; } _context2.next = 33; break; case 30: _context2.prev = 30; _context2.t0 = _context2["catch"](23); newVersion = oldVersion; case 33: if (!(!required && !newVersion)) { _context2.next = 36; break; } reporter.info("".concat(reporter.lang('noVersionOnPublish'), ": ").concat(oldVersion)); return _context2.abrupt("return", function () { return Promise.resolve(); }); case 36: if (!isValidNewVersion(oldVersion, newVersion, config.looseSemver, identifier)) { _context2.next = 40; break; } return _context2.abrupt("break", 44); case 40: newVersion = null; reporter.error(reporter.lang('invalidSemver')); case 42: _context2.next = 19; break; case 44: if (newVersion) { newVersion = semver.inc(oldVersion, newVersion, config.looseSemver, identifier) || newVersion; } invariant(newVersion, 'expected new version'); if (!(newVersion === pkg.version)) { _context2.next = 48; break; } return _context2.abrupt("return", function () { return Promise.resolve(); }); case 48: _context2.next = 50; return runLifecycle('preversion'); case 50: // update version reporter.info("".concat(reporter.lang('newVersion'), ": ").concat(newVersion)); pkg.version = newVersion; // update versions in manifests _context2.next = 54; return config.getRootManifests(); case 54: manifests = _context2.sent; _iterator = _createForOfIteratorHelper(_index().registryNames); try { for (_iterator.s(); !(_step = _iterator.n()).done;) { registryName = _step.value; manifest = manifests[registryName]; if (manifest.exists) { manifest.object.version = newVersion; } } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } _context2.next = 59; return config.saveRootManifests(manifests); case 59: _context2.next = 61; return runLifecycle('version'); case 61: return _context2.abrupt("return", /*#__PURE__*/(0, _asyncToGenerator2()["default"])( /*#__PURE__*/_regenerator()["default"].mark(function _callee() { var isGit, parts, message, sign, flag, prefix, _args, gitRoot; return _regenerator()["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: invariant(newVersion, 'expected version'); // check if a new git tag should be created if (!(flags.gitTagVersion && config.getOption('version-git-tag'))) { _context.next = 30; break; } // add git commit and tag isGit = false; parts = config.cwd.split(path.sep); case 4: if (!parts.length) { _context.next = 15; break; } _context.next = 7; return fs().exists(path.join(parts.join(path.sep), '.git')); case 7: isGit = _context.sent; if (!isGit) { _context.next = 12; break; } return _context.abrupt("break", 15); case 12: parts.pop(); case 13: _context.next = 4; break; case 15: if (!isGit) { _context.next = 30; break; } message = (flags.message || String(config.getOption('version-git-message'))).replace(/%s/g, newVersion); sign = Boolean(config.getOption('version-sign-git-tag')); flag = sign ? '-sm' : '-am'; prefix = String(config.getOption('version-tag-prefix')); _args = ['commit', '-m', message].concat((0, _toConsumableArray2()["default"])(isCommitHooksDisabled() ? ['-n'] : [])); _context.next = 23; return (0, _gitSpawn().spawn)(['rev-parse', '--show-toplevel'], { cwd: config.cwd }); case 23: gitRoot = _context.sent.trim(); _context.next = 26; return (0, _gitSpawn().spawn)(['add', path.relative(gitRoot, pkgLoc)], { cwd: gitRoot }); case 26: _context.next = 28; return (0, _gitSpawn().spawn)(_args, { cwd: gitRoot }); case 28: _context.next = 30; return (0, _gitSpawn().spawn)(['tag', "".concat(prefix).concat(newVersion), flag, message], { cwd: gitRoot }); case 30: _context.next = 32; return runLifecycle('postversion'); case 32: case "end": return _context.stop(); } }, _callee); }))); case 62: case "end": return _context2.stop(); } }, _callee2, null, [[23, 30]]); })); return _setVersion.apply(this, arguments); } function run(_x6, _x7, _x8, _x9, _x10) { return _run.apply(this, arguments); } function _run() { _run = (0, _asyncToGenerator2()["default"])( /*#__PURE__*/_regenerator()["default"].mark(function _callee3(config, reporter, commander, flags, args) { var commit; return _regenerator()["default"].wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: _context3.next = 2; return setVersion(config, reporter, flags, args, true); case 2: commit = _context3.sent; _context3.next = 5; return commit(); case 5: case "end": return _context3.stop(); } }, _callee3); })); return _run.apply(this, arguments); } //# sourceMappingURL=version.js.map