Sha256: 07729efdd3803018673f4171177bd062077aa7055f0deb6bb20787f49da64b86

Contents?: true

Size: 679 Bytes

Versions: 9

Compression:

Stored size: 679 Bytes

Contents

var atob = require('./atob');

function b64DecodeUnicode(str) {
  return decodeURIComponent(atob(str).replace(/(.)/g, function (m, p) {
    var code = p.charCodeAt(0).toString(16).toUpperCase();
    if (code.length < 2) {
      code = '0' + code;
    }
    return '%' + code;
  }));
}

module.exports = function(str) {
  var output = str.replace(/-/g, "+").replace(/_/g, "/");
  switch (output.length % 4) {
    case 0:
      break;
    case 2:
      output += "==";
      break;
    case 3:
      output += "=";
      break;
    default:
      throw "Illegal base64url string!";
  }

  try{
    return b64DecodeUnicode(output);
  } catch (err) {
    return atob(output);
  }
};

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
authing_ruby-1.1.4 lib/authing_ruby/test/js_sdk_test/node_modules/jwt-decode/lib/base64_url_decode.js
authing_ruby-1.1.3 lib/authing_ruby/test/js_sdk_test/node_modules/jwt-decode/lib/base64_url_decode.js
authing_ruby-1.1.2 lib/authing_ruby/test/js_sdk_test/node_modules/jwt-decode/lib/base64_url_decode.js
authing_ruby-1.1.1 lib/authing_ruby/test/js_sdk_test/node_modules/jwt-decode/lib/base64_url_decode.js
authing_ruby-1.1.0 lib/authing_ruby/test/js_sdk_test/node_modules/jwt-decode/lib/base64_url_decode.js
authing_ruby-1.0.9 lib/authing_ruby/test/js_sdk_test/node_modules/jwt-decode/lib/base64_url_decode.js
authing_ruby-1.0.8 lib/authing_ruby/test/js_sdk_test/node_modules/jwt-decode/lib/base64_url_decode.js
authing_ruby-1.0.7 lib/authing_ruby/test/js_sdk_test/node_modules/jwt-decode/lib/base64_url_decode.js
authing_ruby-1.0.6 lib/authing_ruby/test/js_sdk_test/node_modules/jwt-decode/lib/base64_url_decode.js