appclean 1.8.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 (154) hide show
  1. package/.github/workflows/publish.yml +41 -0
  2. package/.github/workflows/test.yml +37 -0
  3. package/ACTION_CHECKLIST.md +342 -0
  4. package/APPCLEAN_SUMMARY.md +309 -0
  5. package/CHANGELOG.md +205 -0
  6. package/CODE_OF_CONDUCT.md +49 -0
  7. package/CODE_REVIEW_REPORT.md +447 -0
  8. package/COMMUNITY_POSTS.md +307 -0
  9. package/CONTRIBUTING.md +121 -0
  10. package/DEPLOYMENT_GUIDE.md +345 -0
  11. package/DEPLOYMENT_STATUS.md +182 -0
  12. package/EXECUTIVE_REPORT.md +393 -0
  13. package/GITHUB_OPTIMIZATION.md +383 -0
  14. package/INDEX.md +165 -0
  15. package/LICENSE +21 -0
  16. package/MARKETING_SUMMARY.md +352 -0
  17. package/NPM_PACKAGE_OPTIMIZATION.md +281 -0
  18. package/NPM_PUBLISH.md +116 -0
  19. package/PROJECT_SUMMARY.txt +249 -0
  20. package/QUICKSTART.md +219 -0
  21. package/README.md +548 -0
  22. package/SECURITY.md +104 -0
  23. package/SETUP_GITHUB.md +237 -0
  24. package/TESTING_SUMMARY.md +379 -0
  25. package/dist/core/appUpdateChecker.d.ts +23 -0
  26. package/dist/core/appUpdateChecker.d.ts.map +1 -0
  27. package/dist/core/appUpdateChecker.js +159 -0
  28. package/dist/core/appUpdateChecker.js.map +1 -0
  29. package/dist/core/detector.d.ts +13 -0
  30. package/dist/core/detector.d.ts.map +1 -0
  31. package/dist/core/detector.js +99 -0
  32. package/dist/core/detector.js.map +1 -0
  33. package/dist/core/duplicateFileFinder.d.ts +14 -0
  34. package/dist/core/duplicateFileFinder.d.ts.map +1 -0
  35. package/dist/core/duplicateFileFinder.js +80 -0
  36. package/dist/core/duplicateFileFinder.js.map +1 -0
  37. package/dist/core/orphanedDependencyDetector.d.ts +19 -0
  38. package/dist/core/orphanedDependencyDetector.d.ts.map +1 -0
  39. package/dist/core/orphanedDependencyDetector.js +148 -0
  40. package/dist/core/orphanedDependencyDetector.js.map +1 -0
  41. package/dist/core/performanceOptimizer.d.ts +37 -0
  42. package/dist/core/performanceOptimizer.d.ts.map +1 -0
  43. package/dist/core/performanceOptimizer.js +128 -0
  44. package/dist/core/performanceOptimizer.js.map +1 -0
  45. package/dist/core/permissionHandler.d.ts +9 -0
  46. package/dist/core/permissionHandler.d.ts.map +1 -0
  47. package/dist/core/permissionHandler.js +89 -0
  48. package/dist/core/permissionHandler.js.map +1 -0
  49. package/dist/core/pluginSystem.d.ts +39 -0
  50. package/dist/core/pluginSystem.d.ts.map +1 -0
  51. package/dist/core/pluginSystem.js +120 -0
  52. package/dist/core/pluginSystem.js.map +1 -0
  53. package/dist/core/removalRecorder.d.ts +32 -0
  54. package/dist/core/removalRecorder.d.ts.map +1 -0
  55. package/dist/core/removalRecorder.js +79 -0
  56. package/dist/core/removalRecorder.js.map +1 -0
  57. package/dist/core/remover.d.ts +15 -0
  58. package/dist/core/remover.d.ts.map +1 -0
  59. package/dist/core/remover.js +225 -0
  60. package/dist/core/remover.js.map +1 -0
  61. package/dist/core/reportGenerator.d.ts +9 -0
  62. package/dist/core/reportGenerator.d.ts.map +1 -0
  63. package/dist/core/reportGenerator.js +328 -0
  64. package/dist/core/reportGenerator.js.map +1 -0
  65. package/dist/core/scheduledCleanup.d.ts +38 -0
  66. package/dist/core/scheduledCleanup.d.ts.map +1 -0
  67. package/dist/core/scheduledCleanup.js +127 -0
  68. package/dist/core/scheduledCleanup.js.map +1 -0
  69. package/dist/core/serviceFileDetector.d.ts +18 -0
  70. package/dist/core/serviceFileDetector.d.ts.map +1 -0
  71. package/dist/core/serviceFileDetector.js +136 -0
  72. package/dist/core/serviceFileDetector.js.map +1 -0
  73. package/dist/core/verificationModule.d.ts +14 -0
  74. package/dist/core/verificationModule.d.ts.map +1 -0
  75. package/dist/core/verificationModule.js +102 -0
  76. package/dist/core/verificationModule.js.map +1 -0
  77. package/dist/index.d.ts +3 -0
  78. package/dist/index.d.ts.map +1 -0
  79. package/dist/index.js +333 -0
  80. package/dist/index.js.map +1 -0
  81. package/dist/managers/brewManager.d.ts +10 -0
  82. package/dist/managers/brewManager.d.ts.map +1 -0
  83. package/dist/managers/brewManager.js +130 -0
  84. package/dist/managers/brewManager.js.map +1 -0
  85. package/dist/managers/customManager.d.ts +8 -0
  86. package/dist/managers/customManager.d.ts.map +1 -0
  87. package/dist/managers/customManager.js +139 -0
  88. package/dist/managers/customManager.js.map +1 -0
  89. package/dist/managers/linuxManager.d.ts +10 -0
  90. package/dist/managers/linuxManager.d.ts.map +1 -0
  91. package/dist/managers/linuxManager.js +191 -0
  92. package/dist/managers/linuxManager.js.map +1 -0
  93. package/dist/managers/npmManager.d.ts +10 -0
  94. package/dist/managers/npmManager.d.ts.map +1 -0
  95. package/dist/managers/npmManager.js +119 -0
  96. package/dist/managers/npmManager.js.map +1 -0
  97. package/dist/types/index.d.ts +44 -0
  98. package/dist/types/index.d.ts.map +1 -0
  99. package/dist/types/index.js +3 -0
  100. package/dist/types/index.js.map +1 -0
  101. package/dist/ui/guiServer.d.ts +10 -0
  102. package/dist/ui/guiServer.d.ts.map +1 -0
  103. package/dist/ui/guiServer.js +134 -0
  104. package/dist/ui/guiServer.js.map +1 -0
  105. package/dist/ui/menu.d.ts +6 -0
  106. package/dist/ui/menu.d.ts.map +1 -0
  107. package/dist/ui/menu.js +93 -0
  108. package/dist/ui/menu.js.map +1 -0
  109. package/dist/ui/prompts.d.ts +13 -0
  110. package/dist/ui/prompts.d.ts.map +1 -0
  111. package/dist/ui/prompts.js +161 -0
  112. package/dist/ui/prompts.js.map +1 -0
  113. package/dist/utils/filesystem.d.ts +13 -0
  114. package/dist/utils/filesystem.d.ts.map +1 -0
  115. package/dist/utils/filesystem.js +152 -0
  116. package/dist/utils/filesystem.js.map +1 -0
  117. package/dist/utils/logger.d.ts +12 -0
  118. package/dist/utils/logger.d.ts.map +1 -0
  119. package/dist/utils/logger.js +49 -0
  120. package/dist/utils/logger.js.map +1 -0
  121. package/dist/utils/platform.d.ts +9 -0
  122. package/dist/utils/platform.d.ts.map +1 -0
  123. package/dist/utils/platform.js +75 -0
  124. package/dist/utils/platform.js.map +1 -0
  125. package/jest.config.js +20 -0
  126. package/logo.svg +60 -0
  127. package/package.json +55 -0
  128. package/setup-github.sh +125 -0
  129. package/src/core/appUpdateChecker.ts +220 -0
  130. package/src/core/detector.ts +133 -0
  131. package/src/core/duplicateFileFinder.ts +113 -0
  132. package/src/core/orphanedDependencyDetector.ts +195 -0
  133. package/src/core/performanceOptimizer.ts +209 -0
  134. package/src/core/permissionHandler.ts +121 -0
  135. package/src/core/pluginSystem.ts +194 -0
  136. package/src/core/removalRecorder.ts +146 -0
  137. package/src/core/remover.ts +280 -0
  138. package/src/core/reportGenerator.ts +354 -0
  139. package/src/core/scheduledCleanup.ts +204 -0
  140. package/src/core/serviceFileDetector.ts +181 -0
  141. package/src/core/verificationModule.ts +140 -0
  142. package/src/index.ts +449 -0
  143. package/src/managers/brewManager.ts +149 -0
  144. package/src/managers/customManager.ts +167 -0
  145. package/src/managers/linuxManager.ts +210 -0
  146. package/src/managers/npmManager.ts +137 -0
  147. package/src/types/index.ts +59 -0
  148. package/src/ui/guiServer.ts +155 -0
  149. package/src/ui/menu.ts +100 -0
  150. package/src/ui/prompts.ts +177 -0
  151. package/src/utils/filesystem.ts +145 -0
  152. package/src/utils/logger.ts +48 -0
  153. package/src/utils/platform.ts +75 -0
  154. package/tsconfig.json +20 -0
