jsii-release
Version:
Release jsii modules to multiple package managers
93 lines • 9.97 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.npmLogin = npmLogin;
exports.uploadNpmPackages = uploadNpmPackages;
/* eslint-disable no-console */
const path = __importStar(require("path"));
const parallel_shell_1 = require("./parallel-shell");
const display_1 = require("../display");
const files_1 = require("../files");
const shell_1 = require("../shell");
async function npmLogin(login, usageDir) {
// Creating an ~/.npmrc that references an envvar is what you're supposed to do. (https://docs.npmjs.com/private-modules/ci-server-config)
await writeNpmLoginToken(usageDir, login.npmEndpoint, '${NPM_TOKEN}');
// Add variables to env file
await usageDir.addToEnv(npmEnv(usageDir, login));
}
function npmEnv(usageDir, login) {
return {
npm_config_userconfig: path.join(usageDir.directory, '.npmrc'),
npm_config_registry: login.npmEndpoint,
npm_config_always_auth: 'true', // Necessary for NPM 6, otherwise it will sometimes not pass the token
NPM_TOKEN: login.authToken,
};
}
async function uploadNpmPackages(packages, login, usageDir) {
if (packages.length === 0) {
return;
}
(0, display_1.header)('NPM');
await (0, parallel_shell_1.parallelShell)(packages, async (pkg, output) => {
console.log(`⏳ ${pkg}`);
// path.resolve() is required -- if the filename ends up looking like `js/bla.tgz` then NPM thinks it's a short form GitHub name.
await (0, shell_1.shell)(['npm', 'publish', path.resolve(pkg)], {
modEnv: npmEnv(usageDir, login),
show: 'error',
output,
});
console.log(`✅ ${pkg}`);
}, (pkg, output) => {
if (output.toString().includes('code EPUBLISHCONFLICT')) {
console.log(`❌ ${pkg}: already exists. Skipped.`);
return 'skip';
}
if (output.toString().includes('code EPRIVATE')) {
console.log(`❌ ${pkg}: is private. Skipped.`);
return 'skip';
}
return 'fail';
});
}
async function writeNpmLoginToken(usageDir, endpoint, token) {
const rcFile = path.join(usageDir.directory, '.npmrc');
const lines = await (0, files_1.loadLines)(rcFile);
const key = `${endpoint.replace(/^https:/, '')}:_authToken`;
(0, files_1.updateIniKey)(lines, key, token);
await (0, files_1.writeLines)(rcFile, lines);
return rcFile;
}
// Environment variable, .npmrc in same directory as package.json or in home dir
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvZGVhcnRpZmFjdC9zdGFnaW5nL25wbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVNBLDRCQU1DO0FBV0QsOENBNEJDO0FBdERELCtCQUErQjtBQUMvQiwyQ0FBNkI7QUFDN0IscURBQWlEO0FBRWpELHdDQUFvQztBQUNwQyxvQ0FBK0Q7QUFDL0Qsb0NBQWlDO0FBRzFCLEtBQUssVUFBVSxRQUFRLENBQUMsS0FBdUIsRUFBRSxRQUFrQjtJQUN4RSwwSUFBMEk7SUFDMUksTUFBTSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUV0RSw0QkFBNEI7SUFDNUIsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRUQsU0FBUyxNQUFNLENBQUMsUUFBa0IsRUFBRSxLQUF1QjtJQUN6RCxPQUFPO1FBQ0wscUJBQXFCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQztRQUM5RCxtQkFBbUIsRUFBRSxLQUFLLENBQUMsV0FBVztRQUN0QyxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsc0VBQXNFO1FBQ3RHLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztLQUMzQixDQUFDO0FBQ0osQ0FBQztBQUVNLEtBQUssVUFBVSxpQkFBaUIsQ0FBQyxRQUFrQixFQUFFLEtBQXVCLEVBQUUsUUFBa0I7SUFDckcsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzFCLE9BQU87SUFDVCxDQUFDO0lBRUQsSUFBQSxnQkFBTSxFQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2QsTUFBTSxJQUFBLDhCQUFhLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDbEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFFeEIsaUlBQWlJO1FBQ2pJLE1BQU0sSUFBQSxhQUFLLEVBQUMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNqRCxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUM7WUFDL0IsSUFBSSxFQUFFLE9BQU87WUFDYixNQUFNO1NBQ1AsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ2pCLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUM7WUFDeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsNEJBQTRCLENBQUMsQ0FBQztZQUNsRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsd0JBQXdCLENBQUMsQ0FBQztZQUM5QyxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsS0FBSyxVQUFVLGtCQUFrQixDQUFDLFFBQWtCLEVBQUUsUUFBZ0IsRUFBRSxLQUFhO0lBQ25GLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2RCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUEsaUJBQVMsRUFBQyxNQUFNLENBQUMsQ0FBQztJQUV0QyxNQUFNLEdBQUcsR0FBRyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDNUQsSUFBQSxvQkFBWSxFQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFaEMsTUFBTSxJQUFBLGtCQUFVLEVBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxnRkFBZ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgcGFyYWxsZWxTaGVsbCB9IGZyb20gJy4vcGFyYWxsZWwtc2hlbGwnO1xuaW1wb3J0IHsgTG9naW5JbmZvcm1hdGlvbiB9IGZyb20gJy4uL2NvZGVhcnRpZmFjdC1yZXBvJztcbmltcG9ydCB7IGhlYWRlciB9IGZyb20gJy4uL2Rpc3BsYXknO1xuaW1wb3J0IHsgdXBkYXRlSW5pS2V5LCBsb2FkTGluZXMsIHdyaXRlTGluZXMgfSBmcm9tICcuLi9maWxlcyc7XG5pbXBvcnQgeyBzaGVsbCB9IGZyb20gJy4uL3NoZWxsJztcbmltcG9ydCB7IFVzYWdlRGlyIH0gZnJvbSAnLi4vdXNhZ2UtZGlyJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG5wbUxvZ2luKGxvZ2luOiBMb2dpbkluZm9ybWF0aW9uLCB1c2FnZURpcjogVXNhZ2VEaXIpIHtcbiAgLy8gQ3JlYXRpbmcgYW4gfi8ubnBtcmMgdGhhdCByZWZlcmVuY2VzIGFuIGVudnZhciBpcyB3aGF0IHlvdSdyZSBzdXBwb3NlZCB0byBkby4gKGh0dHBzOi8vZG9jcy5ucG1qcy5jb20vcHJpdmF0ZS1tb2R1bGVzL2NpLXNlcnZlci1jb25maWcpXG4gIGF3YWl0IHdyaXRlTnBtTG9naW5Ub2tlbih1c2FnZURpciwgbG9naW4ubnBtRW5kcG9pbnQsICcke05QTV9UT0tFTn0nKTtcblxuICAvLyBBZGQgdmFyaWFibGVzIHRvIGVudiBmaWxlXG4gIGF3YWl0IHVzYWdlRGlyLmFkZFRvRW52KG5wbUVudih1c2FnZURpciwgbG9naW4pKTtcbn1cblxuZnVuY3Rpb24gbnBtRW52KHVzYWdlRGlyOiBVc2FnZURpciwgbG9naW46IExvZ2luSW5mb3JtYXRpb24pIHtcbiAgcmV0dXJuIHtcbiAgICBucG1fY29uZmlnX3VzZXJjb25maWc6IHBhdGguam9pbih1c2FnZURpci5kaXJlY3RvcnksICcubnBtcmMnKSxcbiAgICBucG1fY29uZmlnX3JlZ2lzdHJ5OiBsb2dpbi5ucG1FbmRwb2ludCxcbiAgICBucG1fY29uZmlnX2Fsd2F5c19hdXRoOiAndHJ1ZScsIC8vIE5lY2Vzc2FyeSBmb3IgTlBNIDYsIG90aGVyd2lzZSBpdCB3aWxsIHNvbWV0aW1lcyBub3QgcGFzcyB0aGUgdG9rZW5cbiAgICBOUE1fVE9LRU46IGxvZ2luLmF1dGhUb2tlbixcbiAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwbG9hZE5wbVBhY2thZ2VzKHBhY2thZ2VzOiBzdHJpbmdbXSwgbG9naW46IExvZ2luSW5mb3JtYXRpb24sIHVzYWdlRGlyOiBVc2FnZURpcikge1xuICBpZiAocGFja2FnZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaGVhZGVyKCdOUE0nKTtcbiAgYXdhaXQgcGFyYWxsZWxTaGVsbChwYWNrYWdlcywgYXN5bmMgKHBrZywgb3V0cHV0KSA9PiB7XG4gICAgY29uc29sZS5sb2coYOKPsyAke3BrZ31gKTtcblxuICAgIC8vIHBhdGgucmVzb2x2ZSgpIGlzIHJlcXVpcmVkIC0tIGlmIHRoZSBmaWxlbmFtZSBlbmRzIHVwIGxvb2tpbmcgbGlrZSBganMvYmxhLnRnemAgdGhlbiBOUE0gdGhpbmtzIGl0J3MgYSBzaG9ydCBmb3JtIEdpdEh1YiBuYW1lLlxuICAgIGF3YWl0IHNoZWxsKFsnbnBtJywgJ3B1Ymxpc2gnLCBwYXRoLnJlc29sdmUocGtnKV0sIHtcbiAgICAgIG1vZEVudjogbnBtRW52KHVzYWdlRGlyLCBsb2dpbiksXG4gICAgICBzaG93OiAnZXJyb3InLFxuICAgICAgb3V0cHV0LFxuICAgIH0pO1xuXG4gICAgY29uc29sZS5sb2coYOKchSAke3BrZ31gKTtcbiAgfSwgKHBrZywgb3V0cHV0KSA9PiB7XG4gICAgaWYgKG91dHB1dC50b1N0cmluZygpLmluY2x1ZGVzKCdjb2RlIEVQVUJMSVNIQ09ORkxJQ1QnKSkge1xuICAgICAgY29uc29sZS5sb2coYOKdjCAke3BrZ306IGFscmVhZHkgZXhpc3RzLiBTa2lwcGVkLmApO1xuICAgICAgcmV0dXJuICdza2lwJztcbiAgICB9XG4gICAgaWYgKG91dHB1dC50b1N0cmluZygpLmluY2x1ZGVzKCdjb2RlIEVQUklWQVRFJykpIHtcbiAgICAgIGNvbnNvbGUubG9nKGDinYwgJHtwa2d9OiBpcyBwcml2YXRlLiBTa2lwcGVkLmApO1xuICAgICAgcmV0dXJuICdza2lwJztcbiAgICB9XG4gICAgcmV0dXJuICdmYWlsJztcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdyaXRlTnBtTG9naW5Ub2tlbih1c2FnZURpcjogVXNhZ2VEaXIsIGVuZHBvaW50OiBzdHJpbmcsIHRva2VuOiBzdHJpbmcpIHtcbiAgY29uc3QgcmNGaWxlID0gcGF0aC5qb2luKHVzYWdlRGlyLmRpcmVjdG9yeSwgJy5ucG1yYycpO1xuICBjb25zdCBsaW5lcyA9IGF3YWl0IGxvYWRMaW5lcyhyY0ZpbGUpO1xuXG4gIGNvbnN0IGtleSA9IGAke2VuZHBvaW50LnJlcGxhY2UoL15odHRwczovLCAnJyl9Ol9hdXRoVG9rZW5gO1xuICB1cGRhdGVJbmlLZXkobGluZXMsIGtleSwgdG9rZW4pO1xuXG4gIGF3YWl0IHdyaXRlTGluZXMocmNGaWxlLCBsaW5lcyk7XG4gIHJldHVybiByY0ZpbGU7XG59XG5cbi8vIEVudmlyb25tZW50IHZhcmlhYmxlLCAubnBtcmMgaW4gc2FtZSBkaXJlY3RvcnkgYXMgcGFja2FnZS5qc29uIG9yIGluIGhvbWUgZGlyIl19