UNPKG

@lerna/publish

Version:

Publish packages in the current project

67 lines (66 loc) 2.75 kB
var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var import_core = require("@lerna/core"); var import_libnpmaccess = __toESM(require("libnpmaccess")); const { getFetchConfig } = require("./fetch-config"); module.exports.verifyNpmPackageAccess = verifyNpmPackageAccess; function verifyNpmPackageAccess(packages, username, options) { const opts = getFetchConfig(options, { // don't wait forever for third-party failures to be dealt with fetchRetries: 0 }); opts.log.silly("verifyNpmPackageAccess"); return (0, import_core.pulseTillDone)(import_libnpmaccess.default.lsPackages(username, opts)).then(success, failure); function success(result) { if (result === null) { opts.log.warn( "", "The logged-in user does not have any previously-published packages, skipping permission checks..." ); } else { for (const pkg of packages) { if (pkg.name in result && result[pkg.name] !== "read-write") { throw new import_core.ValidationError( "EACCESS", `You do not have write permission required to publish "${pkg.name}"` ); } } } } function failure(err) { if (err.code === "E500" || err.code === "E404") { opts.log.warn( "EREGISTRY", "Registry %j does not support `npm access ls-packages`, skipping permission checks...", // registry opts.registry ); return; } opts.log.pause(); console.error(err.message); opts.log.resume(); throw new import_core.ValidationError("EWHOAMI", "Authentication error. Use `npm whoami` to troubleshoot."); } }