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.
Files changed (217) hide show
  1. package/package.json +25 -23
  2. package/dist/cleaners/BaseCleaner.d.ts +0 -57
  3. package/dist/cleaners/BaseCleaner.d.ts.map +0 -1
  4. package/dist/cleaners/BaseCleaner.js +0 -299
  5. package/dist/cleaners/BaseCleaner.js.map +0 -1
  6. package/dist/cleaners/CleanerRegistry.d.ts +0 -65
  7. package/dist/cleaners/CleanerRegistry.d.ts.map +0 -1
  8. package/dist/cleaners/CleanerRegistry.js +0 -112
  9. package/dist/cleaners/CleanerRegistry.js.map +0 -1
  10. package/dist/cleaners/androidstudio.d.ts +0 -16
  11. package/dist/cleaners/androidstudio.d.ts.map +0 -1
  12. package/dist/cleaners/androidstudio.js +0 -375
  13. package/dist/cleaners/androidstudio.js.map +0 -1
  14. package/dist/cleaners/brew.d.ts +0 -4
  15. package/dist/cleaners/brew.d.ts.map +0 -1
  16. package/dist/cleaners/brew.js +0 -197
  17. package/dist/cleaners/brew.js.map +0 -1
  18. package/dist/cleaners/brewEnhanced.d.ts +0 -18
  19. package/dist/cleaners/brewEnhanced.d.ts.map +0 -1
  20. package/dist/cleaners/brewEnhanced.js +0 -255
  21. package/dist/cleaners/brewEnhanced.js.map +0 -1
  22. package/dist/cleaners/bun.d.ts +0 -14
  23. package/dist/cleaners/bun.d.ts.map +0 -1
  24. package/dist/cleaners/bun.js +0 -207
  25. package/dist/cleaners/bun.js.map +0 -1
  26. package/dist/cleaners/cargo.d.ts +0 -15
  27. package/dist/cleaners/cargo.d.ts.map +0 -1
  28. package/dist/cleaners/cargo.js +0 -193
  29. package/dist/cleaners/cargo.js.map +0 -1
  30. package/dist/cleaners/chrome.d.ts +0 -14
  31. package/dist/cleaners/chrome.d.ts.map +0 -1
  32. package/dist/cleaners/chrome.js +0 -250
  33. package/dist/cleaners/chrome.js.map +0 -1
  34. package/dist/cleaners/cocoapods.d.ts +0 -16
  35. package/dist/cleaners/cocoapods.d.ts.map +0 -1
  36. package/dist/cleaners/cocoapods.js +0 -180
  37. package/dist/cleaners/cocoapods.js.map +0 -1
  38. package/dist/cleaners/docker.d.ts +0 -35
  39. package/dist/cleaners/docker.d.ts.map +0 -1
  40. package/dist/cleaners/docker.js +0 -285
  41. package/dist/cleaners/docker.js.map +0 -1
  42. package/dist/cleaners/firefox.d.ts +0 -15
  43. package/dist/cleaners/firefox.d.ts.map +0 -1
  44. package/dist/cleaners/firefox.js +0 -281
  45. package/dist/cleaners/firefox.js.map +0 -1
  46. package/dist/cleaners/flutter.d.ts +0 -18
  47. package/dist/cleaners/flutter.d.ts.map +0 -1
  48. package/dist/cleaners/flutter.js +0 -354
  49. package/dist/cleaners/flutter.js.map +0 -1
  50. package/dist/cleaners/goBuild.d.ts +0 -18
  51. package/dist/cleaners/goBuild.d.ts.map +0 -1
  52. package/dist/cleaners/goBuild.js +0 -196
  53. package/dist/cleaners/goBuild.js.map +0 -1
  54. package/dist/cleaners/gradle.d.ts +0 -14
  55. package/dist/cleaners/gradle.d.ts.map +0 -1
  56. package/dist/cleaners/gradle.js +0 -336
  57. package/dist/cleaners/gradle.js.map +0 -1
  58. package/dist/cleaners/index.d.ts +0 -51
  59. package/dist/cleaners/index.d.ts.map +0 -1
  60. package/dist/cleaners/index.js +0 -247
  61. package/dist/cleaners/index.js.map +0 -1
  62. package/dist/cleaners/jetbrains.d.ts +0 -18
  63. package/dist/cleaners/jetbrains.d.ts.map +0 -1
  64. package/dist/cleaners/jetbrains.js +0 -441
  65. package/dist/cleaners/jetbrains.js.map +0 -1
  66. package/dist/cleaners/maven.d.ts +0 -15
  67. package/dist/cleaners/maven.d.ts.map +0 -1
  68. package/dist/cleaners/maven.js +0 -182
  69. package/dist/cleaners/maven.js.map +0 -1
  70. package/dist/cleaners/nix.d.ts +0 -4
  71. package/dist/cleaners/nix.d.ts.map +0 -1
  72. package/dist/cleaners/nix.js +0 -227
  73. package/dist/cleaners/nix.js.map +0 -1
  74. package/dist/cleaners/nodeGyp.d.ts +0 -14
  75. package/dist/cleaners/nodeGyp.d.ts.map +0 -1
  76. package/dist/cleaners/nodeGyp.js +0 -157
  77. package/dist/cleaners/nodeGyp.js.map +0 -1
  78. package/dist/cleaners/npm.d.ts +0 -14
  79. package/dist/cleaners/npm.d.ts.map +0 -1
  80. package/dist/cleaners/npm.js +0 -198
  81. package/dist/cleaners/npm.js.map +0 -1
  82. package/dist/cleaners/npmEnhanced.d.ts +0 -19
  83. package/dist/cleaners/npmEnhanced.d.ts.map +0 -1
  84. package/dist/cleaners/npmEnhanced.js +0 -336
  85. package/dist/cleaners/npmEnhanced.js.map +0 -1
  86. package/dist/cleaners/nuget.d.ts +0 -16
  87. package/dist/cleaners/nuget.d.ts.map +0 -1
  88. package/dist/cleaners/nuget.js +0 -197
  89. package/dist/cleaners/nuget.js.map +0 -1
  90. package/dist/cleaners/nx.d.ts +0 -18
  91. package/dist/cleaners/nx.d.ts.map +0 -1
  92. package/dist/cleaners/nx.js +0 -308
  93. package/dist/cleaners/nx.js.map +0 -1
  94. package/dist/cleaners/pip.d.ts +0 -19
  95. package/dist/cleaners/pip.d.ts.map +0 -1
  96. package/dist/cleaners/pip.js +0 -334
  97. package/dist/cleaners/pip.js.map +0 -1
  98. package/dist/cleaners/pipenv.d.ts +0 -16
  99. package/dist/cleaners/pipenv.d.ts.map +0 -1
  100. package/dist/cleaners/pipenv.js +0 -184
  101. package/dist/cleaners/pipenv.js.map +0 -1
  102. package/dist/cleaners/pnpm.d.ts +0 -14
  103. package/dist/cleaners/pnpm.d.ts.map +0 -1
  104. package/dist/cleaners/pnpm.js +0 -209
  105. package/dist/cleaners/pnpm.js.map +0 -1
  106. package/dist/cleaners/poetry.d.ts +0 -16
  107. package/dist/cleaners/poetry.d.ts.map +0 -1
  108. package/dist/cleaners/poetry.js +0 -184
  109. package/dist/cleaners/poetry.js.map +0 -1
  110. package/dist/cleaners/swiftpm.d.ts +0 -16
  111. package/dist/cleaners/swiftpm.d.ts.map +0 -1
  112. package/dist/cleaners/swiftpm.js +0 -179
  113. package/dist/cleaners/swiftpm.js.map +0 -1
  114. package/dist/cleaners/turbo.d.ts +0 -18
  115. package/dist/cleaners/turbo.d.ts.map +0 -1
  116. package/dist/cleaners/turbo.js +0 -325
  117. package/dist/cleaners/turbo.js.map +0 -1
  118. package/dist/cleaners/vite.d.ts +0 -17
  119. package/dist/cleaners/vite.d.ts.map +0 -1
  120. package/dist/cleaners/vite.js +0 -274
  121. package/dist/cleaners/vite.js.map +0 -1
  122. package/dist/cleaners/vscode.d.ts +0 -14
  123. package/dist/cleaners/vscode.d.ts.map +0 -1
  124. package/dist/cleaners/vscode.js +0 -354
  125. package/dist/cleaners/vscode.js.map +0 -1
  126. package/dist/cleaners/webpack.d.ts +0 -17
  127. package/dist/cleaners/webpack.d.ts.map +0 -1
  128. package/dist/cleaners/webpack.js +0 -263
  129. package/dist/cleaners/webpack.js.map +0 -1
  130. package/dist/cleaners/xcode.d.ts +0 -14
  131. package/dist/cleaners/xcode.d.ts.map +0 -1
  132. package/dist/cleaners/xcode.js +0 -348
  133. package/dist/cleaners/xcode.js.map +0 -1
  134. package/dist/cleaners/yarn.d.ts +0 -16
  135. package/dist/cleaners/yarn.d.ts.map +0 -1
  136. package/dist/cleaners/yarn.js +0 -266
  137. package/dist/cleaners/yarn.js.map +0 -1
  138. package/dist/cli.d.ts +0 -3
  139. package/dist/cli.d.ts.map +0 -1
  140. package/dist/cli.js +0 -346
  141. package/dist/cli.js.map +0 -1
  142. package/dist/commands/auto.d.ts +0 -8
  143. package/dist/commands/auto.d.ts.map +0 -1
  144. package/dist/commands/auto.js +0 -224
  145. package/dist/commands/auto.js.map +0 -1
  146. package/dist/commands/categories.d.ts +0 -8
  147. package/dist/commands/categories.d.ts.map +0 -1
  148. package/dist/commands/categories.js +0 -133
  149. package/dist/commands/categories.js.map +0 -1
  150. package/dist/commands/clean.d.ts +0 -3
  151. package/dist/commands/clean.d.ts.map +0 -1
  152. package/dist/commands/clean.js +0 -149
  153. package/dist/commands/clean.js.map +0 -1
  154. package/dist/commands/config.d.ts +0 -14
  155. package/dist/commands/config.d.ts.map +0 -1
  156. package/dist/commands/config.js +0 -445
  157. package/dist/commands/config.js.map +0 -1
  158. package/dist/commands/configDoctor.d.ts +0 -26
  159. package/dist/commands/configDoctor.d.ts.map +0 -1
  160. package/dist/commands/configDoctor.js +0 -60
  161. package/dist/commands/configDoctor.js.map +0 -1
  162. package/dist/commands/doctor.d.ts +0 -2
  163. package/dist/commands/doctor.d.ts.map +0 -1
  164. package/dist/commands/doctor.js +0 -141
  165. package/dist/commands/doctor.js.map +0 -1
  166. package/dist/commands/emojis.d.ts +0 -2
  167. package/dist/commands/emojis.d.ts.map +0 -1
  168. package/dist/commands/emojis.js +0 -28
  169. package/dist/commands/emojis.js.map +0 -1
  170. package/dist/commands/interactive.d.ts +0 -3
  171. package/dist/commands/interactive.d.ts.map +0 -1
  172. package/dist/commands/interactive.js +0 -284
  173. package/dist/commands/interactive.js.map +0 -1
  174. package/dist/commands/interactiveEnhanced.d.ts +0 -4
  175. package/dist/commands/interactiveEnhanced.d.ts.map +0 -1
  176. package/dist/commands/interactiveEnhanced.js +0 -460
  177. package/dist/commands/interactiveEnhanced.js.map +0 -1
  178. package/dist/commands/list.d.ts +0 -2
  179. package/dist/commands/list.d.ts.map +0 -1
  180. package/dist/commands/list.js +0 -68
  181. package/dist/commands/list.js.map +0 -1
  182. package/dist/commands/sizes.d.ts +0 -2
  183. package/dist/commands/sizes.d.ts.map +0 -1
  184. package/dist/commands/sizes.js +0 -87
  185. package/dist/commands/sizes.js.map +0 -1
  186. package/dist/config/index.d.ts +0 -31
  187. package/dist/config/index.d.ts.map +0 -1
  188. package/dist/config/index.js +0 -241
  189. package/dist/config/index.js.map +0 -1
  190. package/dist/config/loadConfig.d.ts +0 -7
  191. package/dist/config/loadConfig.d.ts.map +0 -1
  192. package/dist/config/loadConfig.js +0 -103
  193. package/dist/config/loadConfig.js.map +0 -1
  194. package/dist/config/migrateConfig.d.ts +0 -56
  195. package/dist/config/migrateConfig.d.ts.map +0 -1
  196. package/dist/config/migrateConfig.js +0 -102
  197. package/dist/config/migrateConfig.js.map +0 -1
  198. package/dist/plugins/discovery.d.ts +0 -6
  199. package/dist/plugins/discovery.d.ts.map +0 -1
  200. package/dist/plugins/discovery.js +0 -64
  201. package/dist/plugins/discovery.js.map +0 -1
  202. package/dist/profiles/index.d.ts +0 -61
  203. package/dist/profiles/index.d.ts.map +0 -1
  204. package/dist/profiles/index.js +0 -361
  205. package/dist/profiles/index.js.map +0 -1
  206. package/dist/types/index.d.ts +0 -161
  207. package/dist/types/index.d.ts.map +0 -1
  208. package/dist/types/index.js +0 -3
  209. package/dist/types/index.js.map +0 -1
  210. package/dist/utils/cli.d.ts +0 -44
  211. package/dist/utils/cli.d.ts.map +0 -1
  212. package/dist/utils/cli.js +0 -410
  213. package/dist/utils/cli.js.map +0 -1
  214. package/dist/utils/fs.d.ts +0 -15
  215. package/dist/utils/fs.d.ts.map +0 -1
  216. package/dist/utils/fs.js +0 -218
  217. package/dist/utils/fs.js.map +0 -1
