in src/auth/AccessTokenHelpers.ts [54:69]
public static async generateCodeChallenge(codeVerifier: string) {
const data = new TextEncoder().encode(codeVerifier);
const digest = await Crypto.current.subtle.digest('SHA-256', data);
const digestBytes = [...new Uint8Array(digest)];
const hasBuffer = typeof Buffer !== 'undefined';
const digestAsBase64 = hasBuffer
? Buffer.from(digest).toString('base64')
: btoa(String.fromCharCode.apply(null, digestBytes));
return digestAsBase64
.replace(/\+/g, '-')
.replace(/\//g, '_')
.replace(/=+$/, '');
}