package/README.md ADDED
@@ -0,0 +1,548 @@
1
+ <div align="center">
2
+ <img src="./logo.svg" alt="AppClean Logo" width="120" height="120">
3
+
4
+ # AppClean
5
+
6
+ > **Intelligently find and safely uninstall applications with all their artifacts**
7
+
8
+ [![version](https://img.shields.io/badge/version-1.8.0-blue?style=flat-square)](https://github.com/praveenkay/AppClean/releases)
9
+ [![license](https://img.shields.io/badge/license-MIT-green?style=flat-square)](LICENSE)
10
+ [![platforms](https://img.shields.io/badge/platforms-macOS%20%7C%20Linux%20%7C%20Windows-lightgrey?style=flat-square)](README.md)
11
+ [![npm](https://img.shields.io/npm/dm/appclean?style=flat-square)](https://npmjs.com/package/appclean)
12
+
13
+ **A powerful, cross-platform CLI tool for developers and system administrators**
14
+
15
+ </div>
16
+
17
+ ## ✨ Features
18
+
19
+ ### Core Features
20
+ - **🔍 Smart Detection** — Finds apps installed via npm, yarn, pnpm, Homebrew, apt, yum, dnf, and custom installers
21
+ - **📊 Deep Analysis** — Shows installation method, version, and locates all related artifacts
22
+ - **🛡️ Safe Removal** — Dry-run preview, double confirmation, and optional backups
23
+ - **💾 Backup & Restore** — Create backups before deletion and restore if needed
24
+ - **⚡ Fast & Efficient** — Scans and analyzes systems in seconds
25
+ - **🖥️ Cross-Platform** — macOS (Intel & Apple Silicon), Linux, and Windows
26
+ - **🎨 Beautiful CLI** — Interactive menu-driven interface with colors and animations
27
+
28
+ ### Advanced Features (v1.1.0+)
29
+ - **🔐 Elevated Permissions** — Automatic sudo/admin detection and prompts
30
+ - **🔧 Service File Detection** — Finds LaunchAgent/LaunchDaemon and systemd services
31
+ - **📋 Operation Recording** — Complete removal history tracking and reporting
32
+ - **✓ Verification** — Post-removal verification to ensure complete uninstall
33
+ - **📄 Professional Reports** — HTML and text reports with legal disclaimers
34
+
35
+ ### Latest Features (v1.2.0 - v1.8.0)
36
+ - **🎨 GUI Application** — Modern web-based interface (v1.2.0)
37
+ - **🔍 Duplicate File Finder** — Find and remove duplicate files (v1.3.0)
38
+ - **📦 Orphaned Dependency Detector** — Identify unused npm packages (v1.4.0)
39
+ - **🔌 Plugin System** — Extensible architecture for custom detectors (v1.5.0)
40
+ - **⏰ Scheduled Cleanup** — Automate regular cleanup tasks (v1.6.0)
41
+ - **📈 App Update Checker** — Check for available updates (v1.7.0)
42
+ - **🚀 Performance Optimizer** — Multi-threaded scanning & caching (v1.8.0)
43
+
44
+ ## 🚀 Installation
45
+
46
+ ### Quick Install (npm)
47
+
48
+ ```bash
49
+ npm install -g appclean
50
+ ```
51
+
52
+ ### From Source
53
+
54
+ ```bash
55
+ git clone https://github.com/praveenkay/AppClean.git
56
+ cd AppClean
57
+ npm install
58
+ npm run build
59
+ npm install -g .
60
+ ```
61
+
62
+ **Requirements:** Node.js 16+ and npm 7+
63
+
64
+ ## 💻 Usage
65
+
66
+ ### Interactive Mode
67
+
68
+ Simply run:
69
+
70
+ ```bash
71
+ appclean
72
+ ```
73
+
74
+ Then use arrow keys to navigate and select actions:
75
+ - 🔍 Search for applications
76
+ - 📋 List all installed apps
77
+ - 📊 View app details and artifacts
78
+ - 🗑️ Remove applications safely
79
+
80
+ ### Command Mode
81
+
82
+ ```bash
83
+ # Search for an app
84
+ appclean search webpack
85
+
86
+ # List all applications
87
+ appclean list
88
+
89
+ # Analyze app artifacts before removal
90
+ appclean analyze webpack
91
+
92
+ # Preview removal (no files deleted)
93
+ appclean remove webpack --dry-run
94
+
95
+ # Remove with backup
96
+ appclean remove webpack --backup
97
+
98
+ # Remove without confirmations
99
+ appclean remove webpack --force
100
+ ```
101
+
102
+ ## Supported Package Managers
103
+
104
+ | Manager | Platform | Support |
105
+ |---------|----------|---------|
106
+ | npm | All | ✅ |
107
+ | yarn | All | ✅ |
108
+ | pnpm | All | ✅ |
109
+ | Homebrew | macOS, Linux | ✅ |
110
+ | apt | Linux | ✅ |
111
+ | yum | Linux | ✅ |
112
+ | dnf | Linux | ✅ |
113
+ | Custom Scripts | All | ✅ |
114
+
115
+ ## How It Works
116
+
117
+ AppClean intelligently detects and removes applications by:
118
+
119
+ 1. **Scanning Installation Locations**
120
+ - Checks npm/yarn/pnpm global directories
121
+ - Queries Homebrew installation database
122
+ - Searches Linux package manager databases
123
+ - Scans custom binary locations
124
+
125
+ 2. **Locating Related Files**
126
+ - Configuration files (`~/.config`, `~/.bashrc`, etc.)
127
+ - Cache directories
128
+ - Data files and logs
129
+ - Service files (systemd, LaunchAgents, etc.)
130
+
131
+ 3. **Safe Removal**
132
+ - Preview all files to be removed with `--dry-run`
133
+ - Create optional backups before deletion
134
+ - Double confirmation before final removal
135
+ - Detailed error reporting
136
+
137
+ ## 📚 Examples
138
+
139
+ ### Interactive Search and Remove
140
+
141
+ ```bash
142
+ $ appclean search webpack
143
+ ℹ Found 1 app(s)
144
+
145
+ ? Select an app to remove: (Use arrow keys)
146
+ ❯ webpack (npm) - v5.89.0
147
+
148
+ ? What would you like to do? (Use arrow keys)
149
+ ❯ 📊 View details and artifacts
150
+ 🗑️ Remove this app
151
+ ⬅️ Back to search
152
+ ```
153
+
154
+ ### Preview Before Removal
155
+
156
+ ```bash
157
+ $ appclean remove webpack --dry-run
158
+
159
+ ℹ Files to be removed:
160
+ binary 512 B /usr/local/bin/webpack
161
+ config 1.2 KB ~/.config/webpack
162
+ cache 15 MB ~/.cache/webpack
163
+ data 2.3 MB ~/.local/share/webpack
164
+ log 512 B ~/.local/share/log/webpack
165
+
166
+ ℹ Total space to be freed: 17.5 MB
167
+
168
+ ✓ This is a preview only. No files were removed.
169
+ ```
170
+
171
+ ### Safe Removal with Backup
172
+
173
+ ```bash
174
+ $ appclean remove webpack --backup
175
+
176
+ ℹ App: webpack
177
+ ℹ Method: npm
178
+ ℹ Version: 5.89.0
179
+
180
+ ? This action cannot be undone. Remove webpack and all its files? (y/N) y
181
+
182
+ ✓ Backup created: ~/.appclean-backups/webpack-2024-01-20T15-30-45.tar.gz
183
+ ✓ Successfully removed webpack (freed 17.5 MB)
184
+ ```
185
+
186
+ ### Check for Duplicate Files
187
+
188
+ ```bash
189
+ $ appclean find-duplicates ~/Documents ~/Downloads
190
+
191
+ ℹ Scanning for duplicate files...
192
+ ✓ Found 3 duplicate groups
193
+ Group 1: report.pdf (2.5 MB)
194
+ - ~/Documents/reports/report.pdf
195
+ - ~/Downloads/report.pdf
196
+
197
+ Group 2: image.png (1.2 MB)
198
+ - ~/Documents/images/image.png
199
+ - ~/Pictures/image.png
200
+
201
+ 💾 Potential space savings: 3.7 MB
202
+ ```
203
+
204
+ ### Check for Updates
205
+
206
+ ```bash
207
+ $ appclean check-updates
208
+
209
+ 📦 webpack: 5.89.0 → Latest: 5.90.0
210
+ npm install -g webpack@latest
211
+
212
+ 📦 typescript: 5.3.3 → Latest: 5.4.0
213
+ npm install -g typescript@latest
214
+
215
+ ✓ Found 2 updates available
216
+ ```
217
+
218
+ ### List All Installed Apps
219
+
220
+ ```bash
221
+ $ appclean list
222
+ ℹ Found 42 app(s)
223
+
224
+ ┌──────────────┬──────────┬──────────┐
225
+ │ Name │ Version │ Method │
226
+ ├──────────────┼──────────┼──────────┤
227
+ │ webpack │ 5.89.0 │ npm │
228
+ │ typescript │ 5.3.3 │ npm │
229
+ │ lodash │ 4.17.21 │ npm │
230
+ │ node │ 20.10.0 │ custom │
231
+ │ git │ 2.43.0 │ brew │
232
+ │ python │ 3.11.7 │ system │
233
+ └──────────────┴──────────┴──────────┘
234
+ ```
235
+
236
+ ## Commands & Options
237
+
238
+ ### Core Commands
239
+ ```bash
240
+ appclean search <query> # Search for installed applications
241
+ appclean list # List all installed applications
242
+ appclean analyze <appName> # Analyze an application and show its artifacts
243
+ appclean remove <appName> # Remove an application
244
+ appclean gui # Launch GUI application (v1.2.0+)
245
+ ```
246
+
247
+ ### Advanced Commands (v1.2.0 - v1.8.0)
248
+ ```bash
249
+ # Duplicate file operations
250
+ appclean find-duplicates [paths] # Find duplicate files (v1.3.0)
251
+
252
+ # Dependency management
253
+ appclean find-orphaned-packages # Find unused npm packages (v1.4.0)
254
+
255
+ # Plugin management
256
+ appclean plugin register <path> # Register custom plugin (v1.5.0)
257
+ appclean plugin list # List installed plugins (v1.5.0)
258
+ appclean plugin enable <name> # Enable plugin (v1.5.0)
259
+
260
+ # Schedule management
261
+ appclean schedule create <app> # Create cleanup schedule (v1.6.0)
262
+ appclean schedule list # List all schedules (v1.6.0)
263
+ appclean schedule delete <id> # Delete schedule (v1.6.0)
264
+
265
+ # Update checking
266
+ appclean check-updates # Check for available updates (v1.7.0)
267
+ appclean update <appName> # Update an application (v1.7.0)
268
+
269
+ # Performance
270
+ appclean scan --optimize # Optimize scan performance (v1.8.0)
271
+ appclean clear-cache # Clear scan cache (v1.8.0)
272
+ ```
273
+
274
+ ### Common Options
275
+ ```bash
276
+ --dry-run # Preview without removing files
277
+ --backup # Create backup before removal
278
+ --force # Skip confirmation prompts
279
+ --help # Show help information
280
+ --version # Show version information
281
+ ```
282
+
283
+ ## Safety Features
284
+
285
+ ⚠️ **AppClean prioritizes safety**:
286
+
287
+ - **Dry-run by default**: Use `--dry-run` to preview what will be deleted
288
+ - **Double confirmation**: You'll be asked to confirm twice before actual removal
289
+ - **Backups**: Create optional backups before removing apps
290
+ - **Detailed logging**: See exactly what's being removed
291
+ - **Error reporting**: Clear error messages if something goes wrong
292
+
293
+ ## Latest Features Guide (v1.1.0 - v1.8.0)
294
+
295
+ ### v1.1.0 - Advanced Features
296
+ - **Elevated Permissions**: Automatically detects and requests sudo/admin access
297
+ - **Service File Detection**: Identifies LaunchAgent/LaunchDaemon (macOS) and systemd (Linux) files
298
+ - **User Consent Recording**: Tracks all removal operations with timestamps
299
+ - **Post-Removal Verification**: Confirms complete app removal via filesystem and commands
300
+ - **Professional Reports**: Generate HTML and text reports with legal disclaimers
301
+
302
+ **Usage:**
303
+ ```bash
304
+ appclean remove app-name # Automatic elevation detection
305
+ appclean remove app-name --backup # Creates backup before removal
306
+ ```
307
+
308
+ ### v1.2.0 - GUI Application
309
+ Modern web-based interface for visual app management.
310
+
311
+ **Usage:**
312
+ ```bash
313
+ appclean gui # Opens GUI at http://localhost:3000
314
+ ```
315
+
316
+ ### v1.3.0 - Duplicate File Finder
317
+ Find and manage duplicate files by SHA256 hash.
318
+
319
+ **Usage:**
320
+ ```bash
321
+ appclean find-duplicates ~/Documents ~/Downloads
322
+ appclean find-duplicates --recursive / # Search entire filesystem
323
+ ```
324
+
325
+ ### v1.4.0 - Orphaned Dependency Detector
326
+ Identify npm packages with no project dependencies.
327
+
328
+ **Usage:**
329
+ ```bash
330
+ appclean find-orphaned-packages # Find all unused packages
331
+ appclean find-orphaned-packages --dry-run # Preview without removal
332
+ ```
333
+
334
+ ### v1.5.0 - Plugin System
335
+ Extend AppClean with custom application detectors.
336
+
337
+ **Usage:**
338
+ ```bash
339
+ appclean plugin register ./my-plugin.js
340
+ appclean plugin list
341
+ appclean plugin enable my-plugin
342
+ appclean plugin config my-plugin --setting value
343
+ ```
344
+
345
+ ### v1.6.0 - Scheduled Cleanup Automation
346
+ Automate cleanup with recurring schedules.
347
+
348
+ **Usage:**
349
+ ```bash
350
+ appclean schedule create webpack --frequency daily
351
+ appclean schedule create node --frequency weekly --backup
352
+ appclean schedule list
353
+ appclean schedule update schedule-id --frequency monthly
354
+ appclean schedule delete schedule-id
355
+ ```
356
+
357
+ ### v1.7.0 - App Update Checker
358
+ Check for available updates across all package managers.
359
+
360
+ **Usage:**
361
+ ```bash
362
+ appclean check-updates # Check all apps
363
+ appclean check-updates webpack # Check specific app
364
+ appclean update webpack # Update app
365
+ ```
366
+
367
+ ### v1.8.0 - Performance Optimizer
368
+ Optimize scanning performance for large systems.
369
+
370
+ **Features:**
371
+ - Multi-threaded scanning (configurable threads)
372
+ - Intelligent result caching
373
+ - Performance metrics and reporting
374
+ - Automatic optimization recommendations
375
+
376
+ **Usage:**
377
+ ```bash
378
+ appclean scan --optimize # Use optimization settings
379
+ appclean scan --threads 8 # Set thread count
380
+ appclean clear-cache # Clear cached scan results
381
+ ```
382
+
383
+ ## Platform-Specific Notes
384
+
385
+ ### macOS
386
+ - Detects both Intel and Apple Silicon installations
387
+ - Removes LaunchAgents and LaunchDaemons
388
+ - Cleans Application Support directories
389
+ - Handles .plist preference files
390
+
391
+ ### Linux
392
+ - Supports apt, yum, and dnf package managers
393
+ - Removes systemd service files
394
+ - Cleans .config and .local directories
395
+ - Handles /var/log files
396
+
397
+ ### Windows
398
+ - Scans Program Files directories
399
+ - Removes APPDATA and LOCALAPPDATA entries
400
+ - Handles .exe files and shortcuts
401
+
402
+ ## Troubleshooting
403
+
404
+ ### App not found
405
+
406
+ ```bash
407
+ appclean search partial-name
408
+ ```
409
+
410
+ Try searching with a partial name. AppClean searches by substring.
411
+
412
+ ### Permission denied
413
+
414
+ Some system files may require elevated permissions:
415
+
416
+ ```bash
417
+ sudo appclean remove app-name
418
+ ```
419
+
420
+ ### Can't restore backup
421
+
422
+ Backups are stored in `~/.appclean-backups/`:
423
+
424
+ ```bash
425
+ ls ~/.appclean-backups/
426
+ tar -xzf ~/.appclean-backups/app-backup.tar.gz
427
+ ```
428
+
429
+ ## Data & Storage Locations
430
+
431
+ AppClean stores all data in user home directory:
432
+
433
+ | Data | Location | Purpose |
434
+ |------|----------|---------|
435
+ | Backups | `~/.appclean-backups/` | App removal backups |
436
+ | Records | `~/.appclean-records/` | Removal operation history |
437
+ | Reports | `~/.appclean-reports/` | Generated HTML/text reports |
438
+ | Schedules | `~/.appclean-schedules.json` | Cleanup automation schedules |
439
+ | Cache | `~/.appclean-cache/` | Scan result cache |
440
+ | Results | `~/.appclean-cleanup-results/` | Scheduled cleanup results |
441
+
442
+ All data is stored locally on your machine. No cloud upload or external connections.
443
+
444
+ ## Performance Tips
445
+
446
+ ### For Large Systems (100k+ files)
447
+ 1. Use v1.8.0 Performance Optimizer
448
+ 2. Enable result caching: `appclean scan --cache`
449
+ 3. Increase thread count: `appclean scan --threads 8`
450
+ 4. Exclude system directories: `--exclude /usr --exclude /var`
451
+
452
+ ### For Faster Scans
453
+ 1. Use caching: Results are automatically cached
454
+ 2. Skip deep directory scans: Set `--max-depth 5`
455
+ 3. Exclude symlinks: Enabled by default
456
+ 4. Pre-filter patterns: Use exclude patterns
457
+
458
+ ## Development
459
+
460
+ ### Setup
461
+
462
+ ```bash
463
+ git clone https://github.com/YOUR_USERNAME/appclean.git
464
+ cd appclean
465
+ npm install
466
+ ```
467
+
468
+ ### Build
469
+
470
+ ```bash
471
+ npm run build
472
+ ```
473
+
474
+ ### Development Server
475
+
476
+ ```bash
477
+ npm run dev
478
+ ```
479
+
480
+ ### Run Tests
481
+
482
+ ```bash
483
+ npm test
484
+ ```
485
+
486
+ ## Contributing
487
+
488
+ Contributions are welcome! Please:
489
+
490
+ 1. Fork the repository
491
+ 2. Create a feature branch (`git checkout -b feature/amazing-feature`)
492
+ 3. Commit your changes (`git commit -m 'Add amazing feature'`)
493
+ 4. Push to the branch (`git push origin feature/amazing-feature`)
494
+ 5. Open a Pull Request
495
+
496
+ ## Version History & Roadmap
497
+
498
+ ### Completed Features ✅
499
+ - [x] **v1.0.0** - Initial release with core functionality
500
+ - [x] **v1.1.0** - Advanced features (permissions, service detection, reporting)
501
+ - [x] **v1.2.0** - GUI application for all platforms
502
+ - [x] **v1.3.0** - Duplicate file finder
503
+ - [x] **v1.4.0** - Orphaned dependency detection
504
+ - [x] **v1.5.0** - Plugin system for custom detectors
505
+ - [x] **v1.6.0** - Scheduled cleanup automation
506
+ - [x] **v1.7.0** - App update checker
507
+ - [x] **v1.8.0** - Performance optimization for large scans
508
+
509
+ ### Future Roadmap 🚀
510
+ - [ ] Mobile app (iOS/Android)
511
+ - [ ] Advanced caching system
512
+ - [ ] Batch operations
513
+ - [ ] Custom rule builder
514
+ - [ ] System notifications
515
+ - [ ] Cloud sync for schedules
516
+ - [ ] Advanced analytics dashboard
517
+
518
+ ## Known Limitations
519
+
520
+ - System packages may require elevated permissions to remove
521
+ - Some service files may need manual cleanup
522
+ - Snap packages (Linux) are currently not supported
523
+
524
+ ## License
525
+
526
+ MIT License © 2026
527
+
528
+ ## Disclaimer
529
+
530
+ ⚠️ **Use with caution**: This tool permanently deletes files. Always use `--dry-run` first to preview changes.
531
+
532
+ ## 🤝 Support & Community
533
+
534
+ - **🐛 [Report Issues](https://github.com/praveenkay/AppClean/issues)** — Found a bug? Let us know
535
+ - **💬 [Discussions](https://github.com/praveenkay/AppClean/discussions)** — Share ideas and feedback
536
+ - **⭐ [Star on GitHub](https://github.com/praveenkay/AppClean)** — Show your support
537
+
538
+ ## 📄 License
539
+
540
+ MIT License © 2026 [Praveen Kothapally](https://github.com/praveenkay)
541
+
542
+ ---
543
+
544
+ **Built with care for developers and system administrators who value clean systems**
545
+
546
+ <div align="center">
547
+ Made with ❤️ by <a href="https://github.com/praveenkay">Praveen Kothapally</a>
548
+ </div>
package/SECURITY.md ADDED
@@ -0,0 +1,104 @@
1
+ # Security Policy
2
+
3
+ ## Reporting Security Issues
4
+
5
+ **Do not open public GitHub issues for security vulnerabilities.**
6
+
7
+ If you discover a security vulnerability in AppClean, please report it responsibly by:
8
+
9
+ 1. **Email**: Send details to the maintainer via GitHub (check profile for contact)
10
+ 2. **GitHub Security Advisory**: Use GitHub's private vulnerability reporting feature
11
+ 3. **Include**:
12
+ - Description of the vulnerability
13
+ - Steps to reproduce
14
+ - Potential impact
15
+ - Suggested fix (if you have one)
16
+
17
+ We will:
18
+ - Acknowledge receipt within 48 hours
19
+ - Provide a timeline for a fix
20
+ - Credit you in the advisory (unless you prefer anonymity)
21
+ - Work with you on the patch
22
+
23
+ ## Supported Versions
24
+
25
+ | Version | Status | Support |
26
+ |---------|--------|---------|
27
+ | 1.8.x | Current | Security + Bug fixes |
28
+ | 1.7.x | Active | Security fixes only |
29
+ | < 1.7.0 | Outdated | Best effort |
30
+
31
+ ## Security Considerations
32
+
33
+ ### What AppClean Does
34
+ - Reads file system metadata
35
+ - Executes system commands (with your permission)
36
+ - Stores operation records locally
37
+ - Creates backups of removed artifacts
38
+
39
+ ### What AppClean Does NOT Do
40
+ - Modify system files outside designated removal targets
41
+ - Send data to external servers
42
+ - Collect personal information
43
+ - Store sensitive data
44
+
45
+ ### Best Practices
46
+ 1. **Always use `--dry-run` first** to preview what will be removed
47
+ 2. **Create backups** before major removals (`--backup` flag)
48
+ 3. **Run as regular user** when possible, not as root
49
+ 4. **Review removal details** before confirming
50
+ 5. **Keep AppClean updated** to get security patches
51
+
52
+ ## Dependencies
53
+
54
+ AppClean has minimal dependencies:
55
+
56
+ ```json
57
+ {
58
+ "chalk": "^4.1.2",
59
+ "commander": "^11.1.0",
60
+ "inquirer": "^8.2.6",
61
+ "ora": "^5.4.1"
62
+ }
63
+ ```
64
+
65
+ We monitor dependencies for security updates using:
66
+ - npm audit
67
+ - Dependabot
68
+ - Manual reviews
69
+
70
+ ## Data Privacy
71
+
72
+ - **No external connections**: AppClean only reads/writes local files
73
+ - **No data collection**: No usage statistics or telemetry
74
+ - **Transparent operations**: All actions are logged locally
75
+ - **User control**: You control what gets removed
76
+
77
+ ## Disclosure Policy
78
+
79
+ We follow responsible disclosure:
80
+
81
+ 1. Vulnerability reported privately
82
+ 2. We develop and test a fix
83
+ 3. Security patch released
84
+ 4. Public disclosure and credit (with your consent)
85
+ 5. CVE assigned if critical
86
+
87
+ ## Compliance
88
+
89
+ AppClean is designed to:
90
+ - Respect file permissions
91
+ - Work with system security features
92
+ - Maintain audit trails
93
+ - Support air-gapped/offline usage
94
+
95
+ ## Contact
96
+
97
+ For security concerns:
98
+ - Check GitHub profile for current contact method
99
+ - Use GitHub's private vulnerability reporting
100
+ - Refer to this document for process
101
+
102
+ ---
103
+
104
+ **Thank you for helping keep AppClean secure! 🔒**