base64url.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var pad_string_1 = require("./pad-string");
  4. function encode(input, encoding) {
  5. if (encoding === void 0) { encoding = "utf8"; }
  6. if (Buffer.isBuffer(input)) {
  7. return fromBase64(input.toString("base64"));
  8. }
  9. return fromBase64(Buffer.from(input, encoding).toString("base64"));
  10. }
  11. ;
  12. function decode(base64url, encoding) {
  13. if (encoding === void 0) { encoding = "utf8"; }
  14. return Buffer.from(toBase64(base64url), "base64").toString(encoding);
  15. }
  16. function toBase64(base64url) {
  17. base64url = base64url.toString();
  18. return pad_string_1.default(base64url)
  19. .replace(/\-/g, "+")
  20. .replace(/_/g, "/");
  21. }
  22. function fromBase64(base64) {
  23. return base64
  24. .replace(/=/g, "")
  25. .replace(/\+/g, "-")
  26. .replace(/\//g, "_");
  27. }
  28. function toBuffer(base64url) {
  29. return Buffer.from(toBase64(base64url), "base64");
  30. }
  31. var base64url = encode;
  32. base64url.encode = encode;
  33. base64url.decode = decode;
  34. base64url.toBase64 = toBase64;
  35. base64url.fromBase64 = fromBase64;
  36. base64url.toBuffer = toBuffer;
  37. exports.default = base64url;