appclean 1.8.0 → 2.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 (211) hide show
  1. package/GUI_IMPLEMENTATION_STATUS.md +143 -0
  2. package/MD_Files/INDEX.md +51 -0
  3. package/MD_Files/PUBLICATION_SUCCESS_REPORT.md +227 -0
  4. package/PHASE2_COMPLETION.md +281 -0
  5. package/PHASE3_COMPLETION.md +364 -0
  6. package/README.md +446 -376
  7. package/assets/logo.svg +34 -0
  8. package/dist/core/appUpdateChecker.js +12 -16
  9. package/dist/core/appUpdateChecker.js.map +1 -1
  10. package/dist/core/detector.js +14 -18
  11. package/dist/core/detector.js.map +1 -1
  12. package/dist/core/duplicateFileFinder.js +12 -19
  13. package/dist/core/duplicateFileFinder.js.map +1 -1
  14. package/dist/core/orphanedDependencyDetector.js +19 -26
  15. package/dist/core/orphanedDependencyDetector.js.map +1 -1
  16. package/dist/core/performanceOptimizer.js +6 -10
  17. package/dist/core/performanceOptimizer.js.map +1 -1
  18. package/dist/core/permissionHandler.js +21 -25
  19. package/dist/core/permissionHandler.js.map +1 -1
  20. package/dist/core/pluginSystem.js +9 -13
  21. package/dist/core/pluginSystem.js.map +1 -1
  22. package/dist/core/removalRecorder.js +12 -19
  23. package/dist/core/removalRecorder.js.map +1 -1
  24. package/dist/core/remover.js +59 -66
  25. package/dist/core/remover.js.map +1 -1
  26. package/dist/core/reportGenerator.d.ts +1 -1
  27. package/dist/core/reportGenerator.d.ts.map +1 -1
  28. package/dist/core/reportGenerator.js +27 -34
  29. package/dist/core/reportGenerator.js.map +1 -1
  30. package/dist/core/scheduledCleanup.js +23 -30
  31. package/dist/core/scheduledCleanup.js.map +1 -1
  32. package/dist/core/serviceFileDetector.js +24 -31
  33. package/dist/core/serviceFileDetector.js.map +1 -1
  34. package/dist/core/verificationModule.js +10 -14
  35. package/dist/core/verificationModule.js.map +1 -1
  36. package/dist/index.js +190 -90
  37. package/dist/index.js.map +1 -1
  38. package/dist/managers/brewManager.d.ts.map +1 -1
  39. package/dist/managers/brewManager.js +35 -41
  40. package/dist/managers/brewManager.js.map +1 -1
  41. package/dist/managers/customManager.d.ts +2 -1
  42. package/dist/managers/customManager.d.ts.map +1 -1
  43. package/dist/managers/customManager.js +79 -53
  44. package/dist/managers/customManager.js.map +1 -1
  45. package/dist/managers/linuxManager.js +29 -36
  46. package/dist/managers/linuxManager.js.map +1 -1
  47. package/dist/managers/npmManager.js +27 -34
  48. package/dist/managers/npmManager.js.map +1 -1
  49. package/dist/types/index.js +1 -2
  50. package/dist/ui/client/api/client.d.ts +24 -0
  51. package/dist/ui/client/api/client.d.ts.map +1 -0
  52. package/dist/ui/client/api/client.js +96 -0
  53. package/dist/ui/client/api/client.js.map +1 -0
  54. package/dist/ui/client/app.d.ts +7 -0
  55. package/dist/ui/client/app.d.ts.map +1 -0
  56. package/dist/ui/client/app.js +71 -0
  57. package/dist/ui/client/app.js.map +1 -0
  58. package/dist/ui/client/index.html +107 -0
  59. package/dist/ui/client/pages/appDetails.d.ts +8 -0
  60. package/dist/ui/client/pages/appDetails.d.ts.map +1 -0
  61. package/dist/ui/client/pages/appDetails.js +287 -0
  62. package/dist/ui/client/pages/appDetails.js.map +1 -0
  63. package/dist/ui/client/pages/appSearch.d.ts +2 -0
  64. package/dist/ui/client/pages/appSearch.d.ts.map +1 -0
  65. package/dist/ui/client/pages/appSearch.js +210 -0
  66. package/dist/ui/client/pages/appSearch.js.map +1 -0
  67. package/dist/ui/client/pages/dashboard.d.ts +2 -0
  68. package/dist/ui/client/pages/dashboard.d.ts.map +1 -0
  69. package/dist/ui/client/pages/dashboard.js +154 -0
  70. package/dist/ui/client/pages/dashboard.js.map +1 -0
  71. package/dist/ui/client/pages/settings.d.ts +7 -0
  72. package/dist/ui/client/pages/settings.d.ts.map +1 -0
  73. package/dist/ui/client/pages/settings.js +279 -0
  74. package/dist/ui/client/pages/settings.js.map +1 -0
  75. package/dist/ui/client/state/appStore.d.ts +38 -0
  76. package/dist/ui/client/state/appStore.d.ts.map +1 -0
  77. package/dist/ui/client/state/appStore.js +121 -0
  78. package/dist/ui/client/state/appStore.js.map +1 -0
  79. package/dist/ui/client/state/dashboardStore.d.ts +31 -0
  80. package/dist/ui/client/state/dashboardStore.d.ts.map +1 -0
  81. package/dist/ui/client/state/dashboardStore.js +70 -0
  82. package/dist/ui/client/state/dashboardStore.js.map +1 -0
  83. package/dist/ui/client/state/uiStore.d.ts +43 -0
  84. package/dist/ui/client/state/uiStore.d.ts.map +1 -0
  85. package/dist/ui/client/state/uiStore.js +109 -0
  86. package/dist/ui/client/state/uiStore.js.map +1 -0
  87. package/dist/ui/client/styles/animations.css +327 -0
  88. package/dist/ui/client/styles/base.css +214 -0
  89. package/dist/ui/client/styles/components.css +400 -0
  90. package/dist/ui/client/styles/layout.css +224 -0
  91. package/dist/ui/client/styles/variables.css +140 -0
  92. package/dist/ui/client/utils/events.d.ts +19 -0
  93. package/dist/ui/client/utils/events.d.ts.map +1 -0
  94. package/dist/ui/client/utils/events.js +54 -0
  95. package/dist/ui/client/utils/events.js.map +1 -0
  96. package/dist/ui/client/utils/formatting.d.ts +11 -0
  97. package/dist/ui/client/utils/formatting.d.ts.map +1 -0
  98. package/dist/ui/client/utils/formatting.js +104 -0
  99. package/dist/ui/client/utils/formatting.js.map +1 -0
  100. package/dist/ui/client/utils/router.d.ts +25 -0
  101. package/dist/ui/client/utils/router.d.ts.map +1 -0
  102. package/dist/ui/client/utils/router.js +90 -0
  103. package/dist/ui/client/utils/router.js.map +1 -0
  104. package/dist/ui/guiServer.d.ts +8 -1
  105. package/dist/ui/guiServer.d.ts.map +1 -1
  106. package/dist/ui/guiServer.js +148 -110
  107. package/dist/ui/guiServer.js.map +1 -1
  108. package/dist/ui/menu.js +18 -27
  109. package/dist/ui/menu.js.map +1 -1
  110. package/dist/ui/prompts.js +34 -47
  111. package/dist/ui/prompts.js.map +1 -1
  112. package/dist/ui/server/middleware/errorHandler.d.ts +19 -0
  113. package/dist/ui/server/middleware/errorHandler.d.ts.map +1 -0
  114. package/dist/ui/server/middleware/errorHandler.js +100 -0
  115. package/dist/ui/server/middleware/errorHandler.js.map +1 -0
  116. package/dist/ui/server/routes/apps.d.ts +8 -0
  117. package/dist/ui/server/routes/apps.d.ts.map +1 -0
  118. package/dist/ui/server/routes/apps.js +74 -0
  119. package/dist/ui/server/routes/apps.js.map +1 -0
  120. package/dist/ui/server/routes/dashboard.d.ts +4 -0
  121. package/dist/ui/server/routes/dashboard.d.ts.map +1 -0
  122. package/dist/ui/server/routes/dashboard.js +57 -0
  123. package/dist/ui/server/routes/dashboard.js.map +1 -0
  124. package/dist/ui/server/routes/settings.d.ts +6 -0
  125. package/dist/ui/server/routes/settings.d.ts.map +1 -0
  126. package/dist/ui/server/routes/settings.js +31 -0
  127. package/dist/ui/server/routes/settings.js.map +1 -0
  128. package/dist/ui/server/services/appService.d.ts +45 -0
  129. package/dist/ui/server/services/appService.d.ts.map +1 -0
  130. package/dist/ui/server/services/appService.js +114 -0
  131. package/dist/ui/server/services/appService.js.map +1 -0
  132. package/dist/ui/server/services/removalService.d.ts +24 -0
  133. package/dist/ui/server/services/removalService.d.ts.map +1 -0
  134. package/dist/ui/server/services/removalService.js +83 -0
  135. package/dist/ui/server/services/removalService.js.map +1 -0
  136. package/dist/utils/filesystem.js +32 -49
  137. package/dist/utils/filesystem.js.map +1 -1
  138. package/dist/utils/logger.js +9 -18
  139. package/dist/utils/logger.js.map +1 -1
  140. package/dist/utils/platform.js +10 -22
  141. package/dist/utils/platform.js.map +1 -1
  142. package/dist/utils/upgrade.d.ts +22 -0
  143. package/dist/utils/upgrade.d.ts.map +1 -0
  144. package/dist/utils/upgrade.js +94 -0
  145. package/dist/utils/upgrade.js.map +1 -0
  146. package/package.json +4 -2
  147. package/src/core/appUpdateChecker.ts +1 -1
  148. package/src/core/detector.ts +6 -6
  149. package/src/core/duplicateFileFinder.ts +1 -1
  150. package/src/core/orphanedDependencyDetector.ts +2 -2
  151. package/src/core/performanceOptimizer.ts +1 -1
  152. package/src/core/permissionHandler.ts +2 -2
  153. package/src/core/pluginSystem.ts +1 -1
  154. package/src/core/removalRecorder.ts +2 -2
  155. package/src/core/remover.ts +11 -11
  156. package/src/core/reportGenerator.ts +2 -2
  157. package/src/core/scheduledCleanup.ts +2 -2
  158. package/src/core/serviceFileDetector.ts +2 -2
  159. package/src/core/verificationModule.ts +2 -2
  160. package/src/index.ts +133 -6
  161. package/src/managers/brewManager.ts +11 -9
  162. package/src/managers/customManager.ts +71 -30
  163. package/src/managers/linuxManager.ts +3 -3
  164. package/src/managers/npmManager.ts +3 -3
  165. package/src/ui/client/api/client.ts +163 -0
  166. package/src/ui/client/app.ts +121 -0
  167. package/src/ui/client/index.html +107 -0
  168. package/src/ui/client/pages/appDetails.ts +356 -0
  169. package/src/ui/client/pages/appSearch.ts +270 -0
  170. package/src/ui/client/pages/dashboard.ts +189 -0
  171. package/src/ui/client/pages/settings.ts +342 -0
  172. package/src/ui/client/state/appStore.ts +169 -0
  173. package/src/ui/client/state/dashboardStore.ts +113 -0
  174. package/src/ui/client/state/uiStore.ts +166 -0
  175. package/src/ui/client/styles/animations.css +327 -0
  176. package/src/ui/client/styles/base.css +214 -0
  177. package/src/ui/client/styles/components.css +400 -0
  178. package/src/ui/client/styles/layout.css +224 -0
  179. package/src/ui/client/styles/variables.css +140 -0
  180. package/src/ui/client/utils/events.ts +74 -0
  181. package/src/ui/client/utils/formatting.ts +157 -0
  182. package/src/ui/client/utils/router.ts +161 -0
  183. package/src/ui/guiServer.ts +206 -105
  184. package/src/ui/prompts.ts +1 -1
  185. package/src/ui/server/middleware/errorHandler.ts +174 -0
  186. package/src/ui/server/routes/apps.ts +132 -0
  187. package/src/ui/server/routes/dashboard.ts +93 -0
  188. package/src/ui/server/routes/settings.ts +63 -0
  189. package/src/ui/server/services/appService.ts +184 -0
  190. package/src/ui/server/services/removalService.ts +138 -0
  191. package/src/utils/upgrade.ts +143 -0
  192. package/tsconfig.json +3 -2
  193. package/INDEX.md +0 -165
  194. /package/{ACTION_CHECKLIST.md → MD_Files/ACTION_CHECKLIST.md} +0 -0
  195. /package/{APPCLEAN_SUMMARY.md → MD_Files/APPCLEAN_SUMMARY.md} +0 -0
  196. /package/{CHANGELOG.md → MD_Files/CHANGELOG.md} +0 -0
  197. /package/{CODE_OF_CONDUCT.md → MD_Files/CODE_OF_CONDUCT.md} +0 -0
  198. /package/{CODE_REVIEW_REPORT.md → MD_Files/CODE_REVIEW_REPORT.md} +0 -0
  199. /package/{COMMUNITY_POSTS.md → MD_Files/COMMUNITY_POSTS.md} +0 -0
  200. /package/{DEPLOYMENT_GUIDE.md → MD_Files/DEPLOYMENT_GUIDE.md} +0 -0
  201. /package/{DEPLOYMENT_STATUS.md → MD_Files/DEPLOYMENT_STATUS.md} +0 -0
  202. /package/{EXECUTIVE_REPORT.md → MD_Files/EXECUTIVE_REPORT.md} +0 -0
  203. /package/{GITHUB_OPTIMIZATION.md → MD_Files/GITHUB_OPTIMIZATION.md} +0 -0
  204. /package/{MARKETING_SUMMARY.md → MD_Files/MARKETING_SUMMARY.md} +0 -0
  205. /package/{NPM_PACKAGE_OPTIMIZATION.md → MD_Files/NPM_PACKAGE_OPTIMIZATION.md} +0 -0
  206. /package/{NPM_PUBLISH.md → MD_Files/NPM_PUBLISH.md} +0 -0
  207. /package/{PROJECT_SUMMARY.txt → MD_Files/PROJECT_SUMMARY.txt} +0 -0
  208. /package/{QUICKSTART.md → MD_Files/QUICKSTART.md} +0 -0
  209. /package/{SETUP_GITHUB.md → MD_Files/SETUP_GITHUB.md} +0 -0
  210. /package/{TESTING_SUMMARY.md → MD_Files/TESTING_SUMMARY.md} +0 -0
  211. /package/{setup-github.sh → MD_Files/setup-github.sh} +0 -0
