UNPKG

@calljmp/cli

Version:
2 lines (1 loc) 4.09 kB
"use strict";var S=Object.create;var h=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var P=Object.getPrototypeOf,T=Object.prototype.hasOwnProperty;var b=(e,t)=>{for(var r in t)h(e,r,{get:t[r],enumerable:!0})},y=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of I(t))!T.call(e,s)&&s!==r&&h(e,s,{get:()=>t[s],enumerable:!(n=k(t,s))||n.enumerable});return e};var f=(e,t,r)=>(r=e!=null?S(P(e)):{},y(t||!e||!e.__esModule?h(r,"default",{value:e,enumerable:!0}):r,e)),x=e=>y(h({},"__esModule",{value:!0}),e);var D={};b(D,{default:()=>v});module.exports=x(D);var m=require("commander"),l=f(require("../config")),w=require("../project"),d=f(require("../logger")),o=f(require("chalk")),u=f(require("ora")),j=f(require("enquirer"));const F=()=>new m.Command("list").description("List all secrets").addOption(l.ConfigOptions.ProjectDirectory).action(async e=>{const t=await(0,l.default)(e);(!t.projectId||!t.accessToken)&&(d.default.error(o.default.red("Project is not linked. Please run `setup` command first.")),process.exit(1));const r=new w.Project({baseUrl:t.baseUrl,accessToken:t.accessToken}),n=await(async()=>{const s=(0,u.default)("Fetching secrets...").start();try{const p=await r.listSecrets({projectId:t.projectId});return s.succeed(o.default.green("Fetched secrets.")),p}catch{s.fail(o.default.red("Failed to fetch secrets.")),process.exit(1)}finally{s.stop()}})();if(d.default.info("Secrets:"),n.length===0){d.default.info(" No secrets found.");return}n.forEach(s=>{d.default.info(` ${o.default.gray(s.name)}`)})}),$=()=>new m.Command("add").description("Add a secret").argument("[name]","Name of the secret").argument("[value]","Value of the secret").addOption(l.ConfigOptions.ProjectDirectory).action(async(e,t,r)=>{const n=await(0,l.default)(r);(!n.projectId||!n.accessToken)&&(d.default.error(o.default.red("Project is not linked. Please run `setup` command first.")),process.exit(1));const s=new w.Project({baseUrl:n.baseUrl,accessToken:n.accessToken}),p=async(a,c)=>{const i=(0,u.default)(`Adding secret ${a}...`).start();try{await s.addSecret({projectId:n.projectId,secretName:a,secretValue:c}),i.succeed(o.default.green(`Secret ${a} added.`))}catch{i.fail(o.default.red(`Failed to add secret ${a}.`)),process.exit(1)}finally{i.stop()}};if(e&&t){await p(e,t);return}const g=await j.default.prompt([{type:"input",name:"name",message:"Enter the name of the secret",validate:a=>/^[A-Z0-9_-]+$/.test(a)?!0:"Secret name must be uppercase, A-Z, 0-9, - or _",initial:e},{type:"password",name:"value",message:"Enter the value of the secret",initial:t}]);await p(g.name,g.value)}),C=()=>new m.Command("delete").description("Delete a secret").argument("[name]","Name of the secret").addOption(l.ConfigOptions.ProjectDirectory).action(async(e,t)=>{const r=await(0,l.default)(t);(!r.projectId||!r.accessToken)&&(d.default.error(o.default.red("Project is not linked. Please run `setup` command first.")),process.exit(1));const n=new w.Project({baseUrl:r.baseUrl,accessToken:r.accessToken}),s=async c=>{const i=(0,u.default)(`Deleting secret ${c}...`).start();try{await n.deleteSecret({projectId:r.projectId,secretName:c}),i.succeed(o.default.green(`Secret ${c} deleted.`))}catch{i.fail(o.default.red(`Failed to delete secret ${c}.`)),process.exit(1)}finally{i.stop()}};if(e){await s(e);return}const p=await(async()=>{const c=(0,u.default)("Fetching secrets...").start();try{const i=await n.listSecrets({projectId:r.projectId});return c.succeed(o.default.green("Fetched secrets.")),i}catch{c.fail(o.default.red("Failed to fetch secrets.")),process.exit(1)}finally{c.stop()}})();if(p.length===0){d.default.info("No secrets found.");return}const g=p.map(c=>({name:c.name,value:c.name})),a=await j.default.prompt({type:"multiselect",name:"secrets",message:"Select secrets to delete",choices:g});if(a.secrets.length===0){d.default.info("No secrets selected.");return}for(const c of a.secrets)await s(c)}),U=()=>new m.Command("secrets").description("Manage project secrets").addCommand(F()).addCommand(C()).addCommand($());var v=U;