@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.
Files changed (122) hide show
  1. package/LICENSE +96 -0
  2. package/README.fr.md +359 -0
  3. package/README.md +360 -0
  4. package/SECURITY.md +187 -0
  5. package/dist/client.bundle.js +357 -0
  6. package/dist/src/core/app-analyzer.js +134 -0
  7. package/dist/src/core/ast/matchers/html/html-attribute-matcher.js +86 -0
  8. package/dist/src/core/ast/matchers/html/html-component-matcher.js +40 -0
  9. package/dist/src/core/ast/matchers/html/html-element-matcher.js +54 -0
  10. package/dist/src/core/ast/matchers/html/html-parser.js +58 -0
  11. package/dist/src/core/ast/matchers/html/html-pipe-matcher.js +95 -0
  12. package/dist/src/core/ast/matchers/html/html-text-matcher.js +53 -0
  13. package/dist/src/core/ast/matchers/html/index.js +118 -0
  14. package/dist/src/core/ast/matchers/index.js +377 -0
  15. package/dist/src/core/ast/matchers/ts/collection-matcher.js +51 -0
  16. package/dist/src/core/ast/matchers/ts/context-matcher.js +275 -0
  17. package/dist/src/core/ast/matchers/ts/decorator-matcher.js +465 -0
  18. package/dist/src/core/ast/matchers/ts/expression-matcher.js +237 -0
  19. package/dist/src/core/ast/matchers/ts/file-matcher.js +97 -0
  20. package/dist/src/core/ast/matchers/ts/hierarchy-matcher.js +172 -0
  21. package/dist/src/core/ast/matchers/ts/import-matcher.js +39 -0
  22. package/dist/src/core/ast/matchers/ts/index.js +53 -0
  23. package/dist/src/core/ast/matchers/ts/node-matcher.js +156 -0
  24. package/dist/src/core/ast/matchers/ts/symbol-matcher.js +281 -0
  25. package/dist/src/core/ast/matchers/ts/type-matcher.js +207 -0
  26. package/dist/src/core/ast/matchers/utils/matcher-helpers.js +37 -0
  27. package/dist/src/core/ast/scanner-ast.js +444 -0
  28. package/dist/src/core/project-detector.js +196 -0
  29. package/dist/src/core/project-strategy/index.js +9 -0
  30. package/dist/src/core/project-strategy/nx-strategy.js +130 -0
  31. package/dist/src/core/project-strategy/project-strategy.interface.js +2 -0
  32. package/dist/src/core/project-strategy/standalone-strategy.js +74 -0
  33. package/dist/src/core/project-strategy/strategy-factory.js +15 -0
  34. package/dist/src/core/rules-loader.js +89 -0
  35. package/dist/src/core/scan-reporter.js +316 -0
  36. package/dist/src/core/scanner-delta.js +339 -0
  37. package/dist/src/core/scanner-orchestrator.js +266 -0
  38. package/dist/src/core/scanner-regex.js +298 -0
  39. package/dist/src/core/workload/calculator.js +82 -0
  40. package/dist/src/core/workload/constants.js +15 -0
  41. package/dist/src/core/workload/grouping.js +18 -0
  42. package/dist/src/core/workload/hierarchy-calculator.js +127 -0
  43. package/dist/src/core/workload/index.js +11 -0
  44. package/dist/src/core/workload/metadata.js +20 -0
  45. package/dist/src/core/workload/special-workload.js +101 -0
  46. package/dist/src/core/workload/target-resolver.js +34 -0
  47. package/dist/src/data/angular-migration-rules.json +2337 -0
  48. package/dist/src/data/markdown/angular-migration-17-18.md +408 -0
  49. package/dist/src/data/markdown/angular-migration-18-19.md +600 -0
  50. package/dist/src/data/markdown/angular-migration-19-20.md +521 -0
  51. package/dist/src/data/rules/rearchitecture/rearchitecture-rules.json +66 -0
  52. package/dist/src/data/rules/to18/rules-18-obligatoire.json +374 -0
  53. package/dist/src/data/rules/to18/rules-18-optionnelle.json +188 -0
  54. package/dist/src/data/rules/to18/rules-18-recommande.json +218 -0
  55. package/dist/src/data/rules/to19/rules-19-obligatoire.json +348 -0
  56. package/dist/src/data/rules/to19/rules-19-optionnelle.json +223 -0
  57. package/dist/src/data/rules/to19/rules-19-recommande.json +200 -0
  58. package/dist/src/data/rules/to20/rules-20-obligatoire.json +556 -0
  59. package/dist/src/data/rules/to20/rules-20-optionnelle.json +190 -0
  60. package/dist/src/data/rules/to20/rules-20-recommande.json +151 -0
  61. package/dist/src/index.js +161 -0
  62. package/dist/src/models/chip-config.js +45 -0
  63. package/dist/src/models/interfaces/app-details.interface.js +2 -0
  64. package/dist/src/models/interfaces/ast-interfaces.js +5 -0
  65. package/dist/src/models/interfaces/ast-pattern.interface.js +2 -0
  66. package/dist/src/models/interfaces/client-interfaces.js +6 -0
  67. package/dist/src/models/interfaces/detection-stats.interface.js +2 -0
  68. package/dist/src/models/interfaces/html-match.interface.js +2 -0
  69. package/dist/src/models/interfaces/html-report-data.interface.js +2 -0
  70. package/dist/src/models/interfaces/lib-details.interface.js +2 -0
  71. package/dist/src/models/interfaces/migration-rules.interface.js +2 -0
  72. package/dist/src/models/interfaces/parsed-args.interface.js +2 -0
  73. package/dist/src/models/interfaces/project-info.interface.js +2 -0
  74. package/dist/src/models/interfaces/project-overview-data.interface.js +2 -0
  75. package/dist/src/models/interfaces/rule-match.interface.js +2 -0
  76. package/dist/src/models/interfaces/rule.interface.js +2 -0
  77. package/dist/src/models/interfaces/rules-by-priority.interface.js +2 -0
  78. package/dist/src/models/interfaces/scanner-comparison.interface.js +2 -0
  79. package/dist/src/models/interfaces/special-workload.interface.js +2 -0
  80. package/dist/src/models/interfaces/workload-report.interface.js +2 -0
  81. package/dist/src/models/types/build-block-blob.type.js +2 -0
  82. package/dist/src/models/types/migration-version.type.js +2 -0
  83. package/dist/src/models/types/project-type.type.js +2 -0
  84. package/dist/src/models/types/risk-level.type.js +2 -0
  85. package/dist/src/models/types/rule-category.type.js +2 -0
  86. package/dist/src/models/types/rule-priority.type.js +2 -0
  87. package/dist/src/models/types/rule-workload-type.type.js +2 -0
  88. package/dist/src/templates/landing/applications-analyzed.template.js +18 -0
  89. package/dist/src/templates/landing/card-app-info.template.js +63 -0
  90. package/dist/src/templates/landing/card-lib-info.template.js +67 -0
  91. package/dist/src/templates/landing/libs-analyzed.template.js +22 -0
  92. package/dist/src/templates/landing/nx-summary.template.js +115 -0
  93. package/dist/src/templates/landing/project-overview.template.js +27 -0
  94. package/dist/src/templates/page/index-page.template.js +95 -0
  95. package/dist/src/templates/page/main.template.js +83 -0
  96. package/dist/src/templates/page/migration-guide.template.js +175 -0
  97. package/dist/src/templates/page/workload-report.template.js +53 -0
  98. package/dist/src/templates/workload/dashboard.template.js +184 -0
  99. package/dist/src/templates/workload/filters-panel.template.js +215 -0
  100. package/dist/src/templates/workload/guide-rule-card.template.js +107 -0
  101. package/dist/src/templates/workload/hierarchy-nx.template.js +104 -0
  102. package/dist/src/templates/workload/hierarchy-shared.js +163 -0
  103. package/dist/src/templates/workload/hierarchy-standalone.template.js +36 -0
  104. package/dist/src/templates/workload/hierarchy.template.js +35 -0
  105. package/dist/src/templates/workload/rule-modal.template.js +280 -0
  106. package/dist/src/utils/core/args-parser.js +123 -0
  107. package/dist/src/utils/core/array-helpers.js +18 -0
  108. package/dist/src/utils/core/ast-helpers.js +99 -0
  109. package/dist/src/utils/core/file-helpers.js +109 -0
  110. package/dist/src/utils/core/html-helpers.js +36 -0
  111. package/dist/src/utils/core/index.js +28 -0
  112. package/dist/src/utils/core/logger.js +38 -0
  113. package/dist/src/utils/core/rule-helpers.js +15 -0
  114. package/dist/src/utils/core/workload-formatter.js +6 -0
  115. package/dist/src/utils/shared/array-helpers.js +25 -0
  116. package/dist/src/utils/shared/date-helpers.js +109 -0
  117. package/dist/src/utils/shared/html-helpers.js +37 -0
  118. package/dist/src/utils/shared/index.js +25 -0
  119. package/dist/src/utils/shared/rule-helpers.js +20 -0
  120. package/dist/src/utils/shared/time-formatters.js +76 -0
  121. package/dist/styles.css +2 -0
  122. 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
+ [![npm version](https://img.shields.io/npm/v/@silvestv/migration-planificator.svg)](https://www.npmjs.com/package/@silvestv/migration-planificator)
8
+ [![npm downloads](https://img.shields.io/npm/dm/@silvestv/migration-planificator.svg)](https://www.npmjs.com/package/@silvestv/migration-planificator)
9
+ [![Node.js](https://img.shields.io/badge/node-%3E%3D20.0.0-brightgreen)](https://nodejs.org/)
10
+ [![TypeScript](https://img.shields.io/badge/typescript-5.9-blue)](https://www.typescriptlang.org/)
11
+ [![Tests](https://img.shields.io/badge/tests-451%20passing-success)](./tests)
12
+ [![License](https://img.shields.io/badge/license-AGPL--3.0%20OR%20Commercial-blue)](./LICENSE)
13
+ [![Status](https://img.shields.io/badge/status-alpha-orange)](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