@@ -1,441 +0,0 @@
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.JetBrainsCleaner = void 0;
37
- const BaseCleaner_1 = require("./BaseCleaner");
38
- const fs_1 = require("fs");
39
- const path = __importStar(require("path"));
40
- const os = __importStar(require("os"));
41
- const fs_2 = require("../utils/fs");
42
- const cli_1 = require("../utils/cli");
43
- const minimatch_1 = require("minimatch");
44
- class JetBrainsCleaner extends BaseCleaner_1.BaseCleaner {
45
- constructor() {
46
- super(...arguments);
47
- this.name = "jetbrains";
48
- this.type = "ide";
49
- this.description = "JetBrains IDEs (WebStorm, IntelliJ, PhpStorm, etc.) comprehensive cache cleaning";
50
- this.jetbrainsProducts = [
51
- "WebStorm",
52
- "IntelliJIdea",
53
- "PhpStorm",
54
- "PyCharm",
55
- "RubyMine",
56
- "CLion",
57
- "DataGrip",
58
- "Rider",
59
- "GoLand",
60
- "AndroidStudio",
61
- "AppCode",
62
- "DataSpell",
63
- "RustRover",
64
- "Aqua",
65
- "Fleet",
66
- "Space",
67
- "Toolbox", // JetBrains Toolbox App
68
- ];
69
- }
70
- // Cache categories for different JetBrains cache types
71
- async findJetBrainsInstallations() {
72
- const installations = [];
73
- const platform = os.platform();
74
- if (platform === "darwin") {
75
- // macOS Applications
76
- const applicationsDir = "/Applications";
77
- for (const product of this.jetbrainsProducts) {
78
- const patterns = [`${product}.app`, `${product}*.app`];
79
- for (const pattern of patterns) {
80
- try {
81
- if (await (0, fs_2.pathExists)(path.join(applicationsDir, pattern.replace("*", "")))) {
82
- installations.push({
83
- product,
84
- path: path.join(applicationsDir, pattern.replace("*", "")),
85
- });
86
- }
87
- else {
88
- // Try to find versioned applications
89
- const entries = await fs_1.promises.readdir(applicationsDir);
90
- for (const entry of entries) {
91
- if (entry.startsWith(product) && entry.endsWith(".app")) {
92
- installations.push({
93
- product,
94
- path: path.join(applicationsDir, entry),
95
- });
96
- }
97
- }
98
- }
99
- }
100
- catch {
101
- // Continue
102
- }
103
- }
104
- }
105
- }
106
- else if (platform === "win32") {
107
- // Windows Program Files
108
- const programFilesDirs = [
109
- "C:\\Program Files\\JetBrains",
110
- "C:\\Program Files (x86)\\JetBrains",
111
- ];
112
- for (const programDir of programFilesDirs) {
113
- if (await (0, fs_2.pathExists)(programDir)) {
114
- try {
115
- const entries = await fs_1.promises.readdir(programDir);
116
- for (const entry of entries) {
117
- for (const product of this.jetbrainsProducts) {
118
- if (entry.includes(product)) {
119
- installations.push({
120
- product,
121
- path: path.join(programDir, entry),
122
- });
123
- }
124
- }
125
- }
126
- }
127
- catch {
128
- // Continue
129
- }
130
- }
131
- }
132
- }
133
- else {
134
- // Linux
135
- const linuxDirs = [
136
- "/opt",
137
- "/usr/local",
138
- path.join(os.homedir(), ".local", "share", "JetBrains"),
139
- ];
140
- for (const baseDir of linuxDirs) {
141
- if (await (0, fs_2.pathExists)(baseDir)) {
142
- try {
143
- const entries = await fs_1.promises.readdir(baseDir);
144
- for (const entry of entries) {
145
- for (const product of this.jetbrainsProducts) {
146
- if (entry.toLowerCase().includes(product.toLowerCase())) {
147
- installations.push({
148
- product,
149
- path: path.join(baseDir, entry),
150
- });
151
- }
152
- }
153
- }
154
- }
155
- catch {
156
- // Continue
157
- }
158
- }
159
- }
160
- }
161
- return installations;
162
- }
163
- async getJetBrainsCachePaths() {
164
- const paths = [];
165
- const homeDir = os.homedir();
166
- const platform = os.platform();
167
- // Platform-specific JetBrains cache paths
168
- if (platform === "darwin") {
169
- // macOS
170
- const macBasePaths = [
171
- path.join(homeDir, "Library", "Caches"),
172
- path.join(homeDir, "Library", "Logs"),
173
- path.join(homeDir, "Library", "Application Support"),
174
- ];
175
- for (const basePath of macBasePaths) {
176
- for (const product of this.jetbrainsProducts) {
177
- const productPaths = [
178
- path.join(basePath, product),
179
- path.join(basePath, `JetBrains${product}`),
180
- ];
181
- for (const productPath of productPaths) {
182
- // Look for versioned directories
183
- try {
184
- if (await (0, fs_2.pathExists)(path.dirname(productPath))) {
185
- const entries = await fs_1.promises.readdir(path.dirname(productPath));
186
- for (const entry of entries) {
187
- if (entry.includes(product) &&
188
- (await (0, fs_2.pathExists)(path.join(path.dirname(productPath), entry)))) {
189
- paths.push(path.join(path.dirname(productPath), entry));
190
- }
191
- }
192
- }
193
- }
194
- catch {
195
- // Continue
196
- }
197
- }
198
- }
199
- }
200
- }
201
- else if (platform === "win32") {
202
- // Windows
203
- const windowsBasePaths = [
204
- path.join(homeDir, "AppData", "Local", "JetBrains"),
205
- path.join(homeDir, "AppData", "Roaming", "JetBrains"),
206
- ];
207
- for (const basePath of windowsBasePaths) {
208
- if (await (0, fs_2.pathExists)(basePath)) {
209
- try {
210
- const entries = await fs_1.promises.readdir(basePath);
211
- for (const entry of entries) {
212
- paths.push(path.join(basePath, entry));
213
- }
214
- }
215
- catch {
216
- // Continue
217
- }
218
- }
219
- }
220
- }
221
- else {
222
- // Linux
223
- const linuxBasePaths = [
224
- path.join(homeDir, ".cache", "JetBrains"),
225
- path.join(homeDir, ".config", "JetBrains"),
226
- path.join(homeDir, ".local", "share", "JetBrains"),
227
- ];
228
- for (const basePath of linuxBasePaths) {
229
- if (await (0, fs_2.pathExists)(basePath)) {
230
- try {
231
- const entries = await fs_1.promises.readdir(basePath);
232
- for (const entry of entries) {
233
- paths.push(path.join(basePath, entry));
234
- }
235
- }
236
- catch {
237
- // Continue
238
- }
239
- }
240
- }
241
- }
242
- // Look for .idea directories in projects
243
- try {
244
- const ideaFolders = await this.findIdeaFolders();
245
- paths.push(...ideaFolders);
246
- }
247
- catch (error) {
248
- (0, cli_1.printVerbose)(`Error finding .idea folders: ${error}`);
249
- }
250
- return [...new Set(paths)]; // Remove duplicates
251
- }
252
- async findIdeaFolders() {
253
- const ideaFolders = [];
254
- const homeDir = os.homedir();
255
- // Common project directories
256
- const searchDirs = [
257
- path.join(homeDir, "Projects"),
258
- path.join(homeDir, "Development"),
259
- path.join(homeDir, "dev"),
260
- path.join(homeDir, "workspace"),
261
- path.join(homeDir, "IdeaProjects"),
262
- path.join(homeDir, "WebstormProjects"),
263
- path.join(homeDir, "Documents"),
264
- process.cwd(),
265
- ];
266
- for (const searchDir of searchDirs) {
267
- if (await (0, fs_2.pathExists)(searchDir)) {
268
- try {
269
- const ideas = await this.findIdeaFoldersRecursively(searchDir, 3);
270
- ideaFolders.push(...ideas);
271
- }
272
- catch (error) {
273
- (0, cli_1.printVerbose)(`Error searching ${searchDir}: ${error}`);
274
- }
275
- }
276
- }
277
- return ideaFolders;
278
- }
279
- async findIdeaFoldersRecursively(dir, maxDepth) {
280
- if (maxDepth <= 0)
281
- return [];
282
- const ideaFolders = [];
283
- try {
284
- const entries = await fs_1.promises.readdir(dir, { withFileTypes: true });
285
- for (const entry of entries) {
286
- if (entry.isDirectory()) {
287
- const fullPath = path.join(dir, entry.name);
288
- if (entry.name === ".idea") {
289
- // Found a .idea folder
290
- ideaFolders.push(fullPath);
291
- }
292
- else if (!entry.name.startsWith(".") &&
293
- entry.name !== "node_modules") {
294
- // Recursively search subdirectories
295
- const subIdeas = await this.findIdeaFoldersRecursively(fullPath, maxDepth - 1);
296
- ideaFolders.push(...subIdeas);
297
- }
298
- }
299
- }
300
- }
301
- catch {
302
- // Ignore permission errors
303
- }
304
- return ideaFolders;
305
- }
306
- async isAvailable() {
307
- // Check for JetBrains installations
308
- const installations = await this.findJetBrainsInstallations();
309
- if (installations.length > 0) {
310
- (0, cli_1.printVerbose)(`Found JetBrains products: ${installations.map((i) => i.product).join(", ")}`);
311
- return true;
312
- }
313
- // Check for JetBrains cache directories
314
- const homeDir = os.homedir();
315
- const platform = os.platform();
316
- const possibleCacheDirs = [];
317
- if (platform === "darwin") {
318
- possibleCacheDirs.push(path.join(homeDir, "Library", "Caches", "JetBrains"), path.join(homeDir, "Library", "Application Support", "JetBrains"));
319
- }
320
- else if (platform === "win32") {
321
- possibleCacheDirs.push(path.join(homeDir, "AppData", "Local", "JetBrains"), path.join(homeDir, "AppData", "Roaming", "JetBrains"));
322
- }
323
- else {
324
- possibleCacheDirs.push(path.join(homeDir, ".cache", "JetBrains"), path.join(homeDir, ".config", "JetBrains"));
325
- }
326
- for (const cacheDir of possibleCacheDirs) {
327
- if (await (0, fs_2.pathExists)(cacheDir)) {
328
- (0, cli_1.printVerbose)(`Found JetBrains cache directory at ${cacheDir}`);
329
- return true;
330
- }
331
- }
332
- // Check for .idea folders
333
- const ideaFolders = await this.findIdeaFolders();
334
- if (ideaFolders.length > 0) {
335
- (0, cli_1.printVerbose)(`Found ${ideaFolders.length} .idea folders`);
336
- return true;
337
- }
338
- return false;
339
- }
340
- async getCacheInfo() {
341
- const isInstalled = await this.isAvailable();
342
- if (!isInstalled) {
343
- return {
344
- name: this.name,
345
- type: this.type,
346
- description: this.description,
347
- paths: [],
348
- isInstalled: false,
349
- size: 0,
350
- };
351
- }
352
- const cachePaths = await this.getJetBrainsCachePaths();
353
- let totalSize = 0;
354
- const validPaths = [];
355
- for (const cachePath of cachePaths) {
356
- try {
357
- const size = await (0, fs_2.getDirectorySize)(cachePath, true); // Use estimated size for large dirs
358
- totalSize += size;
359
- validPaths.push(cachePath);
360
- (0, cli_1.printVerbose)(`${cli_1.symbols.folder} ${cachePath}: ${(size / (1024 * 1024)).toFixed(1)} MB`);
361
- }
362
- catch (error) {
363
- (0, cli_1.printVerbose)(`Error calculating size for ${cachePath}: ${error}`);
364
- }
365
- }
366
- return {
367
- name: this.name,
368
- type: this.type,
369
- description: this.description,
370
- paths: validPaths,
371
- isInstalled: true,
372
- size: totalSize,
373
- };
374
- }
375
- async clear(dryRun = false, _criteria, cacheInfo, protectedPaths = []) {
376
- const info = cacheInfo || (await this.getCacheInfo());
377
- if (!info.isInstalled) {
378
- return {
379
- name: this.name,
380
- success: false,
381
- error: "JetBrains IDEs are not available",
382
- clearedPaths: [],
383
- sizeBefore: 0,
384
- sizeAfter: 0,
385
- };
386
- }
387
- const sizeBefore = info.size || 0;
388
- const clearedPaths = [];
389
- let errors = [];
390
- for (const cachePath of info.paths) {
391
- // Check if the path is protected
392
- const isProtected = protectedPaths.some((protectedPattern) => (0, minimatch_1.minimatch)(cachePath, protectedPattern, { dot: true }));
393
- if (isProtected) {
394
- (0, cli_1.printVerbose)(`Skipping protected path: ${cachePath}`);
395
- continue; // Skip this path
396
- }
397
- try {
398
- if (dryRun) {
399
- (0, cli_1.printVerbose)(`${cli_1.symbols.soap} Would clear: ${cachePath}`);
400
- clearedPaths.push(cachePath);
401
- }
402
- else {
403
- (0, cli_1.printVerbose)(`${cli_1.symbols.soap} Clearing: ${cachePath}`);
404
- // Be careful with .idea folders - only clear cache subdirectories
405
- if (cachePath.endsWith(".idea")) {
406
- // Only clear specific cache subdirectories in .idea folders
407
- const cacheSubdirs = ["shelf", "sonarlint", "httpRequests", ".tmp"];
408
- for (const subdir of cacheSubdirs) {
409
- const subdirPath = path.join(cachePath, subdir);
410
- if (await (0, fs_2.pathExists)(subdirPath)) {
411
- await (0, fs_2.safeRmrf)(subdirPath);
412
- (0, cli_1.printVerbose)(`${cli_1.symbols.soap} Cleared .idea subdirectory: ${subdir}`);
413
- }
414
- }
415
- }
416
- else {
417
- // For other cache directories, clear everything
418
- await (0, fs_2.safeRmrf)(cachePath);
419
- }
420
- clearedPaths.push(cachePath);
421
- }
422
- }
423
- catch (error) {
424
- const errorMsg = `Failed to clear ${cachePath}: ${error}`;
425
- errors.push(errorMsg);
426
- (0, cli_1.printVerbose)(errorMsg);
427
- }
428
- }
429
- return {
430
- name: this.name,
431
- success: errors.length === 0,
432
- sizeBefore,
433
- sizeAfter: 0, // Set to 0 as we don't want to rescan
434
- error: errors.length > 0 ? errors.join("; ") : undefined,
435
- clearedPaths,
436
- };
437
- }
438
- }
439
- exports.JetBrainsCleaner = JetBrainsCleaner;
440
- exports.default = new JetBrainsCleaner();
441
- //# sourceMappingURL=jetbrains.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jetbrains.js","sourceRoot":"","sources":["../../src/cleaners/jetbrains.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import { CacheInfo, CacheSelectionCriteria, ClearResult, CleanerModule } from "../types";
2
- declare class MavenCleaner implements CleanerModule {
3
- name: string;
4
- type: "build-tool";
5
- description: string;
6
- private buildCategories;
7
- isAvailable(): Promise<boolean>;
8
- getCacheInfo(): Promise<CacheInfo>;
9
- private clearCategories;
10
- clear(dryRun?: boolean, _criteria?: CacheSelectionCriteria, cacheInfo?: CacheInfo, protectedPaths?: string[]): Promise<ClearResult>;
11
- clearByCategory(categoryIds: string[], dryRun?: boolean, cacheInfo?: CacheInfo, protectedPaths?: string[]): Promise<ClearResult>;
12
- }
13
- declare const _default: MavenCleaner;
14
- export default _default;
15
- //# sourceMappingURL=maven.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"maven.d.ts","sourceRoot":"","sources":["../../src/cleaners/maven.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,SAAS,EACT,sBAAsB,EACtB,WAAW,EACX,aAAa,EACd,MAAM,UAAU,CAAC;AAKlB,cAAM,YAAa,YAAW,aAAa;IACzC,IAAI,SAAW;IACf,IAAI,EAAG,YAAY,CAAU;IAC7B,WAAW,SAA6D;YAE1D,eAAe;IAqCvB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAS/B,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;YAkC1B,eAAe;IAwEvB,KAAK,CACT,MAAM,UAAQ,EACd,SAAS,CAAC,EAAE,sBAAsB,EAClC,SAAS,CAAC,EAAE,SAAS,EACrB,cAAc,GAAE,MAAM,EAAO,GAC5B,OAAO,CAAC,WAAW,CAAC;IAgBjB,eAAe,CACnB,WAAW,EAAE,MAAM,EAAE,EACrB,MAAM,UAAQ,EACd,SAAS,CAAC,EAAE,SAAS,EACrB,cAAc,GAAE,MAAM,EAAO,GAC5B,OAAO,CAAC,WAAW,CAAC;CAgBxB;;AAED,wBAAkC"}
@@ -1,182 +0,0 @@
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 path_1 = __importDefault(require("path"));
7
- const os_1 = __importDefault(require("os"));
8
- const execa_1 = __importDefault(require("execa"));
9
- const fs_1 = require("fs");
10
- const fs_2 = require("../utils/fs");
11
- const cli_1 = require("../utils/cli");
12
- const minimatch_1 = require("minimatch");
13
- class MavenCleaner {
14
- constructor() {
15
- this.name = "maven";
16
- this.type = "build-tool";
17
- this.description = "Apache Maven local repository and wrapper distributions";
18
- }
19
- async buildCategories() {
20
- const home = os_1.default.homedir();
21
- const base = path_1.default.join(home, ".m2");
22
- const candidates = [
23
- {
24
- id: "repository",
25
- name: "Local repository",
26
- description: "Downloaded Maven artifacts",
27
- paths: [path_1.default.join(base, "repository")],
28
- priority: "normal",
29
- useCase: "development",
30
- },
31
- {
32
- id: "wrapper",
33
- name: "Wrapper distributions",
34
- description: "Maven wrapper downloaded distributions",
35
- paths: [path_1.default.join(base, "wrapper", "dists")],
36
- priority: "normal",
37
- useCase: "development",
38
- },
39
- ];
40
- const existing = [];
41
- for (const category of candidates) {
42
- const validPaths = [];
43
- for (const cachePath of category.paths) {
44
- if (await (0, fs_2.pathExists)(cachePath)) {
45
- validPaths.push(cachePath);
46
- }
47
- }
48
- if (validPaths.length > 0) {
49
- existing.push({ ...category, paths: validPaths });
50
- }
51
- }
52
- return existing;
53
- }
54
- async isAvailable() {
55
- try {
56
- await (0, execa_1.default)("mvn", ["-v"]);
57
- return true;
58
- }
59
- catch {
60
- return false;
61
- }
62
- }
63
- async getCacheInfo() {
64
- const categories = await this.buildCategories();
65
- let totalSize = 0;
66
- let lastModified;
67
- for (const category of categories) {
68
- let size = 0;
69
- for (const cachePath of category.paths) {
70
- size += await (0, fs_2.getDirectorySize)(cachePath, true);
71
- try {
72
- const stats = await fs_1.promises.stat(cachePath);
73
- if (!lastModified || stats.mtime > lastModified) {
74
- lastModified = stats.mtime;
75
- }
76
- }
77
- catch {
78
- // ignore errors
79
- }
80
- }
81
- category.size = size;
82
- totalSize += size;
83
- }
84
- return {
85
- name: this.name,
86
- type: this.type,
87
- description: this.description,
88
- paths: categories.flatMap((c) => c.paths),
89
- isInstalled: await this.isAvailable(),
90
- size: totalSize,
91
- lastModified,
92
- categories,
93
- };
94
- }
95
- async clearCategories(categories, dryRun, protectedPaths, cacheInfo) {
96
- const pathsToClear = Array.from(new Set(categories.flatMap((c) => c.paths)));
97
- const sizeBefore = cacheInfo?.size ??
98
- categories.reduce((sum, cat) => sum + (cat.size ?? 0), 0);
99
- if (pathsToClear.length === 0) {
100
- return {
101
- name: this.name,
102
- success: true,
103
- clearedPaths: [],
104
- sizeBefore: 0,
105
- sizeAfter: 0,
106
- };
107
- }
108
- if (dryRun) {
109
- (0, cli_1.printVerbose)(`[DRY RUN] Would clear maven caches: ${pathsToClear.join(", ")}`);
110
- return {
111
- name: this.name,
112
- success: true,
113
- clearedPaths: pathsToClear,
114
- clearedCategories: categories.map((c) => c.id),
115
- sizeBefore,
116
- sizeAfter: sizeBefore,
117
- };
118
- }
119
- const clearedPaths = [];
120
- let success = true;
121
- let error;
122
- for (const cachePath of pathsToClear) {
123
- const isProtected = protectedPaths.some((pattern) => (0, minimatch_1.minimatch)(cachePath, pattern, { dot: true }));
124
- if (isProtected) {
125
- (0, cli_1.printVerbose)(`Skipping protected path: ${cachePath}`);
126
- continue;
127
- }
128
- try {
129
- if (await (0, fs_2.pathExists)(cachePath)) {
130
- (0, cli_1.printVerbose)(`Clearing maven cache at ${cachePath}`);
131
- await (0, fs_2.safeRmrf)(cachePath);
132
- clearedPaths.push(cachePath);
133
- }
134
- }
135
- catch (err) {
136
- success = false;
137
- error = `Failed to clear ${cachePath}: ${err}`;
138
- }
139
- }
140
- return {
141
- name: this.name,
142
- success,
143
- error,
144
- clearedPaths,
145
- clearedCategories: categories.map((c) => c.id),
146
- sizeBefore,
147
- sizeAfter: success ? 0 : sizeBefore,
148
- };
149
- }
150
- async clear(dryRun = false, _criteria, cacheInfo, protectedPaths = []) {
151
- const info = cacheInfo || (await this.getCacheInfo());
152
- if (!info.isInstalled) {
153
- return {
154
- name: this.name,
155
- success: false,
156
- error: "maven is not installed",
157
- clearedPaths: [],
158
- sizeBefore: 0,
159
- sizeAfter: 0,
160
- };
161
- }
162
- const categories = info.categories || [];
163
- return this.clearCategories(categories, dryRun, protectedPaths, info);
164
- }
165
- async clearByCategory(categoryIds, dryRun = false, cacheInfo, protectedPaths = []) {
166
- const info = cacheInfo || (await this.getCacheInfo());
167
- if (!info.isInstalled) {
168
- return {
169
- name: this.name,
170
- success: false,
171
- error: "maven is not installed",
172
- clearedPaths: [],
173
- sizeBefore: 0,
174
- sizeAfter: 0,
175
- };
176
- }
177
- const categories = info.categories?.filter((c) => categoryIds.includes(c.id)) ?? [];
178
- return this.clearCategories(categories, dryRun, protectedPaths, info);
179
- }
180
- }
181
- exports.default = new MavenCleaner();
182
- //# sourceMappingURL=maven.js.map