UNPKG

ragvault

Version:

Securely manage and query your private data using a local vector database. Your private RAG.

36 lines (35 loc) 1.19 kB
import chalk from "chalk"; import inquirer from "inquirer"; import { createSpinner } from "nanospinner"; import { sleep } from "../../utils/sleep.js"; import bcrypt from "bcryptjs"; export async function login(users) { const { username, password } = await inquirer.prompt([ { type: "input", name: "username", message: "Enter your username:", validate: (input) => input.trim() !== "" || "Username cannot be empty", }, { type: "password", name: "password", message: "Enter your password:", validate: (input) => input.trim() !== "" || "Password cannot be empty", }, ]); const spinner = createSpinner("Logging in...").start(); await sleep(1000); if (!users[username]) { spinner.error({ text: chalk.red("Username not found.") }); return null; } if (await bcrypt.compare(password, users[username].password)) { spinner.success({ text: chalk.green("Login successful!") }); return users[username]; } else { spinner.error({ text: chalk.red("Invalid password.") }); return null; } }