@@ -0,0 +1,143 @@
1
+ import { execSync } from 'child_process';
2
+ import { Logger } from './logger.js';
3
+
4
+ export interface VersionInfo {
5
+ current: string;
6
+ latest: string;
7
+ isUpdateAvailable: boolean;
8
+ }
9
+
10
+ export class UpgradeManager {
11
+ private readonly packageName = 'appclean';
12
+ private readonly currentVersion = '1.9.0';
13
+
14
+ /**
15
+ * Get version information from npm registry
16
+ */
17
+ async getVersionInfo(): Promise<VersionInfo> {
18
+ try {
19
+ // Fetch latest version from npm registry
20
+ const output = execSync(
21
+ `npm view ${this.packageName} version --json`,
22
+ { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }
23
+ ).trim();
24
+
25
+ const latestVersion = output.replace(/"/g, '');
26
+ const isUpdateAvailable = this.compareVersions(
27
+ this.currentVersion,
28
+ latestVersion
29
+ );
30
+
31
+ return {
32
+ current: this.currentVersion,
33
+ latest: latestVersion,
34
+ isUpdateAvailable,
35
+ };
36
+ } catch (error) {
37
+ Logger.debug(
38
+ 'Failed to check npm registry: ' + (error as Error).message
39
+ );
40
+ return {
41
+ current: this.currentVersion,
42
+ latest: this.currentVersion,
43
+ isUpdateAvailable: false,
44
+ };
45
+ }
46
+ }
47
+
48
+ /**
49
+ * Compare two semantic versions
50
+ * Returns true if currentVersion < latestVersion
51
+ */
52
+ private compareVersions(current: string, latest: string): boolean {
53
+ const currentParts = current.split('.').map(Number);
54
+ const latestParts = latest.split('.').map(Number);
55
+
56
+ for (let i = 0; i < 3; i++) {
57
+ const curr = currentParts[i] || 0;
58
+ const lat = latestParts[i] || 0;
59
+
60
+ if (lat > curr) return true;
61
+ if (lat < curr) return false;
62
+ }
63
+
64
+ return false;
65
+ }
66
+
67
+ /**
68
+ * Perform upgrade to latest version
69
+ */
70
+ async upgrade(): Promise<{ success: boolean; message: string }> {
71
+ try {
72
+ Logger.info('Checking for updates...');
73
+
74
+ const versionInfo = await this.getVersionInfo();
75
+
76
+ if (!versionInfo.isUpdateAvailable) {
77
+ return {
78
+ success: true,
79
+ message: `AppClean is already up to date (v${versionInfo.current})`,
80
+ };
81
+ }
82
+
83
+ Logger.info(
84
+ `Upgrading from v${versionInfo.current} to v${versionInfo.latest}...`
85
+ );
86
+
87
+ // Install latest version globally
88
+ execSync(`npm install -g ${this.packageName}@latest`, {
89
+ stdio: 'inherit',
90
+ });
91
+
92
+ return {
93
+ success: true,
94
+ message: `Successfully upgraded to v${versionInfo.latest}`,
95
+ };
96
+ } catch (error) {
97
+ const errorMsg = (error as Error).message;
98
+ return {
99
+ success: false,
100
+ message: `Upgrade failed: ${errorMsg}`,
101
+ };
102
+ }
103
+ }
104
+
105
+ /**
106
+ * Get current version
107
+ */
108
+ getCurrentVersion(): string {
109
+ return this.currentVersion;
110
+ }
111
+
112
+ /**
113
+ * Check if update is available without upgrading
114
+ */
115
+ async checkForUpdates(): Promise<VersionInfo> {
116
+ return this.getVersionInfo();
117
+ }
118
+
119
+ /**
120
+ * Uninstall AppClean from the system
121
+ */
122
+ async uninstall(): Promise<{ success: boolean; message: string }> {
123
+ try {
124
+ Logger.info('Uninstalling AppClean...');
125
+
126
+ // Uninstall global npm package
127
+ execSync(`npm uninstall -g ${this.packageName}`, {
128
+ stdio: 'inherit',
129
+ });
130
+
131
+ return {
132
+ success: true,
133
+ message: `AppClean has been successfully uninstalled from your system.`,
134
+ };
135
+ } catch (error) {
136
+ const errorMsg = (error as Error).message;
137
+ return {
138
+ success: false,
139
+ message: `Uninstall failed: ${errorMsg}`,
140
+ };
141
+ }
142
+ }
143
+ }
package/tsconfig.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "compilerOptions": {
3
3
  "target": "ES2020",
4
- "module": "commonjs",
5
- "lib": ["ES2020"],
4
+ "module": "ES2020",
5
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
6
6
  "outDir": "./dist",
7
7
  "rootDir": "./src",
8
+ "moduleResolution": "node",
8
9
  "strict": true,
9
10
  "esModuleInterop": true,
10
11
  "skipLibCheck": true,
package/INDEX.md DELETED
@@ -1,165 +0,0 @@
1
- # 📑 AppClean Documentation Index
2
-
3
- Welcome to AppClean! This index helps you navigate all documentation and resources.
4
-
5
- ## 🚀 Getting Started (Start Here!)
6
-
7
- ### For New Users
8
- 1. **[QUICKSTART.md](QUICKSTART.md)** - Quick start guide and 3-step deployment
9
- 2. **[SETUP_GITHUB.md](SETUP_GITHUB.md)** - Detailed GitHub & npm setup instructions
10
- 3. **[README.md](README.md)** - Full user documentation with examples
11
-
12
- ### For Developers
13
- 1. **[CONTRIBUTING.md](CONTRIBUTING.md)** - Developer guidelines and workflow
14
- 2. **[DEPLOYMENT_GUIDE.md](DEPLOYMENT_GUIDE.md)** - Full deployment checklist
15
- 3. **[APPCLEAN_SUMMARY.md](APPCLEAN_SUMMARY.md)** - Complete technical summary
16
-
17
- ## 📚 Documentation by Purpose
18
-
19
- ### Installation & Setup
20
- | File | Purpose |
21
- |------|---------|
22
- | [QUICKSTART.md](QUICKSTART.md) | Quick start overview |
23
- | [SETUP_GITHUB.md](SETUP_GITHUB.md) | GitHub & npm deployment |
24
- | [setup-github.sh](setup-github.sh) | Automated setup script |
25
-
26
- ### User Documentation
27
- | File | Purpose |
28
- |------|---------|
29
- | [README.md](README.md) | Features, installation, usage, examples |
30
- | [PROJECT_SUMMARY.txt](PROJECT_SUMMARY.txt) | Project overview |
31
- | [APPCLEAN_SUMMARY.md](APPCLEAN_SUMMARY.md) | Detailed summary |
32
-
33
- ### Developer Resources
34
- | File | Purpose |
35
- |------|---------|
36
- | [CONTRIBUTING.md](CONTRIBUTING.md) | How to contribute |
37
- | [DEPLOYMENT_GUIDE.md](DEPLOYMENT_GUIDE.md) | Deployment steps & checklist |
38
- | [CHANGELOG.md](CHANGELOG.md) | Version history & roadmap |
39
-
40
- ### Code & Configuration
41
- | File | Purpose |
42
- |------|---------|
43
- | [package.json](package.json) | Project metadata & dependencies |
44
- | [tsconfig.json](tsconfig.json) | TypeScript configuration |
45
- | [jest.config.js](jest.config.js) | Test configuration |
46
- | [.gitignore](.gitignore) | Git ignore rules |
47
-
48
- ### GitHub Actions
49
- | File | Purpose |
50
- |------|---------|
51
- | [.github/workflows/test.yml](.github/workflows/test.yml) | Automated testing |
52
- | [.github/workflows/publish.yml](.github/workflows/publish.yml) | npm publishing |
53
-
54
- ### License
55
- | File | Purpose |
56
- |------|---------|
57
- | [LICENSE](LICENSE) | MIT License |
58
-
59
- ## 🔍 Quick Navigation
60
-
61
- ### I want to...
62
-
63
- **Deploy to GitHub**
64
- → Read [SETUP_GITHUB.md](SETUP_GITHUB.md)
65
-
66
- **Publish to npm**
67
- → Read [SETUP_GITHUB.md](SETUP_GITHUB.md) (Section: "Setup npm Publishing")
68
-
69
- **Contribute code**
70
- → Read [CONTRIBUTING.md](CONTRIBUTING.md)
71
-
72
- **Understand the project**
73
- → Read [README.md](README.md) then [APPCLEAN_SUMMARY.md](APPCLEAN_SUMMARY.md)
74
-
75
- **Get started quickly**
76
- → Read [QUICKSTART.md](QUICKSTART.md)
77
-
78
- **Set up development environment**
79
- → Read [CONTRIBUTING.md](CONTRIBUTING.md) (Section: "Development Setup")
80
-
81
- ## 📊 Project Structure
82
-
83
- ```
84
- appclean/
85
- ├── src/ # Source code (13 files)
86
- │ ├── index.ts # Main CLI entry point
87
- │ ├── core/
88
- │ │ ├── detector.ts # App detection engine
89
- │ │ └── remover.ts # Safe removal engine
90
- │ ├── managers/
91
- │ │ ├── npmManager.ts # npm/yarn/pnpm
92
- │ │ ├── brewManager.ts # Homebrew
93
- │ │ ├── linuxManager.ts # apt/yum/dnf
94
- │ │ └── customManager.ts # Custom installers
95
- │ ├── ui/
96
- │ │ ├── menu.ts # Interactive menus
97
- │ │ └── prompts.ts # User prompts
98
- │ ├── types/
99
- │ │ └── index.ts # TypeScript types
100
- │ └── utils/
101
- │ ├── platform.ts # Platform detection
102
- │ ├── filesystem.ts # File operations
103
- │ └── logger.ts # Logging
104
- ├── .github/workflows/ # CI/CD workflows
105
- ├── Configuration files # 4 config files
106
- ├── Documentation files # 8+ guides
107
- └── LICENSE # MIT License
108
- ```
109
-
110
- ## 🎯 Deployment Checklist
111
-
112
- - [ ] Read [QUICKSTART.md](QUICKSTART.md)
113
- - [ ] Review [SETUP_GITHUB.md](SETUP_GITHUB.md)
114
- - [ ] Create GitHub repository
115
- - [ ] Update package.json with your info
116
- - [ ] Push code to GitHub
117
- - [ ] Create npm account
118
- - [ ] Publish to npm registry
119
- - [ ] Update GitHub repository topics
120
- - [ ] Add GitHub Actions secret (NPM_TOKEN)
121
-
122
- See [DEPLOYMENT_GUIDE.md](DEPLOYMENT_GUIDE.md) for detailed checklist.
123
-
124
- ## 📖 Recommended Reading Order
125
-
126
- 1. **First Time?** → [QUICKSTART.md](QUICKSTART.md)
127
- 2. **Ready to Deploy?** → [SETUP_GITHUB.md](SETUP_GITHUB.md)
128
- 3. **Want to Understand More?** → [README.md](README.md)
129
- 4. **Contributing Code?** → [CONTRIBUTING.md](CONTRIBUTING.md)
130
- 5. **Need Details?** → [APPCLEAN_SUMMARY.md](APPCLEAN_SUMMARY.md)
131
- 6. **Managing Project?** → [DEPLOYMENT_GUIDE.md](DEPLOYMENT_GUIDE.md)
132
-
133
- ## 🔗 External Links
134
-
135
- - **GitHub**: https://github.com/new (Create repository)
136
- - **npm**: https://www.npmjs.com/signup (Create account)
137
- - **TypeScript**: https://www.typescriptlang.org/docs/
138
- - **Node.js**: https://nodejs.org/
139
-
140
- ## 📞 Support & Questions
141
-
142
- - **Bug Reports**: GitHub Issues
143
- - **Questions**: GitHub Discussions
144
- - **Documentation**: Check files in this directory
145
- - **Help**: See [CONTRIBUTING.md](CONTRIBUTING.md) for development help
146
-
147
- ## ✨ Key Features
148
-
149
- 🔍 **Smart Detection** - Finds apps from 8+ installation methods
150
- 📊 **Deep Analysis** - Locates all related files and artifacts
151
- 🛡️ **Safe Removal** - Dry-run preview and backup support
152
- 🎨 **Beautiful UI** - Interactive menus with colors and animations
153
- 🚀 **Cross-Platform** - Works on macOS, Linux, Windows
154
-
155
- ## 🌟 You're All Set!
156
-
157
- Your AppClean project is production-ready.
158
-
159
- **Next Step:** Open [SETUP_GITHUB.md](SETUP_GITHUB.md) to begin deployment!
160
-
161
- ---
162
-
163
- **Last Updated:** 2024-01-20
164
- **License:** MIT
165
- **Status:** ✅ Ready for Production
File without changes
File without changes
File without changes
File without changes
File without changes