import { createRailDeckDirectIntegrationClient, type RailDeckAccessTokenProvider } from '@raildeck/frontend-sdk/direct-integration'; /** * Create an integration client and read its approved identity configuration. * @param baseUrl - Explicit caller-owned value for this operation. * @param getAccessToken - Explicit caller-owned value for this operation. * @param signal - Caller-owned cancellation signal. * @returns The client and decoded configuration; token acquisition remains with the caller. */ export async function prepareIntegration( baseUrl: string, getAccessToken: RailDeckAccessTokenProvider, signal: AbortSignal, ) { const client = createRailDeckDirectIntegrationClient({ baseUrl, getAccessToken }); const config = await client.auth.getConfig({ signal, timeoutMs: 15_000 }); return { client, config }; }