rittenhop-dev/versions/5.94.2/node_modules/node-jose/lib/util/base64url.js
2024-09-23 19:40:12 -04:00

50 lines
1.2 KiB
JavaScript

/*!
* util/base64url.js - Implementation of web-safe Base64 Encoder/Decoder
*
* Copyright (c) 2015 Cisco Systems, Inc. See LICENSE file.
*/
"use strict";
var impl = require("base64url");
/**
* @namespace base64url
* @description
* Provides methods to encode and decode data according to the
* base64url alphabet.
*/
var base64url = {
/**
* @function
* Encodes the input to base64url.
*
* If {input} is a Buffer, then {encoding} is ignored. Otherwise,
* {encoding} can be one of "binary", "base64", "hex", "utf8".
*
* @param {Buffer|String} input The data to encode.
* @param {String} [encoding = binary] The input encoding format.
* @returns {String} the base64url encoding of {input}.
*/
encode: function encode(buffer, encoding) {
if (buffer instanceof ArrayBuffer) {
buffer = new Uint8Array(buffer);
}
if (!Buffer.isBuffer(buffer)) {
buffer = Buffer.from(buffer, encoding);
}
return impl.encode(buffer);
},
/**
* @function
* Decodes the input from base64url.
*
* @param {String} input The data to decode.
* @returns {Buffer|String} the base64url decoding of {input}.
*/
decode: impl.toBuffer
};
module.exports = base64url;