45 lines
1.4 KiB
JavaScript
45 lines
1.4 KiB
JavaScript
/*! @azure/msal-browser v3.21.0 2024-08-13 */
|
|
'use strict';
|
|
import { createBrowserAuthError } from '../error/BrowserAuthError.mjs';
|
|
import { invalidBase64String } from '../error/BrowserAuthErrorCodes.mjs';
|
|
|
|
/*
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License.
|
|
*/
|
|
/**
|
|
* Class which exposes APIs to decode base64 strings to plaintext. See here for implementation details:
|
|
* https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem
|
|
*/
|
|
/**
|
|
* Returns a URL-safe plaintext decoded string from b64 encoded input.
|
|
* @param input
|
|
*/
|
|
function base64Decode(input) {
|
|
return new TextDecoder().decode(base64DecToArr(input));
|
|
}
|
|
/**
|
|
* Decodes base64 into Uint8Array
|
|
* @param base64String
|
|
*/
|
|
function base64DecToArr(base64String) {
|
|
let encodedString = base64String.replace(/-/g, "+").replace(/_/g, "/");
|
|
switch (encodedString.length % 4) {
|
|
case 0:
|
|
break;
|
|
case 2:
|
|
encodedString += "==";
|
|
break;
|
|
case 3:
|
|
encodedString += "=";
|
|
break;
|
|
default:
|
|
throw createBrowserAuthError(invalidBase64String);
|
|
}
|
|
const binString = atob(encodedString);
|
|
return Uint8Array.from(binString, (m) => m.codePointAt(0) || 0);
|
|
}
|
|
|
|
export { base64Decode };
|
|
//# sourceMappingURL=Base64Decode.mjs.map
|