import axios from 'axios'; import chalk from 'chalk'; import { getGlobalConfig, getSingleSignOnUrl, useCluster, } from '../helpers/cluserHelper'; import { begin, error, success } from '../helpers/log'; export async function refreshToken(cluster: string, refreshToken: string) { try { begin('refreshing token', 'Refreshing token...'); const response = await axios.post( `https://${getSingleSignOnUrl(cluster)}/api/account/refresh-token`, { refreshToken }, { headers: { 'Content-Type': 'application/json', 'X-Request-StackTrace': 'true', }, }, ); if (!response.data.accessToken || !response.data.refreshToken) { throw new Error(`Invalid response: ${JSON.stringify(response.data)}`); } success('refreshing token', 'Token refreshed'); useCluster(cluster, { ...getGlobalConfig().clusters[cluster], jwt: response.data, }); return true; } catch (err: any) { error('refreshing token', err.message); return false; } }