UNPKG

zcatalyst-cli

Version:

Command Line Tool for CATALYST

177 lines (176 loc) 8.61 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; }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.logout = exports.login = exports.revoke = exports.list = exports.create = void 0; const ansi_colors_1 = __importStar(require("ansi-colors")); const moment_1 = __importDefault(require("moment")); const config_store_js_1 = __importDefault(require("../util_modules/config-store.js")); const dc_js_1 = require("../util_modules/dc.js"); const error_js_1 = __importDefault(require("./error.js")); const credential_js_1 = __importDefault(require("./credential.js")); const index_js_1 = __importDefault(require("../prompt/index.js")); const dc_type_js_1 = __importDefault(require("../util_modules/constants/lib/dc-type.js")); const js_js_1 = require("../util_modules/js.js"); const index_1 = require("../util_modules/logger/index"); const option_js_1 = require("../util_modules/option.js"); const login_js_1 = __importDefault(require("./login.js")); const revoke_js_1 = __importDefault(require("./revoke.js")); const runtime_store_js_1 = __importDefault(require("../runtime-store.js")); function create() { return __awaiter(this, void 0, void 0, function* () { if ((0, option_js_1.getOptionValue)('current', false)) { return runtime_store_js_1.default.get('credential.cliToken'); } const result = yield new login_js_1.default(false, false).init(); credential_js_1.default.init(result.token).persistMinimal('tokens.' + js_js_1.JS.randomString(6)); return result.token.token; }); } exports.create = create; function list() { const tokens = config_store_js_1.default.get(`${(0, dc_js_1.getActiveDC)()}.tokens`, null); if (tokens === null || Object.keys(tokens).length === 0) { throw new error_js_1.default('No tokens found', { exit: 0, errorId: 'IDX-1', arg: [(0, ansi_colors_1.bold)('catalyst token:generate')] }); } const tableData = []; Object.entries(tokens).forEach(([_tkId, _tk]) => { if (typeof _tk !== 'string') { return; } const tkCred = credential_js_1.default.decrypt(_tk); tableData.push([ _tkId, tkCred.token || 'N/A', tkCred.created_time ? (0, moment_1.default)(tkCred.created_time).format('YYYY-MM-DD HH:mm:ss') : 'N/A' ]); }); return tableData; } exports.list = list; function revoke(id) { return __awaiter(this, void 0, void 0, function* () { const tokens = config_store_js_1.default.get(`${(0, dc_js_1.getActiveDC)()}.tokens`, {}); const tokenKey = Object.keys(tokens).find((key) => key === id); if (tokenKey === undefined) { const allTokenKeys = Object.keys(tokens); throw new error_js_1.default('Unable to retrive token', { exit: 1, errorId: 'IDX-2', arg: [ id, allTokenKeys.length > 0 ? '* ' + allTokenKeys.join('\n* ') : 'None', (0, ansi_colors_1.bold)('catalyst token:list') ] }); } const credential = credential_js_1.default.init(tokens[tokenKey]); return new revoke_js_1.default(credential, 'tokens.' + id).init(); }); } exports.revoke = revoke; function login() { return __awaiter(this, void 0, void 0, function* () { let activeDC = (0, dc_js_1.getActiveDC)(); const user = config_store_js_1.default.get(`${activeDC}.user`); const token = config_store_js_1.default.get(`${activeDC}.credential`); if (user && token && !(0, option_js_1.getOptionValue)('force', false)) { (0, index_1.message)('No need to login. Already logged as: ' + ansi_colors_1.default.cyan.bold(user.Email)); (0, dc_js_1.updateActiveDC)(activeDC); return; } const ans = yield index_js_1.default.ask(index_js_1.default.question('collectUsage', 'Allow Catalyst to collect CLI error reporting information?', { type: 'confirm', defaultAns: true }), index_js_1.default.question('dc', 'Select the datacenter to which you have access: ', { type: 'list', choices: Object.keys(dc_type_js_1.default).map((dc) => { const dcObj = dc_type_js_1.default[dc]; return index_js_1.default.choice(`${dc.toUpperCase().padEnd(3)} - ${dcObj.loc}`, { id: dc, value: dcObj.value, short: dc.toUpperCase() }); }), when: () => !(0, option_js_1.getGlobalOptionValue)('dc') && !!Object.values(dc_type_js_1.default).find((dc) => dc.value === activeDC) })); if (ans.dc !== undefined && ans.dc !== activeDC) { (0, dc_js_1.updateActiveDC)(ans.dc); activeDC = ans.dc; } const localhost = (0, option_js_1.getOptionValue)('localhost', true); const result = yield new login_js_1.default(localhost).init(); activeDC = result.dc; config_store_js_1.default.set('usage', ans.collectUsage); config_store_js_1.default.set(`${activeDC}.user`, result.user); config_store_js_1.default.set(`${activeDC}.scopes`, result.scopes); credential_js_1.default.init(result.token).persistMinimal('credential'); (0, index_1.success)('Success! Logged in as : ' + ansi_colors_1.default.cyan.bold(result.user.Email)); }); } exports.login = login; function logout() { return __awaiter(this, void 0, void 0, function* () { const activeDC = (0, dc_js_1.getActiveDC)(); const tokenObj = config_store_js_1.default.get(`${activeDC}.credential`, null); if (tokenObj === null) { throw new error_js_1.default('Not logged in', { exit: 0, errorId: 'IDX-3', arg: [(0, ansi_colors_1.bold)('catalyst login')] }); } const user = config_store_js_1.default.get(`${activeDC}.user`, null); const ans = user === null ? { consent: true } : yield index_js_1.default.ask(index_js_1.default.question('consent', 'You are about to logout ' + ansi_colors_1.default.cyan.bold(user.Email) + ' , are you sure?', { type: 'confirm', defaultAns: true })); if (!ans.consent) { (0, index_1.message)('Aborting logout process...'); return; } const credential = credential_js_1.default.init(tokenObj, false); yield new revoke_js_1.default(credential, 'credential').init(); (0, index_1.success)('SuccessFully Logged out, we hope to see you soon. (^-^)ノ'); }); } exports.logout = logout;