@silvestv/migration-planificator 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +96 -0
- package/README.fr.md +359 -0
- package/README.md +360 -0
- package/SECURITY.md +187 -0
- package/dist/client.bundle.js +357 -0
- package/dist/src/core/app-analyzer.js +134 -0
- package/dist/src/core/ast/matchers/html/html-attribute-matcher.js +86 -0
- package/dist/src/core/ast/matchers/html/html-component-matcher.js +40 -0
- package/dist/src/core/ast/matchers/html/html-element-matcher.js +54 -0
- package/dist/src/core/ast/matchers/html/html-parser.js +58 -0
- package/dist/src/core/ast/matchers/html/html-pipe-matcher.js +95 -0
- package/dist/src/core/ast/matchers/html/html-text-matcher.js +53 -0
- package/dist/src/core/ast/matchers/html/index.js +118 -0
- package/dist/src/core/ast/matchers/index.js +377 -0
- package/dist/src/core/ast/matchers/ts/collection-matcher.js +51 -0
- package/dist/src/core/ast/matchers/ts/context-matcher.js +275 -0
- package/dist/src/core/ast/matchers/ts/decorator-matcher.js +465 -0
- package/dist/src/core/ast/matchers/ts/expression-matcher.js +237 -0
- package/dist/src/core/ast/matchers/ts/file-matcher.js +97 -0
- package/dist/src/core/ast/matchers/ts/hierarchy-matcher.js +172 -0
- package/dist/src/core/ast/matchers/ts/import-matcher.js +39 -0
- package/dist/src/core/ast/matchers/ts/index.js +53 -0
- package/dist/src/core/ast/matchers/ts/node-matcher.js +156 -0
- package/dist/src/core/ast/matchers/ts/symbol-matcher.js +281 -0
- package/dist/src/core/ast/matchers/ts/type-matcher.js +207 -0
- package/dist/src/core/ast/matchers/utils/matcher-helpers.js +37 -0
- package/dist/src/core/ast/scanner-ast.js +444 -0
- package/dist/src/core/project-detector.js +196 -0
- package/dist/src/core/project-strategy/index.js +9 -0
- package/dist/src/core/project-strategy/nx-strategy.js +130 -0
- package/dist/src/core/project-strategy/project-strategy.interface.js +2 -0
- package/dist/src/core/project-strategy/standalone-strategy.js +74 -0
- package/dist/src/core/project-strategy/strategy-factory.js +15 -0
- package/dist/src/core/rules-loader.js +89 -0
- package/dist/src/core/scan-reporter.js +316 -0
- package/dist/src/core/scanner-delta.js +339 -0
- package/dist/src/core/scanner-orchestrator.js +266 -0
- package/dist/src/core/scanner-regex.js +298 -0
- package/dist/src/core/workload/calculator.js +82 -0
- package/dist/src/core/workload/constants.js +15 -0
- package/dist/src/core/workload/grouping.js +18 -0
- package/dist/src/core/workload/hierarchy-calculator.js +127 -0
- package/dist/src/core/workload/index.js +11 -0
- package/dist/src/core/workload/metadata.js +20 -0
- package/dist/src/core/workload/special-workload.js +101 -0
- package/dist/src/core/workload/target-resolver.js +34 -0
- package/dist/src/data/angular-migration-rules.json +2337 -0
- package/dist/src/data/markdown/angular-migration-17-18.md +408 -0
- package/dist/src/data/markdown/angular-migration-18-19.md +600 -0
- package/dist/src/data/markdown/angular-migration-19-20.md +521 -0
- package/dist/src/data/rules/rearchitecture/rearchitecture-rules.json +66 -0
- package/dist/src/data/rules/to18/rules-18-obligatoire.json +374 -0
- package/dist/src/data/rules/to18/rules-18-optionnelle.json +188 -0
- package/dist/src/data/rules/to18/rules-18-recommande.json +218 -0
- package/dist/src/data/rules/to19/rules-19-obligatoire.json +348 -0
- package/dist/src/data/rules/to19/rules-19-optionnelle.json +223 -0
- package/dist/src/data/rules/to19/rules-19-recommande.json +200 -0
- package/dist/src/data/rules/to20/rules-20-obligatoire.json +556 -0
- package/dist/src/data/rules/to20/rules-20-optionnelle.json +190 -0
- package/dist/src/data/rules/to20/rules-20-recommande.json +151 -0
- package/dist/src/index.js +161 -0
- package/dist/src/models/chip-config.js +45 -0
- package/dist/src/models/interfaces/app-details.interface.js +2 -0
- package/dist/src/models/interfaces/ast-interfaces.js +5 -0
- package/dist/src/models/interfaces/ast-pattern.interface.js +2 -0
- package/dist/src/models/interfaces/client-interfaces.js +6 -0
- package/dist/src/models/interfaces/detection-stats.interface.js +2 -0
- package/dist/src/models/interfaces/html-match.interface.js +2 -0
- package/dist/src/models/interfaces/html-report-data.interface.js +2 -0
- package/dist/src/models/interfaces/lib-details.interface.js +2 -0
- package/dist/src/models/interfaces/migration-rules.interface.js +2 -0
- package/dist/src/models/interfaces/parsed-args.interface.js +2 -0
- package/dist/src/models/interfaces/project-info.interface.js +2 -0
- package/dist/src/models/interfaces/project-overview-data.interface.js +2 -0
- package/dist/src/models/interfaces/rule-match.interface.js +2 -0
- package/dist/src/models/interfaces/rule.interface.js +2 -0
- package/dist/src/models/interfaces/rules-by-priority.interface.js +2 -0
- package/dist/src/models/interfaces/scanner-comparison.interface.js +2 -0
- package/dist/src/models/interfaces/special-workload.interface.js +2 -0
- package/dist/src/models/interfaces/workload-report.interface.js +2 -0
- package/dist/src/models/types/build-block-blob.type.js +2 -0
- package/dist/src/models/types/migration-version.type.js +2 -0
- package/dist/src/models/types/project-type.type.js +2 -0
- package/dist/src/models/types/risk-level.type.js +2 -0
- package/dist/src/models/types/rule-category.type.js +2 -0
- package/dist/src/models/types/rule-priority.type.js +2 -0
- package/dist/src/models/types/rule-workload-type.type.js +2 -0
- package/dist/src/templates/landing/applications-analyzed.template.js +18 -0
- package/dist/src/templates/landing/card-app-info.template.js +63 -0
- package/dist/src/templates/landing/card-lib-info.template.js +67 -0
- package/dist/src/templates/landing/libs-analyzed.template.js +22 -0
- package/dist/src/templates/landing/nx-summary.template.js +115 -0
- package/dist/src/templates/landing/project-overview.template.js +27 -0
- package/dist/src/templates/page/index-page.template.js +95 -0
- package/dist/src/templates/page/main.template.js +83 -0
- package/dist/src/templates/page/migration-guide.template.js +175 -0
- package/dist/src/templates/page/workload-report.template.js +53 -0
- package/dist/src/templates/workload/dashboard.template.js +184 -0
- package/dist/src/templates/workload/filters-panel.template.js +215 -0
- package/dist/src/templates/workload/guide-rule-card.template.js +107 -0
- package/dist/src/templates/workload/hierarchy-nx.template.js +104 -0
- package/dist/src/templates/workload/hierarchy-shared.js +163 -0
- package/dist/src/templates/workload/hierarchy-standalone.template.js +36 -0
- package/dist/src/templates/workload/hierarchy.template.js +35 -0
- package/dist/src/templates/workload/rule-modal.template.js +280 -0
- package/dist/src/utils/core/args-parser.js +123 -0
- package/dist/src/utils/core/array-helpers.js +18 -0
- package/dist/src/utils/core/ast-helpers.js +99 -0
- package/dist/src/utils/core/file-helpers.js +109 -0
- package/dist/src/utils/core/html-helpers.js +36 -0
- package/dist/src/utils/core/index.js +28 -0
- package/dist/src/utils/core/logger.js +38 -0
- package/dist/src/utils/core/rule-helpers.js +15 -0
- package/dist/src/utils/core/workload-formatter.js +6 -0
- package/dist/src/utils/shared/array-helpers.js +25 -0
- package/dist/src/utils/shared/date-helpers.js +109 -0
- package/dist/src/utils/shared/html-helpers.js +37 -0
- package/dist/src/utils/shared/index.js +25 -0
- package/dist/src/utils/shared/rule-helpers.js +20 -0
- package/dist/src/utils/shared/time-formatters.js +76 -0
- package/dist/styles.css +2 -0
- package/package.json +107 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
DUAL LICENSE NOTICE
|
|
2
|
+
===================
|
|
3
|
+
|
|
4
|
+
This software is dual-licensed under:
|
|
5
|
+
1. GNU Affero General Public License v3.0 (AGPL-3.0) for non-commercial use
|
|
6
|
+
2. Commercial License for commercial use
|
|
7
|
+
|
|
8
|
+
You may choose which license applies to your use of this software.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
OPTION 1: AGPL-3.0 (Non-Commercial Use)
|
|
13
|
+
========================================
|
|
14
|
+
|
|
15
|
+
For individuals, academic institutions, non-profit organizations, and open-source projects.
|
|
16
|
+
|
|
17
|
+
If you distribute this software or provide it as a service, you MUST:
|
|
18
|
+
- Make your complete source code available under AGPL-3.0
|
|
19
|
+
- Include this license and copyright notice
|
|
20
|
+
- Disclose any modifications you made
|
|
21
|
+
|
|
22
|
+
Copyright (C) 2025 Victor Louis SILVESTRE
|
|
23
|
+
|
|
24
|
+
This program is free software: you can redistribute it and/or modify
|
|
25
|
+
it under the terms of the GNU Affero General Public License as published by
|
|
26
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
27
|
+
(at your option) any later version.
|
|
28
|
+
|
|
29
|
+
This program is distributed in the hope that it will be useful,
|
|
30
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
31
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
32
|
+
GNU Affero General Public License for more details.
|
|
33
|
+
|
|
34
|
+
You should have received a copy of the GNU Affero General Public License
|
|
35
|
+
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
36
|
+
|
|
37
|
+
Full AGPL-3.0 text: https://www.gnu.org/licenses/agpl-3.0.html
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
OPTION 2: COMMERCIAL LICENSE
|
|
42
|
+
==============================
|
|
43
|
+
|
|
44
|
+
For businesses and enterprises that want to:
|
|
45
|
+
- Use this software in proprietary/closed-source applications
|
|
46
|
+
- Distribute this software without disclosing source code
|
|
47
|
+
- Avoid AGPL-3.0 copyleft obligations
|
|
48
|
+
- Receive priority support and SLA guarantees
|
|
49
|
+
|
|
50
|
+
A Commercial License is REQUIRED if you:
|
|
51
|
+
- Integrate this software into a commercial product
|
|
52
|
+
- Provide this software as part of a paid service (SaaS, consulting, etc.)
|
|
53
|
+
- Use this software internally in a for-profit company without sharing modifications
|
|
54
|
+
|
|
55
|
+
Commercial License includes:
|
|
56
|
+
✓ Perpetual usage rights without copyleft
|
|
57
|
+
✓ Priority email/phone support
|
|
58
|
+
✓ Service Level Agreement (SLA)
|
|
59
|
+
✓ Custom feature development options
|
|
60
|
+
✓ Legal indemnification
|
|
61
|
+
✓ No requirement to disclose source code
|
|
62
|
+
|
|
63
|
+
See COMMERCIAL-LICENSE.md for detailed terms.
|
|
64
|
+
|
|
65
|
+
For commercial licensing inquiries:
|
|
66
|
+
📧 Email: victor.silvestre.dev@gmail.com
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
CHOOSING YOUR LICENSE
|
|
71
|
+
======================
|
|
72
|
+
|
|
73
|
+
Use AGPL-3.0 if:
|
|
74
|
+
✓ You're an individual developer, student, or researcher
|
|
75
|
+
✓ Your project is open-source and AGPL-compatible
|
|
76
|
+
✓ You're okay with sharing your modifications publicly
|
|
77
|
+
✓ You're a non-profit or academic institution
|
|
78
|
+
|
|
79
|
+
Use Commercial License if:
|
|
80
|
+
✓ You work for a for-profit company
|
|
81
|
+
✓ You need to keep your code proprietary
|
|
82
|
+
✓ You want to distribute this without AGPL obligations
|
|
83
|
+
✓ You need enterprise support and SLA
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
WHY DUAL LICENSE?
|
|
88
|
+
=================
|
|
89
|
+
|
|
90
|
+
This dual-license model ensures:
|
|
91
|
+
- Free access for individuals, researchers, and open-source community
|
|
92
|
+
- Sustainable development through commercial support
|
|
93
|
+
- Protection against cloud providers profiting without contribution
|
|
94
|
+
- Funding for long-term maintenance and feature development
|
|
95
|
+
|
|
96
|
+
Questions? Contact victor.silvestre.dev@gmail.com
|
package/README.fr.md
ADDED
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
# Angular Migration Planner
|
|
2
|
+
|
|
3
|
+
> **Outil professionnel d'analyse de migrations Angular pour montées de version, refactoring Nx monorepo, et évaluation de dette technique**
|
|
4
|
+
|
|
5
|
+
Planifiez vos migrations Angular (17→18, 18→19, 19→20) avec analyse AST précise, calculez les charges de travail, et générez des dashboards HTML interactifs.
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/@silvestv/migration-planificator)
|
|
8
|
+
[](https://www.npmjs.com/package/@silvestv/migration-planificator)
|
|
9
|
+
[](https://nodejs.org/)
|
|
10
|
+
[](https://www.typescriptlang.org/)
|
|
11
|
+
[](tests)
|
|
12
|
+
[](LICENSE)
|
|
13
|
+
[](https://www.npmjs.com/package/@silvestv/migration-planificator)
|
|
14
|
+
|
|
15
|
+
**[🇬🇧 English](https://github.com/silvestv/migration-planificator-documentation/blob/master/README.md) | [🇫🇷 Français](https://github.com/silvestv/migration-planificator-documentation/blob/master/README.fr.md)**
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
Pour toute préoccupation de sécurité ou signaler une vulnérabilité, voir [SECURITY.md](https://github.com/silvestv/migration-planificator-documentation/blob/master/SECURITY.md)
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 🎯 C'est Quoi ?
|
|
24
|
+
|
|
25
|
+
Un **outil d'analyse de migrations Angular** complet pour :
|
|
26
|
+
|
|
27
|
+
- 🔄 **Migrations Angular** : Planifiez migrations 17→18, 18→19, 19→20 avec estimations précises
|
|
28
|
+
- 🏢 **Monorepo Nx** : Analysez workspaces multi-apps/libs avec détail par target
|
|
29
|
+
- 📊 **Dette Technique** : Identifiez APIs dépréciées, anti-patterns, opportunités de modernisation
|
|
30
|
+
- 💰 **Estimation Charge** : Calculez temps (jours/heures/minutes) par priorité et niveau de risque
|
|
31
|
+
- 🎨 **Modernisation Code** : Détectez opportunités Signals, Control Flow, Composants Standalone
|
|
32
|
+
|
|
33
|
+
Parfait pour **équipes techniques** et **tech leads** planifiant des upgrades Angular ou refactoring.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 🏆 Pourquoi Choisir Cet Outil ?
|
|
38
|
+
|
|
39
|
+
Contrairement aux scanners regex simples ou audits manuels :
|
|
40
|
+
|
|
41
|
+
- ✅ **88% Couverture AST** : Détection contextuelle élimine faux positifs (ignore commentaires, strings, code migré)
|
|
42
|
+
- ✅ **Intelligence Cross-File** : Connecte TypeScript ↔ templates HTML (détecte patterns `@Component` + `<router-outlet>`)
|
|
43
|
+
- ✅ **Production-Ready** : 451 tests réussis, TypeScript strict mode, batch processing optimisé
|
|
44
|
+
- ✅ **Gain de Temps** : Calcul charge auto + timeline Gantt = roadmap migration instantanée
|
|
45
|
+
- ✅ **Zéro Dépendances** : Analyse AST pure avec ts-morph + @angular/compiler (pas d'APIs externes)
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## ✨ Fonctionnalités
|
|
50
|
+
|
|
51
|
+
- **Précision AST** : Détection contextuelle via ts-morph + @angular/compiler (88% règles)
|
|
52
|
+
- **Dashboard Interactif** : Rapport HTML avec charts, timeline Gantt, édition temps réel
|
|
53
|
+
- **3 Modes Scan** : AST (précis), Regex (rapide), Both (comparatif avec analyse delta)
|
|
54
|
+
- **85+ Règles Migration** : Couvrant breaking changes, dépréciations, best practices
|
|
55
|
+
- **Analyse Cross-File** : Détection TypeScript ↔ templates HTML
|
|
56
|
+
- **Multi-Projets** : Support Nx Monorepo et Angular Standalone
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 🎓 Cas d'Usage
|
|
61
|
+
|
|
62
|
+
### Migration Version Angular
|
|
63
|
+
Upgrade Angular 17→20 avec liste complète changements et estimations :
|
|
64
|
+
```bash
|
|
65
|
+
npx @silvestv/migration-planificator --scanner=both --rules=all --project-path=/path/to/angular-app
|
|
66
|
+
```
|
|
67
|
+
**Résultat** : Tous changements requis, breakdown temps, évaluation risques, planificateur interactif
|
|
68
|
+
|
|
69
|
+
### Refactoring Monorepo Nx
|
|
70
|
+
Moderniser workspace Nx avec 10+ apps/libs :
|
|
71
|
+
```bash
|
|
72
|
+
npx @silvestv/migration-planificator --scanner=both --project-path=/path/to/nx-workspace
|
|
73
|
+
```
|
|
74
|
+
**Résultat** : Breakdown par app/lib, impact dépendances partagées, timeline Gantt
|
|
75
|
+
|
|
76
|
+
### Évaluation Dette Technique
|
|
77
|
+
Auditer codebase pour APIs dépréciées :
|
|
78
|
+
```bash
|
|
79
|
+
npx @silvestv/migration-planificator --scanner=ast --rules=[18,19,20]
|
|
80
|
+
```
|
|
81
|
+
**Résultat** : Patterns dépréciés (*ngIf, @Input()), opportunités modernisation, tracking fichiers
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## 🚀 Démarrage Rapide
|
|
86
|
+
|
|
87
|
+
### Installation
|
|
88
|
+
|
|
89
|
+
#### Via npm (Recommandé)
|
|
90
|
+
```bash
|
|
91
|
+
npm install -g @silvestv/migration-planificator
|
|
92
|
+
# ou
|
|
93
|
+
npx @silvestv/migration-planificator --project-path=/chemin/vers/projet
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
#### Depuis les Sources
|
|
97
|
+
```bash
|
|
98
|
+
git clone <repository-url>
|
|
99
|
+
cd @silvestv/migration-planificator
|
|
100
|
+
npm install
|
|
101
|
+
npm run build
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Générer Premier Rapport
|
|
105
|
+
```bash
|
|
106
|
+
# Analyser répertoire courant
|
|
107
|
+
npx @silvestv/migration-planificator
|
|
108
|
+
|
|
109
|
+
# Analyser projet spécifique avec options
|
|
110
|
+
npx @silvestv/migration-planificator --scanner=both --project-path=/chemin/vers/projet
|
|
111
|
+
|
|
112
|
+
# Filtrer par version migration
|
|
113
|
+
npx @silvestv/migration-planificator --rules=18 # Seulement Angular 17→18
|
|
114
|
+
npx @silvestv/migration-planificator --rules=[18,19] # Angular 17→19
|
|
115
|
+
|
|
116
|
+
# Ou avec installation globale
|
|
117
|
+
@silvestv/migration-planificator --scanner=both --project-path=/chemin/vers/projet
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Ouvrir Rapport
|
|
121
|
+
```bash
|
|
122
|
+
open output/index.html # macOS/Linux
|
|
123
|
+
start output/index.html # Windows
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## 💻 Utilisation
|
|
129
|
+
|
|
130
|
+
### Après installation npm
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
# Utilisation basique
|
|
134
|
+
npx @silvestv/migration-planificator
|
|
135
|
+
|
|
136
|
+
# Avec options
|
|
137
|
+
npx @silvestv/migration-planificator --scanner=both --project-path=/chemin/vers/projet --rules=all
|
|
138
|
+
|
|
139
|
+
# Installation globale
|
|
140
|
+
npm install -g @silvestv/migration-planificator
|
|
141
|
+
@silvestv/migration-planificator --scanner=ast --project-path=./mon-app-angular
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Options CLI
|
|
145
|
+
```bash
|
|
146
|
+
--scanner=<mode> ast | regex | both [défaut: ast]
|
|
147
|
+
--project-path=<path> Chemin vers projet Angular [défaut: répertoire courant]
|
|
148
|
+
--rules=<versions> 18 | [18,19] | all [défaut: all]
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### Exemples
|
|
152
|
+
```bash
|
|
153
|
+
# Scanner répertoire courant avec AST
|
|
154
|
+
npx @silvestv/migration-planificator
|
|
155
|
+
|
|
156
|
+
# Scan comparatif (AST vs Regex) sur projet spécifique
|
|
157
|
+
npx @silvestv/migration-planificator --scanner=both --project-path=/workspace/mon-app
|
|
158
|
+
|
|
159
|
+
# Vérifier uniquement règles migration Angular 17→18
|
|
160
|
+
npx @silvestv/migration-planificator --rules=18
|
|
161
|
+
|
|
162
|
+
# Plusieurs versions avec scanner regex
|
|
163
|
+
npx @silvestv/migration-planificator --scanner=regex --rules=[18,19]
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Pour Développement (depuis repository cloné)
|
|
167
|
+
```bash
|
|
168
|
+
# Build et exécution
|
|
169
|
+
npm run build
|
|
170
|
+
npm start -- --scanner=both --project-path=/chemin/vers/projet
|
|
171
|
+
|
|
172
|
+
# Scripts rapports rapides
|
|
173
|
+
npm run report # AST scan + HTML (default)
|
|
174
|
+
npm run report -- --scanner=ast # AST mode only
|
|
175
|
+
npm run report -- --scanner=regex # Regex mode only
|
|
176
|
+
npm run report -- --scanner=both # Comparative AST vs Regex
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## 📊 Contenu Rapport
|
|
182
|
+
|
|
183
|
+
### Page Overview
|
|
184
|
+
- Résumé projet (type, version Angular, compteur apps/libs)
|
|
185
|
+
- Statistiques globales (règles détectées, charge totale)
|
|
186
|
+
- Cards apps/libs avec analyse individuelle
|
|
187
|
+
|
|
188
|
+
### Page Workload
|
|
189
|
+
- **Charts** : Pie (migrations), Bar (top règles), Doughnut (priorités)
|
|
190
|
+
- **Timeline Gantt** : Phases migration séquentielles
|
|
191
|
+
- **Arbre Hiérarchique** : Monorepo → Apps/Libs → Migrations → Priorités → Règles
|
|
192
|
+
- **Édition Temps Réel** : Cliquer estimations pour ajuster, recalcul auto
|
|
193
|
+
- **Filtres** : Niveau risque, catégorie, type règle, recherche texte
|
|
194
|
+
|
|
195
|
+
### Page Delta (Mode Both)
|
|
196
|
+
- Comparaison règle par règle (précision AST vs Regex)
|
|
197
|
+
- Analyse divergences, stats performance, recommandations
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## 📋 Règles Migration
|
|
202
|
+
|
|
203
|
+
**85 règles** sur 3 versions :
|
|
204
|
+
|
|
205
|
+
| Migration | Obligatoires | Recommandées | Optionnelles | Total |
|
|
206
|
+
|-----------|--------------|--------------|--------------|-------|
|
|
207
|
+
| **17→18** | 8 | 17 | 0 | 25 |
|
|
208
|
+
| **18→19** | 15 | 13 | 9 | 37 |
|
|
209
|
+
| **19→20** | 6 | 7 | 5 | 18 |
|
|
210
|
+
|
|
211
|
+
### Catégories
|
|
212
|
+
`environment` (versions Node/TS) • `imports` (modules) • `api` (APIs Angular) • `routing` (Router) • `template` (directives) • `test` (tests) • `ssr` (SSR) • `reactive` (Signals)
|
|
213
|
+
|
|
214
|
+
### Niveaux Risque
|
|
215
|
+
🔴 **Critical** (breaking changes) • 🟠 **High** (dépréciations majeures) • 🟡 **Medium** (améliorations) • 🟢 **Low** (optimisations)
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## 🐛 Dépannage
|
|
220
|
+
|
|
221
|
+
### Expression Régulière Invalide
|
|
222
|
+
Vérifier compatibilité JavaScript :
|
|
223
|
+
```bash
|
|
224
|
+
# (?s) non supporté → utiliser [\s\S]*?
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### Build Échoue
|
|
228
|
+
```bash
|
|
229
|
+
rm -rf dist/
|
|
230
|
+
npm run build
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Rapport Vide
|
|
234
|
+
- Vérifier `--project-path` pointe vers racine Angular
|
|
235
|
+
- Vérifier présence `angular.json` ou `nx.json`
|
|
236
|
+
- Support Angular 17, 18, 19, 20
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## 🔒 Sécurité et Confidentialité
|
|
241
|
+
|
|
242
|
+
**Ce CLI s'exécute entièrement sur votre machine locale.** Il ne **collecte, ne transmet, ni ne stocke** aucune donnée externe. Aucune requête réseau n'est effectuée pendant l'analyse.
|
|
243
|
+
|
|
244
|
+
- ✅ **100% Traitement Local** - Votre code ne quitte jamais votre machine
|
|
245
|
+
- ✅ **Aucune Télémétrie** - Zéro collecte de données ou tracking
|
|
246
|
+
- ✅ **Aucune API Externe** - Analyse AST pure avec bibliothèques locales
|
|
247
|
+
- ✅ **Package Signé** - Signé automatiquement par le registre npm pour vérification d'intégrité
|
|
248
|
+
- ✅ **Auditable** - Inspectez le contenu du package publié à tout moment :
|
|
249
|
+
```bash
|
|
250
|
+
npm pack @silvestv/migration-planificator
|
|
251
|
+
tar -tzf silvestv-migration-planificator-*.tgz
|
|
252
|
+
# Ou visualisez les fichiers directement
|
|
253
|
+
npm view @silvestv/migration-planificator files
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
Pour toute préoccupation de sécurité ou signaler une vulnérabilité, voir [SECURITY.md](https://github.com/silvestv/migration-planificator-documentation/blob/master/SECURITY.md)
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## 🤝 Contribuer & Support
|
|
261
|
+
|
|
262
|
+
Ce projet utilise un **modèle double-licence** :
|
|
263
|
+
- **Licence AGPL-3.0** pour usage communautaire/open-source
|
|
264
|
+
- **Licence Commerciale** disponible pour support et fonctionnalités entreprise
|
|
265
|
+
|
|
266
|
+
### 🐛 Signaler un Bug
|
|
267
|
+
|
|
268
|
+
Vous avez trouvé un bug ? Signalez-le via GitHub Issues :
|
|
269
|
+
|
|
270
|
+
1. **Aller sur** : [GitHub Issues](https://github.com/silvestv/migration-planificator-documentation/issues/new/choose)
|
|
271
|
+
2. **Sélectionner** : Template "Bug Report"
|
|
272
|
+
3. **Remplir** :
|
|
273
|
+
- Description du bug
|
|
274
|
+
- Étapes pour reproduire
|
|
275
|
+
- Comportement attendu vs réel
|
|
276
|
+
- Votre environnement (OS, version Node.js, version Angular)
|
|
277
|
+
- Commande utilisée
|
|
278
|
+
|
|
279
|
+
**Lien direct** : [Signaler un Bug](https://github.com/silvestv/migration-planificator-documentation/issues/new?template=bug_report.md)
|
|
280
|
+
|
|
281
|
+
### ✨ Demander une Fonctionnalité
|
|
282
|
+
|
|
283
|
+
Vous avez une idée d'amélioration ?
|
|
284
|
+
|
|
285
|
+
1. **Aller sur** : [GitHub Issues](https://github.com/silvestv/migration-planificator-documentation/issues/new/choose)
|
|
286
|
+
2. **Sélectionner** : Template "Feature Request"
|
|
287
|
+
3. **Décrire** :
|
|
288
|
+
- Le problème que vous essayez de résoudre
|
|
289
|
+
- Votre solution proposée
|
|
290
|
+
- Cas d'usage et qui en bénéficie
|
|
291
|
+
- Maquettes ou exemples éventuels
|
|
292
|
+
|
|
293
|
+
**Lien direct** : [Demander une Fonctionnalité](https://github.com/silvestv/migration-planificator-documentation/issues/new?template=feature_request.md)
|
|
294
|
+
|
|
295
|
+
### ❓ Poser une Question
|
|
296
|
+
|
|
297
|
+
Besoin d'aide ou vous avez des questions ?
|
|
298
|
+
|
|
299
|
+
1. **Aller sur** : [GitHub Issues](https://github.com/silvestv/migration-planificator-documentation/issues/new/choose)
|
|
300
|
+
2. **Sélectionner** : Template "Question"
|
|
301
|
+
3. **Vérifier d'abord** :
|
|
302
|
+
- [FAQ](https://github.com/silvestv/migration-planificator-documentation/blob/master/FAQ.md)
|
|
303
|
+
- [Guide de Dépannage](https://github.com/silvestv/migration-planificator-documentation/blob/master/TROUBLESHOOTING.md)
|
|
304
|
+
|
|
305
|
+
**Lien direct** : [Poser une Question](https://github.com/silvestv/migration-planificator-documentation/issues/new?template=question.md)
|
|
306
|
+
|
|
307
|
+
### 📧 Contact Direct
|
|
308
|
+
|
|
309
|
+
Pour les problèmes urgents, préoccupations de sécurité ou demandes commerciales :
|
|
310
|
+
|
|
311
|
+
📧 **Email** : victor.silvestre.dev@gmail.com
|
|
312
|
+
|
|
313
|
+
**Utilisateurs entreprise** : Contactez-nous pour licence commerciale, support prioritaire et fonctionnalités personnalisées.
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
## 📝 Licence
|
|
318
|
+
|
|
319
|
+
**Double Licence** © 2025 Victor Louis SILVESTRE
|
|
320
|
+
|
|
321
|
+
Ce projet est disponible sous deux licences :
|
|
322
|
+
|
|
323
|
+
### 1. AGPL-3.0 (Gratuit pour Usage Non-Commercial)
|
|
324
|
+
Pour particuliers, étudiants, chercheurs, organisations à but non lucratif et projets open-source.
|
|
325
|
+
|
|
326
|
+
**Obligations si vous distribuez ou fournissez comme service** :
|
|
327
|
+
- ✅ Rendre votre code source complet disponible sous AGPL-3.0
|
|
328
|
+
- ✅ Partager toutes modifications publiquement
|
|
329
|
+
- ✅ Inclure mentions de copyright et de licence
|
|
330
|
+
|
|
331
|
+
### 2. Licence Commerciale (Pour Usage Professionnel)
|
|
332
|
+
Pour les entreprises qui doivent utiliser ce logiciel sans les obligations AGPL.
|
|
333
|
+
|
|
334
|
+
📧 Contact : victor.silvestre.dev@gmail.com
|
|
335
|
+
|
|
336
|
+
Voir [LICENSE](https://github.com/silvestv/migration-planificator-documentation/blob/master/LICENSE).
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
## 🙏 Remerciements
|
|
340
|
+
|
|
341
|
+
Construit avec **ts-morph** (AST TypeScript), **@angular/compiler** (parsing HTML), **TailwindCSS** (design), **Chart.js** (visualisation)
|
|
342
|
+
|
|
343
|
+
---
|
|
344
|
+
|
|
345
|
+
**🚀 Commencez à planifier votre migration Angular dès aujourd'hui !**
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
## ⚠️ Avertissement
|
|
350
|
+
|
|
351
|
+
This tool is provided **"AS IS"** without warranty of any kind - Use at your own risk.
|
|
352
|
+
- Utilisez à vos risques et périls.
|
|
353
|
+
- Aucune garantie fournie. Non affilié à une organisation.
|
|
354
|
+
|
|
355
|
+
**Utilisateurs entreprise** : Verrouillez les versions exactes, vérifiez les rapports avant partage, ajoutez `output/` au `.gitignore`.
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
359
|
+
📧 [Contact](mailto:victor.silvestre.dev@gmail.com) • 📦 [Package NPM](https://www.npmjs.com/package/@silvestv/migration-planificator)
|