UNPKG

cdk-multi-profile-plugin

Version:

Adds multi profile/account, mfa and aws sso support to cdk apps

70 lines 7.22 kB
"use strict"; 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 (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getSSOCachePath = exports.getConfigFilename = exports.getSharedCredentialsFilename = exports.readProfiles = exports.tokenCodeFn = void 0; const path = __importStar(require("path")); const os = __importStar(require("os")); const inquirer = __importStar(require("inquirer")); const mfa_token_cache_1 = require("./mfa-token-cache"); const profile_mapper_1 = require("./profile-mapper"); const tokenCache = new mfa_token_cache_1.MfaTokenCache(); const tokenCodeFn = async (mfaSerial, callback) => { try { const { token } = await inquirer.prompt({ name: 'token', type: 'input', default: '', message: `MFA token for ${mfaSerial}:`, validate: async (input) => { if (tokenCache.has(mfaSerial, input)) { return `Token ${input} has already been used in this run`; } tokenCache.set(mfaSerial, input); return true; }, }); return callback(undefined, token); } catch (e) { console.error('error:', e); return callback(e, undefined); } }; exports.tokenCodeFn = tokenCodeFn; const readProfiles = () => { const profileMapper = new profile_mapper_1.PrecedenceProfileMapper(); return profileMapper.resolve(); }; exports.readProfiles = readProfiles; const getSharedCredentialsFilename = () => { var _a; return (_a = process.env.AWS_SHARED_CREDENTIALS_FILE) !== null && _a !== void 0 ? _a : path.join(os.homedir(), '.aws', 'credentials'); }; exports.getSharedCredentialsFilename = getSharedCredentialsFilename; const getConfigFilename = () => { var _a; return (_a = process.env.AWS_CONFIG_FILE) !== null && _a !== void 0 ? _a : path.join(os.homedir(), '.aws', 'config'); }; exports.getConfigFilename = getConfigFilename; const getSSOCachePath = () => path.join(os.homedir(), '.aws', 'sso', 'cache'); exports.getSSOCachePath = getSSOCachePath; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBNkI7QUFDN0IsdUNBQXlCO0FBQ3pCLG1EQUFxQztBQUVyQyx1REFBa0Q7QUFDbEQscURBQTJEO0FBRTNELE1BQU0sVUFBVSxHQUFHLElBQUksK0JBQWEsRUFBRSxDQUFDO0FBRWhDLE1BQU0sV0FBVyxHQUFHLEtBQUssRUFDOUIsU0FBaUIsRUFDakIsUUFBK0MsRUFDaEMsRUFBRTtJQUNqQixJQUFJO1FBQ0YsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUN0QyxJQUFJLEVBQUUsT0FBTztZQUNiLElBQUksRUFBRSxPQUFPO1lBQ2IsT0FBTyxFQUFFLEVBQUU7WUFDWCxPQUFPLEVBQUUsaUJBQWlCLFNBQVMsR0FBRztZQUN0QyxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUN4QixJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFO29CQUNwQyxPQUFPLFNBQVMsS0FBSyxvQ0FBb0MsQ0FBQztpQkFDM0Q7Z0JBRUQsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBRWpDLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztTQUNGLENBQUMsQ0FBQztRQUNILE9BQU8sUUFBUSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztLQUNuQztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0IsT0FBTyxRQUFRLENBQUMsQ0FBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0tBQ3hDO0FBQ0gsQ0FBQyxDQUFDO0FBekJXLFFBQUEsV0FBVyxlQXlCdEI7QUFFSyxNQUFNLFlBQVksR0FBRyxHQUEyQixFQUFFO0lBQ3ZELE1BQU0sYUFBYSxHQUFHLElBQUksd0NBQXVCLEVBQUUsQ0FBQztJQUNwRCxPQUFPLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUNqQyxDQUFDLENBQUM7QUFIVyxRQUFBLFlBQVksZ0JBR3ZCO0FBRUssTUFBTSw0QkFBNEIsR0FBRyxHQUFXLEVBQUU7O0lBQ3ZELE9BQUEsTUFBQSxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixtQ0FDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFBO0NBQUEsQ0FBQztBQUZwQyxRQUFBLDRCQUE0QixnQ0FFUTtBQUUxQyxNQUFNLGlCQUFpQixHQUFHLEdBQVcsRUFBRSxXQUM1QyxPQUFBLE1BQUEsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLG1DQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQSxFQUFBLENBQUM7QUFEOUQsUUFBQSxpQkFBaUIscUJBQzZDO0FBRXBFLE1BQU0sZUFBZSxHQUFHLEdBQVcsRUFBRSxDQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRHJDLFFBQUEsZUFBZSxtQkFDc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgaW5xdWlyZXIgZnJvbSAnaW5xdWlyZXInO1xuXG5pbXBvcnQgeyBNZmFUb2tlbkNhY2hlIH0gZnJvbSAnLi9tZmEtdG9rZW4tY2FjaGUnO1xuaW1wb3J0IHsgUHJlY2VkZW5jZVByb2ZpbGVNYXBwZXIgfSBmcm9tICcuL3Byb2ZpbGUtbWFwcGVyJztcblxuY29uc3QgdG9rZW5DYWNoZSA9IG5ldyBNZmFUb2tlbkNhY2hlKCk7XG5cbmV4cG9ydCBjb25zdCB0b2tlbkNvZGVGbiA9IGFzeW5jIChcbiAgbWZhU2VyaWFsOiBzdHJpbmcsXG4gIGNhbGxiYWNrOiAoZXJyPzogRXJyb3IsIHRva2VuPzogc3RyaW5nKSA9PiB2b2lkLFxuKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgeyB0b2tlbiB9ID0gYXdhaXQgaW5xdWlyZXIucHJvbXB0KHtcbiAgICAgIG5hbWU6ICd0b2tlbicsXG4gICAgICB0eXBlOiAnaW5wdXQnLFxuICAgICAgZGVmYXVsdDogJycsXG4gICAgICBtZXNzYWdlOiBgTUZBIHRva2VuIGZvciAke21mYVNlcmlhbH06YCxcbiAgICAgIHZhbGlkYXRlOiBhc3luYyAoaW5wdXQpID0+IHtcbiAgICAgICAgaWYgKHRva2VuQ2FjaGUuaGFzKG1mYVNlcmlhbCwgaW5wdXQpKSB7XG4gICAgICAgICAgcmV0dXJuIGBUb2tlbiAke2lucHV0fSBoYXMgYWxyZWFkeSBiZWVuIHVzZWQgaW4gdGhpcyBydW5gO1xuICAgICAgICB9XG5cbiAgICAgICAgdG9rZW5DYWNoZS5zZXQobWZhU2VyaWFsLCBpbnB1dCk7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiBjYWxsYmFjayh1bmRlZmluZWQsIHRva2VuKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ2Vycm9yOicsIGUpO1xuICAgIHJldHVybiBjYWxsYmFjayhlIGFzIEVycm9yLCB1bmRlZmluZWQpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgcmVhZFByb2ZpbGVzID0gKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4ge1xuICBjb25zdCBwcm9maWxlTWFwcGVyID0gbmV3IFByZWNlZGVuY2VQcm9maWxlTWFwcGVyKCk7XG4gIHJldHVybiBwcm9maWxlTWFwcGVyLnJlc29sdmUoKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTaGFyZWRDcmVkZW50aWFsc0ZpbGVuYW1lID0gKCk6IHN0cmluZyA9PlxuICBwcm9jZXNzLmVudi5BV1NfU0hBUkVEX0NSRURFTlRJQUxTX0ZJTEUgPz9cbiAgcGF0aC5qb2luKG9zLmhvbWVkaXIoKSwgJy5hd3MnLCAnY3JlZGVudGlhbHMnKTtcblxuZXhwb3J0IGNvbnN0IGdldENvbmZpZ0ZpbGVuYW1lID0gKCk6IHN0cmluZyA9PlxuICBwcm9jZXNzLmVudi5BV1NfQ09ORklHX0ZJTEUgPz8gcGF0aC5qb2luKG9zLmhvbWVkaXIoKSwgJy5hd3MnLCAnY29uZmlnJyk7XG5cbmV4cG9ydCBjb25zdCBnZXRTU09DYWNoZVBhdGggPSAoKTogc3RyaW5nID0+XG4gIHBhdGguam9pbihvcy5ob21lZGlyKCksICcuYXdzJywgJ3NzbycsICdjYWNoZScpO1xuIl19