#!/usr/bin/env -S node --no-warnings import { Command } from "commander"; import inquirer from "inquirer"; import { getCookieStore, getSavedPassword, savePassword } from "./lib/auth.js"; import { Server } from "./lib/Server.js"; const hosts: Record = { dev: "dev.obet.no", stage: "stage.obet.no", prod: "test.obet.no", }; const program = new Command(); program .name("af-auth") .argument("[env]", "Environment dev|stage|prod", "dev") .option("-u, --username ", "Appframe username") .action(async (env, options) => { let hostname = hosts[env] ?? env; let store = getCookieStore(hostname); let username = options.username ?? process.env.APPFRAME_LOGIN ?? ""; let password = (await getSavedPassword(hostname, username)) ?? process.env.APPFRAME_PWD ?? ""; if (!username) { ({ username } = await inquirer.prompt({ type: "input", name: "username", message: "Username" })); } if (!password) { ({ password } = await inquirer.prompt({ type: "password", name: "password", message: "Password" })); } let server = new Server(hostname, username, password, store); await server.login(); await savePassword(hostname, username, password); }); program.parse(process.argv);