import { FlowExecCtx } from "@core/flow.execution.context"; import { getTwofaController } from "./controller"; import type { User } from "@/domains/user/data"; const twofaController = getTwofaController(); /** * Check if user needs 2FA verification for sensitive actions * Call this before executing sensitive operations like: * - Changing password * - Viewing billing info * - Deleting account * - etc. */ export async function requiresSensitiveAction2FA( fctx: FlowExecCtx, user: User, ): Promise { const result = await twofaController.requiresSensitiveActionVerification( fctx, user, ); return result.match( (data) => data, () => true, // On error, require verification for security ); } export async function checkInitial2FaRequired( fctx: FlowExecCtx, user: User, sessionId: string, ): Promise { const result = await twofaController.requiresInitialVerification( fctx, user, sessionId, ); return result.match( (data) => data, () => true, ); }