После долгих неудачных попыток пришла к такому результату. Код, на мой взгляд, кажется несколько нагроможденным - возможно кто-то предложит что-то более изящное или просто более удобный/подходящий вариант - но он работает (вроде как):
router.beforeEach((to, from, next) => {
const tokenAuth = computed(() => store.state.Auth.authToken);
const agreement = computed(() => store.state.Auth.nativeData.agreement);
const guest = computed(() => store.state.Auth.guest);
if (
to.meta.requiresAuth &&
!Boolean(tokenAuth.value) &&
!agreement.value &&
!guest.value
) {
next({ name: 'TermsOfUseView' });
} else if (
to.meta.isGuest &&
!Boolean(tokenAuth.value) &&
agreement.value &&
!guest.value
) {
next({ name: 'AuthorizationView' });
} else if (
to.meta.isGuest &&
Boolean(tokenAuth.value) &&
agreement.value &&
guest.value
) {
next({ name: 'HomeView' });
} else {
next();
}
});