decode = (encodedString) ->
  stepEncoded = encodedString.replace('-', '+').replace('_', '/')
  switch stepEncoded.length % 4
    when 0
      base64Json = stepEncoded
    when 2
      base64Json = stepEncoded + '=='
    when 3
      base64Json = stepEncoded + '='
    else
      console.log 'The encoded state is malformed - ' + encodedString
  decodeString = new Buffer(base64Json).toString('utf8')
  return decodeString

encode = (rawString) ->
  base64String = new Buffer(rawString).toString('base64')
  finalEncoded = base64String.split("=")[0].replace('+', '-').replace('/', '_')
  return finalEncoded

module.exports = 
  decode: decode,
  encode: encode