veza/apps/web/src/services/api/client.ts
senke 5f88c56113 fix: UI remediation Phase 1 (S0-S5) + Phase 2 Sprint 6 shadow system
Phase 1:
- S0: Fix open redirect (safeNavigate), delete AuthContext/legacy auth, encrypt API keys, gitignore .env files
- S1: Split client.ts god object into 5 modules, unify toast system, delete unused Sidebar
- S2: Add glass button variant, migrate 32 z-index to SUMI tokens, fix card dark mode
- S3: Skip nav link, aria-hidden on icons, focus-visible ring fixes, alt attrs, aria-live regions
- S4: React.memo on list items, fix key={index}, loading=lazy on images
- S5: Branded loading screen, page transitions respect reduced-motion, LikeButton micro-interaction, i18n sidebar/header

Phase 2 Sprint 6:
- Wire Tailwind shadow utilities to SUMI tokens in @theme block (fixes 50+ files)
- Define shadow-card/shadow-card-hover tokens
- Remove dark:shadow-none workarounds from card.tsx (SUMI handles per-theme shadows)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 10:13:44 +01:00

29 lines
920 B
TypeScript

/**
* S1.1: API Client — Public entry point
*
* Re-exports the public API from split modules:
* - httpClient.ts — Axios instance, config, constants
* - metrics.ts — Validation metrics tracker
* - retry.ts — Retry logic, network failure detection
* - interceptors.ts — Request/response interceptors (side-effect import)
* - helpers.ts — Cancellable requests, deduplication, utilities
*/
// Side-effect: registers request/response interceptors on apiClient
import './interceptors';
// Core HTTP client
export { apiClient, API_TIMEOUTS, SLOW_REQUEST_THRESHOLD } from './httpClient';
// Metrics
export { validationMetrics, validationAlerting } from './metrics';
export type { ValidationMetrics } from './metrics';
// Helpers
export {
createCancellableRequest,
createRequestWithTimeout,
deduplicatedApiClient,
isSlowRequest,
getRequestDuration,
} from './helpers';