@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/README.md
ADDED
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
# Angular Migration Planner
|
|
2
|
+
|
|
3
|
+
> **Professional Angular migration analysis tool for version upgrades, Nx monorepo refactoring, and technical debt assessment**
|
|
4
|
+
|
|
5
|
+
Plan Angular migrations (17→18, 18→19, 19→20) with precision AST analysis, calculate workload estimates, and generate interactive HTML dashboards.
|
|
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
|
+
For security concerns or to report vulnerabilities, see [SECURITY.md](https://github.com/silvestv/migration-planificator-documentation/blob/master/SECURITY.md)
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 🎯 What Is This?
|
|
24
|
+
|
|
25
|
+
A comprehensive **Angular migration analysis tool** for:
|
|
26
|
+
|
|
27
|
+
- 🔄 **Angular Upgrades**: Plan migrations 17→18, 18→19, 19→20 with precise workload estimates
|
|
28
|
+
- 🏢 **Nx Monorepo**: Analyze multi-app/multi-lib workspaces with per-target breakdown
|
|
29
|
+
- 📊 **Technical Debt**: Identify deprecated APIs, anti-patterns, modernization opportunities
|
|
30
|
+
- 💰 **Workload Estimation**: Calculate time (days/hours/minutes) by priority and risk level
|
|
31
|
+
- 🎨 **Code Modernization**: Detect Signals, Control Flow, Standalone component opportunities
|
|
32
|
+
|
|
33
|
+
Perfect for **engineering teams** and **tech leads** planning Angular upgrades or refactoring initiatives.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 🏆 Why Choose This Tool?
|
|
38
|
+
|
|
39
|
+
Unlike simple regex-based scanners or manual audits:
|
|
40
|
+
|
|
41
|
+
- ✅ **88% AST Coverage**: Context-aware detection eliminates false positives (ignores comments, strings, migrated code)
|
|
42
|
+
- ✅ **Cross-File Intelligence**: Connects TypeScript ↔ HTML templates (detects `@Component` + `<router-outlet>` patterns)
|
|
43
|
+
- ✅ **Production-Ready**: 451 passing tests, TypeScript strict mode, optimized batch processing
|
|
44
|
+
- ✅ **Time Saver**: Automated workload calculation + Gantt timeline = instant migration roadmap
|
|
45
|
+
- ✅ **Zero Dependencies**: Pure AST analysis with ts-morph + @angular/compiler (no external APIs)
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## ✨ Key Features
|
|
50
|
+
|
|
51
|
+
- **AST Precision**: Context-aware detection via ts-morph + @angular/compiler (88% rule coverage)
|
|
52
|
+
- **Interactive Dashboard**: HTML report with charts, Gantt timeline, real-time workload editing
|
|
53
|
+
- **3 Scan Modes**: AST (precise), Regex (fast), Both (comparative with delta analysis)
|
|
54
|
+
- **85+ Migration Rules**: Covering breaking changes, deprecations, best practices
|
|
55
|
+
- **Cross-File Analysis**: TypeScript ↔ HTML template detection
|
|
56
|
+
- **Multi-Project**: Nx Monorepo and Angular Standalone support
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 🎓 Use Cases
|
|
61
|
+
|
|
62
|
+
### Angular Version Migration
|
|
63
|
+
Upgrade Angular 17→20 with comprehensive change list and time estimates:
|
|
64
|
+
```bash
|
|
65
|
+
npx @silvestv/migration-planificator --scanner=both --rules=all --project-path=/path/to/angular-app
|
|
66
|
+
```
|
|
67
|
+
**Output**: All required changes, time breakdown, risk assessment, interactive planner
|
|
68
|
+
|
|
69
|
+
### Nx Monorepo Refactoring
|
|
70
|
+
Modernize large Nx workspace with 10+ apps/libs:
|
|
71
|
+
```bash
|
|
72
|
+
npx @silvestv/migration-planificator --scanner=both --project-path=/path/to/nx-workspace
|
|
73
|
+
```
|
|
74
|
+
**Output**: Per-app/lib breakdown, shared dependencies impact, Gantt timeline
|
|
75
|
+
|
|
76
|
+
### Technical Debt Assessment
|
|
77
|
+
Audit codebase for deprecated APIs:
|
|
78
|
+
```bash
|
|
79
|
+
npx @silvestv/migration-planificator --scanner=ast --rules=[18,19,20]
|
|
80
|
+
```
|
|
81
|
+
**Output**: Deprecated patterns (*ngIf, @Input()), modernization opportunities, file tracking
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## 🚀 Quick Start
|
|
86
|
+
|
|
87
|
+
### Installation
|
|
88
|
+
|
|
89
|
+
#### Via npm (Recommended)
|
|
90
|
+
```bash
|
|
91
|
+
npm install -g @silvestv/migration-planificator
|
|
92
|
+
# or
|
|
93
|
+
npx @silvestv/migration-planificator --project-path=/path/to/your/project
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
#### From Source
|
|
97
|
+
```bash
|
|
98
|
+
git clone <repository-url>
|
|
99
|
+
cd migration-planificator
|
|
100
|
+
npm install
|
|
101
|
+
npm run build
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Generate First Report
|
|
105
|
+
```bash
|
|
106
|
+
# Analyze current directory
|
|
107
|
+
npx @silvestv/migration-planificator
|
|
108
|
+
|
|
109
|
+
# Analyze specific project with options
|
|
110
|
+
npx @silvestv/migration-planificator --scanner=both --project-path=/path/to/your/project
|
|
111
|
+
|
|
112
|
+
# Filter by migration version
|
|
113
|
+
npx @silvestv/migration-planificator --rules=18 # Only Angular 17→18
|
|
114
|
+
npx @silvestv/migration-planificator --rules=[18,19] # Angular 17→19
|
|
115
|
+
|
|
116
|
+
# Or using global installation
|
|
117
|
+
migration-planificator --scanner=both --project-path=/path/to/your/project
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Open Report
|
|
121
|
+
```bash
|
|
122
|
+
open output/index.html # macOS/Linux
|
|
123
|
+
start output/index.html # Windows
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## 💻 Usage
|
|
129
|
+
|
|
130
|
+
### After npm Installation
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
# Basic usage
|
|
134
|
+
npx @silvestv/migration-planificator
|
|
135
|
+
|
|
136
|
+
# With options
|
|
137
|
+
npx @silvestv/migration-planificator --scanner=both --project-path=/path/to/project --rules=all
|
|
138
|
+
|
|
139
|
+
# Global installation
|
|
140
|
+
npm install -g @silvestv/migration-planificator
|
|
141
|
+
migration-planificator --scanner=ast --project-path=./my-angular-app
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### CLI Options
|
|
145
|
+
```bash
|
|
146
|
+
--scanner=<mode> ast | regex | both [default: ast]
|
|
147
|
+
--project-path=<path> Path to Angular project [default: current directory]
|
|
148
|
+
--rules=<versions> 18 | [18,19] | all [default: all]
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### Examples
|
|
152
|
+
```bash
|
|
153
|
+
# Scan current directory with AST
|
|
154
|
+
npx @silvestv/migration-planificator
|
|
155
|
+
|
|
156
|
+
# Comparative scan (AST vs Regex) on specific project
|
|
157
|
+
npx @silvestv/migration-planificator --scanner=both --project-path=/workspace/my-app
|
|
158
|
+
|
|
159
|
+
# Only check Angular 17→18 migration rules
|
|
160
|
+
npx @silvestv/migration-planificator --rules=18
|
|
161
|
+
|
|
162
|
+
# Multiple versions with regex scanner
|
|
163
|
+
npx @silvestv/migration-planificator --scanner=regex --rules=[18,19]
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### For Development (from cloned repository)
|
|
167
|
+
```bash
|
|
168
|
+
# Build and run
|
|
169
|
+
npm run build
|
|
170
|
+
npm start -- --scanner=both --project-path=/path/to/project
|
|
171
|
+
|
|
172
|
+
# Quick report scripts
|
|
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
|
+
## 📊 Report Contents
|
|
182
|
+
|
|
183
|
+
### Overview Page
|
|
184
|
+
- Project summary (type, Angular version, apps/libs count)
|
|
185
|
+
- Global statistics (rules detected, total workload)
|
|
186
|
+
- Apps/libs cards with individual analysis
|
|
187
|
+
|
|
188
|
+
### Workload Page
|
|
189
|
+
- **Charts**: Pie (migrations), Bar (top rules), Doughnut (priorities)
|
|
190
|
+
- **Gantt Timeline**: Sequential migration phases
|
|
191
|
+
- **Hierarchy Tree**: Monorepo → Apps/Libs → Migrations → Priorities → Rules
|
|
192
|
+
- **Real-time Editing**: Click time estimates to adjust, auto-recalculates
|
|
193
|
+
- **Filters**: Risk level, category, rule type, text search
|
|
194
|
+
|
|
195
|
+
### Delta Page (Both Mode)
|
|
196
|
+
- Rule-by-rule comparison (AST vs Regex accuracy)
|
|
197
|
+
- Divergence analysis, performance stats, recommendations
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## 📋 Migration Rules
|
|
202
|
+
|
|
203
|
+
**85 rules** across 3 versions:
|
|
204
|
+
|
|
205
|
+
| Migration | Mandatory | Recommended | Optional | 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
|
+
### Categories
|
|
212
|
+
`environment` (Node/TS versions) • `imports` (modules) • `api` (Angular APIs) • `routing` (Router) • `template` (directives) • `test` (testing) • `ssr` (SSR) • `reactive` (Signals)
|
|
213
|
+
|
|
214
|
+
### Risk Levels
|
|
215
|
+
🔴 **Critical** (breaking changes) • 🟠 **High** (major deprecations) • 🟡 **Medium** (improvements) • 🟢 **Low** (optimizations)
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## 🐛 Troubleshooting
|
|
220
|
+
|
|
221
|
+
### Invalid Regular Expression
|
|
222
|
+
Ensure JavaScript compatibility:
|
|
223
|
+
```bash
|
|
224
|
+
# (?s) not supported → use [\s\S]*?
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### Build Fails
|
|
228
|
+
```bash
|
|
229
|
+
rm -rf dist/
|
|
230
|
+
npm run build
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Empty Report
|
|
234
|
+
- Verify `--project-path` points to Angular root
|
|
235
|
+
- Check `angular.json` or `nx.json` exists
|
|
236
|
+
- Supports Angular 17, 18, 19, 20
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## 🔒 Security Notice
|
|
241
|
+
|
|
242
|
+
**This CLI runs entirely on your local machine.** It does **not collect, transmit, or store** any data externally. No network requests are made during analysis.
|
|
243
|
+
|
|
244
|
+
- ✅ **100% Local Processing** - Your code never leaves your machine
|
|
245
|
+
- ✅ **No Telemetry** - Zero data collection or tracking
|
|
246
|
+
- ✅ **No External APIs** - Pure AST analysis with local libraries
|
|
247
|
+
- ✅ **Signed Package** - Automatically signed by npm registry for integrity verification
|
|
248
|
+
- ✅ **Auditable** - Inspect published package contents anytime:
|
|
249
|
+
```bash
|
|
250
|
+
npm pack @silvestv/migration-planificator
|
|
251
|
+
tar -tzf silvestv-migration-planificator-*.tgz
|
|
252
|
+
# Or view files directly
|
|
253
|
+
npm view @silvestv/migration-planificator files
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
For security concerns or to report vulnerabilities, see [SECURITY.md](https://github.com/silvestv/migration-planificator-documentation/blob/master/SECURITY.md)
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## 🤝 Contributing & Support
|
|
261
|
+
|
|
262
|
+
This project uses a **dual-license model**:
|
|
263
|
+
- **AGPL-3.0 License** for community/open-source use
|
|
264
|
+
- **Commercial License** available for enterprise support and features
|
|
265
|
+
|
|
266
|
+
### 🐛 Report a Bug
|
|
267
|
+
|
|
268
|
+
Found a bug? Please report it via GitHub Issues:
|
|
269
|
+
|
|
270
|
+
1. **Go to**: [GitHub Issues](https://github.com/silvestv/migration-planificator-documentation/issues/new/choose)
|
|
271
|
+
2. **Select**: "Bug Report" template
|
|
272
|
+
3. **Fill in**:
|
|
273
|
+
- Bug description
|
|
274
|
+
- Steps to reproduce
|
|
275
|
+
- Expected vs actual behavior
|
|
276
|
+
- Your environment (OS, Node.js version, Angular version)
|
|
277
|
+
- Command used
|
|
278
|
+
|
|
279
|
+
**Quick link**: [Report a Bug](https://github.com/silvestv/migration-planificator-documentation/issues/new?template=bug_report.md)
|
|
280
|
+
|
|
281
|
+
### ✨ Request a Feature
|
|
282
|
+
|
|
283
|
+
Have an idea for improvement?
|
|
284
|
+
|
|
285
|
+
1. **Go to**: [GitHub Issues](https://github.com/silvestv/migration-planificator-documentation/issues/new/choose)
|
|
286
|
+
2. **Select**: "Feature Request" template
|
|
287
|
+
3. **Describe**:
|
|
288
|
+
- The problem you're trying to solve
|
|
289
|
+
- Your proposed solution
|
|
290
|
+
- Use case and who benefits
|
|
291
|
+
- Any mockups or examples
|
|
292
|
+
|
|
293
|
+
**Quick link**: [Request a Feature](https://github.com/silvestv/migration-planificator-documentation/issues/new?template=feature_request.md)
|
|
294
|
+
|
|
295
|
+
### ❓ Ask a Question
|
|
296
|
+
|
|
297
|
+
Need help or have questions?
|
|
298
|
+
|
|
299
|
+
1. **Go to**: [GitHub Issues](https://github.com/silvestv/migration-planificator-documentation/issues/new/choose)
|
|
300
|
+
2. **Select**: "Question" template
|
|
301
|
+
3. **Check first**:
|
|
302
|
+
- [FAQ](https://github.com/silvestv/migration-planificator-documentation/blob/master/FAQ.md)
|
|
303
|
+
- [Troubleshooting Guide](https://github.com/silvestv/migration-planificator-documentation/blob/master/TROUBLESHOOTING.md)
|
|
304
|
+
|
|
305
|
+
**Quick link**: [Ask a Question](https://github.com/silvestv/migration-planificator-documentation/issues/new?template=question.md)
|
|
306
|
+
|
|
307
|
+
### 📧 Direct Contact
|
|
308
|
+
|
|
309
|
+
For urgent issues, security concerns, or commercial inquiries:
|
|
310
|
+
|
|
311
|
+
📧 **Email**: victor.silvestre.dev@gmail.com
|
|
312
|
+
|
|
313
|
+
**Enterprise users**: Contact us for commercial licensing, priority support, and custom features.
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
## 📝 License
|
|
318
|
+
|
|
319
|
+
**Dual Licensed** © 2025 Victor Louis SILVESTRE
|
|
320
|
+
|
|
321
|
+
This project is available under two licenses:
|
|
322
|
+
|
|
323
|
+
### 1. AGPL-3.0 (Free for Non-Commercial Use)
|
|
324
|
+
For individuals, students, researchers, non-profits, and open-source projects.
|
|
325
|
+
|
|
326
|
+
**Requirements if you distribute or provide as a service**:
|
|
327
|
+
- ✅ Make your complete source code available under AGPL-3.0
|
|
328
|
+
- ✅ Share all modifications publicly
|
|
329
|
+
- ✅ Include copyright and license notices
|
|
330
|
+
|
|
331
|
+
### 2. Commercial License (For Business Use)
|
|
332
|
+
For companies that need to use this software without AGPL obligations.
|
|
333
|
+
|
|
334
|
+
📧 Contact: victor.silvestre.dev@gmail.com
|
|
335
|
+
|
|
336
|
+
See [LICENSE](https://github.com/silvestv/migration-planificator-documentation/blob/master/LICENSE).
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
## 🙏 Acknowledgments
|
|
340
|
+
|
|
341
|
+
Built with **ts-morph** (TypeScript AST), **@angular/compiler** (HTML parsing), **TailwindCSS** (design), **Chart.js** (visualization)
|
|
342
|
+
|
|
343
|
+
---
|
|
344
|
+
|
|
345
|
+
**🚀 Start planning your Angular migration today!**
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
## ⚠️ Disclaimer
|
|
350
|
+
|
|
351
|
+
This tool is provided **"AS IS"** without warranty of any kind - Use at your own risk.
|
|
352
|
+
|
|
353
|
+
No warranty provided.
|
|
354
|
+
Not affiliated with any organization.
|
|
355
|
+
|
|
356
|
+
**Enterprise users**: Pin exact versions, review reports before sharing, add `output/` to `.gitignore`.
|
|
357
|
+
|
|
358
|
+
---
|
|
359
|
+
|
|
360
|
+
📧 [Contact](mailto:victor.silvestre.dev@gmail.com) • 📦 [NPM Package](https://www.npmjs.com/package/@silvestv/migration-planificator)
|
package/SECURITY.md
ADDED
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## 🔒 Security Commitment
|
|
4
|
+
|
|
5
|
+
**@silvestv/migration-planificator** is committed to protecting your codebase and maintaining the highest security standards.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 🛡️ Privacy & Data Collection
|
|
10
|
+
|
|
11
|
+
### What This Tool Does NOT Do
|
|
12
|
+
|
|
13
|
+
This CLI tool is designed with **privacy-first principles**:
|
|
14
|
+
|
|
15
|
+
- ❌ **No Data Collection** - We do not collect, store, or transmit any data from your codebase
|
|
16
|
+
- ❌ **No Telemetry** - Zero usage tracking or analytics
|
|
17
|
+
- ❌ **No Network Requests** - The tool runs entirely offline (except for npm package download)
|
|
18
|
+
- ❌ **No External APIs** - All analysis is performed locally using AST parsing libraries
|
|
19
|
+
- ❌ **No Code Upload** - Your source code never leaves your machine
|
|
20
|
+
|
|
21
|
+
### How It Works
|
|
22
|
+
|
|
23
|
+
1. **Local Execution Only** - All code analysis happens on your machine
|
|
24
|
+
2. **AST Parsing** - Uses `ts-morph` and `@angular/compiler` for local code analysis
|
|
25
|
+
3. **File System Access** - Only reads files in the specified project directory
|
|
26
|
+
4. **Output Generation** - Generates HTML reports locally in the `output/` directory
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 🔍 Package Integrity
|
|
31
|
+
|
|
32
|
+
### npm Package Signing
|
|
33
|
+
|
|
34
|
+
All packages published to the npm registry are **automatically signed** by npm to ensure integrity:
|
|
35
|
+
|
|
36
|
+
- ✅ Packages are cryptographically signed upon publication
|
|
37
|
+
- ✅ Signature verification happens automatically during `npm install`
|
|
38
|
+
- ✅ Tampering detection is built into npm's infrastructure
|
|
39
|
+
|
|
40
|
+
### Verify Package Contents
|
|
41
|
+
|
|
42
|
+
You can audit the published package contents at any time:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
# Download the package tarball
|
|
46
|
+
npm pack @silvestv/migration-planificator
|
|
47
|
+
|
|
48
|
+
# Inspect the contents
|
|
49
|
+
tar -tzf silvestv-migration-planificator-*.tgz
|
|
50
|
+
|
|
51
|
+
# Or view files metadata directly from npm registry
|
|
52
|
+
npm view @silvestv/migration-planificator files
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Published Files
|
|
56
|
+
|
|
57
|
+
Only the following files are included in the published package (defined in `package.json` `files` field):
|
|
58
|
+
|
|
59
|
+
- `dist/src/` - Compiled TypeScript source
|
|
60
|
+
- `dist/client.bundle.js` - Client-side JavaScript bundle
|
|
61
|
+
- `dist/styles.css` - Compiled CSS styles
|
|
62
|
+
- `README.md` - English documentation
|
|
63
|
+
- `README.fr.md` - French documentation
|
|
64
|
+
- `LICENSE` - License information
|
|
65
|
+
|
|
66
|
+
**No sensitive files** (`.env`, credentials, source maps, test files) are included.
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## 🚨 Reporting a Vulnerability
|
|
71
|
+
|
|
72
|
+
We take security vulnerabilities seriously. If you discover a security issue, please follow responsible disclosure:
|
|
73
|
+
|
|
74
|
+
### Contact Information
|
|
75
|
+
|
|
76
|
+
**Primary Contact:**
|
|
77
|
+
- **Name:** Victor SILVESTRE
|
|
78
|
+
- **Email:** victor.silvestre.dev@gmail.com
|
|
79
|
+
- **Role:** Freelance Software Engineer (FR) - Angular / NodeJS & TypeScript Developer
|
|
80
|
+
|
|
81
|
+
### Reporting Process
|
|
82
|
+
|
|
83
|
+
1. **DO NOT** open a public GitHub issue for security vulnerabilities
|
|
84
|
+
2. Email details to: **victor.silvestre.dev@gmail.com**
|
|
85
|
+
3. Include:
|
|
86
|
+
- Description of the vulnerability
|
|
87
|
+
- Steps to reproduce
|
|
88
|
+
- Potential impact
|
|
89
|
+
- Suggested fix (if any)
|
|
90
|
+
|
|
91
|
+
### Response Timeline
|
|
92
|
+
|
|
93
|
+
- **Initial Response:** Within 48 hours
|
|
94
|
+
- **Status Update:** Within 7 days
|
|
95
|
+
- **Fix & Disclosure:** Coordinated with reporter
|
|
96
|
+
|
|
97
|
+
### What to Expect
|
|
98
|
+
|
|
99
|
+
1. Acknowledgment of your report within 48 hours
|
|
100
|
+
2. Investigation and validation of the issue
|
|
101
|
+
3. Development of a fix (if confirmed)
|
|
102
|
+
4. Coordinated disclosure timeline
|
|
103
|
+
5. Credit in release notes (if desired)
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 🔐 Security Best Practices
|
|
108
|
+
|
|
109
|
+
### For Users
|
|
110
|
+
|
|
111
|
+
When using this tool:
|
|
112
|
+
|
|
113
|
+
- ✅ Install from official npm registry: `npm install @silvestv/migration-planificator`
|
|
114
|
+
- ✅ Verify package integrity using `npm audit`
|
|
115
|
+
- ✅ Review generated reports before sharing (may contain file paths/code snippets)
|
|
116
|
+
- ✅ Use specific version pinning in production: `npm install @silvestv/migration-planificator@x.y.z`
|
|
117
|
+
- ⚠️ Avoid running as root/administrator unless necessary
|
|
118
|
+
|
|
119
|
+
### For Contributors
|
|
120
|
+
|
|
121
|
+
When contributing (for future community contributions):
|
|
122
|
+
|
|
123
|
+
- Use `npm audit` to check dependencies for vulnerabilities
|
|
124
|
+
- Follow TypeScript strict mode guidelines
|
|
125
|
+
- Never commit secrets, API keys, or credentials
|
|
126
|
+
- Run tests before submitting: `npm test`
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 📋 Dependencies Security
|
|
131
|
+
|
|
132
|
+
This project uses minimal, well-maintained dependencies:
|
|
133
|
+
|
|
134
|
+
### Production Dependencies
|
|
135
|
+
|
|
136
|
+
- **ts-morph** (^27.0.0) - TypeScript AST manipulation
|
|
137
|
+
- **@angular/compiler** (^20.3.4) - Angular HTML template parsing
|
|
138
|
+
- **chart.js** (^4.4.0) - Client-side chart rendering
|
|
139
|
+
- **tailwindcss** (^4.1.14) - CSS framework
|
|
140
|
+
- **typescript** (^5.9.3) - TypeScript compiler
|
|
141
|
+
|
|
142
|
+
### Security Audits
|
|
143
|
+
|
|
144
|
+
Run regular security audits:
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
# Check for known vulnerabilities
|
|
148
|
+
npm audit
|
|
149
|
+
|
|
150
|
+
# Fix automatically (if possible)
|
|
151
|
+
npm audit fix
|
|
152
|
+
|
|
153
|
+
# View detailed report
|
|
154
|
+
npm audit --json
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## 🏢 License & Liability
|
|
160
|
+
|
|
161
|
+
This software is dual-licensed under:
|
|
162
|
+
|
|
163
|
+
- **AGPL-3.0** (for open-source/community use)
|
|
164
|
+
- **Commercial License** (for business use without AGPL obligations)
|
|
165
|
+
|
|
166
|
+
### Disclaimer
|
|
167
|
+
|
|
168
|
+
This tool is provided **"AS IS"** without warranty of any kind. See [LICENSE](https://github.com/silvestv/migration-planificator-documentation/blob/master/LICENSE) for full terms.
|
|
169
|
+
|
|
170
|
+
### Commercial Support
|
|
171
|
+
|
|
172
|
+
For enterprise security requirements or private security audits:
|
|
173
|
+
|
|
174
|
+
📧 Contact: victor.silvestre.dev@gmail.com
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## 📚 Additional Resources
|
|
179
|
+
|
|
180
|
+
- 📦 [NPM Package](https://www.npmjs.com/package/@silvestv/migration-planificator)
|
|
181
|
+
- 📧 [Contact for Support](mailto:victor.silvestre.dev@gmail.com)
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
**Last Updated:** January 2025
|
|
186
|
+
|
|
187
|
+
© 2025 Victor SILVESTRE - All rights reserved
|