import { saveOrgConfig } from "../utils/config.js"; import { getSfSession, selectOrg } from "../utils/getOrgSession.js"; import chalk from "chalk"; export async function login(alias?: string): Promise { if (!alias) { console.log(`🔑 No org provided, fetching orgs from Salesforce...`); alias = await selectOrg(); } console.log(`🔑 Logging in to Salesforce as org ${alias}...`); try { const session = await getSfSession(alias); if (!session) { throw new Error("Failed to get Salesforce session"); } await saveOrgConfig( session.alias, session.instanceUrl, session.sid!, session.auraToken, session.cookies ); console.log(chalk.green("✅ Successfully logged in to Salesforce!")); console.log(`\nOrganization: ${chalk.cyan(session.alias)}`); console.log(`Instance URL: ${chalk.cyan(session.instanceUrl)}`); } catch (error) { if (error instanceof Error) { console.error(chalk.red("❌ Login failed:")); console.error(chalk.red(` ${error.message}`)); } else { console.error(chalk.red("❌ An unexpected error occurred during login")); } process.exit(1); } }