/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: BUSL-1.1
 */

import { decodeString } from 'core/utils/b64';

/*
 * @param token - Replication Secondary Activation Token
 * @returns config Object if successful | undefined if not
 *
 */
export default function (token) {
  if (!token) {
    return;
  }
  const tokenParts = token.split('.');
  // config is the second item in the JWT
  let [, configB64] = tokenParts;
  let config;

  if (tokenParts.length !== 3) {
    return;
  }

  // JWTs strip padding from their b64 parts.
  // since we're converting to a typed array before
  // decoding back to utf-8, we need to add any padding back
  while (configB64.length % 4 !== 0) {
    configB64 = configB64 + '=';
  }
  try {
    config = JSON.parse(decodeString(configB64));
  } catch (e) {
    // swallow error
  }

  return config;
}
