base64url.js 1.1 KB

12345678910111213141516171819202122232425
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.decode = exports.encode = exports.encodeBase64 = exports.decodeBase64 = void 0;
  4. const buffer_1 = require("buffer");
  5. const buffer_utils_js_1 = require("../lib/buffer_utils.js");
  6. let encode;
  7. function normalize(input) {
  8. let encoded = input;
  9. if (encoded instanceof Uint8Array) {
  10. encoded = buffer_utils_js_1.decoder.decode(encoded);
  11. }
  12. return encoded;
  13. }
  14. if (buffer_1.Buffer.isEncoding('base64url')) {
  15. exports.encode = encode = (input) => buffer_1.Buffer.from(input).toString('base64url');
  16. }
  17. else {
  18. exports.encode = encode = (input) => buffer_1.Buffer.from(input).toString('base64').replace(/=/g, '').replace(/\+/g, '-').replace(/\//g, '_');
  19. }
  20. const decodeBase64 = (input) => buffer_1.Buffer.from(input, 'base64');
  21. exports.decodeBase64 = decodeBase64;
  22. const encodeBase64 = (input) => buffer_1.Buffer.from(input).toString('base64');
  23. exports.encodeBase64 = encodeBase64;
  24. const decode = (input) => buffer_1.Buffer.from(normalize(input), 'base64');
  25. exports.decode = decode;