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.
- package/GUI_IMPLEMENTATION_STATUS.md +143 -0
- package/MD_Files/INDEX.md +51 -0
- package/MD_Files/PUBLICATION_SUCCESS_REPORT.md +227 -0
- package/PHASE2_COMPLETION.md +281 -0
- package/PHASE3_COMPLETION.md +364 -0
- package/README.md +446 -376
- package/assets/logo.svg +34 -0
- package/dist/core/appUpdateChecker.js +12 -16
- package/dist/core/appUpdateChecker.js.map +1 -1
- package/dist/core/detector.js +14 -18
- package/dist/core/detector.js.map +1 -1
- package/dist/core/duplicateFileFinder.js +12 -19
- package/dist/core/duplicateFileFinder.js.map +1 -1
- package/dist/core/orphanedDependencyDetector.js +19 -26
- package/dist/core/orphanedDependencyDetector.js.map +1 -1
- package/dist/core/performanceOptimizer.js +6 -10
- package/dist/core/performanceOptimizer.js.map +1 -1
- package/dist/core/permissionHandler.js +21 -25
- package/dist/core/permissionHandler.js.map +1 -1
- package/dist/core/pluginSystem.js +9 -13
- package/dist/core/pluginSystem.js.map +1 -1
- package/dist/core/removalRecorder.js +12 -19
- package/dist/core/removalRecorder.js.map +1 -1
- package/dist/core/remover.js +59 -66
- package/dist/core/remover.js.map +1 -1
- package/dist/core/reportGenerator.d.ts +1 -1
- package/dist/core/reportGenerator.d.ts.map +1 -1
- package/dist/core/reportGenerator.js +27 -34
- package/dist/core/reportGenerator.js.map +1 -1
- package/dist/core/scheduledCleanup.js +23 -30
- package/dist/core/scheduledCleanup.js.map +1 -1
- package/dist/core/serviceFileDetector.js +24 -31
- package/dist/core/serviceFileDetector.js.map +1 -1
- package/dist/core/verificationModule.js +10 -14
- package/dist/core/verificationModule.js.map +1 -1
- package/dist/index.js +190 -90
- package/dist/index.js.map +1 -1
- package/dist/managers/brewManager.d.ts.map +1 -1
- package/dist/managers/brewManager.js +35 -41
- package/dist/managers/brewManager.js.map +1 -1
- package/dist/managers/customManager.d.ts +2 -1
- package/dist/managers/customManager.d.ts.map +1 -1
- package/dist/managers/customManager.js +79 -53
- package/dist/managers/customManager.js.map +1 -1
- package/dist/managers/linuxManager.js +29 -36
- package/dist/managers/linuxManager.js.map +1 -1
- package/dist/managers/npmManager.js +27 -34
- package/dist/managers/npmManager.js.map +1 -1
- package/dist/types/index.js +1 -2
- package/dist/ui/client/api/client.d.ts +24 -0
- package/dist/ui/client/api/client.d.ts.map +1 -0
- package/dist/ui/client/api/client.js +96 -0
- package/dist/ui/client/api/client.js.map +1 -0
- package/dist/ui/client/app.d.ts +7 -0
- package/dist/ui/client/app.d.ts.map +1 -0
- package/dist/ui/client/app.js +71 -0
- package/dist/ui/client/app.js.map +1 -0
- package/dist/ui/client/index.html +107 -0
- package/dist/ui/client/pages/appDetails.d.ts +8 -0
- package/dist/ui/client/pages/appDetails.d.ts.map +1 -0
- package/dist/ui/client/pages/appDetails.js +287 -0
- package/dist/ui/client/pages/appDetails.js.map +1 -0
- package/dist/ui/client/pages/appSearch.d.ts +2 -0
- package/dist/ui/client/pages/appSearch.d.ts.map +1 -0
- package/dist/ui/client/pages/appSearch.js +210 -0
- package/dist/ui/client/pages/appSearch.js.map +1 -0
- package/dist/ui/client/pages/dashboard.d.ts +2 -0
- package/dist/ui/client/pages/dashboard.d.ts.map +1 -0
- package/dist/ui/client/pages/dashboard.js +154 -0
- package/dist/ui/client/pages/dashboard.js.map +1 -0
- package/dist/ui/client/pages/settings.d.ts +7 -0
- package/dist/ui/client/pages/settings.d.ts.map +1 -0
- package/dist/ui/client/pages/settings.js +279 -0
- package/dist/ui/client/pages/settings.js.map +1 -0
- package/dist/ui/client/state/appStore.d.ts +38 -0
- package/dist/ui/client/state/appStore.d.ts.map +1 -0
- package/dist/ui/client/state/appStore.js +121 -0
- package/dist/ui/client/state/appStore.js.map +1 -0
- package/dist/ui/client/state/dashboardStore.d.ts +31 -0
- package/dist/ui/client/state/dashboardStore.d.ts.map +1 -0
- package/dist/ui/client/state/dashboardStore.js +70 -0
- package/dist/ui/client/state/dashboardStore.js.map +1 -0
- package/dist/ui/client/state/uiStore.d.ts +43 -0
- package/dist/ui/client/state/uiStore.d.ts.map +1 -0
- package/dist/ui/client/state/uiStore.js +109 -0
- package/dist/ui/client/state/uiStore.js.map +1 -0
- package/dist/ui/client/styles/animations.css +327 -0
- package/dist/ui/client/styles/base.css +214 -0
- package/dist/ui/client/styles/components.css +400 -0
- package/dist/ui/client/styles/layout.css +224 -0
- package/dist/ui/client/styles/variables.css +140 -0
- package/dist/ui/client/utils/events.d.ts +19 -0
- package/dist/ui/client/utils/events.d.ts.map +1 -0
- package/dist/ui/client/utils/events.js +54 -0
- package/dist/ui/client/utils/events.js.map +1 -0
- package/dist/ui/client/utils/formatting.d.ts +11 -0
- package/dist/ui/client/utils/formatting.d.ts.map +1 -0
- package/dist/ui/client/utils/formatting.js +104 -0
- package/dist/ui/client/utils/formatting.js.map +1 -0
- package/dist/ui/client/utils/router.d.ts +25 -0
- package/dist/ui/client/utils/router.d.ts.map +1 -0
- package/dist/ui/client/utils/router.js +90 -0
- package/dist/ui/client/utils/router.js.map +1 -0
- package/dist/ui/guiServer.d.ts +8 -1
- package/dist/ui/guiServer.d.ts.map +1 -1
- package/dist/ui/guiServer.js +148 -110
- package/dist/ui/guiServer.js.map +1 -1
- package/dist/ui/menu.js +18 -27
- package/dist/ui/menu.js.map +1 -1
- package/dist/ui/prompts.js +34 -47
- package/dist/ui/prompts.js.map +1 -1
- package/dist/ui/server/middleware/errorHandler.d.ts +19 -0
- package/dist/ui/server/middleware/errorHandler.d.ts.map +1 -0
- package/dist/ui/server/middleware/errorHandler.js +100 -0
- package/dist/ui/server/middleware/errorHandler.js.map +1 -0
- package/dist/ui/server/routes/apps.d.ts +8 -0
- package/dist/ui/server/routes/apps.d.ts.map +1 -0
- package/dist/ui/server/routes/apps.js +74 -0
- package/dist/ui/server/routes/apps.js.map +1 -0
- package/dist/ui/server/routes/dashboard.d.ts +4 -0
- package/dist/ui/server/routes/dashboard.d.ts.map +1 -0
- package/dist/ui/server/routes/dashboard.js +57 -0
- package/dist/ui/server/routes/dashboard.js.map +1 -0
- package/dist/ui/server/routes/settings.d.ts +6 -0
- package/dist/ui/server/routes/settings.d.ts.map +1 -0
- package/dist/ui/server/routes/settings.js +31 -0
- package/dist/ui/server/routes/settings.js.map +1 -0
- package/dist/ui/server/services/appService.d.ts +45 -0
- package/dist/ui/server/services/appService.d.ts.map +1 -0
- package/dist/ui/server/services/appService.js +114 -0
- package/dist/ui/server/services/appService.js.map +1 -0
- package/dist/ui/server/services/removalService.d.ts +24 -0
- package/dist/ui/server/services/removalService.d.ts.map +1 -0
- package/dist/ui/server/services/removalService.js +83 -0
- package/dist/ui/server/services/removalService.js.map +1 -0
- package/dist/utils/filesystem.js +32 -49
- package/dist/utils/filesystem.js.map +1 -1
- package/dist/utils/logger.js +9 -18
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/platform.js +10 -22
- package/dist/utils/platform.js.map +1 -1
- package/dist/utils/upgrade.d.ts +22 -0
- package/dist/utils/upgrade.d.ts.map +1 -0
- package/dist/utils/upgrade.js +94 -0
- package/dist/utils/upgrade.js.map +1 -0
- package/package.json +4 -2
- package/src/core/appUpdateChecker.ts +1 -1
- package/src/core/detector.ts +6 -6
- package/src/core/duplicateFileFinder.ts +1 -1
- package/src/core/orphanedDependencyDetector.ts +2 -2
- package/src/core/performanceOptimizer.ts +1 -1
- package/src/core/permissionHandler.ts +2 -2
- package/src/core/pluginSystem.ts +1 -1
- package/src/core/removalRecorder.ts +2 -2
- package/src/core/remover.ts +11 -11
- package/src/core/reportGenerator.ts +2 -2
- package/src/core/scheduledCleanup.ts +2 -2
- package/src/core/serviceFileDetector.ts +2 -2
- package/src/core/verificationModule.ts +2 -2
- package/src/index.ts +133 -6
- package/src/managers/brewManager.ts +11 -9
- package/src/managers/customManager.ts +71 -30
- package/src/managers/linuxManager.ts +3 -3
- package/src/managers/npmManager.ts +3 -3
- package/src/ui/client/api/client.ts +163 -0
- package/src/ui/client/app.ts +121 -0
- package/src/ui/client/index.html +107 -0
- package/src/ui/client/pages/appDetails.ts +356 -0
- package/src/ui/client/pages/appSearch.ts +270 -0
- package/src/ui/client/pages/dashboard.ts +189 -0
- package/src/ui/client/pages/settings.ts +342 -0
- package/src/ui/client/state/appStore.ts +169 -0
- package/src/ui/client/state/dashboardStore.ts +113 -0
- package/src/ui/client/state/uiStore.ts +166 -0
- package/src/ui/client/styles/animations.css +327 -0
- package/src/ui/client/styles/base.css +214 -0
- package/src/ui/client/styles/components.css +400 -0
- package/src/ui/client/styles/layout.css +224 -0
- package/src/ui/client/styles/variables.css +140 -0
- package/src/ui/client/utils/events.ts +74 -0
- package/src/ui/client/utils/formatting.ts +157 -0
- package/src/ui/client/utils/router.ts +161 -0
- package/src/ui/guiServer.ts +206 -105
- package/src/ui/prompts.ts +1 -1
- package/src/ui/server/middleware/errorHandler.ts +174 -0
- package/src/ui/server/routes/apps.ts +132 -0
- package/src/ui/server/routes/dashboard.ts +93 -0
- package/src/ui/server/routes/settings.ts +63 -0
- package/src/ui/server/services/appService.ts +184 -0
- package/src/ui/server/services/removalService.ts +138 -0
- package/src/utils/upgrade.ts +143 -0
- package/tsconfig.json +3 -2
- package/INDEX.md +0 -165
- /package/{ACTION_CHECKLIST.md → MD_Files/ACTION_CHECKLIST.md} +0 -0
- /package/{APPCLEAN_SUMMARY.md → MD_Files/APPCLEAN_SUMMARY.md} +0 -0
- /package/{CHANGELOG.md → MD_Files/CHANGELOG.md} +0 -0
- /package/{CODE_OF_CONDUCT.md → MD_Files/CODE_OF_CONDUCT.md} +0 -0
- /package/{CODE_REVIEW_REPORT.md → MD_Files/CODE_REVIEW_REPORT.md} +0 -0
- /package/{COMMUNITY_POSTS.md → MD_Files/COMMUNITY_POSTS.md} +0 -0
- /package/{DEPLOYMENT_GUIDE.md → MD_Files/DEPLOYMENT_GUIDE.md} +0 -0
- /package/{DEPLOYMENT_STATUS.md → MD_Files/DEPLOYMENT_STATUS.md} +0 -0
- /package/{EXECUTIVE_REPORT.md → MD_Files/EXECUTIVE_REPORT.md} +0 -0
- /package/{GITHUB_OPTIMIZATION.md → MD_Files/GITHUB_OPTIMIZATION.md} +0 -0
- /package/{MARKETING_SUMMARY.md → MD_Files/MARKETING_SUMMARY.md} +0 -0
- /package/{NPM_PACKAGE_OPTIMIZATION.md → MD_Files/NPM_PACKAGE_OPTIMIZATION.md} +0 -0
- /package/{NPM_PUBLISH.md → MD_Files/NPM_PUBLISH.md} +0 -0
- /package/{PROJECT_SUMMARY.txt → MD_Files/PROJECT_SUMMARY.txt} +0 -0
- /package/{QUICKSTART.md → MD_Files/QUICKSTART.md} +0 -0
- /package/{SETUP_GITHUB.md → MD_Files/SETUP_GITHUB.md} +0 -0
- /package/{TESTING_SUMMARY.md → MD_Files/TESTING_SUMMARY.md} +0 -0
- /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": "
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|