UNPKG

@papavault/cli

Version:

CLI tool for Papa Vault Secret Manager

61 lines (60 loc) 2.97 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.listProjectsCommand = listProjectsCommand; const chalk_1 = __importDefault(require("chalk")); const ora_1 = __importDefault(require("ora")); const config_1 = require("../utils/config"); const api_1 = require("../utils/api"); function listProjectsCommand(program) { program .command('list-projects') .description('List all available projects') .option('-t, --token <token>', 'API token for authentication (overrides stored token)') .action(async (options) => { // Check if authenticated if (!(0, config_1.isAuthenticated)() && !options.token) { console.log(chalk_1.default.red('You need to be logged in to list projects.')); console.log(chalk_1.default.yellow('Run `papavault login` to authenticate or provide a token with --token.')); return; } // Fetch projects const spinner = (0, ora_1.default)('Fetching projects...').start(); try { const projects = await (0, api_1.getProjects)(options.token); spinner.succeed(`Found ${projects.length} projects.`); if (projects.length === 0) { console.log(chalk_1.default.yellow('No projects found.')); return; } // Display projects console.log(chalk_1.default.bold('\nAvailable Projects:')); console.log(chalk_1.default.gray('------------------')); projects.forEach((project, index) => { console.log(chalk_1.default.bold(`\n${index + 1}. ${project.name}`)); console.log(chalk_1.default.gray(` ID: ${project.id}`)); if (project.description) { console.log(chalk_1.default.gray(` Description: ${project.description}`)); } // Display environments if (project.environments && project.environments.length > 0) { console.log(chalk_1.default.cyan(' Environments:')); project.environments.forEach((env) => { const envDisplay = env.name ? `${env.name} (${env.id})` : env.id; console.log(chalk_1.default.gray(` - ${envDisplay}`)); }); } else { console.log(chalk_1.default.yellow(' No environments configured.')); } }); console.log(chalk_1.default.green('\nTip:'), 'Use', chalk_1.default.cyan('`papavault set-project`'), 'to configure a project for secret syncing.'); } catch (error) { spinner.fail('Failed to fetch projects'); console.error(chalk_1.default.red('Error:'), error); } }); }