'use strict'; var Enc = module.exports; Enc.base64ToBuf = function (str) { // node handles both base64 and urlBase64 equally return Buffer.from(str, 'base64'); }; Enc.bufToBase64 = function (u8) { // Ensure a node buffer, even if TypedArray return Buffer.from(u8).toString('base64'); }; Enc.bufToBin = function (u8) { // Ensure a node buffer, even if TypedArray return Buffer.from(u8).toString('binary'); }; Enc.bufToHex = function (u8) { // Ensure a node buffer, even if TypedArray return Buffer.from(u8).toString('hex'); }; Enc.bufToUrlBase64 = function (u8) { return Enc.bufToBase64(u8) .replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, ''); };