in src/cloudConsole/cloudConsole.ts [566:611]
async function fetchTenantDetails(session: AzureSession): Promise<{ session: AzureSession, tenantDetails: TenantDetails }> {
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any
const { username, clientId, tokenCache, domain } = <any>(<AzureSessionLegacy>session).credentials;
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
const graphCredentials: DeviceTokenCredentials = new DeviceTokenCredentials({ username, clientId, tokenCache, domain, tokenAudience: 'graph' });
const apiVersion: string = '1.6';
const requestUrl: string = `https://graph.windows.net/${encodeURIComponent(session.tenantId)}/tenantDetails?api-version=${encodeURIComponent(apiVersion)}`;
return new Promise((resolve, reject) => {
// eslint-disable-next-line @typescript-eslint/no-misused-promises, @typescript-eslint/no-explicit-any
graphCredentials.getToken(async (err: Error, result: any) => {
if (err) {
reject(err);
return;
}
if (result) {
try {
const response: Response = await fetch(requestUrl, {
headers: {
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
Authorization: `Bearer ${result.accessToken}`,
"x-ms-client-request-id": uuid(),
"Content-Type": 'application/json; charset=utf-8'
}
});
if (response.ok) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
const json = await response.json();
resolve({
session,
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
tenantDetails: json.value[0]
});
} else {
reject(response.statusText)
}
} catch (e) {
reject(e);
}
}
});
});
}