cloakx
Version:
Cloakx is a secure, lightweight CLI tool to manage your development secrets locally — no cloud, no hassle. Store, retrieve, and manage secrets across projects with encryption and ease. 🔐 Perfect for solo devs, indie hackers, and teams who value speed, si
54 lines (53 loc) • 2 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.resetCommand = resetCommand;
// src/commands/reset.ts
const commander_1 = require("commander");
const inquirer_1 = __importDefault(require("inquirer"));
const vault_1 = require("../utils/vault");
const crypto_1 = require("../utils/crypto");
const auth_1 = require("../utils/auth");
function resetCommand() {
return new commander_1.Command('reset')
.description('⚠️ Reset the vault by deleting all stored keys')
.action(async () => {
const confirm = await inquirer_1.default.prompt([
{
type: 'confirm',
name: 'confirmed',
message: '⚠️ This will delete all data in the vault. Are you sure?',
default: false,
},
]);
if (!confirm.confirmed) {
console.log('❌ Vault reset cancelled.');
return;
}
const passwordPrompt = await inquirer_1.default.prompt([
{
type: 'password',
name: 'password',
message: '🔒 Enter your vault password:',
mask: '*',
},
]);
const enteredPassword = passwordPrompt.password;
try {
const password = await (0, auth_1.ensureAuthenticated)();
const vault = (0, vault_1.getVault)();
const keys = Object.keys(vault);
if (keys.length > 0) {
const testKey = keys[0];
(0, crypto_1.decrypt)(vault[testKey], enteredPassword); // throws if password wrong
}
(0, vault_1.saveVault)({});
console.log('🗑️ Vault has been cleared.');
}
catch (err) {
console.error('❌ Invalid password. Vault reset aborted.');
}
});
}