JezK
Edit File: publish.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; 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 _npmRegistry() { var data = _interopRequireDefault(require("../../registries/npm-registry.js")); _npmRegistry = function _npmRegistry() { return data; }; return data; } function _errors() { var data = require("../../errors.js"); _errors = function _errors() { return data; }; return data; } function _version() { var data = require("./version.js"); _version = function _version() { return data; }; return data; } function fs() { var data = _interopRequireWildcard(require("../../util/fs.js")); fs = function fs() { return data; }; return data; } function _pack() { var data = require("./pack.js"); _pack = function _pack() { return data; }; return data; } function _login() { var data = require("./login.js"); _login = function _login() { return data; }; return data; } function _path() { var data = _interopRequireDefault(require("path")); _path = function _path() { 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; } var invariant = require('invariant'); var crypto = require('crypto'); var url = require('url'); var fs2 = require('fs'); var ssri = require('ssri'); function setFlags(commander) { (0, _version().setFlags)(commander); commander.description('Publishes a package to the npm registry.'); commander.usage('publish [<tarball>|<folder>] [--tag <tag>] [--access <public|restricted>]'); commander.option('--access [access]', 'access'); commander.option('--tag [tag]', 'tag'); } function hasWrapper(commander, args) { return true; } function publish(_x, _x2, _x3, _x4) { return _publish.apply(this, arguments); } function _publish() { _publish = (0, _asyncToGenerator2()["default"])( /*#__PURE__*/_regenerator()["default"].mark(function _callee(config, pkg, flags, dir) { var access, stat, stream, buffer, key, tag, tbName, tbURI, root, registry; return _regenerator()["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: access = flags.access; // if no access level is provided, check package.json for `publishConfig.access` // see: https://docs.npmjs.com/files/package.json#publishconfig if (!access && pkg && pkg.publishConfig && pkg.publishConfig.access) { access = pkg.publishConfig.access; } // validate access argument if (!(access && access !== 'public' && access !== 'restricted')) { _context.next = 4; break; } throw new (_errors().MessageError)(config.reporter.lang('invalidAccess')); case 4: _context.next = 6; return config.executeLifecycleScript('prepublish'); case 6: _context.next = 8; return config.executeLifecycleScript('prepare'); case 8: _context.next = 10; return config.executeLifecycleScript('prepublishOnly'); case 10: _context.next = 12; return config.executeLifecycleScript('prepack'); case 12: _context.next = 14; return fs().lstat(dir); case 14: stat = _context.sent; if (!stat.isDirectory()) { _context.next = 21; break; } _context.next = 18; return (0, _pack().pack)(config); case 18: stream = _context.sent; _context.next = 26; break; case 21: if (!stat.isFile()) { _context.next = 25; break; } stream = fs2.createReadStream(dir); _context.next = 26; break; case 25: throw new Error("Don't know how to handle this file type"); case 26: _context.next = 28; return new Promise(function (resolve, reject) { var data = []; invariant(stream, 'expected stream'); stream.on('data', data.push.bind(data)).on('end', function () { return resolve(Buffer.concat(data)); }).on('error', reject); }); case 28: buffer = _context.sent; _context.next = 31; return config.executeLifecycleScript('postpack'); case 31: // copy normalized package and remove internal keys as they may be sensitive or yarn specific pkg = Object.assign({}, pkg); for (key in pkg) { if (key[0] === '_') { delete pkg[key]; } } tag = flags.tag || 'latest'; tbName = "".concat(pkg.name, "-").concat(pkg.version, ".tgz"); tbURI = "".concat(pkg.name, "/-/").concat(tbName); // create body root = { _id: pkg.name, access: access, name: pkg.name, description: pkg.description, 'dist-tags': (0, _defineProperty2()["default"])({}, tag, pkg.version), versions: (0, _defineProperty2()["default"])({}, pkg.version, pkg), readme: pkg.readme || '', _attachments: (0, _defineProperty2()["default"])({}, tbName, { content_type: 'application/octet-stream', data: buffer.toString('base64'), length: buffer.length }) }; pkg._id = "".concat(pkg.name, "@").concat(pkg.version); pkg.dist = pkg.dist || {}; pkg.dist.shasum = crypto.createHash('sha1').update(buffer).digest('hex'); pkg.dist.integrity = ssri.fromData(buffer).toString(); registry = String(config.getOption('registry')); pkg.dist.tarball = url.resolve(registry, tbURI).replace(/^https:\/\//, 'http://'); // publish package _context.prev = 43; _context.next = 46; return config.registries.npm.request(_npmRegistry()["default"].escapeName(pkg.name), { registry: pkg && pkg.publishConfig && pkg.publishConfig.registry, method: 'PUT', body: root }); case 46: _context.next = 51; break; case 48: _context.prev = 48; _context.t0 = _context["catch"](43); throw new (_errors().MessageError)(config.reporter.lang('publishFail', _context.t0.message)); case 51: _context.next = 53; return config.executeLifecycleScript('publish'); case 53: _context.next = 55; return config.executeLifecycleScript('postpublish'); case 55: case "end": return _context.stop(); } }, _callee, null, [[43, 48]]); })); return _publish.apply(this, arguments); } function run(_x5, _x6, _x7, _x8, _x9) { return _run.apply(this, arguments); } function _run() { _run = (0, _asyncToGenerator2()["default"])( /*#__PURE__*/_regenerator()["default"].mark(function _callee2(config, reporter, commander, flags, args) { var dir, stat, publishPath, pkg, registry, commitVersion, revoke; return _regenerator()["default"].wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: // validate arguments dir = args[0] ? _path()["default"].resolve(config.cwd, args[0]) : config.cwd; if (!(args.length > 1)) { _context2.next = 3; break; } throw new (_errors().MessageError)(reporter.lang('tooManyArguments', 1)); case 3: _context2.next = 5; return fs().exists(dir); case 5: if (_context2.sent) { _context2.next = 7; break; } throw new (_errors().MessageError)(reporter.lang('unknownFolderOrTarball')); case 7: _context2.next = 9; return fs().lstat(dir); case 9: stat = _context2.sent; publishPath = dir; if (stat.isDirectory()) { config.cwd = _path()["default"].resolve(dir); publishPath = config.cwd; } // validate package fields that are required for publishing // $FlowFixMe _context2.next = 14; return config.readRootManifest(); case 14: pkg = _context2.sent; if (!pkg["private"]) { _context2.next = 17; break; } throw new (_errors().MessageError)(reporter.lang('publishPrivate')); case 17: if (pkg.name) { _context2.next = 19; break; } throw new (_errors().MessageError)(reporter.lang('noName')); case 19: registry = ''; if (pkg && pkg.publishConfig && pkg.publishConfig.registry) { registry = pkg.publishConfig.registry; } reporter.step(1, 4, reporter.lang('bumpingVersion')); _context2.next = 24; return (0, _version().setVersion)(config, reporter, flags, [], false); case 24: commitVersion = _context2.sent; // reporter.step(2, 4, reporter.lang('loggingIn')); _context2.next = 28; return (0, _login().getToken)(config, reporter, pkg.name, flags, registry); case 28: revoke = _context2.sent; // reporter.step(3, 4, reporter.lang('publishing')); _context2.next = 32; return publish(config, pkg, flags, publishPath); case 32: _context2.next = 34; return commitVersion(); case 34: reporter.success(reporter.lang('published')); // reporter.step(4, 4, reporter.lang('revokingToken')); _context2.next = 38; return revoke(); case 38: case "end": return _context2.stop(); } }, _callee2); })); return _run.apply(this, arguments); } //# sourceMappingURL=publish.js.map