GT2/GT2-iOS/node_modules/auth0-js/lib/base64_url.js

46 lines
785 B
JavaScript

/**
* Module dependencies.
*/
var Base64 = require('Base64');
/**
* Expose `base64_url_decode`
*/
module.exports = {
encode: encode,
decode: decode
};
/**
* Encode a `base64` `encodeURIComponent` string
*
* @param {string} str
* @public
*/
function encode(str) {
return Base64.btoa(str)
.replace(/\+/g, '-') // Convert '+' to '-'
.replace(/\//g, '_') // Convert '/' to '_'
.replace(/=+$/, ''); // Remove ending '='
}
/**
* Decode a `base64` `encodeURIComponent` string
*
* @param {string} str
* @public
*/
function decode(str) {
// Add removed at end '='
str += Array(5 - str.length % 4).join('=');
str = str
.replace(/\-/g, '+') // Convert '-' to '+'
.replace(/\_/g, '/'); // Convert '_' to '/'
return Base64.atob(str);
}