import { devGenerateUserAccessTokenWithPermissions, getServiceAccountToken, TokenResult, } from '@axinom/mosaic-id-link-be'; import { readFileSync } from 'fs'; import { GetAccessTokenOptions } from './get-access-token-options'; /** * Returns a development ID JWT token based on passed options. */ export const getDevAccessToken = async ( options: GetAccessTokenOptions, ): Promise => { const permissions = JSON.parse( readFileSync(options.permissionsFile, 'utf-8'), ); const serviceAccountToken = await getServiceAccountToken( options.authEndpoint, options.clientId, options.clientSecret, ); return devGenerateUserAccessTokenWithPermissions( options.authEndpoint, serviceAccountToken.accessToken, permissions, options.userEmail, options.expiration, options.failOnUnknownPermission, ); };