# WealthLedger frontend React/Vite-клиент WealthLedger. Клиент получает данные только через typed API backend; прямые вызовы T-Bank из frontend не допускаются. ## Быстрый старт Требуется Node 24 (`.nvmrc`). Создайте `.env` из примера и установите зависимости строго из lockfile: ```bash cp .env.example .env nvm use --silent npm ci npm run dev ``` `VITE_API_BASE_URL` по умолчанию указывает на `http://localhost:3000`. Для commits установите [Gitleaks](https://github.com/gitleaks/gitleaks/releases/tag/v8.30.1) 8.30.1 в `PATH` (macOS: `brew install gitleaks`). Pre-commit сначала проверяет staged diff с полной редакцией секретов, затем запускает formatting и FSD checks. Находка или отсутствие Gitleaks блокирует commit. Проверка этого поведения: `node --test scripts/test-pre-commit.mjs`. ## Проверка ```bash nvm use --silent npm run verify ``` Команда проверяет, что generated OpenAPI types соответствуют committed snapshot, затем запускает strict TypeScript, Biome, один coverage-backed запуск Vitest, Knip, dependency rules приложения и stories, сборки приложения и Storybook. Отдельный CI workflow `Frontend security` на push, pull request и ежедневно проверяет полную доступную историю Gitleaks 8.30.1 и выполняет `npm audit --include=dev --audit-level=low`. Любой advisory блокирует security job; исключений frontend нет. Локально можно выполнить те же команды: `gitleaks git --log-opts=--all --redact=100 --no-banner` и `npm audit --include=dev --audit-level=low`. Audit требует доступа к npm registry; проверка секретов выполняется локально и не выводит их значения. TypeScript остаётся на 5.9.3: `openapi-typescript@7.13.0` требует peer `^5.x`. Обновление до TypeScript 7 из Renovate dashboard откладывается до совместимого релиза генератора; `--force`/`--legacy-peer-deps` для обхода этого ограничения не используются. Если backend-контракт изменился, обновите `src/shared/api/spec/openapi.json` копированием backend OpenAPI document и затем выполните `npm run openapi:generate`. ## Документация - [Router conventions](.ai/CONVENTIONS.md) и [источники](.ai/SOURCES.md) - [Выбор owner/FSD](.ai/conventions/frontend-architecture.md) - [UI, state, формы и компоненты](.ai/conventions/frontend-ui.md) - [Data/API/cache](.ai/conventions/frontend-data.md) - [Testing](.ai/conventions/frontend-testing.md) - [Поставленный UI-каталог Storybook](../docs/development/ui-catalog.md) - [Обзор поставленной системы](../docs/overview.md) - [Engineering governance и risk-based testing](../docs/development/engineering-governance.md) - [Карта проектных фактов](../docs/README.md) - [Границы проверки интерфейса](../docs/development/verification.md#интерфейс) - [Remediation registry](../docs/development/audit-remediation.md) Runtime OpenAPI backend сверяется с frontend snapshot отдельной read-only backend командой `npm run test:openapi-contract`. Разработка идёт напрямую по задаче пользователя. Каждый affected repo проходит свой verify; при изменении wire contract дополнительно выполняется contract check. Обязательного OpenSpec/SDD lifecycle нет.