type ConnectivityResult = { success: boolean; message: string; }; interface ProbeAuthOptions { providerName: string; request: () => Promise; } export async function probeAuth({ providerName, request, }: ProbeAuthOptions): Promise { try { const response = await request(); if (response.status >= 300 && response.status < 400) { return { success: false, message: `${providerName} connectivity error: Redirects are not allowed`, }; } if (response.status === 401 || response.status === 403) { const text = await response.text(); return { success: false, message: `${providerName} auth failed (${response.status}): ${text}`, }; } return { success: true, message: `Connected to ${providerName}` }; } catch (err) { return { success: false, message: `${providerName} connectivity error: ${err}` }; } }