import type { LocalContext } from "../../context.js"; import { ORPCError } from "@orpc/client"; import { buildCommand } from "@stricli/core"; import { createApiClient } from "../../utils/api-client.js"; import { formatError } from "../../utils/format-error.js"; interface CompleteLoginFlags { email: string; } async function completeLogin( this: LocalContext, flags: CompleteLoginFlags, ): Promise { try { const api = await createApiClient(); await api.admin.auth.completeLogin({ email: flags.email, }); console.log(`Completed login request for: ${flags.email}`); } catch (error) { if (error instanceof ORPCError) { // eslint-disable-next-line @typescript-eslint/restrict-template-expressions -- ORPCError.code is typed as any console.error(`Error [${error.code}]:`, error.message); } else { console.error("Error:", formatError(error)); } this.process.exit(1); } } export const completeLoginCommand = buildCommand({ func: completeLogin, parameters: { flags: { email: { kind: "parsed", parse: String, brief: "Email address of user with pending login request", }, }, }, docs: { brief: "Complete pending login request", fullDescription: "Completes the most recent pending login request for a user. This is useful for development when email sending is not configured or to bypass email confirmation.", }, });