/** Decode WebSSH DATA frame payload for xterm.write (base64 preserves ANSI ESC bytes). */
export function decodeTerminalPayload(msg: {
  data_b64?: string
  data?: string
}): string | Uint8Array {
  if (typeof msg.data_b64 === 'string' && msg.data_b64.length > 0) {
    const bin = atob(msg.data_b64)
    const bytes = new Uint8Array(bin.length)
    for (let i = 0; i < bin.length; i++) bytes[i] = bin.charCodeAt(i)
    return bytes
  }
  return msg.data ?? ''
}
