WealthLedger frontend
React/Vite-клиент WealthLedger. Клиент получает данные только через typed API backend; прямые вызовы T-Bank из frontend не допускаются.
Быстрый старт
Требуется Node 24 (.nvmrc). Создайте .env из примера и установите
зависимости строго из lockfile:
cp .env.example .env
nvm use --silent
npm ci
npm run dev
VITE_API_BASE_URL по умолчанию указывает на http://localhost:3000.
Для commits установите Gitleaks
8.30.1 в PATH (macOS: brew install gitleaks). Pre-commit сначала проверяет
staged diff с полной редакцией секретов, затем запускает formatting и FSD checks.
Находка или отсутствие Gitleaks блокирует commit.
Проверка этого поведения: node --test scripts/test-pre-commit.mjs.
Проверка
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.
UI-каталог Storybook
После nvm use --silent выполните npm run dev:catalog; статическая сборка —
npm run build:catalog. Каталог использует общую тему приложения, вымышленные
данные и локальные действия без application API. Примеры не доказывают
восстановление реального запроса. Визуальные роли описаны в
дизайн-системе.
Документация
- AGENTS: правила и источники
- Выбор owner/FSD
- UI, state, формы и компоненты
- Data/API/cache
- Testing
- UI-каталог Storybook
- Обзор поставленной системы
- Карта проектных фактов
Runtime OpenAPI backend сверяется с frontend snapshot отдельной read-only
backend командой npm run test:openapi-contract.
Разработка идёт напрямую по задаче пользователя. Каждый affected repo проходит
свой verify; при изменении wire contract дополнительно выполняется contract check.
Обязательного OpenSpec/SDD lifecycle нет.
Версии и ветки: процесс релиза.
Knip исключает conventional-changelog-conventionalcommits: release-it загружает
preset по имени из .release-it.json. Версия preset закреплена напрямую.