squeaky-clean 0.1.7 → 0.1.10
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/package.json +25 -23
- package/dist/cleaners/BaseCleaner.d.ts +0 -57
- package/dist/cleaners/BaseCleaner.d.ts.map +0 -1
- package/dist/cleaners/BaseCleaner.js +0 -299
- package/dist/cleaners/BaseCleaner.js.map +0 -1
- package/dist/cleaners/CleanerRegistry.d.ts +0 -65
- package/dist/cleaners/CleanerRegistry.d.ts.map +0 -1
- package/dist/cleaners/CleanerRegistry.js +0 -112
- package/dist/cleaners/CleanerRegistry.js.map +0 -1
- package/dist/cleaners/androidstudio.d.ts +0 -16
- package/dist/cleaners/androidstudio.d.ts.map +0 -1
- package/dist/cleaners/androidstudio.js +0 -375
- package/dist/cleaners/androidstudio.js.map +0 -1
- package/dist/cleaners/brew.d.ts +0 -4
- package/dist/cleaners/brew.d.ts.map +0 -1
- package/dist/cleaners/brew.js +0 -197
- package/dist/cleaners/brew.js.map +0 -1
- package/dist/cleaners/brewEnhanced.d.ts +0 -18
- package/dist/cleaners/brewEnhanced.d.ts.map +0 -1
- package/dist/cleaners/brewEnhanced.js +0 -255
- package/dist/cleaners/brewEnhanced.js.map +0 -1
- package/dist/cleaners/bun.d.ts +0 -14
- package/dist/cleaners/bun.d.ts.map +0 -1
- package/dist/cleaners/bun.js +0 -207
- package/dist/cleaners/bun.js.map +0 -1
- package/dist/cleaners/cargo.d.ts +0 -15
- package/dist/cleaners/cargo.d.ts.map +0 -1
- package/dist/cleaners/cargo.js +0 -193
- package/dist/cleaners/cargo.js.map +0 -1
- package/dist/cleaners/chrome.d.ts +0 -14
- package/dist/cleaners/chrome.d.ts.map +0 -1
- package/dist/cleaners/chrome.js +0 -250
- package/dist/cleaners/chrome.js.map +0 -1
- package/dist/cleaners/cocoapods.d.ts +0 -16
- package/dist/cleaners/cocoapods.d.ts.map +0 -1
- package/dist/cleaners/cocoapods.js +0 -180
- package/dist/cleaners/cocoapods.js.map +0 -1
- package/dist/cleaners/docker.d.ts +0 -35
- package/dist/cleaners/docker.d.ts.map +0 -1
- package/dist/cleaners/docker.js +0 -285
- package/dist/cleaners/docker.js.map +0 -1
- package/dist/cleaners/firefox.d.ts +0 -15
- package/dist/cleaners/firefox.d.ts.map +0 -1
- package/dist/cleaners/firefox.js +0 -281
- package/dist/cleaners/firefox.js.map +0 -1
- package/dist/cleaners/flutter.d.ts +0 -18
- package/dist/cleaners/flutter.d.ts.map +0 -1
- package/dist/cleaners/flutter.js +0 -354
- package/dist/cleaners/flutter.js.map +0 -1
- package/dist/cleaners/goBuild.d.ts +0 -18
- package/dist/cleaners/goBuild.d.ts.map +0 -1
- package/dist/cleaners/goBuild.js +0 -196
- package/dist/cleaners/goBuild.js.map +0 -1
- package/dist/cleaners/gradle.d.ts +0 -14
- package/dist/cleaners/gradle.d.ts.map +0 -1
- package/dist/cleaners/gradle.js +0 -336
- package/dist/cleaners/gradle.js.map +0 -1
- package/dist/cleaners/index.d.ts +0 -51
- package/dist/cleaners/index.d.ts.map +0 -1
- package/dist/cleaners/index.js +0 -247
- package/dist/cleaners/index.js.map +0 -1
- package/dist/cleaners/jetbrains.d.ts +0 -18
- package/dist/cleaners/jetbrains.d.ts.map +0 -1
- package/dist/cleaners/jetbrains.js +0 -441
- package/dist/cleaners/jetbrains.js.map +0 -1
- package/dist/cleaners/maven.d.ts +0 -15
- package/dist/cleaners/maven.d.ts.map +0 -1
- package/dist/cleaners/maven.js +0 -182
- package/dist/cleaners/maven.js.map +0 -1
- package/dist/cleaners/nix.d.ts +0 -4
- package/dist/cleaners/nix.d.ts.map +0 -1
- package/dist/cleaners/nix.js +0 -227
- package/dist/cleaners/nix.js.map +0 -1
- package/dist/cleaners/nodeGyp.d.ts +0 -14
- package/dist/cleaners/nodeGyp.d.ts.map +0 -1
- package/dist/cleaners/nodeGyp.js +0 -157
- package/dist/cleaners/nodeGyp.js.map +0 -1
- package/dist/cleaners/npm.d.ts +0 -14
- package/dist/cleaners/npm.d.ts.map +0 -1
- package/dist/cleaners/npm.js +0 -198
- package/dist/cleaners/npm.js.map +0 -1
- package/dist/cleaners/npmEnhanced.d.ts +0 -19
- package/dist/cleaners/npmEnhanced.d.ts.map +0 -1
- package/dist/cleaners/npmEnhanced.js +0 -336
- package/dist/cleaners/npmEnhanced.js.map +0 -1
- package/dist/cleaners/nuget.d.ts +0 -16
- package/dist/cleaners/nuget.d.ts.map +0 -1
- package/dist/cleaners/nuget.js +0 -197
- package/dist/cleaners/nuget.js.map +0 -1
- package/dist/cleaners/nx.d.ts +0 -18
- package/dist/cleaners/nx.d.ts.map +0 -1
- package/dist/cleaners/nx.js +0 -308
- package/dist/cleaners/nx.js.map +0 -1
- package/dist/cleaners/pip.d.ts +0 -19
- package/dist/cleaners/pip.d.ts.map +0 -1
- package/dist/cleaners/pip.js +0 -334
- package/dist/cleaners/pip.js.map +0 -1
- package/dist/cleaners/pipenv.d.ts +0 -16
- package/dist/cleaners/pipenv.d.ts.map +0 -1
- package/dist/cleaners/pipenv.js +0 -184
- package/dist/cleaners/pipenv.js.map +0 -1
- package/dist/cleaners/pnpm.d.ts +0 -14
- package/dist/cleaners/pnpm.d.ts.map +0 -1
- package/dist/cleaners/pnpm.js +0 -209
- package/dist/cleaners/pnpm.js.map +0 -1
- package/dist/cleaners/poetry.d.ts +0 -16
- package/dist/cleaners/poetry.d.ts.map +0 -1
- package/dist/cleaners/poetry.js +0 -184
- package/dist/cleaners/poetry.js.map +0 -1
- package/dist/cleaners/swiftpm.d.ts +0 -16
- package/dist/cleaners/swiftpm.d.ts.map +0 -1
- package/dist/cleaners/swiftpm.js +0 -179
- package/dist/cleaners/swiftpm.js.map +0 -1
- package/dist/cleaners/turbo.d.ts +0 -18
- package/dist/cleaners/turbo.d.ts.map +0 -1
- package/dist/cleaners/turbo.js +0 -325
- package/dist/cleaners/turbo.js.map +0 -1
- package/dist/cleaners/vite.d.ts +0 -17
- package/dist/cleaners/vite.d.ts.map +0 -1
- package/dist/cleaners/vite.js +0 -274
- package/dist/cleaners/vite.js.map +0 -1
- package/dist/cleaners/vscode.d.ts +0 -14
- package/dist/cleaners/vscode.d.ts.map +0 -1
- package/dist/cleaners/vscode.js +0 -354
- package/dist/cleaners/vscode.js.map +0 -1
- package/dist/cleaners/webpack.d.ts +0 -17
- package/dist/cleaners/webpack.d.ts.map +0 -1
- package/dist/cleaners/webpack.js +0 -263
- package/dist/cleaners/webpack.js.map +0 -1
- package/dist/cleaners/xcode.d.ts +0 -14
- package/dist/cleaners/xcode.d.ts.map +0 -1
- package/dist/cleaners/xcode.js +0 -348
- package/dist/cleaners/xcode.js.map +0 -1
- package/dist/cleaners/yarn.d.ts +0 -16
- package/dist/cleaners/yarn.d.ts.map +0 -1
- package/dist/cleaners/yarn.js +0 -266
- package/dist/cleaners/yarn.js.map +0 -1
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -346
- package/dist/cli.js.map +0 -1
- package/dist/commands/auto.d.ts +0 -8
- package/dist/commands/auto.d.ts.map +0 -1
- package/dist/commands/auto.js +0 -224
- package/dist/commands/auto.js.map +0 -1
- package/dist/commands/categories.d.ts +0 -8
- package/dist/commands/categories.d.ts.map +0 -1
- package/dist/commands/categories.js +0 -133
- package/dist/commands/categories.js.map +0 -1
- package/dist/commands/clean.d.ts +0 -3
- package/dist/commands/clean.d.ts.map +0 -1
- package/dist/commands/clean.js +0 -149
- package/dist/commands/clean.js.map +0 -1
- package/dist/commands/config.d.ts +0 -14
- package/dist/commands/config.d.ts.map +0 -1
- package/dist/commands/config.js +0 -445
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/configDoctor.d.ts +0 -26
- package/dist/commands/configDoctor.d.ts.map +0 -1
- package/dist/commands/configDoctor.js +0 -60
- package/dist/commands/configDoctor.js.map +0 -1
- package/dist/commands/doctor.d.ts +0 -2
- package/dist/commands/doctor.d.ts.map +0 -1
- package/dist/commands/doctor.js +0 -141
- package/dist/commands/doctor.js.map +0 -1
- package/dist/commands/emojis.d.ts +0 -2
- package/dist/commands/emojis.d.ts.map +0 -1
- package/dist/commands/emojis.js +0 -28
- package/dist/commands/emojis.js.map +0 -1
- package/dist/commands/interactive.d.ts +0 -3
- package/dist/commands/interactive.d.ts.map +0 -1
- package/dist/commands/interactive.js +0 -284
- package/dist/commands/interactive.js.map +0 -1
- package/dist/commands/interactiveEnhanced.d.ts +0 -4
- package/dist/commands/interactiveEnhanced.d.ts.map +0 -1
- package/dist/commands/interactiveEnhanced.js +0 -460
- package/dist/commands/interactiveEnhanced.js.map +0 -1
- package/dist/commands/list.d.ts +0 -2
- package/dist/commands/list.d.ts.map +0 -1
- package/dist/commands/list.js +0 -68
- package/dist/commands/list.js.map +0 -1
- package/dist/commands/sizes.d.ts +0 -2
- package/dist/commands/sizes.d.ts.map +0 -1
- package/dist/commands/sizes.js +0 -87
- package/dist/commands/sizes.js.map +0 -1
- package/dist/config/index.d.ts +0 -31
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -241
- package/dist/config/index.js.map +0 -1
- package/dist/config/loadConfig.d.ts +0 -7
- package/dist/config/loadConfig.d.ts.map +0 -1
- package/dist/config/loadConfig.js +0 -103
- package/dist/config/loadConfig.js.map +0 -1
- package/dist/config/migrateConfig.d.ts +0 -56
- package/dist/config/migrateConfig.d.ts.map +0 -1
- package/dist/config/migrateConfig.js +0 -102
- package/dist/config/migrateConfig.js.map +0 -1
- package/dist/plugins/discovery.d.ts +0 -6
- package/dist/plugins/discovery.d.ts.map +0 -1
- package/dist/plugins/discovery.js +0 -64
- package/dist/plugins/discovery.js.map +0 -1
- package/dist/profiles/index.d.ts +0 -61
- package/dist/profiles/index.d.ts.map +0 -1
- package/dist/profiles/index.js +0 -361
- package/dist/profiles/index.js.map +0 -1
- package/dist/types/index.d.ts +0 -161
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -3
- package/dist/types/index.js.map +0 -1
- package/dist/utils/cli.d.ts +0 -44
- package/dist/utils/cli.d.ts.map +0 -1
- package/dist/utils/cli.js +0 -410
- package/dist/utils/cli.js.map +0 -1
- package/dist/utils/fs.d.ts +0 -15
- package/dist/utils/fs.d.ts.map +0 -1
- package/dist/utils/fs.js +0 -218
- package/dist/utils/fs.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "squeaky-clean",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.10",
|
|
4
4
|
"description": "✨ Easy, customizable and expandable development cache cleaner CLI with interactive configuration! Smart, safe, and configurable cache management for 25+ development tools.",
|
|
5
5
|
"main": "dist/cli.js",
|
|
6
6
|
"bin": {
|
|
@@ -21,6 +21,9 @@
|
|
|
21
21
|
"clean": "rimraf dist",
|
|
22
22
|
"prepublishOnly": "npm run clean && npm run build",
|
|
23
23
|
"release": "npm run test && npm run build && npm publish",
|
|
24
|
+
"release:patch": "npm run version:patch && npm run test && npm run build && npm publish",
|
|
25
|
+
"release:minor": "npm run version:minor && npm run test && npm run build && npm publish",
|
|
26
|
+
"release:major": "npm run version:major && npm run test && npm run build && npm publish",
|
|
24
27
|
"version:patch": "npm version patch && node scripts/update-version.js",
|
|
25
28
|
"version:minor": "npm version minor && node scripts/update-version.js",
|
|
26
29
|
"version:major": "npm version major && node scripts/update-version.js",
|
|
@@ -85,38 +88,37 @@
|
|
|
85
88
|
"LICENSE"
|
|
86
89
|
],
|
|
87
90
|
"dependencies": {
|
|
88
|
-
"ajv": "^8.17.1",
|
|
89
|
-
"ajv-formats": "^3.0.1",
|
|
90
|
-
"chalk": "^4.1.2",
|
|
91
91
|
"commander": "^11.1.0",
|
|
92
|
-
"conf": "^10.2.0",
|
|
93
92
|
"execa": "^5.1.1",
|
|
94
|
-
"filesize": "^10.1.
|
|
95
|
-
"fs-extra": "^11.2
|
|
93
|
+
"filesize": "^10.1.6",
|
|
94
|
+
"fs-extra": "^11.3.2",
|
|
96
95
|
"globby": "^11.1.0",
|
|
97
|
-
"inquirer": "^8.2.
|
|
98
|
-
"minimatch": "^10.
|
|
96
|
+
"inquirer": "^8.2.7",
|
|
97
|
+
"minimatch": "^10.1.1",
|
|
99
98
|
"ora": "^5.4.1",
|
|
99
|
+
"picocolors": "^1.1.1",
|
|
100
100
|
"play-sound": "^1.1.6",
|
|
101
|
-
"rimraf": "^6.1.
|
|
101
|
+
"rimraf": "^6.1.2",
|
|
102
|
+
"zod": "^4.1.13"
|
|
102
103
|
},
|
|
103
104
|
"devDependencies": {
|
|
104
|
-
"@eslint/js": "^9.
|
|
105
|
+
"@eslint/js": "^9.39.1",
|
|
105
106
|
"@types/fs-extra": "^11.0.4",
|
|
106
|
-
"@types/inquirer": "^9.0.
|
|
107
|
-
"@types/node": "^20.
|
|
108
|
-
"@typescript-eslint/eslint-plugin": "^6.
|
|
109
|
-
"@typescript-eslint/parser": "^6.
|
|
107
|
+
"@types/inquirer": "^9.0.9",
|
|
108
|
+
"@types/node": "^20.19.25",
|
|
109
|
+
"@typescript-eslint/eslint-plugin": "^6.21.0",
|
|
110
|
+
"@typescript-eslint/parser": "^6.21.0",
|
|
110
111
|
"@vitest/coverage-v8": "^3.2.4",
|
|
111
112
|
"eslint": "^8.57.1",
|
|
112
|
-
"eslint-config-prettier": "^9.1.
|
|
113
|
-
"eslint-plugin-prettier": "^5.
|
|
114
|
-
"globals": "^16.
|
|
115
|
-
"memfs": "^4.
|
|
116
|
-
"prettier": "^3.
|
|
117
|
-
"tsx": "^4.
|
|
118
|
-
"typescript": "^5.
|
|
119
|
-
"typescript-eslint": "^8.
|
|
113
|
+
"eslint-config-prettier": "^9.1.2",
|
|
114
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
115
|
+
"globals": "^16.5.0",
|
|
116
|
+
"memfs": "^4.51.1",
|
|
117
|
+
"prettier": "^3.7.4",
|
|
118
|
+
"tsx": "^4.21.0",
|
|
119
|
+
"typescript": "^5.9.3",
|
|
120
|
+
"typescript-eslint": "^8.48.1",
|
|
121
|
+
"vite": "^6.4.1",
|
|
120
122
|
"vitest": "^3.2.4"
|
|
121
123
|
}
|
|
122
124
|
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { CleanerModule, CacheInfo, CacheCategory, ClearResult, CacheType, CacheSelectionCriteria } from "../types";
|
|
2
|
-
export declare abstract class BaseCleaner implements CleanerModule {
|
|
3
|
-
abstract name: string;
|
|
4
|
-
abstract type: CacheType;
|
|
5
|
-
abstract description: string;
|
|
6
|
-
abstract isAvailable(): Promise<boolean>;
|
|
7
|
-
abstract getCacheInfo(): Promise<CacheInfo>;
|
|
8
|
-
/**
|
|
9
|
-
* Get detailed cache categories with metadata
|
|
10
|
-
*/
|
|
11
|
-
getCacheCategories(): Promise<CacheCategory[]>;
|
|
12
|
-
/**
|
|
13
|
-
* Check if a path is protected
|
|
14
|
-
*/
|
|
15
|
-
protected isProtectedPath(path: string, protectedPaths?: string[]): boolean;
|
|
16
|
-
/**
|
|
17
|
-
* Filter paths to exclude protected ones
|
|
18
|
-
*/
|
|
19
|
-
protected filterProtectedPaths(paths: string[], protectedPaths?: string[]): string[];
|
|
20
|
-
/**
|
|
21
|
-
* Clear cache with selection criteria
|
|
22
|
-
*/
|
|
23
|
-
clear(dryRun?: boolean, criteria?: CacheSelectionCriteria, _cacheInfo?: CacheInfo, protectedPaths?: string[]): Promise<ClearResult>;
|
|
24
|
-
/**
|
|
25
|
-
* Clear specific categories
|
|
26
|
-
*/
|
|
27
|
-
clearByCategory(categoryIds: string[], dryRun?: boolean, _cacheInfo?: CacheInfo, protectedPaths?: string[]): Promise<ClearResult>;
|
|
28
|
-
/**
|
|
29
|
-
* Filter categories based on criteria
|
|
30
|
-
*/
|
|
31
|
-
protected filterCategories(categories: CacheCategory[], criteria?: CacheSelectionCriteria): CacheCategory[];
|
|
32
|
-
/**
|
|
33
|
-
* Get directory size in bytes
|
|
34
|
-
*/
|
|
35
|
-
protected getDirectorySize(path: string): Promise<number>;
|
|
36
|
-
/**
|
|
37
|
-
* Clear a specific path
|
|
38
|
-
*/
|
|
39
|
-
protected clearPath(path: string): Promise<void>;
|
|
40
|
-
/**
|
|
41
|
-
* Detect if a path has been recently used
|
|
42
|
-
*/
|
|
43
|
-
protected isRecentlyUsed(path: string, days?: number): boolean;
|
|
44
|
-
/**
|
|
45
|
-
* Detect if a path is project-specific
|
|
46
|
-
*/
|
|
47
|
-
protected isProjectSpecific(path: string): boolean;
|
|
48
|
-
/**
|
|
49
|
-
* Get cache priority based on path and usage
|
|
50
|
-
*/
|
|
51
|
-
protected getCachePriority(path: string): "critical" | "important" | "normal" | "low";
|
|
52
|
-
/**
|
|
53
|
-
* Detect use case based on path patterns
|
|
54
|
-
*/
|
|
55
|
-
protected detectUseCase(path: string): "development" | "testing" | "production" | "experimental" | "archived";
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=BaseCleaner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BaseCleaner.d.ts","sourceRoot":"","sources":["../../src/cleaners/BaseCleaner.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,SAAS,EACT,aAAa,EACb,WAAW,EACX,SAAS,EACT,sBAAsB,EACvB,MAAM,UAAU,CAAC;AAWlB,8BAAsB,WAAY,YAAW,aAAa;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IACxC,QAAQ,CAAC,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAE3C;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IA6BpD;;OAEG;IACH,SAAS,CAAC,eAAe,CACvB,IAAI,EAAE,MAAM,EACZ,cAAc,GAAE,MAAM,EAAO,GAC5B,OAAO;IA+BV;;OAEG;IACH,SAAS,CAAC,oBAAoB,CAC5B,KAAK,EAAE,MAAM,EAAE,EACf,cAAc,GAAE,MAAM,EAAO,GAC5B,MAAM,EAAE;IAeX;;OAEG;IACG,KAAK,CACT,MAAM,CAAC,EAAE,OAAO,EAChB,QAAQ,CAAC,EAAE,sBAAsB,EACjC,UAAU,CAAC,EAAE,SAAS,EACtB,cAAc,CAAC,EAAE,MAAM,EAAE,GACxB,OAAO,CAAC,WAAW,CAAC;IA2CvB;;OAEG;IACG,eAAe,CACnB,WAAW,EAAE,MAAM,EAAE,EACrB,MAAM,CAAC,EAAE,OAAO,EAChB,UAAU,CAAC,EAAE,SAAS,EACtB,cAAc,CAAC,EAAE,MAAM,EAAE,GACxB,OAAO,CAAC,WAAW,CAAC;IA4CvB;;OAEG;IACH,SAAS,CAAC,gBAAgB,CACxB,UAAU,EAAE,aAAa,EAAE,EAC3B,QAAQ,CAAC,EAAE,sBAAsB,GAChC,aAAa,EAAE;IAmDlB;;OAEG;cACa,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAe/D;;OAEG;cACa,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAetD;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAU,GAAG,OAAO;IAajE;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAelD;;OAEG;IACH,SAAS,CAAC,gBAAgB,CACxB,IAAI,EAAE,MAAM,GACX,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,KAAK;IAc9C;;OAEG;IACH,SAAS,CAAC,aAAa,CACrB,IAAI,EAAE,MAAM,GACX,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,cAAc,GAAG,UAAU;CAO1E"}
|
|
@@ -1,299 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BaseCleaner = void 0;
|
|
4
|
-
const fs_1 = require("fs");
|
|
5
|
-
const promises_1 = require("fs/promises");
|
|
6
|
-
const path_1 = require("path");
|
|
7
|
-
const child_process_1 = require("child_process");
|
|
8
|
-
const util_1 = require("util");
|
|
9
|
-
const minimatch_1 = require("minimatch");
|
|
10
|
-
const cli_1 = require("../utils/cli");
|
|
11
|
-
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
12
|
-
class BaseCleaner {
|
|
13
|
-
/**
|
|
14
|
-
* Get detailed cache categories with metadata
|
|
15
|
-
*/
|
|
16
|
-
async getCacheCategories() {
|
|
17
|
-
// Default implementation - override in specific cleaners
|
|
18
|
-
const info = await this.getCacheInfo();
|
|
19
|
-
const categories = [];
|
|
20
|
-
for (const path of info.paths) {
|
|
21
|
-
if ((0, fs_1.existsSync)(path)) {
|
|
22
|
-
const stat = (0, fs_1.statSync)(path);
|
|
23
|
-
const category = {
|
|
24
|
-
id: `${this.name}-${(0, path_1.basename)(path)}`,
|
|
25
|
-
name: (0, path_1.basename)(path),
|
|
26
|
-
description: `Cache directory: ${path}`,
|
|
27
|
-
paths: [path],
|
|
28
|
-
size: await this.getDirectorySize(path),
|
|
29
|
-
lastModified: stat.mtime,
|
|
30
|
-
lastAccessed: stat.atime,
|
|
31
|
-
priority: "normal",
|
|
32
|
-
useCase: "development",
|
|
33
|
-
ageInDays: Math.floor((Date.now() - stat.mtime.getTime()) / (1000 * 60 * 60 * 24)),
|
|
34
|
-
};
|
|
35
|
-
categories.push(category);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return categories;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Check if a path is protected
|
|
42
|
-
*/
|
|
43
|
-
isProtectedPath(path, protectedPaths = []) {
|
|
44
|
-
if (!protectedPaths.length)
|
|
45
|
-
return false;
|
|
46
|
-
const normalizedPath = (0, path_1.resolve)(path);
|
|
47
|
-
for (const protectedPattern of protectedPaths) {
|
|
48
|
-
// Support both exact paths and glob patterns
|
|
49
|
-
if (protectedPattern.includes("*") || protectedPattern.includes("?")) {
|
|
50
|
-
// It's a glob pattern
|
|
51
|
-
if ((0, minimatch_1.minimatch)(normalizedPath, protectedPattern)) {
|
|
52
|
-
(0, cli_1.printVerbose)(`Path ${path} is protected by pattern: ${protectedPattern}`);
|
|
53
|
-
return true;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
// It's an exact path or directory
|
|
58
|
-
const normalizedProtected = (0, path_1.resolve)(protectedPattern);
|
|
59
|
-
if (normalizedPath === normalizedProtected ||
|
|
60
|
-
normalizedPath.startsWith(normalizedProtected + "/")) {
|
|
61
|
-
(0, cli_1.printVerbose)(`Path ${path} is protected: ${protectedPattern}`);
|
|
62
|
-
return true;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return false;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Filter paths to exclude protected ones
|
|
70
|
-
*/
|
|
71
|
-
filterProtectedPaths(paths, protectedPaths = []) {
|
|
72
|
-
if (!protectedPaths.length)
|
|
73
|
-
return paths;
|
|
74
|
-
const filtered = paths.filter((path) => !this.isProtectedPath(path, protectedPaths));
|
|
75
|
-
const skippedCount = paths.length - filtered.length;
|
|
76
|
-
if (skippedCount > 0) {
|
|
77
|
-
(0, cli_1.printVerbose)(`Skipped ${skippedCount} protected path(s)`);
|
|
78
|
-
}
|
|
79
|
-
return filtered;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Clear cache with selection criteria
|
|
83
|
-
*/
|
|
84
|
-
async clear(dryRun, criteria, _cacheInfo, protectedPaths) {
|
|
85
|
-
const categories = await this.getCacheCategories();
|
|
86
|
-
const filteredCategories = this.filterCategories(categories, criteria);
|
|
87
|
-
let totalSizeBefore = 0;
|
|
88
|
-
let clearedPaths = [];
|
|
89
|
-
let clearedCategories = [];
|
|
90
|
-
for (const category of filteredCategories) {
|
|
91
|
-
// Filter out protected paths from this category
|
|
92
|
-
const allowedPaths = this.filterProtectedPaths(category.paths, protectedPaths);
|
|
93
|
-
if (allowedPaths.length > 0) {
|
|
94
|
-
totalSizeBefore += category.size || 0;
|
|
95
|
-
clearedPaths.push(...allowedPaths);
|
|
96
|
-
clearedCategories.push(category.id);
|
|
97
|
-
}
|
|
98
|
-
else if (category.paths.length > 0) {
|
|
99
|
-
(0, cli_1.printVerbose)(`Skipping category ${category.id} - all paths are protected`);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
if (!dryRun) {
|
|
103
|
-
// Actual clearing logic would go here
|
|
104
|
-
for (const path of clearedPaths) {
|
|
105
|
-
await this.clearPath(path);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
return {
|
|
109
|
-
name: this.name,
|
|
110
|
-
success: true,
|
|
111
|
-
sizeBefore: totalSizeBefore,
|
|
112
|
-
sizeAfter: dryRun ? totalSizeBefore : 0,
|
|
113
|
-
clearedPaths,
|
|
114
|
-
clearedCategories,
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Clear specific categories
|
|
119
|
-
*/
|
|
120
|
-
async clearByCategory(categoryIds, dryRun, _cacheInfo, protectedPaths) {
|
|
121
|
-
const categories = await this.getCacheCategories();
|
|
122
|
-
const selectedCategories = categories.filter((c) => categoryIds.includes(c.id));
|
|
123
|
-
let totalSizeBefore = 0;
|
|
124
|
-
let clearedPaths = [];
|
|
125
|
-
let clearedCategories = [];
|
|
126
|
-
for (const category of selectedCategories) {
|
|
127
|
-
// Filter out protected paths from this category
|
|
128
|
-
const allowedPaths = this.filterProtectedPaths(category.paths, protectedPaths);
|
|
129
|
-
if (allowedPaths.length > 0) {
|
|
130
|
-
totalSizeBefore += category.size || 0;
|
|
131
|
-
clearedPaths.push(...allowedPaths);
|
|
132
|
-
clearedCategories.push(category.id);
|
|
133
|
-
}
|
|
134
|
-
else if (category.paths.length > 0) {
|
|
135
|
-
(0, cli_1.printVerbose)(`Skipping category ${category.id} - all paths are protected`);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
if (!dryRun) {
|
|
139
|
-
for (const path of clearedPaths) {
|
|
140
|
-
await this.clearPath(path);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
return {
|
|
144
|
-
name: this.name,
|
|
145
|
-
success: true,
|
|
146
|
-
sizeBefore: totalSizeBefore,
|
|
147
|
-
sizeAfter: dryRun ? totalSizeBefore : 0,
|
|
148
|
-
clearedPaths,
|
|
149
|
-
clearedCategories,
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Filter categories based on criteria
|
|
154
|
-
*/
|
|
155
|
-
filterCategories(categories, criteria) {
|
|
156
|
-
if (!criteria)
|
|
157
|
-
return categories;
|
|
158
|
-
return categories.filter((category) => {
|
|
159
|
-
// Age filtering
|
|
160
|
-
if (criteria.olderThanDays !== undefined &&
|
|
161
|
-
category.ageInDays !== undefined) {
|
|
162
|
-
if (category.ageInDays < criteria.olderThanDays)
|
|
163
|
-
return false;
|
|
164
|
-
}
|
|
165
|
-
if (criteria.newerThanDays !== undefined &&
|
|
166
|
-
category.ageInDays !== undefined) {
|
|
167
|
-
if (category.ageInDays > criteria.newerThanDays)
|
|
168
|
-
return false;
|
|
169
|
-
}
|
|
170
|
-
// Size filtering
|
|
171
|
-
if (criteria.largerThanMB !== undefined && category.size !== undefined) {
|
|
172
|
-
if (category.size < criteria.largerThanMB * 1024 * 1024)
|
|
173
|
-
return false;
|
|
174
|
-
}
|
|
175
|
-
if (criteria.smallerThanMB !== undefined && category.size !== undefined) {
|
|
176
|
-
if (category.size > criteria.smallerThanMB * 1024 * 1024)
|
|
177
|
-
return false;
|
|
178
|
-
}
|
|
179
|
-
// Use case filtering
|
|
180
|
-
if (criteria.useCases && criteria.useCases.length > 0) {
|
|
181
|
-
if (!criteria.useCases.includes(category.useCase))
|
|
182
|
-
return false;
|
|
183
|
-
}
|
|
184
|
-
// Priority filtering
|
|
185
|
-
if (criteria.priorities && criteria.priorities.length > 0) {
|
|
186
|
-
if (!criteria.priorities.includes(category.priority))
|
|
187
|
-
return false;
|
|
188
|
-
}
|
|
189
|
-
// Project-specific filtering
|
|
190
|
-
if (criteria.projectSpecific !== undefined) {
|
|
191
|
-
if (category.isProjectSpecific !== criteria.projectSpecific)
|
|
192
|
-
return false;
|
|
193
|
-
}
|
|
194
|
-
// Category ID filtering
|
|
195
|
-
if (criteria.categories && criteria.categories.length > 0) {
|
|
196
|
-
if (!criteria.categories.includes(category.id))
|
|
197
|
-
return false;
|
|
198
|
-
}
|
|
199
|
-
return true;
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
* Get directory size in bytes
|
|
204
|
-
*/
|
|
205
|
-
async getDirectorySize(path) {
|
|
206
|
-
if (!(0, fs_1.existsSync)(path))
|
|
207
|
-
return 0;
|
|
208
|
-
try {
|
|
209
|
-
// Use du command for accurate size calculation
|
|
210
|
-
const { stdout } = await execAsync(`du -sk "${path}" 2>/dev/null || echo "0"`);
|
|
211
|
-
const sizeKB = parseInt(stdout.split("\t")[0]) || 0;
|
|
212
|
-
return sizeKB * 1024;
|
|
213
|
-
}
|
|
214
|
-
catch {
|
|
215
|
-
return 0;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
/**
|
|
219
|
-
* Clear a specific path
|
|
220
|
-
*/
|
|
221
|
-
async clearPath(path) {
|
|
222
|
-
if (!(0, fs_1.existsSync)(path))
|
|
223
|
-
return;
|
|
224
|
-
try {
|
|
225
|
-
// Use native Node.js fs operations for better security
|
|
226
|
-
// This eliminates any potential for command injection
|
|
227
|
-
await (0, promises_1.rm)(path, {
|
|
228
|
-
recursive: true, // Handles directories recursively
|
|
229
|
-
force: true, // Ignores errors if file doesn't exist
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
catch (error) {
|
|
233
|
-
console.error(`Failed to clear ${path}:`, error);
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
/**
|
|
237
|
-
* Detect if a path has been recently used
|
|
238
|
-
*/
|
|
239
|
-
isRecentlyUsed(path, days = 7) {
|
|
240
|
-
if (!(0, fs_1.existsSync)(path))
|
|
241
|
-
return false;
|
|
242
|
-
try {
|
|
243
|
-
const stat = (0, fs_1.statSync)(path);
|
|
244
|
-
const daysSinceAccess = (Date.now() - stat.atime.getTime()) / (1000 * 60 * 60 * 24);
|
|
245
|
-
return daysSinceAccess < days;
|
|
246
|
-
}
|
|
247
|
-
catch {
|
|
248
|
-
return false;
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
/**
|
|
252
|
-
* Detect if a path is project-specific
|
|
253
|
-
*/
|
|
254
|
-
isProjectSpecific(path) {
|
|
255
|
-
// Check if path contains common project indicators
|
|
256
|
-
const projectIndicators = [
|
|
257
|
-
"node_modules/.cache",
|
|
258
|
-
"target/debug",
|
|
259
|
-
"target/release",
|
|
260
|
-
"build/cache",
|
|
261
|
-
".next/cache",
|
|
262
|
-
".nuxt/cache",
|
|
263
|
-
"dist/cache",
|
|
264
|
-
];
|
|
265
|
-
return projectIndicators.some((indicator) => path.includes(indicator));
|
|
266
|
-
}
|
|
267
|
-
/**
|
|
268
|
-
* Get cache priority based on path and usage
|
|
269
|
-
*/
|
|
270
|
-
getCachePriority(path) {
|
|
271
|
-
// Critical: Currently active project caches
|
|
272
|
-
if (this.isRecentlyUsed(path, 1))
|
|
273
|
-
return "critical";
|
|
274
|
-
// Important: Recently used (within a week)
|
|
275
|
-
if (this.isRecentlyUsed(path, 7))
|
|
276
|
-
return "important";
|
|
277
|
-
// Low: Very old caches
|
|
278
|
-
if (!this.isRecentlyUsed(path, 30))
|
|
279
|
-
return "low";
|
|
280
|
-
// Normal: Everything else
|
|
281
|
-
return "normal";
|
|
282
|
-
}
|
|
283
|
-
/**
|
|
284
|
-
* Detect use case based on path patterns
|
|
285
|
-
*/
|
|
286
|
-
detectUseCase(path) {
|
|
287
|
-
if (path.includes("test") || path.includes("spec"))
|
|
288
|
-
return "testing";
|
|
289
|
-
if (path.includes("prod") || path.includes("release"))
|
|
290
|
-
return "production";
|
|
291
|
-
if (path.includes("exp") || path.includes("beta"))
|
|
292
|
-
return "experimental";
|
|
293
|
-
if (!this.isRecentlyUsed(path, 90))
|
|
294
|
-
return "archived";
|
|
295
|
-
return "development";
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
exports.BaseCleaner = BaseCleaner;
|
|
299
|
-
//# sourceMappingURL=BaseCleaner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BaseCleaner.js","sourceRoot":"","sources":["../../src/cleaners/BaseCleaner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { CleanerModule, CacheType } from "../types";
|
|
2
|
-
/**
|
|
3
|
-
* Metadata for cleaner registration
|
|
4
|
-
*/
|
|
5
|
-
export interface CleanerMetadata {
|
|
6
|
-
name: string;
|
|
7
|
-
type: CacheType;
|
|
8
|
-
description: string;
|
|
9
|
-
patterns?: string[];
|
|
10
|
-
commands?: string[];
|
|
11
|
-
platforms?: NodeJS.Platform[];
|
|
12
|
-
priority?: number;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Registry for managing cleaners dynamically
|
|
16
|
-
*/
|
|
17
|
-
export declare class CleanerRegistry {
|
|
18
|
-
private static instance;
|
|
19
|
-
private cleaners;
|
|
20
|
-
private metadata;
|
|
21
|
-
private constructor();
|
|
22
|
-
static getInstance(): CleanerRegistry;
|
|
23
|
-
/**
|
|
24
|
-
* Register a cleaner with metadata
|
|
25
|
-
*/
|
|
26
|
-
register(cleaner: CleanerModule, metadata?: CleanerMetadata): void;
|
|
27
|
-
/**
|
|
28
|
-
* Register a cleaner class (will be instantiated on demand)
|
|
29
|
-
*/
|
|
30
|
-
registerClass(CleanerClass: new () => CleanerModule, metadata?: CleanerMetadata): void;
|
|
31
|
-
/**
|
|
32
|
-
* Get a cleaner by name
|
|
33
|
-
*/
|
|
34
|
-
getCleaner(name: string): CleanerModule | undefined;
|
|
35
|
-
/**
|
|
36
|
-
* Get all registered cleaners
|
|
37
|
-
*/
|
|
38
|
-
getAllCleaners(): CleanerModule[];
|
|
39
|
-
/**
|
|
40
|
-
* Get cleaners by type
|
|
41
|
-
*/
|
|
42
|
-
getCleanersByType(type: CacheType): CleanerModule[];
|
|
43
|
-
/**
|
|
44
|
-
* Get available cleaners (ones that are installed)
|
|
45
|
-
*/
|
|
46
|
-
getAvailableCleaners(): Promise<CleanerModule[]>;
|
|
47
|
-
/**
|
|
48
|
-
* Auto-detect and register cleaners based on system
|
|
49
|
-
*/
|
|
50
|
-
autoDetect(): Promise<void>;
|
|
51
|
-
/**
|
|
52
|
-
* Get metadata for a cleaner
|
|
53
|
-
*/
|
|
54
|
-
getMetadata(name: string): CleanerMetadata | undefined;
|
|
55
|
-
/**
|
|
56
|
-
* Remove a cleaner from the registry
|
|
57
|
-
*/
|
|
58
|
-
unregister(name: string): boolean;
|
|
59
|
-
/**
|
|
60
|
-
* Clear all registered cleaners
|
|
61
|
-
*/
|
|
62
|
-
clear(): void;
|
|
63
|
-
}
|
|
64
|
-
export declare const cleanerRegistry: CleanerRegistry;
|
|
65
|
-
//# sourceMappingURL=CleanerRegistry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CleanerRegistry.d.ts","sourceRoot":"","sources":["../../src/cleaners/CleanerRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAIpD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,QAAQ,CAA2C;IAE3D,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,eAAe;IAOrC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,IAAI;IAQlE;;OAEG;IACH,aAAa,CACX,YAAY,EAAE,UAAU,aAAa,EACrC,QAAQ,CAAC,EAAE,eAAe,GACzB,IAAI;IAKP;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAInD;;OAEG;IACH,cAAc,IAAI,aAAa,EAAE;IAIjC;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,aAAa,EAAE;IAInD;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAYtD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBjC;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAItD;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAKjC;;OAEG;IACH,KAAK,IAAI,IAAI;CAId;AAGD,eAAO,MAAM,eAAe,iBAAgC,CAAC"}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.cleanerRegistry = exports.CleanerRegistry = void 0;
|
|
4
|
-
const cli_1 = require("../utils/cli");
|
|
5
|
-
/**
|
|
6
|
-
* Registry for managing cleaners dynamically
|
|
7
|
-
*/
|
|
8
|
-
class CleanerRegistry {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.cleaners = new Map();
|
|
11
|
-
this.metadata = new Map();
|
|
12
|
-
}
|
|
13
|
-
static getInstance() {
|
|
14
|
-
if (!CleanerRegistry.instance) {
|
|
15
|
-
CleanerRegistry.instance = new CleanerRegistry();
|
|
16
|
-
}
|
|
17
|
-
return CleanerRegistry.instance;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Register a cleaner with metadata
|
|
21
|
-
*/
|
|
22
|
-
register(cleaner, metadata) {
|
|
23
|
-
this.cleaners.set(cleaner.name, cleaner);
|
|
24
|
-
if (metadata) {
|
|
25
|
-
this.metadata.set(cleaner.name, metadata);
|
|
26
|
-
}
|
|
27
|
-
(0, cli_1.printVerbose)(`Registered cleaner: ${cleaner.name}`);
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Register a cleaner class (will be instantiated on demand)
|
|
31
|
-
*/
|
|
32
|
-
registerClass(CleanerClass, metadata) {
|
|
33
|
-
const instance = new CleanerClass();
|
|
34
|
-
this.register(instance, metadata);
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Get a cleaner by name
|
|
38
|
-
*/
|
|
39
|
-
getCleaner(name) {
|
|
40
|
-
return this.cleaners.get(name);
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Get all registered cleaners
|
|
44
|
-
*/
|
|
45
|
-
getAllCleaners() {
|
|
46
|
-
return Array.from(this.cleaners.values());
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Get cleaners by type
|
|
50
|
-
*/
|
|
51
|
-
getCleanersByType(type) {
|
|
52
|
-
return this.getAllCleaners().filter((cleaner) => cleaner.type === type);
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Get available cleaners (ones that are installed)
|
|
56
|
-
*/
|
|
57
|
-
async getAvailableCleaners() {
|
|
58
|
-
const available = [];
|
|
59
|
-
for (const cleaner of this.getAllCleaners()) {
|
|
60
|
-
if (await cleaner.isAvailable()) {
|
|
61
|
-
available.push(cleaner);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
return available;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Auto-detect and register cleaners based on system
|
|
68
|
-
*/
|
|
69
|
-
async autoDetect() {
|
|
70
|
-
(0, cli_1.printVerbose)("Auto-detecting available cleaners...");
|
|
71
|
-
// Sort by priority for detection
|
|
72
|
-
const sortedCleaners = Array.from(this.metadata.entries()).sort((a, b) => (b[1].priority || 0) - (a[1].priority || 0));
|
|
73
|
-
for (const [name, meta] of sortedCleaners) {
|
|
74
|
-
const cleaner = this.cleaners.get(name);
|
|
75
|
-
if (!cleaner)
|
|
76
|
-
continue;
|
|
77
|
-
// Check platform compatibility
|
|
78
|
-
if (meta.platforms && !meta.platforms.includes(process.platform)) {
|
|
79
|
-
(0, cli_1.printVerbose)(`Skipping ${name} - not supported on ${process.platform}`);
|
|
80
|
-
continue;
|
|
81
|
-
}
|
|
82
|
-
// Check if available
|
|
83
|
-
if (await cleaner.isAvailable()) {
|
|
84
|
-
(0, cli_1.printVerbose)(`Detected: ${name}`);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Get metadata for a cleaner
|
|
90
|
-
*/
|
|
91
|
-
getMetadata(name) {
|
|
92
|
-
return this.metadata.get(name);
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Remove a cleaner from the registry
|
|
96
|
-
*/
|
|
97
|
-
unregister(name) {
|
|
98
|
-
this.metadata.delete(name);
|
|
99
|
-
return this.cleaners.delete(name);
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Clear all registered cleaners
|
|
103
|
-
*/
|
|
104
|
-
clear() {
|
|
105
|
-
this.cleaners.clear();
|
|
106
|
-
this.metadata.clear();
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
exports.CleanerRegistry = CleanerRegistry;
|
|
110
|
-
// Export singleton instance
|
|
111
|
-
exports.cleanerRegistry = CleanerRegistry.getInstance();
|
|
112
|
-
//# sourceMappingURL=CleanerRegistry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CleanerRegistry.js","sourceRoot":"","sources":["../../src/cleaners/CleanerRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { CleanerModule, CacheInfo, ClearResult, CacheSelectionCriteria } from "../types";
|
|
2
|
-
export declare class AndroidStudioCleaner implements CleanerModule {
|
|
3
|
-
name: string;
|
|
4
|
-
type: "ide";
|
|
5
|
-
description: string;
|
|
6
|
-
private findAndroidStudioInstallation;
|
|
7
|
-
private getAndroidStudioCachePaths;
|
|
8
|
-
private findAndroidProjectBuildDirs;
|
|
9
|
-
private findAndroidProjectsRecursively;
|
|
10
|
-
isAvailable(): Promise<boolean>;
|
|
11
|
-
getCacheInfo(): Promise<CacheInfo>;
|
|
12
|
-
clear(dryRun?: boolean, _criteria?: CacheSelectionCriteria, cacheInfo?: CacheInfo, protectedPaths?: string[]): Promise<ClearResult>;
|
|
13
|
-
}
|
|
14
|
-
declare const _default: AndroidStudioCleaner;
|
|
15
|
-
export default _default;
|
|
16
|
-
//# sourceMappingURL=androidstudio.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"androidstudio.d.ts","sourceRoot":"","sources":["../../src/cleaners/androidstudio.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,SAAS,EACT,WAAW,EACX,sBAAsB,EACvB,MAAM,UAAU,CAAC;AAQlB,qBAAa,oBAAqB,YAAW,aAAa;IACxD,IAAI,SAAmB;IACvB,IAAI,EAAG,KAAK,CAAU;IACtB,WAAW,SAAgE;YAE7D,6BAA6B;YA6C7B,0BAA0B;YA+G1B,2BAA2B;YA+B3B,8BAA8B;IA4DtC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IA2B/B,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAyClC,KAAK,CACT,MAAM,UAAQ,EACd,SAAS,CAAC,EAAE,sBAAsB,EAClC,SAAS,CAAC,EAAE,SAAS,EACrB,cAAc,GAAE,MAAM,EAAO,GAC5B,OAAO,CAAC,WAAW,CAAC;CAsDxB;;AAED,wBAA0C"}
|