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
38 lines (37 loc) • 1.25 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getUsers = getUsers;
exports.saveUsers = saveUsers;
exports.signup = signup;
exports.login = login;
// utils/auth.ts
const bcryptjs_1 = __importDefault(require("bcryptjs"));
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const USERS_FILE = path_1.default.join(__dirname, '../../users.json');
function getUsers() {
if (!fs_1.default.existsSync(USERS_FILE))
return {};
return JSON.parse(fs_1.default.readFileSync(USERS_FILE, 'utf-8'));
}
function saveUsers(users) {
fs_1.default.writeFileSync(USERS_FILE, JSON.stringify(users, null, 2));
}
function signup(username, password) {
const users = getUsers();
if (users[username])
return false;
users[username] = bcryptjs_1.default.hashSync(password, 10);
saveUsers(users);
return true;
}
function login(username, password) {
const users = getUsers();
const hash = users[username];
if (!hash)
return false;
return bcryptjs_1.default.compareSync(password, hash);
}