feat: Implémentation authentification NIST SP 800-63B v3.0.8
- 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>
This commit is contained in:
164
app/claude-code-analyze-flutter.md
Normal file
164
app/claude-code-analyze-flutter.md
Normal file
@@ -0,0 +1,164 @@
|
||||
# 🔧 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.**
|
||||
Reference in New Issue
Block a user