Commit graph

43 commits

Author SHA1 Message Date
senke
a486536bed [FIX] Frontend: Désactiver service worker en dev + nettoyer cache
- Suppression dossier dist/ avec ancien build
- Nettoyage cache Vite
- Désactivation service worker en mode développement
- Évite problèmes de cache avec anciennes versions
2026-01-04 01:44:15 +01:00
senke
63c5a1bc29 [FIX] Add cooldown for proactive token refresh to prevent rate limiting
- Add 5-second cooldown between proactive token refreshes
- Prevents multiple refresh requests when multiple API calls happen simultaneously
- Reduces rate limit errors from excessive refresh requests
2026-01-04 01:44:13 +01:00
senke
2f742b49c2 [FIX] Fix rate limit retry loop and Swagger /docs route
Frontend fixes:
- Stop retrying 429 rate limit errors to prevent infinite loops
- Show user-friendly error message for rate limit with retry-after duration
- Remove 429 from retryable status codes
- Clean up rate limit error handling logic

Backend fixes:
- Fix Swagger /docs route to use same handler as /swagger/*any
- Remove redirect that was causing 404 errors
2026-01-04 01:44:13 +01:00
senke
40591f70fc [INT-CLEANUP-004] Add barrel exports for clean imports 2025-12-26 09:25:52 +01:00
senke
1fc6a66d37 [INT-CLEANUP-001] Remove all unused API service files (offline-storage.ts, secure-auth.ts) 2025-12-26 09:17:31 +01:00
senke
087aaa5a2e [INT-AUTH-004] Add token expiration pre-check 2025-12-26 09:15:13 +01:00
senke
546bc9fba3 [INT-AUTH-003] Verify refresh token flow handles edge cases 2025-12-26 09:13:36 +01:00
senke
11b61b14a7 [INT-API-005] Add retry logic for 429 rate limit responses 2025-12-26 09:10:26 +01:00
senke
2fd5b3935f [INT-API-004] Add request timeout configuration per endpoint type 2025-12-25 22:42:56 +01:00
senke
64b56b5e56 [INT-API-002] Verify response unwrapping in interceptor 2025-12-25 22:40:59 +01:00
senke
b0557335d5 [INT-TYPE-008] Validate AuthResponse matches backend exactly 2025-12-25 22:39:41 +01:00
senke
89928e186a [INT-AUTH-001] Ensure CSRF protection active in production 2025-12-25 22:28:46 +01:00
senke
6de6a0d499 [FE-TEST-001] fe-test: Add unit tests for API services
- Created comprehensive unit tests for marketplaceService (11 tests)
- Created comprehensive unit tests for profileService (12 tests)
- Created comprehensive unit tests for avatarService (9 tests)
- Created comprehensive unit tests for 2fa-service (8 tests)
- All 40 tests pass successfully
- Tests cover success cases, error handling, edge cases, and validation scenarios

Files modified:
- apps/web/src/services/marketplaceService.test.ts (new)
- apps/web/src/features/profile/services/profileService.test.ts (new)
- apps/web/src/features/profile/services/avatarService.test.ts (new)
- apps/web/src/services/2fa-service.test.ts (new)
- VEZA_COMPLETE_MVP_TODOLIST.json
2025-12-25 15:55:53 +01:00
senke
291d779fa2 [INT-016] int: Add authentication token refresh flow
- Added proactive token refresh mechanism (5 minutes before expiration)
- Implemented JWT decoding to check token expiration
- Added seamless refresh integration with login/logout flows
- Improved error handling and cleanup
- Integrated with auth store and API client

Files modified:
- apps/web/src/services/tokenRefresh.ts
- apps/web/src/services/api/auth.ts
- apps/web/src/stores/auth.ts
- VEZA_COMPLETE_MVP_TODOLIST.json
2025-12-25 15:45:30 +01:00
senke
8e5826d2ca [FE-TYPE-010] fe-type: Add type safety for API client
- Created fully typed API client wrapper (typedClient.ts):
  * TypedApiClient interface with fully typed methods
  * typedApiClient implementation wrapping apiClient
  * TypedRequestConfig extending InternalAxiosRequestConfig
  * TypedApiRequestBuilder class for type-safe requests
- Added helper types:
  * ApiResponseData: Extract data from ApiResponse
  * UnwrappedApiResponse: Remove ApiResponse wrapper
- Added helper functions:
  * createTypedRequest: Create typed request builder
  * isApiResponseWrapper: Type guard for ApiResponse
  * extractApiData: Extract data from response
- Ensures full type safety for all API client methods
2025-12-25 14:48:35 +01:00
senke
e5f842c527 [FE-TYPE-003] fe-type: Add Zod schemas for all API requests
- Created comprehensive Zod schemas (apiRequestSchemas.ts) for:
  * LoginRequest, RegisterRequest, CreateUserRequest
  * UpdateUserRequest, UpdateProfileRequest
  * SendMessageRequest, UpdateMessageRequest
  * CreateConversationRequest, UpdateConversationRequest
  * UploadTrackRequest, UpdateTrackRequest
  * PaginationParams and list/search request types
- Added validation utilities:
  * validateApiRequest: Validate requests before sending
  * safeValidateApiRequest: Safe validation with error handling
  * validateApiRequestWithError: Validation with custom error handler
- Integrated validation into API client request interceptor
- Enhanced validatedApiClient with request validation support
- Automatic validation prevents invalid requests from being sent
- Comprehensive test suite (19 tests, all passing)
- Ensures runtime type safety for all API requests
2025-12-25 14:36:32 +01:00
senke
8f49ef8215 [FE-TYPE-002] fix: Remove unused strict parameter from validation functions 2025-12-25 14:33:19 +01:00
senke
bf27c3916e [FE-TYPE-002] fix: Resolve TypeScript errors in Zod schemas
- Removed strict() and passthrough() calls (not available on all Zod types)
- Simplified validation to use parse() directly
- Fixed type issues in clientWithValidation.ts
2025-12-25 14:32:30 +01:00
senke
5d4ac95356 [FE-TYPE-002] fe-type: Add Zod schemas for all API responses
- Created comprehensive Zod schemas (apiSchemas.ts) for:
  * User, Track, Playlist, Conversation, Message
  * Session, AuditLog, Notification
  * PaginationData, ApiError, ApiResponse
- Added validation utilities:
  * validateApiResponse: Validate and normalize responses
  * safeValidateApiResponse: Safe validation with error handling
  * validateApiResponseArray: Validate arrays of items
  * validatePaginatedResponse: Validate paginated responses
- Integrated validation into API client interceptor
- Created validatedApiClient for type-safe API calls
- Automatic ID normalization during validation
- Comprehensive test suite (13 tests, all passing)
- Ensures runtime type safety for all API responses
2025-12-25 14:30:55 +01:00
senke
a6895e7115 [FE-STATE-004] fe-state: Add state invalidation 2025-12-25 13:45:49 +01:00
senke
a059dc82cc [FE-API-017] fe-api: Add request caching 2025-12-25 13:29:43 +01:00
senke
f296df29fd [FE-API-016] fe-api: Add request deduplication 2025-12-25 13:26:27 +01:00
senke
7d0c9f45a3 [FE-API-015] fe-api: Add offline support 2025-12-25 13:24:19 +01:00
senke
da30a89e21 [FE-API-014] fe-api: Add request timeout handling 2025-12-25 13:22:15 +01:00
senke
03e013a6b7 [FE-COMP-005] fe-comp: Add toast notifications for all user actions 2025-12-25 11:32:53 +01:00
senke
7af0743ad7 [FE-API-006] fe-api: Add API request/response logging 2025-12-25 11:18:27 +01:00
senke
1561d9982a [FE-API-005] fe-api: Add request cancellation support 2025-12-25 11:14:03 +01:00
senke
9802637fa2 [FE-API-004] fe-api: Add retry logic to API client 2025-12-25 11:11:54 +01:00
senke
a259ecd65d [FE-API-003] fe-api: Fix API client response unwrapping 2025-12-25 11:09:19 +01:00
senke
0dd54d1476 [FE-PAGE-006] fe-page: Complete Marketplace page implementation
- Added product browsing with pagination (page, limit, total_pages)
- Added product filtering: search, product type, price range
- Added cart functionality: add, remove, update quantity, checkout
- Created cartStore with Zustand and persistence
- Added Cart component with checkout functionality
- Enhanced ProductCard with Add to Cart button
- Added filter UI with collapsible filters panel
- Added search bar for product search
- Added pagination controls (Previous/Next)
- Updated marketplaceService to support filters and pagination
2025-12-24 12:54:20 +01:00
senke
b618acf30a [FE-API-001] frontend-api: Enable 2FA service calls when backend is ready
- Replaced axios with apiClient for automatic authentication
- Updated URLs to use /auth/2fa/* endpoints (was /2fa/*)
- Fixed verify() to accept (secret, code) matching backend
- Fixed disable() to accept password instead of code
- Enabled TWO_FACTOR_AUTH feature flag
- Service now properly calls backend endpoints

Phase: PHASE-1
Priority: P0
Progress: 9/267 (3.4%)
2025-12-23 01:45:47 +01:00
senke
f808d0323c fix(MVP-013): Add error correlation with request IDs in logs 2025-12-22 23:13:49 +01:00
senke
3b09d15e93 fix(MVP-012): Add retry logic with exponential backoff for 502/503 errors 2025-12-22 23:10:52 +01:00
senke
9b3363a6a6 fix(MVP-011): Simplify token refresh response handling to single format 2025-12-22 23:06:52 +01:00
senke
e37f0af1e4 fix(MVP-008): Add feature flags to disable non-MVP features with missing endpoints 2025-12-22 23:01:36 +01:00
senke
4d8c019abf fix(MVP-006): Standardize environment variable names (VITE_API_BASE_URL → VITE_API_URL) 2025-12-22 22:56:37 +01:00
senke
6d036133ca batch 1 2025-12-22 22:00:50 +01:00
senke
463109c4e0 fix(INT-000002): Multiple Auth Storage Mechanisms
- Unified token storage to use TokenStorage service
- Removed deprecated token-manager.ts
- Removed fallback storage logic in API client
- Updated tests and feature components to use TokenStorage

Resolves: INT-000002
Severity: P0
2025-12-22 09:53:47 -05:00
senke
ae1c9c2795 stabilizing apps/web: FIRST BATCH 2025-12-17 08:07:35 -05:00
senke
3f7bf2e2d3 stabilizing apps/web: SITUATION AWARENESS 2025-12-16 14:40:16 -05:00
senke
d33c351ac6 refonte: backend-api go first; phase 1 2025-12-12 21:34:34 -05:00
okinrev
8d6ce72bb2 report generation and future tasks selection 2025-12-08 19:57:54 +01:00
okinrev
f88d4740f3 BASE: completing the initial repo state 2025-12-03 22:56:50 +01:00