**Импорт функции defineStore из библиотеки pinia для создания хранилища**: ``` import { defineStore } from 'pinia' ``` **Импорт типа User из файла с типами '@/types'**: ``` import { User } from '@/types' ``` **Определение типа состояния для хранилища auth**: ``` type authState = { currentUser: User | undefined; }; ``` В этом блоке определяется тип `authState`, который представляет состояние хранилища. `currentUser` может быть типа `User` или `undefined`. **Начальное состояние хранилища**: ``` const defaultState: authState = { currentUser: undefined, }; ``` Здесь устанавливается начальное состояние хранилища `authStore`, в котором `currentUser` равен `undefined`. **Экспорт хранилища authStore с использованием defineStore**: ``` export const authStore = defineStore({ id: 'auth', state: () => defaultState, getters: { isAuthenticated: (state) => state.currentUser !== undefined, jwtToken: (state) => state.currentUser?.token, }, actions: { signIn(user: User) { this.currentUser = user; }, signOut() { this.currentUser = undefined; }, }, persist: true, }); ``` Здесь мы используем `defineStore` для создания хранилища `authStore` с определенными состоянием (`state`), геттерами (`getters`) для проверки аутентификации и получения токена, а также с действиями (`actions`) для входа и выхода пользователя. Флаг `persist: true` указывает, что состояние хранилища должно сохраняться между перезагрузками страницы.