UNPKG

zcatalyst-cli

Version:

Command Line Tool for CATALYST

60 lines (59 loc) 2.96 kB
'use strict'; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const ansi_colors_1 = require("ansi-colors"); const config_store_js_1 = __importDefault(require("../util_modules/config-store.js")); const dc_js_1 = require("../util_modules/dc.js"); const index_js_1 = __importDefault(require("../error/index.js")); const credential_js_1 = __importDefault(require("../authentication/credential.js")); const runtime_store_js_1 = __importDefault(require("../runtime-store.js")); const scopes_js_1 = __importDefault(require("../authentication/constants/scopes.js")); const env_js_1 = require("../util_modules/env.js"); const index_1 = require("../util_modules/logger/index"); const option_js_1 = require("../util_modules/option.js"); exports.default = (inScopes = []) => { const activeDC = (0, dc_js_1.getActiveDC)(); const tokenOpts = [ { option: '--token', token: (0, option_js_1.getGlobalOptionValue)('token'), temp: true }, { option: 'CATALYST_TOKEN env', token: (0, env_js_1.getEnvVariable)('CATALYST_TOKEN', (0, env_js_1.getEnvVariable)('ZC_TOKEN')), temp: true }, { option: 'signed-in user', token: config_store_js_1.default.get(`${activeDC}.credential`), temp: false } ]; const tokenObj = tokenOpts.find((opts) => typeof opts.token === 'string'); if (tokenObj === undefined) { throw new index_js_1.default('Command requires authentication', { exit: 0, errorId: 'AUTH-1', arg: [(0, ansi_colors_1.bold)('catalyst login'), (0, ansi_colors_1.bold)('--token')] }); } (0, index_1.debug)(`> authorizing via ${tokenObj.option} option`); const existingScopes = config_store_js_1.default.get(`${activeDC}.scopes`, []); const requiredScopes = [scopes_js_1.default.projects, ...inScopes]; (0, index_1.debug)('> command requires scopes: ' + JSON.stringify(requiredScopes)); const missingScopes = requiredScopes.filter((scope) => !existingScopes.includes(scope)); if (!tokenObj.temp && !env_js_1.isCI && missingScopes.length > 0) { missingScopes.length > 0 && (0, index_1.debug)('> missing scopes: ', JSON.stringify(missingScopes)); throw new index_js_1.default('Re-login required due to missing scopes!!', { exit: 0, errorId: 'AUTH-2', arg: [(0, ansi_colors_1.bold)('catalyst login --force')] }); } runtime_store_js_1.default.set('context.auth_scopes', requiredScopes); runtime_store_js_1.default.set('user', config_store_js_1.default.get(`${activeDC}.user`, null)); runtime_store_js_1.default.set('credential', credential_js_1.default.initToken(tokenObj.token, tokenObj.temp)); };