squeaky-clean 0.1.1

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 (191) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +465 -0
  3. package/dist/cleaners/BaseCleaner.d.ts +57 -0
  4. package/dist/cleaners/BaseCleaner.d.ts.map +1 -0
  5. package/dist/cleaners/BaseCleaner.js +299 -0
  6. package/dist/cleaners/BaseCleaner.js.map +1 -0
  7. package/dist/cleaners/CleanerRegistry.d.ts +65 -0
  8. package/dist/cleaners/CleanerRegistry.d.ts.map +1 -0
  9. package/dist/cleaners/CleanerRegistry.js +112 -0
  10. package/dist/cleaners/CleanerRegistry.js.map +1 -0
  11. package/dist/cleaners/androidstudio.d.ts +16 -0
  12. package/dist/cleaners/androidstudio.d.ts.map +1 -0
  13. package/dist/cleaners/androidstudio.js +375 -0
  14. package/dist/cleaners/androidstudio.js.map +1 -0
  15. package/dist/cleaners/brew.d.ts +4 -0
  16. package/dist/cleaners/brew.d.ts.map +1 -0
  17. package/dist/cleaners/brew.js +197 -0
  18. package/dist/cleaners/brew.js.map +1 -0
  19. package/dist/cleaners/brewEnhanced.d.ts +18 -0
  20. package/dist/cleaners/brewEnhanced.d.ts.map +1 -0
  21. package/dist/cleaners/brewEnhanced.js +255 -0
  22. package/dist/cleaners/brewEnhanced.js.map +1 -0
  23. package/dist/cleaners/bun.d.ts +14 -0
  24. package/dist/cleaners/bun.d.ts.map +1 -0
  25. package/dist/cleaners/bun.js +207 -0
  26. package/dist/cleaners/bun.js.map +1 -0
  27. package/dist/cleaners/chrome.d.ts +14 -0
  28. package/dist/cleaners/chrome.d.ts.map +1 -0
  29. package/dist/cleaners/chrome.js +250 -0
  30. package/dist/cleaners/chrome.js.map +1 -0
  31. package/dist/cleaners/docker.d.ts +35 -0
  32. package/dist/cleaners/docker.d.ts.map +1 -0
  33. package/dist/cleaners/docker.js +285 -0
  34. package/dist/cleaners/docker.js.map +1 -0
  35. package/dist/cleaners/firefox.d.ts +15 -0
  36. package/dist/cleaners/firefox.d.ts.map +1 -0
  37. package/dist/cleaners/firefox.js +281 -0
  38. package/dist/cleaners/firefox.js.map +1 -0
  39. package/dist/cleaners/flutter.d.ts +18 -0
  40. package/dist/cleaners/flutter.d.ts.map +1 -0
  41. package/dist/cleaners/flutter.js +354 -0
  42. package/dist/cleaners/flutter.js.map +1 -0
  43. package/dist/cleaners/goBuild.d.ts +18 -0
  44. package/dist/cleaners/goBuild.d.ts.map +1 -0
  45. package/dist/cleaners/goBuild.js +196 -0
  46. package/dist/cleaners/goBuild.js.map +1 -0
  47. package/dist/cleaners/gradle.d.ts +14 -0
  48. package/dist/cleaners/gradle.d.ts.map +1 -0
  49. package/dist/cleaners/gradle.js +336 -0
  50. package/dist/cleaners/gradle.js.map +1 -0
  51. package/dist/cleaners/index.d.ts +51 -0
  52. package/dist/cleaners/index.d.ts.map +1 -0
  53. package/dist/cleaners/index.js +247 -0
  54. package/dist/cleaners/index.js.map +1 -0
  55. package/dist/cleaners/jetbrains.d.ts +18 -0
  56. package/dist/cleaners/jetbrains.d.ts.map +1 -0
  57. package/dist/cleaners/jetbrains.js +441 -0
  58. package/dist/cleaners/jetbrains.js.map +1 -0
  59. package/dist/cleaners/nix.d.ts +4 -0
  60. package/dist/cleaners/nix.d.ts.map +1 -0
  61. package/dist/cleaners/nix.js +227 -0
  62. package/dist/cleaners/nix.js.map +1 -0
  63. package/dist/cleaners/nodeGyp.d.ts +14 -0
  64. package/dist/cleaners/nodeGyp.d.ts.map +1 -0
  65. package/dist/cleaners/nodeGyp.js +157 -0
  66. package/dist/cleaners/nodeGyp.js.map +1 -0
  67. package/dist/cleaners/npm.d.ts +14 -0
  68. package/dist/cleaners/npm.d.ts.map +1 -0
  69. package/dist/cleaners/npm.js +198 -0
  70. package/dist/cleaners/npm.js.map +1 -0
  71. package/dist/cleaners/npmEnhanced.d.ts +19 -0
  72. package/dist/cleaners/npmEnhanced.d.ts.map +1 -0
  73. package/dist/cleaners/npmEnhanced.js +336 -0
  74. package/dist/cleaners/npmEnhanced.js.map +1 -0
  75. package/dist/cleaners/nx.d.ts +18 -0
  76. package/dist/cleaners/nx.d.ts.map +1 -0
  77. package/dist/cleaners/nx.js +308 -0
  78. package/dist/cleaners/nx.js.map +1 -0
  79. package/dist/cleaners/pip.d.ts +19 -0
  80. package/dist/cleaners/pip.d.ts.map +1 -0
  81. package/dist/cleaners/pip.js +334 -0
  82. package/dist/cleaners/pip.js.map +1 -0
  83. package/dist/cleaners/pnpm.d.ts +14 -0
  84. package/dist/cleaners/pnpm.d.ts.map +1 -0
  85. package/dist/cleaners/pnpm.js +209 -0
  86. package/dist/cleaners/pnpm.js.map +1 -0
  87. package/dist/cleaners/turbo.d.ts +18 -0
  88. package/dist/cleaners/turbo.d.ts.map +1 -0
  89. package/dist/cleaners/turbo.js +325 -0
  90. package/dist/cleaners/turbo.js.map +1 -0
  91. package/dist/cleaners/vite.d.ts +17 -0
  92. package/dist/cleaners/vite.d.ts.map +1 -0
  93. package/dist/cleaners/vite.js +274 -0
  94. package/dist/cleaners/vite.js.map +1 -0
  95. package/dist/cleaners/vscode.d.ts +14 -0
  96. package/dist/cleaners/vscode.d.ts.map +1 -0
  97. package/dist/cleaners/vscode.js +354 -0
  98. package/dist/cleaners/vscode.js.map +1 -0
  99. package/dist/cleaners/webpack.d.ts +17 -0
  100. package/dist/cleaners/webpack.d.ts.map +1 -0
  101. package/dist/cleaners/webpack.js +263 -0
  102. package/dist/cleaners/webpack.js.map +1 -0
  103. package/dist/cleaners/xcode.d.ts +14 -0
  104. package/dist/cleaners/xcode.d.ts.map +1 -0
  105. package/dist/cleaners/xcode.js +348 -0
  106. package/dist/cleaners/xcode.js.map +1 -0
  107. package/dist/cleaners/yarn.d.ts +16 -0
  108. package/dist/cleaners/yarn.d.ts.map +1 -0
  109. package/dist/cleaners/yarn.js +266 -0
  110. package/dist/cleaners/yarn.js.map +1 -0
  111. package/dist/cli.d.ts +3 -0
  112. package/dist/cli.d.ts.map +1 -0
  113. package/dist/cli.js +346 -0
  114. package/dist/cli.js.map +1 -0
  115. package/dist/commands/auto.d.ts +8 -0
  116. package/dist/commands/auto.d.ts.map +1 -0
  117. package/dist/commands/auto.js +224 -0
  118. package/dist/commands/auto.js.map +1 -0
  119. package/dist/commands/categories.d.ts +8 -0
  120. package/dist/commands/categories.d.ts.map +1 -0
  121. package/dist/commands/categories.js +133 -0
  122. package/dist/commands/categories.js.map +1 -0
  123. package/dist/commands/clean.d.ts +3 -0
  124. package/dist/commands/clean.d.ts.map +1 -0
  125. package/dist/commands/clean.js +149 -0
  126. package/dist/commands/clean.js.map +1 -0
  127. package/dist/commands/config.d.ts +14 -0
  128. package/dist/commands/config.d.ts.map +1 -0
  129. package/dist/commands/config.js +445 -0
  130. package/dist/commands/config.js.map +1 -0
  131. package/dist/commands/configDoctor.d.ts +26 -0
  132. package/dist/commands/configDoctor.d.ts.map +1 -0
  133. package/dist/commands/configDoctor.js +60 -0
  134. package/dist/commands/configDoctor.js.map +1 -0
  135. package/dist/commands/doctor.d.ts +2 -0
  136. package/dist/commands/doctor.d.ts.map +1 -0
  137. package/dist/commands/doctor.js +141 -0
  138. package/dist/commands/doctor.js.map +1 -0
  139. package/dist/commands/emojis.d.ts +2 -0
  140. package/dist/commands/emojis.d.ts.map +1 -0
  141. package/dist/commands/emojis.js +28 -0
  142. package/dist/commands/emojis.js.map +1 -0
  143. package/dist/commands/interactive.d.ts +3 -0
  144. package/dist/commands/interactive.d.ts.map +1 -0
  145. package/dist/commands/interactive.js +284 -0
  146. package/dist/commands/interactive.js.map +1 -0
  147. package/dist/commands/interactiveEnhanced.d.ts +4 -0
  148. package/dist/commands/interactiveEnhanced.d.ts.map +1 -0
  149. package/dist/commands/interactiveEnhanced.js +460 -0
  150. package/dist/commands/interactiveEnhanced.js.map +1 -0
  151. package/dist/commands/list.d.ts +2 -0
  152. package/dist/commands/list.d.ts.map +1 -0
  153. package/dist/commands/list.js +68 -0
  154. package/dist/commands/list.js.map +1 -0
  155. package/dist/commands/sizes.d.ts +2 -0
  156. package/dist/commands/sizes.d.ts.map +1 -0
  157. package/dist/commands/sizes.js +87 -0
  158. package/dist/commands/sizes.js.map +1 -0
  159. package/dist/config/index.d.ts +26 -0
  160. package/dist/config/index.d.ts.map +1 -0
  161. package/dist/config/index.js +228 -0
  162. package/dist/config/index.js.map +1 -0
  163. package/dist/config/loadConfig.d.ts +7 -0
  164. package/dist/config/loadConfig.d.ts.map +1 -0
  165. package/dist/config/loadConfig.js +103 -0
  166. package/dist/config/loadConfig.js.map +1 -0
  167. package/dist/config/migrateConfig.d.ts +56 -0
  168. package/dist/config/migrateConfig.d.ts.map +1 -0
  169. package/dist/config/migrateConfig.js +102 -0
  170. package/dist/config/migrateConfig.js.map +1 -0
  171. package/dist/plugins/discovery.d.ts +6 -0
  172. package/dist/plugins/discovery.d.ts.map +1 -0
  173. package/dist/plugins/discovery.js +64 -0
  174. package/dist/plugins/discovery.js.map +1 -0
  175. package/dist/profiles/index.d.ts +61 -0
  176. package/dist/profiles/index.d.ts.map +1 -0
  177. package/dist/profiles/index.js +361 -0
  178. package/dist/profiles/index.js.map +1 -0
  179. package/dist/types/index.d.ts +161 -0
  180. package/dist/types/index.d.ts.map +1 -0
  181. package/dist/types/index.js +3 -0
  182. package/dist/types/index.js.map +1 -0
  183. package/dist/utils/cli.d.ts +44 -0
  184. package/dist/utils/cli.d.ts.map +1 -0
  185. package/dist/utils/cli.js +407 -0
  186. package/dist/utils/cli.js.map +1 -0
  187. package/dist/utils/fs.d.ts +15 -0
  188. package/dist/utils/fs.d.ts.map +1 -0
  189. package/dist/utils/fs.js +218 -0
  190. package/dist/utils/fs.js.map +1 -0
  191. package/package.json +122 -0
@@ -0,0 +1,375 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.AndroidStudioCleaner = void 0;
37
+ const fs_1 = require("fs");
38
+ const path = __importStar(require("path"));
39
+ const os = __importStar(require("os"));
40
+ const fs_2 = require("../utils/fs");
41
+ const cli_1 = require("../utils/cli");
42
+ const minimatch_1 = require("minimatch");
43
+ class AndroidStudioCleaner {
44
+ constructor() {
45
+ this.name = "androidstudio";
46
+ this.type = "ide";
47
+ this.description = "Android Studio IDE caches, build files, and gradle wrapper";
48
+ }
49
+ async findAndroidStudioInstallation() {
50
+ const platform = os.platform();
51
+ if (platform === "darwin") {
52
+ // macOS
53
+ const macPaths = [
54
+ "/Applications/Android Studio.app",
55
+ "/Applications/Android Studio Preview.app",
56
+ ];
57
+ for (const appPath of macPaths) {
58
+ if (await (0, fs_2.pathExists)(appPath)) {
59
+ return appPath;
60
+ }
61
+ }
62
+ }
63
+ else if (platform === "win32") {
64
+ // Windows
65
+ const windowsPaths = [
66
+ "C:\\Program Files\\Android\\Android Studio",
67
+ "C:\\Program Files (x86)\\Android\\Android Studio",
68
+ ];
69
+ for (const installPath of windowsPaths) {
70
+ if (await (0, fs_2.pathExists)(installPath)) {
71
+ return installPath;
72
+ }
73
+ }
74
+ }
75
+ else {
76
+ // Linux
77
+ const linuxPaths = [
78
+ "/opt/android-studio",
79
+ "/usr/local/android-studio",
80
+ path.join(os.homedir(), "android-studio"),
81
+ ];
82
+ for (const installPath of linuxPaths) {
83
+ if (await (0, fs_2.pathExists)(installPath)) {
84
+ return installPath;
85
+ }
86
+ }
87
+ }
88
+ return null;
89
+ }
90
+ async getAndroidStudioCachePaths() {
91
+ const paths = [];
92
+ const homeDir = os.homedir();
93
+ const platform = os.platform();
94
+ // Platform-specific Android Studio cache paths
95
+ if (platform === "darwin") {
96
+ // macOS paths
97
+ const macPaths = [
98
+ path.join(homeDir, "Library", "Caches", "AndroidStudio*"),
99
+ path.join(homeDir, "Library", "Application Support", "AndroidStudio*"),
100
+ path.join(homeDir, "Library", "Logs", "AndroidStudio*"),
101
+ path.join(homeDir, "Library", "Preferences", "AndroidStudio*"),
102
+ path.join(homeDir, ".android"),
103
+ path.join(homeDir, ".gradle", "caches"),
104
+ ];
105
+ for (const cachePath of macPaths) {
106
+ if (cachePath.includes("*")) {
107
+ // Handle glob patterns for versioned directories
108
+ const baseDir = path.dirname(cachePath);
109
+ const pattern = path.basename(cachePath).replace("*", "");
110
+ try {
111
+ if (await (0, fs_2.pathExists)(baseDir)) {
112
+ const entries = await fs_1.promises.readdir(baseDir);
113
+ for (const entry of entries) {
114
+ if (entry.startsWith(pattern)) {
115
+ paths.push(path.join(baseDir, entry));
116
+ }
117
+ }
118
+ }
119
+ }
120
+ catch {
121
+ // Ignore errors
122
+ }
123
+ }
124
+ else if (await (0, fs_2.pathExists)(cachePath)) {
125
+ paths.push(cachePath);
126
+ }
127
+ }
128
+ }
129
+ else if (platform === "win32") {
130
+ // Windows paths
131
+ const windowsPaths = [
132
+ path.join(homeDir, "AppData", "Local", "Android", "Sdk", ".temp"),
133
+ path.join(homeDir, "AppData", "Local", "Google", "AndroidStudio*"),
134
+ path.join(homeDir, "AppData", "Roaming", "Google", "AndroidStudio*"),
135
+ path.join(homeDir, ".android"),
136
+ path.join(homeDir, ".gradle", "caches"),
137
+ ];
138
+ for (const cachePath of windowsPaths) {
139
+ if (cachePath.includes("*")) {
140
+ const baseDir = path.dirname(cachePath);
141
+ const pattern = path.basename(cachePath).replace("*", "");
142
+ try {
143
+ if (await (0, fs_2.pathExists)(baseDir)) {
144
+ const entries = await fs_1.promises.readdir(baseDir);
145
+ for (const entry of entries) {
146
+ if (entry.startsWith(pattern)) {
147
+ paths.push(path.join(baseDir, entry));
148
+ }
149
+ }
150
+ }
151
+ }
152
+ catch {
153
+ // Ignore errors
154
+ }
155
+ }
156
+ else if (await (0, fs_2.pathExists)(cachePath)) {
157
+ paths.push(cachePath);
158
+ }
159
+ }
160
+ }
161
+ else {
162
+ // Linux paths
163
+ const linuxPaths = [
164
+ path.join(homeDir, ".cache", "Google", "AndroidStudio*"),
165
+ path.join(homeDir, ".config", "Google", "AndroidStudio*"),
166
+ path.join(homeDir, ".local", "share", "Google", "AndroidStudio*"),
167
+ path.join(homeDir, ".android"),
168
+ path.join(homeDir, ".gradle", "caches"),
169
+ ];
170
+ for (const cachePath of linuxPaths) {
171
+ if (cachePath.includes("*")) {
172
+ const baseDir = path.dirname(cachePath);
173
+ const pattern = path.basename(cachePath).replace("*", "");
174
+ try {
175
+ if (await (0, fs_2.pathExists)(baseDir)) {
176
+ const entries = await fs_1.promises.readdir(baseDir);
177
+ for (const entry of entries) {
178
+ if (entry.startsWith(pattern)) {
179
+ paths.push(path.join(baseDir, entry));
180
+ }
181
+ }
182
+ }
183
+ }
184
+ catch {
185
+ // Ignore errors
186
+ }
187
+ }
188
+ else if (await (0, fs_2.pathExists)(cachePath)) {
189
+ paths.push(cachePath);
190
+ }
191
+ }
192
+ }
193
+ // Look for Android projects with build directories
194
+ try {
195
+ const projectBuildDirs = await this.findAndroidProjectBuildDirs();
196
+ paths.push(...projectBuildDirs);
197
+ }
198
+ catch (error) {
199
+ (0, cli_1.printVerbose)(`Error finding Android project build dirs: ${error}`);
200
+ }
201
+ return [...new Set(paths)]; // Remove duplicates
202
+ }
203
+ async findAndroidProjectBuildDirs() {
204
+ const buildDirs = [];
205
+ const homeDir = os.homedir();
206
+ // Common project directories
207
+ const searchDirs = [
208
+ path.join(homeDir, "AndroidStudioProjects"),
209
+ path.join(homeDir, "Projects"),
210
+ path.join(homeDir, "Development"),
211
+ path.join(homeDir, "dev"),
212
+ path.join(homeDir, "Documents"),
213
+ process.cwd(),
214
+ ];
215
+ for (const searchDir of searchDirs) {
216
+ if (await (0, fs_2.pathExists)(searchDir)) {
217
+ try {
218
+ const projects = await this.findAndroidProjectsRecursively(searchDir, 2);
219
+ buildDirs.push(...projects);
220
+ }
221
+ catch (error) {
222
+ (0, cli_1.printVerbose)(`Error searching ${searchDir}: ${error}`);
223
+ }
224
+ }
225
+ }
226
+ return buildDirs;
227
+ }
228
+ async findAndroidProjectsRecursively(dir, maxDepth) {
229
+ if (maxDepth <= 0)
230
+ return [];
231
+ const buildDirs = [];
232
+ try {
233
+ const entries = await fs_1.promises.readdir(dir, { withFileTypes: true });
234
+ for (const entry of entries) {
235
+ if (entry.isDirectory() && !entry.name.startsWith(".")) {
236
+ const fullPath = path.join(dir, entry.name);
237
+ // Check if this is an Android project
238
+ const gradleFile = path.join(fullPath, "build.gradle");
239
+ const gradleKtsFile = path.join(fullPath, "build.gradle.kts");
240
+ const androidManifest = path.join(fullPath, "app", "src", "main", "AndroidManifest.xml");
241
+ if ((await (0, fs_2.pathExists)(gradleFile)) ||
242
+ (await (0, fs_2.pathExists)(gradleKtsFile)) ||
243
+ (await (0, fs_2.pathExists)(androidManifest))) {
244
+ // This looks like an Android project, add build directories
245
+ const buildLocations = [
246
+ path.join(fullPath, "build"),
247
+ path.join(fullPath, "app", "build"),
248
+ path.join(fullPath, ".gradle"),
249
+ ];
250
+ for (const buildDir of buildLocations) {
251
+ if (await (0, fs_2.pathExists)(buildDir)) {
252
+ buildDirs.push(buildDir);
253
+ }
254
+ }
255
+ }
256
+ // Recursively search subdirectories
257
+ const subBuildDirs = await this.findAndroidProjectsRecursively(fullPath, maxDepth - 1);
258
+ buildDirs.push(...subBuildDirs);
259
+ }
260
+ }
261
+ }
262
+ catch {
263
+ // Ignore permission errors
264
+ }
265
+ return buildDirs;
266
+ }
267
+ async isAvailable() {
268
+ // Check if Android Studio is installed OR if there are Android projects
269
+ const installation = await this.findAndroidStudioInstallation();
270
+ if (installation) {
271
+ (0, cli_1.printVerbose)(`Found Android Studio at ${installation}`);
272
+ return true;
273
+ }
274
+ // Check for Android SDK
275
+ const homeDir = os.homedir();
276
+ const sdkPaths = [
277
+ path.join(homeDir, "Android", "Sdk"),
278
+ path.join(homeDir, "Library", "Android", "sdk"), // macOS
279
+ "/opt/android-sdk",
280
+ ];
281
+ for (const sdkPath of sdkPaths) {
282
+ if (await (0, fs_2.pathExists)(sdkPath)) {
283
+ (0, cli_1.printVerbose)(`Found Android SDK at ${sdkPath}`);
284
+ return true;
285
+ }
286
+ }
287
+ return false;
288
+ }
289
+ async getCacheInfo() {
290
+ const isInstalled = await this.isAvailable();
291
+ if (!isInstalled) {
292
+ return {
293
+ name: this.name,
294
+ type: this.type,
295
+ description: this.description,
296
+ paths: [],
297
+ isInstalled: false,
298
+ size: 0,
299
+ };
300
+ }
301
+ const cachePaths = await this.getAndroidStudioCachePaths();
302
+ let totalSize = 0;
303
+ const validPaths = [];
304
+ for (const cachePath of cachePaths) {
305
+ try {
306
+ const size = await (0, fs_2.getDirectorySize)(cachePath, true); // Use estimated size for large dirs
307
+ totalSize += size;
308
+ validPaths.push(cachePath);
309
+ (0, cli_1.printVerbose)(`${cli_1.symbols.folder} ${cachePath}: ${(size / (1024 * 1024)).toFixed(1)} MB`);
310
+ }
311
+ catch (error) {
312
+ (0, cli_1.printVerbose)(`Error calculating size for ${cachePath}: ${error}`);
313
+ }
314
+ }
315
+ return {
316
+ name: this.name,
317
+ type: this.type,
318
+ description: this.description,
319
+ paths: validPaths,
320
+ isInstalled: true,
321
+ size: totalSize,
322
+ };
323
+ }
324
+ async clear(dryRun = false, _criteria, cacheInfo, protectedPaths = []) {
325
+ const info = cacheInfo || (await this.getCacheInfo());
326
+ if (!info.isInstalled) {
327
+ return {
328
+ name: this.name,
329
+ success: false,
330
+ error: "Android Studio is not available",
331
+ clearedPaths: [],
332
+ sizeBefore: 0,
333
+ sizeAfter: 0,
334
+ };
335
+ }
336
+ const sizeBefore = info.size || 0;
337
+ const clearedPaths = [];
338
+ let errors = [];
339
+ for (const cachePath of info.paths) {
340
+ // Check if the path is protected
341
+ const isProtected = protectedPaths.some((protectedPattern) => (0, minimatch_1.minimatch)(cachePath, protectedPattern, { dot: true }));
342
+ if (isProtected) {
343
+ (0, cli_1.printVerbose)(`Skipping protected path: ${cachePath}`);
344
+ continue; // Skip this path
345
+ }
346
+ try {
347
+ if (dryRun) {
348
+ (0, cli_1.printVerbose)(`${cli_1.symbols.soap} Would clear: ${cachePath}`);
349
+ clearedPaths.push(cachePath);
350
+ }
351
+ else {
352
+ (0, cli_1.printVerbose)(`${cli_1.symbols.soap} Clearing: ${cachePath}`);
353
+ await (0, fs_2.safeRmrf)(cachePath);
354
+ clearedPaths.push(cachePath);
355
+ }
356
+ }
357
+ catch (error) {
358
+ const errorMsg = `Failed to clear ${cachePath}: ${error}`;
359
+ errors.push(errorMsg);
360
+ (0, cli_1.printVerbose)(errorMsg);
361
+ }
362
+ }
363
+ return {
364
+ name: this.name,
365
+ success: errors.length === 0,
366
+ sizeBefore,
367
+ sizeAfter: 0, // Set to 0 as we don't want to rescan
368
+ error: errors.length > 0 ? errors.join("; ") : undefined,
369
+ clearedPaths,
370
+ };
371
+ }
372
+ }
373
+ exports.AndroidStudioCleaner = AndroidStudioCleaner;
374
+ exports.default = new AndroidStudioCleaner();
375
+ //# sourceMappingURL=androidstudio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"androidstudio.js","sourceRoot":"","sources":["../../src/cleaners/androidstudio.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { CleanerModule } from "../types";
2
+ declare const cleaner: CleanerModule;
3
+ export default cleaner;
4
+ //# sourceMappingURL=brew.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brew.d.ts","sourceRoot":"","sources":["../../src/cleaners/brew.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAKd,MAAM,UAAU,CAAC;AAOlB,QAAA,MAAM,OAAO,EAAE,aA4Md,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fs_1 = require("../utils/fs");
7
+ const child_process_1 = require("child_process");
8
+ const cli_1 = require("../utils/cli");
9
+ const os_1 = __importDefault(require("os"));
10
+ const minimatch_1 = require("minimatch");
11
+ const cleaner = {
12
+ name: "brew",
13
+ type: "package-manager",
14
+ description: "Homebrew package manager caches and old versions",
15
+ async isAvailable() {
16
+ // Only works on macOS and Linux
17
+ if (os_1.default.platform() !== "darwin" && os_1.default.platform() !== "linux") {
18
+ return false;
19
+ }
20
+ // Check if brew is installed
21
+ try {
22
+ (0, child_process_1.execSync)("which brew", { stdio: "ignore" });
23
+ return true;
24
+ }
25
+ catch {
26
+ return false;
27
+ }
28
+ },
29
+ async getCacheInfo() {
30
+ // Only works on macOS and Linux
31
+ if (os_1.default.platform() !== "darwin" && os_1.default.platform() !== "linux") {
32
+ return {
33
+ name: this.name,
34
+ type: this.type,
35
+ description: this.description,
36
+ paths: [],
37
+ isInstalled: false,
38
+ size: 0,
39
+ };
40
+ }
41
+ // Check if brew is installed
42
+ let isInstalled = false;
43
+ try {
44
+ (0, child_process_1.execSync)("which brew", { stdio: "ignore" });
45
+ isInstalled = true;
46
+ }
47
+ catch {
48
+ return {
49
+ name: this.name,
50
+ type: this.type,
51
+ description: this.description,
52
+ paths: [],
53
+ isInstalled: false,
54
+ size: 0,
55
+ };
56
+ }
57
+ const paths = [];
58
+ let totalSize = 0;
59
+ try {
60
+ // Get Homebrew cache location
61
+ const cacheDir = (0, child_process_1.execSync)("brew --cache", { encoding: "utf8" }).trim();
62
+ if (cacheDir) {
63
+ paths.push(cacheDir);
64
+ totalSize += await (0, fs_1.getCacheSize)(cacheDir);
65
+ }
66
+ // Get old versions size (this is a dry-run to get size)
67
+ try {
68
+ const cleanupDryRun = (0, child_process_1.execSync)("brew cleanup -s --dry-run 2>&1", {
69
+ encoding: "utf8",
70
+ });
71
+ const sizeMatch = cleanupDryRun.match(/Would remove: .* \((.+?)\)/);
72
+ if (sizeMatch && sizeMatch[1]) {
73
+ const sizeStr = sizeMatch[1];
74
+ // Parse size (e.g., "1.2GB", "500MB", "100KB")
75
+ const sizeNum = parseFloat(sizeStr);
76
+ if (sizeStr.includes("GB")) {
77
+ totalSize += sizeNum * 1024 * 1024 * 1024;
78
+ }
79
+ else if (sizeStr.includes("MB")) {
80
+ totalSize += sizeNum * 1024 * 1024;
81
+ }
82
+ else if (sizeStr.includes("KB")) {
83
+ totalSize += sizeNum * 1024;
84
+ }
85
+ }
86
+ }
87
+ catch {
88
+ // Ignore if cleanup dry-run fails
89
+ }
90
+ }
91
+ catch (error) {
92
+ (0, cli_1.printVerbose)(`Error getting Homebrew cache info: ${error}`);
93
+ }
94
+ return {
95
+ name: this.name,
96
+ type: this.type,
97
+ description: this.description,
98
+ paths,
99
+ isInstalled,
100
+ size: totalSize,
101
+ };
102
+ },
103
+ async clear(dryRun, _criteria, cacheInfo, protectedPaths = []) {
104
+ const info = cacheInfo || (await this.getCacheInfo());
105
+ const sizeBefore = info.size || 0;
106
+ const clearedPaths = [];
107
+ if (!info.isInstalled) {
108
+ return {
109
+ name: this.name,
110
+ success: false,
111
+ error: "Homebrew is not installed",
112
+ clearedPaths: [],
113
+ sizeBefore: 0,
114
+ sizeAfter: 0,
115
+ };
116
+ }
117
+ // Check if any of the paths are protected
118
+ const pathsToClear = info.paths.filter((cachePath) => {
119
+ const isProtected = protectedPaths.some((protectedPattern) => (0, minimatch_1.minimatch)(cachePath, protectedPattern, { dot: true }));
120
+ if (isProtected) {
121
+ (0, cli_1.printVerbose)(`Skipping protected path: ${cachePath}`);
122
+ }
123
+ return !isProtected;
124
+ });
125
+ if (pathsToClear.length === 0 && !dryRun) {
126
+ // If all paths are protected and not a dry run
127
+ (0, cli_1.printVerbose)("All Homebrew cache paths are protected. Nothing to clear.");
128
+ return {
129
+ name: this.name,
130
+ success: true,
131
+ clearedPaths: [],
132
+ sizeBefore: 0,
133
+ sizeAfter: 0,
134
+ };
135
+ }
136
+ try {
137
+ if (dryRun) {
138
+ (0, cli_1.printVerbose)(`${cli_1.symbols.info} [DRY RUN] Would run: brew cleanup -s`);
139
+ (0, cli_1.printVerbose)(`${cli_1.symbols.info} [DRY RUN] Would clear Homebrew cache and old versions`);
140
+ // Get what would be cleaned
141
+ try {
142
+ const cleanupDryRun = (0, child_process_1.execSync)("brew cleanup -s --dry-run 2>&1", {
143
+ encoding: "utf8",
144
+ });
145
+ const lines = cleanupDryRun.split("\n");
146
+ for (const line of lines) {
147
+ if (line.includes("Would remove:") || line.includes("==>")) {
148
+ (0, cli_1.printVerbose)(` ${line.trim()}`);
149
+ }
150
+ }
151
+ }
152
+ catch {
153
+ // Ignore dry-run errors
154
+ }
155
+ return {
156
+ name: this.name,
157
+ success: true,
158
+ clearedPaths: pathsToClear, // Only report paths that would be cleared
159
+ sizeBefore,
160
+ sizeAfter: sizeBefore,
161
+ };
162
+ }
163
+ // Run actual cleanup
164
+ (0, cli_1.printVerbose)(`${cli_1.symbols.soap} Running Homebrew cleanup...`);
165
+ try {
166
+ // Clean up old versions and cache
167
+ (0, child_process_1.execSync)("brew cleanup -s", { stdio: "inherit" });
168
+ clearedPaths.push(...pathsToClear); // Only push paths that were actually cleared
169
+ // Also prune old downloads
170
+ (0, child_process_1.execSync)("brew cleanup --prune=all", { stdio: "ignore" });
171
+ (0, cli_1.printVerbose)(`${cli_1.symbols.bubbles} Homebrew cleanup completed`);
172
+ }
173
+ catch (error) {
174
+ (0, cli_1.printVerbose)(`${cli_1.symbols.warning} Partial Homebrew cleanup: ${error}`);
175
+ }
176
+ return {
177
+ name: this.name,
178
+ success: true,
179
+ clearedPaths,
180
+ sizeBefore,
181
+ sizeAfter: 0, // Set to 0 as we don't want to rescan
182
+ };
183
+ }
184
+ catch (error) {
185
+ return {
186
+ name: this.name,
187
+ success: false,
188
+ error: error instanceof Error ? error.message : String(error),
189
+ clearedPaths: [],
190
+ sizeBefore,
191
+ sizeAfter: sizeBefore,
192
+ };
193
+ }
194
+ },
195
+ };
196
+ exports.default = cleaner;
197
+ //# sourceMappingURL=brew.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brew.js","sourceRoot":"","sources":["../../src/cleaners/brew.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { BaseCleaner } from "./BaseCleaner";
2
+ import { CacheInfo, CacheCategory, CacheType } from "../types";
3
+ export declare class HomebrewEnhancedCleaner extends BaseCleaner {
4
+ name: string;
5
+ type: CacheType;
6
+ description: string;
7
+ private getCachePaths;
8
+ isAvailable(): Promise<boolean>;
9
+ getCacheInfo(): Promise<CacheInfo>;
10
+ getCacheCategories(): Promise<CacheCategory[]>;
11
+ /**
12
+ * Clear cache with Homebrew's built-in commands when possible
13
+ */
14
+ clear(dryRun?: boolean, criteria?: any, cacheInfo?: CacheInfo, protectedPaths?: string[]): Promise<any>;
15
+ }
16
+ declare const _default: HomebrewEnhancedCleaner;
17
+ export default _default;
18
+ //# sourceMappingURL=brewEnhanced.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brewEnhanced.d.ts","sourceRoot":"","sources":["../../src/cleaners/brewEnhanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAQ/D,qBAAa,uBAAwB,SAAQ,WAAW;IACtD,IAAI,SAAc;IAClB,IAAI,EAAE,SAAS,CAAqB;IACpC,WAAW,SAA2D;IAEtE,OAAO,CAAC,aAAa;IAkDf,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAiB/B,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAqElC,kBAAkB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAmGpD;;OAEG;IACG,KAAK,CACT,MAAM,CAAC,EAAE,OAAO,EAChB,QAAQ,CAAC,EAAE,GAAG,EACd,SAAS,CAAC,EAAE,SAAS,EACrB,cAAc,CAAC,EAAE,MAAM,EAAE,GACxB,OAAO,CAAC,GAAG,CAAC;CA6BhB;;AAED,wBAA6C"}