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
40 lines (39 loc) • 1.52 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createCommand = createCommand;
// commands/create.ts
const commander_1 = require("commander");
const inquirer_1 = __importDefault(require("inquirer"));
const fs_1 = __importDefault(require("fs"));
const crypto_1 = require("../utils/crypto");
const paths_1 = require("../config/paths");
const path_1 = __importDefault(require("path"));
function createCommand() {
const cmd = new commander_1.Command('create');
cmd.action(async () => {
const { username, password } = await inquirer_1.default.prompt([
{
type: 'input',
name: 'username',
message: 'Enter your username:',
validate: (input) => input.trim() !== '' || 'Username cannot be empty.',
},
{
type: 'password',
name: 'password',
message: 'Enter a vault password:',
mask: '*',
},
]);
const vault = {
[username]: (0, crypto_1.encrypt)('init', password),
};
fs_1.default.mkdirSync(path_1.default.dirname(paths_1.vaultPath), { recursive: true });
fs_1.default.writeFileSync(paths_1.vaultPath, JSON.stringify(vault));
console.log(`✅ Vault created for user "${username}"`);
});
return cmd;
}