UNPKG

alwaysai

Version:

The alwaysAI command-line interface (CLI)

49 lines (47 loc) 1.61 kB
import * as chalk from 'chalk'; import { CliLeaf, CliUsageError } from '@alwaysai/alwayscli'; import { yesCliInput, alwaysaiUserEmailCliInput, alwaysaiUserPasswordCliInput } from '../../cli-inputs'; import { alwaysaiUserLoginYesComponent, alwaysaiUserLoginPromptComponent } from '../../components/user'; import { RequiredWithYesMessage, echo } from '../../util'; import { postTrackingDataToHubspot } from '../../infrastructure/post-tracking-data-to-hubspot'; import { CliAuthenticationClient } from '../../infrastructure'; export const userLogin = CliLeaf({ name: 'login', description: 'Log in to the alwaysAI Cloud', namedInputs: { yes: yesCliInput, email: alwaysaiUserEmailCliInput, password: alwaysaiUserPasswordCliInput }, async action(_, { yes, email, password }) { if (yes) { if (!email || !password) { throw new CliUsageError(RequiredWithYesMessage('email', 'password')); } await alwaysaiUserLoginYesComponent({ alwaysaiUserEmail: email, alwaysaiUserPassword: password }); } else { const authenticationClient = CliAuthenticationClient(); if (authenticationClient.isSignedIn()) { await postTrackingDataToHubspot('activated_cli', true); const { email } = await authenticationClient.getInfo(); echo(`Already logged in as ${chalk.bold(email)}`); } else { await alwaysaiUserLoginPromptComponent({ alwaysaiUserEmail: email, alwaysaiUserPassword: password }); await postTrackingDataToHubspot('activated_cli', true); } } } });