# Frontend ## Назначение React/Vite-клиент WealthLedger. Функциональные изменения сначала планируются в `../specs/openspec`; контракт API задает backend OpenAPI, а не ручные DTO. ## Проверка ```bash npm run lint npm run typecheck npm run test:run npm run build npm run check:no-todo ``` `npm run openapi:generate` получает документ работающего backend по `${VITE_API_BASE_URL:-http://localhost:3000}/api/docs-json`; фактическая генерация выполняется только в задаче 5.1. `build` выполняет `tsc -b`. ## Границы - Текущий baseline использует FSD, React Router, i18n, Mantine, React Query и typed API scaffold. - Зависимости FSD идут `app -> pages -> features -> entities -> shared`; слайсы импортируются только через публичный `index.ts`. - HTTP идет через типизированный клиент, сгенерированный из OpenAPI; UI-строки - только через i18n. Каждый маршрут имеет loading, error и empty состояния. - Соблюдать strict TypeScript: `import type` для типов, без `enum` и `namespace`. - Не добавлять прямые вызовы T-Bank и не переносить Todo-код из `../references/`.