- Ajout du service PasswordSecurityService conforme NIST SP 800-63B - Vérification des mots de passe contre la base Have I Been Pwned - Validation : minimum 8 caractères, maximum 64 caractères - Pas d'exigences de composition obligatoires (conforme NIST) - Intégration dans LoginController et UserController - Génération de mots de passe sécurisés non compromis 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
164 lines
5.1 KiB
Markdown
164 lines
5.1 KiB
Markdown
# 🔧 Claude Code - Analyse et Correction Flutter
|
|
|
|
## 📋 Mission
|
|
|
|
Tu es un expert Flutter/Dart chargé de nettoyer le code de l'application Geosector. Ta mission est d'analyser tous les fichiers Dart du projet et de corriger TOUTES les erreurs et avertissements détectés par `flutter analyze`.
|
|
|
|
## 🎯 Objectifs
|
|
|
|
1. **Exécuter l'analyse Flutter** sur l'ensemble du projet
|
|
2. **Corriger toutes les erreurs** (errors) en priorité
|
|
3. **Corriger tous les avertissements** (warnings)
|
|
4. **Corriger les informations** (info) si pertinent
|
|
5. **Documenter les changements** effectués
|
|
|
|
## 📝 Instructions détaillées
|
|
|
|
### Étape 1 : Analyse initiale
|
|
```bash
|
|
flutter analyze
|
|
```
|
|
- Capturer le nombre total d'issues
|
|
- Identifier les patterns d'erreurs récurrents
|
|
- Prioriser les corrections (errors → warnings → info)
|
|
|
|
### Étape 2 : Corrections par catégorie
|
|
|
|
#### 🔴 ERRORS (Priorité maximale)
|
|
Corriger en priorité toutes les erreurs qui empêchent la compilation :
|
|
- `undefined_named_parameter`
|
|
- `undefined_method`
|
|
- `undefined_getter`
|
|
- `argument_type_not_assignable`
|
|
- `return_of_invalid_type`
|
|
- `creation_with_non_type`
|
|
|
|
#### 🟠 WARNINGS (Priorité haute)
|
|
Corriger les avertissements qui peuvent causer des bugs :
|
|
- `must_be_immutable`
|
|
- `unused_element`
|
|
- `unused_element_parameter`
|
|
- `unused_local_variable`
|
|
- `invalid_use_of_protected_member`
|
|
- `invalid_use_of_visible_for_testing_member`
|
|
|
|
#### 🟡 INFO (Priorité moyenne)
|
|
Corriger les problèmes de qualité de code :
|
|
- `depend_on_referenced_packages` → Ajouter les dépendances manquantes dans pubspec.yaml
|
|
- `deprecated_member_use` → Remplacer `withOpacity` par `withValues()`
|
|
- `use_build_context_synchronously` → Ajouter `if (context.mounted)`
|
|
- `prefer_const_constructors`
|
|
- `prefer_const_literals_to_create_immutables`
|
|
|
|
### Étape 3 : Patterns de correction spécifiques
|
|
|
|
#### Pour `deprecated_member_use` (withOpacity)
|
|
```dart
|
|
// ❌ Ancien
|
|
color: Colors.blue.withOpacity(0.5)
|
|
|
|
// ✅ Nouveau
|
|
color: Colors.blue.withValues(alpha: 127) // 0.5 * 255 = 127
|
|
```
|
|
|
|
#### Pour `use_build_context_synchronously`
|
|
```dart
|
|
// ❌ Ancien
|
|
await someAsyncOperation();
|
|
Navigator.of(context).pop();
|
|
|
|
// ✅ Nouveau
|
|
await someAsyncOperation();
|
|
if (context.mounted) {
|
|
Navigator.of(context).pop();
|
|
}
|
|
```
|
|
|
|
#### Pour `must_be_immutable` avec HiveObject
|
|
```dart
|
|
// Pour les modèles Hive, ajouter une annotation pour ignorer
|
|
// ignore: must_be_immutable
|
|
@HiveType(typeId: X)
|
|
class MyModel extends HiveObject {
|
|
// ...
|
|
}
|
|
```
|
|
|
|
### Étape 4 : Modules à traiter
|
|
|
|
#### 🚫 Module Chat (À ignorer ou supprimer)
|
|
Le dossier `lib/chat/` contient de nombreuses erreurs car il n'est pas utilisé.
|
|
**Options** :
|
|
1. Supprimer complètement le dossier `lib/chat/` si non utilisé
|
|
2. OU corriger les dépendances manquantes (equatable dans pubspec.yaml)
|
|
3. OU exclure de l'analyse dans `analysis_options.yaml`
|
|
|
|
#### ✅ Modules prioritaires
|
|
Concentre-toi sur les modules actifs :
|
|
- `lib/core/` - Services, repositories, models
|
|
- `lib/presentation/` - UI widgets et pages
|
|
- `lib/shared/` - Composants partagés
|
|
|
|
### Étape 5 : Vérification finale
|
|
```bash
|
|
flutter analyze
|
|
```
|
|
- Vérifier qu'il n'y a plus d'erreurs
|
|
- Documenter les warnings restants qui ne peuvent pas être corrigés
|
|
- Tester que l'application compile et fonctionne
|
|
|
|
## 🛠️ Commandes utiles
|
|
|
|
```bash
|
|
# Analyse complète
|
|
flutter analyze
|
|
|
|
# Analyse d'un fichier spécifique
|
|
flutter analyze lib/presentation/widgets/dashboard_app_bar.dart
|
|
|
|
# Format du code
|
|
flutter format lib/
|
|
|
|
# Nettoyer et reconstruire
|
|
flutter clean && flutter pub get
|
|
|
|
# Générer les adapters Hive si nécessaire
|
|
flutter packages pub run build_runner build --delete-conflicting-outputs
|
|
```
|
|
|
|
## 📊 Rapport attendu
|
|
|
|
À la fin, fournir un rapport avec :
|
|
1. **Nombre d'issues avant** : X errors, Y warnings, Z info
|
|
2. **Nombre d'issues après** : 0 errors, Y warnings, Z info
|
|
3. **Liste des fichiers modifiés** avec le type de correction
|
|
4. **Décisions prises** (ex: suppression du module chat, ajout de dépendances)
|
|
5. **Problèmes non résolus** et pourquoi
|
|
|
|
## ⚠️ Points d'attention
|
|
|
|
1. **Ne pas casser le code existant** - Tester après chaque série de corrections
|
|
2. **Préserver la logique métier** - Ne pas modifier le comportement de l'app
|
|
3. **Respecter l'architecture** - Maintenir les patterns existants (Repository, Singleton, ValueListenableBuilder)
|
|
4. **Documenter les suppressions** - Si du code est supprimé, expliquer pourquoi
|
|
5. **Gérer les dépendances** - Ajouter dans pubspec.yaml si nécessaire
|
|
|
|
## 🎯 Résultat attendu
|
|
|
|
```bash
|
|
$ flutter analyze
|
|
Analyzing app...
|
|
No issues found!
|
|
```
|
|
|
|
## 📝 Notes spécifiques au projet Geosector
|
|
|
|
- **Architecture sans Provider** : Ne pas ajouter Provider
|
|
- **Hive pour le stockage** : Les warnings `must_be_immutable` sur HiveObject sont normaux
|
|
- **API First** : Maintenir le pattern de validation API avant sauvegarde locale
|
|
- **LoggerService** : Utiliser LoggerService au lieu de debugPrint direct
|
|
- **CurrentUserService/CurrentAmicaleService** : Services singleton à préserver
|
|
|
|
---
|
|
|
|
**Commence par exécuter `flutter analyze` et montre-moi le résultat pour que nous puissions prioriser les corrections ensemble